1 %!PS-Adobe-2.0 EPSF-2.0
3 %%Creator: /home/hess/transfig.3.2.1/fig2dev/fig2dev Version 3.2 Patchlevel 1
4 %%CreationDate: Thu Feb 10 15:05:06 2000
5 %%For: hess@rugmd28.chem.rug.nl (Berk Hess,Room 17.14,4327)
6 %%Orientation: Portrait
7 %%BoundingBox: 0 0 317 252
11 %%Magnification: 1.0000
13 /MyAppDict 100 dict dup begin def
14 /$F2psDict 200 dict def
16 $F2psDict /mtrx matrix put
17 /col-1 {0 setgray} bind def
18 /col0 {0.000 0.000 0.000 srgb} bind def
19 /col1 {0.000 0.000 1.000 srgb} bind def
20 /col2 {0.000 1.000 0.000 srgb} bind def
21 /col3 {0.000 1.000 1.000 srgb} bind def
22 /col4 {1.000 0.000 0.000 srgb} bind def
23 /col5 {1.000 0.000 1.000 srgb} bind def
24 /col6 {1.000 1.000 0.000 srgb} bind def
25 /col7 {1.000 1.000 1.000 srgb} bind def
26 /col8 {0.000 0.000 0.560 srgb} bind def
27 /col9 {0.000 0.000 0.690 srgb} bind def
28 /col10 {0.000 0.000 0.820 srgb} bind def
29 /col11 {0.530 0.810 1.000 srgb} bind def
30 /col12 {0.000 0.560 0.000 srgb} bind def
31 /col13 {0.000 0.690 0.000 srgb} bind def
32 /col14 {0.000 0.820 0.000 srgb} bind def
33 /col15 {0.000 0.560 0.560 srgb} bind def
34 /col16 {0.000 0.690 0.690 srgb} bind def
35 /col17 {0.000 0.820 0.820 srgb} bind def
36 /col18 {0.560 0.000 0.000 srgb} bind def
37 /col19 {0.690 0.000 0.000 srgb} bind def
38 /col20 {0.820 0.000 0.000 srgb} bind def
39 /col21 {0.560 0.000 0.560 srgb} bind def
40 /col22 {0.690 0.000 0.690 srgb} bind def
41 /col23 {0.820 0.000 0.820 srgb} bind def
42 /col24 {0.500 0.190 0.000 srgb} bind def
43 /col25 {0.630 0.250 0.000 srgb} bind def
44 /col26 {0.750 0.380 0.000 srgb} bind def
45 /col27 {1.000 0.500 0.500 srgb} bind def
46 /col28 {1.000 0.630 0.630 srgb} bind def
47 /col29 {1.000 0.750 0.750 srgb} bind def
48 /col30 {1.000 0.880 0.880 srgb} bind def
49 /col31 {1.000 0.840 0.000 srgb} bind def
55 .9 .9 scale % to make patterns same scale as in xfig
57 % This junk string is used by the show operators
59 /PATawidthshow { % cx cy cchar rx ry string
60 % Loop over each character in the string
61 { % cx cy cchar rx ry char
63 dup % cx cy cchar rx ry char char
64 PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
65 false charpath % cx cy cchar rx ry char
67 % Move past the character (charpath modified the
69 currentpoint % cx cy cchar rx ry char x y
71 moveto % cx cy cchar rx ry char
72 % Reposition by cx,cy if the character in the string is cchar
73 3 index eq { % cx cy cchar rx ry
74 4 index 4 index rmoveto
76 % Reposition all characters by rx ry
77 2 copy rmoveto % cx cy cchar rx ry
79 pop pop pop pop pop % -
86 /lw currentlinewidth def
87 /lc currentlinecap def
88 /lj currentlinejoin def
89 /ml currentmiterlimit def
90 /ds [ currentdash ] def
91 /cc [ currentrgbcolor ] def
92 /cm matrix currentmatrix def
95 % PATdraw - calculates the boundaries of the object and
96 % fills it with the current pattern
99 PATpcalc % proc nw nh px py
100 5 -1 roll exec % nw nh px py
105 % PATfill - performs the tiling for the shape
106 /PATfill { % nw nh px py PATfill -
107 PATDict /CurrentPattern get dup begin
109 % Set the coordinate system to Pattern Space
111 % Set the color for uncolored pattezns
112 PaintType 2 eq { PATDict /PColor get PATsc } if
113 % Create the string for showing
114 3 index string % nw nh px py str
115 % Loop for each of the pattern sources
116 0 1 Multi 1 sub { % nw nh px py str source
117 % Move to the starting location
118 3 index 3 index % nw nh px py str source px py
119 moveto % nw nh px py str source
120 % For multiple sources, set the appropriate color
121 Multi 1 ne { dup PC exch get PATsc } if
122 % Set the appropriate string for the source
123 0 1 7 index 1 sub { 2 index exch 2 index put } for pop
124 % Loop over the number of vertical cells
125 3 index % nw nh px py str nh
127 currentpoint % nw nh px py str cx cy
128 2 index show % nw nh px py str cx cy
129 YStep add moveto % nw nh px py str
130 } repeat % nw nh px py str
136 % PATkshow - kshow with the current pattezn
137 /PATkshow { % proc string
138 exch bind % string proc
139 1 index 0 get % string proc char
140 % Loop over all but the last character in the string
141 0 1 4 index length 2 sub {
142 % string proc char idx
143 % Find the n+1th character in the string
144 3 index exch 1 add get % string proe char char+1
145 exch 2 copy % strinq proc char+1 char char+1 char
146 % Now show the nth character
147 PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
148 false charpath % string proc char+1 char char+1
150 % Move past the character (charpath modified the current point)
151 currentpoint newpath moveto
152 % Execute the user proc (should consume char and char+1)
153 mark 3 1 roll % string proc char+1 mark char char+1
154 4 index exec % string proc char+1 mark...
155 cleartomark % string proc char+1
157 % Now display the last character
158 PATsstr dup 0 4 -1 roll put % string proc (char+1)
159 false charpath % string proc
164 % PATmp - the makepattern equivalent
165 /PATmp { % patdict patmtx PATmp patinstance
166 exch dup length 7 add % We will add 6 new entries plus 1 FID
167 dict copy % Create a new dictionary
169 % Matrix to install when painting the pattern
171 /PatternGState PATcg def
172 PatternGState /cm 3 -1 roll put
173 % Check for multi pattern sources (Level 1 fast color patterns)
174 currentdict /Multi known not { /Multi 1 def } if
175 % Font dictionary definitions
177 % Create a dummy encoding vector
178 /Encoding 256 array def
180 Encoding exch dup 3 index cvs cvn put } for pop
181 /FontMatrix matrix def
184 mark 3 1 roll % mark dict char
186 Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
187 PaintType 2 eq Multi 1 ne or
188 { XStep 0 FontBBox aload pop setcachedevice }
189 { XStep 0 setcharwidth } ifelse
190 currentdict % mark [paintdata] dict
191 /PaintProc load % mark [paintdata] dict paintproc
194 false PATredef exec true PATredef
200 /foo exch % /foo newlict
203 % PATpcalc - calculates the starting point and width/height
204 % of the tile fill for the shape
205 /PATpcalc { % - PATpcalc nw nh px py
206 PATDict /CurrentPattern get begin
208 % Set up the coordinate system to Pattern Space
209 % and lock down pattern
210 PatternGState /cm get setmatrix
211 BBox aload pop pop pop translate
212 % Determine the bounding box of the shape
213 pathbbox % llx lly urx ury
215 % Determine (nw, nh) the # of cells to paint width and height
216 PatHeight div ceiling % llx lly urx qh
217 4 1 roll % qh llx lly urx
218 PatWidth div ceiling % qh llx lly qw
219 4 1 roll % qw qh llx lly
220 PatHeight div floor % qw qh llx ph
221 4 1 roll % ph qw qh llx
222 PatWidth div floor % ph qw qh pw
223 4 1 roll % pw ph qw qh
224 2 index sub cvi abs % pw ph qs qh-ph
225 exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
226 % Determine the starting point of the pattern fill
228 4 2 roll % nw nh pw ph
229 PatHeight mul % nw nh pw py
231 PatWidth mul exch % nw nh px py
235 % Save the original routines so that we can use them later on
236 /oldfill /fill load def
237 /oldeofill /eofill load def
238 /oldstroke /stroke load def
239 /oldshow /show load def
240 /oldashow /ashow load def
241 /oldwidthshow /widthshow load def
242 /oldawidthshow /awidthshow load def
243 /oldkshow /kshow load def
245 % These defs are necessary so that subsequent procs don't bind in
247 /fill { oldfill } bind def
248 /eofill { oldeofill } bind def
249 /stroke { oldstroke } bind def
250 /show { oldshow } bind def
251 /ashow { oldashow } bind def
252 /widthshow { oldwidthshow } bind def
253 /awidthshow { oldawidthshow } bind def
254 /kshow { oldkshow } bind def
258 /fill { /clip load PATdraw newpath } bind def
259 /eofill { /eoclip load PATdraw newpath } bind def
260 /stroke { PATstroke } bind def
261 /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
262 /ashow { 0 0 null 6 3 roll PATawidthshow }
264 /widthshow { 0 0 3 -1 roll PATawidthshow }
266 /awidthshow { PATawidthshow } bind def
267 /kshow { PATkshow } bind def
269 /fill { oldfill } bind def
270 /eofill { oldeofill } bind def
271 /stroke { oldstroke } bind def
272 /show { oldshow } bind def
273 /ashow { oldashow } bind def
274 /widthshow { oldwidthshow } bind def
275 /awidthshow { oldawidthshow } bind def
276 /kshow { oldkshow } bind def
281 % Conditionally define setcmykcolor if not available
282 /setcmykcolor where { pop } {
286 3 index add neg dup 0 lt { pop 0 } if 3 1 roll
291 /PATsc { % colorarray
292 aload length % c1 ... cn length
293 dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
303 cc aload pop setrgbcolor
312 /CurrentPattern exch def
313 % If it's an uncolored pattern, save the color
314 CurrentPattern /PaintType get 2 eq {
317 /CColor [ currentrgbcolor ] def
320 % PATstroke - stroke with the current pattern
326 currentpoint strokepath moveto
327 PATpcalc % proc nw nh px py
330 (*** PATstroke Warning: Path is too complex, stroking
334 countdictstack exch sub dup 0 gt
335 { { end } repeat } { pop } ifelse
336 gsave 0.5 setgray oldstroke grestore
337 } { pop restore pop } ifelse
340 /PATtcalc { % modmtx tilingtype PATtcalc tilematrix
341 % Note: tiling types 2 and 3 are not supported
343 exch concat % tilingtype
344 matrix currentmatrix exch % cmtx tilingtype
345 % Tiling type 1 and 3: constant spacing
347 % Distort the pattern so that it occupies
348 % an integral number of device pixels
349 dup 4 get exch dup 5 get exch % tx ty cmtx
351 round exch round exch % tx ty cmtx dx.x dx.y
352 XStep div exch XStep div exch % tx ty cmtx a b
354 round exch round exch % tx ty cmtx a b dy.x dy.y
355 YStep div exch YStep div exch % tx ty cmtx a b c d
356 7 -3 roll astore % { a b c d tx ty }
380 { 32 32 true [ 32 0 0 -32 0 32 ]
381 {<808080804040404020202020101010100808080804040404
382 020202020101010180808080404040402020202010101010
383 080808080404040402020202010101018080808040404040
384 202020201010101008080808040404040202020201010101
385 808080804040404020202020101010100808080804040404
410 { 32 32 true [ 32 0 0 -32 0 32 ]
411 {<010101010202020204040404080808081010101020202020
412 404040408080808001010101020202020404040408080808
413 101010102020202040404040808080800101010102020202
414 040404040808080810101010202020204040404080808080
415 010101010202020204040404080808081010101020202020
440 { 32 32 true [ 32 0 0 -32 0 32 ]
441 {<828282824444444428282828101010102828282844444444
442 828282820101010182828282444444442828282810101010
443 282828284444444482828282010101018282828244444444
444 282828281010101028282828444444448282828201010101
445 828282824444444428282828101010102828282844444444
456 1.1111 1.1111 scale %restore scale
458 /cp {closepath} bind def
459 /ef {eofill} bind def
460 /gr {grestore} bind def
463 /rs {restore} bind def
466 /rm {rmoveto} bind def
467 /n {newpath} bind def
470 /slc {setlinecap} bind def
471 /slj {setlinejoin} bind def
472 /slw {setlinewidth} bind def
473 /srgb {setrgbcolor} bind def
474 /rot {rotate} bind def
476 /sd {setdash} bind def
477 /ff {findfont} bind def
478 /sf {setfont} bind def
479 /scf {scalefont} bind def
480 /sw {stringwidth} bind def
481 /tr {translate} bind def
482 /tnt {dup dup currentrgbcolor
483 4 -2 roll dup 1 exch sub 3 -1 roll mul add
484 4 -2 roll dup 1 exch sub 3 -1 roll mul add
485 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
487 /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
488 4 -2 roll mul srgb} bind def
496 /savematrix mtrx currentmatrix def
497 x y tr xrad yrad sc 0 0 1 startangle endangle arc
502 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
503 /$F2psEnd {$F2psEnteredState restore end} def
508 n -1000 5537 m -1000 -1000 l 6415 -1000 l 6415 5537 l cp clip
512 n 4050 2700 m 4950 2700 l 4950 2250 l 4050 2250 l 4050 2700 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
513 15.00 15.00 sc P5 [16 0 0 -16 270.00 150.00] PATmp PATsp ef gr PATusp gs col0 s gr
515 n 3150 2250 m 4950 2250 l 4950 1800 l 3150 1800 l 3150 2250 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
516 15.00 15.00 sc P5 [16 0 0 -16 210.00 120.00] PATmp PATsp ef gr PATusp gs col0 s gr
518 n 1800 3600 m 4050 3600 l 4050 2700 l 1800 2700 l 1800 3600 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
519 15.00 15.00 sc P4 [16 0 0 -16 120.00 180.00] PATmp PATsp ef gr PATusp gs col0 s gr
521 n 2250 2700 m 3600 2700 l 3600 2250 l 2250 2250 l 2250 2700 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
522 15.00 15.00 sc P4 [16 0 0 -16 150.00 150.00] PATmp PATsp ef gr PATusp gs col0 s gr
524 n 1800 2250 m 5400 2250 l gs col0 s gr
526 n 3600 2700 m 4050 2700 l 4050 2250 l 3600 2250 l 3600 2700 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
527 15.00 15.00 sc P6 [16 0 0 -16 240.00 150.00] PATmp PATsp ef gr PATusp gs col0 s gr
528 /Times-BoldItalic ff 270.00 scf sf
530 gs 1 -1 sc (j) col-1 sh gr
531 /Times-BoldItalic ff 270.00 scf sf
533 gs 1 -1 sc (i) col-1 sh gr
534 /Times-BoldItalic ff 270.00 scf sf
536 gs 1 -1 sc (i') col-1 sh gr
538 n 1793 3143 m 5393 3143 l gs col-1 s gr
541 n 1793 3593 m 5393 3593 l 5393 1793 l 1793 1793 l 1793 3593 l cp gs col-1 s gr
544 n 3143 3593 m 3143 1793 l gs col-1 s gr
547 n 3030 3255 68 68 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
551 n 1793 2693 m 5393 2693 l gs col-1 s gr
554 n 4605 2130 68 68 0 360 DrawEllipse gs col-1 s gr
559 n 4155 1455 900 900 0 360 DrawEllipse gs col-1 s gr
563 n 3030 3255 900 900 0 360 DrawEllipse gs col-1 s gr
567 n 4155 1455 68 68 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
572 3470 4373 m 3950 4493 l 3470 4613 l 4103 4613 l 4103 4373 l cp
574 n 443 4493 m 4043 4493 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
575 15.00 15.00 sc P6 [16 0 0 -16 29.53 299.53] PATmp PATsp ef gr PATusp gs col-1 s gr gr
578 n 3470 4373 m 3950 4493 l 3470 4613 l col-1 s
581 n 2243 3593 m 2243 1793 l gs col-1 s gr
585 1163 3115 m 1518 2771 l 1366 3242 l 1702 2706 l 1498 2579 l cp
587 n 443 4493 m 1568 2693 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
588 15.00 15.00 sc P6 [16 0 0 -16 29.53 179.53] PATmp PATsp ef gr PATusp gs col-1 s gr gr
591 n 1163 3115 m 1518 2771 l 1366 3242 l col-1 s
594 n 4943 3593 m 4943 1793 l gs col-1 s gr
596 n 4493 3593 m 4493 1793 l gs col-1 s gr
598 n 4043 3593 m 4043 1793 l gs col-1 s gr
600 n 3593 3593 m 3593 1793 l gs col-1 s gr
602 n 2693 3593 m 2693 1793 l gs col-1 s gr