2 %%BoundingBox: 15 702 300 767
3 %%Title: cons-cell-diagram2a
4 %%CreationDate: Tue Mar 14 15:09:30 1995
5 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
7 % Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
10 % Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
11 % Free Software Foundation, Inc.
13 % This file is part of GNU Emacs.
15 % GNU Emacs is free software: you can redistribute it and/or modify
16 % it under the terms of the GNU General Public License as published by
17 % the Free Software Foundation, either version 3 of the License, or
18 % (at your option) any later version.
20 % GNU Emacs is distributed in the hope that it will be useful,
21 % but WITHOUT ANY WARRANTY; without even the implied warranty of
22 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 % GNU General Public License for more details.
25 % You should have received a copy of the GNU General Public License
26 % along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
28 /tgifdict 132 dict def
32 % Using a zero value radius for an ellipse or an arc would result
33 % in a non-invertible CTM matrix which causes problem when this
34 % when this PostScript is wrapped inside other routines, such as
35 % the multi.ps package from
36 % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
37 % error by uncommenting the sole line of the procedure below:
41 % dup 0.01 lt { pop 0.01 } if
44 /tgifellipsedict 6 dict def
45 tgifellipsedict /mtrx matrix put
48 { tgifellipsedict begin
53 /savematrix mtrx currentmatrix def
61 /tgifarrowtipdict 8 dict def
62 tgifarrowtipdict /mtrx matrix put
65 { tgifarrowtipdict begin
72 /savematrix mtrx currentmatrix def
82 /tgifarcdict 8 dict def
83 tgifarcdict /mtrx matrix put
93 /savematrix mtrx currentmatrix def
96 0 0 1 startangle endangle arc
109 /savematrix mtrx currentmatrix def
112 0 0 1 startangle endangle arcn
117 /tgifsetuserscreendict 22 dict def
118 tgifsetuserscreendict begin
121 /tempscale matrix def
124 { /proc2 exch cvlit def
125 /proc1 exch cvlit def
126 /newproc proc1 length proc2 length add array def
127 newproc 0 proc1 putinterval
128 newproc proc1 length proc2 putinterval
131 /resmatrix matrix def
133 { 72 0 resmatrix defaultmatrix dtransform
134 /yres exch def /xres exch def
135 xres dup mul yres dup mul add sqrt
140 { tgifsetuserscreendict begin
141 /spotfunction exch def
142 /screenangle exch def
145 /m tempctm currentmatrix def
146 /rm screenangle temprot rotate def
147 /sm cellsize dup tempscale scale def
149 sm rm m m concatmatrix m concatmatrix pop
151 1 0 m dtransform /y1 exch def /x1 exch def
153 /veclength x1 dup mul y1 dup mul add sqrt def
154 /frequency findresolution veclength div def
156 /newscreenangle y1 x1 atan def
158 m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
160 {{neg} /spotfunction load concatprocs
161 /spotfunction exch def
164 frequency newscreenangle /spotfunction load setscreen
168 /tgifsetpatterndict 18 dict def
169 tgifsetpatterndict begin
171 { /ybit exch def /xbit exch def
172 /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
174 /mask 1 7 xbit 8 mod sub bitshift def
175 bytevalue mask and 0 ne
179 /tgifbitpatternspotfunction
180 { tgifsetpatterndict begin
181 /y exch def /x exch def
183 /xindex x 1 add 2 div bpside mul cvi def
184 /yindex y 1 add 2 div bpside mul cvi def
186 xindex yindex bitison
187 { /onbits onbits 1 add def 1 }
188 { /offbits offbits 1 add def 0 }
194 { tgifsetpatterndict begin
201 /onbits 0 def /offbits 0 def
202 cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
204 offbits offbits onbits add div setgray
208 /tgifxpmdict 4 dict def
209 /tgifbwpicstr 1 string def
210 /tgifcolorpicstr 3 string def
212 /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
214 /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
220 pixels index 3 mul 3 getinterval aload pop
221 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
230 pixels index 3 mul 3 getinterval aload pop
231 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
232 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
233 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
241 pixels index 3 mul 3 getinterval aload pop setrgbcolor
245 /tgifcolordict 4 dict def
250 { tgifcolordict begin
259 tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
260 x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
271 /tgifpatdict 10 dict def
274 { currentdict /retstr get exch
275 pat i cellsz mod get put
279 { 0 1 widthlim {tgifpatbyte} for retstr
292 /widthlim w cellsz div cvi 1 sub def
293 /retstr widthlim 1 add string def
297 w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
298 ltx neg lty neg translate
302 /pat1 <ffffffffffffffff> def
303 /pat2 <0000000000000000> def
304 /pat3 <8000000008000000> def
305 /pat4 <8800000022000000> def
306 /pat5 <8800220088002200> def
307 /pat6 <8822882288228822> def
308 /pat7 <aa55aa55aa55aa55> def
309 /pat8 <77dd77dd77dd77dd> def
310 /pat9 <77ffddff77ffddff> def
311 /pat10 <77ffffff77ffffff> def
312 /pat11 <7fffffff7fffffff> def
313 /pat12 <8040200002040800> def
314 /pat13 <40a00000040a0000> def
315 /pat14 <ff888888ff888888> def
316 /pat15 <ff808080ff080808> def
317 /pat16 <f87422478f172271> def
318 /pat17 <038448300c020101> def
319 /pat18 <081c22c180010204> def
320 /pat19 <8080413e080814e3> def
321 /pat20 <8040201008040201> def
322 /pat21 <8844221188442211> def
323 /pat22 <77bbddee77bbddee> def
324 /pat23 <c1e070381c0e0783> def
325 /pat24 <7fbfdfeff7fbfdfe> def
326 /pat25 <3e1f8fc7e3f1f87c> def
327 /pat26 <0102040810204080> def
328 /pat27 <1122448811224488> def
329 /pat28 <eeddbb77eeddbb77> def
330 /pat29 <83070e1c3870e0c1> def
331 /pat30 <fefdfbf7efdfbf7f> def
332 /pat31 <7cf8f1e3c78f1f3e> def
334 /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
336 /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
338 /tgifreencsmalldict 12 dict def
340 { tgifreencsmalldict begin
341 /newcodesandnames exch def
342 /newfontname exch def
343 /basefontname exch def
345 /basefontdict basefontname findfont def
346 /newfont basefontdict maxlength dict def
351 { exch dup length array copy newfont 3 1 roll put }
352 { exch newfont 3 1 roll put }
360 newfont /FontName newfontname put
361 newcodesandnames aload pop
363 newcodesandnames length 2 idiv
364 { newfont /Encoding get 3 1 roll put}
367 newfontname newfont definefont pop
371 /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
373 /tgifboxdict 6 dict def
376 /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
378 w 1 eq { w setlinewidth } if
379 pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
380 newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
381 pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
382 pat pat1 ne pat pat2 ne and { grestore } if
383 w 1 eq { 1 setlinewidth } if
389 /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
390 pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
391 newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
392 pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
393 pat pat1 ne pat pat2 ne and { grestore } if
399 %%PageBoundingBox: 15 702 300 767
401 /tgifsavedpage save def
408 72 0 mul 72 11.00 mul translate
409 72 128 div 100 mul 100 div dup neg scale
415 /Courier findfont [17 0 0 -17 0 0] makefont setfont
417 32 62 moveto (bouquet) show
425 0 49 atan dup cos 8 mul 113 exch sub
426 exch sin 8 mul 120 exch sub lineto
431 113 120 8 3 49 0 tgifarrowtip
437 /Courier findfont [17 0 0 -17 0 0] makefont setfont
439 128 110 moveto (car) show
444 /Courier findfont [17 0 0 -17 0 0] makefont setfont
446 128 142 moveto (rose) show
451 /Courier findfont [17 0 0 -17 0 0] makefont setfont
453 192 110 moveto (cdr) show
458 newpath 207 124 4 4 tgifellipse stroke
465 0 38 atan dup cos 8 mul 255 exch sub
466 exch sin 8 mul 123 exch sub lineto
471 255 123 8 3 38 0 tgifarrowtip
477 /Courier findfont [17 0 0 -17 0 0] makefont setfont
479 268 111 moveto (car) show
484 /Courier findfont [17 0 0 -17 0 0] makefont setfont
486 264 143 moveto (violet) show
491 /Courier findfont [17 0 0 -17 0 0] makefont setfont
493 332 111 moveto (cdr) show
498 newpath 347 125 4 4 tgifellipse stroke
505 0 38 atan dup cos 8 mul 395 exch sub
506 exch sin 8 mul 124 exch sub lineto
511 395 124 8 3 38 0 tgifarrowtip
517 /Courier findfont [17 0 0 -17 0 0] makefont setfont
519 408 112 moveto (car) show
524 /Courier findfont [17 0 0 -17 0 0] makefont setfont
526 408 136 moveto (butter-) show
527 408 153 moveto (cup) show
532 /Courier findfont [17 0 0 -17 0 0] makefont setfont
534 496 113 moveto (cdr) show
539 /Courier findfont [17 0 0 -17 0 0] makefont setfont
541 495 137 moveto (nil) show
572 120 86 moveto 234 86 lineto 234 157 lineto 120 157 lineto
581 257 85 moveto 371 85 lineto 371 157 lineto 257 157 lineto
590 397 84 moveto 531 84 lineto 531 157 lineto 397 157 lineto
596 tgifsavedpage restore
598 %MatchingCreationDate: Tue Mar 14 15:09:30 1995