Mercurial > emacs
comparison lispintro/cons-4.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: 6 681 355 758 | |
3 %%Title: cons-cell-diagram4 | |
4 %%CreationDate: Wed Mar 8 14:25:06 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: 6 681 355 758 | |
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 % POLY/OPEN-SPLINE | |
396 gsave | |
397 newpath | |
398 274 102 moveto | |
399 274 134 lineto | |
400 stroke | |
401 grestore | |
402 | |
403 % POLY/OPEN-SPLINE | |
404 gsave | |
405 newpath | |
406 289 122 moveto | |
407 0 56 atan dup cos 8 mul 345 exch sub | |
408 exch sin 8 mul 122 exch sub lineto | |
409 stroke | |
410 grestore | |
411 gsave | |
412 newpath | |
413 345 122 8 3 56 0 tgifarrowtip | |
414 closepath fill | |
415 grestore | |
416 | |
417 % BOX | |
418 gsave | |
419 1.415 setmiterlimit | |
420 newpath | |
421 350 100 moveto 414 100 lineto 414 132 lineto 350 132 lineto | |
422 closepath stroke | |
423 1 setmiterlimit | |
424 grestore | |
425 | |
426 % POLY/OPEN-SPLINE | |
427 gsave | |
428 newpath | |
429 382 100 moveto | |
430 382 132 lineto | |
431 stroke | |
432 grestore | |
433 | |
434 % POLY/OPEN-SPLINE | |
435 gsave | |
436 newpath | |
437 397 114 moveto | |
438 0 59 atan dup cos 8 mul 456 exch sub | |
439 exch sin 8 mul 114 exch sub lineto | |
440 stroke | |
441 grestore | |
442 gsave | |
443 newpath | |
444 456 114 8 3 59 0 tgifarrowtip | |
445 closepath fill | |
446 grestore | |
447 | |
448 % TEXT | |
449 0 setgray | |
450 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
451 gsave | |
452 430 170 moveto (violet) show | |
453 grestore | |
454 | |
455 % POLY/OPEN-SPLINE | |
456 gsave | |
457 newpath | |
458 366 116 moveto | |
459 366 165 lineto | |
460 0 48 atan dup cos 8 mul 414 exch sub | |
461 exch sin 8 mul 165 exch sub lineto | |
462 stroke | |
463 grestore | |
464 gsave | |
465 newpath | |
466 414 165 8 3 48 0 tgifarrowtip | |
467 closepath fill | |
468 grestore | |
469 | |
470 % TEXT | |
471 0 setgray | |
472 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
473 gsave | |
474 219 78 moveto (flowers) show | |
475 grestore | |
476 | |
477 % POLY/OPEN-SPLINE | |
478 gsave | |
479 newpath | |
480 298 73 moveto | |
481 325 73 lineto | |
482 325 111 lineto | |
483 0 18 atan dup cos 8 mul 343 exch sub | |
484 exch sin 8 mul 111 exch sub lineto | |
485 stroke | |
486 grestore | |
487 gsave | |
488 newpath | |
489 343 111 8 3 18 0 tgifarrowtip | |
490 closepath fill | |
491 grestore | |
492 | |
493 % BOX | |
494 gsave | |
495 1.415 setmiterlimit | |
496 newpath | |
497 459 95 moveto 523 95 lineto 523 127 lineto 459 127 lineto | |
498 closepath stroke | |
499 1 setmiterlimit | |
500 grestore | |
501 | |
502 % POLY/OPEN-SPLINE | |
503 gsave | |
504 newpath | |
505 490 95 moveto | |
506 490 127 lineto | |
507 stroke | |
508 grestore | |
509 | |
510 % POLY/OPEN-SPLINE | |
511 gsave | |
512 newpath | |
513 506 112 moveto | |
514 0 48 atan dup cos 8 mul 554 exch sub | |
515 exch sin 8 mul 112 exch sub lineto | |
516 stroke | |
517 grestore | |
518 gsave | |
519 newpath | |
520 554 112 8 3 48 0 tgifarrowtip | |
521 closepath fill | |
522 grestore | |
523 | |
524 % TEXT | |
525 0 setgray | |
526 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
527 gsave | |
528 566 118 moveto (nil) show | |
529 grestore | |
530 | |
531 % TEXT | |
532 0 setgray | |
533 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
534 gsave | |
535 538 151 moveto (buttercup) show | |
536 grestore | |
537 | |
538 % POLY/OPEN-SPLINE | |
539 gsave | |
540 newpath | |
541 474 109 moveto | |
542 474 146 lineto | |
543 0 48 atan dup cos 8 mul 522 exch sub | |
544 exch sin 8 mul 146 exch sub lineto | |
545 stroke | |
546 grestore | |
547 gsave | |
548 newpath | |
549 522 146 8 3 48 0 tgifarrowtip | |
550 closepath fill | |
551 grestore | |
552 | |
553 % BOX | |
554 gsave | |
555 1.415 setmiterlimit | |
556 newpath | |
557 244 102 moveto 308 102 lineto 308 134 lineto 244 134 lineto | |
558 closepath stroke | |
559 1 setmiterlimit | |
560 grestore | |
561 | |
562 % TEXT | |
563 0 setgray | |
564 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
565 gsave | |
566 324 189 moveto (rose) show | |
567 grestore | |
568 | |
569 % POLY/OPEN-SPLINE | |
570 gsave | |
571 newpath | |
572 260 117 moveto | |
573 260 184 lineto | |
574 0 48 atan dup cos 8 mul 308 exch sub | |
575 exch sin 8 mul 184 exch sub lineto | |
576 stroke | |
577 grestore | |
578 gsave | |
579 newpath | |
580 308 184 8 3 48 0 tgifarrowtip | |
581 closepath fill | |
582 grestore | |
583 | |
584 % BOX | |
585 gsave | |
586 1.415 setmiterlimit | |
587 newpath | |
588 146 101 moveto 210 101 lineto 210 133 lineto 146 133 lineto | |
589 closepath stroke | |
590 1 setmiterlimit | |
591 grestore | |
592 | |
593 % POLY/OPEN-SPLINE | |
594 gsave | |
595 newpath | |
596 177 101 moveto | |
597 177 133 lineto | |
598 stroke | |
599 grestore | |
600 | |
601 % POLY/OPEN-SPLINE | |
602 gsave | |
603 newpath | |
604 193 118 moveto | |
605 0 48 atan dup cos 8 mul 241 exch sub | |
606 exch sin 8 mul 118 exch sub lineto | |
607 stroke | |
608 grestore | |
609 gsave | |
610 newpath | |
611 241 118 8 3 48 0 tgifarrowtip | |
612 closepath fill | |
613 grestore | |
614 | |
615 % TEXT | |
616 0 setgray | |
617 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
618 gsave | |
619 187 178 moveto (lily) show | |
620 grestore | |
621 | |
622 % POLY/OPEN-SPLINE | |
623 gsave | |
624 newpath | |
625 163 118 moveto | |
626 163 171 lineto | |
627 0 18 atan dup cos 8 mul 181 exch sub | |
628 exch sin 8 mul 171 exch sub lineto | |
629 stroke | |
630 grestore | |
631 gsave | |
632 newpath | |
633 181 171 8 3 18 0 tgifarrowtip | |
634 closepath fill | |
635 grestore | |
636 | |
637 % TEXT | |
638 0 setgray | |
639 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
640 gsave | |
641 16 78 moveto (bouquet) show | |
642 grestore | |
643 | |
644 % POLY/OPEN-SPLINE | |
645 gsave | |
646 newpath | |
647 95 73 moveto | |
648 122 73 lineto | |
649 122 111 lineto | |
650 0 18 atan dup cos 8 mul 140 exch sub | |
651 exch sin 8 mul 111 exch sub lineto | |
652 stroke | |
653 grestore | |
654 gsave | |
655 newpath | |
656 140 111 8 3 18 0 tgifarrowtip | |
657 closepath fill | |
658 grestore | |
659 | |
660 grestore | |
661 tgifsavedpage restore | |
662 end | |
663 %MatchingCreationDate: Wed Mar 8 14:25:06 1995 |