4
%%Creator: a version of a2ps
5
%%CreationDate: once upon a time
6
%%BoundingBox: 24 24 571 818
7
%%DocumentData: Clean7Bit
8
%%Orientation: Portrait
11
%%DocumentMedia: A4 595 842 0 () ()
12
%%DocumentNeededResources: font Courier
15
%%+ font Helvetica-Bold
19
%%DocumentProcessColors: Black Blue Green Red
20
%%DocumentSuppliedResources: procset a2ps-color-prolog
21
%%+ encoding ISO-8859-1Encoding
23
/a2psdict 200 dict def
26
%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
27
%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
28
% Check PostScript language level.
29
/languagelevel where {
30
pop /gs_languagelevel languagelevel def
32
/gs_languagelevel 1 def
35
% EPSF import as in the Red Book
37
/b4_Inc_state save def % Save state for cleanup
38
/dict_count countdictstack def % Count objects on dict stack
39
/op_count count 1 sub def % Count objects on operand stack
41
0 setgray 0 setlinecap
42
1 setlinewidth 0 setlinejoin
43
10 setmiterlimit [ ] 0 setdash newpath
44
gs_languagelevel 1 ne {
45
false setstrokeadjust false setoverprint
50
count op_count sub { pos } repeat % Clean up stacks
51
countdictstack dict_count sub { end } repeat
65
/page_prefeed { % bool -> -
66
statusdict /prefeed known {
67
statusdict exch /prefeed exch put
74
findfont exch scalefont def
78
findfont reencode 2 copy definefont pop def
81
% Function c-show (str => -)
82
% centers text only according to x axis.
89
% Function l-show (str => -)
90
% prints texts so that it ends at currentpoint
92
dup stringwidth pop neg
97
% center-fit show (str w => -)
98
% show centered, and scale currentfont so that the width is less than w
100
exch dup stringwidth pop
101
% If the title is too big, try to make it smaller
106
currentfont exch scalefont setfont
111
c-show % center title
114
% Return the y size of the current font
117
currentfont /FontMatrix get 3 get 1000 mul
121
% <encoding-vector> <fontdict> -> <newfontdict>
123
dup length 5 add dict begin
125
% <vector> <key> <val>
127
{ def }{ pop pop } ifelse
129
/Encoding exch def % -
131
% Use the font's bounding box to determine the ascent, descent,
132
% and overall height; don't forget that these values have to be
133
% transformed using the font's matrix.
134
% We use `load' because sometimes BBox is executable, sometimes not.
135
% Since we need 4 numbers an not an array avoid BBox from being executed
136
/FontBBox load aload pop
137
FontMatrix transform /Ascent exch def pop
138
FontMatrix transform /Descent exch def pop
139
/FontHeight Ascent Descent sub def
141
% Get the underline position and thickness if they're defined.
142
% Use 1 if they are not defined.
143
currentdict /FontInfo 2 copy known
145
/UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP
147
{ get }{ pop pop 1 } ifelse
148
0 exch FontMatrix transform exch pop
151
/UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT
153
{ get }{ pop pop 1 } ifelse
154
0 exch FontMatrix transform exch pop
164
% Function print line number (<string> # -)
167
sx cw mul neg 2 div 0 rmoveto
173
% -------- Some routines to enlight plain b/w printings ---------
181
0 currentfont /Descent get currentfontsize mul rmoveto
198
% Draw a box of WIDTH wrt current font
205
0 currentfont /Descent get currentfontsize mul rmoveto
207
0 currentfont /FontHeight get currentfontsize mul rlineto
226
% ------------- Color routines ---------------
228
/FG /setrgbcolor load def
230
% Draw the background
237
0 currentfont /Descent get currentfontsize mul rmoveto
239
0 currentfont /FontHeight get currentfontsize mul rlineto
242
bgcolor aload pop setrgbcolor
247
% Draw bg for a string
249
/dobackgroundstring {
257
{ mark 4 1 roll ] /bgcolor exch store } if
262
bg { dup dobackgroundstring } if
263
ul { dup dounderlinestring } if
264
bx { dup doboxstring } if
268
% Function T(ab), jumps to the n-th tabulation in the current line
271
bg { dup currentpoint pop sub dobackground } if
272
ul { dup currentpoint pop sub dounderline } if
273
bx { dup currentpoint pop sub dobox } if
277
% Function n: move to the next line
283
% Function N: show and move to the next line
294
%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
295
%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
296
% Function title: prints page header.
297
% <ct> <rt> <lt> are passed as argument
299
% 1. Draw the background
300
x v get y v get moveto
303
0 th 2 div neg rmoveto
305
0.5 0.5 1 setrgbcolor
317
x v get y v get th sub 1 add moveto
318
%%IncludeResource: font Helvetica
319
fHelvetica fnfs 0.8 mul scalefont setfont
322
dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
323
fnfs 0.8 mul hm rmoveto
330
dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
332
pw exch stringwidth pop fnfs 0.8 mul add sub
338
% 5. the center title
343
% Move to the center of the left room
344
sub add 2 div hm rmoveto
345
% What is the available space in here?
346
add sub fnfs 0.8 mul sub fnfs 0.8 mul sub
348
%%IncludeResource: font Helvetica-Bold
349
fHelvetica-Bold fnfs scalefont setfont
355
% Function border: prints virtual page border
357
gsave % print four sides
359
x v get y v get moveto
360
0.7 setlinewidth % of the square
368
% Function water: prints a water mark in background
371
scx scy moveto rotate
372
%%IncludeResource: font Times-Bold
373
fTimes-Bold 100 scalefont setfont
375
dup stringwidth pop 2 div neg -50 rmoveto
380
% Function rhead: prints the right header
383
fHelvetica fnfs 0.8 mul scalefont setfont
387
% Function footer (cf rf lf -> -)
389
fHelvetica fnfs 0.8 mul scalefont setfont
400
% Function print line number (<string> # -)
403
sx cw mul neg 2 div 0 rmoveto
408
%%BeginResource: procset a2ps-color-prolog 2.0 1
410
%% Definition of the color faces.
416
fCourier bfs scalefont setfont
423
fSymbol bfs scalefont setfont
432
fCourier bfs scalefont setfont
441
fCourier-Bold bfs scalefont setfont
450
fCourier bfs scalefont setfont
459
fCourier-Bold bfs scalefont setfont
468
fCourier bfs scalefont setfont
477
fCourier-Bold bfs scalefont setfont
486
fTimes-Roman bfs scalefont setfont
495
fHelvetica-Bold bfs scalefont setfont
499
% Function print line number (<string> # -)
502
sx cw mul 2 div neg 0 rmoveto
511
%%IncludeResource: font Courier
512
%%IncludeResource: font Courier-Bold
513
%%IncludeResource: font Times-Roman
514
%%IncludeResource: font Symbol
515
%%BeginResource: encoding ISO-8859-1Encoding
516
/ISO-8859-1Encoding [
517
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
518
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
519
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
520
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
521
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
522
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
523
/zero /one /two /three /four /five /six /seven
524
/eight /nine /colon /semicolon /less /equal /greater /question
525
/at /A /B /C /D /E /F /G
526
/H /I /J /K /L /M /N /O
527
/P /Q /R /S /T /U /V /W
528
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
529
/quoteleft /a /b /c /d /e /f /g
530
/h /i /j /k /l /m /n /o
531
/p /q /r /s /t /u /v /w
532
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
533
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
534
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
535
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
536
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
537
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
538
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
539
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet
540
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
541
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
542
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
543
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
544
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
545
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
546
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
547
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
548
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
551
% Initialize page description variables.
564
% Dictionary for ISO-8859-1 support
565
/iso1dict 6 dict begin
566
/fCourier ISO-8859-1Encoding /Courier reencode_font
567
/fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font
568
/fHelvetica ISO-8859-1Encoding /Helvetica reencode_font
569
/fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font
570
/fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font
571
/fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font
573
/bgcolor [ 0 0 0 ] def
577
% The font for line numbering
578
/f# /Helvetica findfont bfs .6 mul scalefont def
579
/fSymbol /Symbol findfont def
580
/hm fnfs 0.25 mul def
587
/pmw urx llx sub pw 2 mul sub 1 div def
588
/pmh ury lly sub ph 2 mul sub 24 sub 1 div def
597
pmh ph add 1 mul ph add
599
pmh ph add 0 mul ph add
611
/ly ury fnfs 0.8 mul sub def