Article View: comp.sys.next.software
Article #428Announcing PSTricks v0.91: PostScript Macros for Generic TeX
From: Timothy Van Zandt
Date: Sun, 23 Aug 1992 17:40
Date: Sun, 23 Aug 1992 17:40
1337 lines
64054 bytes
64054 bytes
The most important change in v0.91 is that the \dbox macro has been
replaced by a collection of very powerful and flexible node
connection macros, which are good for trees, mathematical
diagrams, and connecting information.
There are also some new graphics objects, including an arc
object that allows arrowsheads, various curve interpolation
objects, and some plotting macros.
For those who are are not familiar with it, PSTricks is a kitchen
sink of PostScript-based TeX macros. Among other things, it is probably
the most powerful TeX drawing package around. It can be used with
most TeX macro packages, including Plain TeX, LaTeX, AmS-TeX
and AmS-LaTeX.
There is nothing NeXT-specific about PSTricks, but because of DPS
and TeXview, the NeXT is the perfect platform for using PSTricks.
PSTricks was developed on a NeXT as well. PSTricks puts InstantTeX
to good use, since when drawing diagrams it is very nice to have
instant feedback.
Attached are a read-me file, and the TeX input and PostScript output
for a test file, to give you a taste of the package.
PSTricks is available via anonymous ftp from the /pub directory
at Princeton.EDU. You should also pick up pstricks.bug from the
same place. Despite the warning at the beginning of the readme
file, this release has proved to be stable.
Tim
---
Timothy Van Zandt (609)258-4050 tvz@Princeton.EDU (NeXTMail)
Dept. of Economics, Princeton University, Princeton, NJ 08544
***********************************************************************
**** "readme" file for PSTricks package, v0.91, 92/06/17 ****
***********************************************************************
Warning: This is a particularly unstable and preliminary release.
COPYRIGHT 1992, by Timothy Van Zandt, tvz@Princeton.EDU
DESCRIPTION:
pstricks.tex is an extensive collection of PostScript macros that is
compatible with most TeX macro packages, including Plain TeX , LaTeX
and AmS-LaTeX. Included are macros for color, graphics, rotation,
trees and overlays. It has several special features:
* There is a wide variety of graphics (picture drawing) macros, with
a flexible interface and with color support. All lines and outlines
can be solid, dotted or dashed. Lines and curves can have arrowheads,
t-bars, brackets or circles on the ends. Regions can be filled
with solid colors, lines or crosshatch.
* There is support for polar and cartesian coordinate systems.
* There are macros for plots.
* Nested rotations can be made with respect to the physical page.
* There is flexible node macros, useful for trees, mathematical
diagrams, and linking information of any kind.
* There is a powerful loop macro that is useful for making pictures.
* There are macros for coloring or shading the cells of tables.
PSTricks lets you have your cake (TeX) and eat it too (PostScript)!
FILES:
Inputs:
pstricks.tex : The main macro file, for use with a header file.
pstricks.sty : The same as pstricks.tex, but the .sty extension.
pstricks.con : The configuration file for pstricks.tex.
Documentation:
pst-usr1.ps : User's Guide, part I.
pst-usr2.ps : User's Guide, part II.
pst-test.tex : A test file.
pst-read.me : This file.
Sources:
pstricks.doc : Documentation and code for pstricks.tex.
pst-code.tex : For typesetting pstricks.doc.
pst-user.tex : User's Guide.
tvz-hax.sty : Macros for printing documentation.
2up.tex : More macros for printing documentation.
npsfont.sty : Used for printing the User's Guide.
pst-make.tex : For making a stripped input file and header file.
Header:
pstricks.pro : A PostScript prologue (for use with dvips).
INSTALLATION FOR USERS OF ROKICKI'S DVIPS:
1. Put the three input files where your TeX looks for inputs.
2. Put the file pstricks.pro where dvips looks for inputs.
Probably /usr/lib/tex/ps on unix systems.
3. Print pst-usr1.ps and pst-usr2.ps, which is the User's Guide
for pstricks.tex. The last few pages of pst-usr2.ps
are a Quick Reference.
4. Have fun!
INSTALLATION FOR USERS OF OTHER DVI-TO-PS DRIVERS:
PSTricks has only been tested extensively with Rokicki's dvips.
However, it should be able to adapted to other drivers with
similar capabilities.
1. Print the User's Guide.
2. Use pstricks.doc as your input file for now (rather than pstricks.tex).
3. Examine the configuration file pstricks.con. Uncomment
the \iffalse...\fi surrounding the commands for dvips.
Try to define the required commands appropriately for you driver,
but don't use a header file yet (i.e., leave \pstheader
undefined).
3. Run pst-test.tex through Plain TeX until you get things to work
as well as possible. You may not be able to use all of PSTricks features,
but if you can define \pstverb and \pstunit, you at least can use
all the graphics objects.
4. When satisfied, run pst-make with Plain TeX or LaTeX. Put the
file pstricks.tex that is generated where you TeX looks for inputs,
along with pstricks.con and pstricks.sty. If you opt to generate
and use a header file, put this where your dvi driver looks for
such a beast. Then define \pstheader properly in the configuration
file. PSTRicks works much more quickly and generates smaller
PostScript files when used with the header file.
UPGRADING FROM PREVIOUS VERSIONS:
Much has changed. You should reinstall the package in its entirety.
As previously announced, \dbox and \rotate have been removed. \psput
has been replaced by \rput, with new syntax. However, the command
\OldPsput defines \psput to work with the old syntax; the command
\NewPsput defines \psput to work with the new syntax. See the
"Changes" section below for more information.
TIPS FOR HACKERS:
The file pstricks.doc contains the documentation and code, using
Frank Mittelbach's doc system. You can typeset this, if desired,
by running LaTeX on pst-code.tex. See pst-code.tex for details.
(However, the commentary is currently out of date.)
If you want to modify the internals of PSTricks, don't use a
PostScript header file (i.e., don't use \pstheader in pstricks.con)
and use pstricks.doc as your input file. This allows you to modify
both the TeX and the PostScript macros.
When you don't expect to make more changes for a while, run
pst-make to generate a new compact macro file and a new
PostScript header file (if desired). If using a header file,
don't forget to defined \pstheader in pstricks.con.
USING PSTRICKS WITH SUN' PAGEVIEW/NEWSPRINT/OPENWINDOWS
Sun's PageView/NeWSPrint/OpenWindows have many bugs,
especially with the wrong combination of versions.
Workarounds for several of these have been coded into
PSTricks. However, arrows may sometimes do odd things
when used in landscape mode with dvips. Report other problems
to tvz@Princeton.
GETTING PSTRICKS
The PSTricks package is available from the /pub directory at
Princeton.EDU, and at other archives.
A bug list pstricks.bug is kept up-to-date on Princeton.EDU.
Send requests to get on or off a mailing list for PSTricks to
tvz@Princeton.
PSTRICKS.TEX AND SEMINAR.STY
The PSTricks package grew out of macros originally written for the
Seminar package. seminar.sty is a LaTeX style for slides and notes.
seminar.sty, combined with pstricks.tex and your favorite macros for
inclusion of EPS files, make a complete TeX presentation software package.
PSTricks v0.91 works with seminar.sty version 0.92, and maybe later
versions as well. The Seminar package is also available from
Princeton.EDU, and perhaps from wherever else you got PSTricks.
ACKNOWLEDGEMENTS:
The author is thankful to Frank Mittelbach for his documentation system.
The algorithm in the \psdoodle macro was adapted from a C program by
Shamim Zvonko Mohamed.
The basic idea for the node macros is from Emma Pease's tree-dvips.sty.
COPYING:
Copying of part or all of any file in the pstricks package
is allowed under the following conditions only:
(1) You may freely distribute unchanged copies of the files. Please
include the documentation when you do so.
(2) You may modify a renamed copy of any file, but only for personal
use or use within an organization.
(3) You may copy fragments from the files, for personal use or for use
in a macro package for distribution, as long as credit is given
where credit is due.
You are NOT ALLOWED to take money for the distribution or use of
these files or modified versions or fragments thereof, except for
a nominal charge for copying etc.
BUGS:
Too many to list, and who knows what they are anyway. These files are all
preliminary and unstable. Not for use as children's sleepware.
Please report bugs, enhancements and other comments, especially positive
or negative experiences with DVI-to-PS converters and previewers, to
Timothy Van Zandt, tvz@Princeton.edu.
Thanks.
CHANGES:
Policy: These macros are preliminary, but future incompatible changes
to the user interface will be minimized. (A promise broken once already.)
Key: In listings below,
+ means addition,
* means change,
! means change that may cause problems with old files.
v.9: Much internal code was changed, and additional features were added.
See the User's Guide for details.
! The syntax of \dline has changed several times.
! With \multido, the backslash should now be included with variable
names in the variable declarations.
* Memory stats with LaTeX's article style:
40179 words of memory
2740 multiletter control
v.91:
* In spite of the many new features, the input file is smaller in bytes,
and runs significantly faster (at least if used with a header file).
The macros use up slightly more words of memory, and significantly
more command sequences. Here are the stats with LaTeX's article
style:
41586 words of memory
2966 multiletter control sequences
! \dbox and \rotate eliminated.
! \psput replaced by \rput, with new syntax:
OLD: \psput[angle]<ref point>(x,y){stuff}
NEW: \rput[ref point]{angle}(x,y){stuff}
\OldPsput sets up \psput with the old syntax (this may disappear some
day; keep it in a safe place if you expect to need it for a long time).
! System for specifying angles for nested rotations with \psput has changed.
OLD: p0{angle}, p1{angle}, p2{angle}, etc.
NEW: *angle works like p0{angle}; p1{angle} capability eliminated.
N, S, E and W have same meaning as before.
! enddotsize parameter changed to dotsize.
! For specifying the origin as the baseline for the \pspicture
environment, leave the optional argument [] empty (rather than
[o]).
! B is not allowed as the y-coordinate when setting the reference point
in \rput using coordinates. E.g., [Bl] and [B] are OK, but [.3,B] is
not.
* \sunpatch not needed anymore.
* PostScript header file (if being used) is included at the beginning,
rather than on demand.
+ cornersize parameter added, for specifying whether radius of corners
in \psframe and related box macros is given in relative terms (using
framearc) or absolute terms (using linearc).
+ \psclip and \clipbox macros added.
+ \Cartesian and \Polar commands added, for switching coordinate
systems.
+ border=dim parameter added, for giving appearance of one line
crossing over another.
+ showpoints=bool parameter added. If true, a dot is placed at appropriate
coordinates.
+ \psdots graphics object added.
+ \psarc graphics object added.
+ \parabola graphics object added.
+ \pscurve, \psccurve, \psecurve, \psdoodle, \psedoodle, and \pscdoodle
graphics objects added.
+ \qline and \qdisk graphics objects added.
+ \psplot, \parametericplot and \listplot graphics objects added.
+ node connection (e.g., tree) macros added!!
%%%%%%%%%%%%%%%%%%%%%% END pst-read.me %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%% pst-test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Test file for pstricks.tex, v0.91 and maybe later versions.
%%
%% Run with Plain TeX.
%%
%% PAGE 1: Pure graphics objects. These us \psunit and \pstverb.
%%
\input pstricks
\newpsobject{mygrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=7pt}
\hbox{}\vfill
\pspicture(-1,-1)(9,2)\mygrid
\psline[linewidth=1.5pt,linestyle=dotted]{**-)}(2.5,1.5)
\psline[linewidth=2pt,linestyle=dashed,
linearc=.5,linecolor=gray]{|->}(3,-.5)(5.5,1.8)(7,-1)
\qline(9,-1)(8,2)
\endpspicture
\vfill
\pspicture(-1,-1)(9,2)\mygrid
\qdisk(0,0){1}
\pswedge[linecolor=gray,fillstyle=solid]{.8}{0}{70}
\pscircle[linewidth=2pt,linestyle=dashed](4,.5){1.5}
\psellipse[fillstyle=crosshatch*,fillcolor=lightgray]
(7.5,.5)(1,1.5)
\endpspicture
\vfill
\pspicture(-1,-1)(9,3)\mygrid
\parabola*(0,0)(1,3)
\Cartesian(.01,1)
\parabola{<->}(900,3)(600,-1)
\endpspicture
\vfill
\eject
%% PAGE 2: Color (using \pstVerb) and rotation (using \pstVerb and \pstrotate).
\hbox{}\vfill
Here is {\gray some gray text }
\vskip 1cm
Here is a lightgray line:{\lightgray \hrulefill}
\vskip 1cm
And a dark gray blob:
{\darkgray \hrule height 1cm width 5 cm }
\vfill
\centerline{
\rotateleft{Left} \rotatedown{Down} \rotateright{Right}
\scalebox{2}{Big} \scalebox{1,-1}{Flip}}
\vfill
\rput[l]{-45}{This runs diagonally down and to the right}
\rput{45}(2in,0){This runs up to the right}
\vfill
\eject
%% PAGE 3: Nodes and node connections. These use \pstVerb, \pstverbscale,
%% and maybe \pstrotate.
\hbox{}\vfill
$$\matrix{&\rnode{a}{$A$}\cr\noalign{\vskip 2cm}%
\rnode{b}{$B$}\qquad&\rnode{c}{$C$}\cr}$$
\psset{nodesep=3pt}
\ncline{->}{a}{b}\Mput[r]{$f$}
\ncline{->}{a}{c}\Mput[l]{$g$}
\ncline[linestyle=dotted]{->}{b}{c}\Mput[t]{$h$}
\vfill
\pspicture(0,-1)(7.5,1)
\pnode{a}
\cnodeput(1.5,0){b}{0}
\cnodeput(3,0){c}{1}
\cnodeput(4.5,0){d}{2}
\cnodeput(6,0){e}{3}
\psset{arrows=->,nodesep=0}
\pslabelsep=3pt
\ncline{a}{b}\Mput[b]{start}
\ncline{b}{c}\Mput[t]{a}
\ncline{c}{d}\Mput[b]{b}
\ncline{d}{e}\Mput[b]{b}
\psset{arm=.6,linearc=.4,angleA=0,angleB=90}
\ncangles{b}{b}\Lput[r](1.5){b}
\ncangles{e}{b}\Lput[r](1.5){b}
\psset{angleB=-90}
\ncangles{c}{c}\Lput[r](1.5){a}
\ncangles{d}{c}\Lput[r](1.5){a}
\ncangles{e}{c}\Lput[r](1.5){a}
\endpspicture
\vfill
\pspicture(0.4,.2)(9.8,6.2)
\rput(2,6){\rnode{G}{\psframebox{GOAT}}}
\rput(2,.5){\rnode{I}{\psframebox{GOAT}}}
\ncangles[angleA=90, angleB=180, nodesepB=3pt, linearc=3pt,
armA=2cm]{<-**}{I}{G}
\lput*(2.5){Doom}
\Lput[l](.5){Zoom}
{\Polar
\rput{10}(7,30){\rnode{A}{\psframebox{Polar Coor}}}
\rput(5,10){\rnode{B}{\psframebox{Polar Coor}}}}%
\ncline{->}{A}{B}
\mput{\pnode{Y}}
\cnodeput[linewidth=1.5pt](9.5,6){H}{H}
\cnodeput[linewidth=1.5pt](8,1){M}{M}
\newpsobject{myarc}{ncarc}{nodesep=3pt,offset=2pt,arrows=->}
\myarc{H}{M}\mput*{r}
\myarc{M}{H}\mput*{l}\lput(.75){\pnode{Z}}
\nccurve[angleA=135, angleB=135, ncurv=1.8]{Z}{Y}\Lput[b]{:D}{Doom}
\endpspicture
\vfill
\bye
%%%%%%%%%%%%%%%%%%%%%%%%%%%% END pst-test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%
%!PS-Adobe-2.0
%%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software
%%Title: pst-test.dvi
%%Pages: 3 1
%%BoundingBox: 0 0 612 792
%%EndComments
%%BeginProcSet: tex.pro
/TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N
/FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin
/FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array
/BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2
array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}
B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont
setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup
length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{
ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B
/ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0
N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S
dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0
ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}
imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr
put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf
div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook
known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore
showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256
array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N
/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X
/rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0
7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
-.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{
moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{
S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B
/j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w
}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{clear SS restore}B end
%%EndProcSet
%%BeginProcSet: pstricks.pro
/tx@Dict 200 dict def tx@Dict begin
/ADict 25 dict def /cm { matrix currentmatrix } def
/slw { setlinewidth } def /clw { currentlinewidth} def
/cp { currentpoint } def /ed { exch def } def
/stp { .996264 dup scale } def
/stv { SDict begin normalscale end .996264 dup scale } def
/Setvmtrx { gsave matrix identmatrix setmatrix stv /vmtrx cm def grestore }
def
/PtoC { 2 copy cos mul 3 1 roll sin mul } def
/Div { dup 0 eq { pop } { div } ifelse } def
/Atan { /atan load stopped { pop pop 0 } if } def
/DotSize { clw mul add mul 2 div /DS ed } def
/SD { 0 360 arc closepath fill } def
/SQ { /r ed r r moveto r r neg lineto r neg r neg lineto r neg r lineto
closepath fill } def
/ST { /y ed /x ed x y moveto x neg y lineto 0 x lineto closepath fill } def
/SP { /r ed gsave 0 r moveto 4 { 72 rotate 0 r lineto } repeat closepath fill
grestore } def
/Plus { /r ed r 0 moveto r neg 0 lineto stroke 0 r moveto 0 r neg lineto
stroke } def
/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch cvi
def } def
/Dots { NArray n 1 gt { DotB /n n 2 sub def } { /n n 1 sub def } ifelse n {
Dot } repeat n 0 ge { DotA } if } def
/Line { NArray n 0 eq not { n 1 eq { 0 0 4 2 roll /n 2 def } if ArrowB moveto
/n n 2 sub def n { Lineto } repeat cp 4 2 roll ArrowA lineto pop pop } if }
def
/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } ifelse {
pop } repeat a } def
/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq and {
pop pop /n n 1 sub def } if } def
/Polygon { NArray n 2 eq { 0 0 6 2 roll /n 3 def } if n 3 lt { n { pop pop }
repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ed /x0 ed /y1 ed /x1
ed x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 moveto /n n 2
sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto Lineto pop pop
closepath } ifelse } def
/Pyth { dup mul exch dup mul add sqrt } def
/DoodCCa { /y ed /x ed 2 copy y sub /dy1 ed x sub /dx1 ed /l1 dx1 dy1 Pyth def
} def
/DoodCC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1
def DoodCCa /dx dx0 l1 mul dx1 l0 mul add def /dy dy0 l1 mul dy1 l0 mul add
def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div
2 div def /x2 x l0 dx mul m mul sub def /y2 y l0 dy mul m mul sub def /dx l1
dx mul m mul neg def /dy l1 dy mul m mul neg def } def
/DoodIC { /a a 2 mul 3 div 45 cos b exp div def DoodCCa /dx 0 def /dy 0 def }
def
/CurveIC { /y ed /x ed /dx 0 def /dy 0 def } def
/CurveCC { /x1 x dx sub def /y1 y dy sub def /dx x 5 index sub 2 div r mul def
/dy y 4 index sub 2 div r mul def /y ed /x ed /x2 x dx add def /y2 y dy add
def } def
/BOC { IC CC x2 y2 x1 y1 ArrowB 2 copy moveto 4 2 roll x y curveto } def
/NC { CC x1 y1 x2 y2 x y curveto } def
/EOC { x dx sub y dy sub 4 2 roll ArrowA 2 copy curveto } def
/BAC { IC CC x y moveto CC x1 y1 cp ArrowB moveto } def
/NAC { x2 y2 x y curveto CC x1 y1 } def
/EAC { x2 y2 x y ArrowA curveto pop pop } def
/OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def n {
NC } repeat EOC } ifelse } def
/AltCurve { NArray n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n {
NAC } repeat EAC } ifelse } def
/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { CheckClosed }
if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } repeat closepath pop
pop } ifelse } def
/PathLength { flattenpath /z 0 def { /y1 ed /x1 ed /y2 y1 def /x2 x1 def } {
/y ed /x ed /z z y y1 sub dup mul x x1 sub dup mul add sqrt add def /y1 y def
/x1 x def } {} { /y y2 def /x x2 def /z z y y1 sub dup mul x x1 sub dup mul
add sqrt add def /y1 y def /x1 x def } pathforall z } def
/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
PathLength } ifelse /b ed /x ed /y ed /z y x add def b a .5 sub 2 mul y mul
sub z div round z mul a .5 sub 2 mul y mul add b exch div dup /y exch y mul
def /x exch x mul def y x 2 array astore 1 a sub y mul setdash stroke } def
/DotLine { /b PathLength def /a ed /x ed /y clw def /z y x add def a 0 gt { /b
b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add def } if }
ifelse } ifelse /c b z div round def b c z mul sub c div x add y add 0 exch 2
array astore a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1
setlinecap stroke } def
/LineFill { gsave clip /a ed pathbbox exch /x2 ed a div ceiling exch a div
floor dup a mul 0 exch translate sub 1 add cvi /y ed /x1 ed newpath 2
setlinecap y {x1 0 moveto x2 0 lineto stroke 0 a translate} repeat grestore }
def
/BeginArrow { ADict begin gsave /y1 ed /x1 ed /y2 ed /x2 ed /dy y2 y1 sub def
/dx x2 x1 sub def x1 y1 translate /angle dx neg dy Atan def angle rotate
newpath } def
/EndArrow { angle neg rotate x1 neg y1 neg translate x2 y2 cp grestore end }
def
/Arrow { clw mul add 4 -1 roll mul dup 2 div /w ed mul dup /h ed mul /a ed w
neg h moveto 0 0 lineto w h lineto w neg a neg rlineto gsave fill grestore }
def
/Tbar { clw mul add exch pop mul 2 div /z ed z neg clw 2 div moveto z 2 mul 0
rlineto stroke 0 clw moveto } def
/Bracket { clw mul add 3 -1 roll mul dup clw sub 2 div /z ed mul /a ed z neg a
moveto z neg clw 2 div lineto z clw 2 div lineto z a lineto stroke 0 clw
moveto } def
/RoundBracket { clw mul add 3 -1 roll mul dup 2 div clw 8 div sub /z ed mul
clw 2 div sub /a ed a z lt { z dup mul a dup mul add a 2 mul Div dup a sub z
exch Atan /a ed /z ed } { /a 90 def } ifelse 0 z clw 2 div add z 270 a sub 270
a add arc stroke 0 clw moveto } def
/EndDot { DotSize { /z DS def } { /z 0 def } ifelse /b ed 0 z DS SD b { 0 z DS
clw sub SD } if 0 DS z add clw 4 div sub moveto } def
/Frame { /a .5 clw mul def 3 -1 roll 2 copy gt { exch } if a sub /y2 ed a add
/y1 ed 2 copy gt { exch } if a sub /x2 ed a add /x1 ed x1 x2 eq y1 y2 eq or {
pop pop x1 y1 moveto x2 y2 lineto } { /b y1 y2 sub abs x1 x2 sub abs 2 copy gt
{exch pop} {pop} ifelse 2 div a sub def { b mul /b ed } { dup b lt { /b ed } {
pop } ifelse } ifelse x1 y1 y2 add 2 div moveto x1 y2 x1 x2 add 2 div y2 b
arcto 4 {pop} repeat x2 y2 x2 y1 y2 add 2 div b arcto 4 {pop} repeat x2 y1 x1
x2 add 2 div y1 b arcto 4 {pop} repeat x1 y1 x1 y1 y2 add 2 div b arcto 4
{pop} repeat closepath } ifelse } def
/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 sub 3
div def /dy y0 y1 sub 3 div def x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB
moveto x0 dx sub y0 dy add x1 y1 ArrowA curveto /Points [ x1 y1 x0 y0 x0 2 mul
x1 sub y1 ] def } def
/Grid { /a { ( ) } def /b ed /d ed /n ed /c ed c div /cy ed c div /cx ed cy
div cvi /y ed cx div cvi /x ed cy div cvi /y2 ed cx div cvi /x2 ed cy div cvi
/y1 ed cx div cvi /x1 ed /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1
sub 0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div clw 2 div add def
/Helvetica findfont b scalefont setfont /b b .95 mul clw 2 div add def } if
gsave n 0 gt { 1 setlinecap [ 0 cy n div ] 0 setdash } { 2 setlinecap } ifelse
/c x1 def /i 500 w mul x1 add def /e y cy mul def /f y1 cy mul def /g y2 cy
mul def x1 cx mul 0 translate { newpath 0 e moveto b 0 gt { gsave d c a cvs
dup stringwidth pop /z2 ed w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg}
{z1} ifelse rmoveto show grestore } if 0 f moveto 0 g lineto stroke cx w mul 0
translate c x2 eq c i eq or {exit} if /c c w add def } loop grestore gsave n 0
gt { 0 setlinecap [ 0 cx n div ] 0 setdash } { 2 setlinecap } ifelse /c y1 def
/i 500 h mul y1 add def /e x cx mul def /f x1 cx mul def /g x2 cx mul def 0 y1
cy mul translate { newpath e 0 moveto b 0 gt { gsave d c a cvs dup stringwidth
pop /z2 ed w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt {z1} {b neg} ifelse
rmoveto show grestore } if f 0 moveto g 0 lineto stroke 0 cy h mul translate c
y2 eq c i eq or {exit} if /c c h add def } loop grestore } def
/ArcArrow { /d ed /@b ed /a ed /TDict 2 dict def TDict begin /stroke { } def
/fill { } def gsave 0 1 0 0 @b grestore end c mul /e ed pop pop pop /f clw 8
div c mul neg def r a e d PtoC r a PtoC @b 4 { pop } repeat a e d f d } def
/ArcPoints { /Points [ r 3 index PtoC 0 0 r 8 index PtoC ] def } def
/Ellipse { /b ed /a ed /y ed /x ed /y0 ed /x0 ed x0 y0 translate /mtrx cm def
x y scale 0 0 1 a b arc mtrx setmatrix /Points [ 0 0 ] def } def
/ScalePoints { /y ed /x ed counttomark dup dup cvi eq not { exch pop } if /m
exch def /n m 2 div cvi def n { y mul m 1 roll x mul m 1 roll } repeat } def
/Scale { cp cp translate 4 2 roll scale neg exch neg exch translate } def
/Rot { cp cp translate 3 -1 roll neg rotate neg exch neg exch translate } def
/Tr { Setvmtrx vmtrx transform translate } def
/ClipBox { /mtrx cm def stv /a ed /b ed /c ed 0 c neg rmoveto a 0 rlineto 0 b
c add rlineto a neg 0 rlineto closepath clip newpath mtrx setmatrix } def
/GetCoor { nodeA begin x y mtrxf transform cm itransform end nodeB begin x y
mtrxf transform cm itransform end } def
/GetAngle { GetCoor 3 -1 roll sub 3 1 roll sub neg Atan } def
/GetDPos { angle 1 0 mtrxf dtransform cm idtransform exch atan sub dup sin
/@sin ed cos /@cos ed getpos y add exch x add exch mtrxf transform cm
itransform offset angle cos mul add exch offset angle sin mul sub exch } def
/GetPos { nodeA begin /angle angleA def /offset offsetA def /nodesep nodesepA
def GetDPos end /y1 ed /x1 ed nodeB begin /angle angleB def /offset offsetB
def /nodesep nodesepB def GetDPos end /y2 ed /x2 ed } def
/GetDist { x1 x2 sub y1 y2 sub Pyth } def
/InitPnode { /y ed /x ed /getpos { nodesep @cos mul nodesep @sin mul } def }
def
/InitCnode { /y ed /x ed /getpos { nodesep r add dup @cos mul exch @sin mul }
def } def
/GetRnodePos { @cos 0 gt { /dx r nodesep add def } { /dx l nodesep sub def }
ifelse @sin 0 gt { /dy u nodesep add def } { /dy d nodesep sub def } ifelse dx
@sin mul abs dy @cos mul abs gt { dy @cos mul @sin div dy } { dx dup @sin mul
@cos div } ifelse } def
/InitRnode { /r ed r mul neg /l ed /r r l add def /x l neg def { neg /d ed /u
ed /y 0 def } { neg /y ed y sub /u ed u mul neg /d ed /u u d add def /y y d
sub def } ifelse /getpos { GetRnodePos } def } def
/InitNC { tx@Dict nodeA known tx@Dict nodeB known and dup { /nodeA nodeA load
def /nodeB nodeB load def } if } def
/LineMP { 4 copy 1 t sub mul exch t mul add 3 1 roll 1 t sub mul exch t mul
add exch 6 2 roll sub 3 1 roll sub Atan } def
/NCLine { GetAngle /angleA ed /angleB angleA 180 add def GetPos x2 y2 x1 y1
ArrowA 4 2 roll ArrowB moveto lineto /lvar [ x2 x1 y2 y1 ] cvx def /lpos {
lvar LineMP } def } def
/NCCoor { /lvar [ GetCoor 3 1 roll 4 1 roll ] cvx def /lpos { lvar LineMP }
def } def
/BezierMidpoint { /y3 ed /x3 ed /y2 ed /x2 ed /y1 ed /x1 ed /y0 ed /x0 ed /t
ed /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 mul cx sub
def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx sub def /ay y3 y0
sub cy sub by sub def ax t 3 exp mul bx t t mul mul add cx t mul add x0 add ay
t 3 exp mul by t t mul mul add cy t mul add y0 add 3 ay t t mul mul mul 2 by t
mul mul add cy add 3 ax t t mul mul mul 2 bx t mul mul add cx add atan } def
/GetArms { /x1a armA angleA cos mul x1 add def /y1a armA angleA sin mul y1 add
def /x2a armB angleB cos mul x2 add def /y2a armB angleB sin mul y2 add def }
def
/NCCurve { GetPos GetDist 2 div dup 3 -1 roll mul /armA ed mul /armB ed
GetArms /lvar [ x1a y1a x1 y1 ArrowA 4 2 roll x2a y2a x2 y2 ArrowB ] cvx def
lvar moveto 6 2 roll 4 2 roll curveto /lpos { t lvar BezierMidpoint } def }
def
/AnglesMP { lvar t 3 gt { /t t 3 sub def } { t 2 gt { /t t 2 sub def 10 -2
roll } { t 1 gt { /t t 1 sub def 10 -4 roll } { 10 4 roll } ifelse } ifelse }
ifelse 6 { pop } repeat 3 -1 roll exch LineMP } def
/NCAngles { GetPos GetArms /mtrx angleA matrix rotate def x1a y1a mtrx
transform pop x2a y2a mtrx transform exch pop mtrx itransform /y0 ed /x0 ed [
armA 0 ne { x1 y1 } if x1a y1a x0 y0 x2a y2a armB 0 ne { x2 y2 } if ] Line
/lvar [ x2 y2 x2a y2a x0 y0 x1a y1a x1 y1 ] cvx def /lpos { AnglesMP } def }
def
/NCAngle { GetPos /x2a armB angleB cos mul x2 add def /y2a armB angleB sin mul
y2 add def /mtrx angleA matrix rotate def x2a y2a mtrx transform pop x1 y1
mtrx transform exch pop mtrx itransform /y0 ed /x0 ed [ x1 y1 x0 y0 x2a y2a
armB 0 ne { x2 y2 } if ] Line /lvar [ x2 y2 x2 y2 x2a y2a x0 y0 x1 y1 ] cvx
def /lpos { AnglesMP } def } def
/NCBar { GetPos GetArms /mtrx angleA matrix rotate def x1a y1a mtrx transform
pop x2a y2a mtrx transform pop sub dup 0 mtrx itransform 3 -1 roll 0 gt { /y2a
exch y2a add def /x2a exch x2a add def } { /y1a exch neg y1a add def /x2a exch
neg x2a add def } ifelse [ x1 y1 x1a y1a x2a y2a x2 y2 ] Line /lvar [ x2 y2 x2
y2 x2a y2a x1a y1a x1 y1 ] cvx def /lpos { lvar AnglesMP } def } def
/NCDiag { GetPos GetArms [ x1 y1 x1a y1a x2a y2a x2 y2 ] Line /lvar [ x2 y2 x2
y2 x2a y2a x1a y1a x1 y1] cvx def /lpos { AnglesMP } def } def
/LLPut { /lmtrx cm def /langle 0 def tx@Dict /lpos known { Setvmtrx lpos
/langle ed vmtrx transform cp 3 -1 roll sub neg 3 1 roll sub exch translate }
{ pop } ifelse } def
/LPut { /lmtrx cm def tx@Dict /lpos known { Setvmtrx lpos pop vmtrx transform
cp 3 -1 roll sub neg 3 1 roll sub exch translate } if } def
/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { cp OLUnit translate
moveto /IfVisible true def } if } { IfVisible { cp OLUnit neg exch neg exch
translate moveto /IfVisible false def } if } ifelse } def
/InitOL { Setvmtrx /OLUnit [ 2890.79999 dup vmtrx dtransform ] cvx def /BOL {
BeginOL } def /IfVisible true def } def
end
%%EndProcSet
%%BeginProcSet: special.pro
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs
792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP false N /BBcalc false N
/p 3 def}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{
@scaleunit div /vsc X}B /@hsize{/hs X /CLIP true N}B /@vsize{/vs X /CLIP true
N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{10 div /rwi X}
B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X /BBcalc true N}B
/magscale true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{md begin /letter{}N /note{}N /legal{}N /od{txpose 1 0 mtx
defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{
itransform moveto}}{transform{itransform lineto}}{6 -2 roll transform 6 -2
roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll
itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array
astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{
PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR
pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if
yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270
rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not
and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip
not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}
ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy
TR .96 dup scale neg S neg S TR}if}N /cp{pop pop showpage pm restore}N end}if}
if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{
DVImag dup scale}if}N /psfts{S 65536 div N}N /startTexFig{/psf$SavedState save
N userdict maxlength dict begin /magscale false def normalscale currentpoint
TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx
sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx
psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N
/erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{psf$llx psf$lly
psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll
S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end
psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave
normalscale currentpoint TR @SpecialDefaults}N /@setspecial{CLIP{newpath 0 0
moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR
hsc vsc scale ang rotate BBcalc{rwi urx llx sub div dup scale llx neg lly neg
TR}if /showpage{}N /erasepage{}N /copypage{}N newpath}N /@endspecial{grestore
clear SpecialSave restore end}N /@defspecial{SDict begin}N /@fedspecial{end}B
/li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{/SaveX currentpoint /SaveY X N 1
setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY
moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix
currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix
setmatrix}N end
%%EndProcSet
TeXDict begin 1000 300 300 @start /Fa 6 105 df<00000C0000000C0000001C0000001C
0000003C0000007C0000005C0000009C0000008E0000010E0000010E0000020E0000040E000004
0E0000080E0000080E0000100E0000200E00003FFE000040070000400700008007000100070001
0007000200070002000700060007001E000700FF807FF01C1D7F9C1F>65
D<01FFFF00003C01C0003800E0003800F0003800700038007000700070007000F0007000F00070
01E000E003C000E0078000E01F0000FFFC0001C00F0001C0078001C003C001C003C0038003C003
8003C0038003C0038003C0070007800700070007000E0007001C000E007800FFFFC0001C1C7E9B
1F>I<0001F808000E061800380138006000F001C0007003800070070000300F0000200E000020
1C0000203C0000203C000000780000007800000078000000F0000000F0000000F0000000F00000
00F0000100F0000100F0000100700002007000020030000400380008001C0010000E0060000701
800000FE00001D1E7E9C1E>I<0001E0000630000E78000CF0001C60001C00001C00001C00003C
0000380000380003FFC000380000380000700000700000700000700000700000E00000E00000E0
0000E00000E00001C00001C00001C00001C00001C000018000038000038000630000F30000F600
00E4000078000015257E9C14>102 D<007180018B800307800607800E07000C07001C07001C07
00380E00380E00380E00380E00381C00381C00381C00183C0008F8000738000038000038000070
00607000F06000F0E000E180007E0000111A7F9114>I<0FC00001C00001C00003800003800003
80000380000700000700000700000700000E3E000EC3000F03800E03801E03801C03801C03801C
0380380700380700380700380E00700E20700E20701C20701C40E00C80600700131D7E9C18>I
E /Fb 40 122 df<03C00C301818300C300C700E60066006E007E007E007E007E007E007E007E0
07E007E007E007E007E00760066006700E300C300C18180C3007E0101D7E9B15>48
D<030007003F00C700070007000700070007000700070007000700070007000700070007000700
07000700070007000700070007000F80FFF80D1C7C9B15>I<07C01830201C400C400EF00FF80F
F807F8077007000F000E000E001C001C00380070006000C00180030006010C01180110023FFE7F
FEFFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C001C00180030006007E000
30001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<60F0F0
600000000000000000000060F0F06004127C910C>58 D<000600000006000000060000000F0000
000F0000000F00000017800000178000001780000023C0000023C0000023C0000041E0000041E0
000041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C000600
3E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F0038
0F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C
0F001E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E
9B1D>I<001F808000E0618001801980070007800E0003801C0003801C00018038000180780000
807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000
0000700000807800008078000080380000801C0001001C0001000E000200070004000180080000
E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F000E000F0007000F0007000F
0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E0
0F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F0007800F0007000F000E000F001C
000F007000FFFFC0001B1C7E9B20>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00
040F02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F00
000F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>70 D<001F808000E0618001
801980070007800E0003801C0003801C00018038000180780000807800008070000080F0000000
F0000000F0000000F0000000F0000000F0000000F000FFF0F0000F807000078078000780780007
80380007801C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>
I<FFF3FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F00
3C000F003C000F003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F
003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B
1F>I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000
0F00000F00000F00000F00000F00000F00000F00080F00080F00080F00180F00180F00100F0030
0F00700F01F0FFFFF0151C7E9B1A>76 D<FF8000FF800F8000F8000F8000F8000BC00178000BC0
0178000BC001780009E002780009E002780008F004780008F004780008F0047800087808780008
780878000878087800083C107800083C107800083C107800081E207800081E207800081E207800
080F407800080F40780008078078000807807800080780780008030078001C03007800FF8307FF
80211C7E9B26>I<003F800000E0E0000380380007001C000E000E001C0007003C000780380003
80780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F000
01E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C0003
80380000E0E000003F80001B1E7E9C20>79 D<FFFF800F00E00F00780F003C0F001C0F001E0F00
1E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00
000F00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>I<FFFF00000F01E0
000F0078000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F00
78000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F
0078000F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>82
D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B
1E>84 D<7FFFF07C01F07001E06003C06003C0400780400F80400F00401E00001E00003C00007C
0000780000F00000F00001E00003E00003C0100780100780100F00101F00301E00203C00203C00
607800E0F803E0FFFFE0141C7E9B19>90 D<1FC000307000783800781C00301C00001C00001C00
01FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>
97 D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C00
1D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C0
1C01801E030019060010F800131D7F9C17>I<003F000007000007000007000007000007000007
0000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700E007
00E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>100
D<03E00C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F12
7F9112>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38
C01C3880181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800
001FF8001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C
7F9215>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000000000
00000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF
80091D7F9C0C>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
00001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C
3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>107 D<FC001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
1C001C00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C
01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00
1C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D
03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0
E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C
001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01
C01C01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF8000131A
7F9117>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C001C001C00
FFC00D127F9110>114 D<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018
C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C00
1C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C
03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
07800C07800E1B8003E3F014127F9117>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E
0B82000E0B82000E1182000711C4000711C4000720C40003A0E80003A0E80003C0680001C07000
01C0700001803000008020001B127F911E>119 D<7F8FF00F03800F030007020003840001C800
01D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF8151280
9116>I<FF07E03C03801C01001C01000E02000E020007040007040007040003880003880003D8
0001D00001D00000E00000E00000E000004000004000008000008000F08000F10000F300006600
003C0000131A7F9116>I E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300
TeXDict begin
%%EndSetup
%%Page: 1 1
bop 201 641 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray gsave 0.8 slw 0 setgray -28.45274
-28.45274 256.07469 56.90549 -28.45274 -28.45274 28.45274 28.45274
1 10 { 0. setgray } 7.0 Grid grestore end
@endspecial @beginspecial
@setspecial
tx@Dict begin stp 1.5 slw 0 setgray /ArrowA { BeginArrow {false}
true 1. 1.0 3. EndDot EndArrow } def /ArrowB { BeginArrow 1. 0.4 1.0
4. RoundBracket EndArrow } def [ 71.13185 42.67911 ] /Lineto { lineto
} def Line gsave 0 setgray 3.0 -1 -2 add DotLine grestore end
@endspecial @beginspecial @setspecial
tx@Dict begin stp 2.0 slw 0.5 setgray /ArrowA { BeginArrow 1. 0.4
1.0 4. Tbar EndArrow } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2
Arrow EndArrow } def [ 85.35823 -14.22636 156.49008 51.21501 199.1692
-28.45274 ] /r 14.22636 def /Lineto { Arcto } def Line gsave 0.5
setgray 5.0 3.0 -1 -2 add DashLine grestore end
@endspecial
@beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 256.07469 -28.45274 moveto 227.62195
56.90549 lineto 0 setlinecap stroke end
@endspecial 717 x @beginspecial
@setspecial
tx@Dict begin stp 1.0 slw 0 setgray gsave 0.8 slw 0 setgray -28.45274
-28.45274 256.07469 56.90549 -28.45274 -28.45274 28.45274 28.45274
1 10 { 0. setgray } 7.0 Grid grestore end
@endspecial @beginspecial @setspecial
tx@Dict begin stp 0 setgray 0.0 0.0 28.45274 SD end
@endspecial
@beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0.5 setgray 0.0 0.0 translate newpath 0
0 newpath moveto /r 22.76227 clw 2 div sub def 0 0 r 0. 70. arc closepath
gsave 1. setgray fill grestore gsave 0.5 setgray 0 setlinecap stroke
grestore end
@endspecial @beginspecial @setspecial
tx@Dict begin stp 2.0 slw 0 setgray 113.81097 14.22636 42.67911 clw
2 div sub 0 360 arc closepath gsave 0 setgray 5.0 3.0 4 DashLine
grestore end
@endspecial @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 213.39557 14.22636 28.45274 42.67911
0 360 Ellipse gsave 0.75 setgray fill grestore gsave 45. rotate 0.8
slw 0 setgray 5.0 LineFill grestore gsave 90 rotate gsave 45. rotate
0.8 slw 0 setgray 5.0 LineFill grestore grestore gsave 0 setgray
0 setlinecap stroke grestore end
@endspecial 835 x
@beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray gsave 0.8 slw 0 setgray -28.45274
-28.45274 256.07469 85.35823 -28.45274 -28.45274 28.45274 28.45274
1 10 { 0. setgray } 7.0 Grid grestore end
@endspecial @beginspecial @setspecial
tx@Dict begin stp 0.0 slw 0 setgray /ArrowA { } def /ArrowB { }
def 0.0 0.0 28.45274 85.35823 Parab gsave 0 setgray fill grestore
gsave 0 setgray grestore end
@endspecial @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray /ArrowA { BeginArrow 1. 0.3 1.4
1.0 3.2 Arrow EndArrow } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2
Arrow EndArrow } def 255.92651 85.35823 170.61768 -28.45274 Parab
gsave 0 setgray 0 setlinecap stroke grestore end
@endspecial 965 2770
a Fb(1)p eop
%%Page: 2 2
bop 83 583 a Fb(Here)15 b(is)f
0.5 setgray
223 583 a Fb(some)f(gra)o(y)g(text)i
0 setgray
83 751 a Fb(Here)g(is)f(a)f(ligh)o(tgra)o(y)g
(line:)p 0.75 setgray
509 751 1443 2 v 1952 751 a
0 setgray
83 919 a Fb(And)h(a)g(dark)g(gra)o(y)f(blob:)0 927 y
0.25 setgray
0 1045 591 119 v 0 1045 a
0 setgray
786 1637 a
tx@Dict begin 90 Rot end
786 1637 a Fb(Left)-73 b
tx@Dict begin -90 Rot end
904 1637 a
tx@Dict begin 180 Rot end
904 1666 a Fb(Do)o(wn)904 1637 y
tx@Dict begin -180 Rot end
955 1637 a
tx@Dict begin -90 Rot end
854 1666 a Fb(Righ)o(t)955 1637 y
tx@Dict begin 90 Rot end
982 1637 a
tx@Dict begin 2. 2. Scale end
982 1637 a Fb(Big)-62 b
tx@Dict begin 1 2. div 1 2. div Scale end
1134 1637 a
tx@Dict begin 1. -1. Scale end
1134 1637 a Fb(Flip)-74 b
tx@Dict begin 1 1. div 1 -1. div Scale end
83 2179 a
tx@Dict begin -45. Rot end
83 2189 a Fb(This)14 b(runs)g(diagonally)e(do)o(wn)h(and)h(to)g(the)g(righ)o
(t)83 2179 y
tx@Dict begin -45. neg Rot end
683 2179 a
tx@Dict begin 45. Rot end
455 2189 a Fb(This)g(runs)g(up)g(to)g(the)h(righ)o(t)683 2179
y
tx@Dict begin 45. neg Rot end
965 2770 a Fb(2)p eop
%%Page: 3 3
bop 1038 379 a
tx@Dict begin gsave stv cp translate /node@a 18 dict def node@a begin /mtrxf
cm def .5 6.83331 0.0 false .5 7.50002 InitRnode end grestore end
1038 379 a Fa(A)880 665 y
tx@Dict begin gsave stv cp translate /node@b 18 dict def node@b begin /mtrxf
cm def .5 6.83331 0.0 false .5 8.0868 InitRnode end grestore end
880 665 a Fa(B)127 b
tx@Dict begin gsave stv cp translate /node@c 18 dict def node@c begin /mtrxf
cm def .5 6.83331 0.0 false .5 7.86249 InitRnode end grestore end
1038 665 a Fa(C)0 708 y
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@a def /nodeB /node@b def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
grestore end
0 708 a
tx@Dict begin /t 0.5 def LLPut end
-46 719 a Fa(f)0 708 y
tx@Dict begin lmtrx setmatrix end
0 708 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@a def /nodeB /node@c def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
grestore end
0 708 a
tx@Dict begin /t 0.5 def LLPut end
21 713 a Fa(g)0 708 y
tx@Dict begin lmtrx setmatrix end
0 708 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@b def /nodeB /node@c def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 3.0 0 -2 add DotLine grestore } if
grestore end
0 708 a
tx@Dict begin /t 0.5 def LLPut end
-12 758 a Fa(h)0 708 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv cp translate /node@a 10 dict def node@a begin /mtrxf
cm def 0.0 0.0 InitPnode end grestore end
260 1083 a
tx@Dict begin gsave stv cp translate /node@b 12 dict def node@b begin /mtrxf
cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
InitCnode end grestore end
260 1083 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0 0 5.00002 2 div 6.44444 0.0
add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
0 setlinecap stroke grestore end
@endspecial 250 1096
a Fb(0)437 1083 y
tx@Dict begin gsave stv cp translate /node@c 12 dict def node@c begin /mtrxf
cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
InitCnode end grestore end
437 1083 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0 0 5.00002 2 div 6.44444 0.0
add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
0 setlinecap stroke grestore end
@endspecial 427 1096
a Fb(1)615 1083 y
tx@Dict begin gsave stv cp translate /node@d 12 dict def node@d begin /mtrxf
cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
InitCnode end grestore end
615 1083 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0 0 5.00002 2 div 6.44444 0.0
add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
0 setlinecap stroke grestore end
@endspecial 605 1096
a Fb(2)792 1083 y
tx@Dict begin gsave stv cp translate /node@e 12 dict def node@e begin /mtrxf
cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
InitCnode end grestore end
792 1083 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0 0 5.00002 2 div 6.44444 0.0
add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
0 setlinecap stroke grestore end
@endspecial 782 1096
a Fb(3)83 1083 y
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@a def /nodeB /node@b def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
grestore end
83 1083 a
tx@Dict begin /t 0.5 def LLPut end
40 1070 a Fb(start)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@b def /nodeB /node@c def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
grestore end
83 1083 a
tx@Dict begin /t 0.5 def LLPut end
73 1113 a Fb(a)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@c def /nodeB /node@d def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
grestore end
83 1083 a
tx@Dict begin /t 0.5 def LLPut end
71 1070 a Fb(b)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@d def /nodeB /node@e def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
grestore end
83 1083 a
tx@Dict begin /t 0.5 def LLPut end
71 1070 a Fb(b)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@b def /nodeB /node@b def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
setlinecap stroke grestore } if grestore end
83 1083 a
tx@Dict begin /t 1.5 def LLPut end
47 1097 a Fb(b)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@e def /nodeB /node@b def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
setlinecap stroke grestore } if grestore end
83 1083 a
tx@Dict begin /t 1.5 def LLPut end
47 1097 a Fb(b)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@c def /nodeB /node@c def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
-90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
setlinecap stroke grestore } if grestore end
83 1083 a
tx@Dict begin /t 1.5 def LLPut end
50 1092 a Fb(a)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@d def /nodeB /node@c def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
-90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
setlinecap stroke grestore } if grestore end
83 1083 a
tx@Dict begin /t 1.5 def LLPut end
50 1092 a Fb(a)83 1083 y
tx@Dict begin lmtrx setmatrix end
83 1083 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@e def /nodeB /node@c def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
-90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
setlinecap stroke grestore } if grestore end
83 1083 a
tx@Dict begin /t 1.5 def LLPut end
50 1092 a Fb(a)83 1083 y
tx@Dict begin lmtrx setmatrix end
195 1495 a
tx@Dict begin gsave stv cp translate /node@G 18 dict def node@G begin /mtrxf
cm def .5 10.83331 4.0 false .5 37.23615 InitRnode end grestore end
195 1512 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0. true 0.0 0.0 37.23615 14.83331
Frame gsave 0 setgray 0 setlinecap stroke grestore end
@endspecial 211 1495
a Fb(GO)o(A)m(T)195 2145 y
tx@Dict begin gsave stv cp translate /node@I 18 dict def node@I begin /mtrxf
cm def .5 10.83331 4.0 false .5 37.23615 InitRnode end grestore end
195 2161 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0. true 0.0 0.0 37.23615 14.83331
Frame gsave 0 setgray 0 setlinecap stroke grestore end
@endspecial 211 2145
a Fb(GO)o(A)m(T)36 2189 y
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@I def /nodeB /node@G def
InitNC { /ArrowA { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow EndArrow } def /ArrowB
{ BeginArrow {false} true 1. 1.0 3. EndDot EndArrow } def /r 3.0 def /Lineto {
Arcto } def /angleA 90. def /angleB 180. def /armA 56.9055 def /armB 10.0 def
NCAngles gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
36 2189 a
tx@Dict begin /t 2.5 def LLPut end
-35 2220 a @beginspecial @setspecial
tx@Dict begin stp 0.0 slw 1. setgray 0. true 0.0 0.0 34.25008 14.83331
Frame gsave 1. setgray fill grestore gsave 1. setgray grestore end
@endspecial -19 2204
a Fb(Do)q(om)36 2189 y
tx@Dict begin lmtrx setmatrix end
36 2189 a
tx@Dict begin /t 0.5 def LLPut end
57 2204 a Fb(Zo)q(om)36 2189 y
tx@Dict begin lmtrx setmatrix end
36 2189 a
tx@Dict begin 199.1692 30. PtoC Tr end
36 2189 a
tx@Dict begin 10. Rot end
-80 2204 a
tx@Dict begin gsave stv cp translate /node@A 18 dict def node@A begin /mtrxf
cm def .5 10.94444 4.0 false .5 55.97232 InitRnode end grestore end
-80 2220 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0. true 0.0 0.0 55.97232 14.94444
Frame gsave 0 setgray 0 setlinecap stroke grestore end
@endspecial -64 2204
a Fb(P)o(olar)13 b(Co)q(or)36 2189 y
tx@Dict begin 10. neg Rot end
36 2189 a
tx@Dict begin 199.1692 30. PtoC neg exch neg exch Tr end
36 2189 a
tx@Dict begin 142.26372 10. PtoC Tr end
-80 2204 a
tx@Dict begin gsave stv cp translate /node@B 18 dict def node@B begin /mtrxf
cm def .5 10.94444 4.0 false .5 55.97232 InitRnode end grestore end
-80 2220 a @beginspecial @setspecial
tx@Dict begin stp 1.0 slw 0 setgray 0. true 0.0 0.0 55.97232 14.94444
Frame gsave 0 setgray 0 setlinecap stroke grestore end
@endspecial -64 2204
a Fb(P)o(olar)g(Co)q(or)36 2189 y
tx@Dict begin 142.26372 10. PtoC neg exch neg exch Tr end
36 2189 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@A def /nodeB /node@B def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
grestore end
36 2189 a
tx@Dict begin /t 0.5 def LLPut end
36 2189 a
tx@Dict begin gsave stv cp translate /node@Y 10 dict def node@Y begin /mtrxf
cm def 0.0 0.0 InitPnode end grestore end
36 2189 a
tx@Dict begin lmtrx setmatrix end
1158 1481 a
tx@Dict begin gsave stv cp translate /node@H 12 dict def node@H begin /mtrxf
cm def /r 7.50002 2 div 6.83331 0.0 add 2 div Pyth 3.0 add 1.5 add def 0 0
InitCnode end grestore end
1158 1481 a @beginspecial @setspecial
tx@Dict begin stp 1.5 slw 0 setgray 0 0 7.50002 2 div 6.83331 0.0
add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
0 setlinecap stroke grestore end
@endspecial 1142 1495
a Fb(H)981 2071 y
tx@Dict begin gsave stv cp translate /node@M 12 dict def node@M begin /mtrxf
cm def /r 9.16669 2 div 6.83331 0.0 add 2 div Pyth 3.0 add 1.5 add def 0 0
InitCnode end grestore end
981 2071 a @beginspecial @setspecial
tx@Dict begin stp 1.5 slw 0 setgray 0 0 9.16669 2 div 6.83331 0.0
add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
0 setlinecap stroke grestore end
@endspecial 962 2085
a Fb(M)36 2189 y
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 2.0 def /offsetB 2.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@H def /nodeB /node@M def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def GetAngle dup 8. add /angleA ed 8. sub 180 add /angleB ed 0.67
0.67 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
36 2189 a
tx@Dict begin /t 0.5 def LLPut end
11 2215 a @beginspecial @setspecial
tx@Dict begin stp 0.0 slw 1. setgray 0. true 0.0 0.0 11.91667 12.30554
Frame gsave 1. setgray fill grestore gsave 1. setgray grestore end
@endspecial 28 2198 a
Fb(r)36 2189 y
tx@Dict begin lmtrx setmatrix end
36 2189 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 2.0 def /offsetB 2.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@M def /nodeB /node@H def
InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
EndArrow } def GetAngle dup 8. add /angleA ed 8. sub 180 add /angleB ed 0.67
0.67 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
36 2189 a
tx@Dict begin /t 0.5 def LLPut end
14 2220 a @beginspecial @setspecial
tx@Dict begin stp 0.0 slw 1. setgray 0. true 0.0 0.0 10.77779 14.94444
Frame gsave 1. setgray fill grestore gsave 1. setgray grestore end
@endspecial 30 2204 a
Fb(l)36 2189 y
tx@Dict begin lmtrx setmatrix end
36 2189 a
tx@Dict begin /t 0.75 def LLPut end
36 2189 a
tx@Dict begin gsave stv cp translate /node@Z 10 dict def node@Z begin /mtrxf
cm def 0.0 0.0 InitPnode end grestore end
36 2189 a
tx@Dict begin lmtrx setmatrix end
36 2189 a
tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@Z def /nodeB /node@Y def
InitNC { /ArrowA { } def /ArrowB { } def /angleA 135. def /angleB 135. def 1.8
1.8 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
36 2189 a
tx@Dict begin /t 0.5 def LLPut end
36 2189 a
tx@Dict begin langle 180 add Rot end
-19 2169 a Fb(Do)q(om)36 2189 y
tx@Dict begin langle 180 add neg Rot end
36 2189 a
tx@Dict begin lmtrx setmatrix end
965 2770 a Fb(3)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF
--
Timothy Van Zandt (609)258-4050 tvz@Princeton.EDU (NeXTMail)
Dept. of Economics, Princeton University, Princeton, NJ 08544
--
Timothy Van Zandt (609)258-4050 tvz@Princeton.EDU (NeXTMail)
Dept. of Economics, Princeton University, Princeton, NJ 08544
Technical Details
Message-ID:
<1992Aug23.174022.26467@Princeton.EDU>Path:
arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!rutgers!princeton!zandtwerk.Princeton.EDU!tvzShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!rutgers!princeton!zandtwerk.Princeton.EDU!tvz From: tvz@Princeton.EDU (Timothy Van Zandt) Newsgroups: comp.sys.next.software Subject: Announcing PSTricks v0.91: PostScript Macros for Generic TeX Keywords: PostScript Message-ID: <1992Aug23.174022.26467@Princeton.EDU> Date: 23 Aug 92 17:40:22 GMT Sender: news@Princeton.EDU (USENET News System) Organization: Princeton University Lines: 1337 Originator: tvz@zandtwerk.Princeton.EDU Nntp-Posting-Host: zandtwerk.princeton.edu