Mercurial > emacs
comparison lispintro/cons-1.eps @ 41418:a8ee89e61d20
*** empty log message ***
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 24 Nov 2001 08:45:51 +0000 |
parents | |
children | 6ad2412f0362 |
comparison
equal
deleted
inserted
replaced
41417:b64f74d6f056 | 41418:a8ee89e61d20 |
---|---|
1 %! | |
2 %%BoundingBox: 35 711 289 757 | |
3 %%Title: cons-cell-diagram1 | |
4 %%CreationDate: Wed Mar 8 14:26:58 1995 | |
5 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) | |
6 % | |
7 % Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1 | |
8 % | |
9 | |
10 /tgifdict 132 dict def | |
11 tgifdict begin | |
12 | |
13 % | |
14 % Using a zero value radius for an ellipse or an arc would result | |
15 % in a non-invertible CTM matrix which causes problem when this | |
16 % when this PostScript is wrapped inside other routines, such as | |
17 % the multi.ps package from | |
18 % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such | |
19 % error by uncommenting the sole line of the procedure below: | |
20 % | |
21 /tgif_min_radius | |
22 { | |
23 % dup 0.01 lt { pop 0.01 } if | |
24 } bind def | |
25 | |
26 /tgifellipsedict 6 dict def | |
27 tgifellipsedict /mtrx matrix put | |
28 | |
29 /tgifellipse | |
30 { tgifellipsedict begin | |
31 /yrad exch def | |
32 /xrad exch def | |
33 /y exch def | |
34 /x exch def | |
35 /savematrix mtrx currentmatrix def | |
36 x y translate | |
37 xrad yrad scale | |
38 0 0 1 0 360 arc | |
39 savematrix setmatrix | |
40 end | |
41 } def | |
42 | |
43 /tgifarrowtipdict 8 dict def | |
44 tgifarrowtipdict /mtrx matrix put | |
45 | |
46 /tgifarrowtip | |
47 { tgifarrowtipdict begin | |
48 /dy exch def | |
49 /dx exch def | |
50 /h exch def | |
51 /w exch def | |
52 /y exch def | |
53 /x exch def | |
54 /savematrix mtrx currentmatrix def | |
55 x y translate | |
56 dy dx atan rotate | |
57 0 0 moveto | |
58 w neg h lineto | |
59 w neg h neg lineto | |
60 savematrix setmatrix | |
61 end | |
62 } def | |
63 | |
64 /tgifarcdict 8 dict def | |
65 tgifarcdict /mtrx matrix put | |
66 | |
67 /tgifarcn | |
68 { tgifarcdict begin | |
69 /endangle exch def | |
70 /startangle exch def | |
71 /yrad exch def | |
72 /xrad exch def | |
73 /y exch def | |
74 /x exch def | |
75 /savematrix mtrx currentmatrix def | |
76 x y translate | |
77 xrad yrad scale | |
78 0 0 1 startangle endangle arc | |
79 savematrix setmatrix | |
80 end | |
81 } def | |
82 | |
83 /tgifarc | |
84 { tgifarcdict begin | |
85 /endangle exch def | |
86 /startangle exch def | |
87 /yrad exch def | |
88 /xrad exch def | |
89 /y exch def | |
90 /x exch def | |
91 /savematrix mtrx currentmatrix def | |
92 x y translate | |
93 xrad yrad scale | |
94 0 0 1 startangle endangle arcn | |
95 savematrix setmatrix | |
96 end | |
97 } def | |
98 | |
99 /tgifsetuserscreendict 22 dict def | |
100 tgifsetuserscreendict begin | |
101 /tempctm matrix def | |
102 /temprot matrix def | |
103 /tempscale matrix def | |
104 | |
105 /concatprocs | |
106 { /proc2 exch cvlit def | |
107 /proc1 exch cvlit def | |
108 /newproc proc1 length proc2 length add array def | |
109 newproc 0 proc1 putinterval | |
110 newproc proc1 length proc2 putinterval | |
111 newproc cvx | |
112 } def | |
113 /resmatrix matrix def | |
114 /findresolution | |
115 { 72 0 resmatrix defaultmatrix dtransform | |
116 /yres exch def /xres exch def | |
117 xres dup mul yres dup mul add sqrt | |
118 } def | |
119 end | |
120 | |
121 /tgifsetuserscreen | |
122 { tgifsetuserscreendict begin | |
123 /spotfunction exch def | |
124 /screenangle exch def | |
125 /cellsize exch def | |
126 | |
127 /m tempctm currentmatrix def | |
128 /rm screenangle temprot rotate def | |
129 /sm cellsize dup tempscale scale def | |
130 | |
131 sm rm m m concatmatrix m concatmatrix pop | |
132 | |
133 1 0 m dtransform /y1 exch def /x1 exch def | |
134 | |
135 /veclength x1 dup mul y1 dup mul add sqrt def | |
136 /frequency findresolution veclength div def | |
137 | |
138 /newscreenangle y1 x1 atan def | |
139 | |
140 m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt | |
141 | |
142 {{neg} /spotfunction load concatprocs | |
143 /spotfunction exch def | |
144 } if | |
145 | |
146 frequency newscreenangle /spotfunction load setscreen | |
147 end | |
148 } def | |
149 | |
150 /tgifsetpatterndict 18 dict def | |
151 tgifsetpatterndict begin | |
152 /bitison | |
153 { /ybit exch def /xbit exch def | |
154 /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def | |
155 | |
156 /mask 1 7 xbit 8 mod sub bitshift def | |
157 bytevalue mask and 0 ne | |
158 } def | |
159 end | |
160 | |
161 /tgifbitpatternspotfunction | |
162 { tgifsetpatterndict begin | |
163 /y exch def /x exch def | |
164 | |
165 /xindex x 1 add 2 div bpside mul cvi def | |
166 /yindex y 1 add 2 div bpside mul cvi def | |
167 | |
168 xindex yindex bitison | |
169 { /onbits onbits 1 add def 1 } | |
170 { /offbits offbits 1 add def 0 } | |
171 ifelse | |
172 end | |
173 } def | |
174 | |
175 /tgifsetpattern | |
176 { tgifsetpatterndict begin | |
177 /cellsz exch def | |
178 /angle exch def | |
179 /bwidth exch def | |
180 /bpside exch def | |
181 /bstring exch def | |
182 | |
183 /onbits 0 def /offbits 0 def | |
184 cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen | |
185 {} settransfer | |
186 offbits offbits onbits add div setgray | |
187 end | |
188 } def | |
189 | |
190 /tgifxpmdict 4 dict def | |
191 /tgifbwpicstr 1 string def | |
192 /tgifcolorpicstr 3 string def | |
193 | |
194 /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def | |
195 | |
196 /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def | |
197 | |
198 /tgifbwspot | |
199 { tgifxpmdict begin | |
200 /index exch def | |
201 tgifbwpicstr 0 | |
202 pixels index 3 mul 3 getinterval aload pop | |
203 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add | |
204 cvi put | |
205 tgifbwpicstr | |
206 end | |
207 } def | |
208 | |
209 /tgifcolorspot | |
210 { tgifxpmdict begin | |
211 /index exch def | |
212 pixels index 3 mul 3 getinterval aload pop | |
213 255 mul cvi tgifcolorpicstr 2 3 -1 roll put | |
214 255 mul cvi tgifcolorpicstr 1 3 -1 roll put | |
215 255 mul cvi tgifcolorpicstr 0 3 -1 roll put | |
216 tgifcolorpicstr | |
217 end | |
218 } def | |
219 | |
220 /tgifnewcolorspot | |
221 { tgifxpmdict begin | |
222 /index exch def | |
223 pixels index 3 mul 3 getinterval aload pop setrgbcolor | |
224 end | |
225 } def | |
226 | |
227 /tgifcolordict 4 dict def | |
228 | |
229 /colorimage where | |
230 { pop } | |
231 { /colorimage | |
232 { tgifcolordict begin | |
233 pop pop pop pop pop | |
234 /ih exch def | |
235 /iw exch def | |
236 /x 0 def | |
237 /y 0 def | |
238 1 1 ih | |
239 { pop 1 1 iw | |
240 { pop currentfile | |
241 tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot | |
242 x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto | |
243 closepath fill | |
244 /x x 1 add def | |
245 } for | |
246 /y y 1 add def | |
247 /x 0 def | |
248 } for | |
249 end | |
250 } def | |
251 } ifelse | |
252 | |
253 /tgifpatdict 10 dict def | |
254 | |
255 /tgifpatbyte | |
256 { currentdict /retstr get exch | |
257 pat i cellsz mod get put | |
258 } def | |
259 | |
260 /tgifpatproc | |
261 { 0 1 widthlim {tgifpatbyte} for retstr | |
262 /i i 1 add def | |
263 } def | |
264 | |
265 /tgifpatfill | |
266 { tgifpatdict begin | |
267 /h exch def | |
268 /w exch def | |
269 /lty exch def | |
270 /ltx exch def | |
271 /cellsz exch def | |
272 /pat exch def | |
273 | |
274 /widthlim w cellsz div cvi 1 sub def | |
275 /retstr widthlim 1 add string def | |
276 /i 0 def | |
277 | |
278 ltx lty translate | |
279 w h true [1 0 0 1 0 0] {tgifpatproc} imagemask | |
280 ltx neg lty neg translate | |
281 end | |
282 } def | |
283 | |
284 /pat1 <ffffffffffffffff> def | |
285 /pat2 <0000000000000000> def | |
286 /pat3 <8000000008000000> def | |
287 /pat4 <8800000022000000> def | |
288 /pat5 <8800220088002200> def | |
289 /pat6 <8822882288228822> def | |
290 /pat7 <aa55aa55aa55aa55> def | |
291 /pat8 <77dd77dd77dd77dd> def | |
292 /pat9 <77ffddff77ffddff> def | |
293 /pat10 <77ffffff77ffffff> def | |
294 /pat11 <7fffffff7fffffff> def | |
295 /pat12 <8040200002040800> def | |
296 /pat13 <40a00000040a0000> def | |
297 /pat14 <ff888888ff888888> def | |
298 /pat15 <ff808080ff080808> def | |
299 /pat16 <f87422478f172271> def | |
300 /pat17 <038448300c020101> def | |
301 /pat18 <081c22c180010204> def | |
302 /pat19 <8080413e080814e3> def | |
303 /pat20 <8040201008040201> def | |
304 /pat21 <8844221188442211> def | |
305 /pat22 <77bbddee77bbddee> def | |
306 /pat23 <c1e070381c0e0783> def | |
307 /pat24 <7fbfdfeff7fbfdfe> def | |
308 /pat25 <3e1f8fc7e3f1f87c> def | |
309 /pat26 <0102040810204080> def | |
310 /pat27 <1122448811224488> def | |
311 /pat28 <eeddbb77eeddbb77> def | |
312 /pat29 <83070e1c3870e0c1> def | |
313 /pat30 <fefdfbf7efdfbf7f> def | |
314 /pat31 <7cf8f1e3c78f1f3e> def | |
315 | |
316 /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def | |
317 | |
318 /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def | |
319 | |
320 /tgifreencsmalldict 12 dict def | |
321 /tgifReEncodeSmall | |
322 { tgifreencsmalldict begin | |
323 /newcodesandnames exch def | |
324 /newfontname exch def | |
325 /basefontname exch def | |
326 | |
327 /basefontdict basefontname findfont def | |
328 /newfont basefontdict maxlength dict def | |
329 | |
330 basefontdict | |
331 { exch dup /FID ne | |
332 { dup /Encoding eq | |
333 { exch dup length array copy newfont 3 1 roll put } | |
334 { exch newfont 3 1 roll put } | |
335 ifelse | |
336 } | |
337 { pop pop } | |
338 ifelse | |
339 } | |
340 forall | |
341 | |
342 newfont /FontName newfontname put | |
343 newcodesandnames aload pop | |
344 | |
345 newcodesandnames length 2 idiv | |
346 { newfont /Encoding get 3 1 roll put} | |
347 repeat | |
348 | |
349 newfontname newfont definefont pop | |
350 end | |
351 } def | |
352 | |
353 /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def | |
354 | |
355 /tgifboxdict 6 dict def | |
356 /tgifboxstroke | |
357 { tgifboxdict begin | |
358 /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def | |
359 1.415 setmiterlimit | |
360 w 1 eq { w setlinewidth } if | |
361 pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if | |
362 newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath | |
363 pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse | |
364 pat pat1 ne pat pat2 ne and { grestore } if | |
365 w 1 eq { 1 setlinewidth } if | |
366 1 setmiterlimit | |
367 end | |
368 } def | |
369 /tgifboxfill | |
370 { tgifboxdict begin | |
371 /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def | |
372 pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if | |
373 newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath | |
374 pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse | |
375 pat pat1 ne pat pat2 ne and { grestore } if | |
376 end | |
377 } def | |
378 | |
379 end | |
380 | |
381 %%PageBoundingBox: 35 711 289 757 | |
382 tgifdict begin | |
383 /tgifsavedpage save def | |
384 | |
385 1 setmiterlimit | |
386 1 setlinewidth | |
387 | |
388 0 setgray | |
389 | |
390 72 0 mul 72 11.00 mul translate | |
391 72 128 div 100 mul 100 div dup neg scale | |
392 | |
393 gsave | |
394 | |
395 % BOX | |
396 gsave | |
397 1.415 setmiterlimit | |
398 newpath | |
399 66 66 moveto 130 66 lineto 130 98 lineto 66 98 lineto | |
400 closepath stroke | |
401 1 setmiterlimit | |
402 grestore | |
403 | |
404 % POLY/OPEN-SPLINE | |
405 gsave | |
406 newpath | |
407 98 66 moveto | |
408 98 98 lineto | |
409 stroke | |
410 grestore | |
411 | |
412 % POLY/OPEN-SPLINE | |
413 gsave | |
414 newpath | |
415 114 82 moveto | |
416 0 80 atan dup cos 8 mul 194 exch sub | |
417 exch sin 8 mul 82 exch sub lineto | |
418 stroke | |
419 grestore | |
420 gsave | |
421 newpath | |
422 194 82 8 3 80 0 tgifarrowtip | |
423 closepath fill | |
424 grestore | |
425 | |
426 % TEXT | |
427 0 setgray | |
428 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
429 gsave | |
430 146 136 moveto (rose) show | |
431 grestore | |
432 | |
433 % POLY/OPEN-SPLINE | |
434 gsave | |
435 newpath | |
436 82 82 moveto | |
437 82 131 lineto | |
438 0 48 atan dup cos 8 mul 130 exch sub | |
439 exch sin 8 mul 131 exch sub lineto | |
440 stroke | |
441 grestore | |
442 gsave | |
443 newpath | |
444 130 131 8 3 48 0 tgifarrowtip | |
445 closepath fill | |
446 grestore | |
447 | |
448 % BOX | |
449 gsave | |
450 1.415 setmiterlimit | |
451 newpath | |
452 199 66 moveto 263 66 lineto 263 98 lineto 199 98 lineto | |
453 closepath stroke | |
454 1 setmiterlimit | |
455 grestore | |
456 | |
457 % POLY/OPEN-SPLINE | |
458 gsave | |
459 newpath | |
460 231 66 moveto | |
461 231 98 lineto | |
462 stroke | |
463 grestore | |
464 | |
465 % POLY/OPEN-SPLINE | |
466 gsave | |
467 newpath | |
468 247 82 moveto | |
469 0 93 atan dup cos 8 mul 340 exch sub | |
470 exch sin 8 mul 82 exch sub lineto | |
471 stroke | |
472 grestore | |
473 gsave | |
474 newpath | |
475 340 82 8 3 93 0 tgifarrowtip | |
476 closepath fill | |
477 grestore | |
478 | |
479 % TEXT | |
480 0 setgray | |
481 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
482 gsave | |
483 279 136 moveto (violet) show | |
484 grestore | |
485 | |
486 % POLY/OPEN-SPLINE | |
487 gsave | |
488 newpath | |
489 215 82 moveto | |
490 215 131 lineto | |
491 0 48 atan dup cos 8 mul 263 exch sub | |
492 exch sin 8 mul 131 exch sub lineto | |
493 stroke | |
494 grestore | |
495 gsave | |
496 newpath | |
497 263 131 8 3 48 0 tgifarrowtip | |
498 closepath fill | |
499 grestore | |
500 | |
501 % BOX | |
502 gsave | |
503 1.415 setmiterlimit | |
504 newpath | |
505 342 64 moveto 406 64 lineto 406 96 lineto 342 96 lineto | |
506 closepath stroke | |
507 1 setmiterlimit | |
508 grestore | |
509 | |
510 % POLY/OPEN-SPLINE | |
511 gsave | |
512 newpath | |
513 373 64 moveto | |
514 373 96 lineto | |
515 stroke | |
516 grestore | |
517 | |
518 % POLY/OPEN-SPLINE | |
519 gsave | |
520 newpath | |
521 389 81 moveto | |
522 0 48 atan dup cos 8 mul 437 exch sub | |
523 exch sin 8 mul 81 exch sub lineto | |
524 stroke | |
525 grestore | |
526 gsave | |
527 newpath | |
528 437 81 8 3 48 0 tgifarrowtip | |
529 closepath fill | |
530 grestore | |
531 | |
532 % TEXT | |
533 0 setgray | |
534 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
535 gsave | |
536 421 135 moveto (buttercup) show | |
537 grestore | |
538 | |
539 % POLY/OPEN-SPLINE | |
540 gsave | |
541 newpath | |
542 357 81 moveto | |
543 357 130 lineto | |
544 0 48 atan dup cos 8 mul 405 exch sub | |
545 exch sin 8 mul 130 exch sub lineto | |
546 stroke | |
547 grestore | |
548 gsave | |
549 newpath | |
550 405 130 8 3 48 0 tgifarrowtip | |
551 closepath fill | |
552 grestore | |
553 | |
554 % TEXT | |
555 0 setgray | |
556 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
557 gsave | |
558 449 87 moveto (nil) show | |
559 grestore | |
560 | |
561 grestore | |
562 tgifsavedpage restore | |
563 end | |
564 %MatchingCreationDate: Wed Mar 8 14:26:58 1995 |