Mercurial > emacs
annotate lispintro/lambda-3.eps @ 59214:39392e702267
(get_line_height_property): New function extracted from
original calc_line_height_property.
(calc_line_height_property): Rework. Handle t and (nil . ratio).
(x_produce_glyphs): Use them to handle line-height and
line-spacing according to new height spec.
(Qtotal): Remove.
(syms_of_xdisp): Remove defsubr and intern for Qtotal.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Thu, 30 Dec 2004 18:01:59 +0000 |
parents | 5791a1f3fd71 |
children | 6ad2412f0362 |
rev | line source |
---|---|
41418 | 1 %! |
2 %%BoundingBox: 33 728 211 777 | |
3 %%Title: lambda-diagram3 | |
4 %%CreationDate: Wed Mar 8 14:33:49 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: 33 728 211 777 | |
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 % TEXT | |
396 0 setgray | |
397 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
398 gsave | |
399 63 43 moveto (\(\(lambda \(arg\) \(/ arg 50\)\) 100\)) show | |
400 grestore | |
401 | |
402 % POLY/OPEN-SPLINE | |
403 gsave | |
404 newpath | |
405 80 48 moveto | |
406 96 64 lineto | |
407 284 64 lineto | |
408 299 48 lineto | |
409 stroke | |
410 grestore | |
411 | |
412 % POLY/OPEN-SPLINE | |
413 gsave | |
414 newpath | |
42507
5791a1f3fd71
Edit lambda-*.eps image files so arrows line up properly.
Robert J. Chassell <bob@rattlesnake.com>
parents:
41418
diff
changeset
|
415 354 86 moveto |
5791a1f3fd71
Edit lambda-*.eps image files so arrows line up properly.
Robert J. Chassell <bob@rattlesnake.com>
parents:
41418
diff
changeset
|
416 -25 0 atan dup cos 8 mul 354 exch sub |
41418 | 417 exch sin 8 mul 61 exch sub lineto |
418 stroke | |
419 grestore | |
420 gsave | |
421 newpath | |
42507
5791a1f3fd71
Edit lambda-*.eps image files so arrows line up properly.
Robert J. Chassell <bob@rattlesnake.com>
parents:
41418
diff
changeset
|
422 354 61 8 3 0 -25 tgifarrowtip |
41418 | 423 closepath fill |
424 grestore | |
425 | |
426 % POLY/OPEN-SPLINE | |
427 gsave | |
428 newpath | |
429 199 70 moveto | |
430 199 86 lineto | |
431 stroke | |
432 grestore | |
433 | |
434 % TEXT | |
435 0 setgray | |
436 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
437 gsave | |
438 101 106 moveto (anonymous function) show | |
439 grestore | |
440 | |
441 % TEXT | |
442 0 setgray | |
443 /Courier findfont [17 0 0 -17 0 0] makefont setfont | |
444 gsave | |
445 293 106 moveto (argument) show | |
446 grestore | |
447 | |
448 grestore | |
449 tgifsavedpage restore | |
450 end | |
451 %MatchingCreationDate: Wed Mar 8 14:33:49 1995 |