1 |
%!PS-Adobe-3.0 |
2 |
%%BoundingBox: 24 24 588 768 |
3 |
%%Title: Enscript Output |
4 |
%%For: Andrea Molod |
5 |
%%Creator: GNU enscript 1.6.1 |
6 |
%%CreationDate: Wed Jan 28 13:33:50 2004 |
7 |
%%Orientation: Portrait |
8 |
%%Pages: (atend) |
9 |
%%DocumentMedia: Letter 612 792 0 () () |
10 |
%%DocumentNeededResources: (atend) |
11 |
%%EndComments |
12 |
%%BeginProlog |
13 |
%%BeginResource: procset Enscript-Prolog 1.6 1 |
14 |
% |
15 |
% Procedures. |
16 |
% |
17 |
|
18 |
/_S { % save current state |
19 |
/_s save def |
20 |
} def |
21 |
/_R { % restore from saved state |
22 |
_s restore |
23 |
} def |
24 |
|
25 |
/S { % showpage protecting gstate |
26 |
gsave |
27 |
showpage |
28 |
grestore |
29 |
} bind def |
30 |
|
31 |
/MF { % fontname newfontname -> - make a new encoded font |
32 |
/newfontname exch def |
33 |
/fontname exch def |
34 |
|
35 |
/fontdict fontname findfont def |
36 |
/newfont fontdict maxlength dict def |
37 |
|
38 |
fontdict { |
39 |
exch |
40 |
dup /FID eq { |
41 |
% skip FID pair |
42 |
pop pop |
43 |
} { |
44 |
% copy to the new font dictionary |
45 |
exch newfont 3 1 roll put |
46 |
} ifelse |
47 |
} forall |
48 |
|
49 |
newfont /FontName newfontname put |
50 |
|
51 |
% insert only valid encoding vectors |
52 |
encoding_vector length 256 eq { |
53 |
newfont /Encoding encoding_vector put |
54 |
} if |
55 |
|
56 |
newfontname newfont definefont pop |
57 |
} def |
58 |
|
59 |
/SF { % fontname width height -> - set a new font |
60 |
/height exch def |
61 |
/width exch def |
62 |
|
63 |
findfont |
64 |
[width 0 0 height 0 0] makefont setfont |
65 |
} def |
66 |
|
67 |
/SUF { % fontname width height -> - set a new user font |
68 |
/height exch def |
69 |
/width exch def |
70 |
|
71 |
/F-gs-user-font MF |
72 |
/F-gs-user-font width height SF |
73 |
} def |
74 |
|
75 |
/M {moveto} bind def |
76 |
/s {show} bind def |
77 |
|
78 |
/Box { % x y w h -> - define box path |
79 |
/d_h exch def /d_w exch def /d_y exch def /d_x exch def |
80 |
d_x d_y moveto |
81 |
d_w 0 rlineto |
82 |
0 d_h rlineto |
83 |
d_w neg 0 rlineto |
84 |
closepath |
85 |
} def |
86 |
|
87 |
/bgs { % x y height blskip gray str -> - show string with bg color |
88 |
/str exch def |
89 |
/gray exch def |
90 |
/blskip exch def |
91 |
/height exch def |
92 |
/y exch def |
93 |
/x exch def |
94 |
|
95 |
gsave |
96 |
x y blskip sub str stringwidth pop height Box |
97 |
gray setgray |
98 |
fill |
99 |
grestore |
100 |
x y M str s |
101 |
} def |
102 |
|
103 |
% Highlight bars. |
104 |
/highlight_bars { % nlines lineheight output_y_margin gray -> - |
105 |
gsave |
106 |
setgray |
107 |
/ymarg exch def |
108 |
/lineheight exch def |
109 |
/nlines exch def |
110 |
|
111 |
% This 2 is just a magic number to sync highlight lines to text. |
112 |
0 d_header_y ymarg sub 2 sub translate |
113 |
|
114 |
/cw d_output_w cols div def |
115 |
/nrows d_output_h ymarg 2 mul sub lineheight div cvi def |
116 |
|
117 |
% for each column |
118 |
0 1 cols 1 sub { |
119 |
cw mul /xp exch def |
120 |
|
121 |
% for each rows |
122 |
0 1 nrows 1 sub { |
123 |
/rn exch def |
124 |
rn lineheight mul neg /yp exch def |
125 |
rn nlines idiv 2 mod 0 eq { |
126 |
% Draw highlight bar. 4 is just a magic indentation. |
127 |
xp 4 add yp cw 8 sub lineheight neg Box fill |
128 |
} if |
129 |
} for |
130 |
} for |
131 |
|
132 |
grestore |
133 |
} def |
134 |
|
135 |
% Line highlight bar. |
136 |
/line_highlight { % x y width height gray -> - |
137 |
gsave |
138 |
/gray exch def |
139 |
Box gray setgray fill |
140 |
grestore |
141 |
} def |
142 |
|
143 |
% Column separator lines. |
144 |
/column_lines { |
145 |
gsave |
146 |
.1 setlinewidth |
147 |
0 d_footer_h translate |
148 |
/cw d_output_w cols div def |
149 |
1 1 cols 1 sub { |
150 |
cw mul 0 moveto |
151 |
0 d_output_h rlineto stroke |
152 |
} for |
153 |
grestore |
154 |
} def |
155 |
|
156 |
% Column borders. |
157 |
/column_borders { |
158 |
gsave |
159 |
.1 setlinewidth |
160 |
0 d_footer_h moveto |
161 |
0 d_output_h rlineto |
162 |
d_output_w 0 rlineto |
163 |
0 d_output_h neg rlineto |
164 |
closepath stroke |
165 |
grestore |
166 |
} def |
167 |
|
168 |
% Do the actual underlay drawing |
169 |
/draw_underlay { |
170 |
ul_style 0 eq { |
171 |
ul_str true charpath stroke |
172 |
} { |
173 |
ul_str show |
174 |
} ifelse |
175 |
} def |
176 |
|
177 |
% Underlay |
178 |
/underlay { % - -> - |
179 |
gsave |
180 |
0 d_page_h translate |
181 |
d_page_h neg d_page_w atan rotate |
182 |
|
183 |
ul_gray setgray |
184 |
ul_font setfont |
185 |
/dw d_page_h dup mul d_page_w dup mul add sqrt def |
186 |
ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto |
187 |
draw_underlay |
188 |
grestore |
189 |
} def |
190 |
|
191 |
/user_underlay { % - -> - |
192 |
gsave |
193 |
ul_x ul_y translate |
194 |
ul_angle rotate |
195 |
ul_gray setgray |
196 |
ul_font setfont |
197 |
0 0 ul_h_ptsize 2 div sub moveto |
198 |
draw_underlay |
199 |
grestore |
200 |
} def |
201 |
|
202 |
% Page prefeed |
203 |
/page_prefeed { % bool -> - |
204 |
statusdict /prefeed known { |
205 |
statusdict exch /prefeed exch put |
206 |
} { |
207 |
pop |
208 |
} ifelse |
209 |
} def |
210 |
|
211 |
% Wrapped line markers |
212 |
/wrapped_line_mark { % x y charwith charheight type -> - |
213 |
/type exch def |
214 |
/h exch def |
215 |
/w exch def |
216 |
/y exch def |
217 |
/x exch def |
218 |
|
219 |
type 2 eq { |
220 |
% Black boxes (like TeX does) |
221 |
gsave |
222 |
0 setlinewidth |
223 |
x w 4 div add y M |
224 |
0 h rlineto w 2 div 0 rlineto 0 h neg rlineto |
225 |
closepath fill |
226 |
grestore |
227 |
} { |
228 |
type 3 eq { |
229 |
% Small arrows |
230 |
gsave |
231 |
.2 setlinewidth |
232 |
x w 2 div add y h 2 div add M |
233 |
w 4 div 0 rlineto |
234 |
x w 4 div add y lineto stroke |
235 |
|
236 |
x w 4 div add w 8 div add y h 4 div add M |
237 |
x w 4 div add y lineto |
238 |
w 4 div h 8 div rlineto stroke |
239 |
grestore |
240 |
} { |
241 |
% do nothing |
242 |
} ifelse |
243 |
} ifelse |
244 |
} def |
245 |
|
246 |
% EPSF import. |
247 |
|
248 |
/BeginEPSF { |
249 |
/b4_Inc_state save def % Save state for cleanup |
250 |
/dict_count countdictstack def % Count objects on dict stack |
251 |
/op_count count 1 sub def % Count objects on operand stack |
252 |
userdict begin |
253 |
/showpage { } def |
254 |
0 setgray 0 setlinecap |
255 |
1 setlinewidth 0 setlinejoin |
256 |
10 setmiterlimit [ ] 0 setdash newpath |
257 |
/languagelevel where { |
258 |
pop languagelevel |
259 |
1 ne { |
260 |
false setstrokeadjust false setoverprint |
261 |
} if |
262 |
} if |
263 |
} bind def |
264 |
|
265 |
/EndEPSF { |
266 |
count op_count sub { pos } repeat % Clean up stacks |
267 |
countdictstack dict_count sub { end } repeat |
268 |
b4_Inc_state restore |
269 |
} bind def |
270 |
|
271 |
% Check PostScript language level. |
272 |
/languagelevel where { |
273 |
pop /gs_languagelevel languagelevel def |
274 |
} { |
275 |
/gs_languagelevel 1 def |
276 |
} ifelse |
277 |
%%EndResource |
278 |
%%BeginResource: procset Enscript-Encoding-88591 1.6 1 |
279 |
/encoding_vector [ |
280 |
/.notdef /.notdef /.notdef /.notdef |
281 |
/.notdef /.notdef /.notdef /.notdef |
282 |
/.notdef /.notdef /.notdef /.notdef |
283 |
/.notdef /.notdef /.notdef /.notdef |
284 |
/.notdef /.notdef /.notdef /.notdef |
285 |
/.notdef /.notdef /.notdef /.notdef |
286 |
/.notdef /.notdef /.notdef /.notdef |
287 |
/.notdef /.notdef /.notdef /.notdef |
288 |
/space /exclam /quotedbl /numbersign |
289 |
/dollar /percent /ampersand /quoteright |
290 |
/parenleft /parenright /asterisk /plus |
291 |
/comma /hyphen /period /slash |
292 |
/zero /one /two /three |
293 |
/four /five /six /seven |
294 |
/eight /nine /colon /semicolon |
295 |
/less /equal /greater /question |
296 |
/at /A /B /C |
297 |
/D /E /F /G |
298 |
/H /I /J /K |
299 |
/L /M /N /O |
300 |
/P /Q /R /S |
301 |
/T /U /V /W |
302 |
/X /Y /Z /bracketleft |
303 |
/backslash /bracketright /asciicircum /underscore |
304 |
/quoteleft /a /b /c |
305 |
/d /e /f /g |
306 |
/h /i /j /k |
307 |
/l /m /n /o |
308 |
/p /q /r /s |
309 |
/t /u /v /w |
310 |
/x /y /z /braceleft |
311 |
/bar /braceright /tilde /.notdef |
312 |
/.notdef /.notdef /.notdef /.notdef |
313 |
/.notdef /.notdef /.notdef /.notdef |
314 |
/.notdef /.notdef /.notdef /.notdef |
315 |
/.notdef /.notdef /.notdef /.notdef |
316 |
/.notdef /.notdef /.notdef /.notdef |
317 |
/.notdef /.notdef /.notdef /.notdef |
318 |
/.notdef /.notdef /.notdef /.notdef |
319 |
/.notdef /.notdef /.notdef /.notdef |
320 |
/space /exclamdown /cent /sterling |
321 |
/currency /yen /brokenbar /section |
322 |
/dieresis /copyright /ordfeminine /guillemotleft |
323 |
/logicalnot /hyphen /registered /macron |
324 |
/degree /plusminus /twosuperior /threesuperior |
325 |
/acute /mu /paragraph /bullet |
326 |
/cedilla /onesuperior /ordmasculine /guillemotright |
327 |
/onequarter /onehalf /threequarters /questiondown |
328 |
/Agrave /Aacute /Acircumflex /Atilde |
329 |
/Adieresis /Aring /AE /Ccedilla |
330 |
/Egrave /Eacute /Ecircumflex /Edieresis |
331 |
/Igrave /Iacute /Icircumflex /Idieresis |
332 |
/Eth /Ntilde /Ograve /Oacute |
333 |
/Ocircumflex /Otilde /Odieresis /multiply |
334 |
/Oslash /Ugrave /Uacute /Ucircumflex |
335 |
/Udieresis /Yacute /Thorn /germandbls |
336 |
/agrave /aacute /acircumflex /atilde |
337 |
/adieresis /aring /ae /ccedilla |
338 |
/egrave /eacute /ecircumflex /edieresis |
339 |
/igrave /iacute /icircumflex /idieresis |
340 |
/eth /ntilde /ograve /oacute |
341 |
/ocircumflex /otilde /odieresis /divide |
342 |
/oslash /ugrave /uacute /ucircumflex |
343 |
/udieresis /yacute /thorn /ydieresis |
344 |
] def |
345 |
%%EndResource |
346 |
%%EndProlog |
347 |
%%BeginSetup |
348 |
%%IncludeResource: font Courier-Bold |
349 |
%%IncludeResource: font Courier |
350 |
/HFpt_w 10 def |
351 |
/HFpt_h 10 def |
352 |
/Courier-Bold /HF-gs-font MF |
353 |
/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def |
354 |
/Courier /F-gs-font MF |
355 |
/F-gs-font 10 10 SF |
356 |
/#copies 1 def |
357 |
% Pagedevice definitions: |
358 |
gs_languagelevel 1 gt { |
359 |
<< |
360 |
/PageSize [612 792] |
361 |
>> setpagedevice |
362 |
} if |
363 |
%%BeginResource: procset Enscript-Header-simple 1.6 1 |
364 |
|
365 |
/do_header { % print default simple header |
366 |
gsave |
367 |
d_header_x d_header_y HFpt_h 3 div add translate |
368 |
|
369 |
HF setfont |
370 |
user_header_p { |
371 |
5 0 moveto user_header_left_str show |
372 |
|
373 |
d_header_w user_header_center_str stringwidth pop sub 2 div |
374 |
0 moveto user_header_center_str show |
375 |
|
376 |
d_header_w user_header_right_str stringwidth pop sub 5 sub |
377 |
0 moveto user_header_right_str show |
378 |
} { |
379 |
5 0 moveto fname show |
380 |
45 0 rmoveto fmodstr show |
381 |
45 0 rmoveto pagenumstr show |
382 |
} ifelse |
383 |
|
384 |
grestore |
385 |
} def |
386 |
%%EndResource |
387 |
/d_page_w 564 def |
388 |
/d_page_h 744 def |
389 |
/d_header_x 0 def |
390 |
/d_header_y 729 def |
391 |
/d_header_w 564 def |
392 |
/d_header_h 15 def |
393 |
/d_footer_x 0 def |
394 |
/d_footer_y 0 def |
395 |
/d_footer_w 564 def |
396 |
/d_footer_h 0 def |
397 |
/d_output_w 564 def |
398 |
/d_output_h 729 def |
399 |
/cols 1 def |
400 |
%%EndSetup |
401 |
%%Page: (1) 1 |
402 |
%%BeginPageSetup |
403 |
_S |
404 |
24 24 translate |
405 |
/pagenum 1 def |
406 |
/fname (placeholder) def |
407 |
/fdir () def |
408 |
/ftail (placeholder) def |
409 |
% User defined strings: |
410 |
/fmodstr (Wed Jan 28 13:33:37 2004) def |
411 |
/pagenumstr (1) def |
412 |
/user_header_p false def |
413 |
%%EndPageSetup |
414 |
do_header |
415 |
5 716 M |
416 |
(This is a placeholder) s |
417 |
_R |
418 |
S |
419 |
%%Trailer |
420 |
%%Pages: 1 |
421 |
%%DocumentNeededResources: font Courier-Bold Courier |
422 |
%%EOF |