summaryrefslogtreecommitdiff
path: root/fonts/utilities/mf2ps/doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/utilities/mf2ps/doc
Initial commit
Diffstat (limited to 'fonts/utilities/mf2ps/doc')
-rw-r--r--fonts/utilities/mf2ps/doc/Fig8.ps287
-rw-r--r--fonts/utilities/mf2ps/doc/Makefile17
-rw-r--r--fonts/utilities/mf2ps/doc/README10
-rw-r--r--fonts/utilities/mf2ps/doc/fig1.ps29
-rw-r--r--fonts/utilities/mf2ps/doc/fig10.ps283
-rw-r--r--fonts/utilities/mf2ps/doc/fig2.ps138
-rw-r--r--fonts/utilities/mf2ps/doc/fig4.ps283
-rw-r--r--fonts/utilities/mf2ps/doc/fig5.ps236
-rw-r--r--fonts/utilities/mf2ps/doc/fig6.ps30
-rw-r--r--fonts/utilities/mf2ps/doc/fig7.ps447
-rw-r--r--fonts/utilities/mf2ps/doc/fig8.ps292
-rw-r--r--fonts/utilities/mf2ps/doc/fig9.ps114
-rw-r--r--fonts/utilities/mf2ps/doc/figure.pages89
-rw-r--r--fonts/utilities/mf2ps/doc/figure.pages.ps508
-rw-r--r--fonts/utilities/mf2ps/doc/paper1755
-rw-r--r--fonts/utilities/mf2ps/doc/paper.pdfbin0 -> 142847 bytes
-rw-r--r--fonts/utilities/mf2ps/doc/paper.ps16427
-rw-r--r--fonts/utilities/mf2ps/doc/paper.ref1890
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/README15
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/builtins.ps16
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/cm.ps211
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/cm.tex8
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/cm7.ps503
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/cm7.tex12
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/cmr.ps4555
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/cmtt.ps6993
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/lasy.ps1715
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/logo.ps1096
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/sy.ps415
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/sy.tex11
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/tt.ps180
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/tt.tex8
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/tt7.ps457
-rw-r--r--fonts/utilities/mf2ps/doc/printsamples/tt7.tex12
34 files changed, 39042 insertions, 0 deletions
diff --git a/fonts/utilities/mf2ps/doc/Fig8.ps b/fonts/utilities/mf2ps/doc/Fig8.ps
new file mode 100644
index 0000000000..4f1f96813b
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/Fig8.ps
@@ -0,0 +1,287 @@
+%! Simon font
+%%BoundingBox: 0 -10 40 50
+%%Was: 0 -5 40 40
+%%Was: 0 0 40 40
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_x
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%new path
+ 192 488 M
+ 22 -2 44 -2 66 -2 c
+ 0 2 l
+ 28 0 54 0 82 2 c
+ -2 -2 l
+-148 0 l
+closepath
+%end path
+%erase
+%new path
+ 404 180 M
+ 146 0 l
+ -22 2 -44 2 -66 2 c
+ 0 -2 l
+-82 0 l
+closepath
+%end path
+%erase
+%new path
+ 410 488 M
+ 24 -2 48 -2 72 -2 c
+ 0 2 l
+ 20 0 38 0 58 2 c
+ -2 -2 l
+-130 0 l
+closepath
+%end path
+%erase
+%new path
+ 188 180 M
+ 128 0 l
+ -24 2 -48 2 -72 2 c
+ 0 -2 l
+-58 0 l
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 280 486 M
+ -2 2 -6 4 -8 4 c
+ 0 -2 l
+ -38 0 l
+ -2 0 -2 0 -4 -2 c
+ 0 -2 l
+ 2 0 l
+ 0 -4 l
+ 76 -100 154 -198 230 -298 c
+ 2 -2 6 -2 8 -2 c
+ 38 0 l
+ 2 0 2 0 4 2 c
+ 0 2 l
+ -2 0 l
+ 0 4 l
+ -76 100 -154 198 -230 298 c
+closepath
+%end path
+fill
+%new path
+ 230 180 M
+ 10 0 l
+ 6 0 12 2 16 6 c
+ 0 0 2 2 2 2 c
+ 80 100 160 198 238 298 c
+ 2 0 2 2 2 2 c
+ -2 0 l
+ 0 0 0 0 -2 2 c
+ -2 0 l
+ 0 -2 l
+ -6 0 l
+ -6 0 -12 -2 -16 -6 c
+ 0 0 -2 -2 -2 -2 c
+ -80 -100 -160 -198 -238 -298 c
+ -2 0 -2 -2 -2 -2 c
+closepath
+%end path
+fill
+%new path
+ 264 442 M
+ 24 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+ -66 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 34 0 46 -4 c
+ 6 -2 10 -6 16 -10 c
+ 2 -4 6 -8 10 -12 c
+closepath
+%end path
+fill
+%new path
+ 314 442 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 6 4 10 c
+ 6 6 14 8 22 8 c
+ 0 22 l
+ -2 -2 l
+ -80 0 l
+ 10 -16 22 -32 32 -48 c
+ 0 2 l
+ 26 0 l
+closepath
+%end path
+fill
+%new path
+ 428 226 M
+ 2 -2 2 -6 2 -8 c
+ -2 0 l
+ 0 -4 0 -6 -4 -10 c
+ -6 -6 -14 -8 -22 -8 c
+ 0 -20 l
+ 82 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+-26 0 l
+closepath
+%end path
+fill
+%new path
+ 478 226 M
+ -24 0 l
+ 10 -16 22 -32 32 -46 c
+ 66 0 l
+ 0 22 l
+ -2 0 l
+ -16 0 -34 0 -46 4 c
+ -6 2 -10 6 -16 10 c
+ -2 4 -6 8 -10 12 c
+closepath
+%end path
+fill
+%new path
+ 422 422 M
+ 12 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+ -72 0 l
+ 0 -22 l
+ 2 0 l
+ 6 0 12 -2 16 -6 c
+ 2 -2 4 -6 4 -10 c
+ 2 -2 2 -4 2 -6 c
+ -2 0 l
+ 0 -8 -4 -18 -10 -24 c
+closepath
+%end path
+fill
+%new path
+ 446 422 M
+ 2 4 6 8 10 12 c
+ 8 8 20 16 32 22 c
+ 16 8 34 12 52 12 c
+ 0 22 l
+ -2 -2 l
+ -58 0 l
+ -16 -22 -32 -46 -48 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%end path
+fill
+%new path
+ 280 246 M
+ -2 -4 -6 -8 -10 -12 c
+ -8 -8 -20 -16 -32 -22 c
+ -16 -8 -34 -12 -52 -12 c
+ 0 -20 l
+ 60 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+-12 0 l
+closepath
+%end path
+fill
+%new path
+ 304 246 M
+ -12 0 l
+ -16 -22 -32 -46 -48 -66 c
+ 74 0 l
+ 0 22 l
+ -2 0 l
+ -6 0 -12 2 -16 6 c
+ -2 2 -4 6 -4 10 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 8 4 18 10 24 c
+closepath
+%end path
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 120 /The_letter_x put
+
+Metrics
+ begin
+/The_letter_x 367 fudge add def
+/.notdef 0 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+%was: 0 -180
+ 0 -200
+ charwdth 1000
+ setcachedevice
+ -186 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+%was: /FontBBox [186 fudge sub 180 552 490] def
+ /FontBBox [186 fudge sub 200 552 490] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 40 scalefont setfont
+ 0 0 moveto (x) show
diff --git a/fonts/utilities/mf2ps/doc/Makefile b/fonts/utilities/mf2ps/doc/Makefile
new file mode 100644
index 0000000000..dd388b5747
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/Makefile
@@ -0,0 +1,17 @@
+F=paper
+PAGES=
+QUEUE=
+/usr/users/dberry/.refsidx.ia: /usr/users/dberry/.refs
+ mkey /usr/users/dberry/.refs | inv -n /usr/users/dberry/.refsidx
+
+$F.ref: $F /usr/users/dberry/.refsidx.ia
+ refer -e -n -p /usr/users/dberry/.refsidx -sADT $F > $F.ref
+
+psroff: $F.ref
+ psfig $F.ref | tbl | eqn | psroff $(PAGES) -ILG -mXP -mpsfig
+
+$F.dt: $F.ref
+ psfig -d $F.ref | tbl | eqn | dtroff $(PAGES) -mXP -mpsfig > $F.dt
+
+$F.ps: $F.ref
+ psfig $F.ref | tbl | eqn | psroff $(PAGES) -ILG -mXP -mpsfig -t > $F.ps
diff --git a/fonts/utilities/mf2ps/doc/README b/fonts/utilities/mf2ps/doc/README
new file mode 100644
index 0000000000..813d51ae37
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/README
@@ -0,0 +1,10 @@
+This directory contains the troff sources for the mf2ps paper
+Environment for Translating \f(LGMETAFONT\fP to PostSscript
+published in TUGboat 11:4, pages 525-541 at the end of 1990.
+
+The refer database addressed by the makefile to make paper.ref from
+paper is too big to include here.. So I have left paper.ref here.
+Also you may not have the tmac.X macro package to run troff. So I have
+left paper.ps in PostScript form here
+To get the pieces of the paper, send paper.ps figure.pages.ps and
+the *.ps pages of the printsamples through your favorite PS printer.
diff --git a/fonts/utilities/mf2ps/doc/fig1.ps b/fonts/utilities/mf2ps/doc/fig1.ps
new file mode 100644
index 0000000000..07ee55dffa
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig1.ps
@@ -0,0 +1,29 @@
+%!
+%%Title: N
+%%Creator: fig2ps
+%%CreationDate: Fri Jul 6 08:19:03 1990
+%%For: dberry@cs24 (dberry,479C,4325,252027,@$CP037,shlomo,cs24,)
+%%Pages: 0
+%%BoundingBox: 0 -12 108 174
+%%Was: 0 0 108 162
+%%EndComments
+/$F2psDict 32 dict def $F2psDict begin $F2psDict /mtrx matrix put
+ end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog
+$F2psBegin
+1 setlinecap 1 setlinejoin
+-72 72 translate
+0.000000 162.000000 translate 0.900 -0.900 scale
+0.700 setlinewidth
+% Polyline
+newpath 179 79 moveto 199 79 lineto 199 259 lineto 179 259 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 159 219 moveto 179 219 lineto 179 239 lineto 159 239 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 139 179 moveto 159 179 lineto 159 219 lineto 139 219 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 119 139 moveto 139 139 lineto 139 179 lineto 119 179 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 99 99 moveto 119 99 lineto 119 139 lineto 99 139 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 79 79 moveto 99 79 lineto 99 259 lineto 79 259 lineto closepath gsave 0.000 setgray fill grestore stroke
+$F2psEnd
diff --git a/fonts/utilities/mf2ps/doc/fig10.ps b/fonts/utilities/mf2ps/doc/fig10.ps
new file mode 100644
index 0000000000..c4dedc6357
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig10.ps
@@ -0,0 +1,283 @@
+%! Simon font
+%%BoundingBox: 0 0 40 40
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_x
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%new path
+ 192 488 0.8 add M
+ 22 -2 0.8 add 44 -2 0.8 add 66 -2 0.8 add c
+ 0 2 0.8 add l
+ 28 0 0.8 add 54 0 0.8 add 82 2 0.8 add c
+ -2 -2 0.8 add l
+-148 0 l
+closepath
+%end path
+%erase
+%new path
+ 404 180 0.8 sub M
+ 146 0 0.8 sub l
+ -22 2 0.8 sub -44 2 0.8 sub -66 2 0.8 sub c
+ 0 -2 0.8 sub l
+-82 0 l
+closepath
+%end path
+%erase
+%new path
+ 410 488 0.8 add M
+ 24 -2 0.8 add 48 -2 0.8 add 72 -2 0.8 add c
+ 0 2 0.8 add l
+ 20 0 0.8 add 38 0 0.8 add 58 2 0.8 add c
+ -2 -2 0.8 add l
+-130 0 l
+closepath
+%end path
+%erase
+%new path
+ 188 180 0.8 sub M
+ 128 0 0.8 sub l
+ -24 2 0.8 sub -48 2 0.8 sub -72 2 0.8 sub c
+ 0 -2 0.8 sub l
+-58 0 l
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 280 486 M
+ -2 2 -6 4 -8 4 c
+ 0 -2 l
+ -38 0 l
+ -2 0 -2 0 -4 -2 c
+ 0 -2 l
+ 2 0 l
+ 0 -4 l
+ 76 -100 154 -198 230 -298 c
+ 2 -2 6 -2 8 -2 c
+ 38 0 l
+ 2 0 2 0 4 2 c
+ 0 2 l
+ -2 0 l
+ 0 4 l
+ -76 100 -154 198 -230 298 c
+closepath
+%end path
+fill
+%new path
+ 230 180 M
+ 10 0 l
+ 6 0 12 2 16 6 c
+ 0 0 2 2 2 2 c
+ 80 100 160 198 238 298 c
+ 2 0 2 2 2 2 c
+ -2 0 l
+ 0 0 0 0 -2 2 c
+ -2 0 l
+ 0 -2 l
+ -6 0 l
+ -6 0 -12 -2 -16 -6 c
+ 0 0 -2 -2 -2 -2 c
+ -80 -100 -160 -198 -238 -298 c
+ -2 0 -2 -2 -2 -2 c
+closepath
+%end path
+fill
+%new path
+ 264 442 M
+ 24 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+ -66 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 34 0 46 -4 c
+ 6 -2 10 -6 16 -10 c
+ 2 -4 6 -8 10 -12 c
+closepath
+%end path
+fill
+%new path
+ 314 442 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 6 4 10 c
+ 6 6 14 8 22 8 c
+ 0 22 l
+ -2 -2 l
+ -80 0 l
+ 10 -16 22 -32 32 -48 c
+ 0 2 l
+ 26 0 l
+closepath
+%end path
+fill
+%new path
+ 428 226 M
+ 2 -2 2 -6 2 -8 c
+ -2 0 l
+ 0 -4 0 -6 -4 -10 c
+ -6 -6 -14 -8 -22 -8 c
+ 0 -20 l
+ 82 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+-26 0 l
+closepath
+%end path
+fill
+%new path
+ 478 226 M
+ -24 0 l
+ 10 -16 22 -32 32 -46 c
+ 66 0 l
+ 0 22 l
+ -2 0 l
+ -16 0 -34 0 -46 4 c
+ -6 2 -10 6 -16 10 c
+ -2 4 -6 8 -10 12 c
+closepath
+%end path
+fill
+%new path
+ 422 422 M
+ 12 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+ -72 0 l
+ 0 -22 l
+ 2 0 l
+ 6 0 12 -2 16 -6 c
+ 2 -2 4 -6 4 -10 c
+ 2 -2 2 -4 2 -6 c
+ -2 0 l
+ 0 -8 -4 -18 -10 -24 c
+closepath
+%end path
+fill
+%new path
+ 446 422 M
+ 2 4 6 8 10 12 c
+ 8 8 20 16 32 22 c
+ 16 8 34 12 52 12 c
+ 0 22 l
+ -2 -2 l
+ -58 0 l
+ -16 -22 -32 -46 -48 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%end path
+fill
+%new path
+ 280 246 M
+ -2 -4 -6 -8 -10 -12 c
+ -8 -8 -20 -16 -32 -22 c
+ -16 -8 -34 -12 -52 -12 c
+ 0 -20 l
+ 60 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+-12 0 l
+closepath
+%end path
+fill
+%new path
+ 304 246 M
+ -12 0 l
+ -16 -22 -32 -46 -48 -66 c
+ 74 0 l
+ 0 22 l
+ -2 0 l
+ -6 0 -12 2 -16 6 c
+ -2 2 -4 6 -4 10 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 8 4 18 10 24 c
+closepath
+%end path
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 120 /The_letter_x put
+
+Metrics
+ begin
+/The_letter_x 367 fudge add def
+/.notdef 0 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -186 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [186 fudge sub 180 552 490] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 40 scalefont setfont
+ 0 0 moveto (x) show
diff --git a/fonts/utilities/mf2ps/doc/fig2.ps b/fonts/utilities/mf2ps/doc/fig2.ps
new file mode 100644
index 0000000000..9e1e4a2721
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig2.ps
@@ -0,0 +1,138 @@
+%!
+%%Title: bezier
+%%Creator: fig2ps
+%%CreationDate: Fri Jul 6 08:19:07 1990
+%%For: dberry@cs24 (dberry,479C,4325,252027,@$CP037,shlomo,cs24,)
+%%Pages: 0
+%%BoundingBox: 0 0 205 419
+%%EndComments
+/$F2psDict 32 dict def $F2psDict begin $F2psDict /mtrx matrix put
+ /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def
+ /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def
+ end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog
+$F2psBegin
+1 setlinecap 1 setlinejoin
+-77 80 translate
+0.000000 419.000000 translate 0.900 -0.900 scale
+0.700 setlinewidth
+% Ellipse
+newpath 299 434 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+% Ellipse
+newpath 259 354 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+% Ellipse
+newpath 199 394 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+% Ellipse
+newpath 179 474 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+% Ellipse
+newpath 159 534 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+% Ellipse
+newpath 99 474 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+% Ellipse
+newpath 119 387 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+ [1 3.200000] 0 setdash
+% Polyline
+newpath 99 199 moveto 179 119 lineto 239 299 lineto 299 199 lineto stroke
+stroke
+ [] 0 setdash
+% Open spline
+newpath 99.000 474.000 moveto 109.000 431.500 lineto
+ 109.000 431.500 119.000 389.000 139.000 461.500 DrawSplineSection
+ 139.000 461.500 159.000 534.000 169.000 504.000 DrawSplineSection
+ 169.000 504.000 179.000 474.000 189.000 434.000 DrawSplineSection
+ 189.000 434.000 199.000 394.000 229.000 374.000 DrawSplineSection
+ 229.000 374.000 259.000 354.000 279.000 394.000 DrawSplineSection
+ 299.000 434.000 lineto stroke
+% Open spline
+newpath 99.000 199.000 moveto 139.000 159.000 lineto
+ 139.000 159.000 179.000 119.000 209.000 209.000 DrawSplineSection
+ 209.000 209.000 239.000 299.000 269.000 249.000 DrawSplineSection
+ 299.000 199.000 lineto stroke
+/Times-Italic findfont 12.000 scalefont setfont
+299 184 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+304 189 moveto
+1 -1 scale
+(4)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+309 429 moveto
+1 -1 scale
+(7)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+269 349 moveto
+1 -1 scale
+(6)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+209 384 moveto
+1 -1 scale
+(5)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+159 554 moveto
+1 -1 scale
+(3)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+154 549 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+94 469 moveto
+1 -1 scale
+(1)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+89 464 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+130 379 moveto
+1 -1 scale
+(2)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+125 374 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+204 379 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+189 494 moveto
+1 -1 scale
+(4)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+184 489 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+304 424 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+264 344 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+99 179 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+104 184 moveto
+1 -1 scale
+(1)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+179 104 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+184 109 moveto
+1 -1 scale
+(2)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+239 314 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+244 319 moveto
+1 -1 scale
+(3)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+$F2psEnd
diff --git a/fonts/utilities/mf2ps/doc/fig4.ps b/fonts/utilities/mf2ps/doc/fig4.ps
new file mode 100644
index 0000000000..fd6a94666b
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig4.ps
@@ -0,0 +1,283 @@
+%! Simon font
+%%BoundingBox: 0 0 70 70
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_Q
+(
+newpath
+%new path
+ 458 668 M
+ -38 0 -74 -18 -102 -44 c
+ -8 -8 -14 -18 -22 -26 c
+ -34 -52 -44 -114 -44 -176 c
+ 2 0 l
+ 0 -60 10 -122 44 -172 c
+ 8 -10 14 -18 22 -24 c
+ 28 -28 62 -46 102 -46 c
+ 0 2 l
+ 40 0 74 18 102 46 c
+ 8 6 14 14 22 24 c
+ 34 50 44 112 44 172 c
+ -2 0 l
+ 0 62 -10 124 -44 176 c
+ -8 8 -14 18 -22 26 c
+ -28 26 -64 44 -102 44 c
+closepath
+%end path
+%new path
+ 458 686 M
+ -60 0 -118 -26 -162 -68 c
+ -2 -4 -6 -6 -8 -10 c
+ -46 -50 -70 -118 -70 -186 c
+ 2 0 l
+ 0 -68 24 -134 70 -184 c
+ 2 -2 4 -4 8 -6 c
+ 42 -44 100 -68 162 -68 c
+ 0 2 l
+ 62 0 120 24 162 68 c
+ 4 2 6 4 8 6 c
+ 46 50 70 116 70 184 c
+ -2 0 l
+ 0 68 -24 136 -70 186 c
+ -2 4 -6 6 -8 10 c
+ -44 42 -102 68 -162 68 c
+closepath
+%end path
+%new path
+ 466 178 M
+ -2 2 l
+ -4 0 l
+ -6 0 -12 2 -16 4 c
+ 0 -2 l
+ 2 0 l
+ -6 2 -14 8 -18 12 c
+ -2 0 l
+ 6 -4 l
+ 0 0 l
+ -2 2 l
+ -6 6 -10 12 -12 20 c
+ 2 -4 l
+ -2 2 l
+ -2 4 -2 10 -2 16 c
+ 2 0 l
+ -2 2 l
+ 2 -2 l
+ -2 -6 l
+ 2 4 l
+ 0 6 0 12 2 18 c
+ 0 -2 l
+ -2 -2 l
+ 2 0 l
+ 2 8 6 16 12 22 c
+ 0 -2 l
+ -8 -4 l
+ 2 0 l
+ 2 2 l
+ 2 0 l
+ 4 6 12 10 18 12 c
+ -4 -2 l
+ 2 2 l
+ 4 2 10 2 16 2 c
+ -2 -2 l
+ 4 2 l
+ 2 2 l
+ -8 -4 l
+ -6 4 l
+ 4 -2 l
+ 2 -2 l
+ 2 0 l
+ 8 0 16 -2 22 -4 c
+ -2 2 l
+ -2 0 l
+ 10 -4 16 -8 22 -14 c
+ 0 2 l
+ 2 -2 l
+ -6 4 l
+ 0 0 l
+ 2 0 l
+ 8 -10 16 -24 20 -38 c
+ 0 2 l
+ -2 2 l
+ 2 0 l
+ 12 -38 14 -84 26 -122 c
+ -2 2 l
+ 2 -4 l
+ 6 -14 12 -28 22 -38 c
+ -2 2 l
+ 4 -4 l
+ 6 -6 14 -10 22 -14 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 6 -2 14 -4 22 -4 c
+ 2 0 l
+ 0 2 l
+ 8 0 14 2 20 4 c
+ 0 -2 l
+ 2 2 l
+ 2 0 l
+ 8 4 16 8 24 16 c
+ -2 -2 l
+ 4 4 l
+ 10 10 18 26 24 42 c
+ 0 2 l
+ 2 2 l
+ 6 20 10 46 10 70 c
+ -2 4 l
+ -2 2 l
+ -4 2 l
+ -2 0 l
+ 0 -2 l
+ -2 0 l
+ 2 2 l
+ -4 -2 l
+ -2 -2 l
+ -2 -4 l
+ 0 -8 -2 -16 -4 -22 c
+ 2 0 l
+ 0 2 l
+ -4 -10 -10 -20 -18 -28 c
+ 0 0 l
+ 8 4 l
+ -4 0 l
+ -2 -2 l
+ -8 -8 -18 -14 -28 -18 c
+ 0 2 l
+ 2 0 l
+ -6 -2 -14 -4 -22 -4 c
+ -2 0 l
+ -4 -4 l
+ 8 4 l
+ 6 -4 l
+ -2 4 l
+ -4 0 l
+ 0 2 l
+ -8 0 -14 0 -20 2 c
+ 4 -2 l
+ -2 2 l
+ -10 4 -16 8 -24 14 c
+ -2 0 l
+ 6 -4 l
+ 2 -2 l
+ -2 2 l
+ 0 2 l
+ -34 34 -42 100 -74 134 c
+ 0 -2 l
+ -2 4 l
+ -2 0 l
+ -6 8 -14 12 -24 16 c
+ 2 -2 l
+ -4 2 l
+ -6 2 -14 4 -20 4 c
+ -2 0 l
+ 0 -2 l
+ -6 0 -12 0 -16 -2 c
+ -2 0 l
+ -2 -2 l
+ -6 -2 -14 -6 -18 -12 c
+ 0 2 l
+ -2 -4 l
+ -2 0 l
+ -6 -6 -10 -14 -12 -22 c
+ 0 -2 l
+ -2 0 l
+ -2 -6 -2 -12 -2 -18 c
+ 2 2 l
+ 0 -4 l
+ 0 -6 0 -12 2 -16 c
+ 0 -2 l
+ 2 -2 l
+ 2 -8 6 -14 12 -20 c
+ 2 -2 l
+ 2 0 l
+ 4 -4 12 -10 18 -12 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 4 -2 10 -4 16 -4 c
+ -2 2 l
+ 6 0 l
+ 2 4 l
+ 2 2 l
+ 0 2 l
+ -2 4 l
+closepath
+%end path
+eofill
+) def
+
+end % of CharDefs dictionary
+
+Encoding 81 /The_letter_Q put
+Encoding 89 /The_letter_Y put
+
+Metrics
+ begin
+/The_letter_Q 527 fudge add def
+/The_letter_Y 525 fudge add def
+/.notdef 400 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -178 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [178 fudge sub 40 704 688] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 70 scalefont setfont
+ 0 0 moveto (Q) show
diff --git a/fonts/utilities/mf2ps/doc/fig5.ps b/fonts/utilities/mf2ps/doc/fig5.ps
new file mode 100644
index 0000000000..bb868ba57c
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig5.ps
@@ -0,0 +1,236 @@
+%! Simon font
+%%BoundingBox: 0 0 70 70
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_Y
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%new path
+ 180 670 0.5 add M
+ 28 -2 0.5 add 58 -2 0.5 add 88 -2 0.5 add c
+ 0 2 0.5 add l
+ 38 0 0.5 add 74 0 0.5 add 110 2 0.5 add c
+ -2 -2 0.5 add l
+-198 0 l
+closepath
+%end path
+%erase
+%new path
+ 550 670 0.5 add M
+ 28 -2 0.5 add 56 -2 0.5 add 84 -2 0.5 add c
+ 0 2 0.5 add l
+ 24 0 0.5 add 46 0 0.5 add 68 2 0.5 add c
+ -2 -2 0.5 add l
+-152 0 l
+closepath
+%end path
+%erase
+%new path
+ 334 180 0.5 sub M
+ 208 0 0.5 sub l
+ -34 2 0.5 sub -70 2 0.5 sub -104 2 0.5 sub c
+ 0 -2 0.5 sub l
+-106 0 l
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 462 406 M
+ 54 86 106 172 160 258 c
+ 0 2 2 2 2 4 c
+ 4 2 8 4 12 4 c
+ 8 0 l
+ 0 -2 l
+ 0 0 2 0 2 -2 c
+ 2 0 2 -2 2 -4 c
+ -2 0 l
+ 0 -2 l
+ -60 -96 -118 -192 -178 -288 c
+ 0 -188 l
+ 0 -2 0 -4 -2 -6 c
+ -52 0 l
+ -2 0 -4 0 -6 2 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 188 l
+ -2 0 l
+ -58 96 -118 192 -176 288 c
+ 0 2 l
+ 2 0 l
+ 0 2 0 4 2 4 c
+ 0 2 2 2 2 2 c
+ 54 0 l
+ 0 -2 l
+ 6 0 10 -2 12 -4 c
+ 2 -2 2 -2 4 -4 c
+ 52 -86 104 -172 156 -258 c
+closepath
+%end path
+%new path
+ 256 624 M
+ 36 0 l
+ -8 16 -18 32 -26 48 c
+ 0 -2 l
+ -88 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 40 0 54 -4 c
+ 4 -2 10 -6 14 -10 c
+ 2 -4 6 -8 8 -12 c
+closepath
+%end path
+%new path
+ 328 624 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 8 2 10 c
+ 2 0 2 0 4 2 c
+ 12 6 28 6 44 6 c
+ 0 22 l
+ -2 -2 l
+ -108 0 l
+ 8 -16 18 -32 26 -48 c
+ 0 2 l
+ 36 0 l
+closepath
+%end path
+%new path
+ 584 604 M
+ 14 0 l
+ 12 22 24 46 36 68 c
+ -2 -2 l
+ -84 0 l
+ 0 -22 l
+ 2 0 l
+ 12 0 24 -2 32 -10 c
+ 2 -2 2 -2 4 -4 c
+ 2 -4 4 -8 4 -14 c
+ -2 0 l
+ 0 -6 -2 -12 -6 -18 c
+closepath
+%end path
+%new path
+ 610 604 M
+ 4 6 10 12 14 18 c
+ 8 6 14 12 24 16 c
+ 16 8 34 12 54 12 c
+ 0 22 l
+ -2 -2 l
+ -68 0 l
+ -12 -22 -24 -46 -36 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%end path
+%new path
+ 406 226 M
+ 0 -6 -2 -14 -6 -18 c
+ -2 -2 -4 -2 -6 -4 c
+ -12 -4 -42 -4 -62 -4 c
+ 0 -20 l
+ 108 0 l
+ 0 48 l
+ -2 -2 l
+-32 0 l
+closepath
+%end path
+%new path
+ 468 226 M
+ -30 0 l
+ 0 -46 l
+ 106 0 l
+ 0 22 l
+ -2 0 l
+ -20 0 -50 0 -62 4 c
+ -2 2 -4 2 -6 4 c
+ -4 4 -6 12 -6 18 c
+closepath
+%end path
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 81 /The_letter_Q put
+Encoding 89 /The_letter_Y put
+
+Metrics
+ begin
+/The_letter_Q 527 fudge add def
+/The_letter_Y 525 fudge add def
+/.notdef 400 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -178 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [178 fudge sub 40 704 688] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 70 scalefont setfont
+ 0 0 moveto (Y) show
diff --git a/fonts/utilities/mf2ps/doc/fig6.ps b/fonts/utilities/mf2ps/doc/fig6.ps
new file mode 100644
index 0000000000..a2c6f548c8
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig6.ps
@@ -0,0 +1,30 @@
+%!
+%%Title: O
+%%Creator: fig2ps
+%%CreationDate: Fri Jul 6 08:19:06 1990
+%%For: dberry@cs24 (dberry,479C,4325,252027,@$CP037,shlomo,cs24,)
+%%Pages: 0
+%%BoundingBox: 0 -12 217 234
+%%Was: 0 0 217 222
+%%EndComments
+/$F2psDict 32 dict def $F2psDict begin $F2psDict /mtrx matrix put
+ /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def
+ end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog
+$F2psBegin
+1 setlinecap 1 setlinejoin
+-71 68 translate
+0.000000 222.000000 translate 0.900 -0.900 scale
+0.700 setlinewidth
+% Ellipse
+newpath 199 199 121 121 0 360 DrawEllipse gsave 0.750 setgray fill grestore stroke
+% Ellipse
+newpath 199 199 61 61 0 360 DrawEllipse gsave 1.000 setgray fill grestore stroke
+% Polyline
+newpath 189 316 moveto 217 319 lineto 189 322 lineto 189 316 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 210 262 moveto 186 259 lineto 210 256 lineto 210 262 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 188 137 moveto 212 139 lineto 188 143 lineto 188 137 lineto closepath gsave 0.000 setgray fill grestore stroke
+% Polyline
+newpath 210 82 moveto 182 79 lineto 210 75 lineto 210 82 lineto closepath gsave 0.000 setgray fill grestore stroke
+$F2psEnd
diff --git a/fonts/utilities/mf2ps/doc/fig7.ps b/fonts/utilities/mf2ps/doc/fig7.ps
new file mode 100644
index 0000000000..7681203441
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig7.ps
@@ -0,0 +1,447 @@
+%! Simon font
+%%BoundingBox: 0 0 158 70
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_Q
+(
+newpath
+%new path
+ 458 668 M
+ -38 0 -74 -18 -102 -44 c
+ -8 -8 -14 -18 -22 -26 c
+ -34 -52 -44 -114 -44 -176 c
+ 2 0 l
+ 0 -60 10 -122 44 -172 c
+ 8 -10 14 -18 22 -24 c
+ 28 -28 62 -46 102 -46 c
+ 0 2 l
+ 40 0 74 18 102 46 c
+ 8 6 14 14 22 24 c
+ 34 50 44 112 44 172 c
+ -2 0 l
+ 0 62 -10 124 -44 176 c
+ -8 8 -14 18 -22 26 c
+ -28 26 -64 44 -102 44 c
+closepath
+%end path
+%new path
+ 458 686 M
+ -60 0 -118 -26 -162 -68 c
+ -2 -4 -6 -6 -8 -10 c
+ -46 -50 -70 -118 -70 -186 c
+ 2 0 l
+ 0 -68 24 -134 70 -184 c
+ 2 -2 4 -4 8 -6 c
+ 42 -44 100 -68 162 -68 c
+ 0 2 l
+ 62 0 120 24 162 68 c
+ 4 2 6 4 8 6 c
+ 46 50 70 116 70 184 c
+ -2 0 l
+ 0 68 -24 136 -70 186 c
+ -2 4 -6 6 -8 10 c
+ -44 42 -102 68 -162 68 c
+closepath
+%end path
+eofill
+%new path
+ 466 178 M
+ -2 2 l
+ -4 0 l
+ -6 0 -12 2 -16 4 c
+ 0 -2 l
+ 2 0 l
+ -6 2 -14 8 -18 12 c
+ -2 0 l
+ 6 -4 l
+ 0 0 l
+ -2 2 l
+ -6 6 -10 12 -12 20 c
+ 2 -4 l
+ -2 2 l
+ -2 4 -2 10 -2 16 c
+ 2 0 l
+ -2 2 l
+ 2 -2 l
+ -2 -6 l
+ 2 4 l
+ 0 6 0 12 2 18 c
+ 0 -2 l
+ -2 -2 l
+ 2 0 l
+ 2 8 6 16 12 22 c
+ 0 -2 l
+ -8 -4 l
+ 2 0 l
+ 2 2 l
+ 2 0 l
+ 4 6 12 10 18 12 c
+ -4 -2 l
+ 2 2 l
+ 4 2 10 2 16 2 c
+ -2 -2 l
+ 4 2 l
+ 2 2 l
+ -8 -4 l
+ -6 4 l
+ 4 -2 l
+ 2 -2 l
+ 2 0 l
+ 8 0 16 -2 22 -4 c
+ -2 2 l
+ -2 0 l
+ 10 -4 16 -8 22 -14 c
+ 0 2 l
+ 2 -2 l
+ -6 4 l
+ 0 0 l
+ 2 0 l
+ 8 -10 16 -24 20 -38 c
+ 0 2 l
+ -2 2 l
+ 2 0 l
+ 12 -38 14 -84 26 -122 c
+ -2 2 l
+ 2 -4 l
+ 6 -14 12 -28 22 -38 c
+ -2 2 l
+ 4 -4 l
+ 6 -6 14 -10 22 -14 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 6 -2 14 -4 22 -4 c
+ 2 0 l
+ 0 2 l
+ 8 0 14 2 20 4 c
+ 0 -2 l
+ 2 2 l
+ 2 0 l
+ 8 4 16 8 24 16 c
+ -2 -2 l
+ 4 4 l
+ 10 10 18 26 24 42 c
+ 0 2 l
+ 2 2 l
+ 6 20 10 46 10 70 c
+ -2 4 l
+ -2 2 l
+ -4 2 l
+ -2 0 l
+ 0 -2 l
+ -2 0 l
+ 2 2 l
+ -4 -2 l
+ -2 -2 l
+ -2 -4 l
+ 0 -8 -2 -16 -4 -22 c
+ 2 0 l
+ 0 2 l
+ -4 -10 -10 -20 -18 -28 c
+ 0 0 l
+ 8 4 l
+ -4 0 l
+ -2 -2 l
+ -8 -8 -18 -14 -28 -18 c
+ 0 2 l
+ 2 0 l
+ -6 -2 -14 -4 -22 -4 c
+ -2 0 l
+ -4 -4 l
+ 8 4 l
+ 6 -4 l
+ -2 4 l
+ -4 0 l
+ 0 2 l
+ -8 0 -14 0 -20 2 c
+ 4 -2 l
+ -2 2 l
+ -10 4 -16 8 -24 14 c
+ -2 0 l
+ 6 -4 l
+ 2 -2 l
+ -2 2 l
+ 0 2 l
+ -34 34 -42 100 -74 134 c
+ 0 -2 l
+ -2 4 l
+ -2 0 l
+ -6 8 -14 12 -24 16 c
+ 2 -2 l
+ -4 2 l
+ -6 2 -14 4 -20 4 c
+ -2 0 l
+ 0 -2 l
+ -6 0 -12 0 -16 -2 c
+ -2 0 l
+ -2 -2 l
+ -6 -2 -14 -6 -18 -12 c
+ 0 2 l
+ -2 -4 l
+ -2 0 l
+ -6 -6 -10 -14 -12 -22 c
+ 0 -2 l
+ -2 0 l
+ -2 -6 -2 -12 -2 -18 c
+ 2 2 l
+ 0 -4 l
+ 0 -6 0 -12 2 -16 c
+ 0 -2 l
+ 2 -2 l
+ 2 -8 6 -14 12 -20 c
+ 2 -2 l
+ 2 0 l
+ 4 -4 12 -10 18 -12 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 4 -2 10 -4 16 -4 c
+ -2 2 l
+ 6 0 l
+ 2 4 l
+ 2 2 l
+ 0 2 l
+ -2 4 l
+closepath
+%end path
+fill
+) def
+
+/The_letter_Y
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%new path
+ 180 670 0.8 add M
+ 28 -2 0.8 add 58 -2 0.8 add 88 -2 0.8 add c
+ 0 2 0.8 add l
+ 38 0 0.8 add 74 0 0.8 add 110 2 0.8 add c
+ -2 -2 0.8 add l
+-198 0 l
+closepath
+%end path
+%erase
+%new path
+ 550 670 0.8 add M
+ 28 -2 0.8 add 56 -2 0.8 add 84 -2 0.8 add c
+ 0 2 0.8 add l
+ 24 0 0.8 add 46 0 0.8 add 68 2 0.8 add c
+ -2 -2 0.8 add l
+-152 0 l
+closepath
+%end path
+%erase
+%new path
+ 334 180 0.8 sub M
+ 208 0 0.8 sub l
+ -34 2 0.8 sub -70 2 0.8 sub -104 2 0.8 sub c
+ 0 -2 0.8 sub l
+-106 0 l
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 462 406 M
+ 54 86 106 172 160 258 c
+ 0 2 2 2 2 4 c
+ 4 2 8 4 12 4 c
+ 8 0 l
+ 0 -2 l
+ 0 0 2 0 2 -2 c
+ 2 0 2 -2 2 -4 c
+ -2 0 l
+ 0 -2 l
+ -60 -96 -118 -192 -178 -288 c
+ 0 -188 l
+ 0 -2 0 -4 -2 -6 c
+ -52 0 l
+ -2 0 -4 0 -6 2 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 188 l
+ -2 0 l
+ -58 96 -118 192 -176 288 c
+ 0 2 l
+ 2 0 l
+ 0 2 0 4 2 4 c
+ 0 2 2 2 2 2 c
+ 54 0 l
+ 0 -2 l
+ 6 0 10 -2 12 -4 c
+ 2 -2 2 -2 4 -4 c
+ 52 -86 104 -172 156 -258 c
+closepath
+%end path
+fill
+%new path
+ 256 624 M
+ 36 0 l
+ -8 16 -18 32 -26 48 c
+ 0 -2 l
+ -88 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 40 0 54 -4 c
+ 4 -2 10 -6 14 -10 c
+ 2 -4 6 -8 8 -12 c
+closepath
+%end path
+fill
+%new path
+ 328 624 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 8 2 10 c
+ 2 0 2 0 4 2 c
+ 12 6 28 6 44 6 c
+ 0 22 l
+ -2 -2 l
+ -108 0 l
+ 8 -16 18 -32 26 -48 c
+ 0 2 l
+ 36 0 l
+closepath
+%end path
+fill
+%new path
+ 584 604 M
+ 14 0 l
+ 12 22 24 46 36 68 c
+ -2 -2 l
+ -84 0 l
+ 0 -22 l
+ 2 0 l
+ 12 0 24 -2 32 -10 c
+ 2 -2 2 -2 4 -4 c
+ 2 -4 4 -8 4 -14 c
+ -2 0 l
+ 0 -6 -2 -12 -6 -18 c
+closepath
+%end path
+fill
+%new path
+ 610 604 M
+ 4 6 10 12 14 18 c
+ 8 6 14 12 24 16 c
+ 16 8 34 12 54 12 c
+ 0 22 l
+ -2 -2 l
+ -68 0 l
+ -12 -22 -24 -46 -36 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%end path
+fill
+%new path
+ 406 226 M
+ 0 -6 -2 -14 -6 -18 c
+ -2 -2 -4 -2 -6 -4 c
+ -12 -4 -42 -4 -62 -4 c
+ 0 -20 l
+ 108 0 l
+ 0 48 l
+ -2 -2 l
+-32 0 l
+closepath
+%end path
+fill
+%new path
+ 468 226 M
+ -30 0 l
+ 0 -46 l
+ 106 0 l
+ 0 22 l
+ -2 0 l
+ -20 0 -50 0 -62 4 c
+ -2 2 -4 2 -6 4 c
+ -4 4 -6 12 -6 18 c
+closepath
+%end path
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 81 /The_letter_Q put
+Encoding 89 /The_letter_Y put
+
+Metrics
+ begin
+/The_letter_Q 527 fudge add def
+/The_letter_Y 525 fudge add def
+/.notdef 400 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -178 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [178 fudge sub 40 704 688] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 70 scalefont setfont
+ 0 0 moveto (Q Y) show
diff --git a/fonts/utilities/mf2ps/doc/fig8.ps b/fonts/utilities/mf2ps/doc/fig8.ps
new file mode 100644
index 0000000000..7ece37f42a
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig8.ps
@@ -0,0 +1,292 @@
+%! Simon font
+%%BoundingBox: 0 0 40 40
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_x
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%new path
+ 192 488 M
+ 22 -2 44 -2 66 -2 c
+ 0 2 l
+ 28 0 54 0 82 2 c
+ -2 -2 l
+-148 0 l
+closepath
+%end path
+%erase
+%new path
+ 404 180 M
+ 146 0 l
+ -22 2 -44 2 -66 2 c
+ 0 -2 l
+-82 0 l
+closepath
+%end path
+%erase
+%new path
+ 410 488 M
+ 24 -2 48 -2 72 -2 c
+ 0 2 l
+ 20 0 38 0 58 2 c
+ -2 -2 l
+-130 0 l
+closepath
+%end path
+%erase
+%new path
+ 188 180 M
+ 128 0 l
+ -24 2 -48 2 -72 2 c
+ 0 -2 l
+-58 0 l
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 280 486 M
+ -2 2 -6 4 -8 4 c
+ 0 -2 l
+ -38 0 l
+ -2 0 -2 0 -4 -2 c
+ 0 -2 l
+ 2 0 l
+ 0 -4 l
+ 76 -100 154 -198 230 -298 c
+ 2 -2 6 -2 8 -2 c
+ 38 0 l
+ 2 0 2 0 4 2 c
+ 0 2 l
+ -2 0 l
+ 0 4 l
+ -76 100 -154 198 -230 298 c
+closepath
+%end path
+fill
+%new path
+ 230 180 M
+ 10 0 l
+ 6 0 12 2 16 6 c
+ 0 0 2 2 2 2 c
+ 80 100 160 198 238 298 c
+ 2 0 2 2 2 2 c
+ -2 0 l
+ 0 0 0 0 -2 2 c
+ -2 0 l
+ 0 -2 l
+ -6 0 l
+ -6 0 -12 -2 -16 -6 c
+ 0 0 -2 -2 -2 -2 c
+ -80 -100 -160 -198 -238 -298 c
+ -2 0 -2 -2 -2 -2 c
+closepath
+%end path
+fill
+%new path
+ 264 442 M
+ 24 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+ -66 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 34 0 46 -4 c
+ 6 -2 10 -6 16 -10 c
+ 2 -4 6 -8 10 -12 c
+closepath
+%end path
+fill
+%new path
+ 314 442 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 6 4 10 c
+ 6 6 14 8 22 8 c
+ 0 22 l
+ -2 -2 l
+ -80 0 l
+ 10 -16 22 -32 32 -48 c
+ 0 2 l
+ 26 0 l
+closepath
+%end path
+fill
+%new path
+ 428 226 M
+ 2 -2 2 -6 2 -8 c
+ -2 0 l
+ 0 -4 0 -6 -4 -10 c
+ -6 -6 -14 -8 -22 -8 c
+ 0 -20 l
+ 82 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+-26 0 l
+closepath
+%end path
+fill
+%new path
+ 478 226 M
+ -24 0 l
+ 10 -16 22 -32 32 -46 c
+ 66 0 l
+ 0 22 l
+ -2 0 l
+ -16 0 -34 0 -46 4 c
+ -6 2 -10 6 -16 10 c
+ -2 4 -6 8 -10 12 c
+closepath
+%end path
+fill
+%new path
+ 422 422 M
+ 12 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+ -72 0 l
+ 0 -22 l
+ 2 0 l
+ 6 0 12 -2 16 -6 c
+ 2 -2 4 -6 4 -10 c
+ 2 -2 2 -4 2 -6 c
+ -2 0 l
+ 0 -8 -4 -18 -10 -24 c
+closepath
+%end path
+fill
+%new path
+ 446 422 M
+ 2 4 6 8 10 12 c
+ 8 8 20 16 32 22 c
+ 16 8 34 12 52 12 c
+ 0 22 l
+ -2 -2 l
+ -58 0 l
+ -16 -22 -32 -46 -48 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%end path
+fill
+%new path
+ 280 246 M
+ -2 -4 -6 -8 -10 -12 c
+ -8 -8 -20 -16 -32 -22 c
+ -16 -8 -34 -12 -52 -12 c
+ 0 -20 l
+ 60 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+-12 0 l
+closepath
+%end path
+fill
+%new path
+ 304 246 M
+ -12 0 l
+ -16 -22 -32 -46 -48 -66 c
+ 74 0 l
+ 0 22 l
+ -2 0 l
+ -6 0 -12 2 -16 6 c
+ -2 2 -4 6 -4 10 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 8 4 18 10 24 c
+closepath
+%end path
+fill
+%for fake line
+newpath
+160 180 M
+360 0 l
+0 .5 l
+-360 0 l
+0 -.5 l
+closepath
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 120 /The_letter_x put
+
+Metrics
+ begin
+/The_letter_x 367 fudge add def
+/.notdef 0 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -186 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [186 fudge sub 180 552 490] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 40 scalefont setfont
+ 0 0 moveto (x) show
diff --git a/fonts/utilities/mf2ps/doc/fig9.ps b/fonts/utilities/mf2ps/doc/fig9.ps
new file mode 100644
index 0000000000..f2934f6579
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/fig9.ps
@@ -0,0 +1,114 @@
+%! Simon font
+%%BoundingBox: 0 0 40 52
+%%Was: 0 0 40 40
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_square
+(
+ gsave
+ initclip
+ newpath
+
+ 0 0 moveto
+ 0 1000 lineto
+ 1000 1000 lineto
+ 1000 0 lineto
+ 0 0 lineto
+
+ 300 100 moveto
+ 700 100 lineto
+ 700 300 lineto
+ 300 300 lineto
+ 300 100 lineto
+
+ 700 900 moveto
+ 300 900 lineto
+ 300 700 lineto
+ 700 700 lineto
+ 700 900 lineto
+
+ eoclip
+
+ newpath
+ 100 100 moveto
+ 900 100 lineto
+ 900 900 lineto
+ 100 900 lineto
+ 100 100 lineto
+ fill
+ grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 120 /The_square put
+
+Metrics
+ begin
+/The_square 1000 fudge add def
+/.notdef 0 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -186 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [186 fudge sub 180 552 490] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 40 scalefont setfont
+ 0 0 moveto (x) show
diff --git a/fonts/utilities/mf2ps/doc/figure.pages b/fonts/utilities/mf2ps/doc/figure.pages
new file mode 100644
index 0000000000..107f981e65
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/figure.pages
@@ -0,0 +1,89 @@
+.en
+.pl 11.125i
+.LL 6.5i
+.ls 1
+.ds BL ''%''
+.hy 14
+\
+.sp 8.25i
+.ce
+Figure 3
+.bp
+.ta .2i +.2i
+.nf
+R M \07:
+ 10:
+ 12:
+
+ P \07:
+ 10:
+ 12:
+
+T M \08:
+ 10:
+ 12:
+
+ P \08:
+ 10:
+ 12:
+
+L M 10:
+
+ P 10:
+.fi
+.sp 2
+.ce
+Figure 11-LW300
+.sp 3
+.nf
+R M 10:
+ 12:
+
+ P 10:
+ 12:
+
+T M 10:
+ 12:
+
+ P 10:
+ 12:
+
+L M 10:
+
+ P 10:
+.fi
+.sp 2
+.ce
+Figure 11-VT600
+.bp
+.nf
+R M 10:
+ 12:
+
+ P 10:
+ 12:
+
+T M 10:
+ 12:
+
+ P 10:
+ 12:
+
+L M 10:
+
+ P 10:
+.fi
+.sp 2
+.ce
+Figure 11-LT1270
+.sp 2
+.nf
+LW300:
+.sp 8v
+VT600:
+.sp 8v
+LT1270:
+.sp 8v
+.sp
+.ce
+Figure 12
diff --git a/fonts/utilities/mf2ps/doc/figure.pages.ps b/fonts/utilities/mf2ps/doc/figure.pages.ps
new file mode 100644
index 0000000000..57a0330a5d
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/figure.pages.ps
@@ -0,0 +1,508 @@
+%!PS-Adobe-1.0
+%%Creator: ah.sei.cmu.edu:dberry (Daniel Berry)
+%%Title: stdin (ditroff)
+%%CreationDate: Wed Oct 17 22:20:03 1990
+%%EndComments
+/PageLength 11 def
+% lib/psdit.pro -- prolog for psdit (ditroff) files
+% Copyright (c) 1984, 1985 Adobe Systems, Inc. All Rights Reserved.
+
+/PageLength 11 def
+% psfig additions
+/DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap
+currentlinejoin currentdash currentgray currentmiterlimit ] cvx def
+
+/startFig {
+ /SavedState save def
+ userdict maxlength dict begin
+ currentpoint transform
+
+ DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap
+ setlinewidth setmatrix
+
+ itransform moveto
+
+ /ury exch def
+ /urx exch def
+ /lly exch def
+ /llx exch def
+ /y exch 72 mul resolution div def
+ /x exch 72 mul resolution div def
+
+ currentpoint /cy exch def /cx exch def
+
+ /sx x urx llx sub div def
+ /sy y ury lly sub div def
+
+ sx sy scale
+
+ cx sx div llx sub
+ cy sy div ury sub translate
+
+ /DefFigCTM matrix currentmatrix def
+
+ /initmatrix {
+ DefFigCTM setmatrix
+ } def
+ /defaultmatrix {
+ DefFigCTM exch copy
+ } def
+
+ /initgraphics {
+ DocumentInitState setmiterlimit setgray setdash
+ setlinejoin setlinecap setlinewidth setmatrix
+ DefFigCTM setmatrix
+ } def
+
+ /showpage {
+ initgraphics
+ } def
+
+} def
+/clipFig {
+ currentpoint 6 2 roll
+ newpath 4 copy
+ 4 2 roll moveto
+ 6 -1 roll exch lineto
+ exch lineto
+ exch lineto
+ closepath clip
+ newpath
+ moveto
+} def
+/doclip { llx lly urx ury clipFig } def
+/endFig {
+ end SavedState restore
+} def
+/globalstart {
+ fontnum fontsize fontslant fontheight
+ mh my resolution slotno currentpoint
+ pagesave restore gsave
+} def
+/globalend {
+ grestore moveto
+ /slotno exch def /resolution exch def /my exch def
+ /mh exch def
+ /fontheight exch def
+ /fontslant exch def /fontsize exch def /fontnum exch def
+ F
+ /pagesave save def
+} def
+% end of psfig additions
+
+/$DITroff 140 dict def $DITroff begin
+/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
+/xi
+ {0 72 PageLength mul translate 72 resolution div dup neg scale 0 0 moveto
+ /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
+ F /firstpage true def /pagesave save def}def
+/PB{save /psv exch def currentpoint translate
+ resolution 72 div dup neg scale 0 0 moveto}def
+/PE{psv restore}def
+/arctoobig 90 def /arctoosmall .05 def
+/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
+/tan{dup sin exch cos div}def
+/point{.1 resolution add 72 div mul}def
+/dround {transform round exch round exch itransform}def
+/xT{/devname exch def}def
+/xr{/mh exch def /my exch def /resolution exch def}def
+/xp{}def
+/xs{docsave restore end}def
+/xt{showpage}def
+/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
+ {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
+/xH{/fontheight exch def}def
+/xS{/fontslant exch def}def
+/s{/fontsize exch def /fontheight fontsize def}def
+/f{/fontnum exch def}def
+/F {fontheight 0 le {/fontheight fontsize def}if
+ fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
+ fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
+ makefont setfont .04 fontsize point mul 0 dround pop setlinewidth
+ } def
+/X{exch currentpoint exch pop moveto show}def
+/N{3 1 roll moveto show}def
+/Y{exch currentpoint pop exch moveto show}def
+/S{show}def
+/MX{currentpoint exch pop moveto}def
+/MY{currentpoint pop exch moveto}def
+/MXY{moveto}def
+/cb{pop}def % action on unknown char -- nothing for now
+/n{}def /w{}def
+/p{pop firstpage not{showpage}if pagesave restore /pagesave save def
+ /firstpage false def}def
+/abspoint{currentpoint exch pop add exch currentpoint pop add exch}def
+/distance{dup mul exch dup mul add sqrt}def
+/dstroke{currentpoint stroke moveto}def
+/Dl{2 copy gsave rlineto stroke grestore rmoveto}def
+/arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop
+ currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
+ currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def
+/Dc{dup arcellipse dstroke}def
+/De{arcellipse dstroke}def
+/Da{/endv exch def /endh exch def /centerv exch def /centerh exch def
+ /cradius centerv centerv mul centerh centerh mul add sqrt def
+ /eradius endv endv mul endh endh mul add sqrt def
+ /endang endv endh atan def
+ /startang centerv neg centerh neg atan def
+ /sweep startang endang sub dup 0 lt{360 add}if def
+ sweep arctoobig gt
+ {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def
+ /midh midang cos midrad mul def /midv midang sin midrad mul def
+ midh neg midv neg endh endv centerh centerv midh midv Da
+ currentpoint moveto Da}
+ {sweep arctoosmall ge
+ {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def
+ centerv neg controldelt mul centerh controldelt mul
+ endv neg controldelt mul centerh add endh add
+ endh controldelt mul centerv add endv add
+ centerh endh add centerv endv add rcurveto dstroke}
+ {centerh endh add centerv endv add rlineto dstroke}ifelse}ifelse}def
+
+/Barray 200 array def % 200 values in a wiggle
+/D~{mark}def
+/D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop
+ /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and
+ {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def
+ Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put
+ Bcontrol Blen 2 sub 2 copy get 2 mul put
+ Bcontrol Blen 1 sub 2 copy get 2 mul put
+ /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub
+ {/i exch def
+ Bcontrol i get 3 div Bcontrol i 1 add get 3 div
+ Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div
+ Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div
+ /Xbi Xcont Bcontrol i 2 add get 2 div add def
+ /Ybi Ycont Bcontrol i 3 add get 2 div add def
+ /Xcont Xcont Bcontrol i 2 add get add def
+ /Ycont Ycont Bcontrol i 3 add get add def
+ Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto
+ }for dstroke}if}def
+end
+/ditstart{$DITroff begin
+ /nfonts 49 def
+ /fonts[nfonts{0}repeat]def
+ /fontnames[nfonts{()}repeat]def
+/docsave save def
+}def
+
+% character outcalls
+/oc
+ {/pswid exch def /cc exch def /name exch def
+ /ditwid pswid fontsize mul resolution mul 72000 div def
+ /ditsiz fontsize resolution mul 72 div def
+ ocprocs name known{ocprocs name get exec}{name cb}
+ ifelse}def
+/fractm [.65 0 0 .6 0 0] def
+/fraction
+ {/fden exch def /fnum exch def gsave /cf currentfont def
+ cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
+ fnum show rmoveto currentfont cf setfont(\244)show setfont fden show
+ grestore ditwid 0 rmoveto} def
+
+/ocb
+ {/s2 .5 dm def /s4 .25 dm def
+ 2 setlinejoin gsave currentpoint newpath dround translate 0 0 moveto}def
+/oce {grestore ditwid 0 rmoveto}def
+/occ {grestore}def
+/dm {ditsiz mul}def
+/4p {pop pop pop pop}def
+
+/ocprocs 25 dict def ocprocs begin
+(X0) {ocb oce}def %room for building special characters with X names
+(X1) {ocb oce}def %all these do is move the width of the char which is 1 em
+(X2) {ocb oce}def
+(X3) {ocb oce}def
+(X4) {ocb oce}def
+(X5) {ocb oce}def
+(X6) {ocb oce}def
+(X7) {ocb oce}def
+(X8) {ocb oce}def
+(X9) {ocb oce}def
+(XX) {ocb oce}def
+
+(MD) {ocb 0 -.25 dm moveto .4333 dm -1 dm lineto .8666 dm -.25 dm lineto
+ 0 -.25 dm lineto closepath stroke occ
+ ocb 0 -.75 dm moveto .8666 dm -.75 dm lineto .4333 dm 0 dm lineto
+ 0 -.75 dm lineto closepath stroke oce}def
+(OU) { ocb .5 dm -.35 dm moveto currentpoint newpath .35 dm 0 360 arc closepath
+ stroke occ
+ ocb .3 dm -.50 dm moveto .3 dm -.3 dm lineto
+ .5 dm -.3 dm .2 dm 180 360 arcn .7 dm -.50 dm lineto stroke oce}def
+
+(14) {(1)(4)fraction}def
+(12) {(1)(2)fraction}def
+(34) {(3)(4)fraction}def
+(18) {(1)(8)fraction}def
+(38) {(3)(8)fraction}def
+(58) {(5)(8)fraction}def
+(78) {(7)(8)fraction}def
+(13) {(1)(3)fraction}def
+(23) {(2)(3)fraction}def
+
+(ff) {gsave (f) show -.06 dm 0 rmoveto (f) show oce}def
+(Fl) {gsave (f) show -.06 dm 0 rmoveto (\257) show oce}def
+(Fi) {gsave (f) show -.06 dm 0 rmoveto (\256) show oce}def
+end
+
+% DIThacks fonts for some special chars
+50 dict dup begin
+/FontType 3 def
+/FontName /DIThacks def
+/FontMatrix [.001 0.0 0.0 .001 0.0 0.0] def
+/FontBBox [-220 -280 900 900] def% a lie but ...
+/Encoding 256 array def
+0 1 255{Encoding exch /.notdef put}for
+Encoding
+ dup 8#040/space put %space
+ dup 8#110/rc put %right ceil
+ dup 8#111/lt put %left top curl
+ dup 8#112/bv put %bold vert
+ dup 8#113/lk put %left mid curl
+ dup 8#114/lb put %left bot curl
+ dup 8#115/rt put %right top curl
+ dup 8#116/rk put %right mid curl
+ dup 8#117/rb put %right bot curl
+ dup 8#120/rf put %right floor
+ dup 8#121/lf put %left floor
+ dup 8#122/lc put %left ceil
+ dup 8#140/sq put %square
+ dup 8#141/bx put %box
+ dup 8#142/ci put %circle
+ dup 8#143/br put %box rule
+ dup 8#144/rn put %root extender
+ dup 8#145/vr put %vertical rule
+ dup 8#146/ob put %outline bullet
+ dup 8#147/bu put %bullet
+ dup 8#150/ru put %rule
+ dup 8#151/ul put %underline
+ pop
+/DITfd 100 dict def
+/BuildChar{0 begin
+ /cc exch def /fd exch def
+ /charname fd /Encoding get cc get def
+ /charwid fd /Metrics get charname get def
+ /charproc fd /CharProcs get charname get def
+ charwid 0 fd /FontBBox get aload pop setcachedevice
+ 40 setlinewidth
+ newpath 0 0 moveto gsave charproc grestore
+ end}def
+/BuildChar load 0 DITfd put
+%/UniqueID 5 def
+/CharProcs 50 dict def
+CharProcs begin
+/space{}def
+/.notdef{}def
+/ru{500 0 rls}def
+/rn{-55 725 moveto 500 0 rlineto 25 setlinewidth stroke}def
+/vr{125 800 moveto 0 -770 rls}def
+/bv{125 800 moveto 0 -1000 rls}def
+/br{0 770 moveto 0 -1040 rls}def
+/ul{0 -250 moveto 500 0 rls}def
+/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
+/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
+/sq{80 0 rmoveto currentpoint dround newpath moveto
+ 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
+/bx{80 0 rmoveto currentpoint dround newpath moveto
+ 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
+/ci{355 333 rmoveto currentpoint newpath 333 0 360 arc
+ 50 setlinewidth stroke}def
+
+/lt{125 -200 moveto 125 400 lineto 125 550 260 780 375 800 curveto stroke}def
+/lb{125 800 moveto 125 200 lineto 125 50 260 -180 375 -200 curveto stroke}def
+/rt{125 -200 moveto 125 400 lineto 125 550 -10 780 -125 800 curveto stroke}def
+/rb{125 800 moveto 125 200 lineto 125 50 -10 -180 -125 -200 curveto stroke}def
+/lk{125 800 moveto 125 700 lineto 125 550 125 320 -125 300 curveto
+ 125 -200 moveto 125 -100 lineto 125 50 125 280 -125 300 curveto stroke}def
+/rk{125 800 moveto 125 700 lineto 125 550 125 320 375 300 curveto
+ 125 -200 moveto 125 -100 lineto 125 50 125 280 375 300 curveto stroke}def
+/lf{125 800 moveto 0 -1000 rlineto s4 0 rls}def
+/rf{125 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
+/lc{125 -200 moveto 0 1000 rlineto s4 0 rls}def
+/rc{125 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
+end
+
+/Metrics 50 dict def Metrics begin
+/.notdef 0 def
+/space 500 def
+/ru 500 def
+/br 0 def
+/lt 250 def
+/lb 250 def
+/rt 250 def
+/rb 250 def
+/lk 250 def
+/rk 250 def
+/rc 250 def
+/lc 250 def
+/rf 250 def
+/lf 250 def
+/bv 250 def
+/ob 350 def
+/bu 350 def
+/ci 750 def
+/bx 750 def
+/sq 750 def
+/rn 500 def
+/ul 500 def
+/vr 0 def
+end
+
+DITfd begin
+/s2 500 def /s4 250 def /s3 333 def
+/a4p{arcto pop pop pop pop}def
+/2cx{2 copy exch}def
+/rls{rlineto stroke}def
+/currx{currentpoint pop}def
+/dround{transform round exch round exch itransform} def
+end
+end
+/DIThacks exch definefont pop
+ditstart
+(psc)xT
+576 1 1 xr
+1(Times-Roman)xf 1 f F
+2(Times-Italic)xf 2 f F
+3(Times-Bold)xf 3 f F
+4(Times-BoldItalic)xf 4 f F
+5(Courier)xf 5 f F
+6(Courier-Oblique)xf 6 f F
+7(Courier-Bold)xf 7 f F
+8(Courier-BoldOblique)xf 8 f F
+9(Helvetica)xf 9 f F
+10(Helvetica-Oblique)xf 10 f F
+11(Helvetica-Bold)xf 11 f F
+12(Helvetica-BoldOblique)xf 12 f F
+13(Hebrew-Frank-Ruehl)xf 13 f F
+14(Hebrew-Gam)xf 14 f F
+15(Hebrew-Gam-Bold)xf 15 f F
+16(Hebrew-Yuval)xf 16 f F
+17(Hebrew-David)xf 17 f F
+18(Hebrew-Tel-Aviv)xf 18 f F
+19(Hebrew-OldJaffa)xf 19 f F
+20(AvantGarde-Book)xf 20 f F
+21(AvantGarde-BookOblique)xf 21 f F
+22(AvantGarde-Demi)xf 22 f F
+23(AvantGarde-DemiOblique)xf 23 f F
+24(NewCenturySchlbk-Roman)xf 24 f F
+25(NewCenturySchlbk-Italic)xf 25 f F
+26(NewCenturySchlbk-Bold)xf 26 f F
+27(NewCenturySchlbk-BoldItalic)xf 27 f F
+28(Palatino-Roman)xf 28 f F
+29(Palatino-Italic)xf 29 f F
+30(Palatino-Bold)xf 30 f F
+31(Palatino-BoldItalic)xf 31 f F
+32(ZapfChancery-MediumItalic)xf 32 f F
+33(ZapfDingbats)xf 33 f F
+34(Bookman-Light)xf 34 f F
+35(Bookman-LightItalic)xf 35 f F
+36(Bookman-Demi)xf 36 f F
+37(Bookman-DemiItalic)xf 37 f F
+38(Helvetica-Narrow)xf 38 f F
+39(Helvetica-Narrow-Oblique)xf 39 f F
+40(Helvetica-Narrow-Bold)xf 40 f F
+41(Helvetica-Narrow-BoldOblique)xf 41 f F
+42(Nescii-Initial-Stroke)xf 42 f F
+43(Nescii-Middle-Stroke)xf 43 f F
+44(Nescii-Final-Stroke)xf 44 f F
+45(Nescii-Standalone-Stroke)xf 45 f F
+46(Arabic-Naskh)xf 46 f F
+47(Symbol)xf 47 f F
+48(DIThacks)xf 48 f F
+xi
+%%EndProlog
+
+%%Page: 1 1
+1 p
+10 s 10 xH 0 xS 1 f F
+10 s 10 xH 0 xS 1 f F
+2313 5520(Figure)N
+2542(3)X
+2428 6084(7)N
+
+%%Page: 2 2
+2 p
+10 s 10 xH 0 xS 1 f F
+576 672(R)N
+691(M)X
+846(7:)X
+806 768(10:)N
+806 864(12:)N
+691 1056(P)N
+846(7:)X
+806 1152(10:)N
+806 1248(12:)N
+576 1440(T)N
+691(M)X
+846(8:)X
+806 1536(10:)N
+806 1632(12:)N
+691 1824(P)N
+846(8:)X
+806 1920(10:)N
+806 2016(12:)N
+576 2208(L)N
+691(M)X
+806(10:)X
+691 2400(P)N
+806(10:)X
+2157 2688(Figure)N
+2386(11-LW300)X
+576 3072(R)N
+691(M)X
+806(10:)X
+806 3168(12:)N
+691 3360(P)N
+806(10:)X
+806 3456(12:)N
+576 3648(T)N
+691(M)X
+806(10:)X
+806 3744(12:)N
+691 3936(P)N
+806(10:)X
+806 4032(12:)N
+576 4224(L)N
+691(M)X
+806(10:)X
+691 4416(P)N
+806(10:)X
+2166 4704(Figure)N
+2395(11-VT600)X
+2428 6084(14)N
+
+%%Page: 3 3
+3 p
+10 s 10 xH 0 xS 1 f F
+576 672(R)N
+691(M)X
+806(10:)X
+806 768(12:)N
+691 960(P)N
+806(10:)X
+806 1056(12:)N
+576 1248(T)N
+691(M)X
+806(10:)X
+806 1344(12:)N
+691 1536(P)N
+806(10:)X
+806 1632(12:)N
+576 1824(L)N
+691(M)X
+806(10:)X
+691 2016(P)N
+806(10:)X
+2151 2304(Figure)N
+2380(11-LT1270)X
+576 2592(LW300:)N
+576 3456(VT600:)N
+576 4320(LT1270:)N
+2293 5280(Figure)N
+2522(12)X
+2428 6084(15)N
+
+%%Trailer
+xt
+
+xs
diff --git a/fonts/utilities/mf2ps/doc/paper b/fonts/utilities/mf2ps/doc/paper
new file mode 100644
index 0000000000..d93f426299
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/paper
@@ -0,0 +1,1755 @@
+.pl 11.125i
+.de rb
+.ta 2m +5m +5m
+.nr t1\\n(.i
+.ls \\n(sq
+.in \\n(sem
+..
+.de rf
+.br
+.ne \\n(scu+\\n(sdu
+.sp \\n(sdu
+.ti -2m
+..
+.de LE
+.sp .5v
+..
+.de SU
+.ne 2v
+.br
+.ti 1.66P
+\f3\\$1\fP
+..
+.de Su
+.ne 2v
+.sp 1v
+\fB\&\\$1\fP
+..
+.de su
+.ne 3v
+.sp 1v
+.na
+\fB\&\\$1\fP
+.br
+.ad
+..
+.de PP
+.sp .5v
+..
+.de qb
+.in +\\n(sju
+.LL -\\n(sju
+.sp .5v
+..
+.de qe
+.in -\\n(sju
+.LL +\\n(sju
+.sp .5v
+..
+.de cl
+.ta\\n(sou +5m +5m
+.in+\\n(snu
+..
+.de dl
+.br
+.in-\\n(snu
+..
+.de ES
+.ft C
+.sp
+.nf
+.in +1.66P
+..
+.de EE
+.fi
+.ft R
+.sp
+.in -1.66P
+..
+.dehd
+.HS
+.nrhe+1
+.ie\\n(cn>1\{\
+.ie\\nc>\\n(cn\{\
+'sp\\n(bhu-1v
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Te
+.el.tl \\*(To
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'sp|\\n(thu
+.nrc 1 1
+.mkmx\}
+.el\{\
+.po+\\n(cwu+\\n(csu
+'sp|\\n(mxu\}\}
+.el\{\
+.if\\n(f5\{\
+.nr% +\\n(f5
+.nrf50 1\}
+'sp\\n(bhu-1v
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Te
+.el.tl \\*(To
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'sp|\\n(thu\}
+.chfx -\\n(tfu
+.chfo -\\n(tfu
+.if\\n(z1 .fz
+.chfo -\\n(tfu
+.if!\\n(f0 .ns
+.if\\n(f0\{\
+.nrf5\\n(f6
+.nrf6\\n(f7
+.nrf70
+.Ff
+.ie\\n(fa\{\
+.nrfa0
+.nrh21\}
+.el\{\
+.ie\\nx\{.if (\\n(nlu+5v)>(\\n(.p+\\nyu) .nr h1 1\}
+.el\{.if \\n(.tu<6v .nr h1 1\}\}\}
+.if\\n(h1=1\{\
+.nrh10
+'bp\}
+.if\\n(h2=1\{\
+.nrh20
+.fo\}
+.chfo (\\nyu-1v)
+.nrhe-1
+.HE
+..
+.defo
+.FS
+.if!\\n(he\{.if \\nx .xf\}
+.nrfa0
+.ie\\n(fg\{\
+.nrfa1
+.diGA\}
+.el\{\
+.ie\\n(cn<2\{\
+'chfo 32000
+'chfx 32000
+'sp(\\n(.pu-\\n(nlu-\\n(tfu+\\n(bfu-1v)u
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Be
+.el.tl \\*(Bo
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'bp\}
+.el.mf\}
+.FE
+..
+.demf
+.ie\\n+c<=\\n(cn .hd
+.el\{\
+.po\\n(cou
+.lt 6.63i
+'chfo 32000
+'chfx 32000
+'sp(\\n(.pu-\\n(nlu-\\n(tfu+\\n(bfu-1v)u
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Be
+.el.tl \\*(Bo
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'bp\}
+..
+.defn
+.ie\\nx .ne \\n(rcv-2v
+.el.ne \\n(rcv
+.if\\n(fn .AB"Nesting of footnotes is a no no"
+.nrfn1
+.daFN
+.ev1
+.ie\\n+x=1\{\
+.sp 10p
+\s-5\l'5P\(ul'\s+5
+.br\}
+.el.sp \\n(srv
+.fi
+.ad
+..
+.\" REFER macros .... citations
+.nr se 3u \" space to indent in emms
+.de []
+.][ \\$1
+..
+.de ][
+.if \\$1>5 .tm Bad arg to []
+.if !"\\*([O"" .if !\\n([O .as [O .
+.[\\$1
+..
+.ds RB ".RE
+.ds [. " [
+.ds .] ]
+.if n .ds [o ""
+.if n .ds [c ""
+.if t .ds [o \(lq
+.if t .ds [c \(rq
+.\" the next lines deal with the problem of .[1] or [1].
+.\" refer will write "linexxx\*(<.[1]\*(>.
+.\" and either "<." or ">." should produce the .;
+.\" similarly for ,
+.ds >. .
+.ds >, ,
+.de [5 \" tm style
+\\*([A, \\f2\\*([T\\f1,
+.ie \\n(TN \\*([M.
+.el UCLA Computer Science Department internal memorandum (\\*([D).
+.br
+..
+.de [0 \" other
+.if !"\\*([A"" \\*([A,
+.if !"\\*([O"" \\*([O
+.if !"\\*([D"" \& (\\*([D).
+.br
+..
+.de [1 \" journal article
+.if !"\\*([A"" \\*([A,
+.if !"\\*([T"" \\*([o\\*([T,\\*([c
+\\f2\\*([J\\f1\c
+.if !"\\*([V"" .if n \& Vol.\&\c
+.if !"\\*([V"" \& \\f3\\*([V\\f1\c
+.if !"\\*([N"" (\\*([N)\c
+.if !"\\*([P"" \{\
+.ie \\n([P>0 , pp.\c
+.el , p.\c
+\& \\*([P\c\}
+.if !"\\*([I"" .if "\\*([R"" , \\*([I\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([O"" \\*([O
+.br
+..
+.de [2 \" book
+.if !"\\*([A"" \\*([A,
+.if !"\\*([T"" \\f2\\*([T,\\f1
+\\*([I\c
+.if !"\\*([C"" , \\*([C\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([G"" Gov't. ordering no. \\*([G.
+.if !"\\*([O"" \\*([O
+.br
+..
+.de [4 \" report
+.if !"\\*([A"" \\*([A,
+\\*([o\\*([T,\\*([c
+\\*([R\c
+.if !"\\*([G"" \& (\\*([G)\c
+.if !"\\*([I"" , \\*([I\c
+.if !"\\*([C"" , \\*([C\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([O"" \\*([O
+.br
+..
+.de [3 \" article in book
+.if !"\\*([A"" \\*([A,
+.if !"\\*([T"" \\*([o\\*([T,\\*([c
+.if !"\\*([P"" pp. \\*([P
+in \\f2\\*([B\\f1\c
+.if !"\\*([E"" , ed. \\*([E\c
+.if !"\\*([I"" , \\*([I\c
+.if !"\\*([C"" , \\*([C\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([O"" \\*([O
+.br
+..
+.\" define warning that mX does not support references as footnotes
+.de ]-
+.AB"Can't do references as footnotes. Use '-e' or '-s' option with 'refer'
+..
+.de ]<
+.\" define the real ]- next-reference macro
+. de ]-
+. rm [V [P [A [T
+. rm [N [C [B [O
+. rm [R [I [E [D
+. rf
+\\\\*([F. \c
+\\..
+.\"now start the reference subsection
+\\*(RB
+.rb
+..
+.de ]>
+.re
+..
+.de ]]
+this is never
+executed
+and just
+uses up an end-of-file
+bug.
+..
+.de TS
+.sp
+..
+.de TE
+.sp .25v
+.ce
+\\$1
+.sp .5v
+.ien .ta .8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i
+.el.ta .5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i
+..
+.de ca
+.sp .5v
+.ce
+\&\\$1
+.sp 8p
+..
+.de CT
+.if \\n(ff .F0 "\\$1" "\\n%"
+..
+.nr sd 1i/24u \" # of inches to space between references (used as u).
+.nr sf 1.66P \" space to indent for paragraph (used as u).
+.nr sg 1u \" # of spaces needed before trap to start paragraph(used as v).
+.nr sh 0u \" # of spaces done to start a new paragraph (used as v).
+.nr si 1u \" # of spaces used to start an example (used as v).
+.nr sj 1.66P \" space to indent for an example (used as u);
+.nr sn 1.66P \" amount of space to indent for list (used as u).
+.nr so 1P \" amount of space to temp indent for each list entry (used as u).
+.nr sp 1i/12u \" spacing for each element of list (or sublist) (used as u).
+.nr sa 1v \" # of spaces to do before subtitles (used as u).
+.nr se 3u \" # of spaces to indent for a reference (used as ems).
+.nr sm 1i \" # of spaces of need to do a subtitle (used as u).
+.nr fv 3 \" set font variable for subtitles to Helvetica
+.nr si 1u \" # of spaces used to start an example (used as v).
+.nr sk 1u \" # of spaces left at the end of an example (used as v);
+.deRT
+.ien .ta .8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i
+.el.ta .25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i
+..
+.RT
+.EQ
+delim $$
+.EN
+.ds MF \f(LGMETA\%FONT\fP
+.ds TB \fITUG\%boat\fP
+.ds BZ B\o'e\(aa'zier
+.ds TX T\v'+.2m'\h'-.1m'E\h'-.1m'\v'-.2m'X
+.ds LT L\v'-.15m'\h'-.3m'\s-2A\s+2\v'.15m'\h'-.1m'T\v'.2m'\h'-.10m'E\h'-.10m'\v'-.2m'X
+.ds BT B\\h'-0.05m'\\s-2I\\h'-0.025m'B\\s0\\h'-0.08m'\\*(TX
+.ds pS P\s-2OST\%\s0S\s-2CRIPT\s0
+.ds P1 \f2P\fP\v'.2m'\s-3\f11\fP\s+3\^\v'-.2m'
+.ds P2 \f2P\fP\v'.2m'\s-3\f12\fP\s+3\^\v'-.2m'
+.ds P3 \f2P\fP\v'.2m'\s-3\f13\fP\s+3\^\v'-.2m'
+.ds P4 \f2P\fP\v'.2m'\s-3\f14\fP\s+3\^\v'-.2m'
+.en
+.LL 39.00P
+.ls 1
+.ds BL ''%''
+.hy 14
+The next page begins the paper. The macro package I use cannot start
+double columning until AFTER some text is printed..
+.pn 1
+.bp
+.MC 2 18.75P 1.5P 1i
+.mk xx
+\v'-1v'\l'18.7P'
+.sp |\n(xxu
+\s+2Environment for Translating
+.br
+\*(MF to \*(pS\s0
+.sp 3p
+.ti 1.66P
+Shimon Yanai and Daniel M. Berry
+.sp 8p
+\fBAbstract\fP
+.PP
+This paper describes a program, \fHmf2ps\fP, that translates a
+\*(MF font definition into a definition for the same font in the
+\*(pS language. \fHmf2ps\fP is constructed out
+of the part of the \*(MF program that extracts the envelopes of the
+letters; these envelopes are converted into \*(pS outlines.
+.su "1\ \ \ Introduction"
+.PP
+This paper describes a program, \fHmf2ps\fP,
+that takes from a \*(MF
+.[
+knu86
+.]
+.[
+knu87
+.]
+program for a font all the necessary information in order to
+create an equivalent \*(pS
+.[
+PostScript language reference manual
+.]
+font definition. The program makes use of the front end of the
+\*(MF program to extract the envelopes of the letters to produce the
+\*(pS outlines. What makes this process natural is that both \*(MF and
+\*(pS make liberal use of \*(BZ curves to describe non-circular
+curves.
+.pp
+By producing this translator, it is hoped to be able to produce from
+\*(MF fonts \*(pS outline fonts which are more compact than the
+bitmapped fonts produced by the \*(MF program. Certainly the outline
+fonts are more easily scaled to other magnifications and possibly even
+other design sizes than are bitmaps. Moreover, doing so makes fonts
+heretofore available only on \*(TX
+.[
+knu84
+.]
+and other DVI-based formatters,
+available on \fHditroff\fR
+.[
+Ker82
+.]
+and other formatters which have evolved,
+or have been designed, for use with \*(pS printers. This paper, which is
+typeset by \fHditroff\fR, uses a \*(pS version of the
+logo font in order to print the word \(lq\*(MF\|\(rq in the same appearance as
+in \*(TX-generated documents.
+Moreover, these new \*(pS outline fonts can be used in \*(TX also! One
+needs only the
+T\v'+.2m'\h'-.1m'E\h'-.1m'\v'-.2m'X\v'+.2m'\h'-.1m'P\h'-.1m'\v'-.2m'S
+.[
+bechtolsheim
+.]
+software.
+.pp
+The organization of this paper is as follows. Section 2 presents the
+background of this work. Section 3 explains the rationale behind
+building the translator and describes a previous attempt at writing the
+translator and an approach to avoid. The software engineering aspect of
+the translator is described also in Section 3. The details of the
+implementation are exposed in Section 4. Section 5 describes the
+operation of the program. Section 6 evaluates the results. Finally
+Section 7 describes improvements to the translator that are left for
+future work.
+.su "2\ \ \ Background"
+.PP
+Typesetter formatting systems such as \*(TX and \fHditroff\fP use fonts
+as raw material. The formatters accept mixed text and commands as input
+and produce output, which, if sent to the laser printers or typesetters,
+yields formatted text printed on pages. The laser printers and
+typesetters use fonts, i.e., sets of printable patterns, one per
+character, in various representations in order to cause the desired
+characters to appear on the printed form. For some printers, bitmaps
+are used, with 1's representing inked dots and 0's representing
+non-inked dots. Other printers accept commands that cause drawing of
+the characters, the printer providing the inked dots according to the
+drawing commands. One such popular command language is \*(pS, and its
+usual use is to specify the outline of the character with the
+interpreting printer filling in the outline with ink. One popular
+method of describing fonts is with the \*(MF language, in which
+declarative definitions of how to paint the characters are given in
+terms of pen path and pen shape. Another popular method is the same
+\*(pS that many printers accept. The prime difference is that the \*(MF
+program translates the font definitions into bitmaps prior to sending
+the font to the printer while a \*(pS printer translates the outlines
+into bitmaps at the time of printing. Interestingly, both the \*(MF
+language and the \*(pS language use \*(BZ curves for describing the
+curves followed by the pen or the outlines. As usually configured
+these days, \*(TX uses bitmapped fonts in the Computer Modern family
+generated by \*(MF, and \fHditroff\fP uses \*(pS outline fonts supplied
+by Adobe.
+.pp
+The subsequent subsections delve deeper into these issues in order to
+be able to state the goal of this paper in the next section.
+.Su "2.1\ \ \ Fonts, design sizes, and magnifications."
+As mentioned, fonts are the raw material of typesetting. A font is a
+set of printable patterns, one for each character, that causes printing
+of that character in a particular recognizable style on the page. As
+mentioned, these patterns can be represented by bitmaps or drawing
+instructions.
+.pp
+Characters come in various sizes. There are two independent notions of
+sizing for fonts, point size or design size and magnification. The
+\fIdesign size\fP is the size at which the character is designed to be used
+and is, in well-designed text, the size in which the character appears
+in final, printed copy. Design size is
+usually expressed in units of points, which are each approximately 1/72
+of an inch. Most normal text in books, newspapers, and magazines is
+printed in 10 point type. Headlines are larger, perhaps as large as 30
+points. The \fImagnification\fP of a font is the inverse of the ratio
+between the design size of the character and the size of the
+character as it emerges on the printer, the assumption being that the
+final copy is a photo reduction of the printed copy. Thus, if photo
+reduction halves linear dimensions, one prints with magnification 2.
+If everything is done right, then after reduction, the letter appears at
+its design size.
+.pp
+A 10 point design sized font printed at mag\%ni\%fi\%ca\%tion 2 is similar to
+but not quite the same as a 20 point version of the same font.
+For example, the serifs on a large point size are smaller than they would
+be if strict linear magnification were used. Other proportions, e.g., of
+x-height to cap-height and of width to height, are also
+different. While many purists, Knuth
+included, insist on using a different pattern for each design size,
+many people accept magnification as yielding acceptable fonts at other
+point sizes. If the unit of magnification is not too big the results
+are acceptable even to many purists.
+.Su "2.2\ \ \ Problems with bitmapped fonts."
+A bitmap for a character is a rectangular array of bits covering the
+so-called bounding box or frame that exactly contains a letter. Figure
+1 shows a low resolution bit map for the letter \(lqN\(rq in a sans
+serif font. The inked squares or pixels are denoted by \(lq1\(rq bits
+and the uninked pixels are denoted by \(lq0\(rq bits.
+.fs
+.F+
+figure fig1.ps
+.F-
+.ca "Figure 1"
+.fe
+The low resolution example of Figure 1 illustrates a major problem
+with bitmapped fonts. Curved lines and straight lines that are neither
+vertical nor horizontal cannot be represented exactly by a rectangular
+pattern of pixels. One is forced to approximate them with rectangular
+steps. At high resolution, e.g. above 1000 or so, the human eye cannot
+see the steps, but at low resolution the steps are quite apparent.
+Visible steps are called \(lqjaggies\(rq after the jagged edges.
+.pp
+Bitmaps for a font must be built for each design size, magnification,
+and resolution. If the resolution is fixed, as is the case on most
+printers, a bitmap must be built for each design size and
+magnification. An attempt to use a given bitmap at a larger design
+size or magnification by just enlarging the area of each dot yields a
+bad case of jaggies.
+.Su "2.3\ \ \ \*(MF and its environment."
+.ft 1
+\*(MF, a language for the specification of fonts or typefaces, has been
+used to provide fonts for the \*(TX family of typesetting systems. A
+\*(MF user writes a program for each letter or symbol of an alphabet.
+These programs are different from the usual computer programs, because
+they are essentially declarative rather than imperative, using an
+algebraic language to describe the center stroke or edges of the characters. The
+description of a letter in \*(MF is a set of equations describing the
+strokes. When combined with parameters describing the pen shape and
+size, one gets a full description of a letter. Sizes and shapes of pen
+nibs can be varied in \*(MF and the characters can be built up in such
+a way that the outlines of each stroke are precisely controlled. Herein
+lies the advantage of \*(MF; a font is easily specified and variations
+are obtained by varying parameters.
+.pp
+Currently, the program that converts a set of \*(MF font descriptions
+into a bitmapped font translates the description of a letter combined
+with a point size and a magnification into a bitmap. This bitmap can be
+sent to the printer to get a letter on the page. Herein lies a
+disadvantage of \*(MF; a bit map must be kept for each point size and
+magnification, and this can require a lot of space.
+.Su "2.4\ \ \ The \*(pS language."
+The \*(pS language is an interpretive programming language with
+graphics capabilities. \*(pS's extensive page description capabilities
+are embedded into a general-purpose programming language framework. The
+language includes a conventional set of data types such as numbers,
+arrays, and strings, control primitives such as conditionals, loops and
+procedures, and some unusual features such as dictionaries. In most
+\*(pS fonts, each letter is described by an imperative program tracing
+the outline of the letter. This tracing may include curves given as
+\*(BZ curves, straight lines, arcs, etc. A \*(pS printer interprets
+this outline program to draw and fill in the letters on the page. Some
+consider the imperative nature of \*(pS to be a disadvantage in
+comparison to \*(MF's declarative nature. The main advantage of \*(pS
+relative to \*(MF is that one needs to keep only the outline. If, as in
+the usual case, the outline is specified in terms of a fixed path
+through Euclidean two-space, this outline may be scaled arbitrarily to
+yield any magnification. The scaling is done by the \*(pS interpreter
+at the printer. Thus the different magnifications do not require any
+additional storage space. Actually, the outlines are kept as if they
+were for the Adobe-standard 1000 dots
+per emm, which at a design size of 10 points amounts to 7200 dpi.
+Because a typical phototypesetter has a maximum resolution of
+about 2500 dpi, the outlines are said to be arbitrarily
+scaleable. If the outlines are kept, as are many \*(MF definitions, as
+paths through points calculated by the outline program, then it is
+possible to, say, make serifs grow more slowly than linearly. It would
+then be possible to have one \*(pS font scaleable to all design sizes.
+Generally, outline fonts are not written this way, so that strictly
+speaking they are scaleable only to all magnifications.
+.pp
+In addition, the \*(pS language has a way to work with bitmapped fonts.
+While the \*(pS printer can scale them before printing, the end result
+is that each of the fixed number of dots in the bitmap is made larger
+or smaller. Since the human will see larger dots as jagged lines, such
+fonts are not really considered scaleable.
+.Su "2.5\ \ \ \*(BZ curves."
+Both \*(MF and \*(pS use \*(BZ cubics to specify curves. For the \*(BZ
+form, four points are used, the start point, the end point, and two
+control points, as shown in the top half of Figure 2.
+The tangent vectors of the
+endpoints are determined from the line segments \*(P1\*(P2 and
+\*(P3\*(P4. The mathematical introduction of the \*(BZ form
+when given four points \*(P1, \*(P2, \*(P3, and \*(P4 is
+.sp
+.in +.125i
+$z(t)~=~(1-t) sup 3 "\*(P1" ~+~3t(t-1) sup 2 "\*(P2" ~+~3t sup 2 (1-t) "\*(P3" ~+~t sup 3 "\*(P4" ,$
+.sp
+.in -.125i
+for $0~<=~t~<=~1$.
+.pp
+Two characteristics of the \*(BZ form tend to make it widely used in
+graphics. First, by choosing the control points one can easily mold the
+curve to a desired shape. Second, the four control points taken in another
+order define a convex polygon, \*(P1 \*(P2 \*(P4 \*(P3 \*(P1 in this case,
+the \fIconvex hull\fR\h'-.05m', which bounds the \*(BZ
+curve. The convex hull is useful in clipping a curve against a window.
+.pp
+When a \*(MF user specifies a path, \*(MF creates a list of knots and
+control points for the associated cubic spline curves.
+If the user has not specified the control points explicitly, \*(MF
+itself finds some for the splines of a curve, while \*(pS requires all
+the four points to be explicitly given.
+.fs
+.F+
+figure fig2.ps
+.F-
+.ca "Figure 2"
+.fe
+.su "3\ \ \ \*(MF to \*(pS compiler\(em why\ and\ how"
+.ft 1
+.PP
+This section describes a major performance problem with \*(MF-generated
+fonts that perhaps can be solved by translating them into \*(pS fonts.
+The goals of this translation are established. Based on these goals, a
+particular approach is adopted to engineer the software largely from
+existing components.
+.Su "3.1\ \ \ A problem with \*(MF-generated bitmapped fonts."
+.ft 1
+In \*(MF, one gets one bitmap per point size and magnification. The
+size of these bitmaps grows as the square of product of the design size
+and
+the magnification and requires a large storage space. Files that are
+sent to the printer will be large, especially if lots of different
+point sizes or magnifications are used. In \*(pS with outline fonts,
+there is one outline per character which can be scaled arbitrarily to
+any magnification that might be needed. Moreover, \*(pS outline fonts
+are generally more compact than bitmapped fonts. For example, an
+enclosed rectangle is represented by its four corner points rather than
+by all the bits enclosed by the rectangle.
+.pp
+Certainly the outline fonts are more easily scaled to other
+magnifications. By scaling the bitmapped fonts downward, too much
+information is lost, and scaling upward introduces the jaggies.
+Moreover, the pixel array is device dependent; it is valid for output
+devices of only one particular resolution and one choice of possible
+data values per pixel. Scaleable fonts have a great advantage \(em you
+need only one font description file for all magnifications of that font.
+Actually, \*(pS outline fonts are more scaleable even than the \*(MF
+originals for another reason. In,
+.[
+Knu84
+.]
+it is said, \(lqCaution:
+before using this `\fBat\fR' feature (i.e. scaling downward or upward) you
+should check to make sure that your typesetter supports the font at the
+size in question; \*(TX will accept any \(L<desired size\(L> that is positive
+and less than 2048 points, but the final output will not be right
+unless the scaled font really is available on your printing
+device.\(rq Getting \*(pS outline versions of \*(MF fonts is possible
+since both are based on \*(BZ curves. Doing so makes fonts heretofore
+available only on \*(TX and other DVI-based formatters available on
+\fHditroff\fR and other formatters which have evolved to or have been
+designed for use with \*(pS printers.
+.Su "3.2\ \ \ Goals."
+Based on the observations of Section 3.1,
+the goal of this research is to produce a \*(MF to
+\*(pS compiler, \fHmf2ps\fP. Its operational requirements are items 1
+through 5:
+.l1 1
+.le
+It must be possible to translate any legitimate \*(MF font definition
+at any given design size into a \*(pS outline font.
+.le
+The resulting \*(pS outline font should be arbitrarily scaleable.
+.le
+The resulting fonts should look like the bitmapped fonts when printed
+on the same printer.
+.le
+The resulting \*(pS outline font should be more compact \fIwhen sent to
+the printer\fP than a \*(pS version of the \*(MF-generated bitmapped
+font.
+.e1
+.sp .5v
+The fourth requirement deserves a bit of explanation and qualification.
+First note that what is compared is what is sent to the printer.
+Certainly there are compressed versions of the bitmapped fonts that
+reduce the disk storage requirements of the bitmapped fonts. However,
+they must be uncompressed before sending them to most printers. It is the
+printer's storage that is limited; generally disk space is in
+abundance. However, since printers these days are general purpose
+computers, what a printer accepts may in fact be a compression that it
+has been programmed to undo.
+.pp
+Now for the case in which disk space is of concern, the comparison
+should still be relative to printable versions. There exist algorithms,
+e.g. that of Lempel and Ziv
+.[
+lempel ziv
+.]
+that can be used to compress \*(pS outline fonts which are, after all,
+just ASCII files. Therefore, in order not to have a contest between
+compression algorithms, the uncompressed versions are compared. Furthermore,
+in order not to have a contest between different kinds of printers that may
+have differing font representations, \*(pS outline fonts are compared to
+\*(pS bitmapped fonts. When
+considering disk space, the fact that one bitmapped font is needed for
+each magnification is taken into account. Thus, the interest is in
+comparing the size of a scaleable outline font to the total storage for
+the bitmapped fonts for all magnifications of a given design size.
+.cl
+.le
+The resulting \*(pS outline font should be more compact than the total
+of the sizes of the \*(pS versions of the \*(MF-generated bitmapped
+fonts at each available magnification. Even this comparison is not
+completely fair since only specific magnifications are provided, while
+the \*(pS font is arbitrarily scaleable.
+.dl
+.sp .5v
+.pp
+Observe finally, that the comparison is against mag\%ni\%fi\%ca\%tions
+of a single design size since purists would argue that there should
+be a different outline font for each design size.
+Since there are those that do not
+require this purity, the various design sizes will be compared also.
+.pp
+The software engineering goal is item 6.
+.cl
+.le
+\fHmf2ps\fP should be written as much as possible using the existing
+\*(MF program both to save work and to ensure that all \*(MF-acceptable
+font definitions are handled.
+.dl
+.sp .5v
+The evaluation of the results will be
+done relative to these goals.
+.Su "3.3\ \ \ Previous attempts."
+Leslie Carr wrote a collection of programs to produce \*(pS outline
+fonts from \*(MF fonts in 1987. Carr's programs take as input the
+\fIlog\fR output file of \*(MF which contains a description of all
+the paths that \*(MF traces out in drawing a character.
+.pp
+Carr has problems of information loss as a result of not having entered
+into the \*(MF program. This is the reason why Carr's characters are
+poor looking. In,
+.[
+Car87
+.]
+Carr observes, \(lqIn the \&\fCcmr10\fP font,
+the \fIcrisp\fP pen has diameter zero, so serifs have square corners. In
+the \&\fCcmtt10\fP font, \fIcrisp\fP is set to a larger value and the serifs
+end in semicircles. Because the shape of the current pen can NOT be
+taken into account in \*(pS, these differences in the characters shapes
+will not be seen. This is a \fBfundamental\fR problem: given a path $p$
+and a pen $q$ (whose shape is also an arbitrary path), \*(MF
+effectively envelopes $p$ with respect to the shape of $q$; \*(pS can
+do nothing other than stroke it to produce a line of constant width.
+This incompatibility comes to light when the width of the pen is
+significant to the shape of the character\(rq.
+.pp
+In order to avoid this problem, \fHmf2ps\fP finds the internally
+generated envelope, which is used as the boundaries of the inked
+region, and uses this envelope as the outline. It does not matter, then,
+what the pen path and the pen shape are.
+.pp
+More recently, during the time that the work described herein was being
+done, there were other efforts with similar goals.
+.pp
+Doug Henderson
+.[
+henderson outline fonts
+.]
+obtained outline font characters by modifying the \&\fCendchar\fP macro,
+which is called for each character after the bitmap is generated, to take
+the bitmap for the character and white out all but the bits on the edge.
+The number of bits left on the edge is varied according to the resolution
+of the bitmap. These outlines, being bitmapped, are just as unscaleable as
+are the bitmaps for the filled-in characters.
+.pp
+Neil Raine and Graham Toal
+.[
+toal private
+.]
+have developed software that takes the bitmaps and rediscovers the
+outlines by tracing the pixels. The outlines that are used as the basis
+for \*(pS fonts are, for the most part, generated from bitmaps at 2400
+dpi. They first generate RISC OS outline fonts which are screen fonts
+for Acorn's Archimedes RISC computer. These are true scaleable
+outlines. Then, these outlines are converted into \*(pS format. Toal
+says that the the quality of the fonts produced is not too great at low
+resolutions because of shortcomings in Adobe's rendering algorithm. He
+adds that at 1200 dpi on a phototypesetter, they are indistinguishable
+from \*(MF-generated bitmapped fonts. These authors suspect that
+information that is critical for good appearance is lost when tracing
+an outline on a bitmap generated from a mathematically described
+envelope. Better results should be obtainable using the original
+envelope.
+.pp
+John Hobby
+.[
+hobby postscript output system
+.]
+has developed a program called MetaPost, which translates from an extension
+of \*(MF into \*(pS cubic splines and commands.
+His goal was to turn \*(MF into a system for
+typesetting general graphics, including embedded text. His approach,
+similar to ours, was to modify the \*(MF program into what he desired.
+Befitting his more general goals, besides modifying the output, he has
+added new commands to the input language. Moreover, his translation appears
+to be a direct mapping from a \*(MF command sequence to a
+\*(pS command sequence.
+The result is a program more powerful than \fHmf2ps\fP.
+It will be interesting to compare fonts produced by MetaPost and
+\fHmf2ps\fP for appearance and performance.
+.Su "3.4\ \ \ Methodology."
+There are a number of ways to build the compiler. They include
+.l1 1
+.le
+writing the whole compiler from \*(MF to \*(pS from scratch: This has
+the advantage that one does not have to get into another person's
+software, which is not very pleasant when the software is so big. On
+the other hand, one would have to treat the whole job of turning
+mathematical equations and any arbitrary pen shape into outlines.
+.le
+using the \*(MF output as was done by Leslie Carr:
+.[
+Carr
+.]
+This has the advantage of not requiring delving into another's
+software, but the generated information is not enough if one wants no
+deviations from the originals.
+.le
+getting into the \*(MF program: This requires examining the internals
+of the \*(MF program. However, \*(MF and \*(pS make liberal use of
+\*(BZ curves to describe non-circular curves. This fact makes the
+translation process natural. For each specified path, \*(MF creates
+control points for the associated cubic spline curves before
+calculating the bit map. \*(MF also calculates the edge offsets implied
+by the pen shape. Using the necessary information one can get a new set
+of control points that define \*(BZ curves and lines that are needed to
+build the \*(pS outline fonts.
+.e1
+.Su "3.5\ \ \ Software engineering of solution."
+The idea is to split the \*(MF program into front end and back end. The
+front end takes \*(MF specification of a character, magnification, and
+point size, and produces the envelope, i.e., the outline of the
+character, and the back end fills the envelope with bits. Taking the
+existing front end and writing a new back end that converts the
+envelope into a \*(pS specification of an outline is our method of
+producing \fHmf2ps\fP. The bit-filling process will be done by the
+printer.
+.pp
+In order to make \*(pS fonts arbitrarily scaleable, we have to ask the
+\fHmf2ps\fP program to use a very large magnification, at least to try to
+match the grid on which Adobe plots the points of its outlines. Adobe plots
+its characters on a $1000~times~1000$ grid. Thus, Adobe's resolution is
+1000 dpm (dots per em), which for design size 10 points is 7200 dpi.
+Unfortunately, \*(MF, and thus \fHmf2ps\fP accepts resolutions only up to
+3000 dpi. The results should be sufficient to produce fonts scaleable
+up to magnification 7 or 8, which is a reasonable range in
+typesetting.
+.pp
+This approach helps meet goal 6 because the original unchanged \*(MF
+program is used. Thus, exactly the same input is accepted as in the
+\*(MF program. There is some extra frosting obtained by the chosen
+approach. The program for translating \*(MF to \*(pS is actually a bit
+of an interactive environment because the new back end is an extension
+of the existing one. This existing back-end provides an interpreter
+that executes a \*(MF character definition and displays the defined
+character on the screen. Figure 3
+shows the dump of a screen containing several windows, one showing a
+\*(MF definition, another showing the result of its interpretation, and
+a third containing the \*(pS translation of the definition in the first
+window. If software to interpret \*(pS definitions were available here,
+a fourth window could be set up showing the result of interpreting the
+translation of the third window. This would allow comparison of the
+character's appearances without having to print them on paper.
+.su "4\ \ \ The program"
+.PP
+In the following discussion, the \*(MF program is often called just
+\(lq\*(MF\|\(rq.
+.pp
+The \*(MF program has been written so that it can be made to run
+efficiently in a wide variety of operating environments by making
+comparatively few changes. Such flexibility is possible because the
+program is written in the \&\fCWEB\fR language which is at a higher level
+than Pascal. The preprocessing step that converts \&\fCWEB\fR to Pascal
+is able to introduce most of the necessary refinements. Semiautomatic
+translation to other languages is also feasible, because the program
+does not make extensive use of features that are peculiar to Pascal.
+.pp
+The program has two important variations: First, there is a long and slow
+version called \s-1\fHINIMF\fR\s0, which does the extra calculations needed to
+initialize \*(MF's internal tables. It has to be run first. It
+initializes everything from scratch without reading a base file, and it
+has the capability of dumping a base file. Secondly, there is a shorter and
+faster production version called \s-1\fHVIRMF\fR\s0, which cuts the
+initialization to a bare minimum. It is a virgin program that needs
+to input a base file in order to get started. \s-1\fHVIRMF\fR\s0 typically has
+more memory capacity than \s-1\fHINIMF\fR\s0, because it does not need the
+space consumed by the dumping and undumping routines, etc.
+.pp
+In order to generate a compiler that translates \*(MF to \*(pS,
+additional external procedures and functions were added to the \*(MF
+program so that it runs exactly the same except that when it asks for
+an output file name, it asks for an additional name, for the extra
+output file that is to contain the \*(pS outlines. Those changes were
+made on the Pascal version of the \s-1\fHVIRMF\fR\s0, and were compiled later
+with \*(MF's library files.
+(It was a complete oversight on our part not to have modified the
+\&\fCWEB\fP version of \s-1\fHVIRMF\fP\s0.)
+A few extra lines were added to the
+macro file, \&\fCplain.mf\fR. These act as flags, identifying that
+\*(MF has entered some of the macros.
+.Su "4.1\ \ \ Basic idea."
+To specify a character in \*(MF, one specifies either
+an envelope (outline) or
+a center-line path and a pen head.
+For the former, \*(MF just fills the envelope with bits.
+For the latter, \*(MF pretends that it is drawing the character
+with a pen of specified
+head shape following the specified path, i.e., the center of the head
+stays on the path. The distance from the center-line path and outer
+edge of ink trail left by pen head is called the \fIoffset\fR\h'-.1m'.
+So, for a character, \*(MF follows the center-line path to calculate the path
+of offset points, i.e., the envelope, and then fills the envelope with
+bits.
+In either case, \*(MF ends up filling an envelope.
+.pp
+We need to break \*(MF into a front end and a back end at the point
+just after the envelope has been calculated. Then we provide a new back
+end that converts the envelope into \*(pS instead of filling the
+envelope with bits. Note then that the \*(pS printer will fill in the
+envelope with bits as it fills the path obtained from the envelope.
+.pp
+The following subsections describe the data and the calculations
+involved in the new back end.
+.Su "4.2\ \ \ Data structures."
+The main data structures that \*(MF keeps for a character are the
+center-line path, the pen shape, and the envelope path. There are a few
+operations that can be performed on paths, called transformations.
+.SU "4.2.1\ \ \ \*(MF's path representation."
+.ft 1
+When a \*(MF user specifies a path, \*(MF creates a list of knots and
+control points for the associated cubic spline curves. If the knots are
+$z sub 0 ,~z sub 1 ,...,~z sub n$, there are control points $z sub k
+sup +$ and $z sub k+1 sup -$ such that the cubic splines between the
+knots $z sub k$ and $z sub {k+1}$ are defined by the \*(BZ formula
+.sp
+.in +.4375i
+$z(t)~=~B(z sub k, z sub k sup + , z sub k+1 sup - , z sub k+1 ;t)$
+.sp .2v
+\h'\w'$z(t)~$'u'$=~(1~-~t) sup 3 z sub k ~+~ 3t(t~-~1) sup 2 z sub k sup +$
+.sp .2v
+\h'5P'$+~ 3t sup 2 (1~-~t)z sub k+1 sup - ~+~ t sup 3 z sub k+1$,
+.sp
+.in -.4375i
+for $0~<=~t~<=~1$.
+.pp
+There is a 7-word node for each knot $z sub k$, containing one word of
+control information and six words for the $x$ and $y$ coordinates of $z
+sub k sup -$ and $z sub k$ and $z sub k sup +$. The control
+information appears in the \fIleft_type\fR and \fIright_type\fR
+fields and they specify properties of the curve as it enters and leaves
+the knot. There is also a \fIlink\fR field, which points to the
+following knot. Before the \*(BZ control points have been calculated,
+the memory space they will ultimately occupy is taken up by information
+that can be used to compute them. The \*(MF \fImake_choices\fR
+procedure chooses angles and control points for the splines of a curve
+when the user has not specified them explicitly.
+.SU "4.2.2\ \ \ \*(MF's path transformation."
+.ft 1
+When \*(MF digitizes a path, it reduces the problem to the special case
+of paths that travel in the \fIfirst octant\fR directions; i.e., each
+cubic $z(t)~=~(x(t),y(t))$ being digitized will have the property that
+$0~<=~y prime (t)~<=~x prime (t)$. This assumption makes digitizing
+simpler and faster than if the direction of motion has to be tested
+repeatedly. When $z(t)$ is cubic, $x prime (t)$ and $y prime (t)$ are
+quadratic, hence each of the four polynomials, $x prime (t)$, $y prime (t)$, $x
+prime (t) - y prime (t)$, and $x prime (t) + y prime (t)$, crosses
+through $0$ at most twice. If we subdivide the given cubic at these
+places, we get at most nine subintervals. In each of these intervals
+each of $x prime (t)$, $y prime (t)$, $x prime (t) - y prime (t)$, and
+$x prime (t) + y prime (t)$ has a constant sign. The curve can be
+transformed in each of these subintervals so that it travels entirely
+in first octant directions, if we exchange $x$ and $- x$, $y$ and $-
+y$, and $x$ and $y$ as necessary.
+.Su "4.3\ \ \ Pens and envelopes."
+There are two kinds of pen heads that may be used, polygonal and
+elliptic. There are a number of trade-offs involved in their use. The
+first subsection treats the case of an $n$-vertex polygonal pen shape
+and the second treats the case of an elliptical pen shape. Both
+describe the influence of pen shape on the envelope of the font.
+.SU "4.3.1\ \ \ Polygonal pens."
+Suppose that the vertices of a polygon are $w sub 0 ,~w sub 1 ,...,~w
+sub n-1 , ~w sub n ~=~ w sub 0$ in counterclockwise order. A convexity
+condition requires that each vertex turns left when one proceeds from
+$w sub 0$ to $w sub 1$ $...$ to $w sub n$. The envelope is obtained if we
+offset a given curve $z(t)$ by $w sub k$ when that curve is traveling
+in a direction $z prime (t)$ lying between the directions $w sub k - w
+sub k-1$ and $w sub k+1 - w sub k$. At times $t$ when the curve
+direction $z prime (t)$ increases past $w sub k+1 - w sub k$, \*(MF
+temporarily stops plotting the offset curve and inserts a straight line
+from $z(t) + w sub k$ to $z(t) + w sub k+1$; notice that this straight
+line is tangent to the offset curve. Similarly, when the curve
+direction decreases past $w sub k - w sub k-1$, \*(MF stops plotting
+and inserts a straight line from $z(t) + w sub k$ to $z(t) + w sub
+k-1$; the latter line is actually a retrograde step, which will not be
+part of the final envelope under \*(MF's assumptions. The result of
+this consideration is a continuous path that consists of alternating
+curves and straight line segments. The segments are usually so short,
+in practice, that they blend with the curves.
+.SU "4.3.2\ \ \ Elliptical pens."
+To get the envelope of a cyclic path with respect to an ellipse, \*(MF
+calculates the envelope with respect to a polygonal approximation to
+the ellipse. This has two important advantages over trying to obtain
+the exact envelope:
+.l1 1
+.le
+Polygonal envelopes give better results, because the polygon has
+been designed to counteract problems that arise from digitization; the
+polygon includes sub-pixel corrections to an exact ellipse that make
+the results essentially independent of where the path falls on the
+raster.
+.le
+Polygonal envelopes of cubic splines are cubic splines. Hence it is
+not necessary to introduce completely different routines. By contrast,
+exact envelopes of cubic splines with respect to ellipses are
+complicated curves, more difficult to plot than cubics.
+.e1
+.Su "4.4\ \ \ Taking out data."
+After \*(MF has calculated the paths and the offsets, it is ready to
+send the values to the \fImake_moves\fR procedure which generates
+discrete moves for any four points that represent a \*(BZ curve. This
+is done for each one of the cyclic paths from which the letter is built.
+When the offsets are zero, this is done by the \fIfill_spec\fR
+procedure. Otherwise this is done by the \fIfill_envelope\fR
+procedure. In the latter case, the line segments, which were discussed
+earlier, should be taken out also in order to get smooth connections
+between the different curves that the cyclic path is built from.
+Because \*(pS describes any shape in terms of curves and lines, this is
+the point to take advantage of \*(MF's calculations, i.e., when \*(MF
+calls the \fImake_moves\fR procedure and when \*(MF draws line
+segments for offset corrections.
+.Su "4.5\ \ \ Processing the data."
+The generated data are not ready yet to be used. First, we should
+unskew, i.e., transform from the first octant back to the original, the
+paths according to the octant that the paths were traveled in before
+they were skewed. This unskewing is done by taking out the octant
+number at the moment that the \fImake_moves\fR procedure is called
+and then using \*(MF's \fIunskew\fR procedure that sets values $x
+prime$ and $y prime$ to the original coordinate values of a point,
+given an octant code and coordinates $(x,y)$ after they have been
+mapped into the first octant and skewed; the new values are sent to the
+\fIsend_p_s\fR procedure. This procedure has eight formal parameters
+that are all used when sending a curve. When sending a line,
+only four parameters are used, two to denote the start point and two to
+denote the end point; the remaining four parameters are sent as zeros
+so \fIsend_p_s\fR can distinguish whether a line was sent or a curve.
+In the next step, \fIsend_p_s\fR unscales the numbers because \*(MF
+works with units of scaled points, of which there are $2 sup 16$ in an
+ordinary point. While unscaling, the values are
+transformed in order to send them to the \*(pS dictionary
+\&\fCFontBBox\fP command. After this pre-processing,
+the data are sent to a temporary file.
+.SU "4.5.1\ \ \ Getting more information."
+When \*(MF calls the \fImake_moves\fR procedure, it does not have any
+information on the role that this path is going to play, whether the
+current cyclic path is going to be \fIfilled\fP or whether it will act as
+a boundary of a region to be \fIerased\fP.
+.pp
+In order to distinguish between the cases, more information has to be
+taken. This is done by copying the \&\fCplain.mf\fR file into a new
+file named \&\fCmyplain.mf\fR and adding a few lines to it. The
+additional code was added in order to identify \*(MF's use of the
+macros. \*(MF uses the variables for date only once, when the program
+is started, so it was decided to use them in the rest of the
+program.
+The \&\fCyear\fR is changed to $-1$ when \*(MF's \&\fCpen_stroke\fR
+macro is applied on a cyclic path, i.e., in the characters such as
+\(lqo\(rq, \(lqO\(rq, and \(lqQ\(rq, and to $-2$ when the \&\fCerase\fR
+macro is called. The \&\fCmonth\fR is changed when the \&\fCfill\fR
+macro is called. There are three kinds of paths:
+.l1 1
+.le
+paths to be \fIfilled\fP are processed using the \*(pS \&\fCfill\fR
+command.
+.le
+paths to be \fIstroked\fP are processed using the \*(pS \&\fCeofill\fR
+command.
+.le
+paths to be \fIerased\fP are processed using specialized procedures
+which will be discussed later.
+.e1
+.sp .5v
+.pp
+A letter cannot always be treated as one unit by means of the
+\&\fCfill\fR and \&\fCeofill\fR commands. For instance, the letter
+\(lqQ\(rq is built of two different paths, the first of which is
+stroked and the second of which is filled. Generating the letter
+using the \*(pS \&\fCeofill\fR command causes a hole in the image (see
+Figure 4).
+.fs
+.F+
+figure fig4.ps
+.F-
+.ca "Figure 4"
+.fe
+So while generating a letter, fill mode can be changed for each cyclic
+path. Moreover, when generating a letter whose paths should be filled,
+it is not always possible to use just one \&\fCfill\fR command (see
+Figure 5).
+.fs
+.F+
+figure fig5.ps
+.F-
+.ca "Figure 5"
+.fe
+When a \*(pS \&\fCfill\fR command is applied to a path that is composed
+of more than one subpath, say two for the sake of simplicity, and one
+subpath is inside the other and is drawn in a direction opposite to the
+external one, the internal path is considered a hole and is not filled
+(see Figure 6).
+.fs
+.F+
+figure fig6.ps
+.F-
+.ca "Figure 6"
+.fe
+So, if several paths are to be filled in this manner, the description
+of each one of them should be ended with the \&\fCfill\fR command.
+There is one more benefit to using this strategy: The \*(pS \fCcurrent
+path\fR stack becomes empty after encountering any kind of \&\fCfill\fR
+command. Therefore, using the \&\fCfill\fR command after each path can
+help avoid \&\fCstack overflow error\fRs if all paths together are too
+long.
+.SU "4.5.2\ \ \ Treating erasing paths."
+There are three methods of handling the problem of paths that should be
+erased by \fHmf2ps\fP itself:
+.l1 1
+.le
+filling with white: Because erasing paths are built in order to erase
+an existing filled area and \*(pS overlaps paths (i.e., a region is
+shown in the color that was drawn last), erasing paths can be
+implemented by filling those paths with white. This solution is the
+easiest, but it works only if the background is white and the letter is
+drawn in some level of gray. If one wants to draw a letter with
+background other than white, the resulting appearance will not be correct.
+.pp
+.le
+calculating new paths resulting from subtracting the erasing paths from
+the previous filled paths: Such a solution can be global. However, it
+costs a lot in terms of processing time and accuracy, because paths are
+given implicitly by four points, and in order to calculate the new
+paths, one should find the intersection points of \*(BZ curves, i.e.,
+to find points that lie on both \*(BZ curves, and then calculate new
+curves, which are difficult to calculate from those points.
+.pp
+.le
+using the \*(pS \&\fCeoclip\fR command: Be\%cause the letters are bounded
+in a $1000~times 1000$ box, a primary square path whose segments are
+$1000$ units long should be declared and after it all the erasing paths
+should be listed. After relocating the erasing paths we are ready to
+declare \&\fCeoclip\fR, which means that the clipping path is the
+external primary one and the internal paths, the erasing paths, are
+holes. This is an elegant solution that uses the power of the language
+and is available in simple situations in which there is no intersection
+between the erasing paths (see Figure 7).
+If there were intersections, a little more
+sophisticated use of the \&\fCeoclip\fR command would be needed. Relocation
+of the erasing paths is done by the procedure \&\fCdoarrange\fR.
+.e1
+.fs
+.F+
+figure fig7.ps
+.F-
+.ca "Figure 7"
+.fe
+.pp
+There are other problems caused by the erasing paths. Because the
+erasing paths have segments in common with paths to be filled, \*(pS must
+decide whether the common segments are in the clipping path or not.
+\*(pS does not seem to have a consistent policy on that and it seems to
+be that the decision is taken arbitrarily (see Figure 8).
+.fs
+.F+
+figure fig8.ps
+.F-
+.ca "Figure 8"
+.fe
+An attempt to resolve the clipping path problem led to the first author
+sending the following electronic message (obviously, not as nicely
+formatted as herein) to Glenn Reid of Adobe Systems, Inc.
+.qb
+.nf
+From simon Tue Mar 21 13:22:32 1989
+To: greid@adobe.com
+Subject: Problem in PostScript
+.fi
+.sp
+Dear Mr. Reid
+.sp
+I have got a problem in understanding the PostScript
+policy in determining \(lqwhat is in the clipping path\(rq.
+I think there is a problem in the boundaries.
+Here is an example that shows that problem:
+.es
+.ft C
+ gsave
+ initclip
+ newpath
+
+ 0 0 moveto
+ 0 1000 lineto
+ 1000 1000 lineto
+ 1000 0 lineto
+ 0 0 lineto
+
+ 300 100 moveto
+ 700 100 lineto
+ 700 300 lineto
+ 300 300 lineto
+ 300 100 lineto
+
+ 700 900 moveto
+ 300 900 lineto
+ 300 700 lineto
+ 700 700 lineto
+ 700 900 lineto
+
+ eoclip
+
+ newpath
+ 100 100 moveto
+ 900 100 lineto
+ 900 900 lineto
+ 100 900 lineto
+ 100 100 lineto
+ fill
+ grestore
+.ee
+.ft R
+As you see, the problem is that on top of the shape, the line
+which belongs to the upper \(lqhole\(rq in the clipping path and to the
+current path ( to be filled ) is drawn, and on bottom of the
+shape it is not.
+.sp
+This is happening both on the Apple Laser printer and on the
+QMS-80.
+.sp
+I would be glad to have a reply from you.
+.sp
+.nf
+Thanks in advance
+Shimon Yanai
+C.S Dep.
+Technion
+.fi
+.qe
+What Mr. Reid saw when he printed the \*(pS commands contained in the
+message is reproduced in Figure 9.
+.fs
+.F+
+figure fig9.ps
+.F-
+.ca "Figure 9"
+.fe
+Mr. Reid replied with the following:
+.qb
+.nf
+From: greid@adobe.com (Glenn Reid)
+To: Shimon Yanai <simon@techunix>
+Cc: greid@adobe.com
+Subject: Re: Problem in PostScript
+In-Reply-To: Your message of Wed, 22 Mar 89 ...
+Date: Wed, 22 Mar 89 11:41:35 PST
+.fi
+.sp
+The problem is that the path you are filling falls exactly on the edge
+of the clipping path. This produces a zero-width area to fill, and
+unfortunately it sometimes fills and sometimes does not with the
+current fill algorithm. I believe that it is related to the direction
+of the paths; if the paths are going in opposite directions along the
+same line, it will fill with a one-pixel area, but if they are going in
+the same direction, it will not fill.
+I believe this has been fixed to be more consistent in Display
+PostScript, for what it's worth.
+.sp
+Glenn Reid
+.br
+Adobe Systems
+.qe
+.pp
+The idea of using opposite directions had been checked before sending
+the letter, so the problem had to be solved within the back end of
+\fHmf2ps\fP. The
+erasing paths near the top of the letter had their $y$ coordinates
+increased by 0.8 points, and those near the bottom had their $y$
+coordinates decreased by the same amount. This shift is invisible to
+the human eye because the font definitions are in terms of hundreds of
+points (see Figure 10). This solution was designed to work with most
+existing \*(MF fonts. It is possible that there will be fonts that are not
+treated well by this solution.
+.fs
+.F+
+figure fig10.ps
+.F-
+.ca "Figure 10"
+.fe
+.Su "4.6\ \ \ Optimization."
+Optimization is done in order to make the description of the fonts
+shorter and to save work in the \*(pS interpreter. This is done in
+three ways:
+.l1 1
+.le
+not printing lines with length zero. As was said earlier, the \*(MF
+program prints lines to connect offset points. There are times that
+after rounding or truncating the output data, the start point and the
+end point are equal. In such cases, the lines are eliminated.
+.le
+checking if the \*(BZ curve acts as a line. From the definition of the
+\*(BZ curve, it is known that if the two control points lie on the line
+that connects the start point and the end point, the curve is of degree
+one. In such cases \fHmf2ps\fP generates a command to print a line from
+the start point to the end point, thus saving space and avoiding
+redundant calculations for the \*(pS interpreter.
+.le
+checking if a series of consecutive line segments are in the same line.
+This is done by storing the segments in a buffer and checking whether a
+new segment is collinear with the last stored.
+.e1
+.Su "4.7\ \ \ Changed or added routines."
+The following is a list of routines that were changed or added in order
+to build \fHmf2ps\fP from \*(MF.
+.in +1P
+.LE
+\fIprintchar\fP was modified to get character names.
+.LE
+\fIfixdateandtime\fP was modified to initialize variables that were used as flags in the macros.
+.LE
+\fIfillspec\fP was modified to send out data on splines.
+.LE
+\fIskewlineedges\fP was modified to send out offset lines.
+.LE
+\fIdualmoves\fP was modified to send out offset lines.
+.LE
+\fIfillenvelope\fP was modified to send out data on splines.
+.LE
+\fIdostatement\fP was modified to identify tokens that are strings.
+.LE
+\fImain\fP was modified to call the \fHmf2ps\fP procedure in the beginning and ending of the program.
+.LE
+\fIsendcurve\fP was added to unskew spline values and to send them to the next process.
+.LE
+\fIsendline\fP was added to unskew line values and to send them to the next process.
+.LE
+\fIok\fP was added to check if two lines are collinear.
+.LE
+\fIrestore\fP was added to restore the parameters of the last line.
+.LE
+\fIrecall\fP was added to recall values from the buffer.
+.LE
+\fIus\fP was added to convert the \*(MF scale so that a letter would fit the
+Adobe standard $1000~times~1000$ bounding box.
+.LE
+\fIsend_p_s\fP was added to create a \*(pS file of lines and curves.
+.LE
+\fImakemoves\fP was modified to send out spline data.
+.LE
+\fIdump\fP was added to append information from the file named \&\fCf\fP to the file named \&\fCg\fP.
+.LE
+\fIcheckerase\fP was added to identify the file that contains \(lqerase\(rq commands, and their position within the file.
+.LE
+\fIdoarrange\fP was added to put erasing paths at the beginning of the file.
+.LE
+\fIprint_start\fP was added to signal the beginning of a new cyclic path to be processed.
+.LE
+\fIprint_end\fP was added to signal the end of the current cyclic path.
+.LE
+\fIinit_ps\fP was added to make initializations.
+.LE
+\fImakenewdef\fP was added to make initializations when more than one character
+occurs in the input.
+.LE
+\fIcloseolddef\fP was added to close the last definition.
+.LE
+\fItini_ps\fP was added to handle the ending of the process.
+.LE
+\fIauxprintchar\fP was added to print characters.
+.LE
+\fIauxprint\fP was added to print strings.
+.in -1P
+.su "5\ \ \ Operation of \fHmf2ps\fP in a \fHU\s-2NIX\s0\fP environment"
+.ft 1
+.PP
+When invoked,
+\fHmf2ps\fP
+first asks for an output file name. For the example this file is called
+\&\fCex1\fP. \fHmf2ps\fP then asks,
+.ES
+.fi
+.na
+\(lq\&\fCAre you creating the whole dictionary (y/n)?\fP\(rq.
+.EE
+.ad
+If the answer is other than \(lq\&\fCy\fP\(rq
+or \(lq\&\fCY\fP\(rq, it is considered \(lq\&\fCno\fP\(rq. If the
+answer is \(lq\&\fCy\fP\(rq or \(lq\&\fCY\fP\(rq, then the whole
+dictionary is created. This means that \fHmf2ps\fP creates a \*(pS
+dictionary that includes entries for all the characters that are in
+the input, e.g., \&\fCcmr10\fP set. This dictionary needs additional
+definitions such as \fIleft side bearing, width, bounding box\fP, etc.
+These definitions need information on character features that must be
+calculated within the program. Otherwise, the whole dictionary is not
+created and the program treats the input as a single character
+definition that is to be translated into a \*(pS outline definition.
+After \fHmf2ps\fP prompts \(lq\&\fC**\fP\(rq, we are in the \*(MF
+environment. Now the user inputs
+.ES
+\s-1\\mode=hires;\\nodisplays;\\input cmr10;\(cr\s0
+.EE
+After \fHmf2ps\fP has finished, the resulting \*(pS font dictionary can
+be used to print text. In order to print text, the font dictionary
+should be installed in some formatter's font source directory, and then
+it can be loaded through the formatter's commands. The dictionary
+followed by appropriate \fHshow\fP and \fHshowpage\fP commands can also
+be sent directly to the printer.
+.su "6\ \ \ Evaluation of results"
+.PP
+This section evaluates the \fHmf2ps\fP program relative to goals
+established in section 3.2. The program was produced as a variation of
+\*(MF and it accepts any \*(MF font definition and produces a \*(pS
+outline font scaleable up to magnification 8, or to point size 80 if
+you are not a purist. Thus goals 6 and 1 have been entirely met and
+goal 2 is partially met. To meet goal 2 fully the program must be
+modified to allow large enough arrays to handle magnifications up to
+7200; this is left to future work.
+.pp
+It remains to evaluate the appearance and sizes of the outline fonts
+relative to the bitmapped fonts to see if goals 3, 4, and 5 have been
+met.
+.Su "6.1\ \ \ Appearance."
+In order to compare appearances, the outline font (Sub\%sub\%fi\%gure P)
+and and the 300 dpi bitmapped font (Sub\%sub\%fi\%gure M) generated from
+the same \*(MF definition are used to
+print similar sentences at one, two, or three different sizes or
+magnifications on three devices of differing resolutions.
+The sentences are printed in the \&\fCcmr\fP (Sub\%fi\%gure R),
+\&\fCcmtt\fP (Sub\%fi\%gure T), and \&\fClasy\fP (Sub\%fi\%gure S) typefaces.
+The bitmapped fonts may be printed at design sizes 7, 8, 10, or 12, and
+the outline fonts may be printed at magnifications .7, .8, 1.0, or 1.2.
+Finally, the three devices are the 300 dpi LaserWriterII (Figure
+11-LW300), the 600 dpi Varityper (Figure 11-VT600), and the 1270 dpi
+Linotronic 300 (Figure 11-LT1270). The bitmapped font examples are
+formatted with \*(TX while the outline font examples are hand-coded \*(pS
+files sent directly to the printer. Since the
+formatter with which this paper is printed can use arbitrary \*(pS
+fonts, half of the examples could have been done in-line without
+pasting in. However, for fairness in the comparison, all examples were
+cut out and pasted in.
+.pp
+There are visible differences due to differences in the formatting
+software. \*(TX squeezes the letters closer together than does the \*(pS
+engine. Moreover, the interword space is constant in the \*(pS
+dictionary but is varied by \*(TX according to the line structure.
+These differences are not the differences that are at issue here.
+.pp
+On the 300 dpi device, the characters from the bitmapped fonts print thinner
+than are those of the outline fonts. However, the edges of both sets are
+equally smooth or jagged as the case may be in all sizes. Overall, then,
+the appearance of the characters of the bitmapped fonts is crisper than
+that of the outline fonts.
+On the higher resolution devices,
+the thicknesses of the characters are closer to being
+equal at all sizes. Thus, the \*(MF program does a better job of building a
+correctly sized bitmap at 300 dpi than does the 300 dpi \*(pS engine of the
+LaserWriterII. The latter seems to round up too much. However, both
+seem to get the edges equally smooth even at low sizes and low resolutions.
+.pp
+At the two higher resolutions, the outline fonts are significantly better
+than the outline fonts at lower resolutions and are significantly better
+than the bitmapped fonts at the same resolution of printing. However, this
+latter is true because the bitmapped fonts were generated by the \*(MF
+program specifically to be printed at 300 dpi.
+When a 300-dpi bitmap is printed with no scaling at 600 or 1270 dpi, it
+remains a 300-dpi bitmap. As expected, the 300-dpi bitmapped fonts print better
+at 300 dpi than they do at the two higher resolutions.
+.pp
+The generated outlines are not fine-tuned for printing at low resolutions,
+such as 300 dpi,
+as are the \*(MF-generated bitmaps. It might be useful to make use of
+the \*(pS facilities for hinting to improve the appearance of the
+characters printed from the outlines at low resolutions.
+.pp
+Figure 12 shows samples of similar sentences printed on the same three
+devices using the standard Helvetica, Times
+Roman, and Courier \*(pS outline fonts built into most \*(pS-executing
+laser printers.
+It appears to these authors that the standard \*(pS fonts are
+significantly better than those generated from \*(MF fonts. However,
+this is not surprising. Adobe uses a grid of $1000~times~1000$ for its
+character definitions, resulting in a resolution of 7200 dpi for characters
+printed at point size 10.
+Because of size limitations of the
+\*(MF program the \*(MF outline fonts are using a resolution of 3,000
+points per inch. However, when using the letters in small sizes such as
+from 10 to 70,
+quality differences are hardly visible especially when working
+with printers that have a resolution of 300 points per inch such as the
+Apple LaserWriter.
+Moreover, Adobe makes liberal use of hinting to
+improve the appearance of its fonts at low resolutions.
+We completely ignored hinting, as we did not see any way to
+automatically generate the hints.
+.Su "6.2\ \ \ Sizes of fonts."
+Recall that it is necessary to compare the size of the \*(pS outline
+font for a particular \*(MF definition to the sizes of the bitmapped
+fonts in \*(pS fonts for the individual and all magnifications.
+.pp
+This comparison is made in this section for the \&\fCcmr10\fP font at the
+standard set of six magnifications 1, 1.095, 1.2, 1.44, 1.728, and 2.07
+(which are approximations of 1.2 raised to the powers 0, .5, 1, 2, 3,
+and 4, respectively). In addition, as a gesture to those who are not
+purists and accept magnifications of the 10 point design size as
+different point sizes, the comparison includes the \&\fCcmr\fP font at
+point size 5, 6, 7, 8, 9, 10, 12, and 17, the standard eight design
+sizes maintained for use with \*(TX.
+.pp
+Table 1 shows the sizes in bytes. Thus it is clear that the
+\*(pS outline font is bigger than any bitmapped font and that goal 4
+fails. Moreover, it is clear that the outline font is bigger than the
+sum over all magnifications of one design size and than the sum over
+all standard design sizes. Thus goal 5 fails. In fact, this failure is the
+reason that the samples of Figure 11 involve only upper case letters. Samples
+with complete fonts with both cases often overloaded the printer available
+to the students at the time this work was done.
+.TS
+center;
+l r l r l.
+Font Design Magni- Bitmap Outlines
+ size fication (size in (size in
+ bytes) bytes)
+_
+\fCcmr\fP 10 1.0 22,812 245,000
+\ \ " 10 1.095 24,231 \ \ \ \ "
+\ \ " 10 1.2 26,044 \ \ \ \ "
+\ \ " 10 1.44 31,892 \ \ \ \ "
+\ \ " 10 1.728 39,614 \ \ \ \ "
+\ \ " 10 2.07 50,578 \ \ \ \ "
+\fCcmr\fP 5 1.0 16,729 \ \ \ \ "
+\ \ " 6 1.0 17,757 \ \ \ \ "
+\ \ " 7 1.0 18,820 \ \ \ \ "
+\ \ " 8 1.0 20,041 \ \ \ \ "
+\ \ " 9 1.0 21,580 \ \ \ \ "
+\ \ " 12 1.0 25,658 \ \ \ \ "
+\ \ " 17 1.0 37,140 \ \ \ \ "
+_
+Total 352,896 245,000
+.TE "Table 1"
+.br
+.RT
+.pp
+However, do note that the outline font is smaller than the sum over all
+design sizes and magnifications thereof.
+.pp
+So in terms of disk space for the non-purists, the outline font
+represents a savings. Again notice that not all magnifications of the
+bitmapped fonts are maintained and the outline font is arbitrarily
+scaleable. Moreover, as the magnification grows the size of the bitmap
+grows even more rapidly.
+.pp
+The disappointment with respect to saving printer and disk memory says
+that it is important to spend more effort to optimize the outline
+font.
+.pp
+All is not lost, though! As this paper was being prepared for publication
+in \*(TB,
+one reviewer, Nelson Beebe, pointed out something that we can only kick
+ourselves for not noticing. The \*(pS outline fonts that are generated by
+\fHmf2ps\fP are horrendously wasteful in space. They use original, built-in
+command names and absolute coordinates. A significant reduction in size can
+be obtained by definition and use in the outlines of single-character
+command names, e.g., \(lq\fCM\fP\(rq for \(lq\fCmoveto\fP\(rq, and by use
+of relative versions of these commands with operands of fewer digits after
+the initial absolute \&\fCmoveto\fP of any character. A simple filter was
+written to obtain new compressed versions of the \*(pS outline fonts. The
+appearances of the output when printing with these new versions is
+unchanged, but what is sent to the printer is significantly smaller, about
+37.7% smaller. The reduction on a per-letter basis is about 45%.
+Table 2 shows the information of Table 1 for the new versions of the
+outline fonts.
+.TS
+center;
+l r l r l.
+Font Design Magni- Bitmap Outlines
+ size fication (size in (size in
+ bytes) bytes)
+_
+\fCcmr\fP 10 1.0 22,812 152,670
+\ \ " 10 1.095 24,231 \ \ \ \ "
+\ \ " 10 1.2 26,044 \ \ \ \ "
+\ \ " 10 1.44 31,892 \ \ \ \ "
+\ \ " 10 1.728 39,614 \ \ \ \ "
+\ \ " 10 2.07 50,578 \ \ \ \ "
+\fCcmr\fP 5 1.0 16,729 \ \ \ \ "
+\ \ " 6 1.0 17,757 \ \ \ \ "
+\ \ " 7 1.0 18,820 \ \ \ \ "
+\ \ " 8 1.0 20,041 \ \ \ \ "
+\ \ " 9 1.0 21,580 \ \ \ \ "
+\ \ " 12 1.0 25,658 \ \ \ \ "
+\ \ " 17 1.0 37,140 \ \ \ \ "
+_
+Total 352,896 152,670
+.TE "Table 2"
+.br
+.RT
+.pp
+There are still better compressions that can be achieved. According to
+Beebe,
+.[
+beebe private
+.]
+Toal and Raine's outline representation of \&\fCcmr\fP at 10 points
+requires about twice the space needed for bitmaps of the same; at 14 to
+16 points, the outlines and the bitmaps occupy about the same amount of
+space; above 16 points, the outlines are smaller than the bitmaps. It
+is clear that better encodings exist than we explored and these must be
+explored for any future version of \fHmf2ps\fP.
+.pp
+One such better encoding appears to be that used by Adobe for its own
+proprietary fonts; fonts encoded this way have a FontType of 1.
+User defined fonts have a FontType of 3. Beebe
+.[
+beebe private
+.]
+says that type 1 fonts are handled with greater efficiency than type 3
+fonts on most existing \*(pS interpreters, especially those that are based
+on Adobe-licensed code.
+Adobe has recently published specifications for the type 1 font encoding,
+.[
+adobe type 1
+.]
+thus allowing anyone to produced type 1 fonts. Beebe believes that the
+market forces will drive other companies to encode their fonts as type 1.
+Moreover, as more and more windowing systems based on \*(pS, e.g., NeWS
+and NeXT, appear, the attraction of \*(pS outline fonts will increase, as
+then the same font can be used for both printing and previewing. Thus, the
+incentive will be to convert \*(MF fonts into type 1 \*(pS outline fonts.
+.pp
+Ultimately, the tradeoff is between the size of the font sent to the
+printer, and the time it takes for the printer to decode the program
+for the characters. However, with proper cacheing, a big enough cache,
+and a not very fancy document, the decoding is done only once per
+character for the document!
+.su "7\ \ \ Future work"
+.PP
+For the future, there are a number of improvements that can be made.
+Currently, each letter of the \*(pS outline fonts is described as a set
+of cyclic paths. When all are filled or stroked, one gets the desired
+letter. Some of those cyclic paths have a common boundary that is
+inside the letter and is not necessary for the outline description of
+the letter as a whole. Eliminating these paths and creating one
+outline for the letter will save space. Today this can be done
+manually, and is worth the effort because the translation process is
+done only once. From that time on, the font is used the way it is.
+.pp
+As was demonstrated by Beebe's rescue of our result, closer attention
+should be paid to obtaining more compact representations of character
+outlines, representations for which \*(pS routines can be written to
+interpret them into standard outline drawing commands.
+Collapsing commands into single characters and using relative movements
+saved significant amounts of space. Perhaps, even more dramatic savings can
+be obtained by giving coordinates and distances in hexadecimal.
+.pp
+More effort can be spent on modifying the program in order to allow
+magnifications up to 7200 points. Thus, no jaggies will be seen, as
+occasionally happens when using higher magnifications, e.g., in our
+translated fonts at magnification 8. This could be done by enlarging
+the program arrays to handle characters based on 7200 points. A
+sophisticated solution is required if one wants to save room while
+compiling the input font. In such a case, any linear translation which
+is done within the \*(pS program is with a factor less than 1.
+.pp
+\*(MF was changed for \*(TX 3.0. It is necessary to build a new version of
+\fHmf2ps\fP based on this latest version of \*(MF. As the changes to the
+\*(MF program deal mainly with ligatures and kerning, the calculation of
+envelopes is probably not affected. Therefore, it is likely that
+the portion of \*(MF up to the calculation of the envelope can still be
+used as a front end for \fHmf2ps\fP with very little change in the
+portion of the program we wrote.
+.pp
+Finally, it might be worthwhile, for the sake of portability to other
+systems and enhanceability by \pother
+.sp
+humans, to rewrite or to write the next
+version of \fHmf2ps\fP with \&\fCWEB\fP.
+.su "Acknowledgments"
+.PP
+The authors thank the
+\*(TB editors, and Nelson Beebe for their help, sharp comments, and
+result-saving ideas.
+Dealing with their comments made this a better paper.
+.su "References"
+.[
+$LIST$
+.]
+.RT
+.sp 2
+.ta 1P +1P
+.in +6P
+.ps 9
+.vs 11
+.nf
+.ti -1P
+\(dm Shimon Yanai
+IBM Science and Technology
+ Center
+Technion City
+.sp
+Haifa 32000
+Israel
+yanai@israearn.bitnet
+.sp
+.ti -1P
+\(dm Daniel M. Berry
+Computer Science
+Technion
+Haifa 32000
+Israel
+dberry@cs.technion.ac.il
+.fi
+.in -6P
+.RT
diff --git a/fonts/utilities/mf2ps/doc/paper.pdf b/fonts/utilities/mf2ps/doc/paper.pdf
new file mode 100644
index 0000000000..343d5ecc7a
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/paper.pdf
Binary files differ
diff --git a/fonts/utilities/mf2ps/doc/paper.ps b/fonts/utilities/mf2ps/doc/paper.ps
new file mode 100644
index 0000000000..8803b81c31
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/paper.ps
@@ -0,0 +1,16427 @@
+%!PS-Adobe-1.0
+%%Creator: ah.sei.cmu.edu:dberry (Daniel Berry)
+%%Title: stdin (ditroff)
+%%CreationDate: Wed Oct 17 22:08:40 1990
+%%EndComments
+/PageLength 11 def
+% lib/psdit.pro -- prolog for psdit (ditroff) files
+% Copyright (c) 1984, 1985 Adobe Systems, Inc. All Rights Reserved.
+
+/PageLength 11 def
+% psfig additions
+/DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap
+currentlinejoin currentdash currentgray currentmiterlimit ] cvx def
+
+/startFig {
+ /SavedState save def
+ userdict maxlength dict begin
+ currentpoint transform
+
+ DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap
+ setlinewidth setmatrix
+
+ itransform moveto
+
+ /ury exch def
+ /urx exch def
+ /lly exch def
+ /llx exch def
+ /y exch 72 mul resolution div def
+ /x exch 72 mul resolution div def
+
+ currentpoint /cy exch def /cx exch def
+
+ /sx x urx llx sub div def
+ /sy y ury lly sub div def
+
+ sx sy scale
+
+ cx sx div llx sub
+ cy sy div ury sub translate
+
+ /DefFigCTM matrix currentmatrix def
+
+ /initmatrix {
+ DefFigCTM setmatrix
+ } def
+ /defaultmatrix {
+ DefFigCTM exch copy
+ } def
+
+ /initgraphics {
+ DocumentInitState setmiterlimit setgray setdash
+ setlinejoin setlinecap setlinewidth setmatrix
+ DefFigCTM setmatrix
+ } def
+
+ /showpage {
+ initgraphics
+ } def
+
+} def
+/clipFig {
+ currentpoint 6 2 roll
+ newpath 4 copy
+ 4 2 roll moveto
+ 6 -1 roll exch lineto
+ exch lineto
+ exch lineto
+ closepath clip
+ newpath
+ moveto
+} def
+/doclip { llx lly urx ury clipFig } def
+/endFig {
+ end SavedState restore
+} def
+/globalstart {
+ fontnum fontsize fontslant fontheight
+ mh my resolution slotno currentpoint
+ pagesave restore gsave
+} def
+/globalend {
+ grestore moveto
+ /slotno exch def /resolution exch def /my exch def
+ /mh exch def
+ /fontheight exch def
+ /fontslant exch def /fontsize exch def /fontnum exch def
+ F
+ /pagesave save def
+} def
+% end of psfig additions
+
+/$DITroff 140 dict def $DITroff begin
+/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
+/xi
+ {0 72 PageLength mul translate 72 resolution div dup neg scale 0 0 moveto
+ /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
+ F /firstpage true def /pagesave save def}def
+/PB{save /psv exch def currentpoint translate
+ resolution 72 div dup neg scale 0 0 moveto}def
+/PE{psv restore}def
+/arctoobig 90 def /arctoosmall .05 def
+/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
+/tan{dup sin exch cos div}def
+/point{.1 resolution add 72 div mul}def
+/dround {transform round exch round exch itransform}def
+/xT{/devname exch def}def
+/xr{/mh exch def /my exch def /resolution exch def}def
+/xp{}def
+/xs{docsave restore end}def
+/xt{showpage}def
+/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
+ {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
+/xH{/fontheight exch def}def
+/xS{/fontslant exch def}def
+/s{/fontsize exch def /fontheight fontsize def}def
+/f{/fontnum exch def}def
+/F {fontheight 0 le {/fontheight fontsize def}if
+ fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
+ fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
+ makefont setfont .04 fontsize point mul 0 dround pop setlinewidth
+ } def
+/X{exch currentpoint exch pop moveto show}def
+/N{3 1 roll moveto show}def
+/Y{exch currentpoint pop exch moveto show}def
+/S{show}def
+/MX{currentpoint exch pop moveto}def
+/MY{currentpoint pop exch moveto}def
+/MXY{moveto}def
+/cb{pop}def % action on unknown char -- nothing for now
+/n{}def /w{}def
+/p{pop firstpage not{showpage}if pagesave restore /pagesave save def
+ /firstpage false def}def
+/abspoint{currentpoint exch pop add exch currentpoint pop add exch}def
+/distance{dup mul exch dup mul add sqrt}def
+/dstroke{currentpoint stroke moveto}def
+/Dl{2 copy gsave rlineto stroke grestore rmoveto}def
+/arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop
+ currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
+ currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def
+/Dc{dup arcellipse dstroke}def
+/De{arcellipse dstroke}def
+/Da{/endv exch def /endh exch def /centerv exch def /centerh exch def
+ /cradius centerv centerv mul centerh centerh mul add sqrt def
+ /eradius endv endv mul endh endh mul add sqrt def
+ /endang endv endh atan def
+ /startang centerv neg centerh neg atan def
+ /sweep startang endang sub dup 0 lt{360 add}if def
+ sweep arctoobig gt
+ {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def
+ /midh midang cos midrad mul def /midv midang sin midrad mul def
+ midh neg midv neg endh endv centerh centerv midh midv Da
+ currentpoint moveto Da}
+ {sweep arctoosmall ge
+ {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def
+ centerv neg controldelt mul centerh controldelt mul
+ endv neg controldelt mul centerh add endh add
+ endh controldelt mul centerv add endv add
+ centerh endh add centerv endv add rcurveto dstroke}
+ {centerh endh add centerv endv add rlineto dstroke}ifelse}ifelse}def
+
+/Barray 200 array def % 200 values in a wiggle
+/D~{mark}def
+/D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop
+ /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and
+ {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def
+ Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put
+ Bcontrol Blen 2 sub 2 copy get 2 mul put
+ Bcontrol Blen 1 sub 2 copy get 2 mul put
+ /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub
+ {/i exch def
+ Bcontrol i get 3 div Bcontrol i 1 add get 3 div
+ Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div
+ Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div
+ /Xbi Xcont Bcontrol i 2 add get 2 div add def
+ /Ybi Ycont Bcontrol i 3 add get 2 div add def
+ /Xcont Xcont Bcontrol i 2 add get add def
+ /Ycont Ycont Bcontrol i 3 add get add def
+ Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto
+ }for dstroke}if}def
+end
+/ditstart{$DITroff begin
+ /nfonts 49 def
+ /fonts[nfonts{0}repeat]def
+ /fontnames[nfonts{()}repeat]def
+/docsave save def
+}def
+
+% character outcalls
+/oc
+ {/pswid exch def /cc exch def /name exch def
+ /ditwid pswid fontsize mul resolution mul 72000 div def
+ /ditsiz fontsize resolution mul 72 div def
+ ocprocs name known{ocprocs name get exec}{name cb}
+ ifelse}def
+/fractm [.65 0 0 .6 0 0] def
+/fraction
+ {/fden exch def /fnum exch def gsave /cf currentfont def
+ cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
+ fnum show rmoveto currentfont cf setfont(\244)show setfont fden show
+ grestore ditwid 0 rmoveto} def
+
+/ocb
+ {/s2 .5 dm def /s4 .25 dm def
+ 2 setlinejoin gsave currentpoint newpath dround translate 0 0 moveto}def
+/oce {grestore ditwid 0 rmoveto}def
+/occ {grestore}def
+/dm {ditsiz mul}def
+/4p {pop pop pop pop}def
+
+/ocprocs 25 dict def ocprocs begin
+(X0) {ocb oce}def %room for building special characters with X names
+(X1) {ocb oce}def %all these do is move the width of the char which is 1 em
+(X2) {ocb oce}def
+(X3) {ocb oce}def
+(X4) {ocb oce}def
+(X5) {ocb oce}def
+(X6) {ocb oce}def
+(X7) {ocb oce}def
+(X8) {ocb oce}def
+(X9) {ocb oce}def
+(XX) {ocb oce}def
+
+(MD) {ocb 0 -.25 dm moveto .4333 dm -1 dm lineto .8666 dm -.25 dm lineto
+ 0 -.25 dm lineto closepath stroke occ
+ ocb 0 -.75 dm moveto .8666 dm -.75 dm lineto .4333 dm 0 dm lineto
+ 0 -.75 dm lineto closepath stroke oce}def
+(OU) { ocb .5 dm -.35 dm moveto currentpoint newpath .35 dm 0 360 arc closepath
+ stroke occ
+ ocb .3 dm -.50 dm moveto .3 dm -.3 dm lineto
+ .5 dm -.3 dm .2 dm 180 360 arcn .7 dm -.50 dm lineto stroke oce}def
+
+(14) {(1)(4)fraction}def
+(12) {(1)(2)fraction}def
+(34) {(3)(4)fraction}def
+(18) {(1)(8)fraction}def
+(38) {(3)(8)fraction}def
+(58) {(5)(8)fraction}def
+(78) {(7)(8)fraction}def
+(13) {(1)(3)fraction}def
+(23) {(2)(3)fraction}def
+
+(ff) {gsave (f) show -.06 dm 0 rmoveto (f) show oce}def
+(Fl) {gsave (f) show -.06 dm 0 rmoveto (\257) show oce}def
+(Fi) {gsave (f) show -.06 dm 0 rmoveto (\256) show oce}def
+end
+
+% DIThacks fonts for some special chars
+50 dict dup begin
+/FontType 3 def
+/FontName /DIThacks def
+/FontMatrix [.001 0.0 0.0 .001 0.0 0.0] def
+/FontBBox [-220 -280 900 900] def% a lie but ...
+/Encoding 256 array def
+0 1 255{Encoding exch /.notdef put}for
+Encoding
+ dup 8#040/space put %space
+ dup 8#110/rc put %right ceil
+ dup 8#111/lt put %left top curl
+ dup 8#112/bv put %bold vert
+ dup 8#113/lk put %left mid curl
+ dup 8#114/lb put %left bot curl
+ dup 8#115/rt put %right top curl
+ dup 8#116/rk put %right mid curl
+ dup 8#117/rb put %right bot curl
+ dup 8#120/rf put %right floor
+ dup 8#121/lf put %left floor
+ dup 8#122/lc put %left ceil
+ dup 8#140/sq put %square
+ dup 8#141/bx put %box
+ dup 8#142/ci put %circle
+ dup 8#143/br put %box rule
+ dup 8#144/rn put %root extender
+ dup 8#145/vr put %vertical rule
+ dup 8#146/ob put %outline bullet
+ dup 8#147/bu put %bullet
+ dup 8#150/ru put %rule
+ dup 8#151/ul put %underline
+ pop
+/DITfd 100 dict def
+/BuildChar{0 begin
+ /cc exch def /fd exch def
+ /charname fd /Encoding get cc get def
+ /charwid fd /Metrics get charname get def
+ /charproc fd /CharProcs get charname get def
+ charwid 0 fd /FontBBox get aload pop setcachedevice
+ 40 setlinewidth
+ newpath 0 0 moveto gsave charproc grestore
+ end}def
+/BuildChar load 0 DITfd put
+%/UniqueID 5 def
+/CharProcs 50 dict def
+CharProcs begin
+/space{}def
+/.notdef{}def
+/ru{500 0 rls}def
+/rn{-55 725 moveto 500 0 rlineto 25 setlinewidth stroke}def
+/vr{125 800 moveto 0 -770 rls}def
+/bv{125 800 moveto 0 -1000 rls}def
+/br{0 770 moveto 0 -1040 rls}def
+/ul{0 -250 moveto 500 0 rls}def
+/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
+/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
+/sq{80 0 rmoveto currentpoint dround newpath moveto
+ 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
+/bx{80 0 rmoveto currentpoint dround newpath moveto
+ 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
+/ci{355 333 rmoveto currentpoint newpath 333 0 360 arc
+ 50 setlinewidth stroke}def
+
+/lt{125 -200 moveto 125 400 lineto 125 550 260 780 375 800 curveto stroke}def
+/lb{125 800 moveto 125 200 lineto 125 50 260 -180 375 -200 curveto stroke}def
+/rt{125 -200 moveto 125 400 lineto 125 550 -10 780 -125 800 curveto stroke}def
+/rb{125 800 moveto 125 200 lineto 125 50 -10 -180 -125 -200 curveto stroke}def
+/lk{125 800 moveto 125 700 lineto 125 550 125 320 -125 300 curveto
+ 125 -200 moveto 125 -100 lineto 125 50 125 280 -125 300 curveto stroke}def
+/rk{125 800 moveto 125 700 lineto 125 550 125 320 375 300 curveto
+ 125 -200 moveto 125 -100 lineto 125 50 125 280 375 300 curveto stroke}def
+/lf{125 800 moveto 0 -1000 rlineto s4 0 rls}def
+/rf{125 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
+/lc{125 -200 moveto 0 1000 rlineto s4 0 rls}def
+/rc{125 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
+end
+
+/Metrics 50 dict def Metrics begin
+/.notdef 0 def
+/space 500 def
+/ru 500 def
+/br 0 def
+/lt 250 def
+/lb 250 def
+/rt 250 def
+/rb 250 def
+/lk 250 def
+/rk 250 def
+/rc 250 def
+/lc 250 def
+/rf 250 def
+/lf 250 def
+/bv 250 def
+/ob 350 def
+/bu 350 def
+/ci 750 def
+/bx 750 def
+/sq 750 def
+/rn 500 def
+/ul 500 def
+/vr 0 def
+end
+
+DITfd begin
+/s2 500 def /s4 250 def /s3 333 def
+/a4p{arcto pop pop pop pop}def
+/2cx{2 copy exch}def
+/rls{rlineto stroke}def
+/currx{currentpoint pop}def
+/dround{transform round exch round exch itransform} def
+end
+end
+/DIThacks exch definefont pop
+%! MF-logo font
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/MF-logoFont 10 dict def
+/fudge 110 def
+MF-logoFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+/hyphen
+(
+newpath
+%new path
+200 350 moveto
+596 350 lineto
+596 396 lineto
+200 396 lineto
+200 350 lineto
+closepath
+%end path
+fill
+) def
+
+/M
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 600 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 266 576 lineto
+ 268 578 lineto
+ 274 580 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 244 580 lineto
+ 250 578 lineto
+ 254 576 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 236 596 lineto
+ 236 590 lineto
+ 238 590 lineto
+ 306 470 376 348 446 228 curveto
+ 444 230 lineto
+ 448 224 lineto
+ 452 220 lineto
+ 458 216 lineto
+ 462 216 lineto
+ 468 214 lineto
+ 474 216 lineto
+ 476 216 lineto
+ 482 220 lineto
+ 488 224 lineto
+ 490 230 lineto
+ 492 230 lineto
+ 560 350 630 472 700 592 curveto
+ 698 590 lineto
+ 700 596 lineto
+ 700 600 lineto
+ 696 586 lineto
+ 676 576 lineto
+ 682 576 lineto
+ 684 578 lineto
+ 690 580 lineto
+ 696 586 lineto
+ 676 576 lineto
+ 656 586 lineto
+ 660 580 lineto
+ 666 578 lineto
+ 670 576 lineto
+ 676 576 lineto
+ 656 586 lineto
+ 652 596 lineto
+ 652 590 lineto
+ 656 586 lineto
+ 652 596 lineto
+ 656 610 lineto
+ 652 604 lineto
+ 652 600 lineto
+ 650 598 lineto
+ 650 194 lineto
+ 652 194 lineto
+ 652 186 lineto
+ 656 180 lineto
+ 660 178 lineto
+ 666 174 lineto
+ 670 174 lineto
+ 676 172 lineto
+ 682 174 lineto
+ 684 174 lineto
+ 690 178 lineto
+ 696 180 lineto
+ 698 186 lineto
+ 700 190 lineto
+ 700 600 lineto
+ 698 604 lineto
+ 696 610 lineto
+ 690 614 lineto
+ 684 618 lineto
+ 682 618 lineto
+ 676 620 lineto
+ 670 618 lineto
+ 666 618 lineto
+ 660 614 lineto
+ 656 610 lineto
+ 652 604 lineto
+ 582 484 512 362 444 242 curveto
+ 444 234 lineto
+ 448 248 lineto
+ 468 258 lineto
+ 462 258 lineto
+ 458 256 lineto
+ 452 254 lineto
+ 448 248 lineto
+ 468 258 lineto
+ 488 248 lineto
+ 482 254 lineto
+ 476 256 lineto
+ 474 258 lineto
+ 468 258 lineto
+ 488 248 lineto
+ 492 238 lineto
+ 490 244 lineto
+ 420 364 350 486 282 606 curveto
+ 282 604 lineto
+ 280 610 lineto
+ 274 614 lineto
+ 268 618 lineto
+ 266 618 lineto
+ 260 620 lineto
+ 254 618 lineto
+ 250 618 lineto
+ 244 614 lineto
+ 240 610 lineto
+ 236 604 lineto
+ 236 600 lineto
+ 234 598 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+fill
+) def
+
+/E
+(
+newpath
+%new path
+ 556 224 moveto
+ 554 222 lineto
+ 258 222 lineto
+ 260 224 lineto
+ 254 222 lineto
+ 250 222 lineto
+ 244 218 lineto
+ 240 214 lineto
+ 260 224 lineto
+ 280 214 lineto
+ 274 218 lineto
+ 268 222 lineto
+ 266 222 lineto
+ 260 224 lineto
+ 280 214 lineto
+ 284 204 lineto
+ 282 208 lineto
+ 280 214 lineto
+ 284 204 lineto
+ 280 190 lineto
+ 282 194 lineto
+ 284 200 lineto
+ 284 592 lineto
+ 280 578 lineto
+ 260 568 lineto
+ 562 568 lineto
+ 564 570 lineto
+ 570 572 lineto
+ 576 578 lineto
+ 578 582 lineto
+ 580 588 lineto
+ 580 592 lineto
+ 578 596 lineto
+ 576 602 lineto
+ 570 606 lineto
+ 564 610 lineto
+ 562 610 lineto
+ 556 612 lineto
+ 554 610 lineto
+ 258 610 lineto
+ 260 612 lineto
+ 254 610 lineto
+ 250 610 lineto
+ 244 606 lineto
+ 240 602 lineto
+ 236 596 lineto
+ 236 592 lineto
+ 234 590 lineto
+ 234 202 lineto
+ 236 204 lineto
+ 236 194 lineto
+ 240 190 lineto
+ 244 184 lineto
+ 250 182 lineto
+ 254 180 lineto
+ 562 180 lineto
+ 564 182 lineto
+ 570 184 lineto
+ 576 190 lineto
+ 578 194 lineto
+ 580 200 lineto
+ 580 204 lineto
+ 578 208 lineto
+ 576 214 lineto
+ 570 218 lineto
+ 564 222 lineto
+ 562 222 lineto
+ 556 224 lineto
+closepath
+%end path
+%new path
+ 260 352 moveto
+ 518 352 lineto
+ 520 354 lineto
+ 526 356 lineto
+ 532 362 lineto
+ 534 366 lineto
+ 536 372 lineto
+ 536 376 lineto
+ 534 380 lineto
+ 532 386 lineto
+ 526 390 lineto
+ 520 394 lineto
+ 518 394 lineto
+ 512 396 lineto
+ 510 394 lineto
+ 258 394 lineto
+ 260 396 lineto
+ 254 394 lineto
+ 250 394 lineto
+ 244 390 lineto
+ 240 386 lineto
+ 236 380 lineto
+ 236 366 lineto
+ 240 362 lineto
+ 244 356 lineto
+ 250 354 lineto
+ 254 352 lineto
+ 260 352 lineto
+closepath
+%end path
+fill
+) def
+
+/T
+(
+newpath
+%new path
+ 202 568 moveto
+ 578 568 lineto
+ 580 570 lineto
+ 586 572 lineto
+ 592 578 lineto
+ 594 582 lineto
+ 596 588 lineto
+ 596 592 lineto
+ 594 596 lineto
+ 592 602 lineto
+ 586 606 lineto
+ 580 610 lineto
+ 578 610 lineto
+ 572 612 lineto
+ 570 610 lineto
+ 202 610 lineto
+ 202 612 lineto
+ 196 610 lineto
+ 194 610 lineto
+ 188 606 lineto
+ 182 602 lineto
+ 180 596 lineto
+ 180 582 lineto
+ 182 578 lineto
+ 188 572 lineto
+ 194 570 lineto
+ 196 568 lineto
+ 202 568 lineto
+closepath
+%end path
+%new path
+ 368 602 moveto
+ 364 596 lineto
+ 364 592 lineto
+ 362 590 lineto
+ 362 194 lineto
+ 364 194 lineto
+ 364 186 lineto
+ 368 180 lineto
+ 372 178 lineto
+ 378 174 lineto
+ 382 174 lineto
+ 388 172 lineto
+ 394 174 lineto
+ 396 174 lineto
+ 402 178 lineto
+ 408 180 lineto
+ 410 186 lineto
+ 412 190 lineto
+ 412 592 lineto
+ 410 596 lineto
+ 408 602 lineto
+ 402 606 lineto
+ 396 610 lineto
+ 394 610 lineto
+ 388 612 lineto
+ 382 610 lineto
+ 378 610 lineto
+ 372 606 lineto
+ 368 602 lineto
+closepath
+%end path
+fill
+) def
+
+/A
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 376 lineto
+ 280 362 lineto
+ 260 352 lineto
+ 586 352 lineto
+ 588 354 lineto
+ 594 356 lineto
+ 600 362 lineto
+ 580 352 lineto
+ 560 362 lineto
+ 564 356 lineto
+ 570 354 lineto
+ 574 352 lineto
+ 580 352 lineto
+ 560 362 lineto
+ 556 372 lineto
+ 556 366 lineto
+ 560 362 lineto
+ 556 372 lineto
+ 560 386 lineto
+ 556 380 lineto
+ 556 376 lineto
+ 554 374 lineto
+ 554 194 lineto
+ 556 194 lineto
+ 556 186 lineto
+ 560 180 lineto
+ 564 178 lineto
+ 570 174 lineto
+ 574 174 lineto
+ 580 172 lineto
+ 586 174 lineto
+ 588 174 lineto
+ 594 178 lineto
+ 600 180 lineto
+ 602 186 lineto
+ 604 190 lineto
+ 604 376 lineto
+ 602 380 lineto
+ 600 386 lineto
+ 594 390 lineto
+ 588 394 lineto
+ 586 394 lineto
+ 580 396 lineto
+ 578 394 lineto
+ 258 394 lineto
+ 260 396 lineto
+ 254 394 lineto
+ 250 394 lineto
+ 244 390 lineto
+ 240 386 lineto
+ 236 380 lineto
+ 236 376 lineto
+ 234 374 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+%new path
+ 280 362 moveto
+ 282 366 lineto
+ 284 372 lineto
+ 284 410 284 452 292 490 curveto
+ 290 488 lineto
+ 290 484 lineto
+ 294 504 300 522 310 538 curveto
+ 306 532 lineto
+ 308 534 lineto
+ 308 536 310 538 312 542 curveto
+ 314 546 318 548 322 552 curveto
+ 320 552 lineto
+ 324 556 lineto
+ 324 566 lineto
+ 320 552 lineto
+ 300 542 lineto
+ 306 542 lineto
+ 310 544 lineto
+ 316 546 lineto
+ 316 548 lineto
+ 324 554 332 560 340 564 curveto
+ 334 560 lineto
+ 334 562 lineto
+ 340 564 346 566 350 568 curveto
+ 346 566 lineto
+ 348 568 lineto
+ 356 570 364 572 374 574 curveto
+ 372 572 lineto
+ 368 572 lineto
+ 384 576 402 576 420 576 curveto
+ 426 576 lineto
+ 428 578 lineto
+ 434 580 lineto
+ 440 586 lineto
+ 420 576 lineto
+ 400 586 lineto
+ 404 580 lineto
+ 410 578 lineto
+ 414 576 lineto
+ 420 576 lineto
+ 420 574 lineto
+ 438 574 456 574 472 570 curveto
+ 472 572 lineto
+ 466 572 lineto
+ 476 570 484 568 492 566 curveto
+ 488 568 lineto
+ 490 566 lineto
+ 494 564 500 562 506 560 curveto
+ 504 560 lineto
+ 498 564 lineto
+ 500 562 lineto
+ 508 558 516 552 524 546 curveto
+ 522 546 lineto
+ 528 544 lineto
+ 532 542 lineto
+ 538 542 lineto
+ 518 552 lineto
+ 514 562 lineto
+ 514 556 lineto
+ 518 552 lineto
+ 518 550 lineto
+ 522 546 526 544 528 540 curveto
+ 530 536 532 534 532 532 curveto
+ 528 538 lineto
+ 530 536 lineto
+ 540 520 546 502 550 482 curveto
+ 548 484 lineto
+ 548 488 lineto
+ 556 450 556 408 556 370 curveto
+ 556 366 lineto
+ 560 362 lineto
+ 564 356 lineto
+ 570 354 lineto
+ 574 352 lineto
+ 586 352 lineto
+ 588 354 lineto
+ 594 356 lineto
+ 600 362 lineto
+ 602 366 lineto
+ 604 372 lineto
+ 604 376 lineto
+ 602 376 lineto
+ 602 414 602 456 594 494 curveto
+ 596 492 lineto
+ 594 498 lineto
+ 590 518 584 536 574 552 curveto
+ 572 556 lineto
+ 570 558 lineto
+ 570 560 568 562 566 566 curveto
+ 564 570 560 572 556 576 curveto
+ 558 576 lineto
+ 552 580 lineto
+ 552 582 lineto
+ 544 588 536 594 528 598 curveto
+ 522 600 lineto
+ 522 602 lineto
+ 516 604 510 606 506 608 curveto
+ 504 608 lineto
+ 502 610 lineto
+ 494 612 486 614 476 616 curveto
+ 478 614 lineto
+ 472 616 lineto
+ 470 616 lineto
+ 454 620 436 620 418 620 curveto
+ 420 620 lineto
+ 418 618 lineto
+ 400 618 382 618 366 614 curveto
+ 366 616 lineto
+ 360 614 lineto
+ 350 612 342 610 334 608 curveto
+ 332 608 lineto
+ 330 606 lineto
+ 326 604 320 602 314 600 curveto
+ 316 600 lineto
+ 310 598 lineto
+ 308 596 lineto
+ 300 592 292 586 284 580 curveto
+ 286 580 lineto
+ 280 576 lineto
+ 280 574 lineto
+ 276 570 272 568 270 564 curveto
+ 268 560 266 558 266 556 curveto
+ 264 552 lineto
+ 262 550 lineto
+ 252 534 246 516 242 496 curveto
+ 244 498 lineto
+ 242 492 lineto
+ 234 454 234 412 234 374 curveto
+ 236 376 lineto
+ 236 366 lineto
+ 240 362 lineto
+ 244 356 lineto
+ 250 354 lineto
+ 254 352 lineto
+ 266 352 lineto
+ 268 354 lineto
+ 274 356 lineto
+ 280 362 lineto
+closepath
+%end path
+fill
+) def
+
+/F
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 592 lineto
+ 280 578 lineto
+ 260 568 lineto
+ 562 568 lineto
+ 564 570 lineto
+ 570 572 lineto
+ 576 578 lineto
+ 578 582 lineto
+ 580 588 lineto
+ 580 592 lineto
+ 578 596 lineto
+ 576 602 lineto
+ 570 606 lineto
+ 564 610 lineto
+ 562 610 lineto
+ 556 612 lineto
+ 554 610 lineto
+ 258 610 lineto
+ 260 612 lineto
+ 254 610 lineto
+ 250 610 lineto
+ 244 606 lineto
+ 240 602 lineto
+ 236 596 lineto
+ 236 592 lineto
+ 234 590 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+%new path
+ 260 352 moveto
+ 518 352 lineto
+ 520 354 lineto
+ 526 356 lineto
+ 532 362 lineto
+ 534 366 lineto
+ 536 372 lineto
+ 536 376 lineto
+ 534 380 lineto
+ 532 386 lineto
+ 526 390 lineto
+ 520 394 lineto
+ 518 394 lineto
+ 512 396 lineto
+ 510 394 lineto
+ 258 394 lineto
+ 260 396 lineto
+ 254 394 lineto
+ 250 394 lineto
+ 244 390 lineto
+ 240 386 lineto
+ 236 380 lineto
+ 236 366 lineto
+ 240 362 lineto
+ 244 356 lineto
+ 250 354 lineto
+ 254 352 lineto
+ 260 352 lineto
+closepath
+%end path
+fill
+) def
+
+/O
+(
+newpath
+%new path
+ 248 362 moveto
+ 250 366 lineto
+ 252 372 lineto
+ 252 408 252 446 258 480 curveto
+ 256 474 lineto
+ 258 476 lineto
+ 262 494 268 514 278 530 curveto
+ 276 528 lineto
+ 274 524 lineto
+ 278 530 282 536 286 542 curveto
+ 288 544 290 546 292 546 curveto
+ 290 546 lineto
+ 294 550 lineto
+ 294 560 lineto
+ 290 546 lineto
+ 270 536 lineto
+ 276 536 lineto
+ 280 538 lineto
+ 286 540 lineto
+ 286 542 lineto
+ 296 550 306 558 316 562 curveto
+ 314 562 lineto
+ 308 558 lineto
+ 310 560 lineto
+ 316 562 322 564 328 566 curveto
+ 326 566 lineto
+ 324 564 lineto
+ 324 566 lineto
+ 334 568 344 570 352 572 curveto
+ 346 570 lineto
+ 346 572 lineto
+ 370 576 396 576 420 576 curveto
+ 426 576 lineto
+ 428 578 lineto
+ 434 580 lineto
+ 440 586 lineto
+ 420 576 lineto
+ 400 586 lineto
+ 404 580 lineto
+ 410 578 lineto
+ 414 576 lineto
+ 420 576 lineto
+ 420 574 lineto
+ 444 574 470 574 494 570 curveto
+ 492 570 lineto
+ 486 572 lineto
+ 488 570 lineto
+ 496 568 506 566 516 564 curveto
+ 514 564 lineto
+ 512 566 lineto
+ 512 564 lineto
+ 518 562 524 560 530 558 curveto
+ 524 562 lineto
+ 524 560 lineto
+ 534 556 544 548 554 540 curveto
+ 552 540 lineto
+ 558 538 lineto
+ 562 536 lineto
+ 568 536 lineto
+ 548 546 lineto
+ 544 556 lineto
+ 544 550 lineto
+ 548 546 lineto
+ 548 544 lineto
+ 550 544 552 542 554 540 curveto
+ 558 534 562 528 566 522 curveto
+ 564 524 lineto
+ 562 528 lineto
+ 572 512 578 492 582 474 curveto
+ 580 480 lineto
+ 582 478 lineto
+ 588 444 588 406 588 370 curveto
+ 588 366 lineto
+ 592 362 lineto
+ 596 356 lineto
+ 602 354 lineto
+ 606 352 lineto
+ 618 352 lineto
+ 620 354 lineto
+ 626 356 lineto
+ 632 362 lineto
+ 634 366 lineto
+ 636 372 lineto
+ 636 376 lineto
+ 634 376 lineto
+ 634 412 634 450 628 484 curveto
+ 628 488 lineto
+ 626 490 lineto
+ 622 508 616 528 606 544 curveto
+ 608 542 lineto
+ 604 548 lineto
+ 600 554 596 560 592 566 curveto
+ 590 568 588 570 586 570 curveto
+ 588 570 lineto
+ 582 574 lineto
+ 582 576 lineto
+ 572 584 562 592 552 596 curveto
+ 554 596 lineto
+ 548 598 lineto
+ 546 600 lineto
+ 540 602 534 604 528 606 curveto
+ 526 606 lineto
+ 526 608 lineto
+ 516 610 506 612 498 614 curveto
+ 492 614 lineto
+ 492 616 lineto
+ 468 620 442 620 418 620 curveto
+ 420 620 lineto
+ 418 618 lineto
+ 394 618 368 618 344 614 curveto
+ 340 614 lineto
+ 338 612 lineto
+ 330 610 320 608 310 606 curveto
+ 308 606 lineto
+ 308 604 lineto
+ 302 602 296 600 290 598 curveto
+ 284 596 lineto
+ 284 594 lineto
+ 274 590 264 582 254 574 curveto
+ 256 574 lineto
+ 250 570 lineto
+ 250 568 lineto
+ 248 568 246 566 244 564 curveto
+ 240 558 236 552 232 546 curveto
+ 234 548 lineto
+ 230 542 lineto
+ 220 526 214 506 210 488 curveto
+ 210 484 lineto
+ 208 482 lineto
+ 202 448 202 410 202 374 curveto
+ 204 376 lineto
+ 204 366 lineto
+ 208 362 lineto
+ 212 356 lineto
+ 218 354 lineto
+ 222 352 lineto
+ 234 352 lineto
+ 236 354 lineto
+ 242 356 lineto
+ 248 362 lineto
+closepath
+%end path
+%new path
+ 204 372 moveto
+ 204 370 lineto
+ 204 344 204 316 210 292 curveto
+ 208 292 lineto
+ 210 288 lineto
+ 210 286 lineto
+ 214 272 218 256 226 244 curveto
+ 228 240 lineto
+ 230 238 lineto
+ 234 232 238 224 244 218 curveto
+ 244 220 lineto
+ 248 214 lineto
+ 250 214 lineto
+ 250 212 250 212 252 212 curveto
+ 260 204 268 198 278 194 curveto
+ 276 194 lineto
+ 282 192 lineto
+ 284 190 lineto
+ 290 188 296 186 302 184 curveto
+ 304 184 lineto
+ 304 182 lineto
+ 314 180 322 180 332 178 curveto
+ 338 178 lineto
+ 338 176 lineto
+ 364 172 394 172 420 172 curveto
+ 420 174 lineto
+ 446 174 476 174 502 178 curveto
+ 506 178 lineto
+ 508 180 lineto
+ 518 180 526 182 536 184 curveto
+ 538 184 lineto
+ 538 186 lineto
+ 544 188 550 190 556 192 curveto
+ 562 194 lineto
+ 562 196 lineto
+ 572 200 580 206 588 214 curveto
+ 590 214 590 214 590 216 curveto
+ 590 214 lineto
+ 594 220 lineto
+ 596 220 lineto
+ 602 226 606 234 610 240 curveto
+ 612 244 lineto
+ 614 246 lineto
+ 622 258 626 274 630 288 curveto
+ 628 288 lineto
+ 630 292 lineto
+ 630 294 lineto
+ 636 318 636 346 636 372 curveto
+ 636 376 lineto
+ 634 380 lineto
+ 632 386 lineto
+ 626 390 lineto
+ 620 394 lineto
+ 618 394 lineto
+ 612 396 lineto
+ 606 394 lineto
+ 602 394 lineto
+ 596 390 lineto
+ 592 386 lineto
+ 588 380 lineto
+ 588 376 lineto
+ 586 374 lineto
+ 586 348 586 320 580 296 curveto
+ 582 296 lineto
+ 582 300 lineto
+ 578 286 574 270 566 258 curveto
+ 570 264 lineto
+ 568 262 lineto
+ 564 256 560 248 554 242 curveto
+ 554 244 lineto
+ 552 238 lineto
+ 550 234 lineto
+ 550 230 lineto
+ 554 244 lineto
+ 574 254 lineto
+ 568 252 lineto
+ 566 252 lineto
+ 560 248 lineto
+ 558 248 lineto
+ 558 246 558 246 556 246 curveto
+ 548 238 540 232 530 228 curveto
+ 532 228 lineto
+ 538 232 lineto
+ 536 230 lineto
+ 530 228 524 226 518 224 curveto
+ 520 224 lineto
+ 522 226 lineto
+ 522 224 lineto
+ 512 222 504 220 494 218 curveto
+ 500 220 lineto
+ 500 218 lineto
+ 474 214 444 214 418 214 curveto
+ 420 216 lineto
+ 414 214 lineto
+ 410 214 lineto
+ 404 210 lineto
+ 400 206 lineto
+ 420 216 lineto
+ 440 206 lineto
+ 434 210 lineto
+ 428 214 lineto
+ 426 214 lineto
+ 420 216 lineto
+ 418 216 lineto
+ 392 216 362 216 336 220 curveto
+ 338 220 lineto
+ 344 218 lineto
+ 342 220 lineto
+ 332 222 324 224 314 226 curveto
+ 316 226 lineto
+ 318 224 lineto
+ 318 226 lineto
+ 312 228 306 230 300 232 curveto
+ 306 228 lineto
+ 306 230 lineto
+ 296 234 288 240 280 248 curveto
+ 278 248 278 248 278 250 curveto
+ 278 248 lineto
+ 272 252 lineto
+ 270 252 lineto
+ 264 254 lineto
+ 284 244 lineto
+ 288 234 lineto
+ 286 238 lineto
+ 284 244 lineto
+ 282 244 lineto
+ 276 250 272 258 268 264 curveto
+ 272 258 lineto
+ 270 260 lineto
+ 262 272 258 288 254 302 curveto
+ 256 302 lineto
+ 256 298 lineto
+ 250 322 250 350 250 376 curveto
+ 252 376 lineto
+ 250 380 lineto
+ 248 386 lineto
+ 242 390 lineto
+ 236 394 lineto
+ 234 394 lineto
+ 228 396 lineto
+ 222 394 lineto
+ 218 394 lineto
+ 212 390 lineto
+ 208 386 lineto
+ 204 380 lineto
+ 204 372 lineto
+closepath
+%end path
+fill
+) def
+
+/N
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 600 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 266 576 lineto
+ 268 578 lineto
+ 274 580 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 244 580 lineto
+ 250 578 lineto
+ 254 576 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 236 596 lineto
+ 236 590 lineto
+ 240 586 lineto
+ 240 584 lineto
+ 346 464 454 344 560 224 curveto
+ 564 220 lineto
+ 570 216 lineto
+ 574 216 lineto
+ 580 214 lineto
+ 586 216 lineto
+ 588 216 lineto
+ 594 220 lineto
+ 600 224 lineto
+ 602 230 lineto
+ 604 234 lineto
+ 604 238 lineto
+ 602 244 lineto
+ 600 248 lineto
+ 598 250 lineto
+ 492 370 384 490 278 610 curveto
+ 280 610 lineto
+ 274 614 lineto
+ 268 618 lineto
+ 266 618 lineto
+ 260 620 lineto
+ 254 618 lineto
+ 250 618 lineto
+ 244 614 lineto
+ 240 610 lineto
+ 236 604 lineto
+ 236 600 lineto
+ 234 598 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+%new path
+ 600 180 moveto
+ 602 186 lineto
+ 604 190 lineto
+ 604 600 lineto
+ 602 604 lineto
+ 600 610 lineto
+ 594 614 lineto
+ 588 618 lineto
+ 586 618 lineto
+ 580 620 lineto
+ 574 618 lineto
+ 570 618 lineto
+ 564 614 lineto
+ 560 610 lineto
+ 556 604 lineto
+ 556 600 lineto
+ 554 598 lineto
+ 554 194 lineto
+ 556 194 lineto
+ 556 186 lineto
+ 560 180 lineto
+ 564 178 lineto
+ 570 174 lineto
+ 574 174 lineto
+ 580 172 lineto
+ 586 174 lineto
+ 588 174 lineto
+ 594 178 lineto
+ 600 180 lineto
+closepath
+%end path
+fill
+) def
+
+end % of CharDefs dictionary
+
+Encoding 77 /M put
+Encoding 69 /E put
+Encoding 84 /T put
+Encoding 65 /A put
+Encoding 70 /F put
+Encoding 79 /O put
+Encoding 78 /N put
+Encoding 45 /hyphen put
+
+Metrics
+ begin
+/.notdef 0 def
+/M 520 fudge add def
+/E 400 fudge add def
+/T 416 fudge add def
+/A 424 fudge add def
+/F 346 fudge add def
+/O 434 fudge add def
+/N 424 fudge add def
+/hyphen 416 fudge add def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ % bounding box : [180 180 700 700]
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 80 add 1000
+ setcachedevice
+ -182 fudge add -230 translate
+ 1.1 1.3 scale
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [182 fudge sub 180 700 620] def
+
+ end
+
+ /MF-logo MF-logoFont definefont pop
+
+%/MF-logo findfont 11 scalefont setfont
+%100 210 moveto (METAFONT) show
+%1 2 scale (METAFONT) show
+%1 2 scale (METAFONT) show
+%showpage
+ditstart
+(psc)xT
+576 1 1 xr
+1(Times-Roman)xf 1 f F
+2(Times-Italic)xf 2 f F
+3(Times-Bold)xf 3 f F
+4(Times-BoldItalic)xf 4 f F
+5(Courier)xf 5 f F
+6(Courier-Oblique)xf 6 f F
+7(Courier-Bold)xf 7 f F
+8(Courier-BoldOblique)xf 8 f F
+9(Helvetica)xf 9 f F
+10(Helvetica-Oblique)xf 10 f F
+11(Helvetica-Bold)xf 11 f F
+12(Helvetica-BoldOblique)xf 12 f F
+13(Hebrew-Frank-Ruehl)xf 13 f F
+14(Hebrew-Gam)xf 14 f F
+15(Hebrew-Gam-Bold)xf 15 f F
+16(Hebrew-Yuval)xf 16 f F
+17(Hebrew-David)xf 17 f F
+18(Hebrew-Tel-Aviv)xf 18 f F
+19(Hebrew-OldJaffa)xf 19 f F
+20(AvantGarde-Book)xf 20 f F
+21(AvantGarde-BookOblique)xf 21 f F
+22(AvantGarde-Demi)xf 22 f F
+23(AvantGarde-DemiOblique)xf 23 f F
+24(NewCenturySchlbk-Roman)xf 24 f F
+25(NewCenturySchlbk-Italic)xf 25 f F
+26(NewCenturySchlbk-Bold)xf 26 f F
+27(NewCenturySchlbk-BoldItalic)xf 27 f F
+28(Palatino-Roman)xf 28 f F
+29(Palatino-Italic)xf 29 f F
+30(Palatino-Bold)xf 30 f F
+31(Palatino-BoldItalic)xf 31 f F
+32(ZapfChancery-MediumItalic)xf 32 f F
+33(ZapfDingbats)xf 33 f F
+34(Bookman-Light)xf 34 f F
+35(Bookman-LightItalic)xf 35 f F
+36(Bookman-Demi)xf 36 f F
+37(Bookman-DemiItalic)xf 37 f F
+38(Helvetica-Narrow)xf 38 f F
+39(Helvetica-Narrow-Oblique)xf 39 f F
+40(Helvetica-Narrow-Bold)xf 40 f F
+41(Helvetica-Narrow-BoldOblique)xf 41 f F
+42(Nescii-Initial-Stroke)xf 42 f F
+43(Nescii-Middle-Stroke)xf 43 f F
+44(Nescii-Final-Stroke)xf 44 f F
+45(Nescii-Standalone-Stroke)xf 45 f F
+46(Arabic-Naskh)xf 46 f F
+47(Symbol)xf 47 f F
+48(DIThacks)xf 48 f F
+xi
+%%EndProlog
+
+%%Page: 1 2
+1 p
+10 s 10 xH 0 xS 1 f F
+48 f F
+576 576(h)N
+611(h)X
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+(h)S
+12 s 12 xH 1 f F
+576 672(Environment)N
+1103(for)X
+1239(Translating)X
+0(MF-logo)xf 0 f F
+576 768(METAFONT)N
+1 f F
+1007(to)X
+1106(P)X
+10 s 10 xH F
+1159(OST)X
+12 s 12 xH F
+1310(S)X
+10 s 10 xH F
+1363(CRIPT)X
+735 888(Shimon)N
+1003(Yanai)X
+1215(and)X
+1351(Daniel)X
+1585(M.)X
+1696(Berry)X
+3 f F
+576 1048(Abstract)N
+1 f F
+576 1192(This)N
+745(paper)X
+951(describes)X
+1277(a)X
+1340(program,)X
+9 f F
+1661(mf2ps)X
+1 f F
+1878(,)X
+1925(that)X
+2073(translates)X
+576 1288(a)N
+0 f F
+654(METAFONT)X
+1 f F
+1037(font)X
+1207(de\256nition)X
+1554(into)X
+1719(a)X
+1796(de\256nition)X
+2143(for)X
+2278(the)X
+576 1384(same)N
+769(font)X
+926(in)X
+1017(the)X
+1144(P)X
+8 s 8 xH F
+1188(OST)X
+10 s 10 xH F
+1309(S)X
+8 s 8 xH F
+1353(CRIPT)X
+10 s 10 xH F
+1564(language.)X
+9 f F
+1905(mf2ps)X
+1 f F
+2151(is)X
+2233(con-)X
+576 1480(structed)N
+859(out)X
+990(of)X
+1086(the)X
+1213(part)X
+1366(of)X
+1461(the)X
+0 f F
+1587(METAFONT)X
+1 f F
+1956(program)X
+2256(that)X
+576 1576(extracts)N
+846(the)X
+964(envelopes)X
+1305(of)X
+1392(the)X
+1510(letters;)X
+1749(these)X
+1935(envelopes)X
+2277(are)X
+576 1672(converted)N
+913(into)X
+1057(P)X
+8 s 8 xH F
+1101(OST)X
+10 s 10 xH F
+1222(S)X
+8 s 8 xH F
+1266(CRIPT)X
+10 s 10 xH F
+1468(outlines.)X
+3 f F
+576 1864(1)N
+676(Introduction)X
+1 f F
+576 2008(This)N
+739(paper)X
+939(describes)X
+1259(a)X
+1316(program,)X
+9 f F
+1632(mf2ps)X
+1 f F
+1849(,)X
+1891(that)X
+2033(takes)X
+2220(from)X
+576 2104(a)N
+0 f F
+641(METAFONT)X
+1 f F
+1011([10,)X
+1151(11])X
+1287(program)X
+1588(for)X
+1711(a)X
+1776(font)X
+1934(all)X
+2043(the)X
+2170(neces-)X
+576 2200(sary)N
+735(information)X
+1138(in)X
+1225(order)X
+1421(to)X
+1509(create)X
+1728(an)X
+1830(equivalent)X
+2190(P)X
+8 s 8 xH F
+2234(OST-)X
+10 s 10 xH F
+576 2296(S)N
+8 s 8 xH F
+620(CRIPT)X
+10 s 10 xH F
+834([1])X
+959(font)X
+1119(de\256nition.)X
+1476(The)X
+1632(program)X
+1935(makes)X
+2171(use)X
+2309(of)X
+576 2392(the)N
+704(front)X
+890(end)X
+1036(of)X
+1133(the)X
+0 f F
+1261(METAFONT)X
+1 f F
+1632(program)X
+1935(to)X
+2028(extract)X
+2278(the)X
+576 2488(envelopes)N
+920(of)X
+1010(the)X
+1131(letters)X
+1349(to)X
+1433(produce)X
+1714(the)X
+1834(P)X
+8 s 8 xH F
+1878(OST)X
+10 s 10 xH F
+1999(S)X
+8 s 8 xH F
+2043(CRIPT)X
+10 s 10 xH F
+2247(out-)X
+576 2584(lines.)N
+791(What)X
+1009(makes)X
+1258(this)X
+1417(process)X
+1703(natural)X
+1971(is)X
+2069(that)X
+2234(both)X
+0 f F
+576 2680(METAFONT)N
+1 f F
+944(and)X
+1087(P)X
+8 s 8 xH F
+1131(OST)X
+10 s 10 xH F
+1252(S)X
+8 s 8 xH F
+1296(CRIPT)X
+10 s 10 xH F
+1505(make)X
+1706(liberal)X
+1938(use)X
+2072(of)X
+2165(Be)X
+2223(\302zier)X
+576 2776(curves)N
+806(to)X
+888(describe)X
+1176(non-circular)X
+1589(curves.)X
+735 2872(By)N
+852(producing)X
+1201(this)X
+1340(translator,)X
+1687(it)X
+1755(is)X
+1833(hoped)X
+2054(to)X
+2141(be)X
+2242(able)X
+576 2968(to)N
+673(produce)X
+967(from)X
+0 f F
+1158(METAFONT)X
+1 f F
+1534(fonts)X
+1729(P)X
+8 s 8 xH F
+1773(OST)X
+10 s 10 xH F
+1894(S)X
+8 s 8 xH F
+1938(CRIPT)X
+10 s 10 xH F
+2154(outline)X
+576 3064(fonts)N
+757(which)X
+974(are)X
+1095(more)X
+1282(compact)X
+1576(than)X
+1736(the)X
+1856(bitmapped)X
+2216(fonts)X
+576 3160(produced)N
+899(by)X
+1003(the)X
+0 f F
+1125(METAFONT)X
+1 f F
+1490(program.)X
+1805(Certainly)X
+2126(the)X
+2247(out-)X
+576 3256(line)N
+717(fonts)X
+898(are)X
+1018(more)X
+1204(easily)X
+1412(scaled)X
+1634(to)X
+1718(other)X
+1905(magni\256cations)X
+576 3352(and)N
+721(possibly)X
+1016(even)X
+1196(other)X
+1389(design)X
+1626(sizes)X
+1810(than)X
+1976(are)X
+2103(bitmaps.)X
+576 3448(Moreover,)N
+950(doing)X
+1169(so)X
+1277(makes)X
+1519(fonts)X
+1717(heretofore)X
+2086(available)X
+576 3544(only)N
+741(on)X
+843(T)X
+884 3560(E)N
+925 3544(X)N
+1005([9])X
+1121(and)X
+1259(other)X
+1446(DVI-based)X
+1821(formatters,)X
+2193(avail-)X
+576 3640(able)N
+751(on)X
+9 f F
+874(ditroff)X
+1 f F
+1114([8])X
+1249(and)X
+1407(other)X
+1614(formatters)X
+1986(which)X
+2224(have)X
+576 3736(evolved,)N
+891(or)X
+998(have)X
+1190(been)X
+1382(designed,)X
+1727(for)X
+1861(use)X
+2008(with)X
+2190(P)X
+8 s 8 xH F
+2234(OST-)X
+10 s 10 xH F
+576 3832(S)N
+8 s 8 xH F
+620(CRIPT)X
+10 s 10 xH F
+825(printers.)X
+1114(This)X
+1280(paper,)X
+1503(which)X
+1723(is)X
+1800(typeset)X
+2051(by)X
+9 f F
+2157(ditroff)X
+1 f F
+2356(,)X
+576 3928(uses)N
+741(a)X
+804(P)X
+8 s 8 xH F
+848(OST)X
+10 s 10 xH F
+969(S)X
+8 s 8 xH F
+1013(CRIPT)X
+10 s 10 xH F
+1222(version)X
+1485(of)X
+1579(the)X
+1704(logo)X
+1873(font)X
+2029(in)X
+2118(order)X
+2314(to)X
+576 4024(print)N
+752(the)X
+875(word)X
+1065(\252)X
+0 f F
+1101(METAFONT)X
+1 f F
+1455(\272)X
+1517(in)X
+1605(the)X
+1729(same)X
+1920(appearance)X
+2309(as)X
+576 4120(in)N
+685(T)X
+726 4136(E)N
+767 4120(X-generated)N
+1212(documents.)X
+1646(Moreover,)X
+2030(these)X
+2242(new)X
+576 4216(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+989(outline)X
+1233(fonts)X
+1415(can)X
+1549(be)X
+1647(used)X
+1816(in)X
+1900(T)X
+1941 4232(E)N
+1982 4216(X)N
+2063(also!)X
+2242(One)X
+576 4312(needs)N
+779(only)X
+941(the)X
+1059(T)X
+1100 4328(E)N
+1141 4312(X)N
+1191 4328(P)N
+1227 4312(S)N
+1291([3])X
+1405(software.)X
+735 4408(The)N
+888(organization)X
+1318(of)X
+1414(this)X
+1558(paper)X
+1766(is)X
+1848(as)X
+1944(follows.)X
+2233(Sec-)X
+576 4504(tion)N
+728(2)X
+796(presents)X
+1087(the)X
+1213(background)X
+1620(of)X
+1715(this)X
+1857(work.)X
+2069(Section)X
+2336(3)X
+576 4600(explains)N
+864(the)X
+984(rationale)X
+1287(behind)X
+1527(building)X
+1815(the)X
+1935(translator)X
+2260(and)X
+576 4696(describes)N
+912(a)X
+985(previous)X
+1298(attempt)X
+1575(at)X
+1670(writing)X
+1938(the)X
+2073(translator)X
+576 4792(and)N
+730(an)X
+845(approach)X
+1179(to)X
+1280(avoid.)X
+1517(The)X
+1681(software)X
+1997(engineering)X
+576 4888(aspect)N
+808(of)X
+906(the)X
+1035(translator)X
+1369(is)X
+1453(described)X
+1792(also)X
+1952(in)X
+2045(Section)X
+2316(3.)X
+576 4984(The)N
+730(details)X
+968(of)X
+1064(the)X
+1191(implementation)X
+1722(are)X
+1850(exposed)X
+2142(in)X
+2233(Sec-)X
+576 5080(tion)N
+738(4.)X
+836(Section)X
+1114(5)X
+1192(describes)X
+1528(the)X
+1663(operation)X
+2003(of)X
+2107(the)X
+2242(pro-)X
+576 5176(gram.)N
+786(Section)X
+1051(6)X
+1116(evaluates)X
+1440(the)X
+1563(results.)X
+1818(Finally)X
+2070(Section)X
+2336(7)X
+576 5272(describes)N
+895(improvements)X
+1373(to)X
+1455(the)X
+1573(translator)X
+1896(that)X
+2036(are)X
+2155(left)X
+2282(for)X
+576 5368(future)N
+788(work.)X
+3 f F
+576 5560(2)N
+676(Background)X
+1 f F
+576 5704(Typesetter)N
+943(formatting)X
+1309(systems)X
+1590(such)X
+1765(as)X
+1861(T)X
+1902 5720(E)N
+1943 5704(X)N
+2030(and)X
+9 f F
+2177(ditroff)X
+1 f F
+2520 672(use)N
+2653(fonts)X
+2838(as)X
+2930(raw)X
+3076(material.)X
+3384(The)X
+3534(formatters)X
+3889(accept)X
+4120(mixed)X
+2520 768(text)N
+2661(and)X
+2798(commands)X
+3166(as)X
+3254(input)X
+3439(and)X
+3577(produce)X
+3858(output,)X
+4104(which,)X
+2520 864(if)N
+2592(sent)X
+2744(to)X
+2829(the)X
+2950(laser)X
+3125(printers)X
+3392(or)X
+3481(typesetters,)X
+3866(yields)X
+4079(format-)X
+2520 960(ted)N
+2672(text)X
+2846(printed)X
+3127(on)X
+3261(pages.)X
+3518(The)X
+3697(laser)X
+3904(printers)X
+4204(and)X
+2520 1056(typesetters)N
+2887(use)X
+3018(fonts,)X
+3222(i.e.,)X
+3364(sets)X
+3508(of)X
+3599(printable)X
+3907(patterns,)X
+4204(one)X
+2520 1152(per)N
+2666(character,)X
+3025(in)X
+3130(various)X
+3409(representations)X
+3938(in)X
+4044(order)X
+4258(to)X
+2520 1248(cause)N
+2735(the)X
+2869(desired)X
+3136(characters)X
+3498(to)X
+3595(appear)X
+3845(on)X
+3960(the)X
+4093(printed)X
+2520 1344(form.)N
+2736(For)X
+2887(some)X
+3096(printers,)X
+3401(bitmaps)X
+3694(are)X
+3833(used,)X
+4040(with)X
+4222(1's)X
+2520 1440(representing)N
+2943(inked)X
+3147(dots)X
+3306(and)X
+3448(0's)X
+3572(representing)X
+3995(non-inked)X
+2520 1536(dots.)N
+2698(Other)X
+2906(printers)X
+3176(accept)X
+3408(commands)X
+3781(that)X
+3927(cause)X
+4132(draw-)X
+2520 1632(ing)N
+2658(of)X
+2761(the)X
+2895(characters,)X
+3278(the)X
+3412(printer)X
+3662(providing)X
+4009(the)X
+4142(inked)X
+2520 1728(dots)N
+2692(according)X
+3049(to)X
+3151(the)X
+3289(drawing)X
+3592(commands.)X
+3999(One)X
+4173(such)X
+2520 1824(popular)N
+2814(command)X
+3179(language)X
+3518(is)X
+3620(P)X
+8 s 8 xH F
+3664(OST)X
+10 s 10 xH F
+3785(S)X
+8 s 8 xH F
+3829(CRIPT)X
+10 s 10 xH F
+4011(,)X
+4080(and)X
+4245(its)X
+2520 1920(usual)N
+2714(use)X
+2846(is)X
+2924(to)X
+3011(specify)X
+3268(the)X
+3391(outline)X
+3639(of)X
+3732(the)X
+3856(character)X
+4178(with)X
+2520 2016(the)N
+2653(interpreting)X
+3062(printer)X
+3311(\256lling)X
+3536(in)X
+3633(the)X
+3766(outline)X
+4022(with)X
+4198(ink.)X
+2520 2112(One)N
+2694(popular)X
+2980(method)X
+3261(of)X
+3369(describing)X
+3744(fonts)X
+3945(is)X
+4039(with)X
+4222(the)X
+0 f F
+2520 2208(METAFONT)N
+1 f F
+2884(language,)X
+3217(in)X
+3301(which)X
+3519(declarative)X
+3894(de\256nitions)X
+4253(of)X
+2520 2304(how)N
+2689(to)X
+2782(paint)X
+2973(the)X
+3102(characters)X
+3460(are)X
+3591(given)X
+3801(in)X
+3895(terms)X
+4105(of)X
+4204(pen)X
+2520 2400(path)N
+2699(and)X
+2856(pen)X
+3013(shape.)X
+3257(Another)X
+3561(popular)X
+3847(method)X
+4128(is)X
+4222(the)X
+2520 2496(same)N
+2708(P)X
+8 s 8 xH F
+2752(OST)X
+10 s 10 xH F
+2873(S)X
+8 s 8 xH F
+2917(CRIPT)X
+10 s 10 xH F
+3122(that)X
+3265(many)X
+3466(printers)X
+3734(accept.)X
+3984(The)X
+4133(prime)X
+2520 2592(di)N
+2582 MX
+(ff)138 606 oc
+2630(erence)X
+2869(is)X
+2950(that)X
+3098(the)X
+0 f F
+3224(METAFONT)X
+1 f F
+3593(program)X
+3892(translates)X
+4222(the)X
+2520 2688(font)N
+2671(de\256nitions)X
+3030(into)X
+3176(bitmaps)X
+3451(prior)X
+3629(to)X
+3713(sending)X
+3985(the)X
+4106(font)X
+4258(to)X
+2520 2784(the)N
+2657(printer)X
+2910(while)X
+3126(a)X
+3200(P)X
+8 s 8 xH F
+3244(OST)X
+10 s 10 xH F
+3365(S)X
+8 s 8 xH F
+3409(CRIPT)X
+10 s 10 xH F
+3629(printer)X
+3881(translates)X
+4222(the)X
+2520 2880(outlines)N
+2806(into)X
+2963(bitmaps)X
+3249(at)X
+3340(the)X
+3471(time)X
+3646(of)X
+3746(printing.)X
+4052(Interest-)X
+2520 2976(ingly,)N
+2724(both)X
+2886(the)X
+0 f F
+3004(METAFONT)X
+1 f F
+3365(language)X
+3675(and)X
+3811(the)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH F
+2520 3072(language)N
+2845(use)X
+2987(Be)X
+3045(\302zier)X
+3233(curves)X
+3478(for)X
+3607(describing)X
+3976(the)X
+4110(curves)X
+2520 3168(followed)N
+2863(by)X
+3001(the)X
+3157(pen)X
+3331(or)X
+3456(the)X
+3612(outlines.)X
+3943(As)X
+4089(usually)X
+2520 3264(con\256gured)N
+2886(these)X
+3074(days,)X
+3264(T)X
+3305 3280(E)N
+3346 3264(X)N
+3428(uses)X
+3590(bitmapped)X
+3952(fonts)X
+4136(in)X
+4222(the)X
+2520 3360(Computer)N
+2865(Modern)X
+3144(family)X
+3378(generated)X
+3715(by)X
+0 f F
+3819(METAFONT)X
+1 f F
+4160(,)X
+4204(and)X
+9 f F
+2520 3456(ditroff)N
+1 f F
+2775(uses)X
+2969(P)X
+8 s 8 xH F
+3013(OST)X
+10 s 10 xH F
+3134(S)X
+8 s 8 xH F
+3178(CRIPT)X
+10 s 10 xH F
+3416(outline)X
+3695(fonts)X
+3912(supplied)X
+4240(by)X
+2520 3552(Adobe.)N
+2679 3648(The)N
+2859(subsequent)X
+3270(subsections)X
+3695(delve)X
+3925(deeper)X
+4196(into)X
+2520 3744(these)N
+2712(issues)X
+2929(in)X
+3017(order)X
+3213(to)X
+3301(be)X
+3403(able)X
+3563(to)X
+3651(state)X
+3824(the)X
+3948(goal)X
+4112(of)X
+4205(this)X
+2520 3840(paper)N
+2719(in)X
+2801(the)X
+2919(next)X
+3077(section.)X
+3 f F
+2520 4032(2.1)N
+2680(Fonts,)X
+2947(design)X
+3220(sizes,)X
+3452(and)X
+3637(magni\256cations.)X
+1 f F
+4231(As)X
+2520 4128(mentioned,)N
+2904(fonts)X
+3090(are)X
+3215(the)X
+3339(raw)X
+3486(material)X
+3774(of)X
+3866(typesetting.)X
+4262(A)X
+2520 4224(font)N
+2676(is)X
+2756(a)X
+2819(set)X
+2935(of)X
+3029(printable)X
+3341(patterns,)X
+3642(one)X
+3785(for)X
+3906(each)X
+4082(charac-)X
+2520 4320(ter,)N
+2650(that)X
+2795(causes)X
+3030(printing)X
+3308(of)X
+3400(that)X
+3545(character)X
+3866(in)X
+3952(a)X
+4012(particular)X
+2520 4416(recognizable)N
+2970(style)X
+3160(on)X
+3279(the)X
+3416(page.)X
+3628(As)X
+3757(mentioned,)X
+4155(these)X
+2520 4512(patterns)N
+2821(can)X
+2980(be)X
+3102(represented)X
+3519(by)X
+3645(bitmaps)X
+3944(or)X
+4057(drawing)X
+2520 4608(instructions.)N
+2679 4704(Characters)N
+3057(come)X
+3265(in)X
+3361(various)X
+3632(sizes.)X
+3843(There)X
+4066(are)X
+4200(two)X
+2520 4800(independent)N
+2948(notions)X
+3219(of)X
+3322(sizing)X
+3549(for)X
+3679(fonts,)X
+3894(point)X
+4093(size)X
+4253(or)X
+2520 4896(design)N
+2764(size)X
+2924(and)X
+3075(magni\256cation.)X
+3571(The)X
+2 f F
+3732(design)X
+3977(size)X
+1 f F
+4133(is)X
+4222(the)X
+2520 4992(size)N
+2674(at)X
+2761(which)X
+2986(the)X
+3113(character)X
+3438(is)X
+3520(designed)X
+3834(to)X
+3925(be)X
+4029(used)X
+4204(and)X
+2520 5088(is,)N
+2615(in)X
+2699(well-designed)X
+3171(text,)X
+3333(the)X
+3453(size)X
+3600(in)X
+3684(which)X
+3903(the)X
+4024(character)X
+2520 5184(appears)N
+2803(in)X
+2902(\256nal,)X
+3101(printed)X
+3364(copy.)X
+3576(Design)X
+3839(size)X
+4000(is)X
+4089(usually)X
+2520 5280(expressed)N
+2870(in)X
+2965(units)X
+3153(of)X
+3254(points,)X
+3503(which)X
+3733(are)X
+3866(each)X
+4048(approxi-)X
+2520 5376(mately)N
+2778(1/72)X
+2960(of)X
+3067(an)X
+3183(inch.)X
+3380(Most)X
+3583(normal)X
+3849(text)X
+4008(in)X
+4109(books,)X
+2520 5472(newspapers,)N
+2940(and)X
+3081(magazines)X
+3446(is)X
+3525(printed)X
+3778(in)X
+3866(10)X
+3972(point)X
+4162(type.)X
+2520 5568(Headlines)N
+2864(are)X
+2986(larger,)X
+3217(perhaps)X
+3490(as)X
+3580(large)X
+3764(as)X
+3854(30)X
+3957(points.)X
+4195(The)X
+2 f F
+2520 5664(magni\256cation)N
+1 f F
+3008(of)X
+3123(a)X
+3207(font)X
+3384(is)X
+3485(the)X
+3631(inverse)X
+3911(of)X
+4026(the)X
+4173(ratio)X
+2465 6084(1)N
+
+%%Page: 2 3
+2 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+576 672(between)N
+868(the)X
+990(design)X
+1223(size)X
+1371(of)X
+1461(the)X
+1582(character)X
+1901(and)X
+2040(the)X
+2161(size)X
+2309(of)X
+576 768(the)N
+701(character)X
+1024(as)X
+1119(it)X
+1191(emerges)X
+1487(on)X
+1595(the)X
+1721(printer,)X
+1983(the)X
+2109(assump-)X
+576 864(tion)N
+723(being)X
+923(that)X
+1065(the)X
+1185(\256nal)X
+1349(copy)X
+1527(is)X
+1602(a)X
+1660(photo)X
+1864(reduction)X
+2189(of)X
+2278(the)X
+576 960(printed)N
+845(copy.)X
+1063(Thus,)X
+1285(if)X
+1376(photo)X
+1600(reduction)X
+1945(halves)X
+2193(linear)X
+576 1056(dimensions,)N
+988(one)X
+1132(prints)X
+1342(with)X
+1512(magni\256cation)X
+1980(2.)X
+2088(If)X
+2170(every-)X
+576 1152(thing)N
+788(is)X
+889(done)X
+1093(right,)X
+1312(then)X
+1498(after)X
+1694(reduction,)X
+2065(the)X
+2211(letter)X
+576 1248(appears)N
+842(at)X
+920(its)X
+1015(design)X
+1244(size.)X
+735 1344(A)N
+819(10)X
+925(point)X
+1115(design)X
+1350(sized)X
+1541(font)X
+1696(printed)X
+1949(at)X
+2033(magni\256ca-)X
+576 1440(tion)N
+725(2)X
+790(is)X
+868(similar)X
+1115(to)X
+1202(but)X
+1329(not)X
+1456(quite)X
+1641(the)X
+1764(same)X
+1954(as)X
+2046(a)X
+2107(20)X
+2212(point)X
+576 1536(version)N
+839(of)X
+933(the)X
+1058(same)X
+1250(font.)X
+1446(For)X
+1584(example,)X
+1904(the)X
+2030(serifs)X
+2232(on)X
+2340(a)X
+576 1632(large)N
+763(point)X
+953(size)X
+1104(are)X
+1229(smaller)X
+1490(than)X
+1653(they)X
+1816(would)X
+2041(be)X
+2142(if)X
+2216(strict)X
+576 1728(linear)N
+783(magni\256cation)X
+1247(were)X
+1428(used.)X
+1619(Other)X
+1826(proportions,)X
+2240(e.g.,)X
+576 1824(of)N
+679(x-height)X
+982(to)X
+1080(cap-height)X
+1455(and)X
+1606(of)X
+1708(width)X
+1925(to)X
+2022(height,)X
+2277(are)X
+576 1920(also)N
+751(di)X
+813 MX
+(ff)138 606 oc
+861(erent.)X
+1088(While)X
+1330(many)X
+1554(purists,)X
+1833(Knuth)X
+2080(included,)X
+576 2016(insist)N
+773(on)X
+881(using)X
+1082(a)X
+1146(di)X
+1208 MX
+(ff)138 606 oc
+1256(erent)X
+1445(pattern)X
+1696(for)X
+1818(each)X
+1994(design)X
+2231(size,)X
+576 2112(many)N
+787(people)X
+1034(accept)X
+1273(magni\256cation)X
+1746(as)X
+1847(yielding)X
+2143(accept-)X
+576 2208(able)N
+777(fonts)X
+1004(at)X
+1129(other)X
+1361(point)X
+1592(sizes.)X
+1835(If)X
+1955(the)X
+2119(unit)X
+2309(of)X
+576 2304(magni\256cation)N
+1047(is)X
+1132(not)X
+1266(too)X
+1400(big)X
+1534(the)X
+1664(results)X
+1905(are)X
+2036(acceptable)X
+576 2400(even)N
+748(to)X
+830(many)X
+1028(purists.)X
+3 f F
+576 2592(2.2)N
+736(Problems)X
+1086(with)X
+1262(bitmapped)X
+1655(fonts.)X
+1 f F
+1889(A)X
+1972(bitmap)X
+2220(for)X
+2340(a)X
+576 2688(character)N
+898(is)X
+977(a)X
+1039(rectangular)X
+1426(array)X
+1617(of)X
+1709(bits)X
+1849(covering)X
+2155(the)X
+2278(so-)X
+576 2784(called)N
+802(bounding)X
+1138(box)X
+1292(or)X
+1393(frame)X
+1616(that)X
+1771(exactly)X
+2038(contains)X
+2340(a)X
+576 2880(letter.)N
+789(Figure)X
+1026(1)X
+1094(shows)X
+1322(a)X
+1386(low)X
+1534(resolution)X
+1881(bit)X
+1992(map)X
+2157(for)X
+2278(the)X
+576 2976(letter)N
+762(\252N\272)X
+913(in)X
+996(a)X
+1053(sans)X
+1212(serif)X
+1377(font.)X
+1548(The)X
+1695(inked)X
+1895(squares)X
+2158(or)X
+2247(pix-)X
+576 3072(els)N
+694(are)X
+822(denoted)X
+1105(by)X
+1214(\2521\272)X
+1355(bits)X
+1499(and)X
+1644(the)X
+1771(uninked)X
+2058(pixels)X
+2277(are)X
+576 3168(denoted)N
+850(by)X
+950(\2520\272)X
+1082(bits.)X
+1044 3264 MXY
+864
+1488
+0.00
+-12.00
+108.00
+174.00
+startFig
+%!
+%%%Title: N
+%%%Creator: fig2ps
+%%%CreationDate: Fri Jul 6 08:19:03 1990
+%%%For: dberry@cs24 (dberry,479C,4325,252027,@$CP037,shlomo,cs24,)
+%%%Pages: 0
+%%%BoundingBox: 0 -12 108 174
+%%%Was: 0 0 108 162
+%%%EndComments
+/$F2psDict 32 dict def $F2psDict begin $F2psDict /mtrx matrix put
+ end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog
+$F2psBegin
+1 setlinecap 1 setlinejoin
+-72 72 translate
+0.000000 162.000000 translate 0.900 -0.900 scale
+0.700 setlinewidth
+%% Polyline
+newpath 179 79 moveto 199 79 lineto 199 259 lineto 179 259 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 159 219 moveto 179 219 lineto 179 239 lineto 159 239 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 139 179 moveto 159 179 lineto 159 219 lineto 139 219 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 119 139 moveto 139 139 lineto 139 179 lineto 119 179 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 99 99 moveto 119 99 lineto 119 139 lineto 99 139 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 79 79 moveto 99 79 lineto 99 259 lineto 79 259 lineto closepath gsave 0.000 setgray fill grestore stroke
+$F2psEnd
+endFig
+1341 4896(Figure)N
+1570(1)X
+576 5056(The)N
+738(low)X
+895(resolution)X
+1252(example)X
+1561(of)X
+1666(Figure)X
+1913(1)X
+1991(illustrates)X
+2340(a)X
+576 5152(major)N
+790(problem)X
+1083(with)X
+1251(bitmapped)X
+1615(fonts.)X
+1821(Curved)X
+2083(lines)X
+2260(and)X
+576 5248(straight)N
+858(lines)X
+1051(that)X
+1213(are)X
+1354(neither)X
+1619(vertical)X
+1902(nor)X
+2051(horizontal)X
+576 5344(cannot)N
+820(be)X
+926(represented)X
+1327(exactly)X
+1588(by)X
+1697(a)X
+1762(rectangular)X
+2153(pattern)X
+576 5440(of)N
+669(pixels.)X
+906(One)X
+1066(is)X
+1145(forced)X
+1377(to)X
+1466(approximate)X
+1894(them)X
+2081(with)X
+2250(rec-)X
+576 5536(tangular)N
+872(steps.)X
+1085(At)X
+1198(high)X
+1373(resolution,)X
+1745(e.g.)X
+1893(above)X
+2117(1000)X
+2309(or)X
+576 5632(so,)N
+707(the)X
+845(human)X
+1103(eye)X
+1255(cannot)X
+1510(see)X
+1654(the)X
+1793(steps,)X
+2014(but)X
+2157(at)X
+2256(low)X
+2520 672(resolution)N
+2877(the)X
+3012(steps)X
+3209(are)X
+3344(quite)X
+3540(apparent.)X
+3893(Visible)X
+4160(steps)X
+2520 768(are)N
+2639(called)X
+2851(\252jaggies\272)X
+3170(after)X
+3338(the)X
+3456(jagged)X
+3690(edges.)X
+2679 864(Bitmaps)N
+2977(for)X
+3103(a)X
+3171(font)X
+3332(must)X
+3519(be)X
+3627(built)X
+3805(for)X
+3931(each)X
+4111(design)X
+2520 960(size,)N
+2696(magni\256cation,)X
+3187(and)X
+3334(resolution.)X
+3705(If)X
+3789(the)X
+3917(resolution)X
+4267(is)X
+2520 1056(\256xed,)N
+2724(as)X
+2816(is)X
+2894(the)X
+3017(case)X
+3181(on)X
+3286(most)X
+3466(printers,)X
+3756(a)X
+3817(bitmap)X
+4064(must)X
+4244(be)X
+2520 1152(built)N
+2687(for)X
+2802(each)X
+2971(design)X
+3201(size)X
+3346(and)X
+3482(magni\256cation.)X
+3962(An)X
+4080(attempt)X
+2520 1248(to)N
+2633(use)X
+2791(a)X
+2878(given)X
+3107(bitmap)X
+3380(at)X
+3489(a)X
+3576(larger)X
+3815(design)X
+4076(size)X
+4253(or)X
+2520 1344(magni\256cation)N
+2999(by)X
+3118(just)X
+3272(enlarging)X
+3614(the)X
+3751(area)X
+3925(of)X
+4031(each)X
+4218(dot)X
+2520 1440(yields)N
+2731(a)X
+2787(bad)X
+2923(case)X
+3082(of)X
+3169(jaggies.)X
+3 f F
+2520 1632(2.3)N
+0 f F
+2680(METAFONT)X
+3 f F
+3064(and)X
+3235(its)X
+3359(environment.)X
+0 f F
+3879(METAFONT)X
+1 f F
+4220(,)X
+4284(a)X
+2520 1728(language)N
+2834(for)X
+2952(the)X
+3074(speci\256cation)X
+3503(of)X
+3593(fonts)X
+3776(or)X
+3866(typefaces,)X
+4213(has)X
+2520 1824(been)N
+2719(used)X
+2913(to)X
+3022(provide)X
+3314(fonts)X
+3521(for)X
+3662(the)X
+3808(T)X
+3849 1840(E)N
+3890 1824(X)N
+3996(family)X
+4253(of)X
+2520 1920(typesetting)N
+2911(systems.)X
+3224(A)X
+0 f F
+3322(METAFONT)X
+1 f F
+3703(user)X
+3876(writes)X
+4111(a)X
+4186(pro-)X
+2520 2016(gram)N
+2716(for)X
+2841(each)X
+3020(letter)X
+3216(or)X
+3314(symbol)X
+3580(of)X
+3678(an)X
+3785(alphabet.)X
+4128(These)X
+2520 2112(programs)N
+2862(are)X
+2999(di)X
+3061 MX
+(ff)138 606 oc
+3109(erent)X
+3308(from)X
+3502(the)X
+3638(usual)X
+3845(computer)X
+4186(pro-)X
+2520 2208(grams,)N
+2771(because)X
+3061(they)X
+3234(are)X
+3369(essentially)X
+3743(declarative)X
+4132(rather)X
+2520 2304(than)N
+2726(imperative,)X
+3156(using)X
+3396(an)X
+3539(algebraic)X
+3901(language)X
+4258(to)X
+2520 2400(describe)N
+2822(the)X
+2955(center)X
+3187(stroke)X
+3418(or)X
+3520(edges)X
+3738(of)X
+3840(the)X
+3973(characters.)X
+2520 2496(The)N
+2666(description)X
+3043(of)X
+3131(a)X
+3188(letter)X
+3373(in)X
+0 f F
+3455(METAFONT)X
+1 f F
+3816(is)X
+3889(a)X
+3945(set)X
+4054(of)X
+4141(equa-)X
+2520 2592(tions)N
+2727(describing)X
+3113(the)X
+3264(strokes.)X
+3564(When)X
+3809(combined)X
+4178(with)X
+2520 2688(parameters)N
+2900(describing)X
+3261(the)X
+3385(pen)X
+3527(shape)X
+3736(and)X
+3878(size,)X
+4049(one)X
+4191(gets)X
+2520 2784(a)N
+2588(full)X
+2731(description)X
+3119(of)X
+3219(a)X
+3288(letter.)X
+3506(Sizes)X
+3708(and)X
+3857(shapes)X
+4104(of)X
+4204(pen)X
+2520 2880(nibs)N
+2678(can)X
+2815(be)X
+2916(varied)X
+3142(in)X
+0 f F
+3229(METAFONT)X
+1 f F
+3595(and)X
+3735(the)X
+3857(characters)X
+4208(can)X
+2520 2976(be)N
+2635(built)X
+2820(up)X
+2939(in)X
+3040(such)X
+3226(a)X
+3301(way)X
+3474(that)X
+3634(the)X
+3772(outlines)X
+4065(of)X
+4172(each)X
+2520 3072(stroke)N
+2748(are)X
+2879(precisely)X
+3201(controlled.)X
+3578(Herein)X
+3829(lies)X
+3972(the)X
+4101(advan-)X
+2520 3168(tage)N
+2680(of)X
+0 f F
+2774(METAFONT)X
+1 f F
+3115(;)X
+3164(a)X
+3227(font)X
+3383(is)X
+3463(easily)X
+3677(speci\256ed)X
+3989(and)X
+4132(varia-)X
+2520 3264(tions)N
+2695(are)X
+2814(obtained)X
+3110(by)X
+3210(varying)X
+3475(parameters.)X
+2679 3360(Currently,)N
+3057(the)X
+3206(program)X
+3529(that)X
+3700(converts)X
+4024(a)X
+4112(set)X
+4253(of)X
+0 f F
+2520 3456(METAFONT)N
+1 f F
+2914(font)X
+3096(descriptions)X
+3536(into)X
+3713(a)X
+3801(bitmapped)X
+4191(font)X
+2520 3552(translates)N
+2858(the)X
+2991(description)X
+3382(of)X
+3484(a)X
+3555(letter)X
+3755(combined)X
+4106(with)X
+4284(a)X
+2520 3648(point)N
+2714(size)X
+2869(and)X
+3015(a)X
+3080(magni\256cation)X
+3549(into)X
+3702(a)X
+3767(bitmap.)X
+4038(This)X
+4209(bit-)X
+2520 3744(map)N
+2678(can)X
+2810(be)X
+2906(sent)X
+3055(to)X
+3137(the)X
+3255(printer)X
+3489(to)X
+3571(get)X
+3689(a)X
+3745(letter)X
+3930(on)X
+4030(the)X
+4148(page.)X
+2520 3840(Herein)N
+2780(lies)X
+2932(a)X
+3009(disadvantage)X
+3469(of)X
+0 f F
+3577(METAFONT)X
+1 f F
+3918(;)X
+3981(a)X
+4058(bit)X
+4182(map)X
+2520 3936(must)N
+2698(be)X
+2797(kept)X
+2958(for)X
+3075(each)X
+3246(point)X
+3433(size)X
+3581(and)X
+3720(magni\256cation,)X
+4204(and)X
+2520 4032(this)N
+2655(can)X
+2787(require)X
+3035(a)X
+3091(lot)X
+3195(of)X
+3282(space.)X
+3 f F
+2520 4224(2.4)N
+2680(The)X
+2869(P)X
+8 s 8 xH F
+2918(OST)X
+10 s 10 xH F
+3047(S)X
+8 s 8 xH F
+3091(CRIPT)X
+10 s 10 xH F
+3346(language.)X
+1 f F
+3748(The)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH F
+2520 4320(language)N
+2834(is)X
+2911(an)X
+3011(interpretive)X
+3405(programming)X
+3865(language)X
+4178(with)X
+2520 4416(graphics)N
+2851(capabilities.)X
+3296(P)X
+8 s 8 xH F
+3340(OST)X
+10 s 10 xH F
+3461(S)X
+8 s 8 xH F
+3505(CRIPT)X
+10 s 10 xH F
+3687('s)X
+3805(extensive)X
+4168(page)X
+2520 4512(description)N
+2914(capabilities)X
+3317(are)X
+3454(embedded)X
+3822(into)X
+3983(a)X
+4056(general-)X
+2520 4608(purpose)N
+2854(programming)X
+3370(language)X
+3741(framework.)X
+4195(The)X
+2520 4704(language)N
+2834(includes)X
+3125(a)X
+3185(conventional)X
+3622(set)X
+3734(of)X
+3824(data)X
+3981(types)X
+4173(such)X
+2520 4800(as)N
+2611(numbers,)X
+2931(arrays,)X
+3173(and)X
+3314(strings,)X
+3572(control)X
+3824(primitives)X
+4173(such)X
+2520 4896(as)N
+2650(conditionals,)X
+3124(loops)X
+3360(and)X
+3538(procedures,)X
+3973(and)X
+4151(some)X
+2520 4992(unusual)N
+2809(features)X
+3104(such)X
+3291(as)X
+3398(dictionaries.)X
+3832(In)X
+3939(most)X
+4134(P)X
+8 s 8 xH F
+4178(OST-)X
+10 s 10 xH F
+2520 5088(S)N
+8 s 8 xH F
+2564(CRIPT)X
+10 s 10 xH F
+2774(fonts,)X
+2982(each)X
+3158(letter)X
+3351(is)X
+3432(described)X
+3767(by)X
+3874(an)X
+3977(imperative)X
+2520 5184(program)N
+2825(tracing)X
+3081(the)X
+3213(outline)X
+3469(of)X
+3570(the)X
+3702(letter.)X
+3921(This)X
+4097(tracing)X
+2520 5280(may)N
+2700(include)X
+2978(curves)X
+3230(given)X
+3449(as)X
+3557(Be)X
+3615(\302zier)X
+3809(curves,)X
+4080(straight)X
+2520 5376(lines,)N
+2731(arcs,)X
+2921(etc.)X
+3075(A)X
+3174(P)X
+8 s 8 xH F
+3218(OST)X
+10 s 10 xH F
+3339(S)X
+8 s 8 xH F
+3383(CRIPT)X
+10 s 10 xH F
+3606(printer)X
+3861(interprets)X
+4205(this)X
+2520 5472(outline)N
+2777(program)X
+3084(to)X
+3181(draw)X
+3377(and)X
+3528(\256ll)X
+3650(in)X
+3746(the)X
+3878(letters)X
+4108(on)X
+4222(the)X
+2520 5568(page.)N
+2731(Some)X
+2953(consider)X
+3265(the)X
+3403(imperative)X
+3786(nature)X
+4027(of)X
+4134(P)X
+8 s 8 xH F
+4178(OST-)X
+10 s 10 xH F
+2520 5664(S)N
+8 s 8 xH F
+2564(CRIPT)X
+10 s 10 xH F
+2780(to)X
+2875(be)X
+2984(a)X
+3053(disadvantage)X
+3505(in)X
+3600(comparison)X
+4007(to)X
+0 f F
+4102(META-)X
+1 f F
+2465 6084(2)N
+
+%%Page: 3 4
+3 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+576 672(FONT)N
+1 f F
+741('s)X
+853(declarative)X
+1260(nature.)X
+1535(The)X
+1714(main)X
+1928(advantage)X
+2309(of)X
+576 768(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+996(relative)X
+1266(to)X
+0 f F
+1357(METAFONT)X
+1 f F
+1727(is)X
+1809(that)X
+1958(one)X
+2103(needs)X
+2314(to)X
+576 864(keep)N
+756(only)X
+926(the)X
+1052(outline.)X
+1322(If,)X
+1424(as)X
+1519(in)X
+1609(the)X
+1735(usual)X
+1932(case,)X
+2120(the)X
+2247(out-)X
+576 960(line)N
+747(is)X
+851(speci\256ed)X
+1186(in)X
+1298(terms)X
+1526(of)X
+1643(a)X
+1729(\256xed)X
+1939(path)X
+2127(through)X
+576 1056(Euclidean)N
+929(two-space,)X
+1307(this)X
+1455(outline)X
+1710(may)X
+1881(be)X
+1990(scaled)X
+2224(arbi-)X
+576 1152(trarily)N
+803(to)X
+896(yield)X
+1087(any)X
+1234(magni\256cation.)X
+1725(The)X
+1880(scaling)X
+2137(is)X
+2220(done)X
+576 1248(by)N
+687(the)X
+816(P)X
+8 s 8 xH F
+860(OST)X
+10 s 10 xH F
+981(S)X
+8 s 8 xH F
+1025(CRIPT)X
+10 s 10 xH F
+1238(interpreter)X
+1604(at)X
+1693(the)X
+1822(printer.)X
+2087(Thus)X
+2278(the)X
+576 1344(di)N
+638 MX
+(ff)138 606 oc
+686(erent)X
+883(magni\256cations)X
+1390(do)X
+1505(not)X
+1642(require)X
+1905(any)X
+2056(additional)X
+576 1440(storage)N
+833(space.)X
+1057(Actually,)X
+1378(the)X
+1502(outlines)X
+1781(are)X
+1906(kept)X
+2070(as)X
+2163(if)X
+2238(they)X
+576 1536(were)N
+754(for)X
+869(the)X
+988(Adobe-standard)X
+1522(1000)X
+1703(dots)X
+1857(per)X
+1980(emm,)X
+2180(which)X
+576 1632(at)N
+675(a)X
+752(design)X
+1002(size)X
+1168(of)X
+1276(10)X
+1398(points)X
+1635(amounts)X
+1948(to)X
+2052(7200)X
+2254(dpi.)X
+576 1728(Because)N
+867(a)X
+926(typical)X
+1166(phototypesetter)X
+1682(has)X
+1811(a)X
+1869(maximum)X
+2215(reso-)X
+576 1824(lution)N
+799(of)X
+903(about)X
+1118(2500)X
+1315(dpi,)X
+1474(the)X
+1609(outlines)X
+1899(are)X
+2035(said)X
+2201(to)X
+2300(be)X
+576 1920(arbitrarily)N
+939(scaleable.)X
+1296(If)X
+1392(the)X
+1532(outlines)X
+1827(are)X
+1968(kept,)X
+2168(as)X
+2277(are)X
+576 2016(many)N
+0 f F
+794(METAFONT)X
+1 f F
+1175(de\256nitions,)X
+1573(as)X
+1681(paths)X
+1891(through)X
+2181(points)X
+576 2112(calculated)N
+925(by)X
+1028(the)X
+1149(outline)X
+1394(program,)X
+1709(then)X
+1869(it)X
+1935(is)X
+2010(possible)X
+2294(to,)X
+576 2208(say,)N
+744(make)X
+959(serifs)X
+1174(grow)X
+1380(more)X
+1586(slowly)X
+1840(than)X
+2020(linearly.)X
+2327(It)X
+576 2304(would)N
+811(then)X
+984(be)X
+1094(possible)X
+1390(to)X
+1486(have)X
+1672(one)X
+1822(P)X
+8 s 8 xH F
+1866(OST)X
+10 s 10 xH F
+1987(S)X
+8 s 8 xH F
+2031(CRIPT)X
+10 s 10 xH F
+2247(font)X
+576 2400(scaleable)N
+905(to)X
+1001(all)X
+1115(design)X
+1358(sizes.)X
+1588(Generally,)X
+1959(outline)X
+2216(fonts)X
+576 2496(are)N
+705(not)X
+837(written)X
+1094(this)X
+1239(way,)X
+1423(so)X
+1524(that)X
+1673(strictly)X
+1924(speaking)X
+2238(they)X
+576 2592(are)N
+695(scaleable)X
+1010(only)X
+1172(to)X
+1254(all)X
+1354(magni\256cations.)X
+735 2688(In)N
+823(addition,)X
+1126(the)X
+1246(P)X
+8 s 8 xH F
+1290(OST)X
+10 s 10 xH F
+1411(S)X
+8 s 8 xH F
+1455(CRIPT)X
+10 s 10 xH F
+1659(language)X
+1971(has)X
+2100(a)X
+2158(way)X
+2314(to)X
+576 2784(work)N
+786(with)X
+973(bitmapped)X
+1356(fonts.)X
+1601(While)X
+1842(the)X
+1985(P)X
+8 s 8 xH F
+2029(OST)X
+10 s 10 xH F
+2150(S)X
+8 s 8 xH F
+2194(CRIPT)X
+10 s 10 xH F
+576 2880(printer)N
+815(can)X
+952(scale)X
+1138(them)X
+1323(before)X
+1554(printing,)X
+1853(the)X
+1977(end)X
+2119(result)X
+2323(is)X
+576 2976(that)N
+726(each)X
+904(of)X
+1001(the)X
+1129(\256xed)X
+1319(number)X
+1594(of)X
+1691(dots)X
+1854(in)X
+1945(the)X
+2072(bitmap)X
+2323(is)X
+576 3072(made)N
+772(larger)X
+983(or)X
+1073(smaller.)X
+1352(Since)X
+1553(the)X
+1674(human)X
+1915(will)X
+2062(see)X
+2188(larger)X
+576 3168(dots)N
+752(as)X
+862(jagged)X
+1119(lines,)X
+1332(such)X
+1521(fonts)X
+1723(are)X
+1864(not)X
+2008(really)X
+2233(con-)X
+576 3264(sidered)N
+828(scaleable.)X
+3 f F
+576 3456(2.5)N
+736(Be)X
+794(\302zier)X
+986(curves.)X
+1 f F
+1280(Both)X
+0 f F
+1466(METAFONT)X
+1 f F
+1838(and)X
+1985(P)X
+8 s 8 xH F
+2029(OST)X
+10 s 10 xH F
+2150(S)X
+8 s 8 xH F
+2194(CRIPT)X
+10 s 10 xH F
+576 3552(use)N
+725(Be)X
+783(\302zier)X
+978(cubics)X
+1225(to)X
+1329(specify)X
+1603(curves.)X
+1874(For)X
+2026(the)X
+2165(Be)X
+2223(\302zier)X
+576 3648(form,)N
+773(four)X
+928(points)X
+1144(are)X
+1264(used,)X
+1452(the)X
+1571(start)X
+1730(point,)X
+1935(the)X
+2054(end)X
+2192(point,)X
+576 3744(and)N
+716(two)X
+860(control)X
+1111(points,)X
+1350(as)X
+1441(shown)X
+1674(in)X
+1759(the)X
+1880(top)X
+2005(half)X
+2153(of)X
+2243(Fig-)X
+576 3840(ure)N
+708(2.)X
+817(The)X
+971(tangent)X
+1236(vectors)X
+1497(of)X
+1593(the)X
+1720(endpoints)X
+2060(are)X
+2188(deter-)X
+576 3936(mined)N
+818(from)X
+1016(the)X
+1156(line)X
+1318(segments)X
+2 f F
+1658(P)X
+7 s 7 xH 1 f F
+1707 3952(1)N
+10 s 10 xH 2 f F
+1741 3936(P)N
+7 s 7 xH 1 f F
+1790 3952(2)N
+10 s 10 xH F
+1866 3936(and)N
+2 f F
+2024(P)X
+7 s 7 xH 1 f F
+2073 3952(3)N
+10 s 10 xH 2 f F
+2107 3936(P)N
+7 s 7 xH 1 f F
+2156 3952(4)N
+10 s 10 xH F
+2190 3936(.)N
+2251(The)X
+576 4032(mathematical)N
+1053(introduction)X
+1489(of)X
+1601(the)X
+1744(Be)X
+1802(\302zier)X
+2000(form)X
+2202(when)X
+576 4128(given)N
+774(four)X
+928(points)X
+2 f F
+1143(P)X
+7 s 7 xH 1 f F
+1192 4144(1)N
+10 s 10 xH F
+1226 4128(,)N
+2 f F
+1266(P)X
+7 s 7 xH 1 f F
+1315 4144(2)N
+10 s 10 xH F
+1349 4128(,)N
+2 f F
+1389(P)X
+7 s 7 xH 1 f F
+1438 4144(3)N
+10 s 10 xH F
+1472 4128(,)N
+1512(and)X
+2 f F
+1648(P)X
+7 s 7 xH 1 f F
+1697 4144(4)N
+10 s 10 xH F
+1751 4128(is)N
+2 f F
+648 4320(z)N
+1 f F
+692(\()X
+2 f F
+719(t)X
+1 f F
+747(\))X
+47 f F
+794(=)X
+1 f F
+858(\(1)X
+47 f F
+925(-)X
+2 f F
+969(t)X
+1 f F
+997(\))X
+7 s 7 xH F
+1024 4288(3)N
+10 s 10 xH 2 f F
+1058 4320(P)N
+7 s 7 xH 1 f F
+1107 4336(1)N
+10 s 10 xH 47 f F
+1161 4320(+)N
+1 f F
+1225(3)X
+2 f F
+(t)S
+1 f F
+1300(\()X
+2 f F
+1327(t)X
+47 f F
+1362(-)X
+1 f F
+1406(1\))X
+7 s 7 xH F
+1473 4288(2)N
+10 s 10 xH 2 f F
+1507 4320(P)N
+7 s 7 xH 1 f F
+1556 4336(2)N
+10 s 10 xH 47 f F
+1610 4320(+)N
+1 f F
+1674(3)X
+2 f F
+(t)S
+7 s 7 xH 1 f F
+1745 4288(2)N
+10 s 10 xH F
+1779 4320(\(1)N
+47 f F
+1846(-)X
+2 f F
+1890(t)X
+1 f F
+1918(\))X
+2 f F
+1945(P)X
+7 s 7 xH 1 f F
+1994 4336(3)N
+10 s 10 xH 47 f F
+2048 4320(+)N
+2 f F
+2112(t)X
+7 s 7 xH 1 f F
+2143 4288(3)N
+10 s 10 xH 2 f F
+2177 4320(P)N
+7 s 7 xH 1 f F
+2226 4336(4)N
+10 s 10 xH F
+2260 4320(,)N
+576 4512(for)N
+690(0)X
+47 f F
+750(\243)X
+2 f F
+814(t)X
+47 f F
+862(\243)X
+1 f F
+926(1.)X
+735 4608(Two)N
+925(characteristics)X
+1428(of)X
+1538(the)X
+1679(Be)X
+1737(\302zier)X
+1933(form)X
+2132(tend)X
+2314(to)X
+576 4704(make)N
+776(it)X
+846(widely)X
+1090(used)X
+1263(in)X
+1351(graphics.)X
+1668(First,)X
+1859(by)X
+1964(choosing)X
+2278(the)X
+576 4800(control)N
+850(points)X
+1092(one)X
+1255(can)X
+1414(easily)X
+1648(mold)X
+1859(the)X
+2004(curve)X
+2230(to)X
+2340(a)X
+576 4896(desired)N
+836(shape.)X
+1067(Second,)X
+1351(the)X
+1476(four)X
+1637(control)X
+1891(points)X
+2113(taken)X
+2314(in)X
+576 4992(another)N
+839(order)X
+1031(de\256ne)X
+1250(a)X
+1309(convex)X
+1564(polygon,)X
+2 f F
+1869(P)X
+7 s 7 xH 1 f F
+1918 5008(1)N
+10 s 10 xH 2 f F
+1975 4992(P)N
+7 s 7 xH 1 f F
+2024 5008(2)N
+10 s 10 xH 2 f F
+2081 4992(P)N
+7 s 7 xH 1 f F
+2130 5008(4)N
+10 s 10 xH 2 f F
+2187 4992(P)N
+7 s 7 xH 1 f F
+2236 5008(3)N
+10 s 10 xH 2 f F
+2293 4992(P)N
+7 s 7 xH 1 f F
+2342 5008(1)N
+10 s 10 xH F
+576 5088(in)N
+668(this)X
+813(case,)X
+1002(the)X
+2 f F
+1130(convex)X
+1384(hull)X
+1 f F
+1504(,)X
+1553(which)X
+1778(bounds)X
+2038(the)X
+2165(Be)X
+2223(\302zier)X
+576 5184(curve.)N
+811(The)X
+973(convex)X
+1242(hull)X
+1403(is)X
+1493(useful)X
+1726(in)X
+1825(clipping)X
+2124(a)X
+2197(curve)X
+576 5280(against)N
+823(a)X
+879(window.)X
+735 5376(When)N
+962(a)X
+0 f F
+1033(METAFONT)X
+1 f F
+1410(user)X
+1580(speci\256es)X
+1892(a)X
+1964(path,)X
+0 f F
+2158(META-)X
+576 5472(FONT)N
+1 f F
+772(creates)X
+1027(a)X
+1094(list)X
+1222(of)X
+1320(knots)X
+1524(and)X
+1671(control)X
+1929(points)X
+2154(for)X
+2278(the)X
+576 5568(associated)N
+951(cubic)X
+1170(spline)X
+1406(curves.)X
+1701(If)X
+1800(the)X
+1943(user)X
+2122(has)X
+2274(not)X
+576 5664(speci\256ed)N
+890(the)X
+1017(control)X
+1273(points)X
+1497(explicitly,)X
+0 f F
+1847(METAFONT)X
+1 f F
+2216(itself)X
+2520 672(\256nds)N
+2696(some)X
+2886(for)X
+3001(the)X
+3120(splines)X
+3363(of)X
+3451(a)X
+3508(curve,)X
+3729(while)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH F
+2520 768(requires)N
+2799(all)X
+2899(the)X
+3017(four)X
+3171(points)X
+3386(to)X
+3468(be)X
+3564(explicitly)X
+3886(given.)X
+2600 864 MXY
+1640
+3352
+0.00
+0.00
+205.00
+419.00
+startFig
+%!
+%%%Title: bezier
+%%%Creator: fig2ps
+%%%CreationDate: Fri Jul 6 08:19:07 1990
+%%%For: dberry@cs24 (dberry,479C,4325,252027,@$CP037,shlomo,cs24,)
+%%%Pages: 0
+%%%BoundingBox: 0 0 205 419
+%%%EndComments
+/$F2psDict 32 dict def $F2psDict begin $F2psDict /mtrx matrix put
+ /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def
+ /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def
+ end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog
+$F2psBegin
+1 setlinecap 1 setlinejoin
+-77 80 translate
+0.000000 419.000000 translate 0.900 -0.900 scale
+0.700 setlinewidth
+%% Ellipse
+newpath 299 434 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+%% Ellipse
+newpath 259 354 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+%% Ellipse
+newpath 199 394 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+%% Ellipse
+newpath 179 474 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+%% Ellipse
+newpath 159 534 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+%% Ellipse
+newpath 99 474 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+%% Ellipse
+newpath 119 387 2 2 0 360 DrawEllipse gsave 0.000 setgray fill grestore stroke
+ [1 3.200000] 0 setdash
+%% Polyline
+newpath 99 199 moveto 179 119 lineto 239 299 lineto 299 199 lineto stroke
+stroke
+ [] 0 setdash
+%% Open spline
+newpath 99.000 474.000 moveto 109.000 431.500 lineto
+ 109.000 431.500 119.000 389.000 139.000 461.500 DrawSplineSection
+ 139.000 461.500 159.000 534.000 169.000 504.000 DrawSplineSection
+ 169.000 504.000 179.000 474.000 189.000 434.000 DrawSplineSection
+ 189.000 434.000 199.000 394.000 229.000 374.000 DrawSplineSection
+ 229.000 374.000 259.000 354.000 279.000 394.000 DrawSplineSection
+ 299.000 434.000 lineto stroke
+%% Open spline
+newpath 99.000 199.000 moveto 139.000 159.000 lineto
+ 139.000 159.000 179.000 119.000 209.000 209.000 DrawSplineSection
+ 209.000 209.000 239.000 299.000 269.000 249.000 DrawSplineSection
+ 299.000 199.000 lineto stroke
+/Times-Italic findfont 12.000 scalefont setfont
+299 184 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+304 189 moveto
+1 -1 scale
+(4)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+309 429 moveto
+1 -1 scale
+(7)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+269 349 moveto
+1 -1 scale
+(6)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+209 384 moveto
+1 -1 scale
+(5)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+159 554 moveto
+1 -1 scale
+(3)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+154 549 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+94 469 moveto
+1 -1 scale
+(1)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+89 464 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+130 379 moveto
+1 -1 scale
+(2)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+125 374 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+204 379 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+189 494 moveto
+1 -1 scale
+(4)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+184 489 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+304 424 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+264 344 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+99 179 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+104 184 moveto
+1 -1 scale
+(1)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+179 104 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+184 109 moveto
+1 -1 scale
+(2)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Italic findfont 12.000 scalefont setfont
+239 314 moveto
+1 -1 scale
+(P)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+/Times-Roman findfont 9.000 scalefont setfont
+244 319 moveto
+1 -1 scale
+(3)dup stringwidth pop 2 div neg 0 rmoveto gsave 0.000 rotate show grestore 1 -1 scale
+$F2psEnd
+endFig
+3285 4360(Figure)N
+3514(2)X
+3 f F
+2520 4616(3)N
+0 f F
+2620(METAFONT)X
+3 f F
+2981(to)X
+3068(P)X
+8 s 8 xH F
+3117(OST)X
+10 s 10 xH F
+3246(S)X
+8 s 8 xH F
+3290(CRIPT)X
+10 s 10 xH F
+3509(compiler\320)X
+2520 4712(why)N
+2682(and)X
+2830(how)X
+1 f F
+2520 4856(This)N
+2701(section)X
+2967(describes)X
+3305(a)X
+3380(major)X
+3606(performance)X
+4053(problem)X
+2520 4952(with)N
+0 f F
+2706(METAFONT)X
+1 f F
+3047(-generated)X
+3430(fonts)X
+3633(that)X
+3796(perhaps)X
+4089(can)X
+4244(be)X
+2520 5048(solved)N
+2753(by)X
+2857(translating)X
+3220(them)X
+3405(into)X
+3554(P)X
+8 s 8 xH F
+3598(OST)X
+10 s 10 xH F
+3719(S)X
+8 s 8 xH F
+3763(CRIPT)X
+10 s 10 xH F
+3970(fonts.)X
+4195(The)X
+2520 5144(goals)N
+2714(of)X
+2806(this)X
+2946(translation)X
+3308(are)X
+3431(established.)X
+3831(Based)X
+4051(on)X
+4155(these)X
+2520 5240(goals,)N
+2737(a)X
+2801(particular)X
+3137(approach)X
+3460(is)X
+3542(adopted)X
+3825(to)X
+3916(engineer)X
+4222(the)X
+2520 5336(software)N
+2817(largely)X
+3060(from)X
+3236(existing)X
+3509(components.)X
+3 f F
+2520 5528(3.1)N
+2680(A)X
+2816(problem)X
+3184(with)X
+0 f F
+3414(METAFONT)X
+3 f F
+3755(-generated)X
+4200(bit-)X
+2520 5624(mapped)N
+2821(fonts.)X
+1 f F
+3056(In)X
+0 f F
+3148(METAFONT)X
+1 f F
+3489(,)X
+3534(one)X
+3675(gets)X
+3829(one)X
+3970(bitmap)X
+4217(per)X
+2520 5720(point)N
+2709(size)X
+2859(and)X
+3000(magni\256cation.)X
+3485(The)X
+3635(size)X
+3785(of)X
+3877(these)X
+4067(bitmaps)X
+2465 6084(3)N
+
+%%Page: 4 5
+4 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+576 672(grows)N
+803(as)X
+901(the)X
+1029(square)X
+1269(of)X
+1366(product)X
+1641(of)X
+1738(the)X
+1866(design)X
+2105(size)X
+2260(and)X
+576 768(the)N
+711(magni\256cation)X
+1188(and)X
+1341(requires)X
+1637(a)X
+1710(large)X
+1908(storage)X
+2177(space.)X
+576 864(Files)N
+754(that)X
+896(are)X
+1017(sent)X
+1168(to)X
+1252(the)X
+1372(printer)X
+1608(will)X
+1754(be)X
+1852(large,)X
+2055(especially)X
+576 960(if)N
+667(lots)X
+824(of)X
+933(di)X
+995 MX
+(ff)138 606 oc
+1043(erent)X
+1247(point)X
+1454(sizes)X
+1653(or)X
+1763(magni\256cations)X
+2277(are)X
+576 1056(used.)N
+781(In)X
+886(P)X
+8 s 8 xH F
+930(OST)X
+10 s 10 xH F
+1051(S)X
+8 s 8 xH F
+1095(CRIPT)X
+10 s 10 xH F
+1315(with)X
+1495(outline)X
+1755(fonts,)X
+1972(there)X
+2170(is)X
+2260(one)X
+576 1152(outline)N
+824(per)X
+953(character)X
+1275(which)X
+1497(can)X
+1635(be)X
+1738(scaled)X
+1966(arbitrarily)X
+2314(to)X
+576 1248(any)N
+739(magni\256cation)X
+1225(that)X
+1391(might)X
+1623(be)X
+1745(needed.)X
+2039(Moreover,)X
+576 1344(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+999(outline)X
+1253(fonts)X
+1445(are)X
+1576(generally)X
+1907(more)X
+2104(compact)X
+576 1440(than)N
+737(bitmapped)X
+1098(fonts.)X
+1301(For)X
+1435(example,)X
+1750(an)X
+1849(enclosed)X
+2152(rectan-)X
+576 1536(gle)N
+703(is)X
+785(represented)X
+1185(by)X
+1294(its)X
+1398(four)X
+1561(corner)X
+1796(points)X
+2020(rather)X
+2238(than)X
+576 1632(by)N
+676(all)X
+776(the)X
+894(bits)X
+1029(enclosed)X
+1330(by)X
+1430(the)X
+1548(rectangle.)X
+735 1728(Certainly)N
+1063(the)X
+1191(outline)X
+1443(fonts)X
+1633(are)X
+1762(more)X
+1957(easily)X
+2175(scaled)X
+576 1824(to)N
+662(other)X
+851(magni\256cations.)X
+1366(By)X
+1483(scaling)X
+1734(the)X
+1855(bitmapped)X
+2216(fonts)X
+576 1920(downward,)N
+971(too)X
+1109(much)X
+1323(information)X
+1737(is)X
+1826(lost,)X
+1997(and)X
+2149(scaling)X
+576 2016(upward)N
+862(introduces)X
+1240(the)X
+1382(jaggies.)X
+1693(Moreover,)X
+2074(the)X
+2216(pixel)X
+576 2112(array)N
+766(is)X
+843(device)X
+1078(dependent;)X
+1455(it)X
+1524(is)X
+1602(valid)X
+1787(for)X
+1906(output)X
+2135(devices)X
+576 2208(of)N
+666(only)X
+831(one)X
+969(particular)X
+1299(resolution)X
+1641(and)X
+1779(one)X
+1917(choice)X
+2149(of)X
+2238(pos-)X
+576 2304(sible)N
+750(data)X
+907(values)X
+1135(per)X
+1261(pixel.)X
+1464(Scaleable)X
+1795(fonts)X
+1979(have)X
+2155(a)X
+2215(great)X
+576 2400(advantage)N
+923(\320)X
+1024(you)X
+1165(need)X
+1337(only)X
+1499(one)X
+1635(font)X
+1784(description)X
+2160(\256le)X
+2282(for)X
+576 2496(all)N
+690(magni\256cations)X
+1195(of)X
+1296(that)X
+1450(font.)X
+1654(Actually,)X
+1985(P)X
+8 s 8 xH F
+2029(OST)X
+10 s 10 xH F
+2150(S)X
+8 s 8 xH F
+2194(CRIPT)X
+10 s 10 xH F
+576 2592(outline)N
+830(fonts)X
+1022(are)X
+1153(more)X
+1350(scaleable)X
+1677(even)X
+1860(than)X
+2029(the)X
+0 f F
+2158(META-)X
+576 2688(FONT)N
+1 f F
+781(originals)X
+1101(for)X
+1235(another)X
+1516(reason.)X
+1786(In)X
+1893([9],)X
+2048(it)X
+2133(is)X
+2227(said,)X
+576 2784(\252Caution:)N
+930(before)X
+1179(using)X
+1395(this)X
+1553(`)X
+3 f F
+1580(at)X
+1 f F
+1647(')X
+1716(feature)X
+1982(\(i.e.)X
+2149(scaling)X
+576 2880(downward)N
+944(or)X
+1040(upward\))X
+1337(you)X
+1486(should)X
+1728(check)X
+1946(to)X
+2038(make)X
+2242(sure)X
+576 2976(that)N
+717(your)X
+885(typesetter)X
+1218(supports)X
+1510(the)X
+1629(font)X
+1779(at)X
+1857(the)X
+1975(size)X
+2120(in)X
+2202(ques-)X
+576 3072(tion;)N
+747(T)X
+788 3088(E)N
+829 3072(X)N
+913(will)X
+1063(accept)X
+1295(any)X
+47 f F
+1437(\341)X
+1 f F
+1463(desired)X
+1721(size)X
+47 f F
+1846(\361)X
+1 f F
+1898(that)X
+2044(is)X
+2123(positive)X
+576 3168(and)N
+720(less)X
+868(than)X
+1034(2048)X
+1222(points,)X
+1465(but)X
+1595(the)X
+1721(\256nal)X
+1891(output)X
+2123(will)X
+2274(not)X
+576 3264(be)N
+689(right)X
+877(unless)X
+1114(the)X
+1250(scaled)X
+1489(font)X
+1656(really)X
+1877(is)X
+1968(available)X
+2296(on)X
+576 3360(your)N
+749(printing)X
+1027(device.\272)X
+1318(Getting)X
+1583(P)X
+8 s 8 xH F
+1627(OST)X
+10 s 10 xH F
+1748(S)X
+8 s 8 xH F
+1792(CRIPT)X
+10 s 10 xH F
+1999(outline)X
+2246(ver-)X
+576 3456(sions)N
+783(of)X
+0 f F
+893(METAFONT)X
+1 f F
+1277(fonts)X
+1480(is)X
+1576(possible)X
+1882(since)X
+2091(both)X
+2277(are)X
+576 3552(based)N
+788(on)X
+897(Be)X
+955(\302zier)X
+1137(curves.)X
+1396(Doing)X
+1625(so)X
+1725(makes)X
+1959(fonts)X
+2148(hereto-)X
+576 3648(fore)N
+738(available)X
+1061(only)X
+1236(on)X
+1349(T)X
+1390 3664(E)N
+1431 3648(X)N
+1522(and)X
+1671(other)X
+1869(DVI-based)X
+2255(for-)X
+576 3744(matters)N
+839(available)X
+1156(on)X
+9 f F
+1265(ditroff)X
+1 f F
+1491(and)X
+1633(other)X
+1824(formatters)X
+2180(which)X
+576 3840(have)N
+765(evolved)X
+1056(to)X
+1155(or)X
+1259(have)X
+1448(been)X
+1637(designed)X
+1959(for)X
+2090(use)X
+2234(with)X
+576 3936(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+987(printers.)X
+3 f F
+576 4128(3.2)N
+736(Goals.)X
+1 f F
+999(Based)X
+1223(on)X
+1331(the)X
+1457(observations)X
+1891(of)X
+1987(Section)X
+2256(3.1,)X
+576 4224(the)N
+704(goal)X
+872(of)X
+969(this)X
+1114(research)X
+1413(is)X
+1496(to)X
+1588(produce)X
+1877(a)X
+0 f F
+1943(METAFONT)X
+1 f F
+2314(to)X
+576 4320(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+1000(compiler,)X
+9 f F
+1341(mf2ps)X
+1 f F
+1558(.)X
+1612(Its)X
+1726(operational)X
+2121(require-)X
+576 4416(ments)N
+787(are)X
+906(items)X
+1099(1)X
+1159(through)X
+1428(5:)X
+639 4560(1.)N
+735(It)X
+831(must)X
+1033(be)X
+1156(possible)X
+1465(to)X
+1574(translate)X
+1893(any)X
+2056(legitimate)X
+0 f F
+735 4656(METAFONT)N
+1 f F
+1102(font)X
+1257(de\256nition)X
+1589(at)X
+1673(any)X
+1814(given)X
+2017(design)X
+2251(size)X
+735 4752(into)N
+879(a)X
+935(P)X
+8 s 8 xH F
+979(OST)X
+10 s 10 xH F
+1100(S)X
+8 s 8 xH F
+1144(CRIPT)X
+10 s 10 xH F
+1346(outline)X
+1588(font.)X
+639 4896(2.)N
+735(The)X
+894(resulting)X
+1208(P)X
+8 s 8 xH F
+1252(OST)X
+10 s 10 xH F
+1373(S)X
+8 s 8 xH F
+1417(CRIPT)X
+10 s 10 xH F
+1633(outline)X
+1889(font)X
+2052(should)X
+2300(be)X
+735 4992(arbitrarily)N
+1076(scaleable.)X
+639 5136(3.)N
+735(The)X
+883(resulting)X
+1186(fonts)X
+1369(should)X
+1606(look)X
+1772(like)X
+1916(the)X
+2038(bitmapped)X
+735 5232(fonts)N
+915(when)X
+1109(printed)X
+1356(on)X
+1456(the)X
+1574(same)X
+1759(printer.)X
+639 5376(4.)N
+735(The)X
+894(resulting)X
+1208(P)X
+8 s 8 xH F
+1252(OST)X
+10 s 10 xH F
+1373(S)X
+8 s 8 xH F
+1417(CRIPT)X
+10 s 10 xH F
+1633(outline)X
+1889(font)X
+2052(should)X
+2300(be)X
+735 5472(more)N
+944(compact)X
+2 f F
+1260(when)X
+1473(sent)X
+1646(to)X
+1752(the)X
+1894(printer)X
+1 f F
+2159(than)X
+2340(a)X
+735 5568(P)N
+8 s 8 xH F
+779(OST)X
+10 s 10 xH F
+900(S)X
+8 s 8 xH F
+944(CRIPT)X
+10 s 10 xH F
+1168(version)X
+1446(of)X
+1555(the)X
+0 f F
+1695(METAFONT)X
+1 f F
+2036(-generated)X
+735 5664(bitmapped)N
+1093(font.)X
+2520 672(The)N
+2681(fourth)X
+2913(requirement)X
+3337(deserves)X
+3650(a)X
+3722(bit)X
+3842(of)X
+3946(explanation)X
+2520 768(and)N
+2669(quali\256cation.)X
+3142(First)X
+3321(note)X
+3492(that)X
+3645(what)X
+3833(is)X
+3918(compared)X
+4267(is)X
+2520 864(what)N
+2737(is)X
+2851(sent)X
+3041(to)X
+3164(the)X
+3323(printer.)X
+3638(Certainly)X
+3998(there)X
+4221(are)X
+2520 960(compressed)N
+2922(versions)X
+3212(of)X
+3301(the)X
+3421(bitmapped)X
+3781(fonts)X
+3963(that)X
+4105(reduce)X
+2520 1056(the)N
+2651(disk)X
+2817(storage)X
+3082(requirements)X
+3535(of)X
+3636(the)X
+3768(bitmapped)X
+4140(fonts.)X
+2520 1152(However,)N
+2869(they)X
+3041(must)X
+3230(be)X
+3340(uncompressed)X
+3832(before)X
+4071(sending)X
+2520 1248(them)N
+2708(to)X
+2798(most)X
+2981(printers.)X
+3274(It)X
+3351(is)X
+3432(the)X
+3558(printer's)X
+3858(storage)X
+4118(that)X
+4267(is)X
+2520 1344(limited;)N
+2789(generally)X
+3109(disk)X
+3263(space)X
+3463(is)X
+3537(in)X
+3620(abundance.)X
+4005(However,)X
+2520 1440(since)N
+2716(printers)X
+2992(these)X
+3188(days)X
+3367(are)X
+3498(general)X
+3767(purpose)X
+4053(comput-)X
+2520 1536(ers,)N
+2655(what)X
+2832(a)X
+2889(printer)X
+3124(accepts)X
+3382(may)X
+3540(in)X
+3622(fact)X
+3763(be)X
+3859(a)X
+3915(compression)X
+2520 1632(that)N
+2660(it)X
+2724(has)X
+2851(been)X
+3023(programmed)X
+3453(to)X
+3535(undo.)X
+2679 1728(Now)N
+2867(for)X
+2993(the)X
+3123(case)X
+3294(in)X
+3388(which)X
+3616(disk)X
+3781(space)X
+3992(is)X
+4077(of)X
+4177(con-)X
+2520 1824(cern,)N
+2701(the)X
+2821(comparison)X
+3217(should)X
+3452(still)X
+3593(be)X
+3690(relative)X
+3952(to)X
+4035(printable)X
+2520 1920(versions.)N
+2844(There)X
+3069(exist)X
+3258(algorithms,)X
+3658(e.g.)X
+3812(that)X
+3970(of)X
+4075(Lempel)X
+2520 2016(and)N
+2662(Ziv)X
+2799([13])X
+2959(that)X
+3104(can)X
+3241(be)X
+3342(used)X
+3514(to)X
+3601(compress)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH F
+2520 2112(outline)N
+2789(fonts)X
+2996(which)X
+3239(are,)X
+3405(after)X
+3600(all,)X
+3747(just)X
+3910(ASCII)X
+4167(\256les.)X
+2520 2208(Therefore,)N
+2906(in)X
+3016(order)X
+3234(not)X
+3384(to)X
+3494(have)X
+3694(a)X
+3778(contest)X
+4052(between)X
+2520 2304(compression)N
+2947(algorithms,)X
+3331(the)X
+3451(uncompressed)X
+3932(versions)X
+4221(are)X
+2520 2400(compared.)N
+2886(Furthermore,)X
+3336(in)X
+3427(order)X
+3626(not)X
+3757(to)X
+3848(have)X
+4029(a)X
+4093(contest)X
+2520 2496(between)N
+2840(di)X
+2902 MX
+(ff)138 606 oc
+2950(erent)X
+3163(kinds)X
+3388(of)X
+3507(printers)X
+3804(that)X
+3977(may)X
+4168(have)X
+2520 2592(di)N
+2582 MX
+(ff)138 606 oc
+2630(ering)X
+2819(font)X
+2972(representations,)X
+3501(P)X
+8 s 8 xH F
+3545(OST)X
+10 s 10 xH F
+3666(S)X
+8 s 8 xH F
+3710(CRIPT)X
+10 s 10 xH F
+3915(outline)X
+4160(fonts)X
+2520 2688(are)N
+2655(compared)X
+3009(to)X
+3108(P)X
+8 s 8 xH F
+3152(OST)X
+10 s 10 xH F
+3273(S)X
+8 s 8 xH F
+3317(CRIPT)X
+10 s 10 xH F
+3536(bitmapped)X
+3911(fonts.)X
+4128(When)X
+2520 2784(considering)N
+2916(disk)X
+3071(space,)X
+3292(the)X
+3412(fact)X
+3554(that)X
+3695(one)X
+3832(bitmapped)X
+4191(font)X
+2520 2880(is)N
+2600(needed)X
+2855(for)X
+2976(each)X
+3151(magni\256cation)X
+3618(is)X
+3698(taken)X
+3899(into)X
+4050(account.)X
+2520 2976(Thus,)N
+2721(the)X
+2840(interest)X
+3097(is)X
+3171(in)X
+3254(comparing)X
+3618(the)X
+3737(size)X
+3882(of)X
+3969(a)X
+4025(scaleable)X
+2520 3072(outline)N
+2767(font)X
+2921(to)X
+3008(the)X
+3131(total)X
+3298(storage)X
+3555(for)X
+3674(the)X
+3797(bitmapped)X
+4160(fonts)X
+2520 3168(for)N
+2634(all)X
+2734(magni\256cations)X
+3225(of)X
+3312(a)X
+3368(given)X
+3566(design)X
+3795(size.)X
+2583 3312(5.)N
+2679(The)X
+2838(resulting)X
+3152(P)X
+8 s 8 xH F
+3196(OST)X
+10 s 10 xH F
+3317(S)X
+8 s 8 xH F
+3361(CRIPT)X
+10 s 10 xH F
+3577(outline)X
+3833(font)X
+3996(should)X
+4244(be)X
+2679 3408(more)N
+2882(compact)X
+3192(than)X
+3368(the)X
+3504(total)X
+3684(of)X
+3789(the)X
+3925(sizes)X
+4118(of)X
+4222(the)X
+2679 3504(P)N
+8 s 8 xH F
+2723(OST)X
+10 s 10 xH F
+2844(S)X
+8 s 8 xH F
+2888(CRIPT)X
+10 s 10 xH F
+3104(versions)X
+3405(of)X
+3506(the)X
+0 f F
+3639(METAFONT)X
+1 f F
+3980(-generated)X
+2679 3600(bitmapped)N
+3055(fonts)X
+3253(at)X
+3348(each)X
+3533(available)X
+3860(magni\256cation.)X
+2679 3696(Even)N
+2872(this)X
+3015(comparison)X
+3417(is)X
+3498(not)X
+3629(completely)X
+4014(fair)X
+4155(since)X
+2679 3792(only)N
+2862(speci\256c)X
+3147(magni\256cations)X
+3658(are)X
+3797(provided,)X
+4142(while)X
+2679 3888(the)N
+2797(P)X
+8 s 8 xH F
+2841(OST)X
+10 s 10 xH F
+2962(S)X
+8 s 8 xH F
+3006(CRIPT)X
+10 s 10 xH F
+3208(font)X
+3357(is)X
+3430(arbitrarily)X
+3771(scaleable.)X
+2679 4032(Observe)N
+2993(\256nally,)X
+3263(that)X
+3429(the)X
+3573(comparison)X
+3993(is)X
+4093(against)X
+2520 4128(magni\256cations)N
+3038(of)X
+3151(a)X
+3233(single)X
+3470(design)X
+3725(size)X
+3896(since)X
+4107(purists)X
+2520 4224(would)N
+2741(argue)X
+2941(that)X
+3082(there)X
+3264(should)X
+3498(be)X
+3596(a)X
+3654(di)X
+3716 MX
+(ff)138 606 oc
+3764(erent)X
+3947(outline)X
+4191(font)X
+2520 4320(for)N
+2642(each)X
+2818(design)X
+3055(size.)X
+3248(Since)X
+3454(there)X
+3642(are)X
+3768(those)X
+3964(that)X
+4111(do)X
+4218(not)X
+2520 4416(require)N
+2768(this)X
+2903(purity,)X
+3134(the)X
+3252(various)X
+3508(design)X
+3737(sizes)X
+3913(will)X
+4058(be)X
+4155(com-)X
+2520 4512(pared)N
+2719(also.)X
+2679 4608(The)N
+2824(software)X
+3121(engineering)X
+3520(goal)X
+3678(is)X
+3751(item)X
+3913(6.)X
+2583 4752(6.)N
+9 f F
+2679(mf2ps)X
+1 f F
+2916(should)X
+3149(be)X
+3245(written)X
+3492(as)X
+3579(much)X
+3777(as)X
+3864(possible)X
+4147(using)X
+2679 4848(the)N
+2801(existing)X
+0 f F
+3078(METAFONT)X
+1 f F
+3443(program)X
+3739(both)X
+3904(to)X
+3989(save)X
+4155(work)X
+2679 4944(and)N
+2831(to)X
+2929(ensure)X
+3175(that)X
+3331(all)X
+0 f F
+3447(METAFONT)X
+1 f F
+3788(-acceptable)X
+4191(font)X
+2679 5040(de\256nitions)N
+3036(are)X
+3155(handled.)X
+2520 5184(The)N
+2679(evaluation)X
+3047(of)X
+3148(the)X
+3280(results)X
+3523(will)X
+3681(be)X
+3791(done)X
+3982(relative)X
+4258(to)X
+2520 5280(these)N
+2705(goals.)X
+3 f F
+2520 5472(3.3)N
+2680(Previous)X
+2999(attempts.)X
+1 f F
+3359(Leslie)X
+3576(Carr)X
+3741(wrote)X
+3946(a)X
+4004(collection)X
+2520 5568(of)N
+2613(programs)X
+2942(to)X
+3030(produce)X
+3315(P)X
+8 s 8 xH F
+3359(OST)X
+10 s 10 xH F
+3480(S)X
+8 s 8 xH F
+3524(CRIPT)X
+10 s 10 xH F
+3732(outline)X
+3979(fonts)X
+4164(from)X
+0 f F
+2520 5664(METAFONT)N
+1 f F
+2884(fonts)X
+3067(in)X
+3152(1987.)X
+3355(Carr's)X
+3580(programs)X
+3907(take)X
+4065(as)X
+4156(input)X
+2465 6084(4)N
+
+%%Page: 5 6
+5 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+576 672(the)N
+2 f F
+723(log)X
+1 f F
+874(output)X
+1127(\256le)X
+1277(of)X
+0 f F
+1392(METAFONT)X
+1 f F
+1781(which)X
+2025(contains)X
+2340(a)X
+576 768(description)N
+956(of)X
+1047(all)X
+1151(the)X
+1273(paths)X
+1466(that)X
+0 f F
+1610(METAFONT)X
+1 f F
+1975(traces)X
+2187(out)X
+2314(in)X
+576 864(drawing)N
+859(a)X
+915(character.)X
+735 960(Carr)N
+908(has)X
+1045(problems)X
+1373(of)X
+1470(information)X
+1878(loss)X
+2033(as)X
+2131(a)X
+2198(result)X
+576 1056(of)N
+666(not)X
+791(having)X
+1032(entered)X
+1291(into)X
+1437(the)X
+0 f F
+1557(METAFONT)X
+1 f F
+1920(program.)X
+2234(This)X
+576 1152(is)N
+650(the)X
+769(reason)X
+1001(why)X
+1161(Carr's)X
+1384(characters)X
+1733(are)X
+1854(poor)X
+2023(looking.)X
+2309(In)X
+576 1248([5],)N
+721(Carr)X
+895(observes,)X
+1227(\252In)X
+1361(the)X
+5 f F
+1490(cmr10)X
+1 f F
+1761(font,)X
+1941(the)X
+2 f F
+2070(crisp)X
+1 f F
+2260(pen)X
+576 1344(has)N
+707(diameter)X
+1013(zero,)X
+1197(so)X
+1293(serifs)X
+1492(have)X
+1669(square)X
+1904(corners.)X
+2186(In)X
+2278(the)X
+5 f F
+576 1440(cmtt10)N
+1 f F
+903(font,)X
+2 f F
+1091(crisp)X
+1 f F
+1290(is)X
+1382(set)X
+1510(to)X
+1611(a)X
+1686(larger)X
+1912(value)X
+2124(and)X
+2278(the)X
+576 1536(serifs)N
+794(end)X
+954(in)X
+1060(semicircles.)X
+1485(Because)X
+1797(the)X
+1939(shape)X
+2166(of)X
+2278(the)X
+576 1632(current)N
+839(pen)X
+989(can)X
+1135(NOT)X
+1334(be)X
+1444(taken)X
+1652(into)X
+1810(account)X
+2094(in)X
+2190(P)X
+8 s 8 xH F
+2234(OST-)X
+10 s 10 xH F
+576 1728(S)N
+8 s 8 xH F
+620(CRIPT)X
+10 s 10 xH F
+802(,)X
+852(these)X
+1047(di)X
+1109 MX
+(ff)138 606 oc
+1157(erences)X
+1429(in)X
+1521(the)X
+1649(characters)X
+2007(shapes)X
+2252(will)X
+576 1824(not)N
+711(be)X
+820(seen.)X
+1015(This)X
+1189(is)X
+1274(a)X
+3 f F
+1342(fundamental)X
+1 f F
+1809(problem:)X
+2130(given)X
+2340(a)X
+576 1920(path)N
+2 f F
+747(p)X
+1 f F
+820(and)X
+969(a)X
+1038(pen)X
+2 f F
+1187(q)X
+1 f F
+1260(\(whose)X
+1525(shape)X
+1741(is)X
+1827(also)X
+1989(an)X
+2099(arbitrary)X
+576 2016(path\),)N
+0 f F
+782(METAFONT)X
+1 f F
+1144(e)X
+1180 MX
+(ff)138 606 oc
+1228(ectively)X
+1503(envelopes)X
+2 f F
+1844(p)X
+1 f F
+1904(with)X
+2066(respect)X
+2314(to)X
+576 2112(the)N
+702(shape)X
+914(of)X
+2 f F
+1010(q)X
+1 f F
+(;)S
+1101(P)X
+8 s 8 xH F
+1145(OST)X
+10 s 10 xH F
+1266(S)X
+8 s 8 xH F
+1310(CRIPT)X
+10 s 10 xH F
+1521(can)X
+1662(do)X
+1771(nothing)X
+2044(other)X
+2238(than)X
+576 2208(stroke)N
+815(it)X
+902(to)X
+1007(produce)X
+1309(a)X
+1388(line)X
+1551(of)X
+1661(constant)X
+1970(width.)X
+2234(This)X
+576 2304(incompatibility)N
+1099(comes)X
+1339(to)X
+1436(light)X
+1617(when)X
+1826(the)X
+1959(width)X
+2176(of)X
+2278(the)X
+576 2400(pen)N
+712(is)X
+785(signi\256cant)X
+1138(to)X
+1220(the)X
+1338(shape)X
+1541(of)X
+1628(the)X
+1746(character\272.)X
+735 2496(In)N
+838(order)X
+1044(to)X
+1142(avoid)X
+1356(this)X
+1507(problem,)X
+9 f F
+1832(mf2ps)X
+1 f F
+2086(\256nds)X
+2278(the)X
+576 2592(internally)N
+928(generated)X
+1285(envelope,)X
+1639(which)X
+1879(is)X
+1976(used)X
+2167(as)X
+2278(the)X
+576 2688(boundaries)N
+955(of)X
+1049(the)X
+1174(inked)X
+1380(region,)X
+1633(and)X
+1777(uses)X
+1943(this)X
+2086(envelope)X
+576 2784(as)N
+678(the)X
+811(outline.)X
+1087(It)X
+1170(does)X
+1351(not)X
+1487(matter,)X
+1746(then,)X
+1938(what)X
+2128(the)X
+2260(pen)X
+576 2880(path)N
+734(and)X
+870(the)X
+988(pen)X
+1124(shape)X
+1327(are.)X
+735 2976(More)N
+959(recently,)X
+1289(during)X
+1549(the)X
+1698(time)X
+1891(that)X
+2062(the)X
+2211(work)X
+576 3072(described)N
+931(herein)X
+1179(was)X
+1351(being)X
+1576(done,)X
+1799(there)X
+2007(were)X
+2211(other)X
+576 3168(e)N
+612 MX
+(ff)138 606 oc
+660(orts)X
+800(with)X
+962(similar)X
+1204(goals.)X
+735 3264(Doug)N
+939(Henderson)X
+1313([6])X
+1433(obtained)X
+1735(outline)X
+1983(font)X
+2138(charac-)X
+576 3360(ters)N
+714(by)X
+816(modifying)X
+1171(the)X
+5 f F
+1291(endchar)X
+1 f F
+1649(macro,)X
+1892(which)X
+2110(is)X
+2184(called)X
+576 3456(for)N
+693(each)X
+864(character)X
+1183(after)X
+1354(the)X
+1476(bitmap)X
+1722(is)X
+1799(generated,)X
+2156(to)X
+2242(take)X
+576 3552(the)N
+706(bitmap)X
+960(for)X
+1086(the)X
+1216(character)X
+1544(and)X
+1692(white)X
+1901(out)X
+2034(all)X
+2145(but)X
+2278(the)X
+576 3648(bits)N
+713(on)X
+815(the)X
+935(edge.)X
+1150(The)X
+1298(number)X
+1566(of)X
+1656(bits)X
+1794(left)X
+1924(on)X
+2027(the)X
+2148(edge)X
+2323(is)X
+576 3744(varied)N
+803(according)X
+1146(to)X
+1234(the)X
+1357(resolution)X
+1702(of)X
+1794(the)X
+1917(bitmap.)X
+2184(These)X
+576 3840(outlines,)N
+870(being)X
+1069(bitmapped,)X
+1448(are)X
+1568(just)X
+1704(as)X
+1792(unscaleable)X
+2188(as)X
+2277(are)X
+576 3936(the)N
+694(bitmaps)X
+967(for)X
+1081(the)X
+1199(\256lled-in)X
+1472(characters.)X
+735 4032(Neil)N
+898(Raine)X
+1110(and)X
+1251(Graham)X
+1535(Toal)X
+1708([12])X
+1868(have)X
+2046(developed)X
+576 4128(software)N
+876(that)X
+1019(takes)X
+1206(the)X
+1326(bitmaps)X
+1601(and)X
+1739(rediscovers)X
+2127(the)X
+2247(out-)X
+576 4224(lines)N
+749(by)X
+851(tracing)X
+1096(the)X
+1216(pixels.)X
+1450(The)X
+1598(outlines)X
+1874(that)X
+2017(are)X
+2139(used)X
+2309(as)X
+576 4320(the)N
+706(basis)X
+898(for)X
+1024(P)X
+8 s 8 xH F
+1068(OST)X
+10 s 10 xH F
+1189(S)X
+8 s 8 xH F
+1233(CRIPT)X
+10 s 10 xH F
+1447(fonts)X
+1639(are,)X
+1790(for)X
+1916(the)X
+2045(most)X
+2231(part,)X
+576 4416(generated)N
+911(from)X
+1089(bitmaps)X
+1364(at)X
+1444(2400)X
+1626(dpi.)X
+1770(They)X
+1957(\256rst)X
+2103(generate)X
+576 4512(RISC)N
+801(OS)X
+951(outline)X
+1221(fonts)X
+1429(which)X
+1673(are)X
+1820(screen)X
+2074(fonts)X
+2282(for)X
+576 4608(Acorn's)N
+874(Archimedes)X
+1301(RISC)X
+1517(computer.)X
+1880(These)X
+2112(are)X
+2251(true)X
+576 4704(scaleable)N
+907(outlines.)X
+1216(Then,)X
+1437(these)X
+1637(outlines)X
+1925(are)X
+2059(converted)X
+576 4800(into)N
+728(P)X
+8 s 8 xH F
+772(OST)X
+10 s 10 xH F
+893(S)X
+8 s 8 xH F
+937(CRIPT)X
+10 s 10 xH F
+1147(format.)X
+1409(Toal)X
+1584(says)X
+1751(that)X
+1900(the)X
+2027(the)X
+2154(quality)X
+576 4896(of)N
+666(the)X
+787(fonts)X
+970(produced)X
+1292(is)X
+1368(not)X
+1493(too)X
+1618(great)X
+1802(at)X
+1883(low)X
+2025(resolutions)X
+576 4992(because)N
+871(of)X
+978(shortcomings)X
+1449(in)X
+1551(Adobe's)X
+1863(rendering)X
+2211(algo-)X
+576 5088(rithm.)N
+802(He)X
+929(adds)X
+1109(that)X
+1262(at)X
+1353(1200)X
+1546(dpi)X
+1681(on)X
+1794(a)X
+1862(phototypesetter,)X
+576 5184(they)N
+759(are)X
+903(indistinguishable)X
+1494(from)X
+0 f F
+1695(METAFONT)X
+1 f F
+2036(-generated)X
+576 5280(bitmapped)N
+934(fonts.)X
+1134(These)X
+1346(authors)X
+1602(suspect)X
+1858(that)X
+1998(information)X
+576 5376(that)N
+720(is)X
+797(critical)X
+1044(for)X
+1163(good)X
+1348(appearance)X
+1736(is)X
+1814(lost)X
+1954(when)X
+2153(tracing)X
+576 5472(an)N
+673(outline)X
+916(on)X
+1017(a)X
+1074(bitmap)X
+1317(generated)X
+1650(from)X
+1826(a)X
+1882(mathematically)X
+576 5568(described)N
+909(envelope.)X
+1244(Better)X
+1466(results)X
+1701(should)X
+1940(be)X
+2042(obtainable)X
+576 5664(using)N
+769(the)X
+887(original)X
+1156(envelope.)X
+2679 672(John)N
+2864(Hobby)X
+3116([7])X
+3244(has)X
+3385(developed)X
+3750(a)X
+3821(program)X
+4128(called)X
+2520 768(MetaPost,)N
+2865(which)X
+3083(translates)X
+3408(from)X
+3586(an)X
+3684(extension)X
+4013(of)X
+0 f F
+4102(META-)X
+2520 864(FONT)N
+1 f F
+2725(into)X
+2889(P)X
+8 s 8 xH F
+2933(OST)X
+10 s 10 xH F
+3054(S)X
+8 s 8 xH F
+3098(CRIPT)X
+10 s 10 xH F
+3320(cubic)X
+3534(splines)X
+3796(and)X
+3953(commands.)X
+2520 960(His)N
+2678(goal)X
+2863(was)X
+3035(to)X
+3144(turn)X
+0 f F
+3319(METAFONT)X
+1 f F
+3706(into)X
+3876(a)X
+3958(system)X
+4226(for)X
+2520 1056(typesetting)N
+2900(general)X
+3166(graphics,)X
+3488(including)X
+3820(embedded)X
+4180(text.)X
+2520 1152(His)N
+2653(approach,)X
+2990(similar)X
+3234(to)X
+3318(ours,)X
+3498(was)X
+3645(to)X
+3729(modify)X
+3982(the)X
+0 f F
+4102(META-)X
+2520 1248(FONT)N
+1 f F
+2709(program)X
+3005(into)X
+3154(what)X
+3335(he)X
+3436(desired.)X
+3733(Be\256tting)X
+4037(his)X
+4155(more)X
+2520 1344(general)N
+2800(goals,)X
+3032(besides)X
+3311(modifying)X
+3687(the)X
+3828(output,)X
+4095(he)X
+4213(has)X
+2520 1440(added)N
+2734(new)X
+2890(commands)X
+3259(to)X
+3343(the)X
+3463(input)X
+3650(language.)X
+3983(Moreover,)X
+2520 1536(his)N
+2646(translation)X
+3017(appears)X
+3296(to)X
+3391(be)X
+3500(a)X
+3569(direct)X
+3784(mapping)X
+4096(from)X
+4284(a)X
+0 f F
+2520 1632(METAFONT)N
+1 f F
+2893(command)X
+3241(sequence)X
+3568(to)X
+3662(a)X
+3731(P)X
+8 s 8 xH F
+3775(OST)X
+10 s 10 xH F
+3896(S)X
+8 s 8 xH F
+3940(CRIPT)X
+10 s 10 xH F
+4155(com-)X
+2520 1728(mand)N
+2719(sequence.)X
+3075(The)X
+3221(result)X
+3420(is)X
+3494(a)X
+3551(program)X
+3844(more)X
+4030(powerful)X
+2520 1824(than)N
+9 f F
+2680(mf2ps)X
+1 f F
+2897(.)X
+2957(It)X
+3026(will)X
+3170(be)X
+3266(interesting)X
+3624(to)X
+3707(compare)X
+4005(fonts)X
+4186(pro-)X
+2520 1920(duced)N
+2736(by)X
+2840(MetaPost)X
+3166(and)X
+9 f F
+3308(mf2ps)X
+1 f F
+3548(for)X
+3665(appearance)X
+4051(and)X
+4190(per-)X
+2520 2016(formance.)N
+3 f F
+2520 2208(3.4)N
+2680(Methodology.)X
+1 f F
+3210(There)X
+3439(are)X
+3579(a)X
+3656(number)X
+3942(of)X
+4051(ways)X
+4258(to)X
+2520 2304(build)N
+2704(the)X
+2822(compiler.)X
+3147(They)X
+3332(include)X
+2583 2448(1.)N
+2679(writing)X
+2955(the)X
+3098(whole)X
+3339(compiler)X
+3669(from)X
+0 f F
+3871(METAFONT)X
+1 f F
+4258(to)X
+2679 2544(P)N
+8 s 8 xH F
+2723(OST)X
+10 s 10 xH F
+2844(S)X
+8 s 8 xH F
+2888(CRIPT)X
+10 s 10 xH F
+3099(from)X
+3284(scratch:)X
+3563(This)X
+3733(has)X
+3868(the)X
+3994(advantage)X
+2679 2640(that)N
+2822(one)X
+2961(does)X
+3131(not)X
+3256(have)X
+3431(to)X
+3516(get)X
+3637(into)X
+3784(another)X
+4048(person's)X
+2679 2736(software,)N
+3021(which)X
+3262(is)X
+3360(not)X
+3507(very)X
+3695(pleasant)X
+4003(when)X
+4222(the)X
+2679 2832(software)N
+2985(is)X
+3067(so)X
+3167(big.)X
+3318(On)X
+3445(the)X
+3573(other)X
+3768(hand,)X
+3974(one)X
+4120(would)X
+2679 2928(have)N
+2860(to)X
+2950(treat)X
+3121(the)X
+3247(whole)X
+3471(job)X
+3601(of)X
+3696(turning)X
+3955(mathemati-)X
+2679 3024(cal)N
+2795(equations)X
+3124(and)X
+3262(any)X
+3400(arbitrary)X
+3699(pen)X
+3838(shape)X
+4044(into)X
+4191(out-)X
+2679 3120(lines.)N
+2583 3264(2.)N
+2679(using)X
+2877(the)X
+0 f F
+3000(METAFONT)X
+1 f F
+3366(output)X
+3595(as)X
+3687(was)X
+3837(done)X
+4018(by)X
+4124(Leslie)X
+2679 3360(Carr)N
+2853([5]:)X
+3000(This)X
+3173(has)X
+3311(the)X
+3440(advantage)X
+3797(of)X
+3894(not)X
+4026(requiring)X
+2679 3456(delving)N
+2947(into)X
+3099(another's)X
+3426(software,)X
+3751(but)X
+3881(the)X
+4007(generated)X
+2679 3552(information)N
+3087(is)X
+3170(not)X
+3302(enough)X
+3568(if)X
+3647(one)X
+3793(wants)X
+4010(no)X
+4119(devia-)X
+2679 3648(tions)N
+2854(from)X
+3030(the)X
+3148(originals.)X
+2583 3792(3.)N
+2679(getting)X
+2927(into)X
+3078(the)X
+0 f F
+3203(METAFONT)X
+1 f F
+3571(program:)X
+3892(This)X
+4061(requires)X
+2679 3888(examining)N
+3039(the)X
+3159(internals)X
+3457(of)X
+3546(the)X
+0 f F
+3666(METAFONT)X
+1 f F
+4028(program.)X
+2679 3984(However,)N
+0 f F
+3070(METAFONT)X
+1 f F
+3487(and)X
+3679(P)X
+8 s 8 xH F
+3723(OST)X
+10 s 10 xH F
+3844(S)X
+8 s 8 xH F
+3888(CRIPT)X
+10 s 10 xH F
+4146(make)X
+2679 4080(liberal)N
+2936(use)X
+3095(of)X
+3214(Be)X
+3272(\302zier)X
+3477(curves)X
+3739(to)X
+3853(describe)X
+4173(non-)X
+2679 4176(circular)N
+2968(curves.)X
+3241(This)X
+3426(fact)X
+3591(makes)X
+3840(the)X
+3982(translation)X
+2679 4272(process)N
+2960(natural.)X
+3243(For)X
+3394(each)X
+3581(speci\256ed)X
+3905(path,)X
+0 f F
+4102(META-)X
+2679 4368(FONT)N
+1 f F
+2895(creates)X
+3170(control)X
+3448(points)X
+3694(for)X
+3840(the)X
+3990(associated)X
+2679 4464(cubic)N
+2877(spline)X
+3092(curves)X
+3326(before)X
+3556(calculating)X
+3932(the)X
+4054(bit)X
+4162(map.)X
+0 f F
+2679 4560(METAFONT)N
+1 f F
+3045(also)X
+3199(calculates)X
+3541(the)X
+3664(edge)X
+3842(o)X
+(ff)138 606 oc
+3930(sets)X
+4076(implied)X
+2679 4656(by)N
+2783(the)X
+2905(pen)X
+3045(shape.)X
+3271(Using)X
+3485(the)X
+3606(necessary)X
+3942(information)X
+2679 4752(one)N
+2820(can)X
+2957(get)X
+3080(a)X
+3141(new)X
+3300(set)X
+3414(of)X
+3506(control)X
+3758(points)X
+3978(that)X
+4124(de\256ne)X
+2679 4848(Be)N
+2737(\302zier)X
+2911(curves)X
+3142(and)X
+3278(lines)X
+3449(that)X
+3589(are)X
+3708(needed)X
+3956(to)X
+4038(build)X
+4222(the)X
+2679 4944(P)N
+8 s 8 xH F
+2723(OST)X
+10 s 10 xH F
+2844(S)X
+8 s 8 xH F
+2888(CRIPT)X
+10 s 10 xH F
+3090(outline)X
+3332(fonts.)X
+3 f F
+2520 5136(3.5)N
+2680(Software)X
+3013(engineering)X
+3439(of)X
+3532(solution.)X
+1 f F
+3868(The)X
+4019(idea)X
+4179(is)X
+4258(to)X
+2520 5232(split)N
+2693(the)X
+0 f F
+2827(METAFONT)X
+1 f F
+3204(program)X
+3512(into)X
+3672(front)X
+3864(end)X
+4016(and)X
+4168(back)X
+2520 5328(end.)N
+2687(The)X
+2843(front)X
+3030(end)X
+3178(takes)X
+0 f F
+3375(METAFONT)X
+1 f F
+3748(speci\256cation)X
+4185(of)X
+4284(a)X
+2520 5424(character,)N
+2869(magni\256cation,)X
+3361(and)X
+3509(point)X
+3705(size,)X
+3882(and)X
+4030(produces)X
+2520 5520(the)N
+2646(envelope,)X
+2984(i.e.,)X
+3131(the)X
+3258(outline)X
+3509(of)X
+3605(the)X
+3732(character,)X
+4077(and)X
+4222(the)X
+2520 5616(back)N
+2700(end)X
+2844(\256lls)X
+2990(the)X
+3115(envelope)X
+3432(with)X
+3601(bits.)X
+3763(Taking)X
+4017(the)X
+4142(exist-)X
+2520 5712(ing)N
+2646(front)X
+2827(end)X
+2968(and)X
+3109(writing)X
+3365(a)X
+3426(new)X
+3585(back)X
+3762(end)X
+3903(that)X
+4048(converts)X
+2465 6084(5)N
+
+%%Page: 6 7
+6 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+576 672(the)N
+697(envelope)X
+1010(into)X
+1157(a)X
+1216(P)X
+8 s 8 xH F
+1260(OST)X
+10 s 10 xH F
+1381(S)X
+8 s 8 xH F
+1425(CRIPT)X
+10 s 10 xH F
+1630(speci\256cation)X
+2058(of)X
+2148(an)X
+2247(out-)X
+576 768(line)N
+723(is)X
+804(our)X
+939(method)X
+1207(of)X
+1302(producing)X
+9 f F
+1657(mf2ps)X
+1 f F
+1874(.)X
+1922(The)X
+2075(bit-\256lling)X
+576 864(process)N
+837(will)X
+981(be)X
+1077(done)X
+1253(by)X
+1353(the)X
+1471(printer.)X
+735 960(In)N
+851(order)X
+1070(to)X
+1181(make)X
+1404(P)X
+8 s 8 xH F
+1448(OST)X
+10 s 10 xH F
+1569(S)X
+8 s 8 xH F
+1613(CRIPT)X
+10 s 10 xH F
+1845(fonts)X
+2055(arbitrarily)X
+576 1056(scaleable,)N
+919(we)X
+1041(have)X
+1221(to)X
+1311(ask)X
+1446(the)X
+9 f F
+1574(mf2ps)X
+1 f F
+1818(program)X
+2117(to)X
+2206(use)X
+2340(a)X
+576 1152(very)N
+755(large)X
+952(magni\256cation,)X
+1448(at)X
+1542(least)X
+1725(to)X
+1823(try)X
+1948(to)X
+2046(match)X
+2278(the)X
+576 1248(grid)N
+741(on)X
+857(which)X
+1089(Adobe)X
+1338(plots)X
+1528(the)X
+1661(points)X
+1891(of)X
+1993(its)X
+2103(outlines.)X
+576 1344(Adobe)N
+812(plots)X
+989(its)X
+1086(characters)X
+1435(on)X
+1538(a)X
+1597(1000)X
+47 f F
+1777(\264)X
+1 f F
+1841(1000)X
+2024(grid.)X
+2196(Thus,)X
+576 1440(Adobe's)N
+880(resolution)X
+1231(is)X
+1315(1000)X
+1506(dpm)X
+1679(\(dots)X
+1870(per)X
+2004(em\),)X
+2180(which)X
+576 1536(for)N
+704(design)X
+947(size)X
+1106(10)X
+1220(points)X
+1449(is)X
+1536(7200)X
+1730(dpi.)X
+1906(Unfortunately,)X
+0 f F
+576 1632(METAFONT)N
+1 f F
+917(,)X
+960(and)X
+1099(thus)X
+9 f F
+1257(mf2ps)X
+1 f F
+1497(accepts)X
+1757(resolutions)X
+2131(only)X
+2296(up)X
+576 1728(to)N
+662(3000)X
+846(dpi.)X
+992(The)X
+1141(results)X
+1374(should)X
+1611(be)X
+1712(su)X
+1783 MX
+(Fi)139 825 oc
+(cient)S
+2030(to)X
+2117(produce)X
+576 1824(fonts)N
+768(scaleable)X
+1094(up)X
+1205(to)X
+1298(magni\256cation)X
+1769(7)X
+1840(or)X
+1938(8,)X
+2029(which)X
+2256(is)X
+2340(a)X
+576 1920(reasonable)N
+940(range)X
+1139(in)X
+1221(typesetting.)X
+735 2016(This)N
+898(approach)X
+1214(helps)X
+1404(meet)X
+1581(goal)X
+1740(6)X
+1801(because)X
+2078(the)X
+2198(origi-)X
+576 2112(nal)N
+731(unchanged)X
+0 f F
+1136(METAFONT)X
+1 f F
+1534(program)X
+1863(is)X
+1973(used.)X
+2196(Thus,)X
+576 2208(exactly)N
+834(the)X
+958(same)X
+1149(input)X
+1339(is)X
+1418(accepted)X
+1727(as)X
+1821(in)X
+1910(the)X
+0 f F
+2035(METAFONT)X
+1 f F
+576 2304(program.)N
+898(There)X
+1116(is)X
+1198(some)X
+1396(extra)X
+1586(frosting)X
+1864(obtained)X
+2169(by)X
+2278(the)X
+576 2400(chosen)N
+834(approach.)X
+1185(The)X
+1346(program)X
+1654(for)X
+1784(translating)X
+0 f F
+2158(META-)X
+576 2496(FONT)N
+1 f F
+772(to)X
+865(P)X
+8 s 8 xH F
+909(OST)X
+10 s 10 xH F
+1030(S)X
+8 s 8 xH F
+1074(CRIPT)X
+10 s 10 xH F
+1287(is)X
+1370(actually)X
+1654(a)X
+1720(bit)X
+1834(of)X
+1931(an)X
+2037(interactive)X
+576 2592(environment)N
+1006(because)X
+1286(the)X
+1409(new)X
+1568(back)X
+1746(end)X
+1888(is)X
+1967(an)X
+2069(extension)X
+576 2688(of)N
+669(the)X
+793(existing)X
+1072(one.)X
+1234(This)X
+1401(existing)X
+1679(back-end)X
+1999(provides)X
+2300(an)X
+576 2784(interpreter)N
+990(that)X
+1189(executes)X
+1545(a)X
+0 f F
+1660(METAFONT)X
+1 f F
+2080(character)X
+576 2880(de\256nition)N
+926(and)X
+1086(displays)X
+1392(the)X
+1534(de\256ned)X
+1814(character)X
+2154(on)X
+2278(the)X
+576 2976(screen.)N
+824(Figure)X
+1055(3)X
+1117(shows)X
+1339(the)X
+1459(dump)X
+1663(of)X
+1752(a)X
+1810(screen)X
+2038(containing)X
+576 3072(several)N
+833(windows,)X
+1171(one)X
+1316(showing)X
+1616(a)X
+0 f F
+1681(METAFONT)X
+1 f F
+2050(de\256nition,)X
+576 3168(another)N
+850(showing)X
+1154(the)X
+1285(result)X
+1496(of)X
+1596(its)X
+1704(interpretation,)X
+2190(and)X
+2340(a)X
+576 3264(third)N
+781(containing)X
+1172(the)X
+1323(P)X
+8 s 8 xH F
+1367(OST)X
+10 s 10 xH F
+1488(S)X
+8 s 8 xH F
+1532(CRIPT)X
+10 s 10 xH F
+1767(translation)X
+2158(of)X
+2278(the)X
+576 3360(de\256nition)N
+915(in)X
+1010(the)X
+1141(\256rst)X
+1298(window.)X
+1609(If)X
+1697(software)X
+2008(to)X
+2104(interpret)X
+576 3456(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+1006(de\256nitions)X
+1382(were)X
+1578(available)X
+1907(here,)X
+2105(a)X
+2180(fourth)X
+576 3552(window)N
+856(could)X
+1057(be)X
+1156(set)X
+1268(up)X
+1371(showing)X
+1665(the)X
+1786(result)X
+1987(of)X
+2077(interpret-)X
+576 3648(ing)N
+719(the)X
+858(translation)X
+1237(of)X
+1345(the)X
+1484(third)X
+1676(window.)X
+1994(This)X
+2176(would)X
+576 3744(allow)N
+821(comparison)X
+1262(of)X
+1396(the)X
+1561(character's)X
+1982(appearances)X
+576 3840(without)N
+840(having)X
+1078(to)X
+1160(print)X
+1331(them)X
+1511(on)X
+1611(paper.)X
+3 f F
+576 4032(4)N
+676(The)X
+829(program)X
+1 f F
+576 4176(In)N
+672(the)X
+799(following)X
+1139(discussion,)X
+1522(the)X
+0 f F
+1650(METAFONT)X
+1 f F
+2021(program)X
+2323(is)X
+576 4272(often)N
+761(called)X
+973(just)X
+1108(\252)X
+0 f F
+1144(METAFONT)X
+1 f F
+1498(\272.)X
+735 4368(The)N
+0 f F
+882(METAFONT)X
+1 f F
+1245(program)X
+1540(has)X
+1670(been)X
+1845(written)X
+2095(so)X
+2189(that)X
+2332(it)X
+576 4464(can)N
+729(be)X
+846(made)X
+1061(to)X
+1164(run)X
+1312(e)X
+1348 MX
+(Fi)139 825 oc
+(ciently)S
+1672(in)X
+1774(a)X
+1850(wide)X
+2046(variety)X
+2309(of)X
+576 4560(operating)N
+911(environments)X
+1379(by)X
+1491(making)X
+1763(comparatively)X
+2255(few)X
+576 4656(changes.)N
+891(Such)X
+1087(\257exibility)X
+1433(is)X
+1522(possible)X
+1819(because)X
+2109(the)X
+2242(pro-)X
+576 4752(gram)N
+782(is)X
+876(written)X
+1145(in)X
+1249(the)X
+5 f F
+1389(WEB)X
+1 f F
+1575(language)X
+1907(which)X
+2145(is)X
+2240(at)X
+2340(a)X
+576 4848(higher)N
+818(level)X
+1011(than)X
+1186(Pascal.)X
+1448(The)X
+1609(preprocessing)X
+2091(step)X
+2256(that)X
+576 4944(converts)N
+5 f F
+872(WEB)X
+1 f F
+1040(to)X
+1126(Pascal)X
+1355(is)X
+1432(able)X
+1591(to)X
+1678(introduce)X
+2006(most)X
+2186(of)X
+2278(the)X
+576 5040(necessary)N
+943(re\256nements.)X
+1390(Semiautomatic)X
+1923(translation)X
+2314(to)X
+576 5136(other)N
+774(languages)X
+1129(is)X
+1216(also)X
+1379(feasible,)X
+1683(because)X
+1972(the)X
+2104(program)X
+576 5232(does)N
+751(not)X
+881(make)X
+1083(extensive)X
+1414(use)X
+1548(of)X
+1642(features)X
+1924(that)X
+2071(are)X
+2197(pecu-)X
+576 5328(liar)N
+703(to)X
+785(Pascal.)X
+735 5424(The)N
+893(program)X
+1198(has)X
+1339(two)X
+1493(important)X
+1838(variations:)X
+2210(First,)X
+576 5520(there)N
+771(is)X
+858(a)X
+928(long)X
+1104(and)X
+1253(slow)X
+1437(version)X
+1706(called)X
+9 s 9 xH 9 f F
+1931(INIMF)X
+10 s 10 xH 1 f F
+2127(,)X
+2180(which)X
+576 5616(does)N
+754(the)X
+884(extra)X
+1077(calculations)X
+1492(needed)X
+1752(to)X
+1846(initialize)X
+0 f F
+2158(META-)X
+576 5712(FONT)N
+1 f F
+741('s)X
+821(internal)X
+1088(tables.)X
+1317(It)X
+1388(has)X
+1517(to)X
+1601(be)X
+1699(run)X
+1828(\256rst.)X
+1994(It)X
+2065(initializes)X
+2520 672(everything)N
+2884(from)X
+3061(scratch)X
+3310(without)X
+3575(reading)X
+3837(a)X
+3895(base)X
+4060(\256le,)X
+4204(and)X
+2520 768(it)N
+2594(has)X
+2731(the)X
+2859(capability)X
+3205(of)X
+3301(dumping)X
+3614(a)X
+3679(base)X
+3851(\256le.)X
+4002(Secondly,)X
+2520 864(there)N
+2713(is)X
+2798(a)X
+2866(shorter)X
+3121(and)X
+3269(faster)X
+3480(production)X
+3859(version)X
+4128(called)X
+9 s 9 xH 9 f F
+2520 960(VIRMF)N
+10 s 10 xH 1 f F
+2744(,)X
+2785(which)X
+3002(cuts)X
+3151(the)X
+3269(initialization)X
+3693(to)X
+3775(a)X
+3831(bare)X
+3990(minimum.)X
+2520 1056(It)N
+2596(is)X
+2676(a)X
+2739(virgin)X
+2957(program)X
+3256(that)X
+3403(needs)X
+3613(to)X
+3702(input)X
+3893(a)X
+3957(base)X
+4128(\256le)X
+4258(in)X
+2520 1152(order)N
+2715(to)X
+2801(get)X
+2923(started.)X
+9 s 9 xH 9 f F
+3181(VIRMF)X
+10 s 10 xH 1 f F
+3429(typically)X
+3733(has)X
+3864(more)X
+4053(memory)X
+2520 1248(capacity)N
+2810(than)X
+9 s 9 xH 9 f F
+2970(INIMF)X
+10 s 10 xH 1 f F
+3166(,)X
+3208(because)X
+3485(it)X
+3551(does)X
+3720(not)X
+3845(need)X
+4020(the)X
+4141(space)X
+2520 1344(consumed)N
+2865(by)X
+2965(the)X
+3083(dumping)X
+3387(and)X
+3523(undumping)X
+3907(routines,)X
+4205(etc.)X
+2679 1440(In)N
+2792(order)X
+3008(to)X
+3116(generate)X
+3435(a)X
+3518(compiler)X
+3850(that)X
+4017(translates)X
+0 f F
+2520 1536(METAFONT)N
+1 f F
+2916(to)X
+3033(P)X
+8 s 8 xH F
+3077(OST)X
+10 s 10 xH F
+3198(S)X
+8 s 8 xH F
+3242(CRIPT)X
+10 s 10 xH F
+3424(,)X
+3499(additional)X
+3873(external)X
+4186(pro-)X
+2520 1632(cedures)N
+2807(and)X
+2964(functions)X
+3303(were)X
+3501(added)X
+3735(to)X
+3839(the)X
+0 f F
+3979(METAFONT)X
+1 f F
+2520 1728(program)N
+2829(so)X
+2937(that)X
+3094(it)X
+3175(runs)X
+3350(exactly)X
+3619(the)X
+3753(same)X
+3954(except)X
+4200(that)X
+2520 1824(when)N
+2715(it)X
+2780(asks)X
+2939(for)X
+3054(an)X
+3151(output)X
+3376(\256le)X
+3499(name,)X
+3715(it)X
+3781(asks)X
+3941(for)X
+4057(an)X
+4155(addi-)X
+2520 1920(tional)N
+2732(name,)X
+2956(for)X
+3080(the)X
+3208(extra)X
+3398(output)X
+3631(\256le)X
+3762(that)X
+3911(is)X
+3993(to)X
+4084(contain)X
+2520 2016(the)N
+2642(P)X
+8 s 8 xH F
+2686(OST)X
+10 s 10 xH F
+2807(S)X
+8 s 8 xH F
+2851(CRIPT)X
+10 s 10 xH F
+3057(outlines.)X
+3354(Those)X
+3575(changes)X
+3859(were)X
+4041(made)X
+4240(on)X
+2520 2112(the)N
+2654(Pascal)X
+2894(version)X
+3165(of)X
+3267(the)X
+9 s 9 xH 9 f F
+3400(VIRMF)X
+10 s 10 xH 1 f F
+3624(,)X
+3679(and)X
+3830(were)X
+4022(compiled)X
+2520 2208(later)N
+2687(with)X
+0 f F
+2853(METAFONT)X
+1 f F
+3194('s)X
+3277(library)X
+3516(\256les.)X
+3714(\(It)X
+3815(was)X
+3965(a)X
+4026(complete)X
+2520 2304(oversight)N
+2840(on)X
+2942(our)X
+3071(part)X
+3218(not)X
+3342(to)X
+3426(have)X
+3600(modi\256ed)X
+3906(the)X
+5 f F
+4025(WEB)X
+1 f F
+4190(ver-)X
+2520 2400(sion)N
+2683(of)X
+9 s 9 xH 9 f F
+2781(VIRMF)X
+10 s 10 xH 1 f F
+3005(.\))X
+3103(A)X
+3192(few)X
+3344(extra)X
+3536(lines)X
+3718(were)X
+3906(added)X
+4129(to)X
+4222(the)X
+2520 2496(macro)N
+2750(\256le,)X
+5 f F
+2901(plain.mf)X
+1 f F
+(.)S
+3333(These)X
+3553(act)X
+3675(as)X
+3770(\257ags,)X
+3969(identifying)X
+2520 2592(that)N
+0 f F
+2660(METAFONT)X
+1 f F
+3021(has)X
+3148(entered)X
+3405(some)X
+3594(of)X
+3681(the)X
+3799(macros.)X
+3 f F
+2520 2784(4.1)N
+2680(Basic)X
+2890(idea.)X
+1 f F
+3100(To)X
+3217(specify)X
+3478(a)X
+3543(character)X
+3868(in)X
+0 f F
+3959(METAFONT)X
+1 f F
+4300(,)X
+2520 2880(one)N
+2668(speci\256es)X
+2976(either)X
+3191(an)X
+3299(envelope)X
+3621(\(outline\))X
+3929(or)X
+4028(a)X
+4096(center-)X
+2520 2976(line)N
+2672(path)X
+2842(and)X
+2990(a)X
+3058(pen)X
+3207(head.)X
+3432(For)X
+3576(the)X
+3707(former,)X
+0 f F
+3979(METAFONT)X
+1 f F
+2520 3072(just)N
+2665(\256lls)X
+2814(the)X
+2942(envelope)X
+3262(with)X
+3434(bits.)X
+3619(For)X
+3760(the)X
+3888(latter,)X
+0 f F
+4102(META-)X
+2520 3168(FONT)N
+1 f F
+2719(pretends)X
+3025(that)X
+3179(it)X
+3257(is)X
+3345(drawing)X
+3643(the)X
+3776(character)X
+4107(with)X
+4284(a)X
+2520 3264(pen)N
+2680(of)X
+2791(speci\256ed)X
+3119(head)X
+3314(shape)X
+3540(following)X
+3894(the)X
+4035(speci\256ed)X
+2520 3360(path,)N
+2704(i.e.,)X
+2848(the)X
+2972(center)X
+3195(of)X
+3288(the)X
+3412(head)X
+3591(stays)X
+3778(on)X
+3885(the)X
+4010(path.)X
+4195(The)X
+2520 3456(distance)N
+2806(from)X
+2984(the)X
+3104(center-line)X
+3470(path)X
+3630(and)X
+3768(outer)X
+3955(edge)X
+4129(of)X
+4218(ink)X
+2520 3552(trail)N
+2671(left)X
+2800(by)X
+2902(pen)X
+3040(head)X
+3215(is)X
+3291(called)X
+3506(the)X
+2 f F
+3627(o)X
+(ff)138 495 oc
+3707(set)X
+1 f F
+3788(.)X
+3851(So,)X
+3978(for)X
+4095(a)X
+4154(char-)X
+2520 3648(acter,)N
+0 f F
+2726(METAFONT)X
+1 f F
+3096(follows)X
+3365(the)X
+3492(center-line)X
+3865(path)X
+4032(to)X
+4123(calcu-)X
+2520 3744(late)N
+2656(the)X
+2775(path)X
+2934(of)X
+3022(o)X
+(ff)138 606 oc
+3110(set)X
+3220(points,)X
+3456(i.e.,)X
+3595(the)X
+3714(envelope,)X
+4045(and)X
+4182(then)X
+2520 3840(\256lls)N
+2670(the)X
+2799(envelope)X
+3120(with)X
+3293(bits.)X
+3479(In)X
+3577(either)X
+3790(case,)X
+0 f F
+3979(METAFONT)X
+1 f F
+2520 3936(ends)N
+2687(up)X
+2787(\256lling)X
+2997(an)X
+3093(envelope.)X
+2679 4032(We)N
+2812(need)X
+2985(to)X
+3068(break)X
+0 f F
+3268(METAFONT)X
+1 f F
+3630(into)X
+3775(a)X
+3832(front)X
+4009(end)X
+4146(and)X
+4284(a)X
+2520 4128(back)N
+2703(end)X
+2850(at)X
+2938(the)X
+3066(point)X
+3260(just)X
+3405(after)X
+3583(the)X
+3711(envelope)X
+4031(has)X
+4168(been)X
+2520 4224(calculated.)N
+2893(Then)X
+3085(we)X
+3206(provide)X
+3479(a)X
+3543(new)X
+3705(back)X
+3885(end)X
+4029(that)X
+4177(con-)X
+2520 4320(verts)N
+2713(the)X
+2848(envelope)X
+3175(into)X
+3336(P)X
+8 s 8 xH F
+3380(OST)X
+10 s 10 xH F
+3501(S)X
+8 s 8 xH F
+3545(CRIPT)X
+10 s 10 xH F
+3764(instead)X
+4027(of)X
+4130(\256lling)X
+2520 4416(the)N
+2647(envelope)X
+2966(with)X
+3137(bits.)X
+3301(Note)X
+3486(then)X
+3653(that)X
+3802(the)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH F
+2520 4512(printer)N
+2765(will)X
+2920(\256ll)X
+3039(in)X
+3132(the)X
+3261(envelope)X
+3582(with)X
+3755(bits)X
+3901(as)X
+3999(it)X
+4073(\256lls)X
+4222(the)X
+2520 4608(path)N
+2678(obtained)X
+2974(from)X
+3150(the)X
+3268(envelope.)X
+2679 4704(The)N
+2840(following)X
+3187(subsections)X
+3593(describe)X
+3898(the)X
+4033(data)X
+4204(and)X
+2520 4800(the)N
+2638(calculations)X
+3041(involved)X
+3341(in)X
+3423(the)X
+3541(new)X
+3695(back)X
+3867(end.)X
+3 f F
+2520 4992(4.2)N
+2680(Data)X
+2884(structures.)X
+1 f F
+3311(The)X
+3475(main)X
+3674(data)X
+3848(structures)X
+4200(that)X
+0 f F
+2520 5088(METAFONT)N
+1 f F
+2906(keeps)X
+3133(for)X
+3271(a)X
+3351(character)X
+3691(are)X
+3834(the)X
+3976(center-line)X
+2520 5184(path,)N
+2702(the)X
+2824(pen)X
+2964(shape,)X
+3191(and)X
+3331(the)X
+3453(envelope)X
+3767(path.)X
+3949(There)X
+4161(are)X
+4284(a)X
+2520 5280(few)N
+2672(operations)X
+3036(that)X
+3186(can)X
+3328(be)X
+3434(performed)X
+3799(on)X
+3909(paths,)X
+4128(called)X
+2520 5376(transformations.)N
+3 f F
+2679 5472(4.2.1)N
+0 f F
+2899(METAFONT)X
+3 f F
+3240('s)X
+3323(path)X
+3503(representation.)X
+1 f F
+4067(When)X
+4284(a)X
+0 f F
+2520 5568(METAFONT)N
+1 f F
+2898(user)X
+3069(speci\256es)X
+3381(a)X
+3453(path,)X
+0 f F
+3647(METAFONT)X
+1 f F
+4024(creates)X
+4284(a)X
+2520 5664(list)N
+2642(of)X
+2734(knots)X
+2932(and)X
+3073(control)X
+3325(points)X
+3546(for)X
+3666(the)X
+3790(associated)X
+4146(cubic)X
+2465 6084(6)N
+
+%%Page: 7 8
+7 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+576 672(spline)N
+793(curves.)X
+1049(If)X
+1129(the)X
+1252(knots)X
+1450(are)X
+2 f F
+1574(z)X
+7 s 7 xH 1 f F
+1614 688(0)N
+10 s 10 xH F
+1648 672(,)N
+2 f F
+1694(z)X
+7 s 7 xH 1 f F
+1734 688(1)N
+10 s 10 xH F
+1768 672(,)N
+1808(.)X
+1848(.)X
+1888(.)X
+1928(,)X
+2 f F
+1981(z)X
+7 s 7 xH F
+2012 688(n)N
+10 s 10 xH 1 f F
+2046 672(,)N
+2091(there)X
+2277(are)X
+576 768(control)N
+835(points)X
+2 f F
+1062(z)X
+7 s 7 xH F
+1097 783(k)N
+47 f F
+1097 736(+)N
+10 s 10 xH 1 f F
+1167 768(and)N
+2 f F
+1316(z)X
+7 s 7 xH F
+1351 783(k)N
+47 f F
+1385(+)X
+1 f F
+1416(1)X
+47 f F
+1351 736(-)N
+10 s 10 xH 1 f F
+1483 768(such)N
+1663(that)X
+1816(the)X
+1947(cubic)X
+2154(splines)X
+576 864(between)N
+867(the)X
+988(knots)X
+2 f F
+1184(z)X
+7 s 7 xH F
+1215 880(k)N
+10 s 10 xH 1 f F
+1269 864(and)N
+2 f F
+1408(z)X
+7 s 7 xH F
+1439 880(k)N
+47 f F
+1473(+)X
+1 f F
+1504(1)X
+10 s 10 xH F
+1561 864(are)N
+1683(de\256ned)X
+1942(by)X
+2045(the)X
+2165(Be)X
+2223(\302zier)X
+576 960(formula)N
+2 f F
+828 1152(z)N
+1 f F
+872(\()X
+2 f F
+899(t)X
+1 f F
+927(\))X
+47 f F
+974(=)X
+2 f F
+1038(B)X
+1 f F
+1100(\()X
+2 f F
+1127(z)X
+7 s 7 xH F
+1158 1168(k)N
+1 f F
+1183(,)X
+10 s 10 xH 2 f F
+1207 1152(z)N
+7 s 7 xH F
+1242 1167(k)N
+47 f F
+1242 1120(+)N
+10 s 10 xH 1 f F
+1279 1152(,)N
+2 f F
+1305(z)X
+7 s 7 xH F
+1340 1167(k)N
+47 f F
+1374(+)X
+1 f F
+1405(1)X
+47 f F
+1340 1120(-)N
+10 s 10 xH 1 f F
+1439 1152(,)N
+2 f F
+1465(z)X
+7 s 7 xH F
+1496 1168(k)N
+47 f F
+1530(+)X
+1 f F
+1561(1)X
+10 s 10 xH F
+1595 1152(;)N
+2 f F
+1617(t)X
+1 f F
+1645(\))X
+47 f F
+974 1267(=)N
+1 f F
+1038(\(1)X
+47 f F
+1125(-)X
+2 f F
+1189(t)X
+1 f F
+1217(\))X
+7 s 7 xH F
+1244 1235(3)N
+10 s 10 xH 2 f F
+1278 1267(z)N
+7 s 7 xH F
+1309 1283(k)N
+10 s 10 xH 47 f F
+1360 1267(+)N
+1 f F
+1424(3)X
+2 f F
+(t)S
+1 f F
+1499(\()X
+2 f F
+1526(t)X
+47 f F
+1574(-)X
+1 f F
+1638(1\))X
+7 s 7 xH F
+1705 1235(2)N
+10 s 10 xH 2 f F
+1739 1267(z)N
+7 s 7 xH F
+1774 1282(k)N
+47 f F
+1774 1235(+)N
+10 s 10 xH F
+1308 1382(+)N
+1 f F
+1372(3)X
+2 f F
+(t)S
+7 s 7 xH 1 f F
+1443 1350(2)N
+10 s 10 xH F
+1477 1382(\(1)N
+47 f F
+1564(-)X
+2 f F
+1628(t)X
+1 f F
+1656(\))X
+2 f F
+1683(z)X
+7 s 7 xH F
+1718 1397(k)N
+47 f F
+1752(+)X
+1 f F
+1783(1)X
+47 f F
+1718 1350(-)N
+10 s 10 xH F
+1843 1382(+)N
+2 f F
+1907(t)X
+7 s 7 xH 1 f F
+1938 1350(3)N
+10 s 10 xH 2 f F
+1972 1382(z)N
+7 s 7 xH F
+2003 1398(k)N
+47 f F
+2037(+)X
+1 f F
+2068(1)X
+10 s 10 xH F
+2102 1382(,)N
+576 1574(for)N
+690(0)X
+47 f F
+750(\243)X
+2 f F
+814(t)X
+47 f F
+862(\243)X
+1 f F
+926(1.)X
+735 1670(There)N
+950(is)X
+1030(a)X
+1093(7-word)X
+1352(node)X
+1535(for)X
+1657(each)X
+1833(knot)X
+2 f F
+2003(z)X
+7 s 7 xH F
+2034 1686(k)N
+10 s 10 xH 1 f F
+2065 1670(,)N
+2113(contain-)X
+576 1766(ing)N
+706(one)X
+850(word)X
+1043(of)X
+1137(control)X
+1391(information)X
+1796(and)X
+1939(six)X
+2059(words)X
+2282(for)X
+576 1862(the)N
+2 f F
+696(x)X
+1 f F
+754(and)X
+2 f F
+892(y)X
+1 f F
+950(coordinates)X
+1342(of)X
+2 f F
+1431(z)X
+7 s 7 xH F
+1466 1877(k)N
+47 f F
+1466 1830(-)N
+10 s 10 xH 1 f F
+1525 1862(and)N
+2 f F
+1663(z)X
+7 s 7 xH F
+1694 1878(k)N
+10 s 10 xH 1 f F
+1747 1862(and)N
+2 f F
+1886(z)X
+7 s 7 xH F
+1921 1877(k)N
+47 f F
+1921 1830(+)N
+10 s 10 xH 1 f F
+1958 1862(.)N
+2001(The)X
+2149(control)X
+576 1958(information)N
+1004(appears)X
+1299(in)X
+1410(the)X
+2 f F
+1557(left_type)X
+1 f F
+1882(and)X
+2 f F
+2047(right_type)X
+1 f F
+576 2054(\256elds)N
+789(and)X
+945(they)X
+1123(specify)X
+1395(properties)X
+1757(of)X
+1865(the)X
+2004(curve)X
+2224(as)X
+2332(it)X
+576 2150(enters)N
+803(and)X
+954(leaves)X
+1190(the)X
+1322(knot.)X
+1518(There)X
+1740(is)X
+1827(also)X
+1990(a)X
+2 f F
+2060(link)X
+1 f F
+2214(\256eld,)X
+576 2246(which)N
+803(points)X
+1029(to)X
+1122(the)X
+1251(following)X
+1593(knot.)X
+1786(Before)X
+2036(the)X
+2165(Be)X
+2223(\302zier)X
+576 2342(control)N
+830(points)X
+1052(have)X
+1230(been)X
+1408(calculated,)X
+1780(the)X
+1904(memory)X
+2197(space)X
+576 2438(they)N
+741(will)X
+892(ultimately)X
+1243(occupy)X
+1502(is)X
+1582(taken)X
+1783(up)X
+1890(by)X
+1998(information)X
+576 2534(that)N
+742(can)X
+899(be)X
+1020(used)X
+1212(to)X
+1319(compute)X
+1640(them.)X
+1865(The)X
+0 f F
+2035(METAFONT)X
+2 f F
+576 2630(make_choices)N
+1 f F
+1072(procedure)X
+1439(chooses)X
+1738(angles)X
+1988(and)X
+2149(control)X
+576 2726(points)N
+798(for)X
+919(the)X
+1044(splines)X
+1293(of)X
+1387(a)X
+1450(curve)X
+1656(when)X
+1857(the)X
+1981(user)X
+2141(has)X
+2274(not)X
+576 2822(speci\256ed)N
+881(them)X
+1061(explicitly.)X
+3 f F
+735 2918(4.2.2)N
+0 f F
+955(METAFONT)X
+3 f F
+1296('s)X
+1392(path)X
+1585(transformation.)X
+1 f F
+2184(When)X
+0 f F
+576 3014(METAFONT)N
+1 f F
+952(digitizes)X
+1258(a)X
+1329(path,)X
+1522(it)X
+1601(reduces)X
+1881(the)X
+2013(problem)X
+2314(to)X
+576 3110(the)N
+705(special)X
+959(case)X
+1129(of)X
+1228(paths)X
+1429(that)X
+1581(travel)X
+1796(in)X
+1890(the)X
+2 f F
+2020(\256rst)X
+2176(octant)X
+1 f F
+576 3206(directions;)N
+938(i.e.,)X
+1080(each)X
+1252(cubic)X
+2 f F
+1449(z)X
+1 f F
+1493(\()X
+2 f F
+1520(t)X
+1 f F
+1548(\))X
+47 f F
+1595(=)X
+1 f F
+1659(\()X
+2 f F
+1686(x)X
+1 f F
+1735(\()X
+2 f F
+1762(t)X
+1 f F
+1790(\),)X
+2 f F
+1843(y)X
+1 f F
+1892(\()X
+2 f F
+1919(t)X
+1 f F
+1947(\)\))X
+2024(being)X
+2225(digi-)X
+576 3302(tized)N
+763(will)X
+918(have)X
+1101(the)X
+1230(property)X
+1534(that)X
+1686(0)X
+47 f F
+1746(\243)X
+2 f F
+1810(y)X
+47 f F
+1852(\242)X
+1 f F
+1872(\()X
+2 f F
+1899(t)X
+1 f F
+1927(\))X
+47 f F
+1974(\243)X
+2 f F
+2038(x)X
+47 f F
+2080(\242)X
+1 f F
+2100(\()X
+2 f F
+2127(t)X
+1 f F
+2155(\).)X
+2234(This)X
+576 3398(assumption)N
+969(makes)X
+1203(digitizing)X
+1538(simpler)X
+1807(and)X
+1952(faster)X
+2160(than)X
+2327(if)X
+576 3494(the)N
+716(direction)X
+1043(of)X
+1152(motion)X
+1420(has)X
+1569(to)X
+1673(be)X
+1791(tested)X
+2021(repeatedly.)X
+576 3590(When)N
+2 f F
+793(z)X
+1 f F
+837(\()X
+2 f F
+864(t)X
+1 f F
+892(\))X
+944(is)X
+1022(cubic,)X
+2 f F
+1241(x)X
+47 f F
+1283(\242)X
+1 f F
+1303(\()X
+2 f F
+1330(t)X
+1 f F
+1358(\))X
+1410(and)X
+2 f F
+1551(y)X
+47 f F
+1593(\242)X
+1 f F
+1613(\()X
+2 f F
+1640(t)X
+1 f F
+1668(\))X
+1720(are)X
+1844(quadratic,)X
+2188(hence)X
+576 3686(each)N
+760(of)X
+864(the)X
+999(four)X
+1170(polynomials,)X
+2 f F
+1622(x)X
+47 f F
+1664(\242)X
+1 f F
+1684(\()X
+2 f F
+1711(t)X
+1 f F
+1739(\),)X
+2 f F
+1823(y)X
+47 f F
+1865(\242)X
+1 f F
+1885(\()X
+2 f F
+1912(t)X
+1 f F
+1940(\),)X
+2 f F
+2024(x)X
+47 f F
+2066(\242)X
+1 f F
+2086(\()X
+2 f F
+2113(t)X
+1 f F
+2141(\))X
+47 f F
+2168(-)X
+2 f F
+2212(y)X
+47 f F
+2254(\242)X
+1 f F
+2274(\()X
+2 f F
+2301(t)X
+1 f F
+2329(\),)X
+576 3782(and)N
+2 f F
+721(x)X
+47 f F
+763(\242)X
+1 f F
+783(\()X
+2 f F
+810(t)X
+1 f F
+838(\))X
+47 f F
+865(+)X
+2 f F
+909(y)X
+47 f F
+951(\242)X
+1 f F
+971(\()X
+2 f F
+998(t)X
+1 f F
+1026(\),)X
+1102(crosses)X
+1363(through)X
+1641(0)X
+1709(at)X
+1795(most)X
+1978(twice.)X
+2200(If)X
+2282(we)X
+576 3878(subdivide)N
+925(the)X
+1061(given)X
+1277(cubic)X
+1489(at)X
+1585(these)X
+1788(places,)X
+2048(we)X
+2181(get)X
+2318(at)X
+576 3974(most)N
+760(nine)X
+927(subintervals.)X
+1363(In)X
+1459(each)X
+1636(of)X
+1731(these)X
+1924(intervals)X
+2228(each)X
+576 4070(of)N
+2 f F
+667(x)X
+47 f F
+709(\242)X
+1 f F
+729(\()X
+2 f F
+756(t)X
+1 f F
+784(\),)X
+2 f F
+855(y)X
+47 f F
+897(\242)X
+1 f F
+917(\()X
+2 f F
+944(t)X
+1 f F
+972(\),)X
+2 f F
+1043(x)X
+47 f F
+1085(\242)X
+1 f F
+1105(\()X
+2 f F
+1132(t)X
+1 f F
+1160(\))X
+47 f F
+1187(-)X
+2 f F
+1231(y)X
+47 f F
+1273(\242)X
+1 f F
+1293(\()X
+2 f F
+1320(t)X
+1 f F
+1348(\),)X
+1419(and)X
+2 f F
+1559(x)X
+47 f F
+1601(\242)X
+1 f F
+1621(\()X
+2 f F
+1648(t)X
+1 f F
+1676(\))X
+47 f F
+1703(+)X
+2 f F
+1747(y)X
+47 f F
+1789(\242)X
+1 f F
+1809(\()X
+2 f F
+1836(t)X
+1 f F
+1864(\))X
+1916(has)X
+2048(a)X
+2109(constant)X
+576 4166(sign.)N
+766(The)X
+927(curve)X
+1142(can)X
+1290(be)X
+1402(transformed)X
+1826(in)X
+1924(each)X
+2108(of)X
+2211(these)X
+576 4262(subintervals)N
+1005(so)X
+1118(that)X
+1280(it)X
+1366(travels)X
+1622(entirely)X
+1909(in)X
+2013(\256rst)X
+2180(octant)X
+576 4358(directions,)N
+933(if)X
+1003(we)X
+1118(exchange)X
+2 f F
+1443(x)X
+1 f F
+1500(and)X
+47 f F
+1636(-)X
+2 f F
+1680(x)X
+1 f F
+1716(,)X
+2 f F
+1756(y)X
+1 f F
+1812(and)X
+47 f F
+1948(-)X
+2 f F
+1992(y)X
+1 f F
+2028(,)X
+2068(and)X
+2 f F
+2204(x)X
+1 f F
+2260(and)X
+2 f F
+576 4454(y)N
+1 f F
+632(as)X
+719(necessary.)X
+3 f F
+576 4646(4.3)N
+736(Pens)X
+923(and)X
+1078(envelopes.)X
+1 f F
+1474(There)X
+1689(are)X
+1816(two)X
+1964(kinds)X
+2165(of)X
+2260(pen)X
+576 4742(heads)N
+791(that)X
+943(may)X
+1112(be)X
+1219(used,)X
+1417(polygonal)X
+1768(and)X
+1915(elliptic.)X
+2188(There)X
+576 4838(are)N
+708(a)X
+778(number)X
+1057(of)X
+1158(trade-o)X
+1386 MX
+(ff)138 606 oc
+1434(s)X
+1499(involved)X
+1813(in)X
+1909(their)X
+2090(use.)X
+2251(The)X
+576 4934(\256rst)N
+725(subsection)X
+1088(treats)X
+1287(the)X
+1410(case)X
+1573(of)X
+1664(an)X
+2 f F
+1764(n)X
+1 f F
+(-vertex)S
+2056(polygonal)X
+576 5030(pen)N
+715(shape)X
+921(and)X
+1060(the)X
+1181(second)X
+1427(treats)X
+1624(the)X
+1745(case)X
+1907(of)X
+1997(an)X
+2096(elliptical)X
+576 5126(pen)N
+717(shape.)X
+945(Both)X
+1125(describe)X
+1418(the)X
+1540(in\257uence)X
+1858(of)X
+1949(pen)X
+2089(shape)X
+2296(on)X
+576 5222(the)N
+694(envelope)X
+1004(of)X
+1091(the)X
+1209(font.)X
+3 f F
+735 5318(4.3.1)N
+955(Polygonal)X
+1322(pens.)X
+1 f F
+1547(Suppose)X
+1848(that)X
+1998(the)X
+2126(vertices)X
+576 5414(of)N
+672(a)X
+737(polygon)X
+1028(are)X
+2 f F
+1156(w)X
+7 s 7 xH 1 f F
+1218 5430(0)N
+10 s 10 xH F
+1252 5414(,)N
+2 f F
+1298(w)X
+7 s 7 xH 1 f F
+1360 5430(1)N
+10 s 10 xH F
+1394 5414(,)N
+1434(.)X
+1474(.)X
+1514(.)X
+1554(,)X
+2 f F
+1607(w)X
+7 s 7 xH F
+1660 5430(n)N
+47 f F
+1697(-)X
+1 f F
+1728(1)X
+10 s 10 xH F
+1762 5414(,)N
+2 f F
+1808(w)X
+7 s 7 xH F
+1861 5430(n)N
+10 s 10 xH 47 f F
+1915 5414(=)N
+2 f F
+1979(w)X
+7 s 7 xH 1 f F
+2041 5430(0)N
+10 s 10 xH F
+2103 5414(in)N
+2193(coun-)X
+576 5510(terclockwise)N
+1006(order.)X
+1221(A)X
+1304(convexity)X
+1645(condition)X
+1972(requires)X
+2256(that)X
+576 5606(each)N
+757(vertex)X
+991(turns)X
+1184(left)X
+1324(when)X
+1531(one)X
+1680(proceeds)X
+1998(from)X
+2 f F
+2186(w)X
+7 s 7 xH 1 f F
+2248 5622(0)N
+10 s 10 xH F
+2314 5606(to)N
+2 f F
+576 5702(w)N
+7 s 7 xH 1 f F
+638 5718(1)N
+10 s 10 xH F
+718 5678(.)N
+758(.)X
+798(.)X
+864 5702(to)N
+2 f F
+953(w)X
+7 s 7 xH F
+1006 5718(n)N
+10 s 10 xH 1 f F
+1040 5702(.)N
+1087(The)X
+1239(envelope)X
+1556(is)X
+1636(obtained)X
+1939(if)X
+2015(we)X
+2136(o)X
+(ff)138 606 oc
+2224(set)X
+2340(a)X
+2520 672(given)N
+2721(curve)X
+2 f F
+2923(z)X
+1 f F
+2967(\()X
+2 f F
+2994(t)X
+1 f F
+3022(\))X
+3071(by)X
+2 f F
+3173(w)X
+7 s 7 xH F
+3226 688(k)N
+10 s 10 xH 1 f F
+3279 672(when)N
+3475(that)X
+3617(curve)X
+3818(is)X
+3893(traveling)X
+4200(in)X
+4284(a)X
+2520 768(direction)N
+2 f F
+2846(z)X
+47 f F
+2883(\242)X
+1 f F
+2903(\()X
+2 f F
+2930(t)X
+1 f F
+2958(\))X
+3026(lying)X
+3232(between)X
+3542(the)X
+3682(directions)X
+2 f F
+4040(w)X
+7 s 7 xH F
+4093 784(k)N
+10 s 10 xH 47 f F
+4124 768(-)N
+2 f F
+4168(w)X
+7 s 7 xH F
+4221 784(k)N
+47 f F
+4255(-)X
+1 f F
+4286(1)X
+10 s 10 xH F
+2520 864(and)N
+2 f F
+2662(w)X
+7 s 7 xH F
+2715 880(k)N
+47 f F
+2749(+)X
+1 f F
+2780(1)X
+10 s 10 xH 47 f F
+2814 864(-)N
+2 f F
+2858(w)X
+7 s 7 xH F
+2911 880(k)N
+10 s 10 xH 1 f F
+2942 864(.)N
+2988(At)X
+3094(times)X
+2 f F
+3293(t)X
+1 f F
+3341(when)X
+3541(the)X
+3665(curve)X
+3870(direction)X
+2 f F
+4181(z)X
+47 f F
+4218(\242)X
+1 f F
+4238(\()X
+2 f F
+4265(t)X
+1 f F
+4293(\))X
+2520 960(increases)N
+2854(past)X
+2 f F
+3022(w)X
+7 s 7 xH F
+3075 976(k)N
+47 f F
+3109(+)X
+1 f F
+3140(1)X
+10 s 10 xH 47 f F
+3174 960(-)N
+2 f F
+3218(w)X
+7 s 7 xH F
+3271 976(k)N
+10 s 10 xH 1 f F
+3302 960(,)N
+0 f F
+3361(METAFONT)X
+1 f F
+3742(temporarily)X
+4156(stops)X
+2520 1056(plotting)N
+2793(the)X
+2916(o)X
+(ff)138 606 oc
+3004(set)X
+3118(curve)X
+3322(and)X
+3463(inserts)X
+3696(a)X
+3756(straight)X
+4020(line)X
+4164(from)X
+2 f F
+2520 1152(z)N
+1 f F
+2564(\()X
+2 f F
+2591(t)X
+1 f F
+2619(\))X
+47 f F
+2646(+)X
+2 f F
+2690(w)X
+7 s 7 xH F
+2743 1168(k)N
+10 s 10 xH 1 f F
+2811 1152(to)N
+2 f F
+2910(z)X
+1 f F
+2954(\()X
+2 f F
+2981(t)X
+1 f F
+3009(\))X
+47 f F
+3036(+)X
+2 f F
+3080(w)X
+7 s 7 xH F
+3133 1168(k)N
+47 f F
+3167(+)X
+1 f F
+3198(1)X
+10 s 10 xH F
+3232 1152(;)N
+3291(notice)X
+3524(that)X
+3681(this)X
+3833(straight)X
+4110(line)X
+4267(is)X
+2520 1248(tangent)N
+2789(to)X
+2884(the)X
+3015(o)X
+(ff)138 606 oc
+3103(set)X
+3225(curve.)X
+3456(Similarly,)X
+3805(when)X
+4011(the)X
+4141(curve)X
+2520 1344(direction)N
+2825(decreases)X
+3154(past)X
+2 f F
+3303(w)X
+7 s 7 xH F
+3356 1360(k)N
+10 s 10 xH 47 f F
+3387 1344(-)N
+2 f F
+3431(w)X
+7 s 7 xH F
+3484 1360(k)N
+47 f F
+3518(-)X
+1 f F
+3549(1)X
+10 s 10 xH F
+3583 1344(,)N
+0 f F
+3623(METAFONT)X
+1 f F
+3984(stops)X
+4169(plot-)X
+2520 1440(ting)N
+2705(and)X
+2882(inserts)X
+3152(a)X
+3248(straight)X
+3548(line)X
+3728(from)X
+2 f F
+3944(z)X
+1 f F
+3988(\()X
+2 f F
+4015(t)X
+1 f F
+4043(\))X
+47 f F
+4070(+)X
+2 f F
+4114(w)X
+7 s 7 xH F
+4167 1456(k)N
+10 s 10 xH 1 f F
+4258 1440(to)N
+2 f F
+2520 1536(z)N
+1 f F
+2564(\()X
+2 f F
+2591(t)X
+1 f F
+2619(\))X
+47 f F
+2646(+)X
+2 f F
+2690(w)X
+7 s 7 xH F
+2743 1552(k)N
+47 f F
+2777(-)X
+1 f F
+2808(1)X
+10 s 10 xH F
+2842 1536(;)N
+2895(the)X
+3024(latter)X
+3220(line)X
+3371(is)X
+3455(actually)X
+3740(a)X
+3808(retrograde)X
+4171(step,)X
+2520 1632(which)N
+2761(will)X
+2929(not)X
+3075(be)X
+3195(part)X
+3364(of)X
+3475(the)X
+3617(\256nal)X
+3803(envelope)X
+4137(under)X
+0 f F
+2520 1728(METAFONT)N
+1 f F
+2861('s)X
+2946(assumptions.)X
+3388(The)X
+3541(result)X
+3747(of)X
+3842(this)X
+3985(considera-)X
+2520 1824(tion)N
+2684(is)X
+2777(a)X
+2853(continuous)X
+3243(path)X
+3420(that)X
+3579(consists)X
+3871(of)X
+3977(alternating)X
+2520 1920(curves)N
+2769(and)X
+2924(straight)X
+3203(line)X
+3362(segments.)X
+3719(The)X
+3883(segments)X
+4221(are)X
+2520 2016(usually)N
+2785(so)X
+2890(short,)X
+3104(in)X
+3200(practice,)X
+3509(that)X
+3663(they)X
+3835(blend)X
+4047(with)X
+4222(the)X
+2520 2112(curves.)N
+3 f F
+2679 2208(4.3.2)N
+2899(Elliptical)X
+3243(pens.)X
+1 f F
+3472(To)X
+3595(get)X
+3727(the)X
+3859(envelope)X
+4183(of)X
+4284(a)X
+2520 2304(cyclic)N
+2737(path)X
+2900(with)X
+3067(respect)X
+3319(to)X
+3405(an)X
+3505(ellipse,)X
+0 f F
+3758(METAFONT)X
+1 f F
+4123(calcu-)X
+2520 2400(lates)N
+2692(the)X
+2815(envelope)X
+3130(with)X
+3298(respect)X
+3552(to)X
+3640(a)X
+3702(polygonal)X
+4048(approxi-)X
+2520 2496(mation)N
+2779(to)X
+2878(the)X
+3012(ellipse.)X
+3277(This)X
+3455(has)X
+3598(two)X
+3754(important)X
+4101(advan-)X
+2520 2592(tages)N
+2705(over)X
+2868(trying)X
+3079(to)X
+3161(obtain)X
+3381(the)X
+3499(exact)X
+3689(envelope:)X
+2583 2736(1.)N
+2679(Polygonal)X
+3041(envelopes)X
+3400(give)X
+3576(better)X
+3797(results,)X
+4065(because)X
+2679 2832(the)N
+2801(polygon)X
+3087(has)X
+3218(been)X
+3394(designed)X
+3703(to)X
+3788(counteract)X
+4146(prob-)X
+2679 2928(lems)N
+2882(that)X
+3054(arise)X
+3259(from)X
+3468(digitization;)X
+3907(the)X
+4058(polygon)X
+2679 3024(includes)N
+2980(sub-pixel)X
+3312(corrections)X
+3703(to)X
+3799(an)X
+3908(exact)X
+4111(ellipse)X
+2679 3120(that)N
+2839(make)X
+3053(the)X
+3191(results)X
+3441(essentially)X
+3820(independent)X
+4253(of)X
+2679 3216(where)N
+2896(the)X
+3014(path)X
+3172(falls)X
+3330(on)X
+3430(the)X
+3548(raster.)X
+2583 3360(2.)N
+2679(Polygonal)X
+3046(envelopes)X
+3410(of)X
+3520(cubic)X
+3737(splines)X
+4003(are)X
+4146(cubic)X
+2679 3456(splines.)N
+2967(Hence)X
+3218(it)X
+3307(is)X
+3405(not)X
+3552(necessary)X
+3910(to)X
+4017(introduce)X
+2679 3552(completely)N
+3074(di)X
+3136 MX
+(ff)138 606 oc
+3184(erent)X
+3385(routines.)X
+3703(By)X
+3836(contrast,)X
+4150(exact)X
+2679 3648(envelopes)N
+3027(of)X
+3121(cubic)X
+3322(splines)X
+3570(with)X
+3738(respect)X
+3992(to)X
+4080(ellipses)X
+2679 3744(are)N
+2804(complicated)X
+3222(curves,)X
+3478(more)X
+3669(di)X
+3731 MX
+(Fi)139 825 oc
+(cult)S
+3943(to)X
+4031(plot)X
+4182(than)X
+2679 3840(cubics.)N
+3 f F
+2520 4032(4.4)N
+2680(Taking)X
+2948(out)X
+3084(data.)X
+1 f F
+3300(After)X
+0 f F
+3495(METAFONT)X
+1 f F
+3861(has)X
+3994(calculated)X
+2520 4128(the)N
+2639(paths)X
+2828(and)X
+2964(the)X
+3082(o)X
+(ff)138 606 oc
+3170(sets,)X
+3330(it)X
+3394(is)X
+3467(ready)X
+3666(to)X
+3748(send)X
+3915(the)X
+4033(values)X
+4258(to)X
+2520 4224(the)N
+2 f F
+2661(make_moves)X
+1 f F
+3116(procedure)X
+3482(which)X
+3722(generates)X
+4070(discrete)X
+2520 4320(moves)N
+2751(for)X
+2867(any)X
+3004(four)X
+3159(points)X
+3375(that)X
+3516(represent)X
+3832(a)X
+3889(Be)X
+3947(\302zier)X
+4121(curve.)X
+2520 4416(This)N
+2702(is)X
+2796(done)X
+2993(for)X
+3128(each)X
+3317(one)X
+3474(of)X
+3582(the)X
+3721(cyclic)X
+3954(paths)X
+4164(from)X
+2520 4512(which)N
+2740(the)X
+2861(letter)X
+3049(is)X
+3125(built.)X
+3334(When)X
+3549(the)X
+3670(o)X
+(ff)138 606 oc
+3758(sets)X
+3901(are)X
+4023(zero,)X
+4205(this)X
+2520 4608(is)N
+2611(done)X
+2805(by)X
+2923(the)X
+2 f F
+3059(\256ll_spec)X
+1 f F
+3364(procedure.)X
+3744(Otherwise)X
+4113(this)X
+4267(is)X
+2520 4704(done)N
+2705(by)X
+2813(the)X
+2 f F
+2939(\256ll_envelope)X
+1 f F
+3377(procedure.)X
+3747(In)X
+3842(the)X
+3968(latter)X
+4161(case,)X
+2520 4800(the)N
+2641(line)X
+2784(segments,)X
+3125(which)X
+3345(were)X
+3526(discussed)X
+3857(earlier,)X
+4107(should)X
+2520 4896(be)N
+2631(taken)X
+2840(out)X
+2977(also)X
+3140(in)X
+3236(order)X
+3440(to)X
+3536(get)X
+3668(smooth)X
+3937(connections)X
+2520 4992(between)N
+2810(the)X
+2931(di)X
+2993 MX
+(ff)138 606 oc
+3041(erent)X
+3225(curves)X
+3458(that)X
+3601(the)X
+3722(cyclic)X
+3937(path)X
+4098(is)X
+4174(built)X
+2520 5088(from.)N
+2764(Because)X
+3080(P)X
+8 s 8 xH F
+3124(OST)X
+10 s 10 xH F
+3245(S)X
+8 s 8 xH F
+3289(CRIPT)X
+10 s 10 xH F
+3519(describes)X
+3865(any)X
+4028(shape)X
+4258(in)X
+2520 5184(terms)N
+2741(of)X
+2851(curves)X
+3104(and)X
+3263(lines,)X
+3477(this)X
+3635(is)X
+3731(the)X
+3872(point)X
+4080(to)X
+4186(take)X
+2520 5280(advantage)N
+2909(of)X
+0 f F
+3039(METAFONT)X
+1 f F
+3380('s)X
+3501(calculations,)X
+3966(i.e.,)X
+4146(when)X
+0 f F
+2520 5376(METAFONT)N
+1 f F
+2892(calls)X
+3071(the)X
+2 f F
+3201(make_moves)X
+1 f F
+3644(procedure)X
+3998(and)X
+4146(when)X
+0 f F
+2520 5472(METAFONT)N
+1 f F
+2881(draws)X
+3093(line)X
+3233(segments)X
+3551(for)X
+3665(o)X
+(ff)138 606 oc
+3753(set)X
+3862(corrections.)X
+3 f F
+2520 5664(4.5)N
+2680(Processing)X
+3074(the)X
+3210(data.)X
+1 f F
+3430(The)X
+3584(generated)X
+3926(data)X
+4089(are)X
+4218(not)X
+2465 6084(8)N
+
+%%Page: 8 9
+8 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+576 672(ready)N
+796(yet)X
+935(to)X
+1037(be)X
+1153(used.)X
+1360(First,)X
+1566(we)X
+1700(should)X
+1953(unskew,)X
+2258(i.e.,)X
+576 768(transform)N
+914(from)X
+1096(the)X
+1220(\256rst)X
+1370(octant)X
+1592(back)X
+1770(to)X
+1858(the)X
+1982(original,)X
+2278(the)X
+576 864(paths)N
+775(according)X
+1121(to)X
+1212(the)X
+1339(octant)X
+1564(that)X
+1713(the)X
+1840(paths)X
+2038(were)X
+2224(trav-)X
+576 960(eled)N
+747(in)X
+846(before)X
+1089(they)X
+1264(were)X
+1459(skewed.)X
+1758(This)X
+1938(unskewing)X
+2323(is)X
+576 1056(done)N
+766(by)X
+880(taking)X
+1114(out)X
+1250(the)X
+1382(octant)X
+1612(number)X
+1891(at)X
+1983(the)X
+2114(moment)X
+576 1152(that)N
+718(the)X
+2 f F
+838(make_moves)X
+1 f F
+1271(procedure)X
+1615(is)X
+1690(called)X
+1904(and)X
+2042(then)X
+2203(using)X
+0 f F
+576 1248(METAFONT)N
+1 f F
+917('s)X
+2 f F
+1007(unskew)X
+1 f F
+1275(procedure)X
+1629(that)X
+1780(sets)X
+1931(values)X
+2 f F
+2167(x)X
+47 f F
+2209(\242)X
+1 f F
+2260(and)X
+2 f F
+576 1344(y)N
+47 f F
+618(\242)X
+1 f F
+662(to)X
+748(the)X
+870(original)X
+1143(coordinate)X
+1506(values)X
+1735(of)X
+1827(a)X
+1888(point,)X
+2097(given)X
+2300(an)X
+576 1440(octant)N
+800(code)X
+980(and)X
+1123(coordinates)X
+1520(\()X
+2 f F
+1547(x)X
+1 f F
+1583(,)X
+2 f F
+1609(y)X
+1 f F
+1651(\))X
+1705(after)X
+1880(they)X
+2045(have)X
+2224(been)X
+576 1536(mapped)N
+850(into)X
+995(the)X
+1114(\256rst)X
+1259(octant)X
+1476(and)X
+1613(skewed;)X
+1897(the)X
+2016(new)X
+2171(values)X
+576 1632(are)N
+701(sent)X
+855(to)X
+942(the)X
+2 f F
+1065(send_p_s)X
+1 f F
+1388(procedure.)X
+1755(This)X
+1922(procedure)X
+2269(has)X
+576 1728(eight)N
+761(formal)X
+1000(parameters)X
+1378(that)X
+1523(are)X
+1648(all)X
+1754(used)X
+1927(when)X
+2127(sending)X
+576 1824(a)N
+637(curve.)X
+861(When)X
+1078(sending)X
+1352(a)X
+1412(line,)X
+1576(only)X
+1742(four)X
+1900(parameters)X
+2277(are)X
+576 1920(used,)N
+763(two)X
+903(to)X
+985(denote)X
+1219(the)X
+1338(start)X
+1497(point)X
+1682(and)X
+1819(two)X
+1960(to)X
+2043(denote)X
+2278(the)X
+576 2016(end)N
+729(point;)X
+952(the)X
+1087(remaining)X
+1449(four)X
+1620(parameters)X
+2009(are)X
+2144(sent)X
+2309(as)X
+576 2112(zeros)N
+778(so)X
+2 f F
+881(send_p_s)X
+1 f F
+1211(can)X
+1355(distinguish)X
+1737(whether)X
+2029(a)X
+2098(line)X
+2251(was)X
+576 2208(sent)N
+728(or)X
+818(a)X
+877(curve.)X
+1119(In)X
+1209(the)X
+1330(next)X
+1491(step,)X
+2 f F
+1663(send_p_s)X
+1 f F
+1984(unscales)X
+2278(the)X
+576 2304(numbers)N
+875(because)X
+0 f F
+1154(METAFONT)X
+1 f F
+1519(works)X
+1739(with)X
+1905(units)X
+2084(of)X
+2175(scaled)X
+576 2400(points,)N
+832(of)X
+940(which)X
+1177(there)X
+1379(are)X
+1519(2)X
+7 s 7 xH F
+2368(16)Y
+10 s 10 xH F
+1662 2400(in)N
+1764(an)X
+1880(ordinary)X
+2192(point.)X
+576 2496(While)N
+796(unscaling,)X
+1147(the)X
+1269(values)X
+1498(are)X
+1621(transformed)X
+2033(in)X
+2119(order)X
+2314(to)X
+576 2592(send)N
+762(them)X
+961(to)X
+1062(the)X
+1199(P)X
+8 s 8 xH F
+1243(OST)X
+10 s 10 xH F
+1364(S)X
+8 s 8 xH F
+1408(CRIPT)X
+10 s 10 xH F
+1629(dictionary)X
+5 f F
+1992(FontBBox)X
+1 f F
+576 2688(command.)N
+932(After)X
+1122(this)X
+1257(pre-processing,)X
+1770(the)X
+1889(data)X
+2044(are)X
+2164(sent)X
+2314(to)X
+576 2784(a)N
+632(temporary)X
+982(\256le.)X
+3 f F
+735 2880(4.5.1)N
+955(Getting)X
+1244(more)X
+1454(information.)X
+1 f F
+1934(When)X
+0 f F
+2158(META-)X
+576 2976(FONT)N
+1 f F
+765(calls)X
+936(the)X
+2 f F
+1058(make_moves)X
+1 f F
+1493(procedure,)X
+1859(it)X
+1927(does)X
+2098(not)X
+2224(have)X
+576 3072(any)N
+725(information)X
+1136(on)X
+1249(the)X
+1380(role)X
+1538(that)X
+1691(this)X
+1839(path)X
+2011(is)X
+2098(going)X
+2314(to)X
+576 3168(play,)N
+774(whether)X
+1073(the)X
+1211(current)X
+1478(cyclic)X
+1709(path)X
+1886(is)X
+1978(going)X
+2199(to)X
+2300(be)X
+2 f F
+576 3264(\256lled)N
+1 f F
+759(or)X
+849(whether)X
+1131(it)X
+1198(will)X
+1345(act)X
+1462(as)X
+1552(a)X
+1611(boundary)X
+1937(of)X
+2027(a)X
+2086(region)X
+2314(to)X
+576 3360(be)N
+2 f F
+672(erased)X
+1 f F
+886(.)X
+735 3456(In)N
+840(order)X
+1048(to)X
+1149(distinguish)X
+1538(between)X
+1845(the)X
+1982(cases,)X
+2211(more)X
+576 3552(information)N
+987(has)X
+1127(to)X
+1222(be)X
+1331(taken.)X
+1558(This)X
+1733(is)X
+1818(done)X
+2006(by)X
+2118(copying)X
+576 3648(the)N
+5 f F
+760(plain.mf)X
+1 f F
+1230(\256le)X
+1418(into)X
+1629(a)X
+1752(new)X
+1973(\256le)X
+2162(named)X
+5 f F
+576 3744(myplain.mf)N
+1 f F
+1086(and)X
+1231(adding)X
+1478(a)X
+1543(few)X
+1693(lines)X
+1873(to)X
+1964(it.)X
+2057(The)X
+2211(addi-)X
+576 3840(tional)N
+783(code)X
+961(was)X
+1112(added)X
+1330(in)X
+1418(order)X
+1614(to)X
+1702(identify)X
+0 f F
+1977(METAFONT)X
+1 f F
+2318('s)X
+576 3936(use)N
+704(of)X
+791(the)X
+909(macros.)X
+0 f F
+1181(METAFONT)X
+1 f F
+1542(uses)X
+1700(the)X
+1818(variables)X
+2128(for)X
+2242(date)X
+576 4032(only)N
+764(once,)X
+982(when)X
+1202(the)X
+1346(program)X
+1664(is)X
+1763(started,)X
+2043(so)X
+2160(it)X
+2251(was)X
+576 4128(decided)N
+861(to)X
+958(use)X
+1100(them)X
+1294(in)X
+1390(the)X
+1522(rest)X
+1672(of)X
+1773(the)X
+1905(program.)X
+2251(The)X
+5 f F
+576 4224(year)N
+1 f F
+862(is)X
+1009(changed)X
+1372(to)X
+47 f F
+1529(-)X
+1 f F
+1573(1)X
+1708(when)X
+0 f F
+1977(METAFONT)X
+1 f F
+2318('s)X
+5 f F
+576 4320(pen_stroke)N
+1 f F
+1077(macro)X
+1299(is)X
+1373(applied)X
+1630(on)X
+1730(a)X
+1786(cyclic)X
+1998(path,)X
+2176(i.e.,)X
+2314(in)X
+576 4416(the)N
+709(characters)X
+1071(such)X
+1253(as)X
+1355(\252o\272,)X
+1522(\252O\272,)X
+1707(and)X
+1858(\252Q\272,)X
+2043(and)X
+2194(to)X
+47 f F
+2292(-)X
+1 f F
+2336(2)X
+576 4512(when)N
+801(the)X
+5 f F
+950(erase)X
+1 f F
+1241(macro)X
+1493(is)X
+1596(called.)X
+1858(The)X
+5 f F
+2033(month)X
+1 f F
+2323(is)X
+576 4608(changed)N
+883(when)X
+1096(the)X
+5 f F
+1233(fill)X
+1 f F
+1464(macro)X
+1704(is)X
+1797(called.)X
+2049(There)X
+2277(are)X
+576 4704(three)N
+757(kinds)X
+950(of)X
+1037(paths:)X
+639 4848(1.)N
+735(paths)X
+941(to)X
+1040(be)X
+2 f F
+1153(\256lled)X
+1 f F
+1351(are)X
+1488(processed)X
+1843(using)X
+2054(the)X
+2190(P)X
+8 s 8 xH F
+2234(OST-)X
+10 s 10 xH F
+735 4944(S)N
+8 s 8 xH F
+779(CRIPT)X
+10 s 10 xH 5 f F
+981(fill)X
+1 f F
+1193(command.)X
+639 5088(2.)N
+735(paths)X
+932(to)X
+1022(be)X
+2 f F
+1126(stroked)X
+1 f F
+1390(are)X
+1517(processed)X
+1862(using)X
+2063(the)X
+2190(P)X
+8 s 8 xH F
+2234(OST-)X
+10 s 10 xH F
+735 5184(S)N
+8 s 8 xH F
+779(CRIPT)X
+10 s 10 xH 5 f F
+981(eofill)X
+1 f F
+1289(command.)X
+639 5328(3.)N
+735(paths)X
+928(to)X
+1015(be)X
+2 f F
+1116(erased)X
+1 f F
+1355(are)X
+1479(processed)X
+1821(using)X
+2019(specialized)X
+735 5424(procedures)N
+1108(which)X
+1324(will)X
+1468(be)X
+1564(discussed)X
+1891(later.)X
+735 5568(A)N
+826(letter)X
+1024(cannot)X
+1271(always)X
+1527(be)X
+1636(treated)X
+1888(as)X
+1988(one)X
+2138(unit)X
+2296(by)X
+576 5664(means)N
+832(of)X
+950(the)X
+5 f F
+1099(fill)X
+1 f F
+1342(and)X
+5 f F
+1509(eofill)X
+1 f F
+1848(commands.)X
+2265(For)X
+2520 672(instance,)N
+2833(the)X
+2962(letter)X
+3158(\252Q\272)X
+3319(is)X
+3403(built)X
+3580(of)X
+3678(two)X
+3829(di)X
+3891 MX
+(ff)138 606 oc
+3939(erent)X
+4131(paths,)X
+2520 768(the)N
+2643(\256rst)X
+2792(of)X
+2884(which)X
+3105(is)X
+3183(stroked)X
+3444(and)X
+3585(the)X
+3708(second)X
+3956(of)X
+4047(which)X
+4267(is)X
+2520 864(\256lled.)N
+2759(Generating)X
+3171(the)X
+3325(letter)X
+3546(using)X
+3775(the)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH 5 f F
+2520 960(eofill)N
+1 f F
+2830(command)X
+3168(causes)X
+3400(a)X
+3458(hole)X
+3617(in)X
+3700(the)X
+3819(image)X
+4036(\(see)X
+4187(Fig-)X
+2520 1056(ure)N
+2643(4\).)X
+3140 1152 MXY
+560
+560
+0.00
+0.00
+70.00
+70.00
+startFig
+%! Simon font
+%%%BoundingBox: 0 0 70 70
+%%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+%% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_Q
+(
+newpath
+%%new path
+ 458 668 M
+ -38 0 -74 -18 -102 -44 c
+ -8 -8 -14 -18 -22 -26 c
+ -34 -52 -44 -114 -44 -176 c
+ 2 0 l
+ 0 -60 10 -122 44 -172 c
+ 8 -10 14 -18 22 -24 c
+ 28 -28 62 -46 102 -46 c
+ 0 2 l
+ 40 0 74 18 102 46 c
+ 8 6 14 14 22 24 c
+ 34 50 44 112 44 172 c
+ -2 0 l
+ 0 62 -10 124 -44 176 c
+ -8 8 -14 18 -22 26 c
+ -28 26 -64 44 -102 44 c
+closepath
+%%end path
+%%new path
+ 458 686 M
+ -60 0 -118 -26 -162 -68 c
+ -2 -4 -6 -6 -8 -10 c
+ -46 -50 -70 -118 -70 -186 c
+ 2 0 l
+ 0 -68 24 -134 70 -184 c
+ 2 -2 4 -4 8 -6 c
+ 42 -44 100 -68 162 -68 c
+ 0 2 l
+ 62 0 120 24 162 68 c
+ 4 2 6 4 8 6 c
+ 46 50 70 116 70 184 c
+ -2 0 l
+ 0 68 -24 136 -70 186 c
+ -2 4 -6 6 -8 10 c
+ -44 42 -102 68 -162 68 c
+closepath
+%%end path
+%%new path
+ 466 178 M
+ -2 2 l
+ -4 0 l
+ -6 0 -12 2 -16 4 c
+ 0 -2 l
+ 2 0 l
+ -6 2 -14 8 -18 12 c
+ -2 0 l
+ 6 -4 l
+ 0 0 l
+ -2 2 l
+ -6 6 -10 12 -12 20 c
+ 2 -4 l
+ -2 2 l
+ -2 4 -2 10 -2 16 c
+ 2 0 l
+ -2 2 l
+ 2 -2 l
+ -2 -6 l
+ 2 4 l
+ 0 6 0 12 2 18 c
+ 0 -2 l
+ -2 -2 l
+ 2 0 l
+ 2 8 6 16 12 22 c
+ 0 -2 l
+ -8 -4 l
+ 2 0 l
+ 2 2 l
+ 2 0 l
+ 4 6 12 10 18 12 c
+ -4 -2 l
+ 2 2 l
+ 4 2 10 2 16 2 c
+ -2 -2 l
+ 4 2 l
+ 2 2 l
+ -8 -4 l
+ -6 4 l
+ 4 -2 l
+ 2 -2 l
+ 2 0 l
+ 8 0 16 -2 22 -4 c
+ -2 2 l
+ -2 0 l
+ 10 -4 16 -8 22 -14 c
+ 0 2 l
+ 2 -2 l
+ -6 4 l
+ 0 0 l
+ 2 0 l
+ 8 -10 16 -24 20 -38 c
+ 0 2 l
+ -2 2 l
+ 2 0 l
+ 12 -38 14 -84 26 -122 c
+ -2 2 l
+ 2 -4 l
+ 6 -14 12 -28 22 -38 c
+ -2 2 l
+ 4 -4 l
+ 6 -6 14 -10 22 -14 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 6 -2 14 -4 22 -4 c
+ 2 0 l
+ 0 2 l
+ 8 0 14 2 20 4 c
+ 0 -2 l
+ 2 2 l
+ 2 0 l
+ 8 4 16 8 24 16 c
+ -2 -2 l
+ 4 4 l
+ 10 10 18 26 24 42 c
+ 0 2 l
+ 2 2 l
+ 6 20 10 46 10 70 c
+ -2 4 l
+ -2 2 l
+ -4 2 l
+ -2 0 l
+ 0 -2 l
+ -2 0 l
+ 2 2 l
+ -4 -2 l
+ -2 -2 l
+ -2 -4 l
+ 0 -8 -2 -16 -4 -22 c
+ 2 0 l
+ 0 2 l
+ -4 -10 -10 -20 -18 -28 c
+ 0 0 l
+ 8 4 l
+ -4 0 l
+ -2 -2 l
+ -8 -8 -18 -14 -28 -18 c
+ 0 2 l
+ 2 0 l
+ -6 -2 -14 -4 -22 -4 c
+ -2 0 l
+ -4 -4 l
+ 8 4 l
+ 6 -4 l
+ -2 4 l
+ -4 0 l
+ 0 2 l
+ -8 0 -14 0 -20 2 c
+ 4 -2 l
+ -2 2 l
+ -10 4 -16 8 -24 14 c
+ -2 0 l
+ 6 -4 l
+ 2 -2 l
+ -2 2 l
+ 0 2 l
+ -34 34 -42 100 -74 134 c
+ 0 -2 l
+ -2 4 l
+ -2 0 l
+ -6 8 -14 12 -24 16 c
+ 2 -2 l
+ -4 2 l
+ -6 2 -14 4 -20 4 c
+ -2 0 l
+ 0 -2 l
+ -6 0 -12 0 -16 -2 c
+ -2 0 l
+ -2 -2 l
+ -6 -2 -14 -6 -18 -12 c
+ 0 2 l
+ -2 -4 l
+ -2 0 l
+ -6 -6 -10 -14 -12 -22 c
+ 0 -2 l
+ -2 0 l
+ -2 -6 -2 -12 -2 -18 c
+ 2 2 l
+ 0 -4 l
+ 0 -6 0 -12 2 -16 c
+ 0 -2 l
+ 2 -2 l
+ 2 -8 6 -14 12 -20 c
+ 2 -2 l
+ 2 0 l
+ 4 -4 12 -10 18 -12 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 4 -2 10 -4 16 -4 c
+ -2 2 l
+ 6 0 l
+ 2 4 l
+ 2 2 l
+ 0 2 l
+ -2 4 l
+closepath
+%%end path
+eofill
+) def
+
+end % of CharDefs dictionary
+
+Encoding 81 /The_letter_Q put
+Encoding 89 /The_letter_Y put
+
+Metrics
+ begin
+/The_letter_Q 527 fudge add def
+/The_letter_Y 525 fudge add def
+/.notdef 400 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -178 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [178 fudge sub 40 704 688] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 70 scalefont setfont
+ 0 0 moveto (Q) show
+endFig
+3285 1856(Figure)N
+3514(4)X
+2520 2016(So)N
+2632(while)X
+2838(generating)X
+3205(a)X
+3269(letter,)X
+3482(\256ll)X
+3599(mode)X
+3806(can)X
+3947(be)X
+4052(changed)X
+2520 2112(for)N
+2660(each)X
+2854(cyclic)X
+3092(path.)X
+3296(Moreover,)X
+3679(when)X
+3899(generating)X
+4284(a)X
+2520 2208(letter)N
+2707(whose)X
+2934(paths)X
+3126(should)X
+3362(be)X
+3461(\256lled,)X
+3668(it)X
+3735(is)X
+3811(not)X
+3936(always)X
+4182(pos-)X
+2520 2304(sible)N
+2691(to)X
+2773(use)X
+2900(just)X
+3035(one)X
+5 f F
+3171(fill)X
+1 f F
+3383(command)X
+3719(\(see)X
+3869(Figure)X
+4098(5\).)X
+3140 2400 MXY
+560
+560
+0.00
+0.00
+70.00
+70.00
+startFig
+%! Simon font
+%%%BoundingBox: 0 0 70 70
+%%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+%% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_Y
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%%new path
+ 180 670 0.5 add M
+ 28 -2 0.5 add 58 -2 0.5 add 88 -2 0.5 add c
+ 0 2 0.5 add l
+ 38 0 0.5 add 74 0 0.5 add 110 2 0.5 add c
+ -2 -2 0.5 add l
+-198 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 550 670 0.5 add M
+ 28 -2 0.5 add 56 -2 0.5 add 84 -2 0.5 add c
+ 0 2 0.5 add l
+ 24 0 0.5 add 46 0 0.5 add 68 2 0.5 add c
+ -2 -2 0.5 add l
+-152 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 334 180 0.5 sub M
+ 208 0 0.5 sub l
+ -34 2 0.5 sub -70 2 0.5 sub -104 2 0.5 sub c
+ 0 -2 0.5 sub l
+-106 0 l
+closepath
+%%end path
+%%erase
+eoclip
+newpath
+%%new path
+ 462 406 M
+ 54 86 106 172 160 258 c
+ 0 2 2 2 2 4 c
+ 4 2 8 4 12 4 c
+ 8 0 l
+ 0 -2 l
+ 0 0 2 0 2 -2 c
+ 2 0 2 -2 2 -4 c
+ -2 0 l
+ 0 -2 l
+ -60 -96 -118 -192 -178 -288 c
+ 0 -188 l
+ 0 -2 0 -4 -2 -6 c
+ -52 0 l
+ -2 0 -4 0 -6 2 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 188 l
+ -2 0 l
+ -58 96 -118 192 -176 288 c
+ 0 2 l
+ 2 0 l
+ 0 2 0 4 2 4 c
+ 0 2 2 2 2 2 c
+ 54 0 l
+ 0 -2 l
+ 6 0 10 -2 12 -4 c
+ 2 -2 2 -2 4 -4 c
+ 52 -86 104 -172 156 -258 c
+closepath
+%%end path
+%%new path
+ 256 624 M
+ 36 0 l
+ -8 16 -18 32 -26 48 c
+ 0 -2 l
+ -88 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 40 0 54 -4 c
+ 4 -2 10 -6 14 -10 c
+ 2 -4 6 -8 8 -12 c
+closepath
+%%end path
+%%new path
+ 328 624 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 8 2 10 c
+ 2 0 2 0 4 2 c
+ 12 6 28 6 44 6 c
+ 0 22 l
+ -2 -2 l
+ -108 0 l
+ 8 -16 18 -32 26 -48 c
+ 0 2 l
+ 36 0 l
+closepath
+%%end path
+%%new path
+ 584 604 M
+ 14 0 l
+ 12 22 24 46 36 68 c
+ -2 -2 l
+ -84 0 l
+ 0 -22 l
+ 2 0 l
+ 12 0 24 -2 32 -10 c
+ 2 -2 2 -2 4 -4 c
+ 2 -4 4 -8 4 -14 c
+ -2 0 l
+ 0 -6 -2 -12 -6 -18 c
+closepath
+%%end path
+%%new path
+ 610 604 M
+ 4 6 10 12 14 18 c
+ 8 6 14 12 24 16 c
+ 16 8 34 12 54 12 c
+ 0 22 l
+ -2 -2 l
+ -68 0 l
+ -12 -22 -24 -46 -36 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%%end path
+%%new path
+ 406 226 M
+ 0 -6 -2 -14 -6 -18 c
+ -2 -2 -4 -2 -6 -4 c
+ -12 -4 -42 -4 -62 -4 c
+ 0 -20 l
+ 108 0 l
+ 0 48 l
+ -2 -2 l
+-32 0 l
+closepath
+%%end path
+%%new path
+ 468 226 M
+ -30 0 l
+ 0 -46 l
+ 106 0 l
+ 0 22 l
+ -2 0 l
+ -20 0 -50 0 -62 4 c
+ -2 2 -4 2 -6 4 c
+ -4 4 -6 12 -6 18 c
+closepath
+%%end path
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 81 /The_letter_Q put
+Encoding 89 /The_letter_Y put
+
+Metrics
+ begin
+/The_letter_Q 527 fudge add def
+/The_letter_Y 525 fudge add def
+/.notdef 400 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -178 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [178 fudge sub 40 704 688] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 70 scalefont setfont
+ 0 0 moveto (Y) show
+endFig
+3285 3104(Figure)N
+3514(5)X
+2520 3264(When)N
+2747(a)X
+2818(P)X
+8 s 8 xH F
+2862(OST)X
+10 s 10 xH F
+2983(S)X
+8 s 8 xH F
+3027(CRIPT)X
+10 s 10 xH 5 f F
+3245(fill)X
+1 f F
+3473(command)X
+3825(is)X
+3914(applied)X
+4186(to)X
+4284(a)X
+2520 3360(path)N
+2692(that)X
+2846(is)X
+2933(composed)X
+3292(of)X
+3393(more)X
+3591(than)X
+3762(one)X
+3911(subpath,)X
+4213(say)X
+2520 3456(two)N
+2661(for)X
+2776(the)X
+2895(sake)X
+3059(of)X
+3147(simplicity,)X
+3507(and)X
+3645(one)X
+3783(subpath)X
+4054(is)X
+4129(inside)X
+2520 3552(the)N
+2654(other)X
+2855(and)X
+3007(is)X
+3095(drawn)X
+3331(in)X
+3428(a)X
+3499(direction)X
+3819(opposite)X
+4125(to)X
+4222(the)X
+2520 3648(external)N
+2804(one,)X
+2966(the)X
+3090(internal)X
+3361(path)X
+3525(is)X
+3604(considered)X
+3978(a)X
+4040(hole)X
+4204(and)X
+2520 3744(is)N
+2593(not)X
+2715(\256lled)X
+2899(\(see)X
+3049(Figure)X
+3279(6\).)X
+3407(So,)X
+3532(if)X
+3602(several)X
+3851(paths)X
+4041(are)X
+4161(to)X
+4244(be)X
+2520 3840(\256lled)N
+2723(in)X
+2824(this)X
+2978(manner,)X
+3278(the)X
+3414(description)X
+3808(of)X
+3913(each)X
+4099(one)X
+4253(of)X
+2520 3936(them)N
+2702(should)X
+2938(be)X
+3037(ended)X
+3252(with)X
+3417(the)X
+5 f F
+3538(fill)X
+1 f F
+3753(command.)X
+4132(There)X
+2520 4032(is)N
+2608(one)X
+2759(more)X
+2959(bene\256t)X
+3212(to)X
+3309(using)X
+3516(this)X
+3665(strategy:)X
+3975(The)X
+4134(P)X
+8 s 8 xH F
+4178(OST-)X
+10 s 10 xH F
+2520 4128(S)N
+8 s 8 xH F
+2564(CRIPT)X
+10 s 10 xH 5 f F
+2806(current)X
+3202(path)X
+1 f F
+3427(stack)X
+3625(becomes)X
+3939(empty)X
+4172(after)X
+2520 4224(encountering)N
+2971(any)X
+3119(kind)X
+3293(of)X
+5 f F
+3392(fill)X
+1 f F
+3615(command.)X
+3982(Therefore,)X
+2520 4320(using)N
+2735(the)X
+5 f F
+2875(fill)X
+1 f F
+3109(command)X
+3467(after)X
+3657(each)X
+3847(path)X
+4027(can)X
+4182(help)X
+2520 4416(avoid)N
+5 f F
+2761(stack)X
+3091(overflow)X
+3565(error)X
+1 f F
+(s)S
+3898(if)X
+4009(all)X
+4151(paths)X
+2520 4512(together)N
+2803(are)X
+2922(too)X
+3044(long.)X
+3 f F
+2679 4608(4.5.2)N
+2899(Treating)X
+3237(erasing)X
+3526(paths.)X
+1 f F
+3792(There)X
+4020(are)X
+4159(three)X
+2520 4704(methods)N
+2822(of)X
+2920(handling)X
+3231(the)X
+3360(problem)X
+3658(of)X
+3756(paths)X
+3956(that)X
+4107(should)X
+2520 4800(be)N
+2616(erased)X
+2842(by)X
+9 f F
+2944(mf2ps)X
+1 f F
+3181(itself:)X
+2583 4944(1.)N
+2679(\256lling)X
+2896(with)X
+3066(white:)X
+3294(Because)X
+3590(erasing)X
+3850(paths)X
+4047(are)X
+4174(built)X
+2679 5040(in)N
+2769(order)X
+2967(to)X
+3057(erase)X
+3251(an)X
+3355(existing)X
+3636(\256lled)X
+3828(area)X
+3991(and)X
+4134(P)X
+8 s 8 xH F
+4178(OST-)X
+10 s 10 xH F
+2679 5136(S)N
+8 s 8 xH F
+2723(CRIPT)X
+10 s 10 xH F
+2938(overlaps)X
+3243(paths)X
+3445(\(i.e.,)X
+3623(a)X
+3692(region)X
+3930(is)X
+4016(shown)X
+4258(in)X
+2679 5232(the)N
+2798(color)X
+2984(that)X
+3125(was)X
+3271(drawn)X
+3493(last\),)X
+3671(erasing)X
+3923(paths)X
+4112(can)X
+4244(be)X
+2679 5328(implemented)N
+3142(by)X
+3268(\256lling)X
+3504(those)X
+3719(paths)X
+3934(with)X
+4122(white.)X
+2679 5424(This)N
+2844(solution)X
+3124(is)X
+3200(the)X
+3321(easiest,)X
+3578(but)X
+3703(it)X
+3769(works)X
+3987(only)X
+4151(if)X
+4222(the)X
+2679 5520(background)N
+3100(is)X
+3195(white)X
+3415(and)X
+3573(the)X
+3713(letter)X
+3920(is)X
+4015(drawn)X
+4258(in)X
+2679 5616(some)N
+2879(level)X
+3066(of)X
+3164(gray.)X
+3358(If)X
+3443(one)X
+3589(wants)X
+3806(to)X
+3898(draw)X
+4089(a)X
+4155(letter)X
+2679 5712(with)N
+2861(background)X
+3280(other)X
+3485(than)X
+3663(white,)X
+3901(the)X
+4040(resulting)X
+2465 6084(9)N
+
+%%Page: 9 10
+9 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+608 672 MXY
+1736
+1968
+0.00
+-12.00
+217.00
+234.00
+startFig
+%!
+%%%Title: O
+%%%Creator: fig2ps
+%%%CreationDate: Fri Jul 6 08:19:06 1990
+%%%For: dberry@cs24 (dberry,479C,4325,252027,@$CP037,shlomo,cs24,)
+%%%Pages: 0
+%%%BoundingBox: 0 -12 217 234
+%%%Was: 0 0 217 222
+%%%EndComments
+/$F2psDict 32 dict def $F2psDict begin $F2psDict /mtrx matrix put
+ /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def
+ end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog
+$F2psBegin
+1 setlinecap 1 setlinejoin
+-71 68 translate
+0.000000 222.000000 translate 0.900 -0.900 scale
+0.700 setlinewidth
+%% Ellipse
+newpath 199 199 121 121 0 360 DrawEllipse gsave 0.750 setgray fill grestore stroke
+%% Ellipse
+newpath 199 199 61 61 0 360 DrawEllipse gsave 1.000 setgray fill grestore stroke
+%% Polyline
+newpath 189 316 moveto 217 319 lineto 189 322 lineto 189 316 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 210 262 moveto 186 259 lineto 210 256 lineto 210 262 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 188 137 moveto 212 139 lineto 188 143 lineto 188 137 lineto closepath gsave 0.000 setgray fill grestore stroke
+%% Polyline
+newpath 210 82 moveto 182 79 lineto 210 75 lineto 210 82 lineto closepath gsave 0.000 setgray fill grestore stroke
+$F2psEnd
+endFig
+1 f F
+1341 2784(Figure)N
+1570(6)X
+735 2944(appearance)N
+1118(will)X
+1262(not)X
+1384(be)X
+1480(correct.)X
+639 3088(2.)N
+735(calculating)X
+1125(new)X
+1298(paths)X
+1506(resulting)X
+1825(from)X
+2020(subtracting)X
+735 3184(the)N
+870(erasing)X
+1139(paths)X
+1345(from)X
+1538(the)X
+1673(previous)X
+1985(\256lled)X
+2185(paths:)X
+735 3280(Such)N
+920(a)X
+981(solution)X
+1263(can)X
+1400(be)X
+1501(global.)X
+1746(However,)X
+2086(it)X
+2155(costs)X
+2340(a)X
+735 3376(lot)N
+868(in)X
+979(terms)X
+1206(of)X
+1322(processing)X
+1714(time)X
+1905(and)X
+2069(accuracy,)X
+735 3472(because)N
+1018(paths)X
+1215(are)X
+1343(given)X
+1550(implicitly)X
+1889(by)X
+1998(four)X
+2161(points,)X
+735 3568(and)N
+873(in)X
+957(order)X
+1149(to)X
+1233(calculate)X
+1541(the)X
+1661(new)X
+1816(paths,)X
+2026(one)X
+2163(should)X
+735 3664(\256nd)N
+879(the)X
+997(intersection)X
+1391(points)X
+1606(of)X
+1693(Be)X
+1751(\302zier)X
+1924(curves,)X
+2175(i.e.,)X
+2314(to)X
+735 3760(\256nd)N
+882(points)X
+1100(that)X
+1243(lie)X
+1346(on)X
+1449(both)X
+1614(Be)X
+1672(\302zier)X
+1848(curves,)X
+2100(and)X
+2238(then)X
+735 3856(calculate)N
+1048(new)X
+1209(curves,)X
+1466(which)X
+1689(are)X
+1815(di)X
+1877 MX
+(Fi)139 825 oc
+(cult)S
+2090(to)X
+2179(calcu-)X
+735 3952(late)N
+871(from)X
+1047(those)X
+1236(points.)X
+639 4096(3.)N
+735(using)X
+955(the)X
+1100(P)X
+8 s 8 xH F
+1144(OST)X
+10 s 10 xH F
+1265(S)X
+8 s 8 xH F
+1309(CRIPT)X
+10 s 10 xH 5 f F
+1538(eoclip)X
+1 f F
+1874(command:)X
+2260(Be-)X
+735 4192(cause)N
+936(the)X
+1056(letters)X
+1274(are)X
+1394(bounded)X
+1691(in)X
+1774(a)X
+1831(1000)X
+47 f F
+2011(\264)X
+1 f F
+2055(1000)X
+2236(box,)X
+735 4288(a)N
+805(primary)X
+1093(square)X
+1337(path)X
+1509(whose)X
+1749(segments)X
+2082(are)X
+2216(1000)X
+735 4384(units)N
+923(long)X
+1098(should)X
+1344(be)X
+1453(declared)X
+1759(and)X
+1908(after)X
+2089(it)X
+2166(all)X
+2278(the)X
+735 4480(erasing)N
+991(paths)X
+1184(should)X
+1421(be)X
+1521(listed.)X
+1738(After)X
+1932(relocating)X
+2278(the)X
+735 4576(erasing)N
+1005(paths)X
+1212(we)X
+1344(are)X
+1481(ready)X
+1698(to)X
+1798(declare)X
+5 f F
+2068(eoclip)X
+1 f F
+(,)S
+735 4672(which)N
+957(means)X
+1188(that)X
+1334(the)X
+1458(clipping)X
+1747(path)X
+1912(is)X
+1992(the)X
+2117(external)X
+735 4768(primary)N
+1031(one)X
+1189(and)X
+1347(the)X
+1487(internal)X
+1774(paths,)X
+2005(the)X
+2144(erasing)X
+735 4864(paths,)N
+959(are)X
+1093(holes.)X
+1317(This)X
+1494(is)X
+1583(an)X
+1695(elegant)X
+1963(solution)X
+2256(that)X
+735 4960(uses)N
+899(the)X
+1023(power)X
+1250(of)X
+1342(the)X
+1465(language)X
+1780(and)X
+1921(is)X
+1999(available)X
+2314(in)X
+735 5056(simple)N
+976(situations)X
+1310(in)X
+1400(which)X
+1624(there)X
+1813(is)X
+1894(no)X
+2002(intersection)X
+735 5152(between)N
+1030(the)X
+1155(erasing)X
+1414(paths)X
+1610(\(see)X
+1767(Figure)X
+2002(7\).)X
+2135(If)X
+2215(there)X
+735 5248(were)N
+923(intersections,)X
+1379(a)X
+1446(little)X
+1623(more)X
+1819(sophisticated)X
+2269(use)X
+735 5344(of)N
+827(the)X
+5 f F
+950(eoclip)X
+1 f F
+1262(command)X
+1602(would)X
+1826(be)X
+1926(needed.)X
+2198(Relo-)X
+735 5440(cation)N
+970(of)X
+1076(the)X
+1214(erasing)X
+1486(paths)X
+1695(is)X
+1788(done)X
+1984(by)X
+2104(the)X
+2242(pro-)X
+735 5536(cedure)N
+5 f F
+970(doarrange)X
+1 f F
+(.)S
+2788 672 MXY
+1264
+560
+0.00
+0.00
+158.00
+70.00
+startFig
+%! Simon font
+%%%BoundingBox: 0 0 158 70
+%%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+%% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_Q
+(
+newpath
+%%new path
+ 458 668 M
+ -38 0 -74 -18 -102 -44 c
+ -8 -8 -14 -18 -22 -26 c
+ -34 -52 -44 -114 -44 -176 c
+ 2 0 l
+ 0 -60 10 -122 44 -172 c
+ 8 -10 14 -18 22 -24 c
+ 28 -28 62 -46 102 -46 c
+ 0 2 l
+ 40 0 74 18 102 46 c
+ 8 6 14 14 22 24 c
+ 34 50 44 112 44 172 c
+ -2 0 l
+ 0 62 -10 124 -44 176 c
+ -8 8 -14 18 -22 26 c
+ -28 26 -64 44 -102 44 c
+closepath
+%%end path
+%%new path
+ 458 686 M
+ -60 0 -118 -26 -162 -68 c
+ -2 -4 -6 -6 -8 -10 c
+ -46 -50 -70 -118 -70 -186 c
+ 2 0 l
+ 0 -68 24 -134 70 -184 c
+ 2 -2 4 -4 8 -6 c
+ 42 -44 100 -68 162 -68 c
+ 0 2 l
+ 62 0 120 24 162 68 c
+ 4 2 6 4 8 6 c
+ 46 50 70 116 70 184 c
+ -2 0 l
+ 0 68 -24 136 -70 186 c
+ -2 4 -6 6 -8 10 c
+ -44 42 -102 68 -162 68 c
+closepath
+%%end path
+eofill
+%%new path
+ 466 178 M
+ -2 2 l
+ -4 0 l
+ -6 0 -12 2 -16 4 c
+ 0 -2 l
+ 2 0 l
+ -6 2 -14 8 -18 12 c
+ -2 0 l
+ 6 -4 l
+ 0 0 l
+ -2 2 l
+ -6 6 -10 12 -12 20 c
+ 2 -4 l
+ -2 2 l
+ -2 4 -2 10 -2 16 c
+ 2 0 l
+ -2 2 l
+ 2 -2 l
+ -2 -6 l
+ 2 4 l
+ 0 6 0 12 2 18 c
+ 0 -2 l
+ -2 -2 l
+ 2 0 l
+ 2 8 6 16 12 22 c
+ 0 -2 l
+ -8 -4 l
+ 2 0 l
+ 2 2 l
+ 2 0 l
+ 4 6 12 10 18 12 c
+ -4 -2 l
+ 2 2 l
+ 4 2 10 2 16 2 c
+ -2 -2 l
+ 4 2 l
+ 2 2 l
+ -8 -4 l
+ -6 4 l
+ 4 -2 l
+ 2 -2 l
+ 2 0 l
+ 8 0 16 -2 22 -4 c
+ -2 2 l
+ -2 0 l
+ 10 -4 16 -8 22 -14 c
+ 0 2 l
+ 2 -2 l
+ -6 4 l
+ 0 0 l
+ 2 0 l
+ 8 -10 16 -24 20 -38 c
+ 0 2 l
+ -2 2 l
+ 2 0 l
+ 12 -38 14 -84 26 -122 c
+ -2 2 l
+ 2 -4 l
+ 6 -14 12 -28 22 -38 c
+ -2 2 l
+ 4 -4 l
+ 6 -6 14 -10 22 -14 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 6 -2 14 -4 22 -4 c
+ 2 0 l
+ 0 2 l
+ 8 0 14 2 20 4 c
+ 0 -2 l
+ 2 2 l
+ 2 0 l
+ 8 4 16 8 24 16 c
+ -2 -2 l
+ 4 4 l
+ 10 10 18 26 24 42 c
+ 0 2 l
+ 2 2 l
+ 6 20 10 46 10 70 c
+ -2 4 l
+ -2 2 l
+ -4 2 l
+ -2 0 l
+ 0 -2 l
+ -2 0 l
+ 2 2 l
+ -4 -2 l
+ -2 -2 l
+ -2 -4 l
+ 0 -8 -2 -16 -4 -22 c
+ 2 0 l
+ 0 2 l
+ -4 -10 -10 -20 -18 -28 c
+ 0 0 l
+ 8 4 l
+ -4 0 l
+ -2 -2 l
+ -8 -8 -18 -14 -28 -18 c
+ 0 2 l
+ 2 0 l
+ -6 -2 -14 -4 -22 -4 c
+ -2 0 l
+ -4 -4 l
+ 8 4 l
+ 6 -4 l
+ -2 4 l
+ -4 0 l
+ 0 2 l
+ -8 0 -14 0 -20 2 c
+ 4 -2 l
+ -2 2 l
+ -10 4 -16 8 -24 14 c
+ -2 0 l
+ 6 -4 l
+ 2 -2 l
+ -2 2 l
+ 0 2 l
+ -34 34 -42 100 -74 134 c
+ 0 -2 l
+ -2 4 l
+ -2 0 l
+ -6 8 -14 12 -24 16 c
+ 2 -2 l
+ -4 2 l
+ -6 2 -14 4 -20 4 c
+ -2 0 l
+ 0 -2 l
+ -6 0 -12 0 -16 -2 c
+ -2 0 l
+ -2 -2 l
+ -6 -2 -14 -6 -18 -12 c
+ 0 2 l
+ -2 -4 l
+ -2 0 l
+ -6 -6 -10 -14 -12 -22 c
+ 0 -2 l
+ -2 0 l
+ -2 -6 -2 -12 -2 -18 c
+ 2 2 l
+ 0 -4 l
+ 0 -6 0 -12 2 -16 c
+ 0 -2 l
+ 2 -2 l
+ 2 -8 6 -14 12 -20 c
+ 2 -2 l
+ 2 0 l
+ 4 -4 12 -10 18 -12 c
+ 0 2 l
+ 2 -2 l
+ 2 0 l
+ 4 -2 10 -4 16 -4 c
+ -2 2 l
+ 6 0 l
+ 2 4 l
+ 2 2 l
+ 0 2 l
+ -2 4 l
+closepath
+%%end path
+fill
+) def
+
+/The_letter_Y
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%%new path
+ 180 670 0.8 add M
+ 28 -2 0.8 add 58 -2 0.8 add 88 -2 0.8 add c
+ 0 2 0.8 add l
+ 38 0 0.8 add 74 0 0.8 add 110 2 0.8 add c
+ -2 -2 0.8 add l
+-198 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 550 670 0.8 add M
+ 28 -2 0.8 add 56 -2 0.8 add 84 -2 0.8 add c
+ 0 2 0.8 add l
+ 24 0 0.8 add 46 0 0.8 add 68 2 0.8 add c
+ -2 -2 0.8 add l
+-152 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 334 180 0.8 sub M
+ 208 0 0.8 sub l
+ -34 2 0.8 sub -70 2 0.8 sub -104 2 0.8 sub c
+ 0 -2 0.8 sub l
+-106 0 l
+closepath
+%%end path
+%%erase
+eoclip
+newpath
+%%new path
+ 462 406 M
+ 54 86 106 172 160 258 c
+ 0 2 2 2 2 4 c
+ 4 2 8 4 12 4 c
+ 8 0 l
+ 0 -2 l
+ 0 0 2 0 2 -2 c
+ 2 0 2 -2 2 -4 c
+ -2 0 l
+ 0 -2 l
+ -60 -96 -118 -192 -178 -288 c
+ 0 -188 l
+ 0 -2 0 -4 -2 -6 c
+ -52 0 l
+ -2 0 -4 0 -6 2 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 188 l
+ -2 0 l
+ -58 96 -118 192 -176 288 c
+ 0 2 l
+ 2 0 l
+ 0 2 0 4 2 4 c
+ 0 2 2 2 2 2 c
+ 54 0 l
+ 0 -2 l
+ 6 0 10 -2 12 -4 c
+ 2 -2 2 -2 4 -4 c
+ 52 -86 104 -172 156 -258 c
+closepath
+%%end path
+fill
+%%new path
+ 256 624 M
+ 36 0 l
+ -8 16 -18 32 -26 48 c
+ 0 -2 l
+ -88 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 40 0 54 -4 c
+ 4 -2 10 -6 14 -10 c
+ 2 -4 6 -8 8 -12 c
+closepath
+%%end path
+fill
+%%new path
+ 328 624 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 8 2 10 c
+ 2 0 2 0 4 2 c
+ 12 6 28 6 44 6 c
+ 0 22 l
+ -2 -2 l
+ -108 0 l
+ 8 -16 18 -32 26 -48 c
+ 0 2 l
+ 36 0 l
+closepath
+%%end path
+fill
+%%new path
+ 584 604 M
+ 14 0 l
+ 12 22 24 46 36 68 c
+ -2 -2 l
+ -84 0 l
+ 0 -22 l
+ 2 0 l
+ 12 0 24 -2 32 -10 c
+ 2 -2 2 -2 4 -4 c
+ 2 -4 4 -8 4 -14 c
+ -2 0 l
+ 0 -6 -2 -12 -6 -18 c
+closepath
+%%end path
+fill
+%%new path
+ 610 604 M
+ 4 6 10 12 14 18 c
+ 8 6 14 12 24 16 c
+ 16 8 34 12 54 12 c
+ 0 22 l
+ -2 -2 l
+ -68 0 l
+ -12 -22 -24 -46 -36 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%%end path
+fill
+%%new path
+ 406 226 M
+ 0 -6 -2 -14 -6 -18 c
+ -2 -2 -4 -2 -6 -4 c
+ -12 -4 -42 -4 -62 -4 c
+ 0 -20 l
+ 108 0 l
+ 0 48 l
+ -2 -2 l
+-32 0 l
+closepath
+%%end path
+fill
+%%new path
+ 468 226 M
+ -30 0 l
+ 0 -46 l
+ 106 0 l
+ 0 22 l
+ -2 0 l
+ -20 0 -50 0 -62 4 c
+ -2 2 -4 2 -6 4 c
+ -4 4 -6 12 -6 18 c
+closepath
+%%end path
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 81 /The_letter_Q put
+Encoding 89 /The_letter_Y put
+
+Metrics
+ begin
+/The_letter_Q 527 fudge add def
+/The_letter_Y 525 fudge add def
+/.notdef 400 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -178 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [178 fudge sub 40 704 688] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 70 scalefont setfont
+ 0 0 moveto (Q Y) show
+endFig
+3285 1376(Figure)N
+3514(7)X
+2679 1536(There)N
+2904(are)X
+3040(other)X
+3242(problems)X
+3577(caused)X
+3834(by)X
+3952(the)X
+4088(erasing)X
+2520 1632(paths.)N
+2730(Because)X
+3019(the)X
+3138(erasing)X
+3391(paths)X
+3581(have)X
+3754(segments)X
+4073(in)X
+4155(com-)X
+2520 1728(mon)N
+2695(with)X
+2870(paths)X
+3072(to)X
+3168(be)X
+3278(\256lled,)X
+3496(P)X
+8 s 8 xH F
+3540(OST)X
+10 s 10 xH F
+3661(S)X
+8 s 8 xH F
+3705(CRIPT)X
+10 s 10 xH F
+3921(must)X
+4110(decide)X
+2520 1824(whether)N
+2805(the)X
+2929(common)X
+3235(segments)X
+3559(are)X
+3684(in)X
+3772(the)X
+3895(clipping)X
+4182(path)X
+2520 1920(or)N
+2611(not.)X
+2777(P)X
+8 s 8 xH F
+2821(OST)X
+10 s 10 xH F
+2942(S)X
+8 s 8 xH F
+2986(CRIPT)X
+10 s 10 xH F
+3192(does)X
+3363(not)X
+3489(seem)X
+3678(to)X
+3764(have)X
+3940(a)X
+4000(consistent)X
+2520 2016(policy)N
+2754(on)X
+2868(that)X
+3022(and)X
+3172(it)X
+3250(seems)X
+3479(to)X
+3574(be)X
+3683(that)X
+3836(the)X
+3967(decision)X
+4267(is)X
+2520 2112(taken)N
+2714(arbitrarily)X
+3055(\(see)X
+3205(Figure)X
+3434(8\).)X
+3260 2208 MXY
+320
+320
+0.00
+0.00
+40.00
+40.00
+startFig
+%! Simon font
+%%%BoundingBox: 0 0 40 40
+%%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+%% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_x
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%%new path
+ 192 488 M
+ 22 -2 44 -2 66 -2 c
+ 0 2 l
+ 28 0 54 0 82 2 c
+ -2 -2 l
+-148 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 404 180 M
+ 146 0 l
+ -22 2 -44 2 -66 2 c
+ 0 -2 l
+-82 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 410 488 M
+ 24 -2 48 -2 72 -2 c
+ 0 2 l
+ 20 0 38 0 58 2 c
+ -2 -2 l
+-130 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 188 180 M
+ 128 0 l
+ -24 2 -48 2 -72 2 c
+ 0 -2 l
+-58 0 l
+closepath
+%%end path
+%%erase
+eoclip
+newpath
+%%new path
+ 280 486 M
+ -2 2 -6 4 -8 4 c
+ 0 -2 l
+ -38 0 l
+ -2 0 -2 0 -4 -2 c
+ 0 -2 l
+ 2 0 l
+ 0 -4 l
+ 76 -100 154 -198 230 -298 c
+ 2 -2 6 -2 8 -2 c
+ 38 0 l
+ 2 0 2 0 4 2 c
+ 0 2 l
+ -2 0 l
+ 0 4 l
+ -76 100 -154 198 -230 298 c
+closepath
+%%end path
+fill
+%%new path
+ 230 180 M
+ 10 0 l
+ 6 0 12 2 16 6 c
+ 0 0 2 2 2 2 c
+ 80 100 160 198 238 298 c
+ 2 0 2 2 2 2 c
+ -2 0 l
+ 0 0 0 0 -2 2 c
+ -2 0 l
+ 0 -2 l
+ -6 0 l
+ -6 0 -12 -2 -16 -6 c
+ 0 0 -2 -2 -2 -2 c
+ -80 -100 -160 -198 -238 -298 c
+ -2 0 -2 -2 -2 -2 c
+closepath
+%%end path
+fill
+%%new path
+ 264 442 M
+ 24 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+ -66 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 34 0 46 -4 c
+ 6 -2 10 -6 16 -10 c
+ 2 -4 6 -8 10 -12 c
+closepath
+%%end path
+fill
+%%new path
+ 314 442 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 6 4 10 c
+ 6 6 14 8 22 8 c
+ 0 22 l
+ -2 -2 l
+ -80 0 l
+ 10 -16 22 -32 32 -48 c
+ 0 2 l
+ 26 0 l
+closepath
+%%end path
+fill
+%%new path
+ 428 226 M
+ 2 -2 2 -6 2 -8 c
+ -2 0 l
+ 0 -4 0 -6 -4 -10 c
+ -6 -6 -14 -8 -22 -8 c
+ 0 -20 l
+ 82 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+-26 0 l
+closepath
+%%end path
+fill
+%%new path
+ 478 226 M
+ -24 0 l
+ 10 -16 22 -32 32 -46 c
+ 66 0 l
+ 0 22 l
+ -2 0 l
+ -16 0 -34 0 -46 4 c
+ -6 2 -10 6 -16 10 c
+ -2 4 -6 8 -10 12 c
+closepath
+%%end path
+fill
+%%new path
+ 422 422 M
+ 12 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+ -72 0 l
+ 0 -22 l
+ 2 0 l
+ 6 0 12 -2 16 -6 c
+ 2 -2 4 -6 4 -10 c
+ 2 -2 2 -4 2 -6 c
+ -2 0 l
+ 0 -8 -4 -18 -10 -24 c
+closepath
+%%end path
+fill
+%%new path
+ 446 422 M
+ 2 4 6 8 10 12 c
+ 8 8 20 16 32 22 c
+ 16 8 34 12 52 12 c
+ 0 22 l
+ -2 -2 l
+ -58 0 l
+ -16 -22 -32 -46 -48 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%%end path
+fill
+%%new path
+ 280 246 M
+ -2 -4 -6 -8 -10 -12 c
+ -8 -8 -20 -16 -32 -22 c
+ -16 -8 -34 -12 -52 -12 c
+ 0 -20 l
+ 60 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+-12 0 l
+closepath
+%%end path
+fill
+%%new path
+ 304 246 M
+ -12 0 l
+ -16 -22 -32 -46 -48 -66 c
+ 74 0 l
+ 0 22 l
+ -2 0 l
+ -6 0 -12 2 -16 6 c
+ -2 2 -4 6 -4 10 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 8 4 18 10 24 c
+closepath
+%%end path
+fill
+%%for fake line
+newpath
+160 180 M
+360 0 l
+0 .5 l
+-360 0 l
+0 -.5 l
+closepath
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 120 /The_letter_x put
+
+Metrics
+ begin
+/The_letter_x 367 fudge add def
+/.notdef 0 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -186 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [186 fudge sub 180 552 490] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 40 scalefont setfont
+ 0 0 moveto (x) show
+endFig
+3285 2672(Figure)N
+3514(8)X
+2520 2832(An)N
+2645(attempt)X
+2912(to)X
+3001(resolve)X
+3260(the)X
+3385(clipping)X
+3674(path)X
+3839(problem)X
+4133(led)X
+4258(to)X
+2520 2928(the)N
+2653(\256rst)X
+2812(author)X
+3052(sending)X
+3336(the)X
+3468(following)X
+3813(electronic)X
+4164(mes-)X
+2520 3024(sage)N
+2695(\(obviously,)X
+3089(not)X
+3223(as)X
+3323(nicely)X
+3552(formatted)X
+3897(as)X
+3997(herein\))X
+4258(to)X
+2520 3120(Glenn)N
+2736(Reid)X
+2907(of)X
+2994(Adobe)X
+3228(Systems,)X
+3534(Inc.)X
+2679 3264(From)N
+2872(simon)X
+3087(Tue)X
+3232(Mar)X
+3386(21)X
+3486(13:22:32)X
+3790(1989)X
+2679 3360(To:)N
+2810(greid@adobe.com)X
+2679 3456(Subject:)N
+2961(Problem)X
+3252(in)X
+3334(PostScript)X
+2679 3648(Dear)N
+2856(Mr.)X
+2994(Reid)X
+2679 3840(I)N
+2746(have)X
+2938(got)X
+3080(a)X
+3157(problem)X
+3465(in)X
+3568(understanding)X
+4063(the)X
+2679 3936(PostScript)N
+3040(policy)X
+3273(in)X
+3368(determining)X
+3788(\252what)X
+4013(is)X
+4099(in)X
+2679 4032(the)N
+2802(clipping)X
+3089(path\272.)X
+3328(I)X
+3380(think)X
+3569(there)X
+3755(is)X
+3833(a)X
+3894(problem)X
+2679 4128(in)N
+2777(the)X
+2911(boundaries.)X
+3339(Here)X
+3532(is)X
+3621(an)X
+3733(example)X
+4041(that)X
+2679 4224(shows)N
+2899(that)X
+3039(problem:)X
+5 f F
+2886 4416(gsave)N
+2886 4512(initclip)N
+2886 4608(newpath)N
+2886 4800(0)N
+2982(0)X
+3078(moveto)X
+2886 4896(0)N
+2982(1000)X
+3222(lineto)X
+2886 4992(1000)N
+3126(1000)X
+3366(lineto)X
+2886 5088(1000)N
+3126(0)X
+3222(lineto)X
+2886 5184(0)N
+2982(0)X
+3078(lineto)X
+2886 5376(300)N
+3078(100)X
+3270(moveto)X
+2886 5472(700)N
+3078(100)X
+3270(lineto)X
+2886 5568(700)N
+3078(300)X
+3270(lineto)X
+2886 5664(300)N
+3078(300)X
+3270(lineto)X
+1 f F
+2465 6084(10)N
+
+%%Page: 10 11
+10 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+5 f F
+942 672(300)N
+1134(100)X
+1326(lineto)X
+942 864(700)N
+1134(900)X
+1326(moveto)X
+942 960(300)N
+1134(900)X
+1326(lineto)X
+942 1056(300)N
+1134(700)X
+1326(lineto)X
+942 1152(700)N
+1134(700)X
+1326(lineto)X
+942 1248(700)N
+1134(900)X
+1326(lineto)X
+942 1440(eoclip)N
+942 1632(newpath)N
+942 1728(100)N
+1134(100)X
+1326(moveto)X
+942 1824(900)N
+1134(100)X
+1326(lineto)X
+942 1920(900)N
+1134(900)X
+1326(lineto)X
+942 2016(100)N
+1134(900)X
+1326(lineto)X
+942 2112(100)N
+1134(100)X
+1326(lineto)X
+942 2208(fill)N
+942 2304(grestore)N
+1 f F
+735 2496(As)N
+850(you)X
+996(see,)X
+1145(the)X
+1269(problem)X
+1562(is)X
+1642(that)X
+1789(on)X
+1896(top)X
+2025(of)X
+2119(the)X
+735 2592(shape,)N
+977(the)X
+1114(line)X
+1273(which)X
+1508(belongs)X
+1796(to)X
+1897(the)X
+2034(upper)X
+735 2688(\252hole\272)N
+971(in)X
+1059(the)X
+1183(clipping)X
+1471(path)X
+1635(and)X
+1777(to)X
+1865(the)X
+1989(current)X
+735 2784(path)N
+894(\()X
+942(to)X
+1025(be)X
+1122(\256lled)X
+1307(\))X
+1354(is)X
+1427(drawn,)X
+1668(and)X
+1804(on)X
+1904(bottom)X
+2150(of)X
+735 2880(the)N
+853(shape)X
+1056(it)X
+1120(is)X
+1193(not.)X
+735 3072(This)N
+913(is)X
+1003(happening)X
+1374(both)X
+1553(on)X
+1670(the)X
+1805(Apple)X
+2038(Laser)X
+735 3168(printer)N
+969(and)X
+1105(on)X
+1205(the)X
+1323(QMS-80.)X
+735 3360(I)N
+782(would)X
+1002(be)X
+1098(glad)X
+1256(to)X
+1338(have)X
+1510(a)X
+1566(reply)X
+1751(from)X
+1927(you.)X
+735 3552(Thanks)N
+991(in)X
+1073(advance)X
+735 3648(Shimon)N
+1003(Yanai)X
+735 3744(C.S)N
+872(Dep.)X
+735 3840(Technion)N
+576 3984(What)N
+783(Mr.)X
+934(Reid)X
+1118(saw)X
+1276(when)X
+1483(he)X
+1592(printed)X
+1853(the)X
+1985(P)X
+8 s 8 xH F
+2029(OST)X
+10 s 10 xH F
+2150(S)X
+8 s 8 xH F
+2194(CRIPT)X
+10 s 10 xH F
+576 4080(commands)N
+957(contained)X
+1302(in)X
+1397(the)X
+1528(message)X
+1833(is)X
+1919(reproduced)X
+2314(in)X
+576 4176(Figure)N
+805(9.)X
+1316 4272 MXY
+320
+416
+0.00
+0.00
+40.00
+52.00
+startFig
+%! Simon font
+%%%BoundingBox: 0 0 40 52
+%%%Was: 0 0 40 40
+%%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+%% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_square
+(
+ gsave
+ initclip
+ newpath
+
+ 0 0 moveto
+ 0 1000 lineto
+ 1000 1000 lineto
+ 1000 0 lineto
+ 0 0 lineto
+
+ 300 100 moveto
+ 700 100 lineto
+ 700 300 lineto
+ 300 300 lineto
+ 300 100 lineto
+
+ 700 900 moveto
+ 300 900 lineto
+ 300 700 lineto
+ 700 700 lineto
+ 700 900 lineto
+
+ eoclip
+
+ newpath
+ 100 100 moveto
+ 900 100 lineto
+ 900 900 lineto
+ 100 900 lineto
+ 100 100 lineto
+ fill
+ grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 120 /The_square put
+
+Metrics
+ begin
+/The_square 1000 fudge add def
+/.notdef 0 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -186 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [186 fudge sub 180 552 490] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 40 scalefont setfont
+ 0 0 moveto (x) show
+endFig
+1341 4832(Figure)N
+1570(9)X
+576 4992(Mr.)N
+714(Reid)X
+885(replied)X
+1128(with)X
+1290(the)X
+1408(following:)X
+735 5136(From:)N
+950(greid@adobe.com)X
+1559(\(Glenn)X
+1802(Reid\))X
+735 5232(To:)N
+866(Shimon)X
+1134(Yanai)X
+1346(<simon@techunix>)X
+735 5328(Cc:)N
+866(greid@adobe.com)X
+735 5424(Subject:)N
+1017(Re:)X
+1148(Problem)X
+1439(in)X
+1521(PostScript)X
+735 5520(In-Reply-To:)N
+1178(Your)X
+1363(message)X
+1655(of)X
+1742(Wed,)X
+1934(22)X
+2034(Mar)X
+2188(89)X
+2288(...)X
+735 5616(Date:)N
+929(Wed,)X
+1121(22)X
+1221(Mar)X
+1375(89)X
+1475(11:41:35)X
+1779(PST)X
+2679 672(The)N
+2838(problem)X
+3139(is)X
+3226(that)X
+3380(the)X
+3512(path)X
+3684(you)X
+3838(are)X
+3971(\256lling)X
+2679 768(falls)N
+2842(exactly)X
+3099(on)X
+3204(the)X
+3327(edge)X
+3504(of)X
+3595(the)X
+3717(clipping)X
+4003(path.)X
+2679 864(This)N
+2856(produces)X
+3181(a)X
+3252(zero-width)X
+3635(area)X
+3805(to)X
+3902(\256ll,)X
+4045(and)X
+2679 960(unfortunately)N
+3158(it)X
+3249(sometimes)X
+3638(\256lls)X
+3803(and)X
+3965(some-)X
+2679 1056(times)N
+2876(does)X
+3047(not)X
+3174(with)X
+3341(the)X
+3464(current)X
+3717(\256ll)X
+3830(algorithm.)X
+2679 1152(I)N
+2737(believe)X
+3000(that)X
+3151(it)X
+3226(is)X
+3310(related)X
+3559(to)X
+3651(the)X
+3779(direction)X
+4094(of)X
+2679 1248(the)N
+2809(paths;)X
+3033(if)X
+3115(the)X
+3246(paths)X
+3448(are)X
+3580(going)X
+3795(in)X
+3890(opposite)X
+2679 1344(directions)N
+3019(along)X
+3221(the)X
+3343(same)X
+3531(line,)X
+3694(it)X
+3761(will)X
+3908(\256ll)X
+4019(with)X
+2679 1440(a)N
+2743(one-pixel)X
+3074(area,)X
+3257(but)X
+3388(if)X
+3466(they)X
+3633(are)X
+3761(going)X
+3972(in)X
+4063(the)X
+2679 1536(same)N
+2874(direction,)X
+3209(it)X
+3283(will)X
+3437(not)X
+3569(\256ll.)X
+3727(I)X
+3784(believe)X
+4046(this)X
+2679 1632(has)N
+2840(been)X
+3046(\256xed)X
+3260(to)X
+3376(be)X
+3506(more)X
+3725(consistent)X
+4099(in)X
+2679 1728(Display)N
+2948(PostScript,)X
+3316(for)X
+3430(what)X
+3606(it's)X
+3728(worth.)X
+2679 1920(Glenn)N
+2895(Reid)X
+2679 2016(Adobe)N
+2913(Systems)X
+2679 2160(The)N
+2845(idea)X
+3020(of)X
+3128(using)X
+3342(opposite)X
+3654(directions)X
+4011(had)X
+4168(been)X
+2520 2256(checked)N
+2805(before)X
+3032(sending)X
+3302(the)X
+3421(letter,)X
+3626(so)X
+3717(the)X
+3835(problem)X
+4122(had)X
+4258(to)X
+2520 2352(be)N
+2627(solved)X
+2867(within)X
+3102(the)X
+3231(back)X
+3414(end)X
+3561(of)X
+9 f F
+3662(mf2ps)X
+1 f F
+3879(.)X
+3931(The)X
+4088(erasing)X
+2520 2448(paths)N
+2719(near)X
+2888(the)X
+3016(top)X
+3147(of)X
+3243(the)X
+3370(letter)X
+3564(had)X
+3709(their)X
+2 f F
+3885(y)X
+1 f F
+3950(coordinates)X
+2520 2544(increased)N
+2850(by)X
+2956(0.8)X
+3082(points,)X
+3323(and)X
+3465(those)X
+3660(near)X
+3826(the)X
+3951(bottom)X
+4204(had)X
+2520 2640(their)N
+2 f F
+2690(y)X
+1 f F
+2749(coordinates)X
+3142(decreased)X
+3483(by)X
+3586(the)X
+3707(same)X
+3895(amount.)X
+4178(This)X
+2520 2736(shift)N
+2701(is)X
+2793(invisible)X
+3108(to)X
+3210(the)X
+3348(human)X
+3606(eye)X
+3758(because)X
+4053(the)X
+4191(font)X
+2520 2832(de\256nitions)N
+2884(are)X
+3010(in)X
+3099(terms)X
+3304(of)X
+3397(hundreds)X
+3717(of)X
+3810(points)X
+4031(\(see)X
+4187(Fig-)X
+2520 2928(ure)N
+2649(10\).)X
+2802(This)X
+2970(solution)X
+3253(was)X
+3404(designed)X
+3715(to)X
+3804(work)X
+3996(with)X
+4165(most)X
+2520 3024(existing)N
+0 f F
+2794(METAFONT)X
+1 f F
+3155(fonts.)X
+3355(It)X
+3424(is)X
+3497(possible)X
+3779(that)X
+3919(there)X
+4100(will)X
+4244(be)X
+2520 3120(fonts)N
+2700(that)X
+2840(are)X
+2959(not)X
+3081(treated)X
+3320(well)X
+3478(by)X
+3578(this)X
+3713(solution.)X
+3260 3216 MXY
+320
+320
+0.00
+0.00
+40.00
+40.00
+startFig
+%! Simon font
+%%%BoundingBox: 0 0 40 40
+%%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+%% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_x
+(
+gsave
+initclip
+newpath
+0 0 M
+0 1000 L
+1000 1000 L
+1000 0 L
+0 0 L
+%%new path
+ 192 488 0.8 add M
+ 22 -2 0.8 add 44 -2 0.8 add 66 -2 0.8 add c
+ 0 2 0.8 add l
+ 28 0 0.8 add 54 0 0.8 add 82 2 0.8 add c
+ -2 -2 0.8 add l
+-148 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 404 180 0.8 sub M
+ 146 0 0.8 sub l
+ -22 2 0.8 sub -44 2 0.8 sub -66 2 0.8 sub c
+ 0 -2 0.8 sub l
+-82 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 410 488 0.8 add M
+ 24 -2 0.8 add 48 -2 0.8 add 72 -2 0.8 add c
+ 0 2 0.8 add l
+ 20 0 0.8 add 38 0 0.8 add 58 2 0.8 add c
+ -2 -2 0.8 add l
+-130 0 l
+closepath
+%%end path
+%%erase
+%%new path
+ 188 180 0.8 sub M
+ 128 0 0.8 sub l
+ -24 2 0.8 sub -48 2 0.8 sub -72 2 0.8 sub c
+ 0 -2 0.8 sub l
+-58 0 l
+closepath
+%%end path
+%%erase
+eoclip
+newpath
+%%new path
+ 280 486 M
+ -2 2 -6 4 -8 4 c
+ 0 -2 l
+ -38 0 l
+ -2 0 -2 0 -4 -2 c
+ 0 -2 l
+ 2 0 l
+ 0 -4 l
+ 76 -100 154 -198 230 -298 c
+ 2 -2 6 -2 8 -2 c
+ 38 0 l
+ 2 0 2 0 4 2 c
+ 0 2 l
+ -2 0 l
+ 0 4 l
+ -76 100 -154 198 -230 298 c
+closepath
+%%end path
+fill
+%%new path
+ 230 180 M
+ 10 0 l
+ 6 0 12 2 16 6 c
+ 0 0 2 2 2 2 c
+ 80 100 160 198 238 298 c
+ 2 0 2 2 2 2 c
+ -2 0 l
+ 0 0 0 0 -2 2 c
+ -2 0 l
+ 0 -2 l
+ -6 0 l
+ -6 0 -12 -2 -16 -6 c
+ 0 0 -2 -2 -2 -2 c
+ -80 -100 -160 -198 -238 -298 c
+ -2 0 -2 -2 -2 -2 c
+closepath
+%%end path
+fill
+%%new path
+ 264 442 M
+ 24 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+ -66 0 l
+ 0 -22 l
+ 2 0 l
+ 16 0 34 0 46 -4 c
+ 6 -2 10 -6 16 -10 c
+ 2 -4 6 -8 10 -12 c
+closepath
+%%end path
+fill
+%%new path
+ 314 442 M
+ -2 2 -2 6 -2 8 c
+ 2 0 l
+ 0 4 0 6 4 10 c
+ 6 6 14 8 22 8 c
+ 0 22 l
+ -2 -2 l
+ -80 0 l
+ 10 -16 22 -32 32 -48 c
+ 0 2 l
+ 26 0 l
+closepath
+%%end path
+fill
+%%new path
+ 428 226 M
+ 2 -2 2 -6 2 -8 c
+ -2 0 l
+ 0 -4 0 -6 -4 -10 c
+ -6 -6 -14 -8 -22 -8 c
+ 0 -20 l
+ 82 0 l
+ -10 16 -22 32 -32 48 c
+ 0 -2 l
+-26 0 l
+closepath
+%%end path
+fill
+%%new path
+ 478 226 M
+ -24 0 l
+ 10 -16 22 -32 32 -46 c
+ 66 0 l
+ 0 22 l
+ -2 0 l
+ -16 0 -34 0 -46 4 c
+ -6 2 -10 6 -16 10 c
+ -2 4 -6 8 -10 12 c
+closepath
+%%end path
+fill
+%%new path
+ 422 422 M
+ 12 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+ -72 0 l
+ 0 -22 l
+ 2 0 l
+ 6 0 12 -2 16 -6 c
+ 2 -2 4 -6 4 -10 c
+ 2 -2 2 -4 2 -6 c
+ -2 0 l
+ 0 -8 -4 -18 -10 -24 c
+closepath
+%%end path
+fill
+%%new path
+ 446 422 M
+ 2 4 6 8 10 12 c
+ 8 8 20 16 32 22 c
+ 16 8 34 12 52 12 c
+ 0 22 l
+ -2 -2 l
+ -58 0 l
+ -16 -22 -32 -46 -48 -68 c
+ 2 2 l
+ 12 0 l
+closepath
+%%end path
+fill
+%%new path
+ 280 246 M
+ -2 -4 -6 -8 -10 -12 c
+ -8 -8 -20 -16 -32 -22 c
+ -16 -8 -34 -12 -52 -12 c
+ 0 -20 l
+ 60 0 l
+ 16 22 32 46 48 68 c
+ -2 -2 l
+-12 0 l
+closepath
+%%end path
+fill
+%%new path
+ 304 246 M
+ -12 0 l
+ -16 -22 -32 -46 -48 -66 c
+ 74 0 l
+ 0 22 l
+ -2 0 l
+ -6 0 -12 2 -16 6 c
+ -2 2 -4 6 -4 10 c
+ -2 2 -2 4 -2 6 c
+ 2 0 l
+ 0 8 4 18 10 24 c
+closepath
+%%end path
+fill
+grestore
+) def
+
+end % of CharDefs dictionary
+
+Encoding 120 /The_letter_x put
+
+Metrics
+ begin
+/The_letter_x 367 fudge add def
+/.notdef 0 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /M {moveto} def
+ /L {lineto} def
+ /l {rlineto} def
+ /C {curveto} def
+ /c {rcurveto} def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -186 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [186 fudge sub 180 552 490] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 40 scalefont setfont
+ 0 0 moveto (x) show
+endFig
+3265 3680(Figure)N
+3494(10)X
+3 f F
+2520 3936(4.6)N
+2680(Optimization.)X
+1 f F
+3210(Optimization)X
+3669(is)X
+3759(done)X
+3952(in)X
+4051(order)X
+4258(to)X
+2520 4032(make)N
+2728(the)X
+2860(description)X
+3250(of)X
+3351(the)X
+3483(fonts)X
+3677(shorter)X
+3933(and)X
+4082(to)X
+4177(save)X
+2520 4128(work)N
+2724(in)X
+2825(the)X
+2962(P)X
+8 s 8 xH F
+3006(OST)X
+10 s 10 xH F
+3127(S)X
+8 s 8 xH F
+3171(CRIPT)X
+10 s 10 xH F
+3392(interpreter.)X
+3787(This)X
+3969(is)X
+4062(done)X
+4258(in)X
+2520 4224(three)N
+2701(ways:)X
+2583 4368(1.)N
+2679(not)X
+2817(printing)X
+3106(lines)X
+3293(with)X
+3471(length)X
+3707(zero.)X
+3903(As)X
+4029(was)X
+4191(said)X
+2679 4464(earlier,)N
+2929(the)X
+0 f F
+3051(METAFONT)X
+1 f F
+3416(program)X
+3712(prints)X
+3918(lines)X
+4092(to)X
+4177(con-)X
+2679 4560(nect)N
+2834(o)X
+(ff)138 606 oc
+2922(set)X
+3032(points.)X
+3268(There)X
+3478(are)X
+3599(times)X
+3794(that)X
+3936(after)X
+4106(round-)X
+2679 4656(ing)N
+2818(or)X
+2922(truncating)X
+3284(the)X
+3418(output)X
+3658(data,)X
+3848(the)X
+3982(start)X
+4156(point)X
+2679 4752(and)N
+2815(the)X
+2933(end)X
+3069(point)X
+3253(are)X
+3372(equal.)X
+3586(In)X
+3673(such)X
+3840(cases,)X
+4050(the)X
+4169(lines)X
+2679 4848(are)N
+2798(eliminated.)X
+2583 4992(2.)N
+2679(checking)X
+2999(if)X
+3078(the)X
+3206(Be)X
+3264(\302zier)X
+3447(curve)X
+3656(acts)X
+3811(as)X
+3909(a)X
+3976(line.)X
+4147(From)X
+2679 5088(the)N
+2803(de\256nition)X
+3135(of)X
+3227(the)X
+3350(Be)X
+3408(\302zier)X
+3586(curve,)X
+3810(it)X
+3879(is)X
+3957(known)X
+4200(that)X
+2679 5184(if)N
+2759(the)X
+2888(two)X
+3039(control)X
+3297(points)X
+3523(lie)X
+3634(on)X
+3745(the)X
+3874(line)X
+4025(that)X
+4177(con-)X
+2679 5280(nects)N
+2868(the)X
+2990(start)X
+3151(point)X
+3338(and)X
+3477(the)X
+3598(end)X
+3737(point,)X
+3944(the)X
+4065(curve)X
+4267(is)X
+2679 5376(of)N
+2781(degree)X
+3031(one.)X
+3202(In)X
+3304(such)X
+3486(cases)X
+9 f F
+3693(mf2ps)X
+1 f F
+3945(generates)X
+4284(a)X
+2679 5472(command)N
+3019(to)X
+3105(print)X
+3280(a)X
+3340(line)X
+3484(from)X
+3664(the)X
+3786(start)X
+3948(point)X
+4136(to)X
+4222(the)X
+2679 5568(end)N
+2825(point,)X
+3039(thus)X
+3202(saving)X
+3442(space)X
+3652(and)X
+3799(avoiding)X
+4110(redun-)X
+2679 5664(dant)N
+2837(calculations)X
+3240(for)X
+3354(the)X
+3472(P)X
+8 s 8 xH F
+3516(OST)X
+10 s 10 xH F
+3637(S)X
+8 s 8 xH F
+3681(CRIPT)X
+10 s 10 xH F
+3883(interpreter.)X
+2445 6084(11)N
+
+%%Page: 11 12
+11 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+639 672(3.)N
+735(checking)X
+1056(if)X
+1136(a)X
+1203(series)X
+1417(of)X
+1515(consecutive)X
+1926(line)X
+2078(segments)X
+735 768(are)N
+865(in)X
+958(the)X
+1087(same)X
+1283(line.)X
+1474(This)X
+1647(is)X
+1730(done)X
+1916(by)X
+2026(storing)X
+2278(the)X
+735 864(segments)N
+1060(in)X
+1149(a)X
+1212(bu)X
+(ff)138 606 oc
+1340(er)X
+1430(and)X
+1573(checking)X
+1891(whether)X
+2178(a)X
+2242(new)X
+735 960(segment)N
+1022(is)X
+1095(collinear)X
+1396(with)X
+1558(the)X
+1676(last)X
+1807(stored.)X
+3 f F
+576 1152(4.7)N
+736(Changed)X
+1071(or)X
+1176(added)X
+1413(routines.)X
+1 f F
+1762(The)X
+1916(following)X
+2257(is)X
+2340(a)X
+576 1248(list)N
+701(of)X
+796(routines)X
+1082(that)X
+1230(were)X
+1415(changed)X
+1711(or)X
+1806(added)X
+2026(in)X
+2116(order)X
+2314(to)X
+576 1344(build)N
+9 f F
+762(mf2ps)X
+1 f F
+999(from)X
+0 f F
+1175(METAFONT)X
+1 f F
+1516(.)X
+2 f F
+672 1488(printchar)N
+1 f F
+994(was)X
+1139(modi\256ed)X
+1443(to)X
+1525(get)X
+1643(character)X
+1959(names.)X
+2 f F
+672 1632(\256xdateandtime)N
+1 f F
+1182(was)X
+1345(modi\256ed)X
+1667(to)X
+1767(initialize)X
+2086(variables)X
+672 1728(that)N
+812(were)X
+989(used)X
+1156(as)X
+1243(\257ags)X
+1414(in)X
+1496(the)X
+1614(macros.)X
+2 f F
+672 1872(\256llspec)N
+1 f F
+919(was)X
+1064(modi\256ed)X
+1368(to)X
+1450(send)X
+1617(out)X
+1739(data)X
+1893(on)X
+1993(splines.)X
+2 f F
+672 2016(skewlineedges)N
+1 f F
+1151(was)X
+1296(modi\256ed)X
+1600(to)X
+1682(send)X
+1849(out)X
+1971(o)X
+(ff)138 606 oc
+2059(set)X
+2168(lines.)X
+2 f F
+672 2160(dualmoves)N
+1 f F
+1035(was)X
+1180(modi\256ed)X
+1484(to)X
+1566(send)X
+1733(out)X
+1855(o)X
+(ff)138 606 oc
+1943(set)X
+2052(lines.)X
+2 f F
+672 2304(\256llenvelope)N
+1 f F
+1099(was)X
+1281(modi\256ed)X
+1622(to)X
+1741(send)X
+1945(out)X
+2104(data)X
+2296(on)X
+672 2400(splines.)N
+2 f F
+672 2544(dostatement)N
+1 f F
+1083(was)X
+1232(modi\256ed)X
+1540(to)X
+1626(identify)X
+1899(tokens)X
+2132(that)X
+2277(are)X
+672 2640(strings.)N
+2 f F
+672 2784(main)N
+1 f F
+864(was)X
+1021(modi\256ed)X
+1337(to)X
+1431(call)X
+1579(the)X
+9 f F
+1711(mf2ps)X
+1 f F
+1960(procedure)X
+2314(in)X
+672 2880(the)N
+790(beginning)X
+1130(and)X
+1266(ending)X
+1504(of)X
+1591(the)X
+1709(program.)X
+2 f F
+672 3024(sendcurve)N
+1 f F
+1020(was)X
+1167(added)X
+1381(to)X
+1465(unskew)X
+1733(spline)X
+1947(values)X
+2175(and)X
+2314(to)X
+672 3120(send)N
+839(them)X
+1019(to)X
+1101(the)X
+1219(next)X
+1377(process.)X
+2 f F
+672 3264(sendline)N
+1 f F
+977(was)X
+1140(added)X
+1371(to)X
+1472(unskew)X
+1756(line)X
+1915(values)X
+2159(and)X
+2314(to)X
+672 3360(send)N
+839(them)X
+1019(to)X
+1101(the)X
+1219(next)X
+1377(process.)X
+2 f F
+672 3504(ok)N
+1 f F
+768(was)X
+913(added)X
+1125(to)X
+1207(check)X
+1415(if)X
+1484(two)X
+1624(lines)X
+1795(are)X
+1914(collinear.)X
+2 f F
+672 3648(restore)N
+1 f F
+931(was)X
+1089(added)X
+1314(to)X
+1409(restore)X
+1661(the)X
+1792(parameters)X
+2178(of)X
+2278(the)X
+672 3744(last)N
+803(line.)X
+2 f F
+672 3888(recall)N
+1 f F
+879(was)X
+1024(added)X
+1236(to)X
+1318(recall)X
+1517(values)X
+1742(from)X
+1918(the)X
+2036(bu)X
+(ff)138 606 oc
+2164(er.)X
+2 f F
+672 4032(us)N
+1 f F
+767(was)X
+916(added)X
+1132(to)X
+1219(convert)X
+1485(the)X
+0 f F
+1608(METAFONT)X
+1 f F
+1974(scale)X
+2160(so)X
+2256(that)X
+672 4128(a)N
+744(letter)X
+945(would)X
+1181(\256t)X
+1283(the)X
+1416(Adobe)X
+1665(standard)X
+1972(1000)X
+47 f F
+2152(\264)X
+1 f F
+2216(1000)X
+672 4224(bounding)N
+994(box.)X
+2 f F
+672 4368(send_p_s)N
+1 f F
+999(was)X
+1153(added)X
+1375(to)X
+1467(create)X
+1690(a)X
+1756(P)X
+8 s 8 xH F
+1800(OST)X
+10 s 10 xH F
+1921(S)X
+8 s 8 xH F
+1965(CRIPT)X
+10 s 10 xH F
+2177(\256le)X
+2309(of)X
+672 4464(lines)N
+843(and)X
+979(curves.)X
+2 f F
+672 4608(makemoves)N
+1 f F
+1063(was)X
+1208(modi\256ed)X
+1512(to)X
+1594(send)X
+1761(out)X
+1883(spline)X
+2094(data.)X
+2 f F
+672 4752(dump)N
+1 f F
+872(was)X
+1019(added)X
+1233(to)X
+1318(append)X
+1573(information)X
+1974(from)X
+2153(the)X
+2274(\256le)X
+672 4848(named)N
+5 f F
+906(f)X
+1 f F
+974(to)X
+1056(the)X
+1174(\256le)X
+1296(named)X
+5 f F
+1530(g)X
+1 f F
+(.)S
+2 f F
+672 4992(checkerase)N
+1 f F
+1061(was)X
+1218(added)X
+1442(to)X
+1536(identify)X
+1817(the)X
+1947(\256le)X
+2081(that)X
+2233(con-)X
+672 5088(tains)N
+861(\252erase\272)X
+1137(commands,)X
+1541(and)X
+1694(their)X
+1878(position)X
+2172(within)X
+672 5184(the)N
+790(\256le.)X
+2 f F
+672 5328(doarrange)N
+1 f F
+1051(was)X
+1217(added)X
+1450(to)X
+1553(put)X
+1696(erasing)X
+1969(paths)X
+2179(at)X
+2278(the)X
+672 5424(beginning)N
+1012(of)X
+1099(the)X
+1217(\256le.)X
+2 f F
+672 5568(print_start)N
+1 f F
+1047(was)X
+1206(added)X
+1432(to)X
+1528(signal)X
+1753(the)X
+1885(beginning)X
+2239(of)X
+2340(a)X
+672 5664(new)N
+826(cyclic)X
+1038(path)X
+1196(to)X
+1278(be)X
+1374(processed.)X
+2 f F
+2616 672(print_end)N
+1 f F
+2951(was)X
+3100(added)X
+3316(to)X
+3402(signal)X
+3617(the)X
+3739(end)X
+3879(of)X
+3970(the)X
+4092(current)X
+2616 768(cyclic)N
+2828(path.)X
+2 f F
+2616 912(init_ps)N
+1 f F
+2853(was)X
+2998(added)X
+3210(to)X
+3292(make)X
+3486(initializations.)X
+2 f F
+2616 1056(makenewdef)N
+1 f F
+3037(was)X
+3186(added)X
+3402(to)X
+3488(make)X
+3686(initializations)X
+4146(when)X
+2616 1152(more)N
+2801(than)X
+2959(one)X
+3095(character)X
+3411(occurs)X
+3641(in)X
+3723(the)X
+3841(input.)X
+2 f F
+2616 1296(closeolddef)N
+1 f F
+3001(was)X
+3146(added)X
+3358(to)X
+3440(close)X
+3625(the)X
+3743(last)X
+3874(de\256nition.)X
+2 f F
+2616 1440(tini_ps)N
+1 f F
+2864(was)X
+3020(added)X
+3243(to)X
+3336(handle)X
+3581(the)X
+3710(ending)X
+3959(of)X
+4057(the)X
+4186(pro-)X
+2616 1536(cess.)N
+2 f F
+2616 1680(auxprintchar)N
+1 f F
+3054(was)X
+3199(added)X
+3411(to)X
+3493(print)X
+3664(characters.)X
+2 f F
+2616 1824(auxprint)N
+1 f F
+2907(was)X
+3052(added)X
+3264(to)X
+3346(print)X
+3517(strings.)X
+3 f F
+2520 2016(5)N
+2620(Operation)X
+2991(of)X
+9 f F
+3080(mf2ps)X
+3 f F
+3317(in)X
+3403(a)X
+9 f F
+3465(U)X
+8 s 8 xH F
+3523(NIX)X
+10 s 10 xH 3 f F
+3650(environment)X
+1 f F
+2520 2160(When)N
+2758(invoked,)X
+9 f F
+3084(mf2ps)X
+1 f F
+3347(\256rst)X
+3518(asks)X
+3703(for)X
+3844(an)X
+3967(output)X
+4218(\256le)X
+2520 2256(name.)N
+2746(For)X
+2888(the)X
+3017(example)X
+3320(this)X
+3466(\256le)X
+3599(is)X
+3683(called)X
+5 f F
+3906(ex1)X
+1 f F
+(.)S
+9 f F
+4103(mf2ps)X
+1 f F
+2520 2352(then)N
+2678(asks,)X
+5 f F
+2679 2544(\252Are)N
+2919(you)X
+3111(creating)X
+3543(the)X
+3735(whole)X
+4023(dic-)X
+2679 2640(tionary)N
+3063(\(y/n\)?\272.)X
+1 f F
+2520 2832(If)N
+2600(the)X
+2724(answer)X
+2978(is)X
+3057(other)X
+3248(than)X
+3413(\252)X
+5 f F
+3449(y)X
+1 f F
+(\272)S
+3560(or)X
+3654(\252)X
+5 f F
+3690(Y)X
+1 f F
+(\272,)S
+3821(it)X
+3892(is)X
+3972(considered)X
+2520 2928(\252)N
+5 f F
+2556(no)X
+1 f F
+(\272.)S
+2735(If)X
+2816(the)X
+2941(answer)X
+3196(is)X
+3276(\252)X
+5 f F
+3312(y)X
+1 f F
+(\272)S
+3423(or)X
+3517(\252)X
+5 f F
+3553(Y)X
+1 f F
+(\272,)S
+3684(then)X
+3849(the)X
+3973(whole)X
+4195(dic-)X
+2520 3024(tionary)N
+2787(is)X
+2880(created.)X
+3173(This)X
+3355(means)X
+3600(that)X
+9 f F
+3762(mf2ps)X
+1 f F
+4019(creates)X
+4284(a)X
+2520 3120(P)N
+8 s 8 xH F
+2564(OST)X
+10 s 10 xH F
+2685(S)X
+8 s 8 xH F
+2729(CRIPT)X
+10 s 10 xH F
+2942(dictionary)X
+3297(that)X
+3447(includes)X
+3744(entries)X
+3988(for)X
+4112(all)X
+4222(the)X
+2520 3216(characters)N
+2878(that)X
+3029(are)X
+3159(in)X
+3252(the)X
+3381(input,)X
+3597(e.g.,)X
+5 f F
+3765(cmr10)X
+1 f F
+4037(set.)X
+4178(This)X
+2520 3312(dictionary)N
+2873(needs)X
+3083(additional)X
+3430(de\256nitions)X
+3794(such)X
+3968(as)X
+2 f F
+4062(left)X
+4191(side)X
+2520 3408(bearing,)N
+2827(width,)X
+3063(bounding)X
+3404(box)X
+1 f F
+3520(,)X
+3579(etc.)X
+3752(These)X
+3983(de\256nitions)X
+2520 3504(need)N
+2693(information)X
+3092(on)X
+3193(character)X
+3510(features)X
+3786(that)X
+3927(must)X
+4103(be)X
+4199(cal-)X
+2520 3600(culated)N
+2781(within)X
+3014(the)X
+3141(program.)X
+3462(Otherwise,)X
+3841(the)X
+3969(whole)X
+4195(dic-)X
+2520 3696(tionary)N
+2777(is)X
+2860(not)X
+2991(created)X
+3253(and)X
+3398(the)X
+3525(program)X
+3826(treats)X
+4029(the)X
+4156(input)X
+2520 3792(as)N
+2618(a)X
+2685(single)X
+2907(character)X
+3234(de\256nition)X
+3571(that)X
+3722(is)X
+3806(to)X
+3900(be)X
+4008(translated)X
+2520 3888(into)N
+2693(a)X
+2778(P)X
+8 s 8 xH F
+2822(OST)X
+10 s 10 xH F
+2943(S)X
+8 s 8 xH F
+2987(CRIPT)X
+10 s 10 xH F
+3218(outline)X
+3489(de\256nition.)X
+3883(After)X
+9 f F
+4103(mf2ps)X
+1 f F
+2520 3984(prompts)N
+2815(\252)X
+5 f F
+2851(**)X
+1 f F
+(\272,)S
+3036(we)X
+3163(are)X
+3295(in)X
+3390(the)X
+0 f F
+3521(METAFONT)X
+1 f F
+3895(environment.)X
+2520 4080(Now)N
+2696(the)X
+2814(user)X
+2968(inputs)X
+9 s 9 xH 5 f F
+2679 4272(\\mode=hires;\\nodisplays;\\input)N
+4012(cmr10;)X
+47 f F
+4270(\277)X
+10 s 10 xH 1 f F
+2520 4464(After)N
+9 f F
+2735(mf2ps)X
+1 f F
+2995(has)X
+3146(\256nished,)X
+3463(the)X
+3605(resulting)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH F
+2520 4560(font)N
+2685(dictionary)X
+3046(can)X
+3194(be)X
+3306(used)X
+3489(to)X
+3587(print)X
+3774(text.)X
+3950(In)X
+4053(order)X
+4258(to)X
+2520 4656(print)N
+2712(text,)X
+2894(the)X
+3034(font)X
+3205(dictionary)X
+3572(should)X
+3827(be)X
+3945(installed)X
+4258(in)X
+2520 4752(some)N
+2716(formatter's)X
+3100(font)X
+3256(source)X
+3493(directory,)X
+3830(and)X
+3973(then)X
+4138(it)X
+4208(can)X
+2520 4848(be)N
+2623(loaded)X
+2864(through)X
+3140(the)X
+3265(formatter's)X
+3649(commands.)X
+4043(The)X
+4195(dic-)X
+2520 4944(tionary)N
+2776(followed)X
+3090(by)X
+3199(appropriate)X
+9 f F
+3596(show)X
+1 f F
+3811(and)X
+9 f F
+3958(showpage)X
+1 f F
+2520 5040(commands)N
+2887(can)X
+3019(also)X
+3168(be)X
+3264(sent)X
+3413(directly)X
+3678(to)X
+3760(the)X
+3878(printer.)X
+3 f F
+2520 5232(6)N
+2620(Evaluation)X
+3012(of)X
+3099(results)X
+1 f F
+2520 5376(This)N
+2696(section)X
+2957(evaluates)X
+3290(the)X
+9 f F
+3424(mf2ps)X
+1 f F
+3675(program)X
+3982(relative)X
+4258(to)X
+2520 5472(goals)N
+2716(established)X
+3099(in)X
+3187(section)X
+3440(3.2.)X
+3586(The)X
+3737(program)X
+4035(was)X
+4186(pro-)X
+2520 5568(duced)N
+2745(as)X
+2845(a)X
+2914(variation)X
+3232(of)X
+0 f F
+3332(METAFONT)X
+1 f F
+3706(and)X
+3855(it)X
+3933(accepts)X
+4204(any)X
+0 f F
+2520 5664(METAFONT)N
+1 f F
+2893(font)X
+3054(de\256nition)X
+3392(and)X
+3540(produces)X
+3862(a)X
+3929(P)X
+8 s 8 xH F
+3973(OST)X
+10 s 10 xH F
+4094(S)X
+8 s 8 xH F
+4138(CRIPT)X
+10 s 10 xH F
+2445 6084(12)N
+
+%%Page: 12 13
+12 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+576 672(outline)N
+822(font)X
+975(scaleable)X
+1294(up)X
+1398(to)X
+1484(magni\256cation)X
+1948(8,)X
+2033(or)X
+2125(to)X
+2212(point)X
+576 768(size)N
+725(80)X
+829(if)X
+902(you)X
+1046(are)X
+1169(not)X
+1295(a)X
+1355(purist.)X
+1581(Thus)X
+1765(goals)X
+1958(6)X
+2022(and)X
+2161(1)X
+2224(have)X
+576 864(been)N
+756(entirely)X
+1029(met)X
+1177(and)X
+1321(goal)X
+1487(2)X
+1555(is)X
+1637(partially)X
+1933(met.)X
+2102(To)X
+2220(meet)X
+576 960(goal)N
+753(2)X
+832(fully)X
+1022(the)X
+1159(program)X
+1469(must)X
+1662(be)X
+1776(modi\256ed)X
+2098(to)X
+2198(allow)X
+576 1056(large)N
+782(enough)X
+1063(arrays)X
+1305(to)X
+1412(handle)X
+1671(magni\256cations)X
+2188(up)X
+2314(to)X
+576 1152(7200;)N
+778(this)X
+913(is)X
+986(left)X
+1113(to)X
+1195(future)X
+1407(work.)X
+735 1248(It)N
+810(remains)X
+1090(to)X
+1178(evaluate)X
+1472(the)X
+1596(appearance)X
+1985(and)X
+2127(sizes)X
+2309(of)X
+576 1344(the)N
+695(outline)X
+938(fonts)X
+1119(relative)X
+1381(to)X
+1464(the)X
+1583(bitmapped)X
+1942(fonts)X
+2122(to)X
+2204(see)X
+2327(if)X
+576 1440(goals)N
+765(3,)X
+845(4,)X
+925(and)X
+1061(5)X
+1121(have)X
+1293(been)X
+1465(met.)X
+3 f F
+576 1632(6.1)N
+736(Appearance.)X
+1 f F
+1229(In)X
+1335(order)X
+1544(to)X
+1645(compare)X
+1962(appearances,)X
+576 1728(the)N
+705(outline)X
+958(font)X
+1118(\(Subsub\256gure)X
+1598(P\))X
+1700(and)X
+1847(and)X
+1994(the)X
+2123(300)X
+2274(dpi)X
+576 1824(bitmapped)N
+950(font)X
+1115(\(Subsub\256gure)X
+1600(M\))X
+1735(generated)X
+2085(from)X
+2278(the)X
+576 1920(same)N
+0 f F
+763(METAFONT)X
+1 f F
+1126(de\256nition)X
+1454(are)X
+1575(used)X
+1744(to)X
+1827(print)X
+1999(similar)X
+2242(sen-)X
+576 2016(tences)N
+844(at)X
+970(one,)X
+1174(two,)X
+1382(or)X
+1517(three)X
+1746(di)X
+1808 MX
+(ff)138 606 oc
+1856(erent)X
+2085(sizes)X
+2309(or)X
+576 2112(magni\256cations)N
+1070(on)X
+1173(three)X
+1356(devices)X
+1619(of)X
+1708(di)X
+1770 MX
+(ff)138 606 oc
+1818(ering)X
+2005(resolutions.)X
+576 2208(The)N
+738(sentences)X
+1083(are)X
+1219(printed)X
+1483(in)X
+1582(the)X
+5 f F
+1718(cmr)X
+1 f F
+1900(\(Sub\256gure)X
+2276(R\),)X
+5 f F
+576 2304(cmtt)N
+1 f F
+845(\(Sub\256gure)X
+1259(T\),)X
+1431(and)X
+5 f F
+1623(lasy)X
+1 f F
+1891(\(Sub\256gure)X
+2305(S\))X
+576 2400(typefaces.)N
+967(The)X
+1139(bitmapped)X
+1525(fonts)X
+1733(may)X
+1919(be)X
+2043(printed)X
+2318(at)X
+576 2496(design)N
+814(sizes)X
+999(7,)X
+1088(8,)X
+1177(10,)X
+1306(or)X
+1402(12,)X
+1530(and)X
+1674(the)X
+1800(outline)X
+2050(fonts)X
+2238(may)X
+576 2592(be)N
+678(printed)X
+931(at)X
+1015(magni\256cations)X
+1512(.7,)X
+1618(.8,)X
+1724(1.0,)X
+1870(or)X
+1963(1.2.)X
+2130(Finally,)X
+576 2688(the)N
+700(three)X
+887(devices)X
+1153(are)X
+1277(the)X
+1400(300)X
+1545(dpi)X
+1672(LaserWriterII)X
+2140(\(Figure)X
+576 2784(11-LW300\),)N
+1001(the)X
+1125(600)X
+1271(dpi)X
+1399(Varityper)X
+1733(\(Figure)X
+1995(11-VT600\),)X
+576 2880(and)N
+724(the)X
+853(1270)X
+1044(dpi)X
+1177(Linotronic)X
+1546(300)X
+1697(\(Figure)X
+1964(11-LT1270\).)X
+576 2976(The)N
+731(bitmapped)X
+1099(font)X
+1258(examples)X
+1591(are)X
+1720(formatted)X
+2063(with)X
+2236(T)X
+2277 2992(E)N
+2318 2976(X)N
+576 3072(while)N
+784(the)X
+912(outline)X
+1164(font)X
+1323(examples)X
+1656(are)X
+1785(hand-coded)X
+2190(P)X
+8 s 8 xH F
+2234(OST-)X
+10 s 10 xH F
+576 3168(S)N
+8 s 8 xH F
+620(CRIPT)X
+10 s 10 xH F
+832(\256les)X
+995(sent)X
+1154(directly)X
+1430(to)X
+1523(the)X
+1652(printer.)X
+1917(Since)X
+2126(the)X
+2255(for-)X
+576 3264(matter)N
+802(with)X
+965(which)X
+1182(this)X
+1318(paper)X
+1518(is)X
+1592(printed)X
+1840(can)X
+1972(use)X
+2099(arbitrary)X
+576 3360(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+1010(fonts,)X
+1233(half)X
+1402(of)X
+1513(the)X
+1655(examples)X
+2002(could)X
+2224(have)X
+576 3456(been)N
+751(done)X
+930(in-line)X
+1161(without)X
+1427(pasting)X
+1680(in.)X
+1784(However,)X
+2121(for)X
+2237(fair-)X
+576 3552(ness)N
+742(in)X
+832(the)X
+958(comparison,)X
+1380(all)X
+1488(examples)X
+1819(were)X
+2004(cut)X
+2130(out)X
+2260(and)X
+576 3648(pasted)N
+801(in.)X
+735 3744(There)N
+951(are)X
+1078(visible)X
+1319(di)X
+1381 MX
+(ff)138 606 oc
+1429(erences)X
+1699(due)X
+1843(to)X
+1933(di)X
+1995 MX
+(ff)138 606 oc
+2043(erences)X
+2314(in)X
+576 3840(the)N
+697(formatting)X
+1057(software.)X
+1376(T)X
+1417 3856(E)N
+1458 3840(X)N
+1538(squeezes)X
+1846(the)X
+1966(letters)X
+2184(closer)X
+576 3936(together)N
+871(than)X
+1041(does)X
+1220(the)X
+1350(P)X
+8 s 8 xH F
+1394(OST)X
+10 s 10 xH F
+1515(S)X
+8 s 8 xH F
+1559(CRIPT)X
+10 s 10 xH F
+1773(engine.)X
+2039(Moreover,)X
+576 4032(the)N
+701(interword)X
+1040(space)X
+1246(is)X
+1326(constant)X
+1620(in)X
+1709(the)X
+1834(P)X
+8 s 8 xH F
+1878(OST)X
+10 s 10 xH F
+1999(S)X
+8 s 8 xH F
+2043(CRIPT)X
+10 s 10 xH F
+2251(dic-)X
+576 4128(tionary)N
+824(but)X
+947(is)X
+1021(varied)X
+1244(by)X
+1346(T)X
+1387 4144(E)N
+1428 4128(X)N
+1508(according)X
+1847(to)X
+1931(the)X
+2051(line)X
+2193(struc-)X
+576 4224(ture.)N
+769(These)X
+989(di)X
+1051 MX
+(ff)138 606 oc
+1099(erences)X
+1369(are)X
+1496(not)X
+1626(the)X
+1751(di)X
+1813 MX
+(ff)138 606 oc
+1861(erences)X
+2130(that)X
+2277(are)X
+576 4320(at)N
+654(issue)X
+834(here.)X
+735 4416(On)N
+855(the)X
+975(300)X
+1117(dpi)X
+1241(device,)X
+1494(the)X
+1615(characters)X
+1965(from)X
+2144(the)X
+2265(bit-)X
+576 4512(mapped)N
+854(fonts)X
+1038(print)X
+1213(thinner)X
+1464(than)X
+1626(are)X
+1749(those)X
+1942(of)X
+2033(the)X
+2154(outline)X
+576 4608(fonts.)N
+801(However,)X
+1161(the)X
+1304(edges)X
+1532(of)X
+1644(both)X
+1831(sets)X
+1996(are)X
+2140(equally)X
+576 4704(smooth)N
+856(or)X
+968(jagged)X
+1227(as)X
+1339(the)X
+1482(case)X
+1666(may)X
+1849(be)X
+1970(in)X
+2076(all)X
+2200(sizes.)X
+576 4800(Overall,)N
+869(then,)X
+1060(the)X
+1191(appearance)X
+1587(of)X
+1687(the)X
+1818(characters)X
+2178(of)X
+2278(the)X
+576 4896(bitmapped)N
+937(fonts)X
+1120(is)X
+1196(crisper)X
+1438(than)X
+1599(that)X
+1742(of)X
+1832(the)X
+1952(outline)X
+2196(fonts.)X
+576 4992(On)N
+697(the)X
+818(higher)X
+1047(resolution)X
+1391(devices,)X
+1676(the)X
+1798(thicknesses)X
+2187(of)X
+2278(the)X
+576 5088(characters)N
+934(are)X
+1064(closer)X
+1287(to)X
+1380(being)X
+1588(equal)X
+1792(at)X
+1880(all)X
+1990(sizes.)X
+2196(Thus,)X
+576 5184(the)N
+0 f F
+702(METAFONT)X
+1 f F
+1071(program)X
+1371(does)X
+1546(a)X
+1610(better)X
+1821(job)X
+1951(of)X
+2046(building)X
+2340(a)X
+576 5280(correctly)N
+887(sized)X
+1077(bitmap)X
+1323(at)X
+1405(300)X
+1549(dpi)X
+1675(than)X
+1837(does)X
+2008(the)X
+2130(300)X
+2274(dpi)X
+576 5376(P)N
+8 s 8 xH F
+620(OST)X
+10 s 10 xH F
+741(S)X
+8 s 8 xH F
+785(CRIPT)X
+10 s 10 xH F
+1013(engine)X
+1273(of)X
+1386(the)X
+1530(LaserWriterII.)X
+2039(The)X
+2211(latter)X
+576 5472(seems)N
+805(to)X
+900(round)X
+1120(up)X
+1232(too)X
+1366(much.)X
+1596(However,)X
+1943(both)X
+2117(seem)X
+2314(to)X
+576 5568(get)N
+696(the)X
+816(edges)X
+1022(equally)X
+1281(smooth)X
+1539(even)X
+1714(at)X
+1795(low)X
+1938(sizes)X
+2117(and)X
+2256(low)X
+576 5664(resolutions.)N
+2679 672(At)N
+2782(the)X
+2903(two)X
+3046(higher)X
+3274(resolutions,)X
+3669(the)X
+3791(outline)X
+4037(fonts)X
+4221(are)X
+2520 768(signi\256cantly)N
+2941(better)X
+3150(than)X
+3313(the)X
+3436(outline)X
+3683(fonts)X
+3868(at)X
+3951(lower)X
+4159(reso-)X
+2520 864(lutions)N
+2767(and)X
+2914(are)X
+3044(signi\256cantly)X
+3470(better)X
+3684(than)X
+3853(the)X
+3982(bitmapped)X
+2520 960(fonts)N
+2709(at)X
+2796(the)X
+2923(same)X
+3117(resolution)X
+3466(of)X
+3561(printing.)X
+3862(However,)X
+4205(this)X
+2520 1056(latter)N
+2723(is)X
+2814(true)X
+2977(because)X
+3270(the)X
+3406(bitmapped)X
+3782(fonts)X
+3981(were)X
+4177(gen-)X
+2520 1152(erated)N
+2762(by)X
+2886(the)X
+0 f F
+3028(METAFONT)X
+1 f F
+3413(program)X
+3729(speci\256cally)X
+4138(to)X
+4244(be)X
+2520 1248(printed)N
+2777(at)X
+2865(300)X
+3015(dpi.)X
+3187(When)X
+3409(a)X
+3476(300-dpi)X
+3756(bitmap)X
+4009(is)X
+4093(printed)X
+2520 1344(with)N
+2684(no)X
+2786(scaling)X
+3035(at)X
+3115(600)X
+3257(or)X
+3346(1270)X
+3528(dpi,)X
+3672(it)X
+3738(remains)X
+4014(a)X
+4071(300-dpi)X
+2520 1440(bitmap.)N
+2785(As)X
+2898(expected,)X
+3228(the)X
+3350(300-dpi)X
+3623(bitmapped)X
+3985(fonts)X
+4169(print)X
+2520 1536(better)N
+2729(at)X
+2813(300)X
+2958(dpi)X
+3085(than)X
+3248(they)X
+3411(do)X
+3516(at)X
+3599(the)X
+3722(two)X
+3867(higher)X
+4097(resolu-)X
+2520 1632(tions.)N
+2679 1728(The)N
+2825(generated)X
+3159(outlines)X
+3434(are)X
+3555(not)X
+3679(\256ne-tuned)X
+4026(for)X
+4142(print-)X
+2520 1824(ing)N
+2641(at)X
+2718(low)X
+2857(resolutions,)X
+3247(such)X
+3413(as)X
+3499(300)X
+3638(dpi,)X
+3779(as)X
+3865(are)X
+3984(the)X
+0 f F
+4102(META-)X
+2520 1920(FONT)N
+1 f F
+2685(-generated)X
+3046(bitmaps.)X
+3340(It)X
+3410(might)X
+3617(be)X
+3715(useful)X
+3933(to)X
+4017(make)X
+4213(use)X
+2520 2016(of)N
+2615(the)X
+2741(P)X
+8 s 8 xH F
+2785(OST)X
+10 s 10 xH F
+2906(S)X
+8 s 8 xH F
+2950(CRIPT)X
+10 s 10 xH F
+3160(facilities)X
+3464(for)X
+3586(hinting)X
+3839(to)X
+3928(improve)X
+4222(the)X
+2520 2112(appearance)N
+2913(of)X
+3010(the)X
+3138(characters)X
+3495(printed)X
+3752(from)X
+3938(the)X
+4067(outlines)X
+2520 2208(at)N
+2598(low)X
+2738(resolutions.)X
+2679 2304(Figure)N
+2937(12)X
+3066(shows)X
+3315(samples)X
+3623(of)X
+3740(similar)X
+4012(sentences)X
+2520 2400(printed)N
+2783(on)X
+2899(the)X
+3033(same)X
+3234(three)X
+3431(devices)X
+3707(using)X
+3915(the)X
+4048(standard)X
+2520 2496(Helvetica,)N
+2871(Times)X
+3094(Roman,)X
+3368(and)X
+3507(Courier)X
+3776(P)X
+8 s 8 xH F
+3820(OST)X
+10 s 10 xH F
+3941(S)X
+8 s 8 xH F
+3985(CRIPT)X
+10 s 10 xH F
+4191(out-)X
+2520 2592(line)N
+2676(fonts)X
+2872(built)X
+3054(into)X
+3213(most)X
+3403(P)X
+8 s 8 xH F
+3447(OST)X
+10 s 10 xH F
+3568(S)X
+8 s 8 xH F
+3612(CRIPT)X
+10 s 10 xH F
+3794(-executing)X
+4168(laser)X
+2520 2688(printers.)N
+2838(It)X
+2920(appears)X
+3199(to)X
+3294(these)X
+3492(authors)X
+3762(that)X
+3916(the)X
+4048(standard)X
+2520 2784(P)N
+8 s 8 xH F
+2564(OST)X
+10 s 10 xH F
+2685(S)X
+8 s 8 xH F
+2729(CRIPT)X
+10 s 10 xH F
+2956(fonts)X
+3160(are)X
+3303(signi\256cantly)X
+3742(better)X
+3969(than)X
+4151(those)X
+2520 2880(generated)N
+2865(from)X
+0 f F
+3053(METAFONT)X
+1 f F
+3426(fonts.)X
+3638(However,)X
+3985(this)X
+4132(is)X
+4218(not)X
+2520 2976(surprising.)N
+2898(Adobe)X
+3150(uses)X
+3326(a)X
+3400(grid)X
+3567(of)X
+3672(1000)X
+47 f F
+3852(\264)X
+1 f F
+3916(1000)X
+4114(for)X
+4245(its)X
+2520 3072(character)N
+2847(de\256nitions,)X
+3235(resulting)X
+3547(in)X
+3641(a)X
+3709(resolution)X
+4061(of)X
+4160(7200)X
+2520 3168(dpi)N
+2650(for)X
+2772(characters)X
+3127(printed)X
+3382(at)X
+3468(point)X
+3659(size)X
+3811(10.)X
+3958(Because)X
+4253(of)X
+2520 3264(size)N
+2679(limitations)X
+3054(of)X
+3155(the)X
+0 f F
+3287(METAFONT)X
+1 f F
+3662(program)X
+3969(the)X
+0 f F
+4102(META-)X
+2520 3360(FONT)N
+1 f F
+2706(outline)X
+2949(fonts)X
+3130(are)X
+3249(using)X
+3442(a)X
+3498(resolution)X
+3838(of)X
+3925(3,000)X
+4125(points)X
+2520 3456(per)N
+2644(inch.)X
+2823(However,)X
+3159(when)X
+3354(using)X
+3548(the)X
+3667(letters)X
+3885(in)X
+3969(small)X
+4164(sizes)X
+2520 3552(such)N
+2702(as)X
+2804(from)X
+2995(10)X
+3110(to)X
+3206(70,)X
+3340(quality)X
+3596(di)X
+3658 MX
+(ff)138 606 oc
+3706(erences)X
+3982(are)X
+4115(hardly)X
+2520 3648(visible)N
+2756(especially)X
+3100(when)X
+3298(working)X
+3589(with)X
+3755(printers)X
+4024(that)X
+4168(have)X
+2520 3744(a)N
+2588(resolution)X
+2940(of)X
+3039(300)X
+3190(points)X
+3416(per)X
+3550(inch)X
+3719(such)X
+3897(as)X
+3995(the)X
+4124(Apple)X
+2520 3840(LaserWriter.)N
+2988(Moreover,)X
+3364(Adobe)X
+3617(makes)X
+3861(liberal)X
+4106(use)X
+4253(of)X
+2520 3936(hinting)N
+2780(to)X
+2876(improve)X
+3177(the)X
+3309(appearance)X
+3706(of)X
+3807(its)X
+3916(fonts)X
+4109(at)X
+4200(low)X
+2520 4032(resolutions.)N
+2937(We)X
+3075(completely)X
+3458(ignored)X
+3730(hinting,)X
+4003(as)X
+4097(we)X
+4218(did)X
+2520 4128(not)N
+2642(see)X
+2765(any)X
+2901(way)X
+3055(to)X
+3137(automatically)X
+3593(generate)X
+3886(the)X
+4004(hints.)X
+3 f F
+2520 4320(6.2)N
+2680(Sizes)X
+2874(of)X
+2967(fonts.)X
+1 f F
+3202(Recall)X
+3433(that)X
+3579(it)X
+3649(is)X
+3728(necessary)X
+4067(to)X
+4155(com-)X
+2520 4416(pare)N
+2687(the)X
+2812(size)X
+2964(of)X
+3058(the)X
+3183(P)X
+8 s 8 xH F
+3227(OST)X
+10 s 10 xH F
+3348(S)X
+8 s 8 xH F
+3392(CRIPT)X
+10 s 10 xH F
+3601(outline)X
+3850(font)X
+4006(for)X
+4127(a)X
+4190(par-)X
+2520 4512(ticular)N
+0 f F
+2769(METAFONT)X
+1 f F
+3154(de\256nition)X
+3504(to)X
+3610(the)X
+3753(sizes)X
+3954(of)X
+4066(the)X
+4209(bit-)X
+2520 4608(mapped)N
+2811(fonts)X
+3008(in)X
+3107(P)X
+8 s 8 xH F
+3151(OST)X
+10 s 10 xH F
+3272(S)X
+8 s 8 xH F
+3316(CRIPT)X
+10 s 10 xH F
+3535(fonts)X
+3732(for)X
+3862(the)X
+3996(individual)X
+2520 4704(and)N
+2656(all)X
+2756(magni\256cations.)X
+2679 4800(This)N
+2858(comparison)X
+3269(is)X
+3360(made)X
+3572(in)X
+3672(this)X
+3825(section)X
+4090(for)X
+4222(the)X
+5 f F
+2520 4896(cmr10)N
+1 f F
+2785(font)X
+2939(at)X
+3022(the)X
+3145(standard)X
+3442(set)X
+3556(of)X
+3648(six)X
+3765(magni\256cations)X
+4260(1,)X
+2520 4992(1.095,)N
+2741(1.2,)X
+2882(1.44,)X
+3063(1.728,)X
+3284(and)X
+3422(2.07)X
+3584(\(which)X
+3829(are)X
+3950(approxima-)X
+2520 5088(tions)N
+2706(of)X
+2804(1.2)X
+2935(raised)X
+3158(to)X
+3251(the)X
+3380(powers)X
+3643(0,)X
+3734(.5,)X
+3844(1,)X
+3934(2,)X
+4024(3,)X
+4114(and)X
+4260(4,)X
+2520 5184(respectively\).)N
+2978(In)X
+3068(addition,)X
+3373(as)X
+3464(a)X
+3524(gesture)X
+3780(to)X
+3866(those)X
+4059(who)X
+4221(are)X
+2520 5280(not)N
+2658(purists)X
+2907(and)X
+3059(accept)X
+3300(magni\256cations)X
+3806(of)X
+3908(the)X
+4041(10)X
+4156(point)X
+2520 5376(design)N
+2774(size)X
+2944(as)X
+3056(di)X
+3118 MX
+(ff)138 606 oc
+3166(erent)X
+3372(point)X
+3581(sizes,)X
+3802(the)X
+3946(comparison)X
+2520 5472(includes)N
+2812(the)X
+5 f F
+2935(cmr)X
+1 f F
+3104(font)X
+3257(at)X
+3339(point)X
+3527(size)X
+3676(5,)X
+3760(6,)X
+3844(7,)X
+3928(8,)X
+4012(9,)X
+4096(10,)X
+4220(12,)X
+2520 5568(and)N
+2665(17,)X
+2795(the)X
+2923(standard)X
+3225(eight)X
+3415(design)X
+3654(sizes)X
+3840(maintained)X
+4226(for)X
+2520 5664(use)N
+2647(with)X
+2809(T)X
+2850 5680(E)N
+2891 5664(X.)N
+2445 6084(13)N
+
+%%Page: 13 14
+13 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+1 f F
+735 672(Table)N
+947(1)X
+1017(shows)X
+1247(the)X
+1375(sizes)X
+1561(in)X
+1653(bytes.)X
+1872(Thus)X
+2062(it)X
+2136(is)X
+2219(clear)X
+576 768(that)N
+721(the)X
+843(P)X
+8 s 8 xH F
+887(OST)X
+10 s 10 xH F
+1008(S)X
+8 s 8 xH F
+1052(CRIPT)X
+10 s 10 xH F
+1258(outline)X
+1504(font)X
+1657(is)X
+1734(bigger)X
+1963(than)X
+2125(any)X
+2265(bit-)X
+576 864(mapped)N
+855(font)X
+1009(and)X
+1150(that)X
+1295(goal)X
+1458(4)X
+1523(fails.)X
+1707(Moreover,)X
+2070(it)X
+2140(is)X
+2219(clear)X
+576 960(that)N
+735(the)X
+871(outline)X
+1131(font)X
+1298(is)X
+1389(bigger)X
+1632(than)X
+1808(the)X
+1944(sum)X
+2115(over)X
+2296(all)X
+576 1056(magni\256cations)N
+1067(of)X
+1154(one)X
+1290(design)X
+1519(size)X
+1664(and)X
+1801(than)X
+1960(the)X
+2079(sum)X
+2233(over)X
+576 1152(all)N
+681(standard)X
+978(design)X
+1212(sizes.)X
+1413(Thus)X
+1597(goal)X
+1759(5)X
+1823(fails.)X
+2005(In)X
+2096(fact,)X
+2261(this)X
+576 1248(failure)N
+830(is)X
+927(the)X
+1069(reason)X
+1323(that)X
+1487(the)X
+1629(samples)X
+1931(of)X
+2042(Figure)X
+2296(11)X
+576 1344(involve)N
+841(only)X
+1008(upper)X
+1216(case)X
+1380(letters.)X
+1621(Samples)X
+1916(with)X
+2082(complete)X
+576 1440(fonts)N
+757(with)X
+920(both)X
+1083(cases)X
+1274(often)X
+1460(overloaded)X
+1838(the)X
+1957(printer)X
+2193(avail-)X
+576 1536(able)N
+730(to)X
+812(the)X
+930(students)X
+1212(at)X
+1290(the)X
+1408(time)X
+1570(this)X
+1705(work)X
+1890(was)X
+2035(done.)X
+650 1728(Font)N
+939(Design)X
+1286(Magni-)X
+1676(Bitmap)X
+2031(Outlines)X
+1041 1824(size)N
+1286(\256cation)X
+1677(\(size)X
+1849(in)X
+2031(\(size)X
+2203(in)X
+1715 1920(bytes\))N
+2031(bytes\))X
+48 f F
+650 1936(i)N
+662(i)X
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+5 f F
+650 2032(cmr)N
+1 f F
+1086(10)X
+1286(1.0)X
+1691(22,812)X
+2031(245,000)X
+690 2128(")N
+1086(10)X
+1286(1.095)X
+1691(24,231)X
+2111(")X
+690 2224(")N
+1086(10)X
+1286(1.2)X
+1691(26,044)X
+2111(")X
+690 2320(")N
+1086(10)X
+1286(1.44)X
+1691(31,892)X
+2111(")X
+690 2416(")N
+1086(10)X
+1286(1.728)X
+1691(39,614)X
+2111(")X
+690 2512(")N
+1086(10)X
+1286(2.07)X
+1691(50,578)X
+2111(")X
+5 f F
+650 2608(cmr)N
+1 f F
+1126(5)X
+1286(1.0)X
+1691(16,729)X
+2111(")X
+690 2704(")N
+1126(6)X
+1286(1.0)X
+1691(17,757)X
+2111(")X
+690 2800(")N
+1126(7)X
+1286(1.0)X
+1691(18,820)X
+2111(")X
+690 2896(")N
+1126(8)X
+1286(1.0)X
+1691(20,041)X
+2111(")X
+690 2992(")N
+1126(9)X
+1286(1.0)X
+1691(21,580)X
+2111(")X
+690 3088(")N
+1086(12)X
+1286(1.0)X
+1691(25,658)X
+2111(")X
+690 3184(")N
+1086(17)X
+1286(1.0)X
+1691(37,140)X
+2111(")X
+48 f F
+650 3200(i)N
+662(i)X
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+1 f F
+650 3296(Total)N
+1651(352,896)X
+2031(245,000)X
+1354 3416(Table)N
+1557(1)X
+735 3560(However,)N
+1081(do)X
+1192(note)X
+1361(that)X
+1512(the)X
+1641(outline)X
+1894(font)X
+2055(is)X
+2140(smaller)X
+576 3656(than)N
+746(the)X
+876(sum)X
+1041(over)X
+1216(all)X
+1328(design)X
+1569(sizes)X
+1757(and)X
+1905(magni\256cations)X
+576 3752(thereof.)N
+735 3848(So)N
+848(in)X
+939(terms)X
+1147(of)X
+1244(disk)X
+1407(space)X
+1616(for)X
+1740(the)X
+1868(non-purists,)X
+2278(the)X
+576 3944(outline)N
+825(font)X
+981(represents)X
+1334(a)X
+1397(savings.)X
+1684(Again)X
+1906(notice)X
+2128(that)X
+2274(not)X
+576 4040(all)N
+698(magni\256cations)X
+1212(of)X
+1322(the)X
+1463(bitmapped)X
+1844(fonts)X
+2047(are)X
+2189(main-)X
+576 4136(tained)N
+822(and)X
+988(the)X
+1136(outline)X
+1408(font)X
+1587(is)X
+1690(arbitrarily)X
+2061(scaleable.)X
+576 4232(Moreover,)N
+947(as)X
+1048(the)X
+1180(magni\256cation)X
+1654(grows)X
+1884(the)X
+2016(size)X
+2176(of)X
+2278(the)X
+576 4328(bitmap)N
+818(grows)X
+1034(even)X
+1206(more)X
+1391(rapidly.)X
+735 4424(The)N
+888(disappointment)X
+1409(with)X
+1579(respect)X
+1835(to)X
+1925(saving)X
+2162(printer)X
+576 4520(and)N
+713(disk)X
+867(memory)X
+1155(says)X
+1314(that)X
+1454(it)X
+1518(is)X
+1591(important)X
+1922(to)X
+2004(spend)X
+2211(more)X
+576 4616(e)N
+612 MX
+(ff)138 606 oc
+660(ort)X
+769(to)X
+851(optimize)X
+1151(the)X
+1269(outline)X
+1511(font.)X
+735 4712(All)N
+871(is)X
+959(not)X
+1096(lost,)X
+1266(though!)X
+1550(As)X
+1674(this)X
+1824(paper)X
+2038(was)X
+2198(being)X
+576 4808(prepared)N
+902(for)X
+1040(publication)X
+1444(in)X
+2 f F
+1550(TUGboat)X
+1 f F
+1852(,)X
+1915(one)X
+2074(reviewer,)X
+576 4904(Nelson)N
+829(Beebe,)X
+1076(pointed)X
+1342(out)X
+1470(something)X
+1829(that)X
+1975(we)X
+2095(can)X
+2234(only)X
+576 5000(kick)N
+735(ourselves)X
+1059(for)X
+1174(not)X
+1296(noticing.)X
+1598(The)X
+1743(P)X
+8 s 8 xH F
+1787(OST)X
+10 s 10 xH F
+1908(S)X
+8 s 8 xH F
+1952(CRIPT)X
+10 s 10 xH F
+2154(outline)X
+576 5096(fonts)N
+777(that)X
+938(are)X
+1078(generated)X
+1432(by)X
+9 f F
+1555(mf2ps)X
+1 f F
+1813(are)X
+1953(horrendously)X
+576 5192(wasteful)N
+873(in)X
+960(space.)X
+1184(They)X
+1374(use)X
+1506(original,)X
+1800(built-in)X
+2060(command)X
+576 5288(names)N
+802(and)X
+939(absolute)X
+1227(coordinates.)X
+1638(A)X
+1718(signi\256cant)X
+2073(reduction)X
+576 5384(in)N
+661(size)X
+809(can)X
+944(be)X
+1043(obtained)X
+1342(by)X
+1445(de\256nition)X
+1774(and)X
+1913(use)X
+2043(in)X
+2127(the)X
+2247(out-)X
+576 5480(lines)N
+752(of)X
+844(single-character)X
+1383(command)X
+1724(names,)X
+1974(e.g.,)X
+2136(\252)X
+5 f F
+2172(M)X
+1 f F
+(\272)S
+2282(for)X
+576 5576(\252)N
+5 f F
+612(moveto)X
+1 f F
+(\272,)S
+995(and)X
+1150(by)X
+1269(use)X
+1415(of)X
+1521(relative)X
+1801(versions)X
+2106(of)X
+2211(these)X
+576 5672(commands)N
+943(with)X
+1105(operands)X
+1415(of)X
+1502(fewer)X
+1706(digits)X
+1903(after)X
+2071(the)X
+2190(initial)X
+2520 672(absolute)N
+5 f F
+2812(moveto)X
+1 f F
+3125(of)X
+3217(any)X
+3358(character.)X
+3699(A)X
+3782(simple)X
+4020(\256lter)X
+4195(was)X
+2520 768(written)N
+2769(to)X
+2853(obtain)X
+3075(new)X
+3231(compressed)X
+3633(versions)X
+3923(of)X
+4013(the)X
+4134(P)X
+8 s 8 xH F
+4178(OST-)X
+10 s 10 xH F
+2520 864(S)N
+8 s 8 xH F
+2564(CRIPT)X
+10 s 10 xH F
+2787(outline)X
+3050(fonts.)X
+3271(The)X
+3437(appearances)X
+3871(of)X
+3978(the)X
+4116(output)X
+2520 960(when)N
+2728(printing)X
+3016(with)X
+3193(these)X
+3393(new)X
+3562(versions)X
+3864(is)X
+3952(unchanged,)X
+2520 1056(but)N
+2654(what)X
+2842(is)X
+2927(sent)X
+3087(to)X
+3180(the)X
+3309(printer)X
+3554(is)X
+3638(signi\256cantly)X
+4064(smaller,)X
+2520 1152(about)N
+2718(37.7%)X
+2945(smaller.)X
+3221(The)X
+3366(reduction)X
+3689(on)X
+3789(a)X
+3845(per-letter)X
+4160(basis)X
+2520 1248(is)N
+2599(about)X
+2803(45%.)X
+3016(Table)X
+3225(2)X
+3291(shows)X
+3517(the)X
+3641(information)X
+4045(of)X
+4137(Table)X
+2520 1344(1)N
+2580(for)X
+2694(the)X
+2812(new)X
+2966(versions)X
+3253(of)X
+3340(the)X
+3458(outline)X
+3700(fonts.)X
+2594 1536(Font)N
+2883(Design)X
+3230(Magni-)X
+3620(Bitmap)X
+3975(Outlines)X
+2985 1632(size)N
+3230(\256cation)X
+3621(\(size)X
+3793(in)X
+3975(\(size)X
+4147(in)X
+3659 1728(bytes\))N
+3975(bytes\))X
+48 f F
+2594 1744(i)N
+2606(i)X
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+5 f F
+2594 1840(cmr)N
+1 f F
+3030(10)X
+3230(1.0)X
+3635(22,812)X
+3975(152,670)X
+2634 1936(")N
+3030(10)X
+3230(1.095)X
+3635(24,231)X
+4055(")X
+2634 2032(")N
+3030(10)X
+3230(1.2)X
+3635(26,044)X
+4055(")X
+2634 2128(")N
+3030(10)X
+3230(1.44)X
+3635(31,892)X
+4055(")X
+2634 2224(")N
+3030(10)X
+3230(1.728)X
+3635(39,614)X
+4055(")X
+2634 2320(")N
+3030(10)X
+3230(2.07)X
+3635(50,578)X
+4055(")X
+5 f F
+2594 2416(cmr)N
+1 f F
+3070(5)X
+3230(1.0)X
+3635(16,729)X
+4055(")X
+2634 2512(")N
+3070(6)X
+3230(1.0)X
+3635(17,757)X
+4055(")X
+2634 2608(")N
+3070(7)X
+3230(1.0)X
+3635(18,820)X
+4055(")X
+2634 2704(")N
+3070(8)X
+3230(1.0)X
+3635(20,041)X
+4055(")X
+2634 2800(")N
+3070(9)X
+3230(1.0)X
+3635(21,580)X
+4055(")X
+2634 2896(")N
+3030(12)X
+3230(1.0)X
+3635(25,658)X
+4055(")X
+2634 2992(")N
+3030(17)X
+3230(1.0)X
+3635(37,140)X
+4055(")X
+48 f F
+2594 3008(i)N
+2606(i)X
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+(i)S
+1 f F
+2594 3104(Total)N
+3595(352,896)X
+3975(152,670)X
+3298 3224(Table)N
+3501(2)X
+2679 3368(There)N
+2911(are)X
+3054(still)X
+3217(better)X
+3444(compressions)X
+3924(that)X
+4088(can)X
+4244(be)X
+2520 3464(achieved.)N
+2865(According)X
+3243(to)X
+3344(Beebe)X
+3584([4],)X
+3736(Toal)X
+3921(and)X
+4075(Raine's)X
+2520 3560(outline)N
+2787(representation)X
+3287(of)X
+5 f F
+3400(cmr)X
+1 f F
+3590(at)X
+3694(10)X
+3820(points)X
+4061(requires)X
+2520 3656(about)N
+2726(twice)X
+2927(the)X
+3052(space)X
+3258(needed)X
+3513(for)X
+3634(bitmaps)X
+3914(of)X
+4008(the)X
+4133(same;)X
+2520 3752(at)N
+2603(14)X
+2708(to)X
+2795(16)X
+2900(points,)X
+3140(the)X
+3264(outlines)X
+3543(and)X
+3685(the)X
+3809(bitmaps)X
+4088(occupy)X
+2520 3848(about)N
+2728(the)X
+2856(same)X
+3051(amount)X
+3321(of)X
+3418(space;)X
+3648(above)X
+3869(16)X
+3978(points,)X
+4222(the)X
+2520 3944(outlines)N
+2809(are)X
+2944(smaller)X
+3216(than)X
+3390(the)X
+3524(bitmaps.)X
+3833(It)X
+3918(is)X
+4007(clear)X
+4200(that)X
+2520 4040(better)N
+2727(encodings)X
+3076(exist)X
+3251(than)X
+3413(we)X
+3531(explored)X
+3836(and)X
+3976(these)X
+4165(must)X
+2520 4136(be)N
+2616(explored)X
+2917(for)X
+3031(any)X
+3167(future)X
+3379(version)X
+3635(of)X
+9 f F
+3724(mf2ps)X
+1 f F
+3941(.)X
+2679 4232(One)N
+2842(such)X
+3018(better)X
+3230(encoding)X
+3553(appears)X
+3828(to)X
+3919(be)X
+4024(that)X
+4173(used)X
+2520 4328(by)N
+2629(Adobe)X
+2872(for)X
+2995(its)X
+3099(own)X
+3266(proprietary)X
+3652(fonts;)X
+3863(fonts)X
+4052(encoded)X
+2520 4424(this)N
+2655(way)X
+2809(have)X
+2981(a)X
+3037(FontType)X
+3368(of)X
+3456(1.)X
+3557(User)X
+3730(de\256ned)X
+3987(fonts)X
+4168(have)X
+2520 4520(a)N
+2587(FontType)X
+2929(of)X
+3027(3.)X
+3118(Beebe)X
+3350([4])X
+3475(says)X
+3643(that)X
+3793(type)X
+3961(1)X
+4031(fonts)X
+4221(are)X
+2520 4616(handled)N
+2813(with)X
+2994(greater)X
+3257(e)X
+3293 MX
+(Fi)139 825 oc
+(ciency)S
+3608(than)X
+3785(type)X
+3962(3)X
+4041(fonts)X
+4240(on)X
+2520 4712(most)N
+2700(existing)X
+2978(P)X
+8 s 8 xH F
+3022(OST)X
+10 s 10 xH F
+3143(S)X
+8 s 8 xH F
+3187(CRIPT)X
+10 s 10 xH F
+3394(interpreters,)X
+3805(especially)X
+4151(those)X
+2520 4808(that)N
+2683(are)X
+2825(based)X
+3051(on)X
+3174(Adobe-licensed)X
+3721(code.)X
+3956(Adobe)X
+4213(has)X
+2520 4904(recently)N
+2822(published)X
+3175(speci\256cations)X
+3653(for)X
+3789(the)X
+3929(type)X
+4109(1)X
+4191(font)X
+2520 5000(encoding)N
+2840([2],)X
+2980(thus)X
+3139(allowing)X
+3445(anyone)X
+3703(to)X
+3791(produced)X
+4116(type)X
+4280(1)X
+2520 5096(fonts.)N
+2729(Beebe)X
+2959(believes)X
+3251(that)X
+3400(the)X
+3527(market)X
+3778(forces)X
+4003(will)X
+4155(drive)X
+2520 5192(other)N
+2708(companies)X
+3074(to)X
+3159(encode)X
+3410(their)X
+3580(fonts)X
+3763(as)X
+3853(type)X
+4015(1.)X
+4119(More-)X
+2520 5288(over,)N
+2714(as)X
+2812(more)X
+3008(and)X
+3155(more)X
+3351(windowing)X
+3742(systems)X
+4026(based)X
+4240(on)X
+2520 5384(P)N
+8 s 8 xH F
+2564(OST)X
+10 s 10 xH F
+2685(S)X
+8 s 8 xH F
+2729(CRIPT)X
+10 s 10 xH F
+2911(,)X
+2954(e.g.,)X
+3113(NeWS)X
+3350(and)X
+3489(NeXT,)X
+3733(appear,)X
+3992(the)X
+4114(attrac-)X
+2520 5480(tion)N
+2672(of)X
+2767(P)X
+8 s 8 xH F
+2811(OST)X
+10 s 10 xH F
+2932(S)X
+8 s 8 xH F
+2976(CRIPT)X
+10 s 10 xH F
+3186(outline)X
+3436(fonts)X
+3624(will)X
+3776(increase,)X
+4088(as)X
+4182(then)X
+2520 5576(the)N
+2651(same)X
+2849(font)X
+3012(can)X
+3158(be)X
+3268(used)X
+3449(for)X
+3577(both)X
+3753(printing)X
+4040(and)X
+4190(pre-)X
+2520 5672(viewing.)N
+2827(Thus,)X
+3036(the)X
+3163(incentive)X
+3486(will)X
+3639(be)X
+3743(to)X
+3833(convert)X
+0 f F
+4102(META-)X
+1 f F
+2445 6084(16)N
+
+%%Page: 14 15
+14 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+576 672(FONT)N
+1 f F
+761(fonts)X
+941(into)X
+1085(type)X
+1243(1)X
+1303(P)X
+8 s 8 xH F
+1347(OST)X
+10 s 10 xH F
+1468(S)X
+8 s 8 xH F
+1512(CRIPT)X
+10 s 10 xH F
+1714(outline)X
+1956(fonts.)X
+735 768(Ultimately,)N
+1124(the)X
+1250(tradeo)X
+1451 MX
+(ff)138 606 oc
+1527(is)X
+1608(between)X
+1904(the)X
+2030(size)X
+2183(of)X
+2278(the)X
+576 864(font)N
+741(sent)X
+906(to)X
+1004(the)X
+1138(printer,)X
+1408(and)X
+1560(the)X
+1693(time)X
+1870(it)X
+1949(takes)X
+2149(for)X
+2278(the)X
+576 960(printer)N
+815(to)X
+902(decode)X
+1155(the)X
+1278(program)X
+1576(for)X
+1696(the)X
+1820(characters.)X
+2193(How-)X
+576 1056(ever,)N
+764(with)X
+934(proper)X
+1172(cacheing,)X
+1506(a)X
+1570(big)X
+1700(enough)X
+1964(cache,)X
+2196(and)X
+2340(a)X
+576 1152(not)N
+715(very)X
+895(fancy)X
+1111(document,)X
+1484(the)X
+1619(decoding)X
+1950(is)X
+2040(done)X
+2234(only)X
+576 1248(once)N
+748(per)X
+871(character)X
+1187(for)X
+1301(the)X
+1419(document!)X
+3 f F
+576 1440(7)N
+676(Future)X
+932(work)X
+1 f F
+576 1584(For)N
+708(the)X
+827(future,)X
+1060(there)X
+1242(are)X
+1362(a)X
+1420(number)X
+1687(of)X
+1776(improvements)X
+2256(that)X
+576 1680(can)N
+714(be)X
+816(made.)X
+1055(Currently,)X
+1407(each)X
+1580(letter)X
+1770(of)X
+1862(the)X
+1985(P)X
+8 s 8 xH F
+2029(OST)X
+10 s 10 xH F
+2150(S)X
+8 s 8 xH F
+2194(CRIPT)X
+10 s 10 xH F
+576 1776(outline)N
+820(fonts)X
+1002(is)X
+1077(described)X
+1407(as)X
+1496(a)X
+1555(set)X
+1667(of)X
+1757(cyclic)X
+1972(paths.)X
+2184(When)X
+576 1872(all)N
+698(are)X
+839(\256lled)X
+1045(or)X
+1154(stroked,)X
+1452(one)X
+1609(gets)X
+1779(the)X
+1918(desired)X
+2191(letter.)X
+576 1968(Some)N
+789(of)X
+887(those)X
+1087(cyclic)X
+1310(paths)X
+1510(have)X
+1693(a)X
+1761(common)X
+2073(boundary)X
+576 2064(that)N
+721(is)X
+799(inside)X
+1015(the)X
+1138(letter)X
+1327(and)X
+1467(is)X
+1544(not)X
+1670(necessary)X
+2007(for)X
+2125(the)X
+2247(out-)X
+576 2160(line)N
+733(description)X
+1126(of)X
+1230(the)X
+1365(letter)X
+1567(as)X
+1671(a)X
+1745(whole.)X
+1999(Eliminating)X
+576 2256(these)N
+772(paths)X
+972(and)X
+1118(creating)X
+1407(one)X
+1553(outline)X
+1805(for)X
+1929(the)X
+2057(letter)X
+2252(will)X
+576 2352(save)N
+753(space.)X
+986(Today)X
+1225(this)X
+1374(can)X
+1520(be)X
+1630(done)X
+1820(manually,)X
+2172(and)X
+2323(is)X
+576 2448(worth)N
+789(the)X
+912(e)X
+948 MX
+(ff)138 606 oc
+996(ort)X
+1110(because)X
+1390(the)X
+1513(translation)X
+1876(process)X
+2142(is)X
+2220(done)X
+576 2544(only)N
+738(once.)X
+930(From)X
+1123(that)X
+1263(time)X
+1426(on,)X
+1547(the)X
+1666(font)X
+1816(is)X
+1890(used)X
+2058(the)X
+2177(way)X
+2332(it)X
+576 2640(is.)N
+735 2736(As)N
+863(was)X
+1027(demonstrated)X
+1498(by)X
+1617(Beebe's)X
+1916(rescue)X
+2162(of)X
+2269(our)X
+576 2832(result,)N
+796(closer)X
+1010(attention)X
+1312(should)X
+1547(be)X
+1645(paid)X
+1805(to)X
+1888(obtaining)X
+2211(more)X
+576 2928(compact)N
+869(representations)X
+1376(of)X
+1464(character)X
+1781(outlines,)X
+2076(represen-)X
+576 3024(tations)N
+811(for)X
+927(which)X
+1145(P)X
+8 s 8 xH F
+1189(OST)X
+10 s 10 xH F
+1310(S)X
+8 s 8 xH F
+1354(CRIPT)X
+10 s 10 xH F
+1557(routines)X
+1836(can)X
+1969(be)X
+2066(written)X
+2314(to)X
+576 3120(interpret)N
+868(them)X
+1048(into)X
+1192(standard)X
+1484(outline)X
+1726(drawing)X
+2009(commands.)X
+576 3216(Collapsing)N
+952(commands)X
+1329(into)X
+1482(single)X
+1702(characters)X
+2058(and)X
+2203(using)X
+576 3312(relative)N
+839(movements)X
+1231(saved)X
+1437(signi\256cant)X
+1793(amounts)X
+2087(of)X
+2177(space.)X
+576 3408(Perhaps,)N
+882(even)X
+1066(more)X
+1263(dramatic)X
+1576(savings)X
+1848(can)X
+1992(be)X
+2100(obtained)X
+576 3504(by)N
+676(giving)X
+900(coordinates)X
+1290(and)X
+1426(distances)X
+1740(in)X
+1822(hexadecimal.)X
+735 3600(More)N
+945(e)X
+981 MX
+(ff)138 606 oc
+1029(ort)X
+1154(can)X
+1302(be)X
+1414(spent)X
+1620(on)X
+1737(modifying)X
+2107(the)X
+2242(pro-)X
+576 3696(gram)N
+790(in)X
+901(order)X
+1120(to)X
+1231(allow)X
+1458(magni\256cations)X
+1978(up)X
+2106(to)X
+2216(7200)X
+576 3792(points.)N
+824(Thus,)X
+1037(no)X
+1150(jaggies)X
+1410(will)X
+1567(be)X
+1677(seen,)X
+1874(as)X
+1975(occasionally)X
+576 3888(happens)N
+866(when)X
+1067(using)X
+1267(higher)X
+1499(magni\256cations,)X
+2017(e.g.,)X
+2180(in)X
+2269(our)X
+576 3984(translated)N
+915(fonts)X
+1102(at)X
+1187(magni\256cation)X
+1654(8.)X
+1741(This)X
+1910(could)X
+2116(be)X
+2220(done)X
+576 4080(by)N
+692(enlarging)X
+1031(the)X
+1164(program)X
+1471(arrays)X
+1703(to)X
+1800(handle)X
+2049(characters)X
+576 4176(based)N
+812(on)X
+945(7200)X
+1159(points.)X
+1428(A)X
+1540(sophisticated)X
+2012(solution)X
+2323(is)X
+576 4272(required)N
+867(if)X
+939(one)X
+1078(wants)X
+1288(to)X
+1373(save)X
+1539(room)X
+1731(while)X
+1932(compiling)X
+2278(the)X
+576 4368(input)N
+767(font.)X
+943(In)X
+1037(such)X
+1211(a)X
+1274(case,)X
+1460(any)X
+1603(linear)X
+1814(translation)X
+2180(which)X
+576 4464(is)N
+652(done)X
+831(within)X
+1058(the)X
+1179(P)X
+8 s 8 xH F
+1223(OST)X
+10 s 10 xH F
+1344(S)X
+8 s 8 xH F
+1388(CRIPT)X
+10 s 10 xH F
+1593(program)X
+1888(is)X
+1964(with)X
+2129(a)X
+2188(factor)X
+576 4560(less)N
+716(than)X
+874(1.)X
+0 f F
+735 4656(METAFONT)N
+1 f F
+1106(was)X
+1261(changed)X
+1559(for)X
+1684(T)X
+1725 4672(E)N
+1766 4656(X)N
+1855(3.0.)X
+2006(It)X
+2086(is)X
+2170(neces-)X
+576 4752(sary)N
+747(to)X
+846(build)X
+1047(a)X
+1120(new)X
+1291(version)X
+1564(of)X
+9 f F
+1670(mf2ps)X
+1 f F
+1924(based)X
+2144(on)X
+2261(this)X
+576 4848(latest)N
+790(version)X
+1071(of)X
+0 f F
+1183(METAFONT)X
+1 f F
+1524(.)X
+1589(As)X
+1723(the)X
+1866(changes)X
+2170(to)X
+2278(the)X
+0 f F
+576 4944(METAFONT)N
+1 f F
+967(program)X
+1289(deal)X
+1473(mainly)X
+1744(with)X
+1935(ligatures)X
+2260(and)X
+576 5040(kerning,)N
+877(the)X
+1011(calculation)X
+1400(of)X
+1504(envelopes)X
+1862(is)X
+1952(probably)X
+2274(not)X
+576 5136(a)N
+612 MX
+(ff)138 606 oc
+660(ected.)X
+869(Therefore,)X
+1226(it)X
+1289(is)X
+1361(likely)X
+1562(that)X
+1702(the)X
+1820(portion)X
+2071(of)X
+0 f F
+2158(META-)X
+576 5232(FONT)N
+1 f F
+769(up)X
+877(to)X
+967(the)X
+1093(calculation)X
+1473(of)X
+1568(the)X
+1694(envelope)X
+2012(can)X
+2152(still)X
+2300(be)X
+576 5328(used)N
+746(as)X
+836(a)X
+894(front)X
+1072(end)X
+1210(for)X
+9 f F
+1328(mf2ps)X
+1 f F
+1567(with)X
+1731(very)X
+1896(little)X
+2064(change)X
+2314(in)X
+576 5424(the)N
+694(portion)X
+945(of)X
+1032(the)X
+1150(program)X
+1442(we)X
+1556(wrote.)X
+735 5520(Finally,)N
+1018(it)X
+1099(might)X
+1323(be)X
+1437(worthwhile,)X
+1860(for)X
+1992(the)X
+2128(sake)X
+2309(of)X
+576 5616(portability)N
+932(to)X
+1017(other)X
+1205(systems)X
+1481(and)X
+1619(enhanceability)X
+2109(by)X
+2211(other)X
+2520 672(humans,)N
+2834(to)X
+2941(rewrite)X
+3214(or)X
+3326(to)X
+3433(write)X
+3643(the)X
+3787(next)X
+3971(version)X
+4253(of)X
+9 f F
+2520 768(mf2ps)N
+1 f F
+2757(with)X
+5 f F
+2919(WEB)X
+1 f F
+(.)S
+3 f F
+2520 960(Acknowledgments)N
+1 f F
+2520 1104(The)N
+2685(authors)X
+2961(thank)X
+3179(the)X
+2 f F
+3317(TUGboat)X
+1 f F
+3659(editors,)X
+3937(and)X
+4093(Nelson)X
+2520 1200(Beebe)N
+2742(for)X
+2857(their)X
+3025(help,)X
+3204(sharp)X
+3399(comments,)X
+3769(and)X
+3906(result-saving)X
+2520 1296(ideas.)N
+2751(Dealing)X
+3032(with)X
+3201(their)X
+3375(comments)X
+3731(made)X
+3932(this)X
+4074(a)X
+4137(better)X
+2520 1392(paper.)N
+3 f F
+2520 1584(References)N
+1 f F
+2600 1704(1.)N
+2 f F
+2760(P)X
+8 s 8 xH F
+2809(OST)X
+10 s 10 xH F
+2923(S)X
+8 s 8 xH F
+(CRIPT)S
+10 s 10 xH F
+3230(Language)X
+3639(Reference)X
+4051(Manual,)X
+1 f F
+2760 1800(Adobe)N
+3004(Systems)X
+3300(Incorporated,)X
+3761(Addison-Wesley,)X
+2760 1896(Reading,)N
+3067(MA)X
+3216(\(1985\).)X
+2600 2016(2.)N
+2760(\252Adobe)X
+3080(Type)X
+3316(1)X
+3427(Font)X
+3644(Format,\272)X
+4002(Part)X
+4202(No.)X
+2760 2112(LPS0064,)N
+3097(Adobe)X
+3331(Systems,)X
+3637(Inc.)X
+3780(\(March,)X
+4057(1990\).)X
+2600 2232(3.)N
+2760(S.)X
+2844(von)X
+2984(Bechtolsheim,)X
+3526(\252The)X
+3769(T)X
+3810 2248(E)N
+3851 2232(X)N
+3992(PostScript)X
+2760 2328(Software)N
+3088(Package,\272)X
+2 f F
+3450(TUGboat)X
+3 f F
+3790(10)X
+1 f F
+(\(1\),)S
+4022(p.)X
+4120(25\26127)X
+2760 2424(\(1989\).)N
+2600 2544(4.)N
+2760(N.)X
+2858(Beebe,)X
+3099(Private)X
+3346(communication,)X
+3884(via)X
+4003(electronic)X
+2760 2640(mail.)N
+2982(\(1990\).)X
+2600 2760(5.)N
+2760(L.)X
+2849(Carr,)X
+3110(\252Of)X
+3329(Metafont)X
+3721(and)X
+3936(PostScript,\272)X
+2 f F
+2760 2856(T)N
+2796 2872(E)N
+2845 2856(Xniques)N
+3 f F
+3123(5)X
+1 f F
+(,)S
+3203(p.)X
+3283(141\261152)X
+3583(\(August,)X
+3881(1987\).)X
+2600 2976(6.)N
+2760(D.)X
+2858(Henderson,)X
+3255(\252Outline)X
+3561(fonts)X
+3751(with)X
+0 f F
+3923(METAFONT)X
+1 f F
+4264(,\272)X
+2 f F
+2760 3072(TUGboat)N
+3 f F
+3082(10)X
+1 f F
+(\(1\),)S
+3296(p.)X
+3376(36\26138)X
+3596(\(1989\).)X
+2600 3192(7.)N
+2760(J.D.)X
+2909(Hobby,)X
+3200(\252A)X
+0 f F
+3347(METAFONT)X
+1 f F
+3688(-like)X
+3889(System)X
+4178(with)X
+2760 3288(PostScript)N
+3112(Output,\272)X
+2 f F
+3414(TUGboat)X
+3 f F
+3740(10)X
+1 f F
+(\(4\),)S
+3957(p.)X
+4040(505\261512)X
+2760 3384(\(1989\).)N
+2600 3504(8.)N
+2760(B.W.)X
+2949(Kernighan,)X
+3388(\252A)X
+3562(Typesetter-independent)X
+2760 3600(TROFF,\272)N
+3092(Computing)X
+3479(Science)X
+3757(Technical)X
+4102(Report)X
+2760 3696(No.)N
+2929(97,)X
+3080(Bell)X
+3264(Laboratories,)X
+3742(Murray)X
+4035(Hill,)X
+4231(NJ)X
+2760 3792(07974)N
+2980(\(March,)X
+3257(1982\).)X
+2600 3912(9.)N
+2760(D.E.)X
+2927(Knuth,)X
+2 f F
+3208(The)X
+3389(T)X
+3425 3928(E)N
+3474 3912(Xbook,)N
+1 f F
+3761(Addison-Wesley,)X
+2760 4008(Reading,)N
+3067(MA)X
+3216(\(1984\).)X
+2600 4128(10.)N
+2760(D.E.)X
+2927(Knuth,)X
+2 f F
+3226(The)X
+0 f F
+3425(METAFONT)X
+2 f F
+3766(book,)X
+1 f F
+4022(Addison-)X
+2760 4224(Wesley,)N
+3041(Reading,)X
+3348(MA)X
+3497(\(1986\).)X
+2600 4344(11.)N
+2760(D.E.)X
+2927(Knuth,)X
+0 f F
+3272(METAFONT)X
+2 f F
+3613(:)X
+3765(The)X
+4011(Program,)X
+1 f F
+2760 4440(Addison-Wesley,)N
+3339(Reading,)X
+3646(MA)X
+3795(\(1987\).)X
+2600 4560(12.)N
+2760(G.)X
+2858(Toal,)X
+3058(Private)X
+3319(communication,)X
+3871(via)X
+4003(electronic)X
+2760 4656(mail.)N
+2982(\(1990\).)X
+2600 4776(13.)N
+2760(J.)X
+2831(Ziv)X
+2974(and)X
+3122(A.)X
+3220(Lempel,)X
+3517(\252A)X
+3643(Universal)X
+3987(Algorithm)X
+2760 4872(for)N
+2877(Sequential)X
+3237(Data)X
+3411(Compression,\272)X
+2 f F
+3911(IEEE)X
+4107(Trans-)X
+2760 4968(actions)N
+3031(on)X
+3151(Information)X
+3573(Theory)X
+3 f F
+3840(3)X
+1 f F
+(,)S
+3940(p.)X
+4040(337\261343)X
+2760 5064(\(May,)N
+2974(1977\).)X
+9 s 9 xH 47 f F
+3000 5344(\340)N
+1 f F
+3096(Shimon)X
+3338(Yanai)X
+3096 5432(IBM)N
+3250(Science)X
+3492(and)X
+3614(Technology)X
+3192 5520(Center)N
+3096 5608(Technion)N
+3386(City)X
+10 s 10 xH F
+2445 6084(17)N
+
+%%Page: 15 16
+15 p
+0(MF-logo)xf 0 f F
+10 s 10 xH 0 xS 0 f F
+9 s 9 xH 1 f F
+1152 664(Haifa)N
+1330(32000)X
+1152 752(Israel)N
+1152 840(yanai@israearn.bitnet)N
+47 f F
+1056 1016(\340)N
+1 f F
+1152(Daniel)X
+1362(M.)X
+1462(Berry)X
+1152 1104(Computer)N
+1458(Science)X
+1152 1192(Technion)N
+1152 1280(Haifa)N
+1330(32000)X
+1152 1368(Israel)N
+1152 1456(dberry@cs.technion.ac.il)N
+10 s 10 xH F
+2445 6084(18)N
+
+%%Trailer
+xt
+
+xs
diff --git a/fonts/utilities/mf2ps/doc/paper.ref b/fonts/utilities/mf2ps/doc/paper.ref
new file mode 100644
index 0000000000..bbc5117845
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/paper.ref
@@ -0,0 +1,1890 @@
+.nr [W \w'10'
+.nr [W \w'10'
+.pl 11.125i
+.de rb
+.ta 2m +5m +5m
+.nr t1\\n(.i
+.ls \\n(sq
+.in \\n(sem
+..
+.de rf
+.br
+.ne \\n(scu+\\n(sdu
+.sp \\n(sdu
+.ti -2m
+..
+.de LE
+.sp .5v
+..
+.de SU
+.ne 2v
+.br
+.ti 1.66P
+\f3\\$1\fP
+..
+.de Su
+.ne 2v
+.sp 1v
+\fB\&\\$1\fP
+..
+.de su
+.ne 3v
+.sp 1v
+.na
+\fB\&\\$1\fP
+.br
+.ad
+..
+.de PP
+.sp .5v
+..
+.de qb
+.in +\\n(sju
+.LL -\\n(sju
+.sp .5v
+..
+.de qe
+.in -\\n(sju
+.LL +\\n(sju
+.sp .5v
+..
+.de cl
+.ta\\n(sou +5m +5m
+.in+\\n(snu
+..
+.de dl
+.br
+.in-\\n(snu
+..
+.de ES
+.ft C
+.sp
+.nf
+.in +1.66P
+..
+.de EE
+.fi
+.ft R
+.sp
+.in -1.66P
+..
+.dehd
+.HS
+.nrhe+1
+.ie\\n(cn>1\{\
+.ie\\nc>\\n(cn\{\
+'sp\\n(bhu-1v
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Te
+.el.tl \\*(To
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'sp|\\n(thu
+.nrc 1 1
+.mkmx\}
+.el\{\
+.po+\\n(cwu+\\n(csu
+'sp|\\n(mxu\}\}
+.el\{\
+.if\\n(f5\{\
+.nr% +\\n(f5
+.nrf50 1\}
+'sp\\n(bhu-1v
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Te
+.el.tl \\*(To
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'sp|\\n(thu\}
+.chfx -\\n(tfu
+.chfo -\\n(tfu
+.if\\n(z1 .fz
+.chfo -\\n(tfu
+.if!\\n(f0 .ns
+.if\\n(f0\{\
+.nrf5\\n(f6
+.nrf6\\n(f7
+.nrf70
+.Ff
+.ie\\n(fa\{\
+.nrfa0
+.nrh21\}
+.el\{\
+.ie\\nx\{.if (\\n(nlu+5v)>(\\n(.p+\\nyu) .nr h1 1\}
+.el\{.if \\n(.tu<6v .nr h1 1\}\}\}
+.if\\n(h1=1\{\
+.nrh10
+'bp\}
+.if\\n(h2=1\{\
+.nrh20
+.fo\}
+.chfo (\\nyu-1v)
+.nrhe-1
+.HE
+..
+.defo
+.FS
+.if!\\n(he\{.if \\nx .xf\}
+.nrfa0
+.ie\\n(fg\{\
+.nrfa1
+.diGA\}
+.el\{\
+.ie\\n(cn<2\{\
+'chfo 32000
+'chfx 32000
+'sp(\\n(.pu-\\n(nlu-\\n(tfu+\\n(bfu-1v)u
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Be
+.el.tl \\*(Bo
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'bp\}
+.el.mf\}
+.FE
+..
+.demf
+.ie\\n+c<=\\n(cn .hd
+.el\{\
+.po\\n(cou
+.lt 6.63i
+'chfo 32000
+'chfx 32000
+'sp(\\n(.pu-\\n(nlu-\\n(tfu+\\n(bfu-1v)u
+.nr 1F \\n(.f
+.nr 1S \\n(.s
+.ft
+.ps
+.nr 2F \\n(.f
+.nr 2S \\n(.s
+.ft 1
+.ps 10
+.iee .tl \\*(Be
+.el.tl \\*(Bo
+.ft \\n(2F
+.ps \\n(2S
+.ft \\n(1F
+.ps \\n(1S
+'bp\}
+..
+.defn
+.ie\\nx .ne \\n(rcv-2v
+.el.ne \\n(rcv
+.if\\n(fn .AB"Nesting of footnotes is a no no"
+.nrfn1
+.daFN
+.ev1
+.ie\\n+x=1\{\
+.sp 10p
+\s-5\l'5P\(ul'\s+5
+.br\}
+.el.sp \\n(srv
+.fi
+.ad
+..
+.\" REFER macros .... citations
+.nr se 3u \" space to indent in emms
+.de []
+.][ \\$1
+..
+.de ][
+.if \\$1>5 .tm Bad arg to []
+.if !"\\*([O"" .if !\\n([O .as [O .
+.[\\$1
+..
+.ds RB ".RE
+.ds [. " [
+.ds .] ]
+.if n .ds [o ""
+.if n .ds [c ""
+.if t .ds [o \(lq
+.if t .ds [c \(rq
+.\" the next lines deal with the problem of .[1] or [1].
+.\" refer will write "linexxx\*(<.[1]\*(>.
+.\" and either "<." or ">." should produce the .;
+.\" similarly for ,
+.ds >. .
+.ds >, ,
+.de [5 \" tm style
+\\*([A, \\f2\\*([T\\f1,
+.ie \\n(TN \\*([M.
+.el UCLA Computer Science Department internal memorandum (\\*([D).
+.br
+..
+.de [0 \" other
+.if !"\\*([A"" \\*([A,
+.if !"\\*([O"" \\*([O
+.if !"\\*([D"" \& (\\*([D).
+.br
+..
+.de [1 \" journal article
+.if !"\\*([A"" \\*([A,
+.if !"\\*([T"" \\*([o\\*([T,\\*([c
+\\f2\\*([J\\f1\c
+.if !"\\*([V"" .if n \& Vol.\&\c
+.if !"\\*([V"" \& \\f3\\*([V\\f1\c
+.if !"\\*([N"" (\\*([N)\c
+.if !"\\*([P"" \{\
+.ie \\n([P>0 , pp.\c
+.el , p.\c
+\& \\*([P\c\}
+.if !"\\*([I"" .if "\\*([R"" , \\*([I\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([O"" \\*([O
+.br
+..
+.de [2 \" book
+.if !"\\*([A"" \\*([A,
+.if !"\\*([T"" \\f2\\*([T,\\f1
+\\*([I\c
+.if !"\\*([C"" , \\*([C\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([G"" Gov't. ordering no. \\*([G.
+.if !"\\*([O"" \\*([O
+.br
+..
+.de [4 \" report
+.if !"\\*([A"" \\*([A,
+\\*([o\\*([T,\\*([c
+\\*([R\c
+.if !"\\*([G"" \& (\\*([G)\c
+.if !"\\*([I"" , \\*([I\c
+.if !"\\*([C"" , \\*([C\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([O"" \\*([O
+.br
+..
+.de [3 \" article in book
+.if !"\\*([A"" \\*([A,
+.if !"\\*([T"" \\*([o\\*([T,\\*([c
+.if !"\\*([P"" pp. \\*([P
+in \\f2\\*([B\\f1\c
+.if !"\\*([E"" , ed. \\*([E\c
+.if !"\\*([I"" , \\*([I\c
+.if !"\\*([C"" , \\*([C\c
+.if !"\\*([D"" \& (\\*([D)\c
+\&.
+.if !"\\*([O"" \\*([O
+.br
+..
+.\" define warning that mX does not support references as footnotes
+.de ]-
+.AB"Can't do references as footnotes. Use '-e' or '-s' option with 'refer'
+..
+.de ]<
+.\" define the real ]- next-reference macro
+. de ]-
+. rm [V [P [A [T
+. rm [N [C [B [O
+. rm [R [I [E [D
+. rf
+\\\\*([F. \c
+\\..
+.\"now start the reference subsection
+\\*(RB
+.rb
+..
+.de ]>
+.re
+..
+.de ]]
+this is never
+executed
+and just
+uses up an end-of-file
+bug.
+..
+.de TS
+.sp
+..
+.de TE
+.sp .25v
+.ce
+\\$1
+.sp .5v
+.ien .ta .8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i
+.el.ta .5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i
+..
+.de ca
+.sp .5v
+.ce
+\&\\$1
+.sp 8p
+..
+.de CT
+.if \\n(ff .F0 "\\$1" "\\n%"
+..
+.nr sd 1i/24u \" # of inches to space between references (used as u).
+.nr sf 1.66P \" space to indent for paragraph (used as u).
+.nr sg 1u \" # of spaces needed before trap to start paragraph(used as v).
+.nr sh 0u \" # of spaces done to start a new paragraph (used as v).
+.nr si 1u \" # of spaces used to start an example (used as v).
+.nr sj 1.66P \" space to indent for an example (used as u);
+.nr sn 1.66P \" amount of space to indent for list (used as u).
+.nr so 1P \" amount of space to temp indent for each list entry (used as u).
+.nr sp 1i/12u \" spacing for each element of list (or sublist) (used as u).
+.nr sa 1v \" # of spaces to do before subtitles (used as u).
+.nr se 3u \" # of spaces to indent for a reference (used as ems).
+.nr sm 1i \" # of spaces of need to do a subtitle (used as u).
+.nr fv 3 \" set font variable for subtitles to Helvetica
+.nr si 1u \" # of spaces used to start an example (used as v).
+.nr sk 1u \" # of spaces left at the end of an example (used as v);
+.deRT
+.ien .ta .8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i
+.el.ta .25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i
+..
+.RT
+.EQ
+delim $$
+.EN
+.ds MF \f(LGMETA\%FONT\fP
+.ds TB \fITUG\%boat\fP
+.ds BZ B\o'e\(aa'zier
+.ds TX T\v'+.2m'\h'-.1m'E\h'-.1m'\v'-.2m'X
+.ds LT L\v'-.15m'\h'-.3m'\s-2A\s+2\v'.15m'\h'-.1m'T\v'.2m'\h'-.10m'E\h'-.10m'\v'-.2m'X
+.ds BT B\\h'-0.05m'\\s-2I\\h'-0.025m'B\\s0\\h'-0.08m'\\*(TX
+.ds pS P\s-2OST\%\s0S\s-2CRIPT\s0
+.ds P1 \f2P\fP\v'.2m'\s-3\f11\fP\s+3\^\v'-.2m'
+.ds P2 \f2P\fP\v'.2m'\s-3\f12\fP\s+3\^\v'-.2m'
+.ds P3 \f2P\fP\v'.2m'\s-3\f13\fP\s+3\^\v'-.2m'
+.ds P4 \f2P\fP\v'.2m'\s-3\f14\fP\s+3\^\v'-.2m'
+.en
+.LL 39.00P
+.ls 1
+.ds BL ''%''
+.hy 14
+The next page begins the paper. The macro package I use cannot start
+double columning until AFTER some text is printed..
+.pn 1
+.bp
+.MC 2 18.75P 1.5P 1i
+.mk xx
+\v'-1v'\l'18.7P'
+.sp |\n(xxu
+\s+2Environment for Translating
+.br
+\*(MF to \*(pS\s0
+.sp 3p
+.ti 1.66P
+Shimon Yanai and Daniel M. Berry
+.sp 8p
+\fBAbstract\fP
+.PP
+This paper describes a program, \fHmf2ps\fP, that translates a
+\*(MF font definition into a definition for the same font in the
+\*(pS language. \fHmf2ps\fP is constructed out
+of the part of the \*(MF program that extracts the envelopes of the
+letters; these envelopes are converted into \*(pS outlines.
+.su "1\ \ \ Introduction"
+.PP
+This paper describes a program, \fHmf2ps\fP,
+that takes from a \*(MF\*([.10,\|11\*(.]
+program for a font all the necessary information in order to
+create an equivalent \*(pS\*([.1\*(.]
+font definition. The program makes use of the front end of the
+\*(MF program to extract the envelopes of the letters to produce the
+\*(pS outlines. What makes this process natural is that both \*(MF and
+\*(pS make liberal use of \*(BZ curves to describe non-circular
+curves.
+.pp
+By producing this translator, it is hoped to be able to produce from
+\*(MF fonts \*(pS outline fonts which are more compact than the
+bitmapped fonts produced by the \*(MF program. Certainly the outline
+fonts are more easily scaled to other magnifications and possibly even
+other design sizes than are bitmaps. Moreover, doing so makes fonts
+heretofore available only on \*(TX\*([.9\*(.]
+and other DVI-based formatters,
+available on \fHditroff\fR\*([.8\*(.]
+and other formatters which have evolved,
+or have been designed, for use with \*(pS printers. This paper, which is
+typeset by \fHditroff\fR, uses a \*(pS version of the
+logo font in order to print the word \(lq\*(MF\|\(rq in the same appearance as
+in \*(TX-generated documents.
+Moreover, these new \*(pS outline fonts can be used in \*(TX also! One
+needs only the
+T\v'+.2m'\h'-.1m'E\h'-.1m'\v'-.2m'X\v'+.2m'\h'-.1m'P\h'-.1m'\v'-.2m'S\*([.3\*(.]
+software.
+.pp
+The organization of this paper is as follows. Section 2 presents the
+background of this work. Section 3 explains the rationale behind
+building the translator and describes a previous attempt at writing the
+translator and an approach to avoid. The software engineering aspect of
+the translator is described also in Section 3. The details of the
+implementation are exposed in Section 4. Section 5 describes the
+operation of the program. Section 6 evaluates the results. Finally
+Section 7 describes improvements to the translator that are left for
+future work.
+.su "2\ \ \ Background"
+.PP
+Typesetter formatting systems such as \*(TX and \fHditroff\fP use fonts
+as raw material. The formatters accept mixed text and commands as input
+and produce output, which, if sent to the laser printers or typesetters,
+yields formatted text printed on pages. The laser printers and
+typesetters use fonts, i.e., sets of printable patterns, one per
+character, in various representations in order to cause the desired
+characters to appear on the printed form. For some printers, bitmaps
+are used, with 1's representing inked dots and 0's representing
+non-inked dots. Other printers accept commands that cause drawing of
+the characters, the printer providing the inked dots according to the
+drawing commands. One such popular command language is \*(pS, and its
+usual use is to specify the outline of the character with the
+interpreting printer filling in the outline with ink. One popular
+method of describing fonts is with the \*(MF language, in which
+declarative definitions of how to paint the characters are given in
+terms of pen path and pen shape. Another popular method is the same
+\*(pS that many printers accept. The prime difference is that the \*(MF
+program translates the font definitions into bitmaps prior to sending
+the font to the printer while a \*(pS printer translates the outlines
+into bitmaps at the time of printing. Interestingly, both the \*(MF
+language and the \*(pS language use \*(BZ curves for describing the
+curves followed by the pen or the outlines. As usually configured
+these days, \*(TX uses bitmapped fonts in the Computer Modern family
+generated by \*(MF, and \fHditroff\fP uses \*(pS outline fonts supplied
+by Adobe.
+.pp
+The subsequent subsections delve deeper into these issues in order to
+be able to state the goal of this paper in the next section.
+.Su "2.1\ \ \ Fonts, design sizes, and magnifications."
+As mentioned, fonts are the raw material of typesetting. A font is a
+set of printable patterns, one for each character, that causes printing
+of that character in a particular recognizable style on the page. As
+mentioned, these patterns can be represented by bitmaps or drawing
+instructions.
+.pp
+Characters come in various sizes. There are two independent notions of
+sizing for fonts, point size or design size and magnification. The
+\fIdesign size\fP is the size at which the character is designed to be used
+and is, in well-designed text, the size in which the character appears
+in final, printed copy. Design size is
+usually expressed in units of points, which are each approximately 1/72
+of an inch. Most normal text in books, newspapers, and magazines is
+printed in 10 point type. Headlines are larger, perhaps as large as 30
+points. The \fImagnification\fP of a font is the inverse of the ratio
+between the design size of the character and the size of the
+character as it emerges on the printer, the assumption being that the
+final copy is a photo reduction of the printed copy. Thus, if photo
+reduction halves linear dimensions, one prints with magnification 2.
+If everything is done right, then after reduction, the letter appears at
+its design size.
+.pp
+A 10 point design sized font printed at mag\%ni\%fi\%ca\%tion 2 is similar to
+but not quite the same as a 20 point version of the same font.
+For example, the serifs on a large point size are smaller than they would
+be if strict linear magnification were used. Other proportions, e.g., of
+x-height to cap-height and of width to height, are also
+different. While many purists, Knuth
+included, insist on using a different pattern for each design size,
+many people accept magnification as yielding acceptable fonts at other
+point sizes. If the unit of magnification is not too big the results
+are acceptable even to many purists.
+.Su "2.2\ \ \ Problems with bitmapped fonts."
+A bitmap for a character is a rectangular array of bits covering the
+so-called bounding box or frame that exactly contains a letter. Figure
+1 shows a low resolution bit map for the letter \(lqN\(rq in a sans
+serif font. The inked squares or pixels are denoted by \(lq1\(rq bits
+and the uninked pixels are denoted by \(lq0\(rq bits.
+.fs
+.F+
+figure fig1.ps
+.F-
+.ca "Figure 1"
+.fe
+The low resolution example of Figure 1 illustrates a major problem
+with bitmapped fonts. Curved lines and straight lines that are neither
+vertical nor horizontal cannot be represented exactly by a rectangular
+pattern of pixels. One is forced to approximate them with rectangular
+steps. At high resolution, e.g. above 1000 or so, the human eye cannot
+see the steps, but at low resolution the steps are quite apparent.
+Visible steps are called \(lqjaggies\(rq after the jagged edges.
+.pp
+Bitmaps for a font must be built for each design size, magnification,
+and resolution. If the resolution is fixed, as is the case on most
+printers, a bitmap must be built for each design size and
+magnification. An attempt to use a given bitmap at a larger design
+size or magnification by just enlarging the area of each dot yields a
+bad case of jaggies.
+.Su "2.3\ \ \ \*(MF and its environment."
+.ft 1
+\*(MF, a language for the specification of fonts or typefaces, has been
+used to provide fonts for the \*(TX family of typesetting systems. A
+\*(MF user writes a program for each letter or symbol of an alphabet.
+These programs are different from the usual computer programs, because
+they are essentially declarative rather than imperative, using an
+algebraic language to describe the center stroke or edges of the characters. The
+description of a letter in \*(MF is a set of equations describing the
+strokes. When combined with parameters describing the pen shape and
+size, one gets a full description of a letter. Sizes and shapes of pen
+nibs can be varied in \*(MF and the characters can be built up in such
+a way that the outlines of each stroke are precisely controlled. Herein
+lies the advantage of \*(MF; a font is easily specified and variations
+are obtained by varying parameters.
+.pp
+Currently, the program that converts a set of \*(MF font descriptions
+into a bitmapped font translates the description of a letter combined
+with a point size and a magnification into a bitmap. This bitmap can be
+sent to the printer to get a letter on the page. Herein lies a
+disadvantage of \*(MF; a bit map must be kept for each point size and
+magnification, and this can require a lot of space.
+.Su "2.4\ \ \ The \*(pS language."
+The \*(pS language is an interpretive programming language with
+graphics capabilities. \*(pS's extensive page description capabilities
+are embedded into a general-purpose programming language framework. The
+language includes a conventional set of data types such as numbers,
+arrays, and strings, control primitives such as conditionals, loops and
+procedures, and some unusual features such as dictionaries. In most
+\*(pS fonts, each letter is described by an imperative program tracing
+the outline of the letter. This tracing may include curves given as
+\*(BZ curves, straight lines, arcs, etc. A \*(pS printer interprets
+this outline program to draw and fill in the letters on the page. Some
+consider the imperative nature of \*(pS to be a disadvantage in
+comparison to \*(MF's declarative nature. The main advantage of \*(pS
+relative to \*(MF is that one needs to keep only the outline. If, as in
+the usual case, the outline is specified in terms of a fixed path
+through Euclidean two-space, this outline may be scaled arbitrarily to
+yield any magnification. The scaling is done by the \*(pS interpreter
+at the printer. Thus the different magnifications do not require any
+additional storage space. Actually, the outlines are kept as if they
+were for the Adobe-standard 1000 dots
+per emm, which at a design size of 10 points amounts to 7200 dpi.
+Because a typical phototypesetter has a maximum resolution of
+about 2500 dpi, the outlines are said to be arbitrarily
+scaleable. If the outlines are kept, as are many \*(MF definitions, as
+paths through points calculated by the outline program, then it is
+possible to, say, make serifs grow more slowly than linearly. It would
+then be possible to have one \*(pS font scaleable to all design sizes.
+Generally, outline fonts are not written this way, so that strictly
+speaking they are scaleable only to all magnifications.
+.pp
+In addition, the \*(pS language has a way to work with bitmapped fonts.
+While the \*(pS printer can scale them before printing, the end result
+is that each of the fixed number of dots in the bitmap is made larger
+or smaller. Since the human will see larger dots as jagged lines, such
+fonts are not really considered scaleable.
+.Su "2.5\ \ \ \*(BZ curves."
+Both \*(MF and \*(pS use \*(BZ cubics to specify curves. For the \*(BZ
+form, four points are used, the start point, the end point, and two
+control points, as shown in the top half of Figure 2.
+The tangent vectors of the
+endpoints are determined from the line segments \*(P1\*(P2 and
+\*(P3\*(P4. The mathematical introduction of the \*(BZ form
+when given four points \*(P1, \*(P2, \*(P3, and \*(P4 is
+.sp
+.in +.125i
+$z(t)~=~(1-t) sup 3 "\*(P1" ~+~3t(t-1) sup 2 "\*(P2" ~+~3t sup 2 (1-t) "\*(P3" ~+~t sup 3 "\*(P4" ,$
+.sp
+.in -.125i
+for $0~<=~t~<=~1$.
+.pp
+Two characteristics of the \*(BZ form tend to make it widely used in
+graphics. First, by choosing the control points one can easily mold the
+curve to a desired shape. Second, the four control points taken in another
+order define a convex polygon, \*(P1 \*(P2 \*(P4 \*(P3 \*(P1 in this case,
+the \fIconvex hull\fR\h'-.05m', which bounds the \*(BZ
+curve. The convex hull is useful in clipping a curve against a window.
+.pp
+When a \*(MF user specifies a path, \*(MF creates a list of knots and
+control points for the associated cubic spline curves.
+If the user has not specified the control points explicitly, \*(MF
+itself finds some for the splines of a curve, while \*(pS requires all
+the four points to be explicitly given.
+.fs
+.F+
+figure fig2.ps
+.F-
+.ca "Figure 2"
+.fe
+.su "3\ \ \ \*(MF to \*(pS compiler\(em why\ and\ how"
+.ft 1
+.PP
+This section describes a major performance problem with \*(MF-generated
+fonts that perhaps can be solved by translating them into \*(pS fonts.
+The goals of this translation are established. Based on these goals, a
+particular approach is adopted to engineer the software largely from
+existing components.
+.Su "3.1\ \ \ A problem with \*(MF-generated bitmapped fonts."
+.ft 1
+In \*(MF, one gets one bitmap per point size and magnification. The
+size of these bitmaps grows as the square of product of the design size
+and
+the magnification and requires a large storage space. Files that are
+sent to the printer will be large, especially if lots of different
+point sizes or magnifications are used. In \*(pS with outline fonts,
+there is one outline per character which can be scaled arbitrarily to
+any magnification that might be needed. Moreover, \*(pS outline fonts
+are generally more compact than bitmapped fonts. For example, an
+enclosed rectangle is represented by its four corner points rather than
+by all the bits enclosed by the rectangle.
+.pp
+Certainly the outline fonts are more easily scaled to other
+magnifications. By scaling the bitmapped fonts downward, too much
+information is lost, and scaling upward introduces the jaggies.
+Moreover, the pixel array is device dependent; it is valid for output
+devices of only one particular resolution and one choice of possible
+data values per pixel. Scaleable fonts have a great advantage \(em you
+need only one font description file for all magnifications of that font.
+Actually, \*(pS outline fonts are more scaleable even than the \*(MF
+originals for another reason. In\*(<,\*([.9\*(.]\*(>,
+it is said, \(lqCaution:
+before using this `\fBat\fR' feature (i.e. scaling downward or upward) you
+should check to make sure that your typesetter supports the font at the
+size in question; \*(TX will accept any \(L<desired size\(L> that is positive
+and less than 2048 points, but the final output will not be right
+unless the scaled font really is available on your printing
+device.\(rq Getting \*(pS outline versions of \*(MF fonts is possible
+since both are based on \*(BZ curves. Doing so makes fonts heretofore
+available only on \*(TX and other DVI-based formatters available on
+\fHditroff\fR and other formatters which have evolved to or have been
+designed for use with \*(pS printers.
+.Su "3.2\ \ \ Goals."
+Based on the observations of Section 3.1,
+the goal of this research is to produce a \*(MF to
+\*(pS compiler, \fHmf2ps\fP. Its operational requirements are items 1
+through 5:
+.l1 1
+.le
+It must be possible to translate any legitimate \*(MF font definition
+at any given design size into a \*(pS outline font.
+.le
+The resulting \*(pS outline font should be arbitrarily scaleable.
+.le
+The resulting fonts should look like the bitmapped fonts when printed
+on the same printer.
+.le
+The resulting \*(pS outline font should be more compact \fIwhen sent to
+the printer\fP than a \*(pS version of the \*(MF-generated bitmapped
+font.
+.e1
+.sp .5v
+The fourth requirement deserves a bit of explanation and qualification.
+First note that what is compared is what is sent to the printer.
+Certainly there are compressed versions of the bitmapped fonts that
+reduce the disk storage requirements of the bitmapped fonts. However,
+they must be uncompressed before sending them to most printers. It is the
+printer's storage that is limited; generally disk space is in
+abundance. However, since printers these days are general purpose
+computers, what a printer accepts may in fact be a compression that it
+has been programmed to undo.
+.pp
+Now for the case in which disk space is of concern, the comparison
+should still be relative to printable versions. There exist algorithms,
+e.g. that of Lempel and Ziv\*([.13\*(.]
+that can be used to compress \*(pS outline fonts which are, after all,
+just ASCII files. Therefore, in order not to have a contest between
+compression algorithms, the uncompressed versions are compared. Furthermore,
+in order not to have a contest between different kinds of printers that may
+have differing font representations, \*(pS outline fonts are compared to
+\*(pS bitmapped fonts. When
+considering disk space, the fact that one bitmapped font is needed for
+each magnification is taken into account. Thus, the interest is in
+comparing the size of a scaleable outline font to the total storage for
+the bitmapped fonts for all magnifications of a given design size.
+.cl
+.le
+The resulting \*(pS outline font should be more compact than the total
+of the sizes of the \*(pS versions of the \*(MF-generated bitmapped
+fonts at each available magnification. Even this comparison is not
+completely fair since only specific magnifications are provided, while
+the \*(pS font is arbitrarily scaleable.
+.dl
+.sp .5v
+.pp
+Observe finally, that the comparison is against mag\%ni\%fi\%ca\%tions
+of a single design size since purists would argue that there should
+be a different outline font for each design size.
+Since there are those that do not
+require this purity, the various design sizes will be compared also.
+.pp
+The software engineering goal is item 6.
+.cl
+.le
+\fHmf2ps\fP should be written as much as possible using the existing
+\*(MF program both to save work and to ensure that all \*(MF-acceptable
+font definitions are handled.
+.dl
+.sp .5v
+The evaluation of the results will be
+done relative to these goals.
+.Su "3.3\ \ \ Previous attempts."
+Leslie Carr wrote a collection of programs to produce \*(pS outline
+fonts from \*(MF fonts in 1987. Carr's programs take as input the
+\fIlog\fR output file of \*(MF which contains a description of all
+the paths that \*(MF traces out in drawing a character.
+.pp
+Carr has problems of information loss as a result of not having entered
+into the \*(MF program. This is the reason why Carr's characters are
+poor looking. In\*(<,\*([.5\*(.]\*(>,
+Carr observes, \(lqIn the \&\fCcmr10\fP font,
+the \fIcrisp\fP pen has diameter zero, so serifs have square corners. In
+the \&\fCcmtt10\fP font, \fIcrisp\fP is set to a larger value and the serifs
+end in semicircles. Because the shape of the current pen can NOT be
+taken into account in \*(pS, these differences in the characters shapes
+will not be seen. This is a \fBfundamental\fR problem: given a path $p$
+and a pen $q$ (whose shape is also an arbitrary path), \*(MF
+effectively envelopes $p$ with respect to the shape of $q$; \*(pS can
+do nothing other than stroke it to produce a line of constant width.
+This incompatibility comes to light when the width of the pen is
+significant to the shape of the character\(rq.
+.pp
+In order to avoid this problem, \fHmf2ps\fP finds the internally
+generated envelope, which is used as the boundaries of the inked
+region, and uses this envelope as the outline. It does not matter, then,
+what the pen path and the pen shape are.
+.pp
+More recently, during the time that the work described herein was being
+done, there were other efforts with similar goals.
+.pp
+Doug Henderson\*([.6\*(.]
+obtained outline font characters by modifying the \&\fCendchar\fP macro,
+which is called for each character after the bitmap is generated, to take
+the bitmap for the character and white out all but the bits on the edge.
+The number of bits left on the edge is varied according to the resolution
+of the bitmap. These outlines, being bitmapped, are just as unscaleable as
+are the bitmaps for the filled-in characters.
+.pp
+Neil Raine and Graham Toal\*([.12\*(.]
+have developed software that takes the bitmaps and rediscovers the
+outlines by tracing the pixels. The outlines that are used as the basis
+for \*(pS fonts are, for the most part, generated from bitmaps at 2400
+dpi. They first generate RISC OS outline fonts which are screen fonts
+for Acorn's Archimedes RISC computer. These are true scaleable
+outlines. Then, these outlines are converted into \*(pS format. Toal
+says that the the quality of the fonts produced is not too great at low
+resolutions because of shortcomings in Adobe's rendering algorithm. He
+adds that at 1200 dpi on a phototypesetter, they are indistinguishable
+from \*(MF-generated bitmapped fonts. These authors suspect that
+information that is critical for good appearance is lost when tracing
+an outline on a bitmap generated from a mathematically described
+envelope. Better results should be obtainable using the original
+envelope.
+.pp
+John Hobby\*([.7\*(.]
+has developed a program called MetaPost, which translates from an extension
+of \*(MF into \*(pS cubic splines and commands.
+His goal was to turn \*(MF into a system for
+typesetting general graphics, including embedded text. His approach,
+similar to ours, was to modify the \*(MF program into what he desired.
+Befitting his more general goals, besides modifying the output, he has
+added new commands to the input language. Moreover, his translation appears
+to be a direct mapping from a \*(MF command sequence to a
+\*(pS command sequence.
+The result is a program more powerful than \fHmf2ps\fP.
+It will be interesting to compare fonts produced by MetaPost and
+\fHmf2ps\fP for appearance and performance.
+.Su "3.4\ \ \ Methodology."
+There are a number of ways to build the compiler. They include
+.l1 1
+.le
+writing the whole compiler from \*(MF to \*(pS from scratch: This has
+the advantage that one does not have to get into another person's
+software, which is not very pleasant when the software is so big. On
+the other hand, one would have to treat the whole job of turning
+mathematical equations and any arbitrary pen shape into outlines.
+.le
+using the \*(MF output as was done by Leslie Carr\*([.5\*(.]:
+This has the advantage of not requiring delving into another's
+software, but the generated information is not enough if one wants no
+deviations from the originals.
+.le
+getting into the \*(MF program: This requires examining the internals
+of the \*(MF program. However, \*(MF and \*(pS make liberal use of
+\*(BZ curves to describe non-circular curves. This fact makes the
+translation process natural. For each specified path, \*(MF creates
+control points for the associated cubic spline curves before
+calculating the bit map. \*(MF also calculates the edge offsets implied
+by the pen shape. Using the necessary information one can get a new set
+of control points that define \*(BZ curves and lines that are needed to
+build the \*(pS outline fonts.
+.e1
+.Su "3.5\ \ \ Software engineering of solution."
+The idea is to split the \*(MF program into front end and back end. The
+front end takes \*(MF specification of a character, magnification, and
+point size, and produces the envelope, i.e., the outline of the
+character, and the back end fills the envelope with bits. Taking the
+existing front end and writing a new back end that converts the
+envelope into a \*(pS specification of an outline is our method of
+producing \fHmf2ps\fP. The bit-filling process will be done by the
+printer.
+.pp
+In order to make \*(pS fonts arbitrarily scaleable, we have to ask the
+\fHmf2ps\fP program to use a very large magnification, at least to try to
+match the grid on which Adobe plots the points of its outlines. Adobe plots
+its characters on a $1000~times~1000$ grid. Thus, Adobe's resolution is
+1000 dpm (dots per em), which for design size 10 points is 7200 dpi.
+Unfortunately, \*(MF, and thus \fHmf2ps\fP accepts resolutions only up to
+3000 dpi. The results should be sufficient to produce fonts scaleable
+up to magnification 7 or 8, which is a reasonable range in
+typesetting.
+.pp
+This approach helps meet goal 6 because the original unchanged \*(MF
+program is used. Thus, exactly the same input is accepted as in the
+\*(MF program. There is some extra frosting obtained by the chosen
+approach. The program for translating \*(MF to \*(pS is actually a bit
+of an interactive environment because the new back end is an extension
+of the existing one. This existing back-end provides an interpreter
+that executes a \*(MF character definition and displays the defined
+character on the screen. Figure 3
+shows the dump of a screen containing several windows, one showing a
+\*(MF definition, another showing the result of its interpretation, and
+a third containing the \*(pS translation of the definition in the first
+window. If software to interpret \*(pS definitions were available here,
+a fourth window could be set up showing the result of interpreting the
+translation of the third window. This would allow comparison of the
+character's appearances without having to print them on paper.
+.su "4\ \ \ The program"
+.PP
+In the following discussion, the \*(MF program is often called just
+\(lq\*(MF\|\(rq.
+.pp
+The \*(MF program has been written so that it can be made to run
+efficiently in a wide variety of operating environments by making
+comparatively few changes. Such flexibility is possible because the
+program is written in the \&\fCWEB\fR language which is at a higher level
+than Pascal. The preprocessing step that converts \&\fCWEB\fR to Pascal
+is able to introduce most of the necessary refinements. Semiautomatic
+translation to other languages is also feasible, because the program
+does not make extensive use of features that are peculiar to Pascal.
+.pp
+The program has two important variations: First, there is a long and slow
+version called \s-1\fHINIMF\fR\s0, which does the extra calculations needed to
+initialize \*(MF's internal tables. It has to be run first. It
+initializes everything from scratch without reading a base file, and it
+has the capability of dumping a base file. Secondly, there is a shorter and
+faster production version called \s-1\fHVIRMF\fR\s0, which cuts the
+initialization to a bare minimum. It is a virgin program that needs
+to input a base file in order to get started. \s-1\fHVIRMF\fR\s0 typically has
+more memory capacity than \s-1\fHINIMF\fR\s0, because it does not need the
+space consumed by the dumping and undumping routines, etc.
+.pp
+In order to generate a compiler that translates \*(MF to \*(pS,
+additional external procedures and functions were added to the \*(MF
+program so that it runs exactly the same except that when it asks for
+an output file name, it asks for an additional name, for the extra
+output file that is to contain the \*(pS outlines. Those changes were
+made on the Pascal version of the \s-1\fHVIRMF\fR\s0, and were compiled later
+with \*(MF's library files.
+(It was a complete oversight on our part not to have modified the
+\&\fCWEB\fP version of \s-1\fHVIRMF\fP\s0.)
+A few extra lines were added to the
+macro file, \&\fCplain.mf\fR. These act as flags, identifying that
+\*(MF has entered some of the macros.
+.Su "4.1\ \ \ Basic idea."
+To specify a character in \*(MF, one specifies either
+an envelope (outline) or
+a center-line path and a pen head.
+For the former, \*(MF just fills the envelope with bits.
+For the latter, \*(MF pretends that it is drawing the character
+with a pen of specified
+head shape following the specified path, i.e., the center of the head
+stays on the path. The distance from the center-line path and outer
+edge of ink trail left by pen head is called the \fIoffset\fR\h'-.1m'.
+So, for a character, \*(MF follows the center-line path to calculate the path
+of offset points, i.e., the envelope, and then fills the envelope with
+bits.
+In either case, \*(MF ends up filling an envelope.
+.pp
+We need to break \*(MF into a front end and a back end at the point
+just after the envelope has been calculated. Then we provide a new back
+end that converts the envelope into \*(pS instead of filling the
+envelope with bits. Note then that the \*(pS printer will fill in the
+envelope with bits as it fills the path obtained from the envelope.
+.pp
+The following subsections describe the data and the calculations
+involved in the new back end.
+.Su "4.2\ \ \ Data structures."
+The main data structures that \*(MF keeps for a character are the
+center-line path, the pen shape, and the envelope path. There are a few
+operations that can be performed on paths, called transformations.
+.SU "4.2.1\ \ \ \*(MF's path representation."
+.ft 1
+When a \*(MF user specifies a path, \*(MF creates a list of knots and
+control points for the associated cubic spline curves. If the knots are
+$z sub 0 ,~z sub 1 ,...,~z sub n$, there are control points $z sub k
+sup +$ and $z sub k+1 sup -$ such that the cubic splines between the
+knots $z sub k$ and $z sub {k+1}$ are defined by the \*(BZ formula
+.sp
+.in +.4375i
+$z(t)~=~B(z sub k, z sub k sup + , z sub k+1 sup - , z sub k+1 ;t)$
+.sp .2v
+\h'\w'$z(t)~$'u'$=~(1~-~t) sup 3 z sub k ~+~ 3t(t~-~1) sup 2 z sub k sup +$
+.sp .2v
+\h'5P'$+~ 3t sup 2 (1~-~t)z sub k+1 sup - ~+~ t sup 3 z sub k+1$,
+.sp
+.in -.4375i
+for $0~<=~t~<=~1$.
+.pp
+There is a 7-word node for each knot $z sub k$, containing one word of
+control information and six words for the $x$ and $y$ coordinates of $z
+sub k sup -$ and $z sub k$ and $z sub k sup +$. The control
+information appears in the \fIleft_type\fR and \fIright_type\fR
+fields and they specify properties of the curve as it enters and leaves
+the knot. There is also a \fIlink\fR field, which points to the
+following knot. Before the \*(BZ control points have been calculated,
+the memory space they will ultimately occupy is taken up by information
+that can be used to compute them. The \*(MF \fImake_choices\fR
+procedure chooses angles and control points for the splines of a curve
+when the user has not specified them explicitly.
+.SU "4.2.2\ \ \ \*(MF's path transformation."
+.ft 1
+When \*(MF digitizes a path, it reduces the problem to the special case
+of paths that travel in the \fIfirst octant\fR directions; i.e., each
+cubic $z(t)~=~(x(t),y(t))$ being digitized will have the property that
+$0~<=~y prime (t)~<=~x prime (t)$. This assumption makes digitizing
+simpler and faster than if the direction of motion has to be tested
+repeatedly. When $z(t)$ is cubic, $x prime (t)$ and $y prime (t)$ are
+quadratic, hence each of the four polynomials, $x prime (t)$, $y prime (t)$, $x
+prime (t) - y prime (t)$, and $x prime (t) + y prime (t)$, crosses
+through $0$ at most twice. If we subdivide the given cubic at these
+places, we get at most nine subintervals. In each of these intervals
+each of $x prime (t)$, $y prime (t)$, $x prime (t) - y prime (t)$, and
+$x prime (t) + y prime (t)$ has a constant sign. The curve can be
+transformed in each of these subintervals so that it travels entirely
+in first octant directions, if we exchange $x$ and $- x$, $y$ and $-
+y$, and $x$ and $y$ as necessary.
+.Su "4.3\ \ \ Pens and envelopes."
+There are two kinds of pen heads that may be used, polygonal and
+elliptic. There are a number of trade-offs involved in their use. The
+first subsection treats the case of an $n$-vertex polygonal pen shape
+and the second treats the case of an elliptical pen shape. Both
+describe the influence of pen shape on the envelope of the font.
+.SU "4.3.1\ \ \ Polygonal pens."
+Suppose that the vertices of a polygon are $w sub 0 ,~w sub 1 ,...,~w
+sub n-1 , ~w sub n ~=~ w sub 0$ in counterclockwise order. A convexity
+condition requires that each vertex turns left when one proceeds from
+$w sub 0$ to $w sub 1$ $...$ to $w sub n$. The envelope is obtained if we
+offset a given curve $z(t)$ by $w sub k$ when that curve is traveling
+in a direction $z prime (t)$ lying between the directions $w sub k - w
+sub k-1$ and $w sub k+1 - w sub k$. At times $t$ when the curve
+direction $z prime (t)$ increases past $w sub k+1 - w sub k$, \*(MF
+temporarily stops plotting the offset curve and inserts a straight line
+from $z(t) + w sub k$ to $z(t) + w sub k+1$; notice that this straight
+line is tangent to the offset curve. Similarly, when the curve
+direction decreases past $w sub k - w sub k-1$, \*(MF stops plotting
+and inserts a straight line from $z(t) + w sub k$ to $z(t) + w sub
+k-1$; the latter line is actually a retrograde step, which will not be
+part of the final envelope under \*(MF's assumptions. The result of
+this consideration is a continuous path that consists of alternating
+curves and straight line segments. The segments are usually so short,
+in practice, that they blend with the curves.
+.SU "4.3.2\ \ \ Elliptical pens."
+To get the envelope of a cyclic path with respect to an ellipse, \*(MF
+calculates the envelope with respect to a polygonal approximation to
+the ellipse. This has two important advantages over trying to obtain
+the exact envelope:
+.l1 1
+.le
+Polygonal envelopes give better results, because the polygon has
+been designed to counteract problems that arise from digitization; the
+polygon includes sub-pixel corrections to an exact ellipse that make
+the results essentially independent of where the path falls on the
+raster.
+.le
+Polygonal envelopes of cubic splines are cubic splines. Hence it is
+not necessary to introduce completely different routines. By contrast,
+exact envelopes of cubic splines with respect to ellipses are
+complicated curves, more difficult to plot than cubics.
+.e1
+.Su "4.4\ \ \ Taking out data."
+After \*(MF has calculated the paths and the offsets, it is ready to
+send the values to the \fImake_moves\fR procedure which generates
+discrete moves for any four points that represent a \*(BZ curve. This
+is done for each one of the cyclic paths from which the letter is built.
+When the offsets are zero, this is done by the \fIfill_spec\fR
+procedure. Otherwise this is done by the \fIfill_envelope\fR
+procedure. In the latter case, the line segments, which were discussed
+earlier, should be taken out also in order to get smooth connections
+between the different curves that the cyclic path is built from.
+Because \*(pS describes any shape in terms of curves and lines, this is
+the point to take advantage of \*(MF's calculations, i.e., when \*(MF
+calls the \fImake_moves\fR procedure and when \*(MF draws line
+segments for offset corrections.
+.Su "4.5\ \ \ Processing the data."
+The generated data are not ready yet to be used. First, we should
+unskew, i.e., transform from the first octant back to the original, the
+paths according to the octant that the paths were traveled in before
+they were skewed. This unskewing is done by taking out the octant
+number at the moment that the \fImake_moves\fR procedure is called
+and then using \*(MF's \fIunskew\fR procedure that sets values $x
+prime$ and $y prime$ to the original coordinate values of a point,
+given an octant code and coordinates $(x,y)$ after they have been
+mapped into the first octant and skewed; the new values are sent to the
+\fIsend_p_s\fR procedure. This procedure has eight formal parameters
+that are all used when sending a curve. When sending a line,
+only four parameters are used, two to denote the start point and two to
+denote the end point; the remaining four parameters are sent as zeros
+so \fIsend_p_s\fR can distinguish whether a line was sent or a curve.
+In the next step, \fIsend_p_s\fR unscales the numbers because \*(MF
+works with units of scaled points, of which there are $2 sup 16$ in an
+ordinary point. While unscaling, the values are
+transformed in order to send them to the \*(pS dictionary
+\&\fCFontBBox\fP command. After this pre-processing,
+the data are sent to a temporary file.
+.SU "4.5.1\ \ \ Getting more information."
+When \*(MF calls the \fImake_moves\fR procedure, it does not have any
+information on the role that this path is going to play, whether the
+current cyclic path is going to be \fIfilled\fP or whether it will act as
+a boundary of a region to be \fIerased\fP.
+.pp
+In order to distinguish between the cases, more information has to be
+taken. This is done by copying the \&\fCplain.mf\fR file into a new
+file named \&\fCmyplain.mf\fR and adding a few lines to it. The
+additional code was added in order to identify \*(MF's use of the
+macros. \*(MF uses the variables for date only once, when the program
+is started, so it was decided to use them in the rest of the
+program.
+The \&\fCyear\fR is changed to $-1$ when \*(MF's \&\fCpen_stroke\fR
+macro is applied on a cyclic path, i.e., in the characters such as
+\(lqo\(rq, \(lqO\(rq, and \(lqQ\(rq, and to $-2$ when the \&\fCerase\fR
+macro is called. The \&\fCmonth\fR is changed when the \&\fCfill\fR
+macro is called. There are three kinds of paths:
+.l1 1
+.le
+paths to be \fIfilled\fP are processed using the \*(pS \&\fCfill\fR
+command.
+.le
+paths to be \fIstroked\fP are processed using the \*(pS \&\fCeofill\fR
+command.
+.le
+paths to be \fIerased\fP are processed using specialized procedures
+which will be discussed later.
+.e1
+.sp .5v
+.pp
+A letter cannot always be treated as one unit by means of the
+\&\fCfill\fR and \&\fCeofill\fR commands. For instance, the letter
+\(lqQ\(rq is built of two different paths, the first of which is
+stroked and the second of which is filled. Generating the letter
+using the \*(pS \&\fCeofill\fR command causes a hole in the image (see
+Figure 4).
+.fs
+.F+
+figure fig4.ps
+.F-
+.ca "Figure 4"
+.fe
+So while generating a letter, fill mode can be changed for each cyclic
+path. Moreover, when generating a letter whose paths should be filled,
+it is not always possible to use just one \&\fCfill\fR command (see
+Figure 5).
+.fs
+.F+
+figure fig5.ps
+.F-
+.ca "Figure 5"
+.fe
+When a \*(pS \&\fCfill\fR command is applied to a path that is composed
+of more than one subpath, say two for the sake of simplicity, and one
+subpath is inside the other and is drawn in a direction opposite to the
+external one, the internal path is considered a hole and is not filled
+(see Figure 6).
+.fs
+.F+
+figure fig6.ps
+.F-
+.ca "Figure 6"
+.fe
+So, if several paths are to be filled in this manner, the description
+of each one of them should be ended with the \&\fCfill\fR command.
+There is one more benefit to using this strategy: The \*(pS \fCcurrent
+path\fR stack becomes empty after encountering any kind of \&\fCfill\fR
+command. Therefore, using the \&\fCfill\fR command after each path can
+help avoid \&\fCstack overflow error\fRs if all paths together are too
+long.
+.SU "4.5.2\ \ \ Treating erasing paths."
+There are three methods of handling the problem of paths that should be
+erased by \fHmf2ps\fP itself:
+.l1 1
+.le
+filling with white: Because erasing paths are built in order to erase
+an existing filled area and \*(pS overlaps paths (i.e., a region is
+shown in the color that was drawn last), erasing paths can be
+implemented by filling those paths with white. This solution is the
+easiest, but it works only if the background is white and the letter is
+drawn in some level of gray. If one wants to draw a letter with
+background other than white, the resulting appearance will not be correct.
+.pp
+.le
+calculating new paths resulting from subtracting the erasing paths from
+the previous filled paths: Such a solution can be global. However, it
+costs a lot in terms of processing time and accuracy, because paths are
+given implicitly by four points, and in order to calculate the new
+paths, one should find the intersection points of \*(BZ curves, i.e.,
+to find points that lie on both \*(BZ curves, and then calculate new
+curves, which are difficult to calculate from those points.
+.pp
+.le
+using the \*(pS \&\fCeoclip\fR command: Be\%cause the letters are bounded
+in a $1000~times 1000$ box, a primary square path whose segments are
+$1000$ units long should be declared and after it all the erasing paths
+should be listed. After relocating the erasing paths we are ready to
+declare \&\fCeoclip\fR, which means that the clipping path is the
+external primary one and the internal paths, the erasing paths, are
+holes. This is an elegant solution that uses the power of the language
+and is available in simple situations in which there is no intersection
+between the erasing paths (see Figure 7).
+If there were intersections, a little more
+sophisticated use of the \&\fCeoclip\fR command would be needed. Relocation
+of the erasing paths is done by the procedure \&\fCdoarrange\fR.
+.e1
+.fs
+.F+
+figure fig7.ps
+.F-
+.ca "Figure 7"
+.fe
+.pp
+There are other problems caused by the erasing paths. Because the
+erasing paths have segments in common with paths to be filled, \*(pS must
+decide whether the common segments are in the clipping path or not.
+\*(pS does not seem to have a consistent policy on that and it seems to
+be that the decision is taken arbitrarily (see Figure 8).
+.fs
+.F+
+figure fig8.ps
+.F-
+.ca "Figure 8"
+.fe
+An attempt to resolve the clipping path problem led to the first author
+sending the following electronic message (obviously, not as nicely
+formatted as herein) to Glenn Reid of Adobe Systems, Inc.
+.qb
+.nf
+From simon Tue Mar 21 13:22:32 1989
+To: greid@adobe.com
+Subject: Problem in PostScript
+.fi
+.sp
+Dear Mr. Reid
+.sp
+I have got a problem in understanding the PostScript
+policy in determining \(lqwhat is in the clipping path\(rq.
+I think there is a problem in the boundaries.
+Here is an example that shows that problem:
+.es
+.ft C
+ gsave
+ initclip
+ newpath
+
+ 0 0 moveto
+ 0 1000 lineto
+ 1000 1000 lineto
+ 1000 0 lineto
+ 0 0 lineto
+
+ 300 100 moveto
+ 700 100 lineto
+ 700 300 lineto
+ 300 300 lineto
+ 300 100 lineto
+
+ 700 900 moveto
+ 300 900 lineto
+ 300 700 lineto
+ 700 700 lineto
+ 700 900 lineto
+
+ eoclip
+
+ newpath
+ 100 100 moveto
+ 900 100 lineto
+ 900 900 lineto
+ 100 900 lineto
+ 100 100 lineto
+ fill
+ grestore
+.ee
+.ft R
+As you see, the problem is that on top of the shape, the line
+which belongs to the upper \(lqhole\(rq in the clipping path and to the
+current path ( to be filled ) is drawn, and on bottom of the
+shape it is not.
+.sp
+This is happening both on the Apple Laser printer and on the
+QMS-80.
+.sp
+I would be glad to have a reply from you.
+.sp
+.nf
+Thanks in advance
+Shimon Yanai
+C.S Dep.
+Technion
+.fi
+.qe
+What Mr. Reid saw when he printed the \*(pS commands contained in the
+message is reproduced in Figure 9.
+.fs
+.F+
+figure fig9.ps
+.F-
+.ca "Figure 9"
+.fe
+Mr. Reid replied with the following:
+.qb
+.nf
+From: greid@adobe.com (Glenn Reid)
+To: Shimon Yanai <simon@techunix>
+Cc: greid@adobe.com
+Subject: Re: Problem in PostScript
+In-Reply-To: Your message of Wed, 22 Mar 89 ...
+Date: Wed, 22 Mar 89 11:41:35 PST
+.fi
+.sp
+The problem is that the path you are filling falls exactly on the edge
+of the clipping path. This produces a zero-width area to fill, and
+unfortunately it sometimes fills and sometimes does not with the
+current fill algorithm. I believe that it is related to the direction
+of the paths; if the paths are going in opposite directions along the
+same line, it will fill with a one-pixel area, but if they are going in
+the same direction, it will not fill.
+I believe this has been fixed to be more consistent in Display
+PostScript, for what it's worth.
+.sp
+Glenn Reid
+.br
+Adobe Systems
+.qe
+.pp
+The idea of using opposite directions had been checked before sending
+the letter, so the problem had to be solved within the back end of
+\fHmf2ps\fP. The
+erasing paths near the top of the letter had their $y$ coordinates
+increased by 0.8 points, and those near the bottom had their $y$
+coordinates decreased by the same amount. This shift is invisible to
+the human eye because the font definitions are in terms of hundreds of
+points (see Figure 10). This solution was designed to work with most
+existing \*(MF fonts. It is possible that there will be fonts that are not
+treated well by this solution.
+.fs
+.F+
+figure fig10.ps
+.F-
+.ca "Figure 10"
+.fe
+.Su "4.6\ \ \ Optimization."
+Optimization is done in order to make the description of the fonts
+shorter and to save work in the \*(pS interpreter. This is done in
+three ways:
+.l1 1
+.le
+not printing lines with length zero. As was said earlier, the \*(MF
+program prints lines to connect offset points. There are times that
+after rounding or truncating the output data, the start point and the
+end point are equal. In such cases, the lines are eliminated.
+.le
+checking if the \*(BZ curve acts as a line. From the definition of the
+\*(BZ curve, it is known that if the two control points lie on the line
+that connects the start point and the end point, the curve is of degree
+one. In such cases \fHmf2ps\fP generates a command to print a line from
+the start point to the end point, thus saving space and avoiding
+redundant calculations for the \*(pS interpreter.
+.le
+checking if a series of consecutive line segments are in the same line.
+This is done by storing the segments in a buffer and checking whether a
+new segment is collinear with the last stored.
+.e1
+.Su "4.7\ \ \ Changed or added routines."
+The following is a list of routines that were changed or added in order
+to build \fHmf2ps\fP from \*(MF.
+.in +1P
+.LE
+\fIprintchar\fP was modified to get character names.
+.LE
+\fIfixdateandtime\fP was modified to initialize variables that were used as flags in the macros.
+.LE
+\fIfillspec\fP was modified to send out data on splines.
+.LE
+\fIskewlineedges\fP was modified to send out offset lines.
+.LE
+\fIdualmoves\fP was modified to send out offset lines.
+.LE
+\fIfillenvelope\fP was modified to send out data on splines.
+.LE
+\fIdostatement\fP was modified to identify tokens that are strings.
+.LE
+\fImain\fP was modified to call the \fHmf2ps\fP procedure in the beginning and ending of the program.
+.LE
+\fIsendcurve\fP was added to unskew spline values and to send them to the next process.
+.LE
+\fIsendline\fP was added to unskew line values and to send them to the next process.
+.LE
+\fIok\fP was added to check if two lines are collinear.
+.LE
+\fIrestore\fP was added to restore the parameters of the last line.
+.LE
+\fIrecall\fP was added to recall values from the buffer.
+.LE
+\fIus\fP was added to convert the \*(MF scale so that a letter would fit the
+Adobe standard $1000~times~1000$ bounding box.
+.LE
+\fIsend_p_s\fP was added to create a \*(pS file of lines and curves.
+.LE
+\fImakemoves\fP was modified to send out spline data.
+.LE
+\fIdump\fP was added to append information from the file named \&\fCf\fP to the file named \&\fCg\fP.
+.LE
+\fIcheckerase\fP was added to identify the file that contains \(lqerase\(rq commands, and their position within the file.
+.LE
+\fIdoarrange\fP was added to put erasing paths at the beginning of the file.
+.LE
+\fIprint_start\fP was added to signal the beginning of a new cyclic path to be processed.
+.LE
+\fIprint_end\fP was added to signal the end of the current cyclic path.
+.LE
+\fIinit_ps\fP was added to make initializations.
+.LE
+\fImakenewdef\fP was added to make initializations when more than one character
+occurs in the input.
+.LE
+\fIcloseolddef\fP was added to close the last definition.
+.LE
+\fItini_ps\fP was added to handle the ending of the process.
+.LE
+\fIauxprintchar\fP was added to print characters.
+.LE
+\fIauxprint\fP was added to print strings.
+.in -1P
+.su "5\ \ \ Operation of \fHmf2ps\fP in a \fHU\s-2NIX\s0\fP environment"
+.ft 1
+.PP
+When invoked,
+\fHmf2ps\fP
+first asks for an output file name. For the example this file is called
+\&\fCex1\fP. \fHmf2ps\fP then asks,
+.ES
+.fi
+.na
+\(lq\&\fCAre you creating the whole dictionary (y/n)?\fP\(rq.
+.EE
+.ad
+If the answer is other than \(lq\&\fCy\fP\(rq
+or \(lq\&\fCY\fP\(rq, it is considered \(lq\&\fCno\fP\(rq. If the
+answer is \(lq\&\fCy\fP\(rq or \(lq\&\fCY\fP\(rq, then the whole
+dictionary is created. This means that \fHmf2ps\fP creates a \*(pS
+dictionary that includes entries for all the characters that are in
+the input, e.g., \&\fCcmr10\fP set. This dictionary needs additional
+definitions such as \fIleft side bearing, width, bounding box\fP, etc.
+These definitions need information on character features that must be
+calculated within the program. Otherwise, the whole dictionary is not
+created and the program treats the input as a single character
+definition that is to be translated into a \*(pS outline definition.
+After \fHmf2ps\fP prompts \(lq\&\fC**\fP\(rq, we are in the \*(MF
+environment. Now the user inputs
+.ES
+\s-1\\mode=hires;\\nodisplays;\\input cmr10;\(cr\s0
+.EE
+After \fHmf2ps\fP has finished, the resulting \*(pS font dictionary can
+be used to print text. In order to print text, the font dictionary
+should be installed in some formatter's font source directory, and then
+it can be loaded through the formatter's commands. The dictionary
+followed by appropriate \fHshow\fP and \fHshowpage\fP commands can also
+be sent directly to the printer.
+.su "6\ \ \ Evaluation of results"
+.PP
+This section evaluates the \fHmf2ps\fP program relative to goals
+established in section 3.2. The program was produced as a variation of
+\*(MF and it accepts any \*(MF font definition and produces a \*(pS
+outline font scaleable up to magnification 8, or to point size 80 if
+you are not a purist. Thus goals 6 and 1 have been entirely met and
+goal 2 is partially met. To meet goal 2 fully the program must be
+modified to allow large enough arrays to handle magnifications up to
+7200; this is left to future work.
+.pp
+It remains to evaluate the appearance and sizes of the outline fonts
+relative to the bitmapped fonts to see if goals 3, 4, and 5 have been
+met.
+.Su "6.1\ \ \ Appearance."
+In order to compare appearances, the outline font (Sub\%sub\%fi\%gure P)
+and and the 300 dpi bitmapped font (Sub\%sub\%fi\%gure M) generated from
+the same \*(MF definition are used to
+print similar sentences at one, two, or three different sizes or
+magnifications on three devices of differing resolutions.
+The sentences are printed in the \&\fCcmr\fP (Sub\%fi\%gure R),
+\&\fCcmtt\fP (Sub\%fi\%gure T), and \&\fClasy\fP (Sub\%fi\%gure S) typefaces.
+The bitmapped fonts may be printed at design sizes 7, 8, 10, or 12, and
+the outline fonts may be printed at magnifications .7, .8, 1.0, or 1.2.
+Finally, the three devices are the 300 dpi LaserWriterII (Figure
+11-LW300), the 600 dpi Varityper (Figure 11-VT600), and the 1270 dpi
+Linotronic 300 (Figure 11-LT1270). The bitmapped font examples are
+formatted with \*(TX while the outline font examples are hand-coded \*(pS
+files sent directly to the printer. Since the
+formatter with which this paper is printed can use arbitrary \*(pS
+fonts, half of the examples could have been done in-line without
+pasting in. However, for fairness in the comparison, all examples were
+cut out and pasted in.
+.pp
+There are visible differences due to differences in the formatting
+software. \*(TX squeezes the letters closer together than does the \*(pS
+engine. Moreover, the interword space is constant in the \*(pS
+dictionary but is varied by \*(TX according to the line structure.
+These differences are not the differences that are at issue here.
+.pp
+On the 300 dpi device, the characters from the bitmapped fonts print thinner
+than are those of the outline fonts. However, the edges of both sets are
+equally smooth or jagged as the case may be in all sizes. Overall, then,
+the appearance of the characters of the bitmapped fonts is crisper than
+that of the outline fonts.
+On the higher resolution devices,
+the thicknesses of the characters are closer to being
+equal at all sizes. Thus, the \*(MF program does a better job of building a
+correctly sized bitmap at 300 dpi than does the 300 dpi \*(pS engine of the
+LaserWriterII. The latter seems to round up too much. However, both
+seem to get the edges equally smooth even at low sizes and low resolutions.
+.pp
+At the two higher resolutions, the outline fonts are significantly better
+than the outline fonts at lower resolutions and are significantly better
+than the bitmapped fonts at the same resolution of printing. However, this
+latter is true because the bitmapped fonts were generated by the \*(MF
+program specifically to be printed at 300 dpi.
+When a 300-dpi bitmap is printed with no scaling at 600 or 1270 dpi, it
+remains a 300-dpi bitmap. As expected, the 300-dpi bitmapped fonts print better
+at 300 dpi than they do at the two higher resolutions.
+.pp
+The generated outlines are not fine-tuned for printing at low resolutions,
+such as 300 dpi,
+as are the \*(MF-generated bitmaps. It might be useful to make use of
+the \*(pS facilities for hinting to improve the appearance of the
+characters printed from the outlines at low resolutions.
+.pp
+Figure 12 shows samples of similar sentences printed on the same three
+devices using the standard Helvetica, Times
+Roman, and Courier \*(pS outline fonts built into most \*(pS-executing
+laser printers.
+It appears to these authors that the standard \*(pS fonts are
+significantly better than those generated from \*(MF fonts. However,
+this is not surprising. Adobe uses a grid of $1000~times~1000$ for its
+character definitions, resulting in a resolution of 7200 dpi for characters
+printed at point size 10.
+Because of size limitations of the
+\*(MF program the \*(MF outline fonts are using a resolution of 3,000
+points per inch. However, when using the letters in small sizes such as
+from 10 to 70,
+quality differences are hardly visible especially when working
+with printers that have a resolution of 300 points per inch such as the
+Apple LaserWriter.
+Moreover, Adobe makes liberal use of hinting to
+improve the appearance of its fonts at low resolutions.
+We completely ignored hinting, as we did not see any way to
+automatically generate the hints.
+.Su "6.2\ \ \ Sizes of fonts."
+Recall that it is necessary to compare the size of the \*(pS outline
+font for a particular \*(MF definition to the sizes of the bitmapped
+fonts in \*(pS fonts for the individual and all magnifications.
+.pp
+This comparison is made in this section for the \&\fCcmr10\fP font at the
+standard set of six magnifications 1, 1.095, 1.2, 1.44, 1.728, and 2.07
+(which are approximations of 1.2 raised to the powers 0, .5, 1, 2, 3,
+and 4, respectively). In addition, as a gesture to those who are not
+purists and accept magnifications of the 10 point design size as
+different point sizes, the comparison includes the \&\fCcmr\fP font at
+point size 5, 6, 7, 8, 9, 10, 12, and 17, the standard eight design
+sizes maintained for use with \*(TX.
+.pp
+Table 1 shows the sizes in bytes. Thus it is clear that the
+\*(pS outline font is bigger than any bitmapped font and that goal 4
+fails. Moreover, it is clear that the outline font is bigger than the
+sum over all magnifications of one design size and than the sum over
+all standard design sizes. Thus goal 5 fails. In fact, this failure is the
+reason that the samples of Figure 11 involve only upper case letters. Samples
+with complete fonts with both cases often overloaded the printer available
+to the students at the time this work was done.
+.TS
+center;
+l r l r l.
+Font Design Magni- Bitmap Outlines
+ size fication (size in (size in
+ bytes) bytes)
+_
+\fCcmr\fP 10 1.0 22,812 245,000
+\ \ " 10 1.095 24,231 \ \ \ \ "
+\ \ " 10 1.2 26,044 \ \ \ \ "
+\ \ " 10 1.44 31,892 \ \ \ \ "
+\ \ " 10 1.728 39,614 \ \ \ \ "
+\ \ " 10 2.07 50,578 \ \ \ \ "
+\fCcmr\fP 5 1.0 16,729 \ \ \ \ "
+\ \ " 6 1.0 17,757 \ \ \ \ "
+\ \ " 7 1.0 18,820 \ \ \ \ "
+\ \ " 8 1.0 20,041 \ \ \ \ "
+\ \ " 9 1.0 21,580 \ \ \ \ "
+\ \ " 12 1.0 25,658 \ \ \ \ "
+\ \ " 17 1.0 37,140 \ \ \ \ "
+_
+Total 352,896 245,000
+.TE "Table 1"
+.br
+.RT
+.pp
+However, do note that the outline font is smaller than the sum over all
+design sizes and magnifications thereof.
+.pp
+So in terms of disk space for the non-purists, the outline font
+represents a savings. Again notice that not all magnifications of the
+bitmapped fonts are maintained and the outline font is arbitrarily
+scaleable. Moreover, as the magnification grows the size of the bitmap
+grows even more rapidly.
+.pp
+The disappointment with respect to saving printer and disk memory says
+that it is important to spend more effort to optimize the outline
+font.
+.pp
+All is not lost, though! As this paper was being prepared for publication
+in \*(TB,
+one reviewer, Nelson Beebe, pointed out something that we can only kick
+ourselves for not noticing. The \*(pS outline fonts that are generated by
+\fHmf2ps\fP are horrendously wasteful in space. They use original, built-in
+command names and absolute coordinates. A significant reduction in size can
+be obtained by definition and use in the outlines of single-character
+command names, e.g., \(lq\fCM\fP\(rq for \(lq\fCmoveto\fP\(rq, and by use
+of relative versions of these commands with operands of fewer digits after
+the initial absolute \&\fCmoveto\fP of any character. A simple filter was
+written to obtain new compressed versions of the \*(pS outline fonts. The
+appearances of the output when printing with these new versions is
+unchanged, but what is sent to the printer is significantly smaller, about
+37.7% smaller. The reduction on a per-letter basis is about 45%.
+Table 2 shows the information of Table 1 for the new versions of the
+outline fonts.
+.TS
+center;
+l r l r l.
+Font Design Magni- Bitmap Outlines
+ size fication (size in (size in
+ bytes) bytes)
+_
+\fCcmr\fP 10 1.0 22,812 152,670
+\ \ " 10 1.095 24,231 \ \ \ \ "
+\ \ " 10 1.2 26,044 \ \ \ \ "
+\ \ " 10 1.44 31,892 \ \ \ \ "
+\ \ " 10 1.728 39,614 \ \ \ \ "
+\ \ " 10 2.07 50,578 \ \ \ \ "
+\fCcmr\fP 5 1.0 16,729 \ \ \ \ "
+\ \ " 6 1.0 17,757 \ \ \ \ "
+\ \ " 7 1.0 18,820 \ \ \ \ "
+\ \ " 8 1.0 20,041 \ \ \ \ "
+\ \ " 9 1.0 21,580 \ \ \ \ "
+\ \ " 12 1.0 25,658 \ \ \ \ "
+\ \ " 17 1.0 37,140 \ \ \ \ "
+_
+Total 352,896 152,670
+.TE "Table 2"
+.br
+.RT
+.pp
+There are still better compressions that can be achieved. According to
+Beebe\*(<,\*([.4\*(.]\*(>,
+Toal and Raine's outline representation of \&\fCcmr\fP at 10 points
+requires about twice the space needed for bitmaps of the same; at 14 to
+16 points, the outlines and the bitmaps occupy about the same amount of
+space; above 16 points, the outlines are smaller than the bitmaps. It
+is clear that better encodings exist than we explored and these must be
+explored for any future version of \fHmf2ps\fP.
+.pp
+One such better encoding appears to be that used by Adobe for its own
+proprietary fonts; fonts encoded this way have a FontType of 1.
+User defined fonts have a FontType of 3. Beebe\*([.4\*(.]
+says that type 1 fonts are handled with greater efficiency than type 3
+fonts on most existing \*(pS interpreters, especially those that are based
+on Adobe-licensed code.
+Adobe has recently published specifications for the type 1 font encoding\*(<,\*([.2\*(.]\*(>,
+thus allowing anyone to produced type 1 fonts. Beebe believes that the
+market forces will drive other companies to encode their fonts as type 1.
+Moreover, as more and more windowing systems based on \*(pS, e.g., NeWS
+and NeXT, appear, the attraction of \*(pS outline fonts will increase, as
+then the same font can be used for both printing and previewing. Thus, the
+incentive will be to convert \*(MF fonts into type 1 \*(pS outline fonts.
+.pp
+Ultimately, the tradeoff is between the size of the font sent to the
+printer, and the time it takes for the printer to decode the program
+for the characters. However, with proper cacheing, a big enough cache,
+and a not very fancy document, the decoding is done only once per
+character for the document!
+.su "7\ \ \ Future work"
+.PP
+For the future, there are a number of improvements that can be made.
+Currently, each letter of the \*(pS outline fonts is described as a set
+of cyclic paths. When all are filled or stroked, one gets the desired
+letter. Some of those cyclic paths have a common boundary that is
+inside the letter and is not necessary for the outline description of
+the letter as a whole. Eliminating these paths and creating one
+outline for the letter will save space. Today this can be done
+manually, and is worth the effort because the translation process is
+done only once. From that time on, the font is used the way it is.
+.pp
+As was demonstrated by Beebe's rescue of our result, closer attention
+should be paid to obtaining more compact representations of character
+outlines, representations for which \*(pS routines can be written to
+interpret them into standard outline drawing commands.
+Collapsing commands into single characters and using relative movements
+saved significant amounts of space. Perhaps, even more dramatic savings can
+be obtained by giving coordinates and distances in hexadecimal.
+.pp
+More effort can be spent on modifying the program in order to allow
+magnifications up to 7200 points. Thus, no jaggies will be seen, as
+occasionally happens when using higher magnifications, e.g., in our
+translated fonts at magnification 8. This could be done by enlarging
+the program arrays to handle characters based on 7200 points. A
+sophisticated solution is required if one wants to save room while
+compiling the input font. In such a case, any linear translation which
+is done within the \*(pS program is with a factor less than 1.
+.pp
+\*(MF was changed for \*(TX 3.0. It is necessary to build a new version of
+\fHmf2ps\fP based on this latest version of \*(MF. As the changes to the
+\*(MF program deal mainly with ligatures and kerning, the calculation of
+envelopes is probably not affected. Therefore, it is likely that
+the portion of \*(MF up to the calculation of the envelope can still be
+used as a front end for \fHmf2ps\fP with very little change in the
+portion of the program we wrote.
+.pp
+Finally, it might be worthwhile, for the sake of portability to other
+systems and enhanceability by \pother
+.sp
+humans, to rewrite or to write the next
+version of \fHmf2ps\fP with \&\fCWEB\fP.
+.su "Acknowledgments"
+.PP
+The authors thank the
+\*(TB editors, and Nelson Beebe for their help, sharp comments, and
+result-saving ideas.
+Dealing with their comments made this a better paper.
+.su "References"
+.]<
+.\"1985-P\s-2OST\s0S\s-2CRIP-3
+.ds [F 1
+.]-
+.ds [L Adb85
+.ds [K PostScript
+.ds [T P\s-2OST\s0S\s-2CRIPT\s0 Language Reference Manual
+.ds [I Adobe Systems Incorporated, Addison-Wesley
+.ds [C Reading, MA
+.ds [D 1985
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 2 book
+.\"1990-Adobe-Type-1-Font-Fo-13
+.ds [F 2
+.]-
+.ds [L Adb90
+.ds [T Adobe Type 1 Font Format
+.ds [I Adobe Systems, Inc.
+.ds [D March, 1990
+.ds [R Part No. LPS0064
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 4 tech-report
+.\"Bechtolsheim.S.v.-1989-T\v'+.2m'\h'-.1m'E\h-6
+.ds [F 3
+.]-
+.ds [L Bec89
+.ds [A S.\ von\ Bechtolsheim
+.ds [T The T\v'+.2m'\h'-.1m'E\h'-.1m'\v'-.2m'X PostScript Software Package
+.ds [J TUGboat
+.ds [V 10
+.ds [N 1
+.ds [P 25\(en27
+.nr [P 0
+.ds [D 1989
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 1 journal-article
+.\"Beebe.N.-1990-12
+.ds [F 4
+.]-
+.ds [L Bee90
+.ds [A N.\ Beebe
+.ds [O Private communication, via electronic mail
+.ds [D 1990
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 0 other
+.\"Carr.L.-1987-Of-Metafont-and-Post-8
+.ds [F 5
+.]-
+.ds [L Car87
+.ds [A L.\ Carr
+.ds [T Of Metafont and PostScript
+.ds [J T\h'-.1m'\v'+.2m'E\v'-.2m'Xniques
+.ds [V 5
+.ds [P 141\(en152
+.nr [P 0
+.ds [C Seattle, WA
+.ds [D August, 1987
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 1 journal-article
+.\"Henderson.D.-1989-Outline-fonts-with-\-9
+.ds [F 6
+.]-
+.ds [L Hen89
+.ds [A D.\ Henderson
+.ds [T Outline fonts with \f(LGMETAFONT\fP
+.ds [J TUGboat
+.ds [V 10
+.ds [N 1
+.ds [P 36\(en38
+.nr [P 0
+.ds [D 1989
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 1 journal-article
+.\"Hobby.J.D.-1989-\f(LGMETAFONT\fP-lik-11
+.ds [F 7
+.]-
+.ds [L Hob89
+.ds [A J.D.\ Hobby
+.ds [T A \f(LGMETAFONT\fP-like System with PostScript Output
+.ds [J TUGboat
+.ds [V 10
+.ds [N 4
+.ds [P 505\(en512
+.nr [P 0
+.ds [D 1989
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 1 journal-article
+.\"Kernighan.B.W.-1982-Typesetter-independe-5
+.ds [F 8
+.]-
+.ds [L Ker82
+.ds [A B.W.\ Kernighan
+.ds [T A Typesetter-independent TROFF
+.ds [R Computing Science Technical Report No. 97
+.ds [I Bell Laboratories
+.ds [C Murray Hill, NJ 07974
+.ds [D March, 1982
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 4 tech-report
+.\"Knuth.D.E.-1984-T\h'-.1m'\v'+.2m'E\v-4
+.ds [F 9
+.]-
+.ds [L Knu84
+.ds [K T\dE\u\(*xbook
+.ds [A D.E.\ Knuth
+.ds [T The T\h'-.1m'\v'+.2m'E\v'-.2m'Xbook
+.ds [I Addison-Wesley
+.ds [C Reading, MA
+.ds [D 1984
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 2 book
+.\"Knuth.D.E.-1986-\f(LGMETAFONT\fPbook-1
+.ds [F 10
+.]-
+.ds [L Knu86
+.ds [A D.E.\ Knuth
+.ds [T The \f(LGMETAFONT\fPbook
+.ds [I Addison-Wesley
+.ds [C Reading, MA
+.ds [D 1986
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 2 book
+.\"Knuth.D.E.-1987-\f(LGMETAFONT\fP:-Th-2
+.ds [F 11
+.]-
+.ds [L Knu87
+.ds [A D.E.\ Knuth
+.ds [T \f(LGMETAFONT\fP: The Program
+.ds [I Addison-Wesley
+.ds [C Reading, MA
+.ds [D 1987
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 2 book
+.\"Toal.G.-1990-10
+.ds [F 12
+.]-
+.ds [L Toa90
+.ds [A G.\ Toal
+.ds [O Private communication, via electronic mail
+.ds [D 1990
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 0 other
+.\"Ziv.J.-1977-Universal-Algorithm--7
+.ds [F 13
+.]-
+.ds [L ZL77
+.ds [A J.\ Ziv
+.as [A " and A.\ Lempel
+.ds [T A Universal Algorithm for Sequential Data Compression
+.ds [J IEEE Trans\%actions on Information Theory
+.ds [V IT-23
+.ds [V 3
+.ds [P 337\(en343
+.nr [P 0
+.ds [D May, 1977
+.nr [T 0
+.nr [A 0
+.nr [O 0
+.][ 1 journal-article
+.]>
+.RT
+.sp 2
+.ta 1P +1P
+.in +6P
+.ps 9
+.vs 11
+.nf
+.ti -1P
+\(dm Shimon Yanai
+IBM Science and Technology
+ Center
+Technion City
+.sp
+Haifa 32000
+Israel
+yanai@israearn.bitnet
+.sp
+.ti -1P
+\(dm Daniel M. Berry
+Computer Science
+Technion
+Haifa 32000
+Israel
+dberry@cs.technion.ac.il
+.fi
+.in -6P
+.RT
diff --git a/fonts/utilities/mf2ps/doc/printsamples/README b/fonts/utilities/mf2ps/doc/printsamples/README
new file mode 100644
index 0000000000..a3c13aecac
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/README
@@ -0,0 +1,15 @@
+builtins.ps - to make figure 12 samples
+cm.ps - to make Figure 11 R M examples
+cm.tex - to make Figure 11 R M examples
+cm7.ps - to make Figure 11 7 R M examples
+cm7.tex - to make Figure 11 7 R M examples
+cmr.ps - to make Figure 11 R P examples
+cmtt.ps - to make Figure 11 T P examples
+lasy.ps - to make Figure 11 L P examples
+logo.ps - to make a sample of METAFONT in its own font
+sy.ps - to make Figure 11 L M examples
+sy.tex - to make Figure 11 L M examples
+tt.ps - to make Figure 11 T M examples
+tt.tex - to make Figure 11 T M examples
+tt7.ps - to make Figure 11 8 T M examples
+tt7.tex - to make Figure 11 8 T M examples
diff --git a/fonts/utilities/mf2ps/doc/printsamples/builtins.ps b/fonts/utilities/mf2ps/doc/printsamples/builtins.ps
new file mode 100644
index 0000000000..0b70fc607a
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/builtins.ps
@@ -0,0 +1,16 @@
+%!
+ /Helvetica findfont 10 scalefont setfont
+ 100 710 moveto (THIS IS HELVETICA TEN POINTS WRITTEN IN POSTSCRIPT) show
+ /Helvetica findfont 12 scalefont setfont
+ 100 698 moveto (THIS IS HELVETICA TWELVE POINTS WRITTEN IN POSTSCRIPT) show
+
+ /Times-Roman findfont 10 scalefont setfont
+ 100 674 moveto (THIS IS TIMES-ROMAN TEN POINTS WRITTEN IN POSTSCRIPT) show
+ /Times-Roman findfont 12 scalefont setfont
+ 100 662 moveto (THIS IS TIMES-ROMAN TWELVE POINTS WRITTEN IN POSTSCRIPT) show
+
+ /Courier findfont 10 scalefont setfont
+ 100 638 moveto (THIS IS COURIER TEN POINTS WRITTEN IN POSTSCRIPT) show
+ /Courier findfont 12 scalefont setfont
+ 100 626 moveto (THIS IS COURIER TWELVE POINTS WRITTEN IN POSTSCRIPT) show
+ showpage
diff --git a/fonts/utilities/mf2ps/doc/printsamples/cm.ps b/fonts/utilities/mf2ps/doc/printsamples/cm.ps
new file mode 100644
index 0000000000..e6c141fad0
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/cm.ps
@@ -0,0 +1,211 @@
+%!PS-Adobe-2.0
+%%Creator: dvips by Radical Eye Software
+%%Title: cm.dvi
+%%Pages: 1 -1
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%%BeginDocument: tex.pro
+/TeXDict 200 dict def TeXDict begin /bdf{bind def}def /Inch{Resolution mul}
+bdf /Dots{72 div Resolution mul}bdf /dopage{72 Resolution div dup neg scale
+translate}bdf /@letter{Resolution dup -10 mul dopage}bdf /@note{@letter}bdf
+/@a4{Resolution dup -10.6929133858 mul dopage}bdf /@translate{translate}bdf
+/@scale{scale}bdf /@rotate{rotate}bdf /@landscape{[0 1 -1 0 0 0]concat
+Resolution dup dopage}bdf /@legal{Resolution dup -13 mul dopage}bdf
+/@manualfeed{statusdict /manualfeed true put}bdf /@copies{/#copies exch def}
+bdf /@FontMatrix[1 0 0 -1 0 0]def /@FontBBox[0 0 1 1]def /dmystr(ZZf@@)def
+/newname{dmystr cvn}bdf /df{/fontname exch def dmystr 2 fontname cvx(@@@)cvs
+putinterval newname 7 dict def newname load begin /FontType 3 def /FontMatrix
+@FontMatrix def /FontBBox @FontBBox def /BitMaps 256 array def /BuildChar{
+CharBuilder}def /Encoding TeXEncoding def end fontname{/foo setfont}2 array
+copy cvx def fontname load 0 dmystr 5 string copy cvn cvx put}bdf /dfe{
+newname newname load definefont setfont}bdf /ch-image{ch-data 0 get}bdf
+/ch-width{ch-data 1 get}bdf /ch-height{ch-data 2 get}bdf /ch-xoff{ch-data 3
+get}bdf /ch-yoff{ch-data 4 get}bdf /ch-tfmw{ch-data 5 get}bdf /CharBuilder{
+save 3 1 roll exch /BitMaps get exch get /ch-data exch def ch-data null ne{
+ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub
+setcachedevice ch-width ch-height true[1 0 0 1 ch-xoff .1 sub ch-yoff .1 sub]{
+ch-image}imagemask}if restore}bdf /dc{/ch-code exch def dup 0 get length 1 lt{
+pop[<00>1 1 0 0 8.00]}if /ch-data exch def newname load /BitMaps get ch-code
+ch-data put}bdf /bop{gsave /SaveImage save def 0 0 moveto}bdf /eop{clear
+SaveImage restore showpage grestore}bdf /@start{/Resolution exch def
+/TeXEncoding 256 array def 0 1 255{TeXEncoding exch 1 string dup 0 3 index put
+cvn put}for}bdf /p{show}bdf /RuleMatrix[1 0 0 -1 -.1 -.1]def /BlackDots 8
+string def /v{gsave currentpoint translate false RuleMatrix{BlackDots}
+imagemask grestore}bdf /a{moveto}bdf /delta 0 def /tail{dup /delta exch def 0
+rmoveto}bdf /b{exch p tail}bdf /c{p delta 4 sub tail}bdf /d{p delta 3 sub tail
+}bdf /e{p delta 2 sub tail}bdf /f{p delta 1 sub tail}bdf /g{p delta 0 rmoveto}
+bdf /h{p delta 1 add tail}bdf /i{p delta 2 add tail}bdf /j{p delta 3 add tail}
+bdf /k{p delta 4 add tail}bdf /l{p -4 0 rmoveto}bdf /m{p -3 0 rmoveto}bdf /n{
+p -2 0 rmoveto}bdf /o{p -1 0 rmoveto}bdf /q{p 1 0 rmoveto}bdf /r{p 2 0 rmoveto
+}bdf /s{p 3 0 rmoveto}bdf /t{p 4 0 rmoveto}bdf /w{0 rmoveto}bdf /x{0 exch
+rmoveto}bdf /y{3 -1 roll p moveto}bdf /bos{/section save def}bdf /eos{clear
+section restore}bdf /SDict 200 dict def SDict begin /@SpecialDefaults{/hs 8.5
+Inch def /vs 11 Inch def /ho 0 def /vo 0 def /hsc 1 def /vsc 1 def /ang 0 def
+/CLIP false def /BBcalc false def}bdf /@hsize{/hs exch def /CLIP true def}bdf
+/@vsize{/vs exch def /CLIP true def}bdf /@hoffset{/ho exch def}bdf /@voffset{
+/vo exch def}bdf /@hscale{@scaleunit div /hsc exch def}bdf /@vscale{
+@scaleunit div /vsc exch def}bdf /@angle{/ang exch def}bdf /@scaleunit 100 def
+/@rwi{10 div /rwi exch def}bdf /@llx{/llx exch def}bdf /@lly{/lly exch def}
+bdf /@urx{/urx exch def}bdf /@ury{/ury exch def /BBcalc true def}bdf
+/@setclipper{BBcalc{rwi urx llx sub div dup scale llx neg lly neg translate}{
+hsc vsc scale}ifelse CLIP{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg
+0 rlineto closepath clip}{initclip}ifelse}bdf end /@MacSetUp{userdict /md
+known{userdict /md get type /dicttype eq{md begin /letter{}def /note{}def
+/legal{}def /od{txpose 1 0 mtx defaultmatrix dtransform exch atan/pa exch def
+newpath clippath mark{transform{itransform moveto}}{transform{itransform
+lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
+itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
+closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put
+10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}def /txpose{pxs pys
+scale ppr aload pop por{noflips{pop exch neg exch translate pop 1 -1 scale}if
+xflip yflip and{pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get
+ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip
+not and{pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 translate}if yflip xflip not and{ppr 1 get neg ppr 0 get neg translate}
+if}{noflips{translate pop pop 270 rotate 1 -1 scale}if xflip yflip and{
+translate pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2
+get ppr 0 get neg sub neg translate}if xflip yflip not and{translate pop pop
+90 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{
+translate pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate}
+if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2
+copy translate .96 dup scale neg exch neg exch translate}if}def /cp{pop pop
+showpage pm restore}def end}if}if}def /psf$TeXscale{65536 div}def /startTexFig
+{/psf$SavedState save def userdict maxlength dict begin Resolution 72 div dup
+neg scale currentpoint translate /psf$ury exch psf$TeXscale def /psf$urx exch
+psf$TeXscale def /psf$lly exch psf$TeXscale def /psf$llx exch psf$TeXscale def
+/psf$y exch psf$TeXscale def /psf$x exch psf$TeXscale def currentpoint /psf$cy
+exch def /psf$cx exch def /psf$sx psf$x psf$urx psf$llx sub div def /psf$sy
+psf$y psf$ury psf$lly sub div def psf$sx psf$sy scale psf$cx psf$sx div
+psf$llx sub psf$cy psf$sy div psf$ury sub translate /showpage{}def /erasepage{
+}def /copypage{}def @MacSetUp}def /doclip{psf$llx psf$lly psf$urx psf$ury
+currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto
+exch lineto exch lineto closepath clip newpath moveto}def /endTexFig{end
+psf$SavedState restore}def /@beginspecial{SDict begin /SpecialSave save def
+gsave Resolution 72 div dup neg scale currentpoint translate @SpecialDefaults}
+bdf /@setspecial{ho vo translate @setclipper ang rotate /showpage{}def newpath
+}bdf /@endspecial{grestore clear SpecialSave restore end}bdf /@defspecial{
+SDict begin}bdf /@fedspecial{end}bdf /li{lineto}bdf /rl{rlineto}bdf /rc{
+rcurveto}bdf /np{/SaveX currentpoint /SaveY exch def def newpath}bdf /st{
+stroke SaveX SaveY moveto}bdf /fil{fill SaveX SaveY moveto}bdf /ellipse{
+/endangle exch def /startangle exch def /yrad exch def /xrad exch def
+/savematrix matrix currentmatrix def translate xrad yrad scale 0 0 1
+startangle endangle arc savematrix setmatrix}bdf end
+%%EndDocument
+TeXDict begin 300 @start /fa df[<FF800FFFFF800FFF1E0001F00C0001F0040001E00400
+01E0060003E0020003C0020003C0010007800100078001FFFF8000FFFF0000800F0000801F0000
+401E0000401E0000603E0000203C0000203C000010780000107800001078000008F0000008F000
+0009F0000005E0000005E0000007E0000003C0000003C000000180000001800000018000>32 34
+-2 0 37]65 dc[<000FF000003FFC0000FC0E0001E0010007C000800F8000400F0000201E0000
+203E0000103C0000107C0000107C00001078000000F8000000F8000000F8000000F8000000F800
+0000F8000000F8000000F8000000780000107C0000107C0000103C0000303E0000301E0000300F
+0000700F8000F007C001F001E0037000FC0E70003FF830000FE010>28 34 -3 0 35]67 dc[<FF
+FFFFE0FFFFFFE0078003E0078000F0078000700780003007800030078000100780001007800010
+0780000807802008078020080780200007802000078060000780E00007FFE00007FFE0000780E0
+000780600007802000078020200780202007802020078000200780006007800060078000400780
+00C0078001C0078007C0FFFFFFC0FFFFFFC0>29 34 -2 0 33]69 dc[<FFFE0000FFFE00000780
+000007800000078000000780000007800000078000000780000007800000078020000780200007
+80200007802000078060000780E00007FFE00007FFE0000780E000078060000780200007802000
+07802020078020200780002007800020078000600780006007800040078000C0078001C0078007
+C0FFFFFFC0FFFFFFC0>27 34 -2 0 32]70 dc[<FFFC3FFFFFFC3FFF078001E0078001E0078001
+E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E00780
+01E0078001E0078001E007FFFFE007FFFFE0078001E0078001E0078001E0078001E0078001E007
+8001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0FFFC3FFFFFFC3FFF
+>32 34 -2 0 37]72 dc[<FFFCFFFC078007800780078007800780078007800780078007800780
+078007800780078007800780078007800780078007800780078007800780078007800780FFFCFF
+FC>14 34 -2 0 18]73 dc[<FFFFFF00FFFFFF0007803F0007800F000780030007800300078001
+000780018007800180078000800780008007800080078000800780000007800000078000000780
+000007800000078000000780000007800000078000000780000007800000078000000780000007
+8000000780000007800000078000000780000007800000FFFE0000FFFE0000>25 34 -2 0 30]
+76 dc[<FFE0203FFFFFE0703FFF1F007001E004007001E00400F801E00400F801E00400F801E0
+0401E401E00401E401E00401E401E00403C201E00403C201E004078101E004078101E004078101
+E0040F0081E0040F0081E0040F0081E0041E0041E0041E0041E0043C0021E0043C0021E0043C00
+21E004780011E004780011E004780011E004F00009E004F00009E004F00009E005E00005E005E0
+0005E007C00003E0FFC00003FFFFC00003FF>40 34 -2 0 45]77 dc[<FFE00020FFE000601F00
+0060040000E0040001E0040001E0040003E0040003E0040007A004000F2004000F2004001E2004
+003E2004003C20040078200400F8200400F0200401E0200401E0200403C0200407802004078020
+040F0020041F0020041E0020043C0020047C00200478002004F0002004F0002005E0002007C000
+F8FFC007FFFF8007FF>32 34 -2 0 37]78 dc[<000FE00000783C0001E00F0003C00780078003
+C00F0001E01E0000F01E0000F03C0000783C0000787C00007C7C00007C7800003CF800003EF800
+003EF800003EF800003EF800003EF800003EF800003EF800003E7800003C7800003C7C00007C3C
+0000783C0000781E0000F01E0000F00F0001E0078003C00380038001E00F0000783C00000FE000
+>31 34 -3 0 38]79 dc[<FFFC0000FFFC00000780000007800000078000000780000007800000
+07800000078000000780000007800000078000000780000007800000078000000780000007FFF8
+0007803E0007800F0007800780078003C0078003C0078003E0078003E0078003E0078003E00780
+03E0078003C0078003C00780078007800F8007803F00FFFFFC00FFFFF000>27 34 -2 0 33]80
+dc[<FFFC007C00FFFC01E300078007C100078007C08007800F808007800F800007800F80000780
+0F800007800F000007800F000007800F000007800F000007800E000007801E000007801C000007
+80380000078070000007FFE0000007803C000007800F00000780078000078007C000078003C000
+078003E000078003E000078003E000078003E000078003E000078007C000078007800007800F00
+0007803E0000FFFFF80000FFFFE00000>33 34 -2 0 36]82 dc[<81FC00C7FF00FE0380F001C0
+E000E0C000E0C000708000708000708000700000700000F00000F00001E00003E0003FC003FF80
+0FFF001FFE003FF0007F0000780000F00000F00000E00020E00020E00020E000606000607000E0
+3801E01C0FE00FFC6003F020>20 34 -3 0 27]83 dc[<03FFFF0003FFFF000007800000078000
+000780000007800000078000000780000007800000078000000780000007800000078000000780
+000007800000078000000780000007800000078000000780000007800000078000800780048007
+80048007800480078004C007800CC007800C400780084007800860078018780780787FFFFFF87F
+FFFFF8>30 34 -2 0 35]84 dc[<0000C000000000C000000001E000000001E000000001E00000
+0003D000000003D000000003D0000000078800000007880000000F840000000F040000000F0400
+00001E020000001E020000003E030000003C010000003C0100000078008000007800800000F800
+C00000F000400000F000400001E000200001E000200001E000200003C000100003C000100007C0
+00080007800008000780000C000F80001E00FFF0007FC0FFF0007FC0>34 34 -1 0 37]86 dc[<
+00020000800000030001800000070001C00000070001C00000070001C000000F8003E000000F80
+03E000000F8003E000001E40079000001E40079000001E40079000003C200F0800003C200F0800
+003C200F08000078101E04000078101E04000078101E040000F0083C020000F0083C020000F008
+3C020001E00478010001E00478010001E00478010003C002F0008003C002F0008003C002F00080
+078001E00040078001E00040078001E000400F8003E000200F0003C000600F0003C000F0FFF03F
+FC03FEFFF03FFC03FE>47 34 -1 0 50]87 dc dfe /fb df[<FFF80F80070007000700070007
+000700070007000700070007000700070007000700070007000700070007000700C7003F000700
+0300>13 27 -4 0 21]49 dc[<FF80FFF01E001F000C001F0004001E0004001E0002003C000200
+3C0002003C000100780001FFF800010078000080F0000080F0000080F0000041E0000041E00000
+43E0000023C0000023C0000037C0000017800000178000000F0000000F0000000F000000060000
+0006000000060000>28 28 -1 0 31]65 dc[<001FC00000E0300003800800070004000E000200
+1C0001003C000100380000807800008070000080F0000000F0000000F0000000F0000000F00000
+00F0000000F0000000F00000007000008078000080380000803C0001801C0001800E0003800700
+078003800B8000E03180001FC080>25 28 -2 0 30]67 dc[<FFFFFC0F003C0F000C0F00060F00
+060F00020F00020F00020F00010F02010F02000F02000F02000F06000FFE000F06000F02000F02
+000F02000F02020F00020F00020F00060F00040F00040F000C0F003CFFFFFC>24 28 -2 0 28]
+69 dc[<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F02000F02000F02
+000F02000F06000FFE000F06000F02000F02000F02000F02040F00040F00040F000C0F00080F00
+080F00180F0078FFFFF8>22 28 -2 0 27]70 dc[<FFF3FFC00F003C000F003C000F003C000F00
+3C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
+FFFC000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00
+0F003C000F003C000F003C00FFF3FFC0>26 28 -2 0 31]72 dc[<FFF00F000F000F000F000F00
+0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
+000F00FFF0>12 28 -1 0 15]73 dc[<FF8307FF801C0300780008030078000807807800080780
+78000807807800080F407800080F407800081E207800081E207800081E207800083C107800083C
+107800083C10780008780878000878087800087808780008F004780008F004780008F004780009
+E002780009E00278000BC00178000BC00178000BC00178000F8000F8000F8000F800FF8000FF80
+>33 28 -2 0 38]77 dc[<FF8004001C000C0008000C0008001C0008003C0008003C0008007C00
+08007C000800F4000801E4000801E4000803C4000807C40008078400080F0400080F0400081E04
+00083C0400083C04000878040008F8040008F0040009E0040009E004000BC004000F8004000F80
+0E00FF007FC0>26 28 -2 0 31]78 dc[<003F800001E0F0000380380007001C000E000E001C00
+07003C00078038000380780003C0780003C0F00001E0F00001E0F00001E0F00001E0F00001E0F0
+0001E0F00001E0F00001E0700001C0780003C038000380380003801C0007000E000E0007001C00
+0380380001E0F000003F8000>27 28 -2 0 32]79 dc[<FFF0000F00000F00000F00000F00000F
+00000F00000F00000F00000F00000F00000F00000F00000FFF800F00E00F00780F003C0F001C0F
+001E0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00E0FFFF80>23 28 -2 0 28]80 dc
+[<FFF007C00F001C200F0038100F0078100F0078100F0078000F0078000F0078000F0078000F00
+78000F0078000F00F0000F00E0000F03C0000FFF00000F01E0000F0078000F003C000F001C000F
+001E000F001E000F001E000F001E000F001C000F003C000F0078000F01E000FFFF0000>28 28
+-2 0 31]82 dc[<83F800CC0E00F00300C00300C001808001C08001C08001C00001C00003C000
+03C0000F8000FF8007FF001FFE003FF8007FC0007C0000F00000F00000E00080E00080E0008060
+01807003803007801C198007E080>18 28 -2 0 23]83 dc[<03FFFC00001F8000000F0000000F
+0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
+0F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020
+400F0040400F0040600F00C0700F01C07FFFFFC0>27 28 -1 0 30]84 dc[<0018001800001800
+18000018001800003C003C00003C003C00003C003C00007E007E00007A007A00007A007A000079
+00F20000F100F10000F100F10000F081E10001E081E08001E081E08001E043E08003C043C04003
+C043C04003C027C0400780278020078027802007803F80200F001F00100F001F00100F001F0010
+1E001E00181F001F003CFFE0FFE0FF>40 28 -1 0 43]87 dc dfe end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300
+ TeXDict begin @letter
+%%EndSetup
+%%Page: 1 1
+ bop 83 42 a fb(THIS)14 b(IS)g(CMR)f(TEN)i(POINTS)f(WRITTEN)f(IN)h(MET)m(AF)o
+(ONT)83 91 y fa(THIS)i(IS)g(CMR)g(TWEL)-5 b(VE)16 b(POINTS)g(WRITTEN)g(IN)g
+(MET)l(AF)o(ONT)965 2770 y fb(1)g eop
+%%Trailer
+ end
+%%EOF
diff --git a/fonts/utilities/mf2ps/doc/printsamples/cm.tex b/fonts/utilities/mf2ps/doc/printsamples/cm.tex
new file mode 100644
index 0000000000..abdfdc1922
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/cm.tex
@@ -0,0 +1,8 @@
+\font\test=cmr10
+\test
+THIS IS CMR TEN POINTS WRITTEN IN METAFONT
+
+\font\test=cmr12
+\test
+THIS IS CMR TWELVE POINTS WRITTEN IN METAFONT
+\bye
diff --git a/fonts/utilities/mf2ps/doc/printsamples/cm7.ps b/fonts/utilities/mf2ps/doc/printsamples/cm7.ps
new file mode 100644
index 0000000000..916a98ccf9
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/cm7.ps
@@ -0,0 +1,503 @@
+%! for use by dvi2ps Version 2.00
+% a start (Ha!) at a TeX mode for PostScript.
+% The following defines procedures assumed and used by program "dvi2ps"
+% and must be downloaded or sent as a header file for all TeX jobs.
+
+% By: Neal Holtz, Carleton University, Ottawa, Canada
+% <holtz@cascade.carleton.cdn>
+% <holtz%cascade.carleton.cdn@ubc.csnet>
+% June, 1985
+% Last Modified: Aug 25/85
+% oystr 12-Feb-1986
+% Changed @dc macro to check for a badly formed bits in character
+% definitions. Can get a <> bit map if a character is not actually
+% in the font file. This is absolutely guaranteed to drive the
+% printer nuts - it will appear that you can no longer define a
+% new font, although the built-ins will still be there.
+
+% To convert this file into a downloaded file instead of a header
+% file, uncomment all of the lines beginning with %-%
+
+%-%0000000 % Server loop exit password
+%-%serverdict begin exitserver
+%-% systemdict /statusdict known
+%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end}
+%-% if
+
+/TeXDict 200 dict def % define a working dictionary
+TeXDict begin % start using it.
+
+ % units are in "dots" (300/inch)
+/Resolution 300 def
+/Inch {Resolution mul} def % converts inches to internal units
+
+/Mtrx 6 array def
+
+%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%%
+
+% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in
+% from top left, with y +ive downward). The default PostScript system
+% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in
+% the following code are an attempt to reconcile that. The intent is to
+% specify the scaling as 1 and have only translations in the matrix to
+% properly position the text. Caution: the default device matrices are
+% *not* the same in all PostScript devices; that should not matter in most
+% of the code below (except for lanscape mode -- in that, rotations of
+% -90 degrees resulted in the the rotation matrix [ e 1 ]
+% [ 1 e ]
+% where the "e"s were almost exactly but not quite unlike zeros.
+
+/@letter
+ { letter initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 310 -3005 translate % move origin to top (these are not exactly 1"
+ Mtrx currentmatrix pop % and -10" because margins aren't set exactly right)
+ } def
+ % note mode is like letter, except it uses less VM
+/@note
+ { note initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 310 -3005 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@landscape
+ { letter initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+% -90 rotate % it would be nice to be able to do this
+ Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what
+ Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly)
+ Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers
+ Mtrx 3 0.0 put % (nor on others where the device matrix is not like
+ Mtrx setmatrix % like it is on the LaserWriter).
+ 300 310 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@legal
+ { legal initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 295 -3880 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@manualfeed
+ { statusdict /manualfeed true put
+ } def
+ % n @copies - set number of copies
+/@copies
+ { /#copies exch def
+ } def
+
+%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+/@newfont % id @newfont - -- initialize a new font dictionary
+ { /newname exch def
+ pop
+ newname 7 dict def % allocate new font dictionary
+ newname load begin
+ /FontType 3 def
+ /FontMatrix [1 0 0 -1 0 0] def
+ /FontBBox [0 0 1 1] def
+ /BitMaps 128 array def
+ /BuildChar {CharBuilder} def
+ /Encoding 128 array def
+ 0 1 127 {Encoding exch /.undef put} for
+ end
+ newname newname load definefont pop
+ } def
+
+
+% the following is the only character builder we need. it looks up the
+% char data in the BitMaps array, and paints the character if possible.
+% char data -- a bitmap descriptor -- is an array of length 6, of
+% which the various slots are:
+
+/ch-image {ch-data 0 get} def % the hex string image
+/ch-width {ch-data 1 get} def % the number of pixels across
+/ch-height {ch-data 2 get} def % the number of pixels tall
+/ch-xoff {ch-data 3 get} def % number of pixels below origin
+/ch-yoff {ch-data 4 get} def % number of pixels to left of origin
+/ch-tfmw {ch-data 5 get} def % spacing to next character
+
+/CharBuilder % fontdict ch Charbuilder - -- image one character
+ { /ch-code exch def % save the char code
+ /font-dict exch def % and the font dict.
+ /ch-data font-dict /BitMaps get ch-code get def % get the bitmap descriptor for char
+ ch-data null eq not
+ { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub
+ setcachedevice
+ ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff]
+ {ch-image} imagemask
+ }
+ if
+ } def
+
+
+/@sf % fontdict @sf - -- make that the current font
+ { setfont() pop
+ } def
+
+ % in the following, the font-cacheing mechanism requires that
+ % a name unique in the particular font be generated
+
+/@dc % char-data ch @dc - -- define a new character bitmap in current font
+ { /ch-code exch def
+% ++oystr 12-Feb-86++
+ dup 0 get
+ length 2 lt
+ { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null
+ if
+% --oystr 12-Feb-86--
+ /ch-data exch def
+ currentfont /BitMaps get ch-code ch-data put
+ currentfont /Encoding get ch-code
+ dup ( ) cvs cvn % generate a unique name simply from the character code
+ put
+ } def
+
+/@bop0 % n @bop0 - -- begin the char def section of a new page
+ {
+ } def
+
+/@bop1 % n @bop1 - -- begin a brand new page
+ { pop
+ erasepage initgraphics
+ Mtrx setmatrix
+ /SaveImage save def() pop
+ } def
+
+/@eop % - @eop - -- end a page
+ { showpage
+ SaveImage restore() pop
+ } def
+
+/@start % - @start - -- start everything
+ { @letter % (there is not much to do)
+ } def
+
+/@end % - @end - -- done the whole shebang
+ { end
+ } def
+
+/p % x y p - -- move to position
+ { moveto
+ } def
+
+/r % x r - -- move right
+ { 0 rmoveto
+ } def
+
+/s % string s - -- show the string
+ { show
+ } def
+
+/c % ch c - -- show the character (code given)
+ { c-string exch 0 exch put
+ c-string show
+ } def
+
+/c-string ( ) def
+
+/ru % dx dy ru - -- set a rule (rectangle)
+ { /dy exch neg def % because dy is height up from bottom
+ /dx exch def
+ /x currentpoint /y exch def def % remember current point
+ newpath x y moveto
+ dx 0 rlineto
+ 0 dy rlineto
+ dx neg 0 rlineto
+ closepath fill
+ x y moveto
+ } def
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% the \special command junk
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The structure of the PostScript produced by dvi2ps for \special is:
+% @beginspecial
+% - any number of @hsize, @hoffset, @hscale, etc., commands
+% @setspecial
+% - the users file of PostScript commands
+% @endspecial
+
+% The @beginspecial command recognizes whether the Macintosh Laserprep
+% has been loaded or not, and redfines some Mac commands if so.
+% The @setspecial handles the users shifting, scaling, clipping commands
+
+
+% The following are user settable options from the \special command.
+
+/@SpecialDefaults
+ { /hs 8.5 Inch def
+ /vs 11 Inch def
+ /ho 0 def
+ /vo 0 def
+ /hsc 1 def
+ /vsc 1 def
+ /CLIP false def
+ } def
+
+% d @hsize - specify a horizontal clipping dimension
+% these 2 are executed before the MacDraw initializations
+/@hsize {/hs exch def /CLIP true def} def
+/@vsize {/vs exch def /CLIP true def} def
+% d @hoffset - specify a shift for the drwgs
+/@hoffset {/ho exch def} def
+/@voffset {/vo excl def} def
+% s @hscale - set scale factor
+/@hscale {/hsc exch def} def
+/@vscale {/vsc exch def} def
+
+/@setclipper
+ { hsc vsc scale
+ CLIP
+ { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip }
+ if
+ } def
+
+% this will be invoked as the result of a \special command (for the
+% inclusion of PostScript graphics). The basic idea is to change all
+% scaling and graphics back to defaults, but to shift the origin
+% to the current position on the page. Due to TeXnical difficulties,
+% we only set the y-origin. The x-origin is set at the left edge of
+% the page.
+
+/@beginspecial % - @beginspecial - -- enter special mode
+ { gsave /SpecialSave save def
+ % the following magic incantation establishes the current point as
+ % the users origin, and reverts back to default scalings, rotations
+ currentpoint transform initgraphics itransform translate
+ @SpecialDefaults % setup default offsets, scales, sizes
+ @MacSetUp % fix up Mac stuff
+ } def
+
+/@setspecial % to setup user specified offsets, scales, sizes (for clipping)
+ {
+ MacDrwgs
+ {md begin /pxt ho def /pyt vo neg def end}
+ {ho vo translate @setclipper}
+ ifelse
+ } def
+
+/@endspecial % - @endspecial - -- leave special mode
+ { SpecialSave restore
+ grestore
+ } def
+
+/MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded
+
+ % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us
+ % we depend on 'psu' being the first procedure executed
+ % by a Mac document. We redefine 'psu' to adjust page
+ % translations, and to do all other the fixups required.
+ % This stuff will not harm other included PS files
+/@MacSetUp
+ { userdict /md known % if md is defined
+ { userdict /md get type /dicttype eq % and if it is a dictionary
+ { /MacDrwgs true def
+ md begin % then redefine some stuff
+ /psu % redfine psu to set origins, etc.
+ /psu load
+ % this procedure contains almost all the fixup code
+ { /letter {} def % it is bad manners to execute the real
+ /note {} def % versions of these (clears page image, etc.)
+ /legal {} def
+ statusdict /waittimeout 300 put
+ /page {pop} def % no printing of pages
+ /pyt vo neg def % x & y pixel translations
+ /pxt ho def
+ }
+ concatprocs
+ def
+ /od % redefine od to set clipping region
+ /od load
+ { @setclipper }
+ concatprocs
+ def
+ end }
+ if }
+ if
+ } def
+
+% p1 p2 concatprocs p - concatenate procedures
+/concatprocs
+ { /p2 exch cvlit def
+ /p1 exch cvlit def
+ /p p1 length p2 length add array def
+ p 0 p1 putinterval
+ p p1 length p2 putinterval
+ p cvx
+ } def
+
+end % revert to previous dictionary
+TeXDict begin @start
+%%Title: cm7.dvi
+%%Creator: dvi2ps
+%%EndProlog
+1 @bop0
+[ 1500 ] /cmr7.1500 @newfont
+cmr7.1500 @sf
+[<07FF000070000070000070000070000070000070000070000070000070000070000070000070008070088070088070084070
+ 104070106070307FFFF0> 24 20 -1 0 23.695] 84 @dc
+[<FF87FC1C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01FFFE01C00E01C00E01C00E01C00E01C00E01C00
+ E01C00E01C00E0FF87FC> 24 20 -1 0 24.503] 72 @dc
+[<FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80> 16 20 -1 0 11.992] 73 @dc
+[<8FC0F060C0308018801880180018003800F00FF03FC07F007000E000C010C010C030603030F01F10> 16 20 -2 0 18.334] 83 @dc
+[<00FC000703000C0080180040300020700020600020E00000E00000E00000E00000E00000E000006000207000203000601800
+ 600C00E007036000FC20> 24 20 -2 0 23.695] 67 @dc
+[<FE083FE0381C0700101C0700101C0700103A0700103A0700107107001071070010E0870010E0870010E0870011C0470011C0
+ 470013802700138027001700170017001700170017001E000F00FE000FE0> 32 20 -1 0 29.864] 77 @dc
+[<FF80F81C01CC1C03841C03841C03801C03801C03801C03801C07001C0E001FF8001C07001C03801C01C01C01C01C01C01C01
+ C01C03801C0700FFF800> 24 20 -1 0 24.099] 82 @dc
+[<FFFFC01C01C01C00C01C00401C00601C00201C00201C08201C08001C18001FF8001C18001C08001C08401C00401C00401C00
+ 801C00801C0380FFFF80> 24 20 -1 0 22.312] 69 @dc
+[<00300000300000780000780000FC0000E40000E40001C20001C2000381000381000781800700800700800E00400E00401C00
+ 201C00203C0030FF00FC> 24 20 -1 0 24.503] 86 @dc
+[<FE00203800601000E01000E01001E01003A0100720100F20100E20101C2010382010702010702010E02011C0201380201780
+ 201700201E0070FC01FC> 24 20 -1 0 24.503] 78 @dc
+[<FF80001C00001C00001C00001C00001C00001C00001C00001C00001FFC001C07001C03801C01C01C01C01C01C01C01C01C01
+ C01C03801C0700FFFC00> 24 20 -1 0 22.312] 80 @dc
+[<01F800070E001C03803801C03000C07000E07000E0E00070E00070E00070E00070E00070E000706000607000E03000C03801
+ C01C0380070E0001F800> 24 20 -2 0 25.483] 79 @dc
+[<00C00C0000C00C0000C00C0001E01E0001E01E0001F03E0003903900039039000388710007087080070870800704E0800E04
+ E0400E04E0401E03C0601C03C0201C03C0203803803038038030FF1FF0FC> 32 20 -1 0 33.439] 87 @dc
+[<FE07FC3800E01000E00801C00801C004038007FF80040380020700020700010E00010E00011E00009C00009C000078000078
+ 00007800003000003000> 24 20 -1 0 24.503] 65 @dc
+[<FFC0001C00001C00001C00001C00001C00001C00001C10001C10001C30001FF0001C30001C10001C10401C00401C00401C00
+ 801C00801C0380FFFF80> 24 20 -1 0 21.418] 70 @dc
+[ 1500 ] /cmr10.1500 @newfont
+cmr10.1500 @sf
+[<03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
+ 0000000F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020400F0040400F0040
+ 600F00C0700F01C07FFFFFC0> 32 28 -1 0 29.979] 84 @dc
+[<FFF3FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F00
+ 3C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00
+ 0F003C000F003C00FFF3FFC0> 32 28 -2 0 31.133] 72 @dc
+[<FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
+ 0F000F00FFF0> 16 28 -1 0 14.990] 73 @dc
+[<83F800CC0E00F00300C00300C001808001C08001C08001C00001C00003C00003C0000F8000FF8007FF001FFE003FF8007FC0
+ 007C0000F00000F00000E00080E00080E000806001807003803007801C198007E080> 24 28 -2 0 23.061] 83 @dc
+[<001FC00000E0300003800800070004000E0002001C0001003C000100380000807800008070000080F0000000F0000000F000
+ 0000F0000000F0000000F0000000F0000000F00000007000008078000080380000803C0001801C0001800E00038007000780
+ 03800B8000E03180001FC080> 32 28 -2 0 29.979] 67 @dc
+[<FF8307FF801C030078000803007800080780780008078078000807807800080F407800080F407800081E207800081E207800
+ 081E207800083C107800083C107800083C10780008780878000878087800087808780008F004780008F004780008F0047800
+ 09E002780009E00278000BC00178000BC00178000BC00178000F8000F8000F8000F800FF8000FF80> 40 28 -2 0 38.051] 77 @dc
+[<FFF007C00F001C200F0038100F0078100F0078100F0078000F0078000F0078000F0078000F0078000F0078000F00F0000F00
+ E0000F03C0000FFF00000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C00
+ 0F0078000F01E000FFFF0000> 32 28 -2 0 30.556] 82 @dc
+[<FFFFFC0F003C0F000C0F00060F00060F00020F00020F00020F00010F02010F02000F02000F02000F06000FFE000F06000F02
+ 000F02000F02000F02020F00020F00020F00060F00040F00040F000C0F003CFFFFFC> 24 28 -2 0 28.250] 69 @dc
+[<FF8004001C000C0008000C0008001C0008003C0008003C0008007C0008007C000800F4000801E4000801E4000803C4000807
+ C40008078400080F0400080F0400081E0400083C0400083C04000878040008F8040008F0040009E0040009E004000BC00400
+ 0F8004000F800E00FF007FC0> 32 28 -2 0 31.133] 78 @dc
+[<FFF0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFF800F00E00F00780F00
+ 3C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00E0FFFF80> 24 28 -2 0 28.250] 80 @dc
+[<003F800001E0F0000380380007001C000E000E001C0007003C00078038000380780003C0780003C0F00001E0F00001E0F000
+ 01E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C038000380380003801C0007000E000E0007001C00
+ 0380380001E0F000003F8000> 32 28 -2 0 32.286] 79 @dc
+[<001800180000180018000018001800003C003C00003C003C00003C003C00007E007E00007A007A00007A007A00007900F200
+ 00F100F10000F100F10000F081E10001E081E08001E081E08001E043E08003C043C04003C043C04003C027C0400780278020
+ 078027802007803F80200F001F00100F001F00100F001F00101E001E00181F001F003CFFE0FFE0FF> 40 28 -1 0 42.663] 87 @dc
+[<FF80FFF01E001F000C001F0004001E0004001E0002003C0002003C0002003C000100780001FFF800010078000080F0000080
+ F0000080F0000041E0000041E0000043E0000023C0000023C0000037C0000017800000178000000F0000000F0000000F0000
+ 000600000006000000060000> 32 28 -1 0 31.133] 65 @dc
+[<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F02000F02000F02000F02000F06000FFE000F06000F02
+ 000F02000F02000F02040F00040F00040F000C0F00080F00080F00180F0078FFFFF8> 24 28 -2 0 27.097] 70 @dc
+[ 1500 ] /cmr12.1500 @newfont
+cmr12.1500 @sf
+[<03FFFF00000FC000000780000007800000078000000780000007800000078000000780000007800000078000000780000007
+ 8000000780000007800000078000000780000007800000078000000780000007800000078000000780008007800480078004
+ 8007800480078004C007800C40078008400780084007800860078018780780787FFFFFF8> 32 34 -2 0 35.225] 84 @dc
+[<FFFC3FFF0FC003F0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E00780
+ 01E0078001E0078001E0078001E0078001E007FFFFE0078001E0078001E0078001E0078001E0078001E0078001E0078001E0
+ 078001E0078001E0078001E0078001E0078001E0078001E0078001E00FC003F0FFFC3FFF> 32 34 -2 0 36.563] 72 @dc
+[<FFFC0FC007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780
+ 07800780078007800780078007800FC0FFFC> 16 34 -2 0 17.595] 73 @dc
+[<81FC00C60300F80180E000C0C000E0C000608000708000708000708000700000700000F00000F00001E00007E0003FC003FF
+ 800FFF001FFE003FF0007F0000780000F00000F00000E00020E00020E00020E000606000607000E03000E01803E00C0C6003
+ F020> 24 34 -3 0 27.097] 83 @dc
+[<000FF00000380C0000E0020001C00100078000800F0000400E0000201E0000203C0000103C0000107C000010780000107800
+ 0000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800000078000010780000107C0000103C000030
+ 3C0000301E0000300E0000700F000070078000F001C0017000E0067000381830000FE010> 32 34 -3 0 35.225] 67 @dc
+[<FFE0203FFF1F007003F00E007001E004007001E00400F801E00400F801E00400F801E00401E401E00401E401E00401E401E0
+ 0403C201E00403C201E004078101E004078101E004078101E0040F0081E0040F0081E0040F0081E0041E0041E0041E0041E0
+ 043C0021E0043C0021E0043C0021E004780011E004780011E004780011E004F00009E004F00009E004F00009E005E00005E0
+ 05E00005E007C00003E00FC00003F0FFC00003FF> 40 34 -2 0 44.692] 77 @dc
+[<FFFC007C000FC001E300078007C100078007C08007800F808007800F800007800F800007800F800007800F000007800F0000
+ 07800F000007800F000007800E000007801E000007801C00000780380000078070000007FFE0000007803C000007800E0000
+ 0780078000078007C000078003C000078003E000078003E000078003E000078003E000078003E000078003C000078007C000
+ 078007800007800E00000F803C0000FFFFE00000> 40 34 -2 0 35.894] 82 @dc
+[<00020000800000030001800000070001C00000070001C00000070001C000000F8003E000000F8003E000000F8003E000001E
+ 40079000001E40079000001E40079000003C200F0800003C200F0800003C200F08000078101E04000078101E04000078101E
+ 040000F0083C020000F0083C020000F0083C020001E00478010001E00478010001E00478010003C002F0008003C002F00080
+ 03C002F00080078001E00040078001E00040078001E000400F8003E000200F0003C000200F0003C000701F8007E000F8FFF0
+ 3FFC03FE> 48 34 -1 0 50.111] 87 @dc
+[<FFFFFFE00F8003E0078000E00780007007800030078000300780001007800010078000100780000807800008078020080780
+ 20000780200007802000078060000780E00007FFE0000780E000078060000780200007802000078020000780202007800020
+ 0780002007800020078000600780004007800040078000C0078001C00F8007C0FFFFFFC0> 32 34 -2 0 33.185] 69 @dc
+[<FFFFFF000F803F0007800F000780030007800300078001000780018007800180078000800780008007800080078000800780
+ 0000078000000780000007800000078000000780000007800000078000000780000007800000078000000780000007800000
+ 078000000780000007800000078000000780000007800000078000000FC00000FFFE0000> 32 34 -2 0 30.475] 76 @dc
+[<0000C000000000C000000001E000000001E000000001E000000003D000000003D000000003D0000000078800000007880000
+ 000F840000000F040000000F040000001E020000001E020000003E030000003C010000003C01000000780080000078008000
+ 00F800C00000F000400000F000400001E000200001E000200001E000200003C000100003C000100007C00008000780000800
+ 07800008000F80000C001F80001F00FFF0007FC0> 40 34 -1 0 36.563] 86 @dc
+[<FFFC00000FC00000078000000780000007800000078000000780000007800000078000000780000007800000078000000780
+ 000007800000078000000780000007FFF00007803C0007800F0007800780078007C0078003C0078003E0078003E0078003E0
+ 078003E0078003E0078003E0078003C0078007C00780078007800F000F803C00FFFFF000> 32 34 -2 0 33.185] 80 @dc
+[<000FE00000783C0001E00F0003C00780078003C00F0001E01E0000F01E0000F03C0000783C0000787C00007C7C00007C7800
+ 003CF800003EF800003EF800003EF800003EF800003EF800003EF800003EF800003E7800003C7800003C7C00007C3C000078
+ 3C0000781E0000F01E0000F00F0001E0078003C00380038001E00F0000783C00000FE000> 32 34 -3 0 37.935] 79 @dc
+[<FFE000201F0000600E000060040000E0040001E0040001E0040003E0040003E0040007A004000F2004000F2004001E200400
+ 3E2004003C20040078200400F8200400F0200401E0200401E0200403C0200407802004078020040F0020041F0020041E0020
+ 043C0020047C00200478002004F0002004F0002005E0002007C0007007C000F8FF8007FF> 32 34 -2 0 36.563] 78 @dc
+[<FF800FFF3E0001F80C0000F00C0001F0040001E0040001E0060003E0020003C0020003C0010007800100078001FFFF800080
+ 0F0000800F0000801F0000401E0000401E0000603E0000203C0000203C000010780000107800001078000008F0000008F000
+ 0009F0000005E0000005E0000007E0000003C0000003C000000180000001800000018000> 32 34 -2 0 36.563] 65 @dc
+[<FFFE00000FC00000078000000780000007800000078000000780000007800000078000000780000007800000078020000780
+ 20000780200007802000078060000780E00007FFE0000780E000078060000780200007802000078020000780202007800020
+ 0780002007800020078000600780004007800040078000C0078001C00F8007C0FFFFFFC0> 32 34 -2 0 31.830] 70 @dc
+cmr10.1500 @sf
+[<FFF80F80070007000700070007000700070007000700070007000700070007000700070007000700070007000700C7003F00
+ 07000300> 16 27 -4 0 20.755] 49 @dc
+1 @bop1
+cmr7.1500 @sf
+83 42 p (THIS) s
+11 r (IS) s
+11 r (CMR) s
+12 r (SEVEN) s
+11 r (POINTS) s
+11 r (WRITTEN) s
+11 r (IN) s
+11 r (MET) s
+-1 r (AF) s
+-1 r (ONT) s
+cmr10.1500 @sf
+83 91 p (THIS) s
+14 r (IS) s
+14 r (CMR) s
+14 r (TEN) s
+13 r (POINTS) s
+14 r (WRITTEN) s
+14 r (IN) s
+14 r (MET) s
+-3 r (AF) s
+-1 r (ONT) s
+cmr12.1500 @sf
+83 141 p (THIS) s
+16 r (IS) s
+17 r (CMR) s
+16 r (TWEL) s
+-5 r (VE) s
+16 r (POINTS) s
+16 r (WRITTEN) s
+16 r (IN) s
+16 r (MET) s
+-3 r (AF) s
+-1 r (ONT) s
+cmr10.1500 @sf
+965 2770 p 49 c
+@eop
+@end
diff --git a/fonts/utilities/mf2ps/doc/printsamples/cm7.tex b/fonts/utilities/mf2ps/doc/printsamples/cm7.tex
new file mode 100644
index 0000000000..d2a275b95a
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/cm7.tex
@@ -0,0 +1,12 @@
+\font\test=cmr7
+\test
+THIS IS CMR SEVEN POINTS WRITTEN IN METAFONT
+
+\font\test=cmr10
+\test
+THIS IS CMR TEN POINTS WRITTEN IN METAFONT
+
+\font\test=cmr12
+\test
+THIS IS CMR TWELVE POINTS WRITTEN IN METAFONT
+\bye
diff --git a/fonts/utilities/mf2ps/doc/printsamples/cmr.ps b/fonts/utilities/mf2ps/doc/printsamples/cmr.ps
new file mode 100644
index 0000000000..6237342ee7
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/cmr.ps
@@ -0,0 +1,4555 @@
+%! Simon font
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 40 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.000895 0 0 0.000895 0 0] def
+% /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_A
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 194 180 0.5 sub moveto
+ 346 180 0.5 sub lineto
+ 318 182 0.5 sub 290 182 0.5 sub 262 182 0.5 sub curveto
+ 262 180 0.5 sub lineto
+ 192 180 0.5 sub lineto
+closepath
+%end path
+%erase
+%new path
+ 488 180 0.5 sub moveto
+ 684 180 0.5 sub lineto
+ 654 182 0.5 sub 624 182 0.5 sub 594 182 0.5 sub curveto
+ 594 180 0.5 sub lineto
+ 486 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 418 600 moveto
+ 466 462 514 324 562 186 curveto
+ 562 184 564 182 566 182 curveto
+ 568 180 570 180 574 180 curveto
+ 622 180 lineto
+ 624 180 626 180 626 182 curveto
+ 628 182 628 184 628 186 curveto
+ 626 186 lineto
+ 626 188 lineto
+ 568 354 510 522 452 688 curveto
+ 452 690 450 692 450 692 curveto
+ 448 694 444 696 442 696 curveto
+ 442 694 lineto
+ 434 694 lineto
+ 432 694 428 692 426 690 curveto
+ 426 690 424 688 424 686 curveto
+ 366 520 308 352 250 186 curveto
+ 250 184 lineto
+ 252 184 lineto
+ 252 182 252 180 254 180 curveto
+ 264 180 lineto
+ 268 180 270 182 272 184 curveto
+ 274 184 274 186 276 188 curveto
+ 324 326 370 464 418 602 curveto
+closepath
+%end path
+fill
+%new path
+ 318 344 moveto
+ 538 344 lineto
+ 536 352 534 360 532 366 curveto
+ 532 364 lineto
+ 324 364 lineto
+ 322 358 318 350 316 342 curveto
+closepath
+%end path
+fill
+%new path
+ 270 246 moveto
+ 268 236 262 228 256 222 curveto
+ 252 218 248 214 242 212 curveto
+ 228 202 210 200 192 200 curveto
+ 192 180 lineto
+ 264 180 lineto
+ 270 202 278 226 284 248 curveto
+ 282 246 lineto
+ 270 246 lineto
+closepath
+%end path
+fill
+%new path
+ 294 246 moveto
+ 282 246 lineto
+ 276 224 268 200 262 180 curveto
+ 348 180 lineto
+ 348 202 lineto
+ 346 202 lineto
+ 332 202 316 206 304 216 curveto
+ 302 216 302 216 302 218 curveto
+ 296 224 292 232 292 240 curveto
+ 294 240 lineto
+ 294 242 294 246 296 248 curveto
+closepath
+%end path
+fill
+%new path
+ 548 226 moveto
+ 550 224 550 224 550 222 curveto
+ 548 222 lineto
+ 548 218 546 214 542 210 curveto
+ 540 210 538 208 536 206 curveto
+ 522 200 504 200 486 200 curveto
+ 486 180 lineto
+ 594 180 lineto
+ 588 196 584 212 580 228 curveto
+ 580 226 lineto
+ 546 226 lineto
+closepath
+%end path
+fill
+%new path
+ 612 226 moveto
+ 582 226 lineto
+ 586 210 590 194 596 180 curveto
+ 686 180 lineto
+ 686 202 lineto
+ 684 202 lineto
+ 666 202 642 202 630 206 curveto
+ 626 208 624 210 622 212 curveto
+ 618 216 614 222 612 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_B
+(
+newpath
+%new path
+ 270 668 moveto
+ 270 664 lineto
+ 268 664 lineto
+ 268 188 lineto
+ 270 188 lineto
+ 270 184 lineto
+ 274 180 lineto
+ 326 180 lineto
+ 328 184 lineto
+ 330 186 lineto
+ 330 664 lineto
+ 328 668 lineto
+ 326 670 lineto
+ 322 672 lineto
+ 320 672 lineto
+ 320 670 lineto
+ 276 670 lineto
+ 276 672 lineto
+ 274 670 lineto
+ 270 668 lineto
+closepath
+%end path
+fill
+%new path
+ 300 650 moveto
+ 460 650 lineto
+ 460 648 lineto
+ 482 648 504 638 520 622 curveto
+ 522 622 522 620 524 618 curveto
+ 542 600 550 574 550 548 curveto
+ 548 548 lineto
+ 548 520 536 494 518 474 curveto
+ 516 474 516 474 516 472 curveto
+ 494 452 466 442 438 442 curveto
+ 298 442 lineto
+ 298 432 lineto
+ 300 434 lineto
+ 460 434 lineto
+ 500 434 540 444 574 468 curveto
+ 578 472 584 476 590 480 curveto
+ 608 500 620 524 620 550 curveto
+ 618 550 lineto
+ 618 578 604 604 584 624 curveto
+ 580 628 576 632 572 636 curveto
+ 538 660 498 672 458 672 curveto
+ 458 670 lineto
+ 298 670 lineto
+ 298 648 lineto
+closepath
+%end path
+fill
+%new path
+ 300 428 moveto
+ 470 428 lineto
+ 470 426 lineto
+ 494 426 516 416 534 398 curveto
+ 536 396 538 394 540 392 curveto
+ 558 370 568 340 568 310 curveto
+ 566 310 lineto
+ 566 280 554 252 534 232 curveto
+ 514 212 486 200 458 200 curveto
+ 298 200 lineto
+ 298 180 lineto
+ 480 180 lineto
+ 522 180 562 192 594 218 curveto
+ 596 222 600 224 604 228 curveto
+ 626 250 640 280 640 312 curveto
+ 638 312 lineto
+ 638 342 624 370 604 390 curveto
+ 600 394 596 398 592 402 curveto
+ 560 426 518 438 478 438 curveto
+ 478 436 lineto
+ 298 436 lineto
+ 298 426 lineto
+closepath
+%end path
+fill
+%new path
+ 270 624 moveto
+ 300 624 lineto
+ 300 672 lineto
+ 298 670 lineto
+ 194 670 lineto
+ 194 648 lineto
+ 196 648 lineto
+ 216 648 246 648 258 644 curveto
+ 260 642 262 642 264 640 curveto
+ 268 636 270 628 270 622 curveto
+closepath
+%end path
+fill
+%new path
+ 330 624 moveto
+ 330 632 330 640 334 644 curveto
+ 336 644 336 646 336 646 curveto
+ 342 650 356 650 368 650 curveto
+ 368 672 lineto
+ 366 670 lineto
+ 298 670 lineto
+ 298 622 lineto
+ 300 624 lineto
+ 330 624 lineto
+closepath
+%end path
+fill
+%new path
+ 268 226 moveto
+ 268 220 266 212 262 208 curveto
+ 260 206 258 206 256 204 curveto
+ 244 200 214 200 194 200 curveto
+ 194 180 lineto
+ 300 180 lineto
+ 300 228 lineto
+ 298 226 lineto
+ 268 226 lineto
+closepath
+%end path
+fill
+%new path
+ 328 226 moveto
+ 298 226 lineto
+ 298 180 lineto
+ 368 180 lineto
+ 368 202 lineto
+ 366 202 lineto
+ 354 202 340 202 334 206 curveto
+ 334 206 334 208 332 208 curveto
+ 328 212 328 220 328 228 curveto
+closepath
+%end path
+fill
+) def
+
+/The_letter_C
+(
+newpath
+%new path
+ 642 482 moveto
+ 656 482 lineto
+ 658 484 lineto
+ 660 486 lineto
+ 660 490 lineto
+ 658 492 lineto
+ 654 532 640 570 620 602 curveto
+ 618 604 lineto
+ 618 606 lineto
+ 610 616 602 626 592 636 curveto
+ 592 636 lineto
+ 592 638 lineto
+ 572 656 550 670 524 678 curveto
+ 522 678 lineto
+ 522 680 lineto
+ 506 686 490 688 472 688 curveto
+ 470 688 lineto
+ 470 686 lineto
+ 444 686 418 682 394 674 curveto
+ 392 674 lineto
+ 392 672 lineto
+ 356 660 324 640 296 614 curveto
+ 296 614 lineto
+ 296 612 lineto
+ 294 612 294 610 292 610 curveto
+ 282 598 272 586 264 574 curveto
+ 264 576 lineto
+ 262 572 lineto
+ 234 528 218 478 218 426 curveto
+ 220 428 lineto
+ 220 422 lineto
+ 220 370 236 320 264 276 curveto
+ 262 278 lineto
+ 264 274 lineto
+ 266 274 lineto
+ 274 262 284 250 294 238 curveto
+ 296 238 296 236 298 236 curveto
+ 298 236 lineto
+ 298 234 lineto
+ 326 208 358 188 394 178 curveto
+ 396 178 lineto
+ 396 176 lineto
+ 420 168 446 164 472 164 curveto
+ 472 164 lineto
+ 474 166 lineto
+ 494 166 512 170 530 176 curveto
+ 530 174 lineto
+ 532 176 lineto
+ 534 176 lineto
+ 560 184 584 198 604 218 curveto
+ 602 216 lineto
+ 604 218 lineto
+ 614 228 620 236 628 246 curveto
+ 626 246 lineto
+ 628 248 lineto
+ 630 250 lineto
+ 648 278 660 314 660 352 curveto
+ 660 354 lineto
+ 658 358 lineto
+ 656 358 lineto
+ 654 360 lineto
+ 652 360 lineto
+ 650 358 lineto
+ 646 358 lineto
+ 646 360 lineto
+ 644 358 lineto
+ 642 358 lineto
+ 640 354 lineto
+ 640 316 630 282 610 254 curveto
+ 612 256 lineto
+ 614 258 lineto
+ 612 258 lineto
+ 606 248 598 238 590 230 curveto
+ 592 232 lineto
+ 590 228 lineto
+ 590 224 lineto
+ 592 232 lineto
+ 598 234 lineto
+ 596 234 lineto
+ 592 232 lineto
+ 574 214 552 200 526 192 curveto
+ 528 192 lineto
+ 530 194 lineto
+ 530 192 lineto
+ 514 186 496 184 478 184 curveto
+ 478 186 lineto
+ 476 184 lineto
+ 474 184 lineto
+ 480 186 lineto
+ 484 184 lineto
+ 480 186 lineto
+ 460 186 440 190 422 196 curveto
+ 424 194 lineto
+ 426 194 lineto
+ 398 204 374 218 354 240 curveto
+ 354 238 lineto
+ 352 240 lineto
+ 356 238 lineto
+ 358 234 lineto
+ 356 238 lineto
+ 354 238 lineto
+ 350 244 344 250 340 256 curveto
+ 336 260 334 264 330 268 curveto
+ 332 266 lineto
+ 334 264 lineto
+ 332 264 lineto
+ 302 312 292 370 292 428 curveto
+ 294 428 lineto
+ 292 430 lineto
+ 294 428 lineto
+ 292 420 lineto
+ 294 424 lineto
+ 294 482 304 540 334 588 curveto
+ 334 586 lineto
+ 332 584 lineto
+ 336 588 338 592 342 596 curveto
+ 346 602 352 608 356 614 curveto
+ 358 616 lineto
+ 358 620 lineto
+ 356 614 lineto
+ 350 612 lineto
+ 354 612 lineto
+ 356 614 lineto
+ 376 634 400 648 428 658 curveto
+ 426 656 lineto
+ 424 656 lineto
+ 442 662 462 666 480 666 curveto
+ 482 666 lineto
+ 484 668 lineto
+ 478 666 lineto
+ 474 668 lineto
+ 474 666 lineto
+ 478 666 lineto
+ 478 664 lineto
+ 494 664 510 662 524 656 curveto
+ 522 658 lineto
+ 520 658 lineto
+ 542 650 562 638 580 620 curveto
+ 578 622 lineto
+ 582 620 lineto
+ 578 622 lineto
+ 576 626 lineto
+ 578 622 lineto
+ 588 612 594 604 602 592 curveto
+ 600 594 lineto
+ 598 596 lineto
+ 600 596 lineto
+ 620 564 634 526 638 486 curveto
+ 636 486 lineto
+ 638 484 lineto
+ 640 482 lineto
+ 642 482 lineto
+closepath
+%end path
+fill
+%new path
+ 658 484 moveto
+ 660 486 lineto
+ 660 682 lineto
+ 658 686 lineto
+ 656 686 lineto
+ 654 688 lineto
+ 652 688 lineto
+ 650 686 lineto
+ 648 686 lineto
+ 648 688 lineto
+ 646 686 lineto
+ 644 686 lineto
+ 644 684 lineto
+ 628 660 612 636 596 614 curveto
+ 594 612 lineto
+ 594 608 lineto
+ 596 604 lineto
+ 598 604 lineto
+ 600 600 604 596 606 590 curveto
+ 606 592 lineto
+ 604 594 lineto
+ 624 562 638 524 642 486 curveto
+ 640 486 lineto
+ 642 484 lineto
+ 644 482 lineto
+ 656 482 lineto
+ 658 484 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_D
+(
+newpath
+%new path
+ 270 668 moveto
+ 270 664 lineto
+ 268 664 lineto
+ 268 188 lineto
+ 270 188 lineto
+ 270 184 lineto
+ 274 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 276 670 lineto
+ 276 672 lineto
+ 274 670 lineto
+ 270 668 lineto
+closepath
+%end path
+fill
+%new path
+ 302 650 moveto
+ 442 650 lineto
+ 442 648 lineto
+ 484 648 524 632 552 602 curveto
+ 558 596 564 590 568 584 curveto
+ 602 536 608 478 608 420 curveto
+ 606 420 lineto
+ 606 364 600 306 566 262 curveto
+ 562 256 558 250 554 246 curveto
+ 524 216 482 200 440 200 curveto
+ 300 200 lineto
+ 300 180 lineto
+ 460 180 lineto
+ 516 180 568 204 608 244 curveto
+ 610 246 614 248 616 250 curveto
+ 658 298 680 358 680 422 curveto
+ 678 422 lineto
+ 678 486 656 550 614 598 curveto
+ 610 602 606 606 604 610 curveto
+ 564 648 512 672 458 672 curveto
+ 458 670 lineto
+ 300 670 lineto
+ 300 648 lineto
+closepath
+%end path
+fill
+%new path
+ 270 624 moveto
+ 302 624 lineto
+ 302 672 lineto
+ 300 670 lineto
+ 194 670 lineto
+ 194 648 lineto
+ 196 648 lineto
+ 216 648 246 648 258 644 curveto
+ 260 642 262 642 264 640 curveto
+ 268 636 270 628 270 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 632 332 640 336 644 curveto
+ 338 644 338 646 338 646 curveto
+ 344 650 358 650 370 650 curveto
+ 370 672 lineto
+ 368 670 lineto
+ 300 670 lineto
+ 300 622 lineto
+ 302 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 268 226 moveto
+ 268 220 266 212 262 208 curveto
+ 260 206 258 206 256 204 curveto
+ 244 200 214 200 194 200 curveto
+ 194 180 lineto
+ 302 180 lineto
+ 302 228 lineto
+ 300 226 lineto
+ 268 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 300 226 lineto
+ 300 180 lineto
+ 370 180 lineto
+ 370 202 lineto
+ 368 202 lineto
+ 356 202 342 202 336 206 curveto
+ 336 206 336 208 334 208 curveto
+ 330 212 330 220 330 228 curveto
+closepath
+%end path
+fill
+) def
+
+/The_letter_E
+(
+newpath
+%new path
+ 268 666 moveto
+ 268 662 lineto
+ 266 662 lineto
+ 266 188 lineto
+ 268 188 lineto
+ 268 184 lineto
+ 272 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 662 lineto
+ 330 666 lineto
+ 328 668 lineto
+ 324 670 lineto
+ 322 670 lineto
+ 322 668 lineto
+ 274 668 lineto
+ 274 670 lineto
+ 272 668 lineto
+ 268 666 lineto
+closepath
+%end path
+fill
+%new path
+ 602 508 moveto
+ 618 508 lineto
+ 612 562 604 616 598 670 curveto
+ 598 668 lineto
+ 298 668 lineto
+ 298 646 lineto
+ 300 648 lineto
+ 442 648 lineto
+ 442 646 lineto
+ 484 646 532 646 562 620 curveto
+ 562 620 564 618 566 618 curveto
+ 592 590 598 546 602 506 curveto
+closepath
+%end path
+fill
+%new path
+ 472 528 moveto
+ 472 504 472 476 456 460 curveto
+ 440 444 410 444 386 444 curveto
+ 298 444 lineto
+ 298 422 lineto
+ 300 424 lineto
+ 492 424 lineto
+ 492 530 lineto
+ 490 528 lineto
+ 472 528 lineto
+closepath
+%end path
+fill
+%new path
+ 474 340 moveto
+ 492 340 lineto
+ 492 446 lineto
+ 490 444 lineto
+ 298 444 lineto
+ 298 422 lineto
+ 300 424 lineto
+ 388 424 lineto
+ 388 422 lineto
+ 412 422 442 422 458 406 curveto
+ 474 390 474 362 474 338 curveto
+closepath
+%end path
+fill
+%new path
+ 620 364 moveto
+ 612 318 604 262 574 234 curveto
+ 574 232 572 232 572 230 curveto
+ 538 200 490 200 446 200 curveto
+ 298 200 lineto
+ 298 180 lineto
+ 610 180 lineto
+ 620 242 630 304 640 366 curveto
+ 638 364 lineto
+ 620 364 lineto
+closepath
+%end path
+fill
+%new path
+ 268 622 moveto
+ 300 622 lineto
+ 300 670 lineto
+ 298 668 lineto
+ 192 668 lineto
+ 192 646 lineto
+ 194 646 lineto
+ 214 646 244 646 256 642 curveto
+ 258 640 260 640 262 638 curveto
+ 266 634 268 626 268 620 curveto
+closepath
+%end path
+fill
+%new path
+ 332 622 moveto
+ 332 630 332 638 336 642 curveto
+ 338 642 338 644 338 644 curveto
+ 344 648 358 648 370 648 curveto
+ 370 670 lineto
+ 368 668 lineto
+ 298 668 lineto
+ 298 620 lineto
+ 300 622 lineto
+ 332 622 lineto
+closepath
+%end path
+fill
+%new path
+ 266 226 moveto
+ 266 220 264 212 260 208 curveto
+ 258 206 256 206 254 204 curveto
+ 242 200 212 200 192 200 curveto
+ 192 180 lineto
+ 300 180 lineto
+ 300 228 lineto
+ 298 226 lineto
+ 266 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 298 226 lineto
+ 298 180 lineto
+ 370 180 lineto
+ 370 202 lineto
+ 368 202 lineto
+ 356 202 342 202 336 206 curveto
+ 336 206 336 208 334 208 curveto
+ 330 212 330 220 330 228 curveto
+closepath
+%end path
+fill
+) def
+
+/The_letter_F
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 194 180 0.5 sub moveto
+ 422 180 0.5 sub lineto
+ 382 182 0.5 sub 340 182 0.5 sub 298 182 0.5 sub curveto
+ 298 180 0.5 sub lineto
+ 192 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 268 666 moveto
+ 268 662 lineto
+ 266 662 lineto
+ 266 188 lineto
+ 268 188 lineto
+ 268 184 lineto
+ 272 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 662 lineto
+ 330 666 lineto
+ 328 668 lineto
+ 324 670 lineto
+ 322 670 lineto
+ 322 668 lineto
+ 274 668 lineto
+ 274 670 lineto
+ 272 668 lineto
+ 268 666 lineto
+closepath
+%end path
+fill
+%new path
+ 592 508 moveto
+ 608 508 lineto
+ 602 562 594 616 588 670 curveto
+ 588 668 lineto
+ 298 668 lineto
+ 298 646 lineto
+ 300 648 lineto
+ 438 648 lineto
+ 438 646 lineto
+ 478 646 524 646 552 620 curveto
+ 554 620 554 618 556 618 curveto
+ 582 592 588 546 592 506 curveto
+closepath
+%end path
+fill
+%new path
+ 468 518 moveto
+ 468 494 468 464 452 450 curveto
+ 436 434 408 434 384 434 curveto
+ 298 434 lineto
+ 298 412 lineto
+ 300 414 lineto
+ 488 414 lineto
+ 488 520 lineto
+ 486 518 lineto
+ 468 518 lineto
+closepath
+%end path
+fill
+%new path
+ 470 330 moveto
+ 488 330 lineto
+ 488 436 lineto
+ 486 434 lineto
+ 298 434 lineto
+ 298 412 lineto
+ 300 414 lineto
+ 386 414 lineto
+ 386 412 lineto
+ 410 412 438 412 454 396 curveto
+ 470 382 470 352 470 328 curveto
+closepath
+%end path
+fill
+%new path
+ 268 622 moveto
+ 300 622 lineto
+ 300 670 lineto
+ 298 668 lineto
+ 192 668 lineto
+ 192 646 lineto
+ 194 646 lineto
+ 214 646 244 646 256 642 curveto
+ 258 640 260 640 262 638 curveto
+ 266 634 268 626 268 620 curveto
+closepath
+%end path
+fill
+%new path
+ 332 622 moveto
+ 332 630 332 638 336 642 curveto
+ 338 642 338 644 338 644 curveto
+ 344 648 358 648 370 648 curveto
+ 370 670 lineto
+ 368 668 lineto
+ 298 668 lineto
+ 298 620 lineto
+ 300 622 lineto
+ 332 622 lineto
+closepath
+%end path
+fill
+%new path
+ 266 226 moveto
+ 266 220 264 212 260 208 curveto
+ 258 206 256 206 254 204 curveto
+ 242 200 212 200 192 200 curveto
+ 192 180 lineto
+ 300 180 lineto
+ 300 228 lineto
+ 298 226 lineto
+ 266 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 298 226 lineto
+ 298 180 lineto
+ 424 180 lineto
+ 424 202 lineto
+ 422 202 lineto
+ 396 202 360 202 346 206 curveto
+ 342 208 340 210 336 212 curveto
+ 332 216 330 222 330 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_G
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 508 376 0.5 add moveto
+ 548 374 0.5 add 590 374 0.5 add 630 374 0.5 add curveto
+ 630 376 0.5 add lineto
+ 658 376 0.5 add 684 376 0.5 add 712 378 0.5 add curveto
+ 710 376 0.5 add lineto
+ 506 376 0.5 add lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 596 264 moveto
+ 598 264 lineto
+ 598 248 604 234 612 220 curveto
+ 610 222 lineto
+ 612 218 lineto
+ 614 218 lineto
+ 618 210 624 204 632 196 curveto
+ 630 198 lineto
+ 632 196 lineto
+ 638 190 644 184 652 180 curveto
+ 658 180 lineto
+ 660 182 lineto
+ 662 184 lineto
+ 662 268 lineto
+ 660 272 lineto
+ 658 272 lineto
+ 656 274 lineto
+ 654 274 lineto
+ 652 272 lineto
+ 602 272 lineto
+ 602 274 lineto
+ 600 272 lineto
+ 598 272 lineto
+ 596 268 lineto
+ 596 264 lineto
+closepath
+%end path
+fill
+%new path
+ 644 482 moveto
+ 658 482 lineto
+ 660 484 lineto
+ 662 486 lineto
+ 662 490 lineto
+ 660 492 lineto
+ 656 532 642 570 622 602 curveto
+ 622 600 lineto
+ 620 604 lineto
+ 612 616 604 626 594 636 curveto
+ 596 634 lineto
+ 594 636 lineto
+ 574 656 552 670 526 678 curveto
+ 524 678 lineto
+ 524 680 lineto
+ 508 686 490 688 472 688 curveto
+ 472 688 lineto
+ 470 686 lineto
+ 444 686 420 682 396 674 curveto
+ 394 674 lineto
+ 392 672 lineto
+ 356 660 324 640 296 614 curveto
+ 296 614 lineto
+ 296 612 lineto
+ 294 612 294 610 292 610 curveto
+ 282 598 272 586 264 574 curveto
+ 262 572 lineto
+ 262 570 lineto
+ 234 528 218 478 218 426 curveto
+ 220 428 lineto
+ 220 422 lineto
+ 220 370 236 320 264 278 curveto
+ 262 278 lineto
+ 264 276 lineto
+ 266 274 lineto
+ 274 262 284 250 294 238 curveto
+ 296 238 296 236 298 236 curveto
+ 298 236 lineto
+ 298 234 lineto
+ 326 208 358 188 394 178 curveto
+ 396 178 lineto
+ 398 176 lineto
+ 422 168 446 164 472 164 curveto
+ 474 164 lineto
+ 474 166 lineto
+ 498 166 520 170 540 176 curveto
+ 542 176 lineto
+ 542 178 lineto
+ 562 182 580 192 594 204 curveto
+ 594 204 lineto
+ 594 206 lineto
+ 598 210 602 214 606 220 curveto
+ 604 218 lineto
+ 606 222 lineto
+ 608 222 lineto
+ 616 234 620 248 620 266 curveto
+ 620 268 lineto
+ 618 272 lineto
+ 616 272 lineto
+ 614 274 lineto
+ 612 274 lineto
+ 610 272 lineto
+ 602 272 lineto
+ 602 274 lineto
+ 600 272 lineto
+ 598 272 lineto
+ 596 268 lineto
+ 596 252 592 238 584 226 curveto
+ 584 228 lineto
+ 586 230 lineto
+ 582 226 580 222 576 218 curveto
+ 574 216 lineto
+ 574 212 lineto
+ 576 218 lineto
+ 582 220 lineto
+ 578 220 lineto
+ 576 218 lineto
+ 564 206 548 198 530 192 curveto
+ 532 192 lineto
+ 534 194 lineto
+ 534 192 lineto
+ 518 186 500 184 482 184 curveto
+ 482 186 lineto
+ 480 184 lineto
+ 478 184 lineto
+ 484 186 lineto
+ 488 184 lineto
+ 484 186 lineto
+ 464 186 444 190 424 196 curveto
+ 426 194 lineto
+ 428 194 lineto
+ 400 204 374 220 354 240 curveto
+ 352 240 lineto
+ 356 238 lineto
+ 358 236 lineto
+ 356 238 lineto
+ 354 240 lineto
+ 350 244 344 250 340 256 curveto
+ 336 260 334 264 330 268 curveto
+ 332 268 lineto
+ 334 264 lineto
+ 332 266 lineto
+ 302 312 292 370 292 428 curveto
+ 294 428 lineto
+ 292 430 lineto
+ 294 428 lineto
+ 292 420 lineto
+ 294 424 lineto
+ 294 482 304 540 334 588 curveto
+ 334 586 lineto
+ 332 584 lineto
+ 336 588 338 592 342 596 curveto
+ 346 602 352 608 356 614 curveto
+ 356 612 lineto
+ 358 616 lineto
+ 358 620 lineto
+ 356 612 lineto
+ 350 610 lineto
+ 352 610 lineto
+ 354 612 lineto
+ 356 612 lineto
+ 376 634 400 648 428 658 curveto
+ 428 656 lineto
+ 426 656 lineto
+ 444 662 462 666 482 666 curveto
+ 484 666 lineto
+ 484 668 lineto
+ 478 666 lineto
+ 474 668 lineto
+ 476 666 lineto
+ 478 666 lineto
+ 480 664 lineto
+ 496 664 510 662 524 656 curveto
+ 524 658 lineto
+ 522 658 lineto
+ 544 650 564 638 582 620 curveto
+ 580 622 lineto
+ 584 620 lineto
+ 580 622 lineto
+ 578 626 lineto
+ 580 622 lineto
+ 590 612 598 602 604 592 curveto
+ 604 594 lineto
+ 602 596 lineto
+ 622 564 636 526 640 486 curveto
+ 638 486 lineto
+ 640 484 lineto
+ 642 482 lineto
+ 644 482 lineto
+closepath
+%end path
+fill
+%new path
+ 660 484 moveto
+ 662 486 lineto
+ 662 682 lineto
+ 660 686 lineto
+ 658 686 lineto
+ 656 688 lineto
+ 654 688 lineto
+ 652 686 lineto
+ 650 686 lineto
+ 650 688 lineto
+ 648 686 lineto
+ 646 686 lineto
+ 646 684 lineto
+ 630 660 614 636 598 614 curveto
+ 596 612 lineto
+ 596 608 lineto
+ 598 604 lineto
+ 600 604 lineto
+ 602 600 606 594 608 590 curveto
+ 608 592 lineto
+ 606 594 lineto
+ 626 562 640 524 644 486 curveto
+ 642 486 lineto
+ 644 484 lineto
+ 646 482 lineto
+ 658 482 lineto
+ 660 484 lineto
+closepath
+%end path
+fill
+%new path
+ 598 374 moveto
+ 596 370 lineto
+ 596 266 lineto
+ 598 262 lineto
+ 600 260 lineto
+ 604 258 lineto
+ 606 258 lineto
+ 606 260 lineto
+ 656 260 lineto
+ 654 258 lineto
+ 658 260 lineto
+ 660 262 lineto
+ 662 266 lineto
+ 662 370 lineto
+ 660 374 lineto
+ 658 376 lineto
+ 654 378 lineto
+ 652 378 lineto
+ 652 376 lineto
+ 602 376 lineto
+ 604 378 lineto
+ 600 376 lineto
+ 598 374 lineto
+closepath
+%end path
+fill
+%new path
+ 598 330 moveto
+ 630 330 lineto
+ 630 378 lineto
+ 628 376 lineto
+ 506 376 lineto
+ 506 354 lineto
+ 508 354 lineto
+ 534 354 568 354 582 350 curveto
+ 586 348 590 346 592 344 curveto
+ 596 340 598 334 598 328 curveto
+closepath
+%end path
+fill
+%new path
+ 662 330 moveto
+ 662 338 662 344 668 350 curveto
+ 668 350 670 352 670 352 curveto
+ 678 356 698 356 712 356 curveto
+ 712 378 lineto
+ 710 376 lineto
+ 628 376 lineto
+ 628 328 lineto
+ 630 330 lineto
+ 662 330 lineto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_H
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 194 670 0.5 add moveto
+ 230 668 0.5 add 264 668 0.5 add 300 668 0.5 add curveto
+ 300 670 0.5 add lineto
+ 336 670 0.5 add 370 670 0.5 add 406 672 0.5 add curveto
+ 404 670 0.5 add lineto
+ 192 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 194 180 0.5 sub moveto
+ 404 180 0.5 sub lineto
+ 368 182 0.5 sub 334 182 0.5 sub 298 182 0.5 sub curveto
+ 298 180 0.5 sub lineto
+ 192 180 0.5 sub lineto
+closepath
+%end path
+%erase
+%new path
+ 474 670 0.5 add moveto
+ 510 668 0.5 add 544 668 0.5 add 580 668 0.5 add curveto
+ 580 670 0.5 add lineto
+ 616 670 0.5 add 650 670 0.5 add 686 672 0.5 add curveto
+ 684 670 0.5 add lineto
+ 472 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 474 180 0.5 sub moveto
+ 684 180 0.5 sub lineto
+ 648 182 0.5 sub 614 182 0.5 sub 578 182 0.5 sub curveto
+ 578 180 0.5 sub lineto
+ 472 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 268 668 moveto
+ 268 664 lineto
+ 266 664 lineto
+ 266 188 lineto
+ 268 188 lineto
+ 268 184 lineto
+ 272 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 274 670 lineto
+ 274 672 lineto
+ 272 670 lineto
+ 268 668 lineto
+closepath
+%end path
+fill
+%new path
+ 548 668 moveto
+ 546 664 lineto
+ 546 186 lineto
+ 548 184 lineto
+ 550 180 lineto
+ 608 180 lineto
+ 610 184 lineto
+ 612 186 lineto
+ 612 664 lineto
+ 610 668 lineto
+ 608 670 lineto
+ 604 672 lineto
+ 602 672 lineto
+ 602 670 lineto
+ 552 670 lineto
+ 554 672 lineto
+ 550 670 lineto
+ 548 668 lineto
+closepath
+%end path
+fill
+%new path
+ 300 424 moveto
+ 580 424 lineto
+ 580 446 lineto
+ 578 444 lineto
+ 298 444 lineto
+ 298 422 lineto
+closepath
+%end path
+fill
+%new path
+ 268 624 moveto
+ 300 624 lineto
+ 300 672 lineto
+ 298 670 lineto
+ 192 670 lineto
+ 192 648 lineto
+ 194 648 lineto
+ 214 648 244 648 256 644 curveto
+ 258 642 260 642 262 640 curveto
+ 266 636 268 628 268 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 630 334 638 338 642 curveto
+ 340 644 342 644 344 646 curveto
+ 356 650 386 650 406 650 curveto
+ 406 672 lineto
+ 404 670 lineto
+ 298 670 lineto
+ 298 622 lineto
+ 300 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 266 226 moveto
+ 266 220 264 212 260 208 curveto
+ 258 206 256 206 254 204 curveto
+ 242 200 212 200 192 200 curveto
+ 192 180 lineto
+ 300 180 lineto
+ 300 228 lineto
+ 298 226 lineto
+ 266 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 298 226 lineto
+ 298 180 lineto
+ 406 180 lineto
+ 406 202 lineto
+ 404 202 lineto
+ 384 202 354 202 342 206 curveto
+ 340 208 338 208 336 210 curveto
+ 332 214 330 222 330 228 curveto
+closepath
+%end path
+fill
+%new path
+ 548 624 moveto
+ 580 624 lineto
+ 580 672 lineto
+ 578 670 lineto
+ 472 670 lineto
+ 472 648 lineto
+ 474 648 lineto
+ 494 648 524 648 536 644 curveto
+ 538 642 540 642 542 640 curveto
+ 546 636 548 628 548 622 curveto
+closepath
+%end path
+fill
+%new path
+ 612 624 moveto
+ 612 630 614 638 618 642 curveto
+ 620 644 622 644 624 646 curveto
+ 636 650 666 650 686 650 curveto
+ 686 672 lineto
+ 684 670 lineto
+ 578 670 lineto
+ 578 622 lineto
+ 580 624 lineto
+ 612 624 lineto
+closepath
+%end path
+fill
+%new path
+ 546 226 moveto
+ 546 220 544 212 540 208 curveto
+ 538 206 536 206 534 204 curveto
+ 522 200 492 200 472 200 curveto
+ 472 180 lineto
+ 580 180 lineto
+ 580 228 lineto
+ 578 226 lineto
+ 546 226 lineto
+closepath
+%end path
+fill
+%new path
+ 610 226 moveto
+ 578 226 lineto
+ 578 180 lineto
+ 686 180 lineto
+ 686 202 lineto
+ 684 202 lineto
+ 664 202 634 202 622 206 curveto
+ 620 208 618 208 616 210 curveto
+ 612 214 610 222 610 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_I
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 190 670 0.5 add moveto
+ 226 668 0.5 add 264 668 0.5 add 300 668 0.5 add curveto
+ 300 670 0.5 add lineto
+ 336 670 0.5 add 374 670 0.5 add 410 672 0.5 add curveto
+ 408 670 0.5 add lineto
+ 188 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 190 180 0.5 sub moveto
+ 408 180 0.5 sub lineto
+ 372 182 0.5 sub 334 182 0.5 sub 298 182 0.5 sub curveto
+ 298 180 0.5 sub lineto
+ 188 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 268 668 moveto
+ 268 664 lineto
+ 266 664 lineto
+ 266 188 lineto
+ 268 188 lineto
+ 268 184 lineto
+ 272 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 274 670 lineto
+ 274 672 lineto
+ 272 670 lineto
+ 268 668 lineto
+closepath
+%end path
+fill
+%new path
+ 268 624 moveto
+ 300 624 lineto
+ 300 672 lineto
+ 298 670 lineto
+ 188 670 lineto
+ 188 648 lineto
+ 190 648 lineto
+ 212 648 242 648 256 644 curveto
+ 258 642 260 642 262 640 curveto
+ 266 636 268 628 268 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 630 334 638 338 642 curveto
+ 340 644 342 644 344 646 curveto
+ 358 650 388 650 410 650 curveto
+ 410 672 lineto
+ 408 670 lineto
+ 298 670 lineto
+ 298 622 lineto
+ 300 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 266 226 moveto
+ 266 220 264 212 260 208 curveto
+ 258 206 256 206 254 204 curveto
+ 240 200 210 200 188 200 curveto
+ 188 180 lineto
+ 300 180 lineto
+ 300 228 lineto
+ 298 226 lineto
+ 266 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 298 226 lineto
+ 298 180 lineto
+ 410 180 lineto
+ 410 202 lineto
+ 408 202 lineto
+ 386 202 356 202 342 206 curveto
+ 340 208 338 208 336 210 curveto
+ 332 214 330 222 330 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_J
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 302 670 0.5 add moveto
+ 344 668 0.5 add 386 668 0.5 add 428 668 0.5 add curveto
+ 428 670 0.5 add lineto
+ 458 670 0.5 add 486 670 0.5 add 516 672 0.5 add curveto
+ 514 670 0.5 add lineto
+ 300 670 0.5 add lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 398 668 moveto
+ 396 664 lineto
+ 396 282 lineto
+ 396 266 394 250 388 236 curveto
+ 390 238 lineto
+ 390 240 lineto
+ 386 228 380 216 374 206 curveto
+ 370 202 368 198 364 196 curveto
+ 364 196 lineto
+ 372 200 lineto
+ 368 200 lineto
+ 366 198 lineto
+ 358 190 348 184 338 180 curveto
+ 338 182 lineto
+ 340 182 lineto
+ 334 180 328 180 322 180 curveto
+ 320 180 lineto
+ 316 176 lineto
+ 316 174 lineto
+ 314 172 lineto
+ 316 174 lineto
+ 316 168 lineto
+ 320 166 lineto
+ 322 164 lineto
+ 324 164 lineto
+ 326 166 lineto
+ 342 166 356 168 372 174 curveto
+ 370 172 lineto
+ 374 174 lineto
+ 390 180 406 186 418 198 curveto
+ 420 200 422 202 424 202 curveto
+ 426 204 lineto
+ 428 206 lineto
+ 440 218 448 232 454 248 curveto
+ 452 248 lineto
+ 454 250 lineto
+ 454 252 lineto
+ 458 262 460 272 460 282 curveto
+ 460 664 lineto
+ 458 668 lineto
+ 456 670 lineto
+ 452 672 lineto
+ 450 672 lineto
+ 450 670 lineto
+ 402 670 lineto
+ 404 672 lineto
+ 400 670 lineto
+ 398 668 lineto
+closepath
+%end path
+fill
+%new path
+ 398 624 moveto
+ 428 624 lineto
+ 428 672 lineto
+ 426 670 lineto
+ 300 670 lineto
+ 300 648 lineto
+ 302 648 lineto
+ 328 648 366 648 382 644 curveto
+ 386 642 388 640 392 638 curveto
+ 396 634 398 628 398 622 curveto
+closepath
+%end path
+fill
+%new path
+ 460 624 moveto
+ 460 632 462 638 466 644 curveto
+ 466 644 468 644 470 646 curveto
+ 478 650 500 650 516 650 curveto
+ 516 672 lineto
+ 514 670 lineto
+ 426 670 lineto
+ 426 622 lineto
+ 428 624 lineto
+ 460 624 lineto
+closepath
+%end path
+fill
+%new path
+ 330 176 moveto
+ 328 180 lineto
+ 324 180 lineto
+ 312 180 300 182 288 186 curveto
+ 290 184 lineto
+ 292 184 lineto
+ 276 190 262 198 252 210 curveto
+ 252 208 lineto
+ 250 210 lineto
+ 256 206 lineto
+ 256 206 lineto
+ 254 206 lineto
+ 244 216 238 228 234 240 curveto
+ 234 238 lineto
+ 236 236 lineto
+ 234 236 lineto
+ 232 246 230 254 230 264 curveto
+ 232 262 lineto
+ 230 266 lineto
+ 228 268 lineto
+ 224 270 lineto
+ 222 270 lineto
+ 222 268 lineto
+ 214 268 lineto
+ 216 270 lineto
+ 212 268 lineto
+ 210 266 lineto
+ 208 262 lineto
+ 208 260 lineto
+ 210 260 lineto
+ 210 250 212 242 214 234 curveto
+ 214 232 lineto
+ 216 230 lineto
+ 220 218 226 208 236 198 curveto
+ 234 200 lineto
+ 238 196 lineto
+ 250 184 264 176 282 172 curveto
+ 284 172 lineto
+ 284 170 lineto
+ 296 166 310 164 324 164 curveto
+ 324 164 lineto
+ 328 166 lineto
+ 330 168 lineto
+ 332 172 lineto
+ 332 174 lineto
+ 330 176 lineto
+closepath
+%end path
+fill
+%new path
+ 290 262 moveto
+ 288 264 lineto
+ 288 268 288 272 286 274 curveto
+ 288 274 lineto
+ 286 276 lineto
+ 286 278 lineto
+ 284 282 282 286 278 288 curveto
+ 280 288 lineto
+ 276 290 lineto
+ 276 292 lineto
+ 272 296 268 298 264 300 curveto
+ 264 298 lineto
+ 262 300 lineto
+ 260 300 lineto
+ 256 302 252 302 248 302 curveto
+ 248 302 lineto
+ 246 300 lineto
+ 244 300 240 300 236 298 curveto
+ 236 300 lineto
+ 234 298 lineto
+ 232 298 lineto
+ 228 296 224 294 220 290 curveto
+ 222 290 lineto
+ 218 288 lineto
+ 218 286 lineto
+ 214 284 212 280 210 276 curveto
+ 212 276 lineto
+ 210 274 lineto
+ 210 272 lineto
+ 208 270 208 266 208 262 curveto
+ 208 260 lineto
+ 210 258 lineto
+ 210 256 lineto
+ 214 248 218 240 220 232 curveto
+ 220 234 lineto
+ 222 230 lineto
+ 224 230 lineto
+ 226 226 230 224 234 222 curveto
+ 234 224 lineto
+ 236 222 lineto
+ 238 222 lineto
+ 242 220 246 220 248 220 curveto
+ 250 220 lineto
+ 250 222 lineto
+ 254 222 258 222 262 224 curveto
+ 262 222 lineto
+ 264 224 lineto
+ 266 224 lineto
+ 270 226 274 228 278 232 curveto
+ 276 232 lineto
+ 280 234 lineto
+ 280 236 lineto
+ 284 238 286 242 288 246 curveto
+ 286 246 lineto
+ 288 248 lineto
+ 288 250 lineto
+ 290 252 290 256 290 262 curveto
+ 290 262 lineto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_K
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 194 670 0.5 add moveto
+ 230 668 0.5 add 264 668 0.5 add 300 668 0.5 add curveto
+ 300 670 0.5 add lineto
+ 336 670 0.5 add 370 670 0.5 add 406 672 0.5 add curveto
+ 404 670 0.5 add lineto
+ 192 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 194 180 0.5 sub moveto
+ 404 180 0.5 sub lineto
+ 368 182 0.5 sub 334 182 0.5 sub 298 182 0.5 sub curveto
+ 298 180 0.5 sub lineto
+ 192 180 0.5 sub lineto
+closepath
+%end path
+%erase
+%new path
+ 538 670 0.5 add moveto
+ 572 668 0.5 add 604 668 0.5 add 636 668 0.5 add curveto
+ 636 670 0.5 add lineto
+ 654 670 0.5 add 672 670 0.5 add 690 672 0.5 add curveto
+ 688 670 0.5 add lineto
+ 536 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 516 180 0.5 sub moveto
+ 698 180 0.5 sub lineto
+ 672 182 0.5 sub 646 182 0.5 sub 620 182 0.5 sub curveto
+ 620 180 0.5 sub lineto
+ 514 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 268 668 moveto
+ 268 664 lineto
+ 266 664 lineto
+ 266 188 lineto
+ 268 188 lineto
+ 268 184 lineto
+ 272 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 274 670 lineto
+ 274 672 lineto
+ 272 670 lineto
+ 268 668 lineto
+closepath
+%end path
+fill
+%new path
+ 300 332 moveto
+ 416 442 532 554 650 664 curveto
+ 650 668 lineto
+ 648 668 lineto
+ 648 670 lineto
+ 646 672 646 672 644 672 curveto
+ 644 670 lineto
+ 636 670 lineto
+ 632 670 628 668 626 666 curveto
+ 516 562 408 458 298 354 curveto
+ 298 330 lineto
+closepath
+%end path
+fill
+%new path
+ 410 448 moveto
+ 470 358 530 270 590 182 curveto
+ 590 182 590 182 592 180 curveto
+ 654 180 lineto
+ 654 180 656 180 658 182 curveto
+ 658 186 lineto
+ 656 186 lineto
+ 656 188 lineto
+ 588 288 520 390 452 490 curveto
+ 452 488 lineto
+ 438 474 422 460 408 448 curveto
+closepath
+%end path
+fill
+%new path
+ 268 624 moveto
+ 300 624 lineto
+ 300 672 lineto
+ 298 670 lineto
+ 192 670 lineto
+ 192 648 lineto
+ 194 648 lineto
+ 214 648 244 648 256 644 curveto
+ 258 642 260 642 262 640 curveto
+ 266 636 268 628 268 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 630 334 638 338 642 curveto
+ 340 644 342 644 344 646 curveto
+ 356 650 386 650 406 650 curveto
+ 406 672 lineto
+ 404 670 lineto
+ 298 670 lineto
+ 298 622 lineto
+ 300 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 266 226 moveto
+ 266 220 264 212 260 208 curveto
+ 258 206 256 206 254 204 curveto
+ 242 200 212 200 192 200 curveto
+ 192 180 lineto
+ 300 180 lineto
+ 300 228 lineto
+ 298 226 lineto
+ 266 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 298 226 lineto
+ 298 180 lineto
+ 406 180 lineto
+ 406 202 lineto
+ 404 202 lineto
+ 384 202 354 202 342 206 curveto
+ 340 208 338 208 336 210 curveto
+ 332 214 330 222 330 228 curveto
+closepath
+%end path
+fill
+%new path
+ 560 604 moveto
+ 574 604 lineto
+ 594 626 616 650 636 672 curveto
+ 634 670 lineto
+ 536 670 lineto
+ 536 648 lineto
+ 538 648 lineto
+ 548 648 558 646 564 638 curveto
+ 566 638 568 636 570 632 curveto
+ 570 630 572 626 572 624 curveto
+ 570 624 lineto
+ 570 616 566 608 560 602 curveto
+ 558 602 lineto
+closepath
+%end path
+fill
+%new path
+ 690 650 moveto
+ 690 672 lineto
+ 688 670 lineto
+ 634 670 lineto
+ 614 648 592 624 572 602 curveto
+ 574 604 lineto
+ 586 604 lineto
+ 602 618 618 630 636 638 curveto
+ 654 646 672 650 690 650 curveto
+closepath
+%end path
+fill
+%new path
+ 546 246 moveto
+ 552 238 558 230 558 222 curveto
+ 556 222 lineto
+ 556 218 554 214 552 212 curveto
+ 552 210 552 210 550 208 curveto
+ 542 200 526 200 514 200 curveto
+ 514 180 lineto
+ 620 180 lineto
+ 608 202 594 226 580 248 curveto
+ 580 246 lineto
+ 544 246 lineto
+closepath
+%end path
+fill
+%new path
+ 616 246 moveto
+ 582 246 lineto
+ 596 224 610 200 622 180 curveto
+ 700 180 lineto
+ 700 202 lineto
+ 698 202 lineto
+ 682 202 664 202 650 210 curveto
+ 646 212 640 216 636 220 curveto
+ 628 228 622 238 616 248 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_L
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 194 670 0.5 add moveto
+ 230 668 0.5 add 264 668 0.5 add 300 668 0.5 add curveto
+ 300 670 0.5 add lineto
+ 342 670 0.5 add 384 670 0.5 add 424 672 0.5 add curveto
+ 422 670 0.5 add lineto
+ 192 670 0.5 add lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 268 668 moveto
+ 268 664 lineto
+ 266 664 lineto
+ 266 188 lineto
+ 268 188 lineto
+ 268 184 lineto
+ 272 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 274 670 lineto
+ 274 672 lineto
+ 272 670 lineto
+ 268 668 lineto
+closepath
+%end path
+fill
+%new path
+ 570 364 moveto
+ 566 318 560 268 528 236 curveto
+ 502 208 462 200 426 200 curveto
+ 298 200 lineto
+ 298 180 lineto
+ 570 180 lineto
+ 576 242 584 304 590 366 curveto
+ 588 364 lineto
+ 570 364 lineto
+closepath
+%end path
+fill
+%new path
+ 268 624 moveto
+ 300 624 lineto
+ 300 672 lineto
+ 298 670 lineto
+ 192 670 lineto
+ 192 648 lineto
+ 194 648 lineto
+ 214 648 244 648 256 644 curveto
+ 258 642 260 642 262 640 curveto
+ 266 636 268 628 268 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 630 334 636 338 640 curveto
+ 342 642 344 644 348 646 curveto
+ 362 650 398 650 424 650 curveto
+ 424 672 lineto
+ 422 670 lineto
+ 298 670 lineto
+ 298 622 lineto
+ 300 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 266 226 moveto
+ 266 220 264 212 260 208 curveto
+ 258 206 256 206 254 204 curveto
+ 242 200 212 200 192 200 curveto
+ 192 180 lineto
+ 300 180 lineto
+ 300 228 lineto
+ 298 226 lineto
+ 266 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 298 226 lineto
+ 298 180 lineto
+ 370 180 lineto
+ 370 202 lineto
+ 368 202 lineto
+ 356 202 342 202 336 206 curveto
+ 336 206 336 208 334 208 curveto
+ 330 212 330 220 330 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_M
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 198 180 0.5 sub moveto
+ 364 180 0.5 sub lineto
+ 336 182 0.5 sub 308 182 0.5 sub 280 182 0.5 sub curveto
+ 280 180 0.5 sub lineto
+ 196 180 0.5 sub lineto
+closepath
+%end path
+%erase
+%new path
+ 596 180 0.5 sub moveto
+ 800 180 0.5 sub lineto
+ 766 182 0.5 sub 732 182 0.5 sub 696 182 0.5 sub curveto
+ 696 180 0.5 sub lineto
+ 594 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 272 668 moveto
+ 272 664 lineto
+ 270 664 lineto
+ 270 188 lineto
+ 272 188 lineto
+ 272 184 lineto
+ 276 180 lineto
+ 288 180 lineto
+ 290 184 lineto
+ 292 186 lineto
+ 292 664 lineto
+ 290 668 lineto
+ 288 670 lineto
+ 284 672 lineto
+ 282 672 lineto
+ 282 670 lineto
+ 278 670 lineto
+ 278 672 lineto
+ 276 670 lineto
+ 272 668 lineto
+closepath
+%end path
+fill
+%new path
+ 670 668 moveto
+ 668 664 lineto
+ 668 186 lineto
+ 670 184 lineto
+ 672 180 lineto
+ 724 180 lineto
+ 726 184 lineto
+ 728 186 lineto
+ 728 664 lineto
+ 726 668 lineto
+ 724 670 lineto
+ 720 672 lineto
+ 718 672 lineto
+ 718 670 lineto
+ 674 670 lineto
+ 676 672 lineto
+ 672 670 lineto
+ 670 668 lineto
+closepath
+%end path
+fill
+%new path
+ 282 670 moveto
+ 344 508 406 348 468 186 curveto
+ 470 184 470 182 472 182 curveto
+ 474 180 478 180 480 180 curveto
+ 480 180 lineto
+ 482 180 486 182 488 184 curveto
+ 490 184 490 186 492 188 curveto
+ 554 350 616 510 678 672 curveto
+ 676 670 lineto
+ 668 670 lineto
+ 666 670 662 668 660 666 curveto
+ 658 666 658 664 656 662 curveto
+ 604 524 550 388 498 250 curveto
+ 498 252 lineto
+ 446 390 392 526 340 664 curveto
+ 338 666 338 668 336 668 curveto
+ 334 670 330 672 328 672 curveto
+ 328 670 lineto
+ 280 670 lineto
+closepath
+%end path
+fill
+%new path
+ 272 624 moveto
+ 282 624 lineto
+ 282 672 lineto
+ 280 670 lineto
+ 196 670 lineto
+ 196 648 lineto
+ 198 648 lineto
+ 218 648 248 648 260 644 curveto
+ 262 642 264 642 266 640 curveto
+ 270 636 272 628 272 622 curveto
+closepath
+%end path
+fill
+%new path
+ 270 246 moveto
+ 270 234 266 224 258 216 curveto
+ 256 214 254 214 252 212 curveto
+ 236 202 216 200 196 200 curveto
+ 196 180 lineto
+ 282 180 lineto
+ 282 248 lineto
+ 280 246 lineto
+ 270 246 lineto
+closepath
+%end path
+fill
+%new path
+ 290 246 moveto
+ 280 246 lineto
+ 280 180 lineto
+ 366 180 lineto
+ 366 202 lineto
+ 364 202 lineto
+ 344 202 324 204 308 214 curveto
+ 306 216 304 216 302 218 curveto
+ 294 226 290 236 290 248 curveto
+closepath
+%end path
+fill
+%new path
+ 728 624 moveto
+ 728 630 730 638 734 642 curveto
+ 736 644 738 644 740 646 curveto
+ 752 650 782 650 802 650 curveto
+ 802 672 lineto
+ 800 670 lineto
+ 696 670 lineto
+ 696 622 lineto
+ 698 624 lineto
+ 728 624 lineto
+closepath
+%end path
+fill
+%new path
+ 668 226 moveto
+ 668 220 666 212 662 208 curveto
+ 660 206 658 206 656 204 curveto
+ 644 200 614 200 594 200 curveto
+ 594 180 lineto
+ 698 180 lineto
+ 698 228 lineto
+ 696 226 lineto
+ 668 226 lineto
+closepath
+%end path
+fill
+%new path
+ 726 226 moveto
+ 696 226 lineto
+ 696 180 lineto
+ 802 180 lineto
+ 802 202 lineto
+ 800 202 lineto
+ 780 202 750 202 738 206 curveto
+ 736 208 734 208 732 210 curveto
+ 728 214 726 222 726 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_N
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 194 180 0.5 sub moveto
+ 360 180 0.5 sub lineto
+ 332 182 0.5 sub 304 182 0.5 sub 276 182 0.5 sub curveto
+ 276 180 0.5 sub lineto
+ 192 180 0.5 sub lineto
+closepath
+%end path
+%erase
+%new path
+ 518 670 0.5 add moveto
+ 546 668 0.5 add 574 668 0.5 add 602 668 0.5 add curveto
+ 602 670 0.5 add lineto
+ 630 670 0.5 add 658 670 0.5 add 686 672 0.5 add curveto
+ 684 670 0.5 add lineto
+ 516 670 0.5 add lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 268 668 moveto
+ 268 664 lineto
+ 266 664 lineto
+ 266 188 lineto
+ 268 188 lineto
+ 268 184 lineto
+ 272 180 lineto
+ 284 180 lineto
+ 286 184 lineto
+ 288 186 lineto
+ 288 664 lineto
+ 286 668 lineto
+ 284 670 lineto
+ 280 672 lineto
+ 278 672 lineto
+ 278 670 lineto
+ 274 670 lineto
+ 274 672 lineto
+ 272 670 lineto
+ 268 668 lineto
+closepath
+%end path
+fill
+%new path
+ 592 668 moveto
+ 590 664 lineto
+ 590 186 lineto
+ 592 184 lineto
+ 594 180 lineto
+ 608 180 lineto
+ 610 184 lineto
+ 612 186 lineto
+ 612 664 lineto
+ 610 668 lineto
+ 608 670 lineto
+ 604 672 lineto
+ 602 672 lineto
+ 602 670 lineto
+ 596 670 lineto
+ 598 672 lineto
+ 594 670 lineto
+ 592 668 lineto
+closepath
+%end path
+fill
+%new path
+ 268 662 moveto
+ 268 660 lineto
+ 270 658 lineto
+ 376 500 484 340 592 182 curveto
+ 592 184 lineto
+ 594 180 lineto
+ 602 180 lineto
+ 606 184 lineto
+ 606 186 lineto
+ 608 188 lineto
+ 608 262 lineto
+ 606 260 lineto
+ 606 266 lineto
+ 604 266 lineto
+ 514 400 422 534 332 668 curveto
+ 330 670 lineto
+ 326 672 lineto
+ 324 672 lineto
+ 324 670 lineto
+ 274 670 lineto
+ 274 672 lineto
+ 272 670 lineto
+ 268 668 lineto
+ 268 662 lineto
+closepath
+%end path
+fill
+%new path
+ 294 624 moveto
+ 326 624 lineto
+ 318 640 308 656 300 672 curveto
+ 300 670 lineto
+ 192 670 lineto
+ 192 648 lineto
+ 194 648 lineto
+ 218 648 248 648 266 644 curveto
+ 274 642 280 638 286 632 curveto
+ 288 628 292 626 294 622 curveto
+closepath
+%end path
+fill
+%new path
+ 266 246 moveto
+ 266 234 262 224 254 216 curveto
+ 252 214 250 214 248 212 curveto
+ 232 202 212 200 192 200 curveto
+ 192 180 lineto
+ 278 180 lineto
+ 278 248 lineto
+ 276 246 lineto
+ 266 246 lineto
+closepath
+%end path
+fill
+%new path
+ 286 246 moveto
+ 276 246 lineto
+ 276 180 lineto
+ 362 180 lineto
+ 362 202 lineto
+ 360 202 lineto
+ 340 202 320 204 304 214 curveto
+ 302 216 300 216 298 218 curveto
+ 290 226 286 236 286 248 curveto
+closepath
+%end path
+fill
+%new path
+ 592 604 moveto
+ 602 604 lineto
+ 602 672 lineto
+ 600 670 lineto
+ 516 670 lineto
+ 516 648 lineto
+ 518 648 lineto
+ 538 648 558 646 574 636 curveto
+ 576 634 578 634 580 632 curveto
+ 588 624 592 614 592 602 curveto
+closepath
+%end path
+fill
+%new path
+ 612 604 moveto
+ 612 616 616 626 624 634 curveto
+ 626 636 628 636 630 638 curveto
+ 646 648 666 650 686 650 curveto
+ 686 672 lineto
+ 684 670 lineto
+ 600 670 lineto
+ 600 602 lineto
+ 602 604 lineto
+ 612 604 lineto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_O
+(
+newpath
+%new path
+ 458 668 moveto
+ 418 668 382 650 356 624 curveto
+ 348 616 342 608 336 600 curveto
+ 302 552 292 492 292 434 curveto
+ 294 434 lineto
+ 294 370 304 306 338 252 curveto
+ 346 242 354 232 362 224 curveto
+ 388 198 422 180 460 180 curveto
+ 460 182 lineto
+ 498 182 532 200 558 226 curveto
+ 566 234 574 244 582 254 curveto
+ 616 308 626 372 626 436 curveto
+ 624 436 lineto
+ 624 494 614 554 580 602 curveto
+ 574 610 568 618 560 626 curveto
+ 534 652 498 670 458 670 curveto
+closepath
+%end path
+%new path
+ 458 686 moveto
+ 398 686 340 660 296 618 curveto
+ 294 614 290 612 288 608 curveto
+ 242 558 218 490 218 422 curveto
+ 220 422 lineto
+ 220 354 244 288 290 238 curveto
+ 292 236 294 234 298 232 curveto
+ 340 188 398 164 460 164 curveto
+ 460 166 lineto
+ 522 166 580 190 622 234 curveto
+ 626 236 628 238 630 240 curveto
+ 676 290 700 356 700 424 curveto
+ 698 424 lineto
+ 698 492 674 560 628 610 curveto
+ 626 614 622 616 620 620 curveto
+ 576 662 518 688 458 688 curveto
+closepath
+%end path
+eofill
+) def
+
+/The_letter_P
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 196 180 0.5 sub moveto
+ 406 180 0.5 sub lineto
+ 370 182 0.5 sub 336 182 0.5 sub 300 182 0.5 sub curveto
+ 300 180 0.5 sub lineto
+ 194 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 270 668 moveto
+ 270 664 lineto
+ 268 664 lineto
+ 268 188 lineto
+ 270 188 lineto
+ 270 184 lineto
+ 274 180 lineto
+ 330 180 lineto
+ 332 184 lineto
+ 334 186 lineto
+ 334 416 lineto
+ 332 420 lineto
+ 330 422 lineto
+ 326 424 lineto
+ 324 424 lineto
+ 324 422 lineto
+ 322 422 lineto
+ 322 424 lineto
+ 320 422 lineto
+ 316 420 lineto
+ 324 424 lineto
+ 330 420 lineto
+ 328 422 lineto
+ 324 424 lineto
+ 330 420 lineto
+ 332 416 lineto
+ 330 420 lineto
+ 332 416 lineto
+ 330 412 lineto
+ 332 414 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 276 670 lineto
+ 276 672 lineto
+ 274 670 lineto
+ 270 668 lineto
+closepath
+%end path
+fill
+%new path
+ 302 650 moveto
+ 432 650 lineto
+ 432 648 lineto
+ 464 648 498 640 522 618 curveto
+ 544 596 546 566 546 536 curveto
+ 544 536 lineto
+ 544 506 542 476 520 456 curveto
+ 520 454 lineto
+ 496 432 462 424 430 424 curveto
+ 300 424 lineto
+ 300 406 lineto
+ 302 408 lineto
+ 450 408 lineto
+ 494 408 536 418 570 446 curveto
+ 576 450 580 454 584 458 curveto
+ 606 480 620 508 620 538 curveto
+ 618 538 lineto
+ 618 570 604 598 582 622 curveto
+ 578 626 572 630 568 632 curveto
+ 534 660 492 672 448 672 curveto
+ 448 670 lineto
+ 300 670 lineto
+ 300 648 lineto
+closepath
+%end path
+fill
+%new path
+ 270 624 moveto
+ 302 624 lineto
+ 302 672 lineto
+ 300 670 lineto
+ 194 670 lineto
+ 194 648 lineto
+ 196 648 lineto
+ 216 648 246 648 258 644 curveto
+ 260 642 262 642 264 640 curveto
+ 268 636 270 628 270 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 632 332 640 336 644 curveto
+ 338 644 338 646 338 646 curveto
+ 344 650 358 650 370 650 curveto
+ 370 672 lineto
+ 368 670 lineto
+ 300 670 lineto
+ 300 622 lineto
+ 302 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 268 226 moveto
+ 268 220 266 212 262 208 curveto
+ 260 206 258 206 256 204 curveto
+ 244 200 214 200 194 200 curveto
+ 194 180 lineto
+ 302 180 lineto
+ 302 228 lineto
+ 300 226 lineto
+ 268 226 lineto
+closepath
+%end path
+fill
+%new path
+ 332 226 moveto
+ 300 226 lineto
+ 300 180 lineto
+ 408 180 lineto
+ 408 202 lineto
+ 406 202 lineto
+ 386 202 356 202 344 206 curveto
+ 342 208 340 208 338 210 curveto
+ 334 214 332 222 332 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_Q
+(
+newpath
+%new path
+ 458 668 moveto
+ 420 668 384 650 356 624 curveto
+ 348 616 342 606 334 598 curveto
+ 300 546 290 484 290 422 curveto
+ 292 422 lineto
+ 292 362 302 300 336 250 curveto
+ 344 240 350 232 358 226 curveto
+ 386 198 420 180 460 180 curveto
+ 460 182 lineto
+ 500 182 534 200 562 228 curveto
+ 570 234 576 242 584 252 curveto
+ 618 302 628 364 628 424 curveto
+ 626 424 lineto
+ 626 486 616 548 582 600 curveto
+ 574 608 568 618 560 626 curveto
+ 532 652 496 670 458 670 curveto
+closepath
+%end path
+%new path
+ 458 686 moveto
+ 398 686 340 660 296 618 curveto
+ 294 614 290 612 288 608 curveto
+ 242 558 218 490 218 422 curveto
+ 220 422 lineto
+ 220 354 244 288 290 238 curveto
+ 292 236 294 234 298 232 curveto
+ 340 188 398 164 460 164 curveto
+ 460 166 lineto
+ 522 166 580 190 622 234 curveto
+ 626 236 628 238 630 240 curveto
+ 676 290 700 356 700 424 curveto
+ 698 424 lineto
+ 698 492 674 560 628 610 curveto
+ 626 614 622 616 620 620 curveto
+ 576 662 518 688 458 688 curveto
+closepath
+%end path
+eofill
+%new path
+ 466 178 moveto
+ 464 180 lineto
+ 460 180 lineto
+ 454 180 448 182 444 184 curveto
+ 444 182 lineto
+ 446 182 lineto
+ 440 184 432 190 428 194 curveto
+ 426 194 lineto
+ 432 190 lineto
+ 432 190 lineto
+ 430 192 lineto
+ 424 198 420 204 418 212 curveto
+ 420 208 lineto
+ 418 210 lineto
+ 416 214 416 220 416 226 curveto
+ 418 226 lineto
+ 416 228 lineto
+ 418 226 lineto
+ 416 220 lineto
+ 418 224 lineto
+ 418 230 418 236 420 242 curveto
+ 420 240 lineto
+ 418 238 lineto
+ 420 238 lineto
+ 422 246 426 254 432 260 curveto
+ 432 258 lineto
+ 424 254 lineto
+ 426 254 lineto
+ 428 256 lineto
+ 430 256 lineto
+ 434 262 442 266 448 268 curveto
+ 444 266 lineto
+ 446 268 lineto
+ 450 270 456 270 462 270 curveto
+ 460 268 lineto
+ 464 270 lineto
+ 466 272 lineto
+ 458 268 lineto
+ 452 272 lineto
+ 456 270 lineto
+ 458 268 lineto
+ 460 268 lineto
+ 468 268 476 266 482 264 curveto
+ 480 266 lineto
+ 478 266 lineto
+ 488 262 494 258 500 252 curveto
+ 500 254 lineto
+ 502 252 lineto
+ 496 256 lineto
+ 496 256 lineto
+ 498 256 lineto
+ 506 246 514 232 518 218 curveto
+ 518 220 lineto
+ 516 222 lineto
+ 518 222 lineto
+ 530 184 532 138 544 100 curveto
+ 542 102 lineto
+ 544 98 lineto
+ 550 84 556 70 566 60 curveto
+ 564 62 lineto
+ 568 58 lineto
+ 574 52 582 48 590 44 curveto
+ 590 46 lineto
+ 592 44 lineto
+ 594 44 lineto
+ 600 42 608 40 616 40 curveto
+ 618 40 lineto
+ 618 42 lineto
+ 626 42 632 44 638 46 curveto
+ 638 44 lineto
+ 640 46 lineto
+ 642 46 lineto
+ 650 50 658 54 666 62 curveto
+ 664 60 lineto
+ 668 64 lineto
+ 678 74 686 90 692 106 curveto
+ 692 108 lineto
+ 694 110 lineto
+ 700 130 704 156 704 180 curveto
+ 702 184 lineto
+ 700 186 lineto
+ 696 188 lineto
+ 694 188 lineto
+ 694 186 lineto
+ 692 186 lineto
+ 694 188 lineto
+ 690 186 lineto
+ 688 184 lineto
+ 686 180 lineto
+ 686 172 684 164 682 158 curveto
+ 684 158 lineto
+ 684 160 lineto
+ 680 150 674 140 666 132 curveto
+ 666 132 lineto
+ 674 136 lineto
+ 670 136 lineto
+ 668 134 lineto
+ 660 126 650 120 640 116 curveto
+ 640 118 lineto
+ 642 118 lineto
+ 636 116 628 114 620 114 curveto
+ 618 114 lineto
+ 614 110 lineto
+ 622 114 lineto
+ 628 110 lineto
+ 626 114 lineto
+ 622 114 lineto
+ 622 116 lineto
+ 614 116 608 116 602 118 curveto
+ 606 116 lineto
+ 604 118 lineto
+ 594 122 588 126 580 132 curveto
+ 578 132 lineto
+ 584 128 lineto
+ 586 126 lineto
+ 584 128 lineto
+ 584 130 lineto
+ 550 164 542 230 510 264 curveto
+ 510 262 lineto
+ 508 266 lineto
+ 506 266 lineto
+ 500 274 492 278 482 282 curveto
+ 484 280 lineto
+ 480 282 lineto
+ 474 284 466 286 460 286 curveto
+ 458 286 lineto
+ 458 284 lineto
+ 452 284 446 284 442 282 curveto
+ 440 282 lineto
+ 438 280 lineto
+ 432 278 424 274 420 268 curveto
+ 420 270 lineto
+ 418 266 lineto
+ 416 266 lineto
+ 410 260 406 252 404 244 curveto
+ 404 242 lineto
+ 402 242 lineto
+ 400 236 400 230 400 224 curveto
+ 402 226 lineto
+ 402 222 lineto
+ 402 216 402 210 404 206 curveto
+ 404 204 lineto
+ 406 202 lineto
+ 408 194 412 188 418 182 curveto
+ 420 180 lineto
+ 422 180 lineto
+ 426 176 434 170 440 168 curveto
+ 440 170 lineto
+ 442 168 lineto
+ 444 168 lineto
+ 448 166 454 164 460 164 curveto
+ 458 166 lineto
+ 464 166 lineto
+ 466 170 lineto
+ 468 172 lineto
+ 468 174 lineto
+ 466 178 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_R
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 196 180 0.5 sub moveto
+ 404 180 0.5 sub lineto
+ 370 182 0.5 sub 334 182 0.5 sub 300 182 0.5 sub curveto
+ 300 180 0.5 sub lineto
+ 194 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 270 668 moveto
+ 270 664 lineto
+ 268 664 lineto
+ 268 188 lineto
+ 270 188 lineto
+ 270 184 lineto
+ 274 180 lineto
+ 328 180 lineto
+ 330 184 lineto
+ 332 186 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 276 670 lineto
+ 276 672 lineto
+ 274 670 lineto
+ 270 668 lineto
+closepath
+%end path
+fill
+%new path
+ 302 650 moveto
+ 410 650 lineto
+ 410 648 lineto
+ 446 648 482 642 508 618 curveto
+ 510 618 510 616 512 616 curveto
+ 532 596 536 568 536 540 curveto
+ 534 540 lineto
+ 534 512 530 484 510 466 curveto
+ 508 464 508 462 506 462 curveto
+ 480 438 444 432 408 432 curveto
+ 300 432 lineto
+ 300 416 lineto
+ 302 418 lineto
+ 420 418 lineto
+ 468 418 514 428 554 454 curveto
+ 564 460 572 466 578 474 curveto
+ 598 492 610 516 610 542 curveto
+ 608 542 lineto
+ 608 570 594 596 574 616 curveto
+ 568 622 560 628 552 634 curveto
+ 514 660 466 672 418 672 curveto
+ 418 670 lineto
+ 300 670 lineto
+ 300 648 lineto
+closepath
+%end path
+fill
+%new path
+ 412 430 moveto
+ 410 426 lineto
+ 410 424 lineto
+ 412 420 lineto
+ 414 418 lineto
+ 418 416 lineto
+ 430 416 440 414 450 410 curveto
+ 450 412 lineto
+ 448 412 lineto
+ 462 406 476 398 486 388 curveto
+ 486 390 lineto
+ 488 388 lineto
+ 482 392 lineto
+ 482 392 lineto
+ 484 392 lineto
+ 494 380 502 368 506 354 curveto
+ 506 356 lineto
+ 504 358 lineto
+ 506 358 lineto
+ 508 348 510 338 510 328 curveto
+ 510 330 lineto
+ 508 330 lineto
+ 508 266 lineto
+ 510 268 lineto
+ 510 264 lineto
+ 510 252 512 242 514 232 curveto
+ 514 230 lineto
+ 516 228 lineto
+ 520 216 526 206 536 196 curveto
+ 534 198 lineto
+ 538 194 lineto
+ 550 184 562 178 578 172 curveto
+ 576 174 lineto
+ 580 172 lineto
+ 596 166 614 164 632 164 curveto
+ 634 164 lineto
+ 634 166 lineto
+ 640 166 644 166 650 168 curveto
+ 652 168 lineto
+ 652 170 lineto
+ 660 172 666 176 672 180 curveto
+ 670 180 lineto
+ 674 182 lineto
+ 682 190 688 200 692 212 curveto
+ 690 210 lineto
+ 692 214 lineto
+ 696 224 698 236 698 246 curveto
+ 698 248 lineto
+ 696 250 lineto
+ 694 254 lineto
+ 682 254 lineto
+ 680 250 lineto
+ 678 248 lineto
+ 678 246 lineto
+ 678 236 676 224 672 214 curveto
+ 674 214 lineto
+ 674 216 lineto
+ 670 206 664 196 656 188 curveto
+ 658 188 lineto
+ 656 186 lineto
+ 656 184 lineto
+ 658 188 lineto
+ 666 192 lineto
+ 660 192 lineto
+ 660 190 lineto
+ 654 186 648 182 642 180 curveto
+ 646 182 lineto
+ 644 180 lineto
+ 628 180 lineto
+ 626 176 lineto
+ 634 180 lineto
+ 640 176 lineto
+ 636 180 lineto
+ 632 180 lineto
+ 626 180 622 180 618 182 curveto
+ 622 180 lineto
+ 620 182 lineto
+ 614 184 610 186 606 190 curveto
+ 604 190 lineto
+ 610 186 lineto
+ 610 186 lineto
+ 608 188 lineto
+ 602 194 596 204 592 216 curveto
+ 594 214 lineto
+ 594 212 lineto
+ 588 228 586 248 582 268 curveto
+ 582 268 572 332 572 332 curveto
+ 572 338 570 342 568 348 curveto
+ 570 346 lineto
+ 568 350 lineto
+ 562 364 554 378 544 388 curveto
+ 544 386 lineto
+ 542 390 lineto
+ 540 390 lineto
+ 526 406 508 416 486 422 curveto
+ 484 422 lineto
+ 484 424 lineto
+ 464 430 442 434 418 434 curveto
+ 418 434 lineto
+ 414 432 lineto
+ 412 430 lineto
+closepath
+%end path
+fill
+%new path
+ 270 624 moveto
+ 302 624 lineto
+ 302 672 lineto
+ 300 670 lineto
+ 194 670 lineto
+ 194 648 lineto
+ 196 648 lineto
+ 216 648 246 648 258 644 curveto
+ 260 642 262 642 264 640 curveto
+ 268 636 270 628 270 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 632 332 640 336 644 curveto
+ 338 644 338 646 338 646 curveto
+ 344 650 358 650 370 650 curveto
+ 370 672 lineto
+ 368 670 lineto
+ 300 670 lineto
+ 300 622 lineto
+ 302 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 268 226 moveto
+ 268 220 266 212 262 208 curveto
+ 260 206 258 206 256 204 curveto
+ 244 200 214 200 194 200 curveto
+ 194 180 lineto
+ 302 180 lineto
+ 302 228 lineto
+ 300 226 lineto
+ 268 226 lineto
+closepath
+%end path
+fill
+%new path
+ 330 226 moveto
+ 300 226 lineto
+ 300 180 lineto
+ 406 180 lineto
+ 406 202 lineto
+ 404 202 lineto
+ 384 202 354 202 342 206 curveto
+ 340 208 338 208 336 210 curveto
+ 332 214 330 222 330 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_S
+(
+newpath
+%new path
+ 360 688 moveto
+ 358 688 lineto
+ 356 686 lineto
+ 342 686 328 684 314 680 curveto
+ 312 680 lineto
+ 312 678 lineto
+ 292 672 274 660 260 646 curveto
+ 260 646 lineto
+ 258 646 lineto
+ 252 638 248 632 242 624 curveto
+ 244 626 lineto
+ 242 622 lineto
+ 240 622 lineto
+ 226 600 218 574 218 548 curveto
+ 220 550 lineto
+ 220 544 lineto
+ 220 518 228 492 242 472 curveto
+ 244 470 lineto
+ 244 468 lineto
+ 250 460 254 454 260 448 curveto
+ 262 446 lineto
+ 276 432 294 422 314 414 curveto
+ 312 416 lineto
+ 316 414 lineto
+ 320 412 324 412 328 410 curveto
+ 328 410 422 388 422 388 curveto
+ 424 386 426 386 428 386 curveto
+ 424 388 lineto
+ 426 386 lineto
+ 440 382 454 374 464 362 curveto
+ 464 364 lineto
+ 466 362 lineto
+ 462 364 lineto
+ 460 368 lineto
+ 462 364 lineto
+ 464 364 lineto
+ 468 358 472 354 476 348 curveto
+ 474 352 lineto
+ 474 350 lineto
+ 488 332 494 308 494 286 curveto
+ 492 286 lineto
+ 494 284 lineto
+ 492 286 lineto
+ 494 294 lineto
+ 492 290 lineto
+ 492 266 486 244 472 224 curveto
+ 474 226 lineto
+ 476 228 lineto
+ 474 228 lineto
+ 472 222 468 218 464 214 curveto
+ 464 214 462 212 462 212 curveto
+ 460 210 lineto
+ 460 206 lineto
+ 462 212 lineto
+ 468 214 lineto
+ 464 214 lineto
+ 462 212 lineto
+ 452 200 438 192 424 188 curveto
+ 428 190 lineto
+ 426 188 lineto
+ 418 186 408 184 398 184 curveto
+ 398 186 lineto
+ 396 184 lineto
+ 394 184 lineto
+ 392 180 lineto
+ 392 170 lineto
+ 394 166 lineto
+ 396 166 lineto
+ 398 164 lineto
+ 400 164 lineto
+ 402 166 lineto
+ 414 166 428 168 440 172 curveto
+ 442 172 lineto
+ 444 174 lineto
+ 462 180 480 188 494 204 curveto
+ 494 204 lineto
+ 496 204 lineto
+ 496 206 498 206 500 208 curveto
+ 504 214 510 220 514 226 curveto
+ 512 224 lineto
+ 514 228 lineto
+ 516 228 lineto
+ 532 254 540 282 540 312 curveto
+ 540 314 lineto
+ 538 316 lineto
+ 538 346 530 374 514 398 curveto
+ 512 400 lineto
+ 512 402 lineto
+ 506 410 500 416 494 422 curveto
+ 492 424 lineto
+ 478 438 462 448 442 456 curveto
+ 442 454 lineto
+ 440 456 lineto
+ 438 456 lineto
+ 436 458 432 458 428 460 curveto
+ 428 460 334 482 334 482 curveto
+ 332 484 330 484 328 484 curveto
+ 332 482 lineto
+ 330 484 lineto
+ 314 488 302 498 290 508 curveto
+ 288 508 lineto
+ 292 506 lineto
+ 294 504 lineto
+ 292 506 lineto
+ 292 508 lineto
+ 286 512 282 518 280 522 curveto
+ 282 518 lineto
+ 282 520 lineto
+ 270 536 264 556 264 576 curveto
+ 266 574 lineto
+ 264 578 lineto
+ 266 574 lineto
+ 264 568 lineto
+ 266 570 lineto
+ 266 572 lineto
+ 266 592 272 612 284 628 curveto
+ 282 628 lineto
+ 280 624 lineto
+ 282 626 lineto
+ 284 630 288 636 294 640 curveto
+ 292 640 lineto
+ 294 642 lineto
+ 294 646 lineto
+ 292 640 lineto
+ 286 638 lineto
+ 292 638 lineto
+ 292 640 lineto
+ 304 650 318 658 332 664 curveto
+ 332 662 lineto
+ 330 662 lineto
+ 340 666 350 668 360 668 curveto
+ 362 668 lineto
+ 364 670 lineto
+ 366 672 lineto
+ 366 682 lineto
+ 364 686 lineto
+ 362 686 lineto
+ 360 688 lineto
+closepath
+%end path
+fill
+%new path
+ 520 518 moveto
+ 518 520 lineto
+ 514 560 504 594 486 622 curveto
+ 486 620 lineto
+ 484 624 lineto
+ 478 632 472 640 466 646 curveto
+ 464 648 lineto
+ 450 662 434 672 414 680 curveto
+ 414 678 lineto
+ 412 680 lineto
+ 410 680 lineto
+ 394 686 378 688 358 688 curveto
+ 358 688 lineto
+ 354 686 lineto
+ 352 682 lineto
+ 350 682 lineto
+ 350 676 lineto
+ 352 676 lineto
+ 352 672 lineto
+ 354 670 lineto
+ 354 668 lineto
+ 358 668 lineto
+ 358 666 lineto
+ 378 666 394 664 410 658 curveto
+ 408 660 lineto
+ 406 660 lineto
+ 426 652 442 642 456 628 curveto
+ 456 630 lineto
+ 458 628 lineto
+ 454 630 lineto
+ 452 634 lineto
+ 454 630 lineto
+ 456 630 lineto
+ 462 624 468 616 472 608 curveto
+ 472 610 lineto
+ 470 612 lineto
+ 488 586 498 552 502 514 curveto
+ 500 514 lineto
+ 502 512 lineto
+ 504 510 lineto
+ 516 510 lineto
+ 518 512 lineto
+ 520 514 lineto
+ 520 518 lineto
+closepath
+%end path
+fill
+%new path
+ 404 184 moveto
+ 400 186 lineto
+ 374 186 350 190 330 196 curveto
+ 332 196 lineto
+ 334 194 lineto
+ 334 196 lineto
+ 310 204 290 216 274 230 curveto
+ 272 230 lineto
+ 276 228 lineto
+ 278 226 lineto
+ 276 228 lineto
+ 276 230 lineto
+ 270 236 264 242 258 250 curveto
+ 260 250 lineto
+ 262 246 lineto
+ 260 248 lineto
+ 244 272 236 302 236 338 curveto
+ 238 336 lineto
+ 236 340 lineto
+ 234 340 lineto
+ 232 342 lineto
+ 230 342 lineto
+ 228 340 lineto
+ 224 340 lineto
+ 226 342 lineto
+ 222 340 lineto
+ 220 336 lineto
+ 220 332 lineto
+ 220 294 230 260 246 236 curveto
+ 248 234 lineto
+ 248 232 lineto
+ 254 224 260 218 266 210 curveto
+ 264 212 lineto
+ 266 210 lineto
+ 284 194 304 182 328 176 curveto
+ 330 176 lineto
+ 330 174 lineto
+ 350 168 374 164 400 164 curveto
+ 400 164 lineto
+ 404 166 lineto
+ 406 170 lineto
+ 408 170 lineto
+ 408 178 lineto
+ 406 178 lineto
+ 406 180 lineto
+ 404 184 lineto
+closepath
+%end path
+fill
+%new path
+ 518 512 moveto
+ 520 514 lineto
+ 520 682 lineto
+ 518 686 lineto
+ 516 686 lineto
+ 514 688 lineto
+ 512 688 lineto
+ 510 686 lineto
+ 508 686 lineto
+ 508 688 lineto
+ 506 686 lineto
+ 504 686 lineto
+ 502 682 lineto
+ 490 662 478 642 466 624 curveto
+ 466 620 lineto
+ 468 618 lineto
+ 470 616 lineto
+ 472 614 472 612 474 610 curveto
+ 472 612 lineto
+ 470 614 lineto
+ 472 614 lineto
+ 490 586 500 552 504 514 curveto
+ 502 514 lineto
+ 504 512 lineto
+ 506 510 lineto
+ 516 510 lineto
+ 518 512 lineto
+closepath
+%end path
+fill
+%new path
+ 222 340 moveto
+ 220 336 lineto
+ 218 336 lineto
+ 218 172 lineto
+ 220 174 lineto
+ 220 170 lineto
+ 222 166 lineto
+ 226 164 lineto
+ 228 164 lineto
+ 228 166 lineto
+ 230 166 lineto
+ 230 164 lineto
+ 232 166 lineto
+ 234 166 lineto
+ 236 170 lineto
+ 248 188 260 208 272 226 curveto
+ 272 230 lineto
+ 270 232 lineto
+ 268 234 lineto
+ 264 238 260 242 258 248 curveto
+ 258 246 lineto
+ 260 244 lineto
+ 244 270 234 300 234 338 curveto
+ 236 336 lineto
+ 234 340 lineto
+ 232 340 lineto
+ 230 342 lineto
+ 228 342 lineto
+ 226 340 lineto
+ 224 340 lineto
+ 226 342 lineto
+ 222 340 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_T
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 304 180 0.5 sub moveto
+ 574 180 0.5 sub lineto
+ 530 182 0.5 sub 484 182 0.5 sub 438 182 0.5 sub curveto
+ 438 180 0.5 sub lineto
+ 302 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 408 664 moveto
+ 408 660 lineto
+ 406 660 lineto
+ 406 188 lineto
+ 408 188 lineto
+ 408 184 lineto
+ 412 180 lineto
+ 468 180 lineto
+ 470 184 lineto
+ 472 186 lineto
+ 472 660 lineto
+ 470 664 lineto
+ 468 666 lineto
+ 464 668 lineto
+ 462 668 lineto
+ 462 666 lineto
+ 414 666 lineto
+ 414 668 lineto
+ 412 666 lineto
+ 408 664 lineto
+closepath
+%end path
+fill
+%new path
+ 656 506 moveto
+ 672 506 lineto
+ 668 560 662 614 658 668 curveto
+ 658 666 lineto
+ 438 666 lineto
+ 438 644 lineto
+ 440 646 lineto
+ 542 646 lineto
+ 542 644 lineto
+ 572 644 606 640 628 618 curveto
+ 648 598 652 544 656 504 curveto
+closepath
+%end path
+fill
+%new path
+ 224 506 moveto
+ 228 546 232 600 252 620 curveto
+ 274 642 308 646 338 646 curveto
+ 440 646 lineto
+ 440 668 lineto
+ 438 666 lineto
+ 218 666 lineto
+ 214 612 208 558 204 504 curveto
+ 206 506 lineto
+ 224 506 lineto
+closepath
+%end path
+fill
+%new path
+ 406 226 moveto
+ 406 220 404 214 400 210 curveto
+ 396 208 392 206 388 204 curveto
+ 372 200 330 200 302 200 curveto
+ 302 180 lineto
+ 440 180 lineto
+ 440 228 lineto
+ 438 226 lineto
+ 406 226 lineto
+closepath
+%end path
+fill
+%new path
+ 470 226 moveto
+ 438 226 lineto
+ 438 180 lineto
+ 576 180 lineto
+ 576 202 lineto
+ 574 202 lineto
+ 546 202 504 202 488 206 curveto
+ 484 208 480 210 476 212 curveto
+ 472 216 470 222 470 228 curveto
+closepath
+%end path
+fill
+%new path
+ 408 620 moveto
+ 440 620 lineto
+ 440 668 lineto
+ 438 666 lineto
+ 370 666 lineto
+ 370 644 lineto
+ 372 644 lineto
+ 382 644 396 644 402 640 curveto
+ 402 640 402 638 404 638 curveto
+ 408 634 408 626 408 618 curveto
+closepath
+%end path
+fill
+%new path
+ 472 620 moveto
+ 472 628 472 636 476 640 curveto
+ 478 640 478 642 478 642 curveto
+ 484 646 498 646 510 646 curveto
+ 510 668 lineto
+ 508 666 lineto
+ 438 666 lineto
+ 438 618 lineto
+ 440 620 lineto
+ 472 620 lineto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_U
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 194 670 0.5 add moveto
+ 230 668 0.5 add 264 668 0.5 add 300 668 0.5 add curveto
+ 300 670 0.5 add lineto
+ 336 670 0.5 add 370 670 0.5 add 406 672 0.5 add curveto
+ 404 670 0.5 add lineto
+ 192 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 516 670 0.5 add moveto
+ 544 668 0.5 add 572 668 0.5 add 600 668 0.5 add curveto
+ 600 670 0.5 add lineto
+ 630 670 0.5 add 658 670 0.5 add 686 672 0.5 add curveto
+ 684 670 0.5 add lineto
+ 514 670 0.5 add lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 268 668 moveto
+ 268 664 lineto
+ 266 664 lineto
+ 266 344 lineto
+ 268 344 lineto
+ 268 340 lineto
+ 272 336 lineto
+ 328 336 lineto
+ 330 340 lineto
+ 332 342 lineto
+ 332 664 lineto
+ 330 668 lineto
+ 328 670 lineto
+ 324 672 lineto
+ 322 672 lineto
+ 322 670 lineto
+ 274 670 lineto
+ 274 672 lineto
+ 272 670 lineto
+ 268 668 lineto
+closepath
+%end path
+fill
+%new path
+ 324 352 moveto
+ 322 352 lineto
+ 322 350 lineto
+ 274 350 lineto
+ 274 352 lineto
+ 272 350 lineto
+ 268 348 lineto
+ 268 342 lineto
+ 268 322 272 304 276 288 curveto
+ 276 286 lineto
+ 278 284 lineto
+ 286 260 300 236 320 218 curveto
+ 318 218 lineto
+ 322 216 lineto
+ 322 214 lineto
+ 324 214 lineto
+ 342 194 366 180 390 174 curveto
+ 390 176 lineto
+ 392 174 lineto
+ 394 174 lineto
+ 412 168 430 164 450 164 curveto
+ 450 164 lineto
+ 452 166 lineto
+ 466 166 482 168 496 174 curveto
+ 494 172 lineto
+ 498 174 lineto
+ 520 180 540 192 556 208 curveto
+ 558 210 lineto
+ 560 212 lineto
+ 562 214 564 216 566 218 curveto
+ 582 236 594 258 602 280 curveto
+ 600 278 lineto
+ 602 282 lineto
+ 608 302 612 322 612 344 curveto
+ 612 664 lineto
+ 610 668 lineto
+ 608 670 lineto
+ 604 672 lineto
+ 602 672 lineto
+ 602 670 lineto
+ 594 670 lineto
+ 596 672 lineto
+ 592 670 lineto
+ 590 668 lineto
+ 588 664 lineto
+ 588 344 lineto
+ 588 322 584 302 578 282 curveto
+ 580 284 lineto
+ 580 286 lineto
+ 572 264 562 244 546 228 curveto
+ 544 226 542 224 540 222 curveto
+ 542 222 lineto
+ 540 220 lineto
+ 540 218 lineto
+ 542 222 lineto
+ 550 226 lineto
+ 544 226 lineto
+ 544 224 lineto
+ 528 208 508 198 488 190 curveto
+ 488 192 lineto
+ 490 192 lineto
+ 478 186 462 184 448 184 curveto
+ 448 186 lineto
+ 446 184 lineto
+ 442 182 lineto
+ 450 186 lineto
+ 456 182 lineto
+ 454 184 lineto
+ 450 186 lineto
+ 436 186 424 188 412 192 curveto
+ 414 190 lineto
+ 416 190 lineto
+ 398 196 382 206 368 220 curveto
+ 366 220 lineto
+ 372 216 lineto
+ 374 214 lineto
+ 372 216 lineto
+ 372 218 lineto
+ 368 222 364 226 360 230 curveto
+ 352 242 344 256 340 270 curveto
+ 340 268 lineto
+ 342 266 lineto
+ 340 266 lineto
+ 332 292 330 318 330 346 curveto
+ 332 344 lineto
+ 330 348 lineto
+ 328 350 lineto
+ 324 352 lineto
+closepath
+%end path
+fill
+%new path
+ 268 624 moveto
+ 300 624 lineto
+ 300 672 lineto
+ 298 670 lineto
+ 192 670 lineto
+ 192 648 lineto
+ 194 648 lineto
+ 214 648 244 648 256 644 curveto
+ 258 642 260 642 262 640 curveto
+ 266 636 268 628 268 622 curveto
+closepath
+%end path
+fill
+%new path
+ 332 624 moveto
+ 332 630 334 638 338 642 curveto
+ 340 644 342 644 344 646 curveto
+ 356 650 386 650 406 650 curveto
+ 406 672 lineto
+ 404 670 lineto
+ 298 670 lineto
+ 298 622 lineto
+ 300 624 lineto
+ 332 624 lineto
+closepath
+%end path
+fill
+%new path
+ 590 604 moveto
+ 600 604 lineto
+ 600 672 lineto
+ 598 670 lineto
+ 514 670 lineto
+ 514 648 lineto
+ 516 648 lineto
+ 536 648 556 646 572 636 curveto
+ 574 634 576 634 578 632 curveto
+ 586 624 590 614 590 602 curveto
+closepath
+%end path
+fill
+%new path
+ 612 604 moveto
+ 612 616 616 626 624 634 curveto
+ 626 636 628 636 630 638 curveto
+ 646 648 666 650 686 650 curveto
+ 686 672 lineto
+ 684 670 lineto
+ 598 670 lineto
+ 598 602 lineto
+ 600 604 lineto
+ 612 604 lineto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_V
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 184 670 0.5 add moveto
+ 212 668 0.5 add 242 668 0.5 add 272 668 0.5 add curveto
+ 272 670 0.5 add lineto
+ 308 670 0.5 add 342 670 0.5 add 378 672 0.5 add curveto
+ 376 670 0.5 add lineto
+ 182 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 544 670 0.5 add moveto
+ 572 668 0.5 add 602 668 0.5 add 630 668 0.5 add curveto
+ 630 670 0.5 add lineto
+ 652 670 0.5 add 674 670 0.5 add 696 672 0.5 add curveto
+ 694 670 0.5 add lineto
+ 542 670 0.5 add lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 462 252 moveto
+ 514 388 566 526 618 664 curveto
+ 618 666 620 668 620 668 curveto
+ 624 670 626 672 630 672 curveto
+ 636 672 lineto
+ 636 670 lineto
+ 638 670 640 670 640 668 curveto
+ 642 668 642 666 642 664 curveto
+ 640 664 lineto
+ 640 662 lineto
+ 578 498 516 334 452 172 curveto
+ 452 170 452 168 450 168 curveto
+ 448 166 444 164 442 164 curveto
+ 434 164 lineto
+ 434 166 lineto
+ 432 166 428 168 426 170 curveto
+ 424 170 424 172 424 174 curveto
+ 360 336 298 500 236 664 curveto
+ 236 666 lineto
+ 238 666 lineto
+ 238 668 238 670 240 670 curveto
+ 240 672 242 672 244 672 curveto
+ 294 672 lineto
+ 294 670 lineto
+ 296 670 300 668 302 666 curveto
+ 304 666 304 664 304 662 curveto
+ 358 524 410 386 462 250 curveto
+closepath
+%end path
+fill
+%new path
+ 254 624 moveto
+ 284 624 lineto
+ 280 640 274 656 270 672 curveto
+ 270 670 lineto
+ 182 670 lineto
+ 182 648 lineto
+ 184 648 lineto
+ 202 648 224 648 236 644 curveto
+ 238 642 242 640 244 638 curveto
+ 248 634 252 628 254 622 curveto
+closepath
+%end path
+fill
+%new path
+ 318 624 moveto
+ 318 628 lineto
+ 320 628 lineto
+ 320 632 320 636 324 640 curveto
+ 326 642 328 642 330 644 curveto
+ 344 650 362 650 378 650 curveto
+ 378 672 lineto
+ 376 670 lineto
+ 272 670 lineto
+ 276 654 282 638 286 622 curveto
+ 286 624 lineto
+ 320 624 lineto
+closepath
+%end path
+fill
+%new path
+ 596 604 moveto
+ 606 604 lineto
+ 614 626 622 650 630 672 curveto
+ 628 670 lineto
+ 542 670 lineto
+ 542 648 lineto
+ 544 648 lineto
+ 560 648 576 644 586 634 curveto
+ 588 634 lineto
+ 594 628 598 620 598 612 curveto
+ 596 612 lineto
+ 596 608 594 606 594 602 curveto
+closepath
+%end path
+fill
+%new path
+ 618 604 moveto
+ 622 614 628 622 634 628 curveto
+ 638 632 642 636 646 638 curveto
+ 662 648 680 650 696 650 curveto
+ 696 672 lineto
+ 694 670 lineto
+ 628 670 lineto
+ 620 648 612 624 604 602 curveto
+ 606 604 lineto
+ 618 604 lineto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_W
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 450 670 0.5 add moveto
+ 478 668 0.5 add 506 668 0.5 add 534 668 0.5 add curveto
+ 534 670 0.5 add lineto
+ 570 670 0.5 add 606 670 0.5 add 640 672 0.5 add curveto
+ 638 670 0.5 add lineto
+ 448 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 184 670 0.5 add moveto
+ 210 668 0.5 add 238 668 0.5 add 268 668 0.5 add curveto
+ 268 670 0.5 add lineto
+ 302 670 0.5 add 338 670 0.5 add 374 672 0.5 add curveto
+ 372 670 0.5 add lineto
+ 182 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 746 670 0.5 add moveto
+ 776 668 0.5 add 806 668 0.5 add 836 668 0.5 add curveto
+ 836 670 0.5 add lineto
+ 856 670 0.5 add 876 670 0.5 add 896 672 0.5 add curveto
+ 894 670 0.5 add lineto
+ 744 670 0.5 add lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 398 168 moveto
+ 400 166 402 164 406 164 curveto
+ 406 166 lineto
+ 408 166 lineto
+ 410 166 414 168 416 170 curveto
+ 416 170 418 172 418 174 curveto
+ 458 296 500 422 540 546 curveto
+ 540 544 lineto
+ 580 420 622 294 662 172 curveto
+ 662 170 664 168 664 168 curveto
+ 666 166 670 164 672 164 curveto
+ 672 166 lineto
+ 674 166 lineto
+ 678 166 680 168 682 170 curveto
+ 684 170 686 172 686 174 curveto
+ 740 336 792 500 846 664 curveto
+ 846 666 lineto
+ 844 666 lineto
+ 844 668 844 670 842 670 curveto
+ 842 672 840 672 838 672 curveto
+ 838 670 lineto
+ 836 670 lineto
+ 832 670 830 668 828 666 curveto
+ 826 666 826 664 824 662 curveto
+ 782 528 738 396 694 262 curveto
+ 694 264 lineto
+ 652 398 608 530 566 664 curveto
+ 564 666 564 668 562 668 curveto
+ 560 670 558 672 554 672 curveto
+ 554 670 lineto
+ 506 670 lineto
+ 504 670 502 670 502 668 curveto
+ 500 668 500 666 500 664 curveto
+ 502 664 lineto
+ 502 662 lineto
+ 512 632 520 604 530 574 curveto
+ 528 574 lineto
+ 494 470 462 366 428 262 curveto
+ 428 264 lineto
+ 384 398 340 530 298 664 curveto
+ 298 666 296 668 294 668 curveto
+ 292 670 290 672 286 672 curveto
+ 286 670 lineto
+ 238 670 lineto
+ 236 670 234 670 234 668 curveto
+ 232 668 232 666 232 664 curveto
+ 234 664 lineto
+ 234 662 lineto
+ 288 498 340 334 394 172 curveto
+ 394 170 396 168 398 168 curveto
+closepath
+%end path
+fill
+%new path
+ 562 668 moveto
+ 560 670 558 672 554 672 curveto
+ 554 670 lineto
+ 506 670 lineto
+ 504 670 502 670 502 668 curveto
+ 500 668 500 666 500 664 curveto
+ 502 664 lineto
+ 502 662 lineto
+ 528 580 556 498 582 416 curveto
+ 582 418 lineto
+ 644 418 lineto
+ 618 500 592 582 566 664 curveto
+ 564 666 564 668 562 668 curveto
+closepath
+%end path
+fill
+%new path
+ 514 624 moveto
+ 546 624 lineto
+ 542 640 536 656 532 672 curveto
+ 532 670 lineto
+ 448 670 lineto
+ 448 648 lineto
+ 450 648 lineto
+ 466 648 488 648 498 644 curveto
+ 502 642 504 640 506 638 curveto
+ 510 634 512 628 514 622 curveto
+closepath
+%end path
+fill
+%new path
+ 578 624 moveto
+ 578 628 lineto
+ 580 628 lineto
+ 580 632 582 636 584 640 curveto
+ 586 640 588 642 590 644 curveto
+ 606 650 624 650 640 650 curveto
+ 640 672 lineto
+ 638 670 lineto
+ 534 670 lineto
+ 538 654 544 638 548 622 curveto
+ 548 624 lineto
+ 580 624 lineto
+closepath
+%end path
+fill
+%new path
+ 248 624 moveto
+ 278 624 lineto
+ 274 640 270 656 266 672 curveto
+ 266 670 lineto
+ 182 670 lineto
+ 182 648 lineto
+ 184 648 lineto
+ 200 648 220 648 232 644 curveto
+ 234 642 236 640 238 638 curveto
+ 242 634 246 628 248 622 curveto
+closepath
+%end path
+fill
+%new path
+ 310 624 moveto
+ 310 628 lineto
+ 312 628 lineto
+ 312 632 314 636 316 640 curveto
+ 318 640 320 642 324 644 curveto
+ 338 650 356 650 374 650 curveto
+ 374 672 lineto
+ 372 670 lineto
+ 268 670 lineto
+ 272 654 276 638 280 622 curveto
+ 280 624 lineto
+ 312 624 lineto
+closepath
+%end path
+fill
+%new path
+ 808 604 moveto
+ 816 604 lineto
+ 824 626 830 650 836 672 curveto
+ 834 670 lineto
+ 744 670 lineto
+ 744 648 lineto
+ 746 648 lineto
+ 764 648 780 644 794 634 curveto
+ 796 634 798 632 798 630 curveto
+ 804 624 808 618 808 610 curveto
+ 806 610 lineto
+ 806 602 lineto
+closepath
+%end path
+fill
+%new path
+ 826 604 moveto
+ 830 614 834 624 842 632 curveto
+ 844 634 848 636 852 638 curveto
+ 864 648 880 650 896 650 curveto
+ 896 672 lineto
+ 894 670 lineto
+ 834 670 lineto
+ 828 648 822 624 814 602 curveto
+ 816 604 lineto
+ 826 604 lineto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_X
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 196 670 0.5 add moveto
+ 226 668 0.5 add 256 668 0.5 add 286 668 0.5 add curveto
+ 286 670 0.5 add lineto
+ 322 670 0.5 add 360 670 0.5 add 396 672 0.5 add curveto
+ 394 670 0.5 add lineto
+ 194 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 494 180 0.5 sub moveto
+ 692 180 0.5 sub lineto
+ 662 182 0.5 sub 632 182 0.5 sub 602 182 0.5 sub curveto
+ 602 180 0.5 sub lineto
+ 492 180 0.5 sub lineto
+closepath
+%end path
+%erase
+%new path
+ 492 670 0.5 add moveto
+ 522 668 0.5 add 554 668 0.5 add 586 668 0.5 add curveto
+ 586 670 0.5 add lineto
+ 612 670 0.5 add 638 670 0.5 add 662 672 0.5 add curveto
+ 660 670 0.5 add lineto
+ 490 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 188 180 0.5 sub moveto
+ 356 180 0.5 sub lineto
+ 326 182 0.5 sub 294 182 0.5 sub 262 182 0.5 sub curveto
+ 262 180 0.5 sub lineto
+ 186 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 318 670 moveto
+ 316 672 314 672 310 672 curveto
+ 310 670 lineto
+ 254 670 lineto
+ 252 670 250 670 250 668 curveto
+ 248 668 248 666 248 664 curveto
+ 250 664 lineto
+ 250 662 lineto
+ 358 502 464 342 570 182 curveto
+ 570 180 lineto
+ 634 180 lineto
+ 636 180 638 180 638 182 curveto
+ 640 182 640 184 640 186 curveto
+ 638 186 lineto
+ 638 188 lineto
+ 530 348 424 508 318 668 curveto
+ 318 670 lineto
+closepath
+%end path
+fill
+%new path
+ 248 180 moveto
+ 262 180 lineto
+ 266 180 272 182 274 186 curveto
+ 276 186 276 188 276 188 curveto
+ 386 348 494 508 602 668 curveto
+ 602 670 lineto
+ 600 670 lineto
+ 600 672 lineto
+ 598 672 lineto
+ 598 670 lineto
+ 586 670 lineto
+ 582 670 576 668 574 664 curveto
+ 572 664 572 662 572 662 curveto
+ 462 502 354 342 246 182 curveto
+ 246 180 lineto
+closepath
+%end path
+fill
+%new path
+ 278 624 moveto
+ 312 624 lineto
+ 302 640 294 656 284 672 curveto
+ 284 670 lineto
+ 194 670 lineto
+ 194 648 lineto
+ 196 648 lineto
+ 216 648 240 648 252 644 curveto
+ 258 642 264 638 268 634 curveto
+ 272 630 274 626 278 622 curveto
+closepath
+%end path
+fill
+%new path
+ 348 624 moveto
+ 346 626 346 626 346 628 curveto
+ 348 628 lineto
+ 348 630 350 634 352 636 curveto
+ 354 638 356 640 358 642 curveto
+ 370 648 382 650 396 650 curveto
+ 396 672 lineto
+ 394 670 lineto
+ 286 670 lineto
+ 296 654 304 638 314 622 curveto
+ 314 624 lineto
+ 350 624 lineto
+closepath
+%end path
+fill
+%new path
+ 540 226 moveto
+ 542 224 542 224 542 222 curveto
+ 540 222 lineto
+ 540 220 538 216 536 214 curveto
+ 534 212 532 210 530 208 curveto
+ 518 202 506 200 492 200 curveto
+ 492 180 lineto
+ 602 180 lineto
+ 592 196 584 212 574 228 curveto
+ 574 226 lineto
+ 538 226 lineto
+closepath
+%end path
+fill
+%new path
+ 610 226 moveto
+ 576 226 lineto
+ 586 210 594 194 604 180 curveto
+ 694 180 lineto
+ 694 202 lineto
+ 692 202 lineto
+ 672 202 648 202 636 206 curveto
+ 630 208 624 212 620 216 curveto
+ 616 220 614 224 610 228 curveto
+closepath
+%end path
+fill
+%new path
+ 532 604 moveto
+ 546 604 lineto
+ 560 626 572 650 586 672 curveto
+ 584 670 lineto
+ 490 670 lineto
+ 490 648 lineto
+ 492 648 lineto
+ 504 648 518 644 528 634 curveto
+ 528 632 lineto
+ 534 628 536 622 536 614 curveto
+ 534 614 lineto
+ 534 610 532 606 530 602 curveto
+closepath
+%end path
+fill
+%new path
+ 558 604 moveto
+ 562 610 566 614 570 618 curveto
+ 580 626 590 634 600 638 curveto
+ 620 648 642 650 662 650 curveto
+ 662 672 lineto
+ 660 670 lineto
+ 584 670 lineto
+ 570 648 558 624 544 602 curveto
+ 546 604 lineto
+ 558 604 lineto
+closepath
+%end path
+fill
+%new path
+ 290 246 moveto
+ 286 240 282 236 278 232 curveto
+ 268 224 258 216 248 212 curveto
+ 228 202 206 200 186 200 curveto
+ 186 180 lineto
+ 264 180 lineto
+ 278 202 290 226 304 248 curveto
+ 302 246 lineto
+ 290 246 lineto
+closepath
+%end path
+fill
+%new path
+ 316 246 moveto
+ 302 246 lineto
+ 288 224 276 200 262 180 curveto
+ 358 180 lineto
+ 358 202 lineto
+ 356 202 lineto
+ 344 202 330 206 320 216 curveto
+ 320 218 lineto
+ 314 222 312 228 312 236 curveto
+ 314 236 lineto
+ 314 240 316 244 318 248 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_Y
+(
+gsave
+initclip
+newpath
+0 0 moveto
+0 1000 lineto
+1000 1000 lineto
+1000 0 lineto
+0 0 lineto
+%new path
+ 180 670 0.5 add moveto
+ 208 668 0.5 add 238 668 0.5 add 268 668 0.5 add curveto
+ 268 670 0.5 add lineto
+ 306 670 0.5 add 342 670 0.5 add 378 672 0.5 add curveto
+ 376 670 0.5 add lineto
+ 178 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 550 670 0.5 add moveto
+ 578 668 0.5 add 606 668 0.5 add 634 668 0.5 add curveto
+ 634 670 0.5 add lineto
+ 658 670 0.5 add 680 670 0.5 add 702 672 0.5 add curveto
+ 700 670 0.5 add lineto
+ 548 670 0.5 add lineto
+closepath
+%end path
+%erase
+%new path
+ 334 180 0.5 sub moveto
+ 542 180 0.5 sub lineto
+ 508 182 0.5 sub 472 182 0.5 sub 438 182 0.5 sub curveto
+ 438 180 0.5 sub lineto
+ 332 180 0.5 sub lineto
+closepath
+%end path
+%erase
+eoclip
+newpath
+%new path
+ 462 406 moveto
+ 516 492 568 578 622 664 curveto
+ 622 666 624 666 624 668 curveto
+ 628 670 632 672 636 672 curveto
+ 644 672 lineto
+ 644 670 lineto
+ 644 670 646 670 646 668 curveto
+ 648 668 648 666 648 664 curveto
+ 646 664 lineto
+ 646 662 lineto
+ 586 566 528 470 468 374 curveto
+ 468 186 lineto
+ 468 184 468 182 466 180 curveto
+ 414 180 lineto
+ 412 180 410 180 408 182 curveto
+ 406 184 406 186 406 188 curveto
+ 408 188 lineto
+ 408 376 lineto
+ 406 376 lineto
+ 348 472 288 568 230 664 curveto
+ 230 666 lineto
+ 232 666 lineto
+ 232 668 232 670 234 670 curveto
+ 234 672 236 672 236 672 curveto
+ 290 672 lineto
+ 290 670 lineto
+ 296 670 300 668 302 666 curveto
+ 304 664 304 664 306 662 curveto
+ 358 576 410 490 462 404 curveto
+closepath
+%end path
+fill
+%new path
+ 256 624 moveto
+ 292 624 lineto
+ 284 640 274 656 266 672 curveto
+ 266 670 lineto
+ 178 670 lineto
+ 178 648 lineto
+ 180 648 lineto
+ 196 648 220 648 234 644 curveto
+ 238 642 244 638 248 634 curveto
+ 250 630 254 626 256 622 curveto
+closepath
+%end path
+fill
+%new path
+ 328 624 moveto
+ 326 626 326 630 326 632 curveto
+ 328 632 lineto
+ 328 636 328 640 330 642 curveto
+ 332 642 332 642 334 644 curveto
+ 346 650 362 650 378 650 curveto
+ 378 672 lineto
+ 376 670 lineto
+ 268 670 lineto
+ 276 654 286 638 294 622 curveto
+ 294 624 lineto
+ 330 624 lineto
+closepath
+%end path
+fill
+%new path
+ 584 604 moveto
+ 598 604 lineto
+ 610 626 622 650 634 672 curveto
+ 632 670 lineto
+ 548 670 lineto
+ 548 648 lineto
+ 550 648 lineto
+ 562 648 574 646 582 638 curveto
+ 584 636 584 636 586 634 curveto
+ 588 630 590 626 590 620 curveto
+ 588 620 lineto
+ 588 614 586 608 582 602 curveto
+closepath
+%end path
+fill
+%new path
+ 610 604 moveto
+ 614 610 620 616 624 622 curveto
+ 632 628 638 634 648 638 curveto
+ 664 646 682 650 702 650 curveto
+ 702 672 lineto
+ 700 670 lineto
+ 632 670 lineto
+ 620 648 608 624 596 602 curveto
+ 598 604 lineto
+ 610 604 lineto
+closepath
+%end path
+fill
+%new path
+ 406 226 moveto
+ 406 220 404 212 400 208 curveto
+ 398 206 396 206 394 204 curveto
+ 382 200 352 200 332 200 curveto
+ 332 180 lineto
+ 440 180 lineto
+ 440 228 lineto
+ 438 226 lineto
+ 406 226 lineto
+closepath
+%end path
+fill
+%new path
+ 468 226 moveto
+ 438 226 lineto
+ 438 180 lineto
+ 544 180 lineto
+ 544 202 lineto
+ 542 202 lineto
+ 522 202 492 202 480 206 curveto
+ 478 208 476 208 474 210 curveto
+ 470 214 468 222 468 228 curveto
+closepath
+%end path
+fill
+grestore
+) def
+
+/The_letter_Z
+(
+newpath
+%new path
+ 512 670 moveto
+ 514 666 514 662 514 660 curveto
+ 512 660 lineto
+ 512 660 220 198 220 198 curveto
+ 218 196 218 196 218 194 curveto
+ 218 186 lineto
+ 220 186 lineto
+ 220 184 220 182 222 180 curveto
+ 286 180 lineto
+ 284 184 284 188 284 192 curveto
+ 286 192 lineto
+ 286 192 578 654 580 654 curveto
+ 580 664 lineto
+ 578 664 lineto
+ 578 666 578 668 576 670 curveto
+ 574 672 572 672 570 672 curveto
+ 570 670 lineto
+ 510 670 lineto
+closepath
+%end path
+fill
+%new path
+ 248 510 moveto
+ 250 548 256 590 284 616 curveto
+ 284 618 286 618 286 618 curveto
+ 316 646 360 650 400 650 curveto
+ 546 650 lineto
+ 546 672 lineto
+ 544 670 lineto
+ 236 670 lineto
+ 234 616 230 562 228 508 curveto
+ 230 510 lineto
+ 248 510 lineto
+closepath
+%end path
+fill
+%new path
+ 564 370 moveto
+ 562 322 558 268 526 236 curveto
+ 494 206 446 202 402 202 curveto
+ 252 202 lineto
+ 252 180 lineto
+ 572 180 lineto
+ 576 244 580 308 584 372 curveto
+ 582 370 lineto
+ 564 370 lineto
+closepath
+%end path
+fill
+) def
+
+end % of CharDefs dictionary
+
+Encoding 65 /The_letter_A put
+Encoding 66 /The_letter_B put
+Encoding 67 /The_letter_C put
+Encoding 68 /The_letter_D put
+Encoding 69 /The_letter_E put
+Encoding 70 /The_letter_F put
+Encoding 71 /The_letter_G put
+Encoding 72 /The_letter_H put
+Encoding 73 /The_letter_I put
+Encoding 74 /The_letter_J put
+Encoding 75 /The_letter_K put
+Encoding 76 /The_letter_L put
+Encoding 77 /The_letter_M put
+Encoding 78 /The_letter_N put
+Encoding 79 /The_letter_O put
+Encoding 80 /The_letter_P put
+Encoding 81 /The_letter_Q put
+Encoding 82 /The_letter_R put
+Encoding 83 /The_letter_S put
+Encoding 84 /The_letter_T put
+Encoding 85 /The_letter_U put
+Encoding 86 /The_letter_V put
+Encoding 87 /The_letter_W put
+Encoding 88 /The_letter_X put
+Encoding 89 /The_letter_Y put
+Encoding 90 /The_letter_Z put
+
+Metrics
+ begin
+/The_letter_A 509 fudge add def
+/The_letter_B 463 fudge add def
+/The_letter_C 483 fudge add def
+/The_letter_D 503 fudge add def
+/The_letter_E 463 fudge add def
+/The_letter_F 433 fudge add def
+/The_letter_G 535 fudge add def
+/The_letter_H 509 fudge add def
+/The_letter_I 233 fudge add def
+/The_letter_J 339 fudge add def
+/The_letter_K 523 fudge add def
+/The_letter_L 413 fudge add def
+/The_letter_M 625 fudge add def
+/The_letter_N 509 fudge add def
+/The_letter_O 523 fudge add def
+/The_letter_P 443 fudge add def
+/The_letter_Q 527 fudge add def
+/The_letter_R 521 fudge add def
+/The_letter_S 363 fudge add def
+/The_letter_T 497 fudge add def
+/The_letter_U 509 fudge add def
+/The_letter_V 519 fudge add def
+/The_letter_W 719 fudge add def
+/The_letter_X 517 fudge add def
+/The_letter_Y 525 fudge add def
+/The_letter_Z 407 fudge add def
+/.notdef 450 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.5 1.5 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -178 fudge add 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [178 fudge sub 40 896 696] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 7 scalefont setfont
+ 100 710 moveto (THIS IS CMR SEVEN POINTS WRITTEN IN POSTSCRIPT) show
+ /Simon findfont 10 scalefont setfont
+ 100 698 moveto (THIS IS CMR TEN POINTS WRITTEN IN POSTSCRIPT) show
+ /Simon findfont 12 scalefont setfont
+ 100 686 moveto (THIS IS CMR TWELVE POINTS WRITTEN IN POSTSCRIPT) show
+ showpage
diff --git a/fonts/utilities/mf2ps/doc/printsamples/cmtt.ps b/fonts/utilities/mf2ps/doc/printsamples/cmtt.ps
new file mode 100644
index 0000000000..de9f6624d3
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/cmtt.ps
@@ -0,0 +1,6993 @@
+%! Simon font
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 80 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.000895 0 0 0.000895 0 0] def
+% /FontMatrix [0.001 0 0 0.001 0 0] def
+
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/The_letter_A
+(
+newpath
+%new path
+ 370 568 moveto
+ 370 542 422 322 450 198 curveto
+ 450 194 454 188 456 186 curveto
+ 462 180 468 180 476 180 curveto
+ 486 180 lineto
+ 490 180 494 182 496 184 curveto
+ 500 188 502 192 502 196 curveto
+ 500 196 lineto
+ 500 200 lineto
+ 468 336 436 474 404 610 curveto
+ 404 614 400 620 398 622 curveto
+ 392 628 386 630 380 630 curveto
+ 380 628 lineto
+ 354 628 lineto
+ 348 628 342 626 336 620 curveto
+ 334 618 330 612 330 608 curveto
+ 298 472 266 334 234 198 curveto
+ 234 194 lineto
+ 236 194 lineto
+ 236 190 238 186 242 182 curveto
+ 244 180 248 180 252 180 curveto
+ 262 180 lineto
+ 270 180 276 182 282 188 curveto
+ 284 190 288 196 288 200 curveto
+ 316 324 368 544 368 570 curveto
+ 370 570 lineto
+closepath
+%end path
+fill
+%new path
+ 286 298 moveto
+ 450 298 lineto
+ 448 314 444 328 440 342 curveto
+ 440 340 lineto
+ 294 340 lineto
+ 290 326 286 312 284 296 curveto
+closepath
+%end path
+fill
+%new path
+ 202 216 moveto
+ 200 212 lineto
+ 198 206 lineto
+ 198 196 lineto
+ 200 190 lineto
+ 202 186 lineto
+ 206 182 lineto
+ 210 180 lineto
+ 270 180 lineto
+ 274 182 lineto
+ 278 186 lineto
+ 280 190 lineto
+ 282 196 lineto
+ 282 198 284 200 284 202 curveto
+ 282 200 lineto
+ 282 206 lineto
+ 280 212 lineto
+ 278 216 lineto
+ 274 220 lineto
+ 272 222 lineto
+ 266 224 lineto
+ 260 224 lineto
+ 258 222 lineto
+ 214 222 lineto
+ 216 224 lineto
+ 210 222 lineto
+ 206 220 lineto
+ 202 216 lineto
+closepath
+%end path
+fill
+%new path
+ 246 216 moveto
+ 244 212 lineto
+ 242 206 lineto
+ 242 204 240 202 240 200 curveto
+ 242 202 lineto
+ 242 196 lineto
+ 244 190 lineto
+ 246 186 lineto
+ 250 182 lineto
+ 252 180 lineto
+ 322 180 lineto
+ 326 182 lineto
+ 330 186 lineto
+ 332 190 lineto
+ 334 196 lineto
+ 334 206 lineto
+ 332 212 lineto
+ 330 216 lineto
+ 326 220 lineto
+ 322 222 lineto
+ 316 224 lineto
+ 310 224 lineto
+ 310 222 lineto
+ 258 222 lineto
+ 260 224 lineto
+ 254 222 lineto
+ 250 220 lineto
+ 246 216 lineto
+closepath
+%end path
+fill
+%new path
+ 406 216 moveto
+ 404 212 lineto
+ 402 206 lineto
+ 402 196 lineto
+ 404 190 lineto
+ 406 186 lineto
+ 410 182 lineto
+ 414 180 lineto
+ 484 180 lineto
+ 486 182 lineto
+ 490 186 lineto
+ 492 190 lineto
+ 494 196 lineto
+ 494 202 lineto
+ 494 204 492 206 492 208 curveto
+ 494 206 lineto
+ 492 212 lineto
+ 490 216 lineto
+ 486 220 lineto
+ 482 222 lineto
+ 476 224 lineto
+ 470 224 lineto
+ 470 222 lineto
+ 418 222 lineto
+ 420 224 lineto
+ 414 222 lineto
+ 410 220 lineto
+ 406 216 lineto
+closepath
+%end path
+fill
+%new path
+ 458 216 moveto
+ 456 212 lineto
+ 454 206 lineto
+ 454 200 lineto
+ 454 198 456 196 456 194 curveto
+ 454 196 lineto
+ 456 190 lineto
+ 458 186 lineto
+ 462 182 lineto
+ 466 180 lineto
+ 526 180 lineto
+ 530 182 lineto
+ 534 186 lineto
+ 536 190 lineto
+ 538 196 lineto
+ 538 206 lineto
+ 536 212 lineto
+ 534 216 lineto
+ 530 220 lineto
+ 526 222 lineto
+ 520 224 lineto
+ 514 224 lineto
+ 514 222 lineto
+ 470 222 lineto
+ 470 224 lineto
+ 464 222 lineto
+ 462 220 lineto
+ 458 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_B
+(
+newpath
+%new path
+ 250 612 moveto
+ 248 608 lineto
+ 246 602 lineto
+ 244 602 lineto
+ 244 202 lineto
+ 246 202 lineto
+ 246 196 lineto
+ 248 190 lineto
+ 250 188 lineto
+ 254 184 lineto
+ 256 182 lineto
+ 262 180 lineto
+ 278 180 lineto
+ 284 182 lineto
+ 288 184 lineto
+ 292 188 lineto
+ 294 190 lineto
+ 296 196 lineto
+ 296 602 lineto
+ 294 608 lineto
+ 292 612 lineto
+ 288 616 lineto
+ 284 618 lineto
+ 278 620 lineto
+ 272 620 lineto
+ 272 618 lineto
+ 262 618 lineto
+ 262 620 lineto
+ 256 618 lineto
+ 254 616 lineto
+ 250 612 lineto
+closepath
+%end path
+fill
+%new path
+ 272 576 moveto
+ 392 576 lineto
+ 392 574 lineto
+ 410 574 428 566 442 554 curveto
+ 454 540 462 524 462 506 curveto
+ 460 506 lineto
+ 460 486 452 468 438 454 curveto
+ 438 454 436 452 436 452 curveto
+ 418 436 396 428 374 428 curveto
+ 270 428 lineto
+ 270 402 lineto
+ 272 404 lineto
+ 392 404 lineto
+ 422 404 454 414 476 434 curveto
+ 478 436 480 438 482 440 curveto
+ 500 458 512 482 512 508 curveto
+ 510 508 lineto
+ 510 536 498 564 478 584 curveto
+ 476 586 476 586 474 588 curveto
+ 452 608 422 620 390 620 curveto
+ 390 618 lineto
+ 270 618 lineto
+ 270 574 lineto
+closepath
+%end path
+fill
+%new path
+ 272 386 moveto
+ 400 386 lineto
+ 400 384 lineto
+ 420 384 438 376 452 362 curveto
+ 454 362 454 360 454 360 curveto
+ 470 344 478 322 478 300 curveto
+ 476 300 lineto
+ 476 280 468 262 454 248 curveto
+ 452 246 452 246 450 244 curveto
+ 434 230 412 222 390 222 curveto
+ 270 222 lineto
+ 270 180 lineto
+ 406 180 lineto
+ 440 180 470 192 492 216 curveto
+ 516 238 528 270 528 302 curveto
+ 526 302 lineto
+ 526 330 514 358 494 378 curveto
+ 492 380 492 380 490 382 curveto
+ 468 402 436 414 404 414 curveto
+ 404 412 lineto
+ 270 412 lineto
+ 270 384 lineto
+closepath
+%end path
+fill
+%new path
+ 286 584 moveto
+ 288 586 lineto
+ 290 592 lineto
+ 292 594 lineto
+ 292 598 lineto
+ 290 596 lineto
+ 290 602 lineto
+ 288 608 lineto
+ 286 612 lineto
+ 282 616 lineto
+ 280 618 lineto
+ 274 620 lineto
+ 268 620 lineto
+ 266 618 lineto
+ 212 618 lineto
+ 214 620 lineto
+ 208 618 lineto
+ 204 616 lineto
+ 200 612 lineto
+ 198 608 lineto
+ 196 602 lineto
+ 196 592 lineto
+ 198 586 lineto
+ 200 584 lineto
+ 204 580 lineto
+ 208 578 lineto
+ 214 576 lineto
+ 274 576 lineto
+ 280 578 lineto
+ 282 580 lineto
+ 286 584 lineto
+closepath
+%end path
+fill
+%new path
+ 316 584 moveto
+ 318 586 lineto
+ 320 592 lineto
+ 320 602 lineto
+ 318 608 lineto
+ 316 612 lineto
+ 312 616 lineto
+ 308 618 lineto
+ 302 620 lineto
+ 296 620 lineto
+ 296 618 lineto
+ 266 618 lineto
+ 268 620 lineto
+ 262 618 lineto
+ 258 616 lineto
+ 254 612 lineto
+ 252 608 lineto
+ 250 602 lineto
+ 250 592 lineto
+ 252 586 lineto
+ 254 584 lineto
+ 258 580 lineto
+ 262 578 lineto
+ 268 576 lineto
+ 302 576 lineto
+ 308 578 lineto
+ 312 580 lineto
+ 316 584 lineto
+closepath
+%end path
+fill
+%new path
+ 200 216 moveto
+ 198 212 lineto
+ 196 206 lineto
+ 196 196 lineto
+ 198 190 lineto
+ 200 186 lineto
+ 204 182 lineto
+ 208 180 lineto
+ 280 180 lineto
+ 282 182 lineto
+ 286 186 lineto
+ 288 190 lineto
+ 290 196 lineto
+ 292 196 lineto
+ 292 202 lineto
+ 290 200 lineto
+ 290 206 lineto
+ 288 212 lineto
+ 286 216 lineto
+ 282 220 lineto
+ 280 222 lineto
+ 274 224 lineto
+ 268 224 lineto
+ 266 222 lineto
+ 212 222 lineto
+ 214 224 lineto
+ 208 222 lineto
+ 204 220 lineto
+ 200 216 lineto
+closepath
+%end path
+fill
+%new path
+ 254 216 moveto
+ 252 212 lineto
+ 250 206 lineto
+ 250 196 lineto
+ 252 190 lineto
+ 254 186 lineto
+ 258 182 lineto
+ 262 180 lineto
+ 308 180 lineto
+ 312 182 lineto
+ 316 186 lineto
+ 318 190 lineto
+ 320 196 lineto
+ 320 206 lineto
+ 318 212 lineto
+ 316 216 lineto
+ 312 220 lineto
+ 308 222 lineto
+ 302 224 lineto
+ 296 224 lineto
+ 296 222 lineto
+ 266 222 lineto
+ 268 224 lineto
+ 262 222 lineto
+ 258 220 lineto
+ 254 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_C
+(
+newpath
+%new path
+ 494 468 moveto
+ 510 468 lineto
+ 516 470 lineto
+ 520 472 lineto
+ 524 476 lineto
+ 526 478 lineto
+ 528 484 lineto
+ 528 490 lineto
+ 526 492 lineto
+ 524 502 522 512 520 522 curveto
+ 520 520 lineto
+ 518 526 lineto
+ 518 528 lineto
+ 514 540 508 550 502 560 curveto
+ 500 562 lineto
+ 500 564 lineto
+ 494 570 488 578 482 584 curveto
+ 484 582 lineto
+ 480 586 lineto
+ 478 588 lineto
+ 472 594 466 600 460 604 curveto
+ 460 602 lineto
+ 458 604 lineto
+ 456 606 lineto
+ 448 612 438 616 428 620 curveto
+ 428 618 lineto
+ 422 620 lineto
+ 422 622 lineto
+ 410 626 396 628 384 628 curveto
+ 378 628 lineto
+ 378 626 lineto
+ 364 626 352 624 342 620 curveto
+ 342 622 lineto
+ 336 620 lineto
+ 336 618 lineto
+ 324 614 314 610 304 602 curveto
+ 306 604 lineto
+ 302 602 lineto
+ 302 600 lineto
+ 294 596 286 588 278 582 curveto
+ 280 582 lineto
+ 276 578 lineto
+ 274 578 lineto
+ 268 572 262 564 256 558 curveto
+ 254 554 254 552 252 550 curveto
+ 250 548 lineto
+ 250 546 lineto
+ 238 530 230 512 224 494 curveto
+ 222 488 lineto
+ 212 460 208 430 208 402 curveto
+ 210 402 lineto
+ 210 396 lineto
+ 210 366 214 336 224 308 curveto
+ 222 310 lineto
+ 224 304 lineto
+ 226 302 lineto
+ 232 284 240 266 252 250 curveto
+ 250 250 lineto
+ 252 248 lineto
+ 254 246 lineto
+ 256 244 256 242 258 238 curveto
+ 264 232 270 224 276 218 curveto
+ 276 220 lineto
+ 280 216 lineto
+ 280 214 lineto
+ 288 208 296 200 304 196 curveto
+ 302 196 lineto
+ 306 194 lineto
+ 316 186 326 182 338 180 curveto
+ 336 180 lineto
+ 342 178 lineto
+ 344 178 lineto
+ 354 174 366 172 380 172 curveto
+ 384 172 lineto
+ 386 174 lineto
+ 400 174 416 176 428 180 curveto
+ 434 180 lineto
+ 446 184 456 190 466 196 curveto
+ 468 198 lineto
+ 470 198 lineto
+ 476 202 482 208 488 214 curveto
+ 486 212 lineto
+ 490 216 lineto
+ 492 218 lineto
+ 498 222 502 228 506 234 curveto
+ 508 236 lineto
+ 508 238 lineto
+ 514 246 518 254 520 264 curveto
+ 520 262 lineto
+ 522 268 lineto
+ 522 270 lineto
+ 526 280 528 292 528 304 curveto
+ 528 308 lineto
+ 526 314 lineto
+ 524 318 lineto
+ 520 322 lineto
+ 516 324 lineto
+ 510 326 lineto
+ 504 326 lineto
+ 504 324 lineto
+ 492 324 lineto
+ 494 326 lineto
+ 488 324 lineto
+ 484 322 lineto
+ 480 318 lineto
+ 478 314 lineto
+ 476 308 lineto
+ 476 294 474 284 470 272 curveto
+ 472 274 lineto
+ 474 280 lineto
+ 472 278 lineto
+ 470 270 466 260 460 252 curveto
+ 460 254 lineto
+ 462 256 lineto
+ 458 250 454 244 448 238 curveto
+ 448 240 lineto
+ 446 236 lineto
+ 444 230 lineto
+ 444 224 lineto
+ 448 240 lineto
+ 468 248 lineto
+ 462 248 lineto
+ 456 246 lineto
+ 452 244 lineto
+ 452 242 lineto
+ 446 238 442 232 434 228 curveto
+ 436 230 lineto
+ 438 232 lineto
+ 438 230 lineto
+ 430 226 420 220 412 218 curveto
+ 418 220 lineto
+ 406 216 394 214 382 214 curveto
+ 382 216 lineto
+ 376 214 lineto
+ 374 212 lineto
+ 370 208 lineto
+ 388 216 lineto
+ 402 208 lineto
+ 398 212 lineto
+ 394 214 lineto
+ 388 216 lineto
+ 376 216 364 218 354 222 curveto
+ 354 220 lineto
+ 360 218 lineto
+ 360 220 lineto
+ 350 224 340 228 330 234 curveto
+ 332 234 lineto
+ 334 232 lineto
+ 326 238 318 244 310 250 curveto
+ 312 250 lineto
+ 308 252 lineto
+ 302 254 lineto
+ 316 246 lineto
+ 320 236 lineto
+ 318 242 lineto
+ 316 246 lineto
+ 314 246 lineto
+ 308 254 302 260 296 268 curveto
+ 296 270 294 272 292 274 curveto
+ 294 272 lineto
+ 296 270 lineto
+ 294 270 lineto
+ 284 288 276 304 270 324 curveto
+ 270 322 lineto
+ 272 316 lineto
+ 272 318 lineto
+ 262 344 258 374 258 404 curveto
+ 260 402 lineto
+ 258 408 lineto
+ 256 412 lineto
+ 260 402 lineto
+ 256 388 lineto
+ 258 390 lineto
+ 260 396 lineto
+ 260 398 lineto
+ 260 426 264 456 274 482 curveto
+ 272 482 lineto
+ 270 476 lineto
+ 272 476 lineto
+ 278 496 286 514 296 530 curveto
+ 296 528 lineto
+ 294 526 lineto
+ 296 528 298 530 298 532 curveto
+ 304 540 310 546 316 554 curveto
+ 316 552 lineto
+ 318 556 lineto
+ 320 562 lineto
+ 320 568 lineto
+ 316 552 lineto
+ 296 544 lineto
+ 302 544 lineto
+ 308 546 lineto
+ 312 548 lineto
+ 312 550 lineto
+ 320 556 328 562 336 568 curveto
+ 334 566 lineto
+ 332 564 lineto
+ 332 566 lineto
+ 342 572 352 578 362 580 curveto
+ 360 580 lineto
+ 354 578 lineto
+ 356 578 lineto
+ 366 582 378 584 390 584 curveto
+ 388 584 lineto
+ 394 586 lineto
+ 398 588 lineto
+ 402 592 lineto
+ 382 584 lineto
+ 370 592 lineto
+ 374 588 lineto
+ 376 586 lineto
+ 382 584 lineto
+ 384 582 lineto
+ 394 582 404 580 414 576 curveto
+ 414 578 lineto
+ 408 580 lineto
+ 408 578 lineto
+ 418 576 426 572 432 566 curveto
+ 432 568 lineto
+ 428 570 lineto
+ 430 568 lineto
+ 436 564 442 560 448 554 curveto
+ 446 556 lineto
+ 450 554 lineto
+ 456 552 lineto
+ 442 560 lineto
+ 438 568 lineto
+ 440 562 lineto
+ 442 560 lineto
+ 444 558 lineto
+ 448 554 454 546 458 540 curveto
+ 456 544 lineto
+ 456 542 lineto
+ 464 532 470 522 474 510 curveto
+ 472 510 lineto
+ 470 516 lineto
+ 472 516 lineto
+ 474 504 476 494 478 484 curveto
+ 476 484 lineto
+ 478 478 lineto
+ 480 476 lineto
+ 484 472 lineto
+ 488 470 lineto
+ 494 468 lineto
+closepath
+%end path
+fill
+%new path
+ 524 476 moveto
+ 526 478 lineto
+ 528 484 lineto
+ 528 610 lineto
+ 526 616 lineto
+ 524 620 lineto
+ 520 624 lineto
+ 516 626 lineto
+ 510 628 lineto
+ 504 628 lineto
+ 504 626 lineto
+ 500 626 lineto
+ 500 628 lineto
+ 494 626 lineto
+ 492 624 lineto
+ 488 620 lineto
+ 486 616 lineto
+ 484 616 lineto
+ 476 596 468 578 460 560 curveto
+ 460 562 lineto
+ 458 556 lineto
+ 458 550 lineto
+ 460 544 lineto
+ 462 540 lineto
+ 464 540 lineto
+ 464 538 lineto
+ 462 542 lineto
+ 462 540 lineto
+ 470 530 474 520 478 508 curveto
+ 476 514 lineto
+ 480 504 482 494 482 484 curveto
+ 484 478 lineto
+ 486 476 lineto
+ 490 472 lineto
+ 492 470 lineto
+ 498 468 lineto
+ 510 468 lineto
+ 516 470 lineto
+ 520 472 lineto
+ 524 476 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_D
+(
+newpath
+%new path
+ 242 612 moveto
+ 240 608 lineto
+ 238 602 lineto
+ 236 602 lineto
+ 236 202 lineto
+ 238 202 lineto
+ 238 196 lineto
+ 240 190 lineto
+ 242 188 lineto
+ 246 184 lineto
+ 248 182 lineto
+ 254 180 lineto
+ 270 180 lineto
+ 276 182 lineto
+ 280 184 lineto
+ 284 188 lineto
+ 286 190 lineto
+ 288 196 lineto
+ 288 602 lineto
+ 286 608 lineto
+ 284 612 lineto
+ 280 616 lineto
+ 276 618 lineto
+ 270 620 lineto
+ 264 620 lineto
+ 264 618 lineto
+ 254 618 lineto
+ 254 620 lineto
+ 248 618 lineto
+ 246 616 lineto
+ 242 612 lineto
+closepath
+%end path
+fill
+%new path
+ 264 576 moveto
+ 364 576 lineto
+ 364 574 lineto
+ 388 574 410 562 426 544 curveto
+ 434 538 440 530 446 522 curveto
+ 470 484 480 438 480 394 curveto
+ 478 394 lineto
+ 478 350 468 308 444 272 curveto
+ 438 264 434 258 426 252 curveto
+ 410 234 386 222 362 222 curveto
+ 262 222 lineto
+ 262 180 lineto
+ 376 180 lineto
+ 410 180 442 196 466 220 curveto
+ 472 228 480 236 484 244 curveto
+ 516 288 530 342 530 396 curveto
+ 528 396 lineto
+ 528 452 514 508 482 554 curveto
+ 476 564 470 572 462 580 curveto
+ 438 604 408 620 374 620 curveto
+ 374 618 lineto
+ 262 618 lineto
+ 262 574 lineto
+closepath
+%end path
+fill
+%new path
+ 278 584 moveto
+ 280 586 lineto
+ 282 592 lineto
+ 284 594 lineto
+ 284 598 lineto
+ 282 596 lineto
+ 282 602 lineto
+ 280 608 lineto
+ 278 612 lineto
+ 274 616 lineto
+ 272 618 lineto
+ 266 620 lineto
+ 260 620 lineto
+ 258 618 lineto
+ 208 618 lineto
+ 208 620 lineto
+ 202 618 lineto
+ 200 616 lineto
+ 196 612 lineto
+ 194 608 lineto
+ 192 602 lineto
+ 190 602 lineto
+ 190 598 lineto
+ 192 598 lineto
+ 192 592 lineto
+ 194 586 lineto
+ 196 584 lineto
+ 200 580 lineto
+ 202 578 lineto
+ 208 576 lineto
+ 266 576 lineto
+ 272 578 lineto
+ 274 580 lineto
+ 278 584 lineto
+closepath
+%end path
+fill
+%new path
+ 306 584 moveto
+ 308 586 lineto
+ 310 592 lineto
+ 310 602 lineto
+ 308 608 lineto
+ 306 612 lineto
+ 302 616 lineto
+ 298 618 lineto
+ 292 620 lineto
+ 286 620 lineto
+ 286 618 lineto
+ 258 618 lineto
+ 260 620 lineto
+ 254 618 lineto
+ 250 616 lineto
+ 246 612 lineto
+ 244 608 lineto
+ 242 602 lineto
+ 242 592 lineto
+ 244 586 lineto
+ 246 584 lineto
+ 250 580 lineto
+ 254 578 lineto
+ 260 576 lineto
+ 292 576 lineto
+ 298 578 lineto
+ 302 580 lineto
+ 306 584 lineto
+closepath
+%end path
+fill
+%new path
+ 196 216 moveto
+ 194 212 lineto
+ 192 206 lineto
+ 190 206 lineto
+ 190 200 lineto
+ 192 202 lineto
+ 192 196 lineto
+ 194 190 lineto
+ 196 186 lineto
+ 200 182 lineto
+ 202 180 lineto
+ 272 180 lineto
+ 274 182 lineto
+ 278 186 lineto
+ 280 190 lineto
+ 282 196 lineto
+ 284 196 lineto
+ 284 202 lineto
+ 282 200 lineto
+ 282 206 lineto
+ 280 212 lineto
+ 278 216 lineto
+ 274 220 lineto
+ 272 222 lineto
+ 266 224 lineto
+ 260 224 lineto
+ 258 222 lineto
+ 208 222 lineto
+ 208 224 lineto
+ 202 222 lineto
+ 200 220 lineto
+ 196 216 lineto
+closepath
+%end path
+fill
+%new path
+ 246 216 moveto
+ 244 212 lineto
+ 242 206 lineto
+ 242 196 lineto
+ 244 190 lineto
+ 246 186 lineto
+ 250 182 lineto
+ 254 180 lineto
+ 298 180 lineto
+ 302 182 lineto
+ 306 186 lineto
+ 308 190 lineto
+ 310 196 lineto
+ 310 206 lineto
+ 308 212 lineto
+ 306 216 lineto
+ 302 220 lineto
+ 298 222 lineto
+ 292 224 lineto
+ 286 224 lineto
+ 286 222 lineto
+ 258 222 lineto
+ 260 224 lineto
+ 254 222 lineto
+ 250 220 lineto
+ 246 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_E
+(
+newpath
+%new path
+ 254 612 moveto
+ 252 608 lineto
+ 250 602 lineto
+ 248 602 lineto
+ 248 202 lineto
+ 250 202 lineto
+ 250 196 lineto
+ 252 190 lineto
+ 254 188 lineto
+ 258 184 lineto
+ 260 182 lineto
+ 266 180 lineto
+ 282 180 lineto
+ 288 182 lineto
+ 292 184 lineto
+ 296 188 lineto
+ 298 190 lineto
+ 300 196 lineto
+ 300 602 lineto
+ 298 608 lineto
+ 296 612 lineto
+ 292 616 lineto
+ 288 618 lineto
+ 282 620 lineto
+ 276 620 lineto
+ 276 618 lineto
+ 266 618 lineto
+ 266 620 lineto
+ 260 618 lineto
+ 258 616 lineto
+ 254 612 lineto
+closepath
+%end path
+fill
+%new path
+ 492 506 moveto
+ 498 506 lineto
+ 498 508 lineto
+ 510 508 lineto
+ 508 506 lineto
+ 514 508 lineto
+ 518 510 lineto
+ 522 514 lineto
+ 524 518 lineto
+ 526 524 lineto
+ 526 602 lineto
+ 524 608 lineto
+ 522 612 lineto
+ 518 616 lineto
+ 514 618 lineto
+ 508 620 lineto
+ 502 620 lineto
+ 502 618 lineto
+ 270 618 lineto
+ 272 620 lineto
+ 266 618 lineto
+ 262 616 lineto
+ 258 612 lineto
+ 256 608 lineto
+ 254 602 lineto
+ 254 592 lineto
+ 256 586 lineto
+ 258 582 lineto
+ 262 578 lineto
+ 266 576 lineto
+ 272 574 lineto
+ 278 574 lineto
+ 278 576 lineto
+ 498 576 lineto
+ 498 574 lineto
+ 504 576 lineto
+ 506 578 lineto
+ 510 582 lineto
+ 492 574 lineto
+ 478 582 lineto
+ 482 578 lineto
+ 486 576 lineto
+ 492 574 lineto
+ 478 582 lineto
+ 474 592 lineto
+ 476 586 lineto
+ 478 582 lineto
+ 474 592 lineto
+ 478 606 lineto
+ 476 604 lineto
+ 474 598 lineto
+ 474 524 lineto
+ 476 518 lineto
+ 478 514 lineto
+ 482 510 lineto
+ 486 508 lineto
+ 492 506 lineto
+closepath
+%end path
+fill
+%new path
+ 396 462 moveto
+ 394 458 lineto
+ 392 452 lineto
+ 392 406 lineto
+ 396 422 lineto
+ 416 430 lineto
+ 410 430 lineto
+ 408 428 lineto
+ 270 428 lineto
+ 272 430 lineto
+ 266 428 lineto
+ 262 426 lineto
+ 258 422 lineto
+ 256 418 lineto
+ 254 412 lineto
+ 254 402 lineto
+ 256 396 lineto
+ 258 392 lineto
+ 262 388 lineto
+ 266 386 lineto
+ 272 384 lineto
+ 278 384 lineto
+ 278 386 lineto
+ 428 386 lineto
+ 426 384 lineto
+ 432 386 lineto
+ 436 388 lineto
+ 440 392 lineto
+ 442 396 lineto
+ 444 402 lineto
+ 444 452 lineto
+ 442 458 lineto
+ 440 462 lineto
+ 436 466 lineto
+ 432 468 lineto
+ 426 470 lineto
+ 420 470 lineto
+ 420 468 lineto
+ 408 468 lineto
+ 410 470 lineto
+ 404 468 lineto
+ 400 466 lineto
+ 396 462 lineto
+closepath
+%end path
+fill
+%new path
+ 410 344 moveto
+ 416 344 lineto
+ 416 346 lineto
+ 428 346 lineto
+ 426 344 lineto
+ 432 346 lineto
+ 436 348 lineto
+ 440 352 lineto
+ 442 356 lineto
+ 444 362 lineto
+ 444 412 lineto
+ 442 418 lineto
+ 440 422 lineto
+ 436 426 lineto
+ 432 428 lineto
+ 426 430 lineto
+ 420 430 lineto
+ 420 428 lineto
+ 270 428 lineto
+ 272 430 lineto
+ 266 428 lineto
+ 262 426 lineto
+ 258 422 lineto
+ 256 418 lineto
+ 254 412 lineto
+ 254 402 lineto
+ 256 396 lineto
+ 258 392 lineto
+ 262 388 lineto
+ 266 386 lineto
+ 272 384 lineto
+ 278 384 lineto
+ 278 386 lineto
+ 416 386 lineto
+ 416 384 lineto
+ 422 386 lineto
+ 424 388 lineto
+ 428 392 lineto
+ 410 384 lineto
+ 396 392 lineto
+ 400 388 lineto
+ 404 386 lineto
+ 410 384 lineto
+ 396 392 lineto
+ 392 402 lineto
+ 394 396 lineto
+ 396 392 lineto
+ 392 402 lineto
+ 396 416 lineto
+ 394 414 lineto
+ 392 408 lineto
+ 392 362 lineto
+ 394 356 lineto
+ 396 352 lineto
+ 400 348 lineto
+ 404 346 lineto
+ 410 344 lineto
+closepath
+%end path
+fill
+%new path
+ 494 296 moveto
+ 492 292 lineto
+ 490 286 lineto
+ 490 200 lineto
+ 494 216 lineto
+ 514 224 lineto
+ 508 224 lineto
+ 506 222 lineto
+ 270 222 lineto
+ 272 224 lineto
+ 266 222 lineto
+ 262 220 lineto
+ 258 216 lineto
+ 256 212 lineto
+ 254 206 lineto
+ 254 196 lineto
+ 256 190 lineto
+ 258 188 lineto
+ 262 184 lineto
+ 266 182 lineto
+ 272 180 lineto
+ 524 180 lineto
+ 530 182 lineto
+ 534 184 lineto
+ 538 188 lineto
+ 540 190 lineto
+ 542 196 lineto
+ 542 286 lineto
+ 540 292 lineto
+ 538 296 lineto
+ 534 300 lineto
+ 530 302 lineto
+ 524 304 lineto
+ 518 304 lineto
+ 518 302 lineto
+ 506 302 lineto
+ 508 304 lineto
+ 502 302 lineto
+ 498 300 lineto
+ 494 296 lineto
+closepath
+%end path
+fill
+%new path
+ 290 584 moveto
+ 292 586 lineto
+ 294 592 lineto
+ 296 594 lineto
+ 296 598 lineto
+ 294 596 lineto
+ 294 602 lineto
+ 292 608 lineto
+ 290 612 lineto
+ 286 616 lineto
+ 284 618 lineto
+ 278 620 lineto
+ 272 620 lineto
+ 270 618 lineto
+ 214 618 lineto
+ 216 620 lineto
+ 210 618 lineto
+ 206 616 lineto
+ 202 612 lineto
+ 200 608 lineto
+ 198 602 lineto
+ 198 592 lineto
+ 200 586 lineto
+ 202 584 lineto
+ 206 580 lineto
+ 210 578 lineto
+ 216 576 lineto
+ 278 576 lineto
+ 284 578 lineto
+ 286 580 lineto
+ 290 584 lineto
+closepath
+%end path
+fill
+%new path
+ 320 584 moveto
+ 322 586 lineto
+ 324 592 lineto
+ 326 594 lineto
+ 326 598 lineto
+ 324 596 lineto
+ 324 602 lineto
+ 322 608 lineto
+ 320 612 lineto
+ 316 616 lineto
+ 314 618 lineto
+ 308 620 lineto
+ 302 620 lineto
+ 300 618 lineto
+ 270 618 lineto
+ 272 620 lineto
+ 266 618 lineto
+ 262 616 lineto
+ 258 612 lineto
+ 256 608 lineto
+ 254 602 lineto
+ 254 592 lineto
+ 256 586 lineto
+ 258 584 lineto
+ 262 580 lineto
+ 266 578 lineto
+ 272 576 lineto
+ 308 576 lineto
+ 314 578 lineto
+ 316 580 lineto
+ 320 584 lineto
+closepath
+%end path
+fill
+%new path
+ 202 216 moveto
+ 200 212 lineto
+ 198 206 lineto
+ 198 196 lineto
+ 200 190 lineto
+ 202 186 lineto
+ 206 182 lineto
+ 210 180 lineto
+ 284 180 lineto
+ 286 182 lineto
+ 290 186 lineto
+ 292 190 lineto
+ 294 196 lineto
+ 296 196 lineto
+ 296 202 lineto
+ 294 200 lineto
+ 294 206 lineto
+ 292 212 lineto
+ 290 216 lineto
+ 286 220 lineto
+ 284 222 lineto
+ 278 224 lineto
+ 272 224 lineto
+ 270 222 lineto
+ 214 222 lineto
+ 216 224 lineto
+ 210 222 lineto
+ 206 220 lineto
+ 202 216 lineto
+closepath
+%end path
+fill
+%new path
+ 258 216 moveto
+ 256 212 lineto
+ 254 206 lineto
+ 254 196 lineto
+ 256 190 lineto
+ 258 186 lineto
+ 262 182 lineto
+ 266 180 lineto
+ 314 180 lineto
+ 316 182 lineto
+ 320 186 lineto
+ 322 190 lineto
+ 324 196 lineto
+ 326 196 lineto
+ 326 202 lineto
+ 324 200 lineto
+ 324 206 lineto
+ 322 212 lineto
+ 320 216 lineto
+ 316 220 lineto
+ 314 222 lineto
+ 308 224 lineto
+ 302 224 lineto
+ 300 222 lineto
+ 270 222 lineto
+ 272 224 lineto
+ 266 222 lineto
+ 262 220 lineto
+ 258 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_F
+(
+newpath
+%new path
+ 258 612 moveto
+ 256 608 lineto
+ 254 602 lineto
+ 252 602 lineto
+ 252 202 lineto
+ 254 202 lineto
+ 254 196 lineto
+ 256 190 lineto
+ 258 188 lineto
+ 262 184 lineto
+ 264 182 lineto
+ 270 180 lineto
+ 286 180 lineto
+ 292 182 lineto
+ 296 184 lineto
+ 300 188 lineto
+ 302 190 lineto
+ 304 196 lineto
+ 304 602 lineto
+ 302 608 lineto
+ 300 612 lineto
+ 296 616 lineto
+ 292 618 lineto
+ 286 620 lineto
+ 280 620 lineto
+ 280 618 lineto
+ 270 618 lineto
+ 270 620 lineto
+ 264 618 lineto
+ 262 616 lineto
+ 258 612 lineto
+closepath
+%end path
+fill
+%new path
+ 500 506 moveto
+ 506 506 lineto
+ 506 508 lineto
+ 518 508 lineto
+ 516 506 lineto
+ 522 508 lineto
+ 526 510 lineto
+ 530 514 lineto
+ 532 518 lineto
+ 534 524 lineto
+ 534 602 lineto
+ 532 608 lineto
+ 530 612 lineto
+ 526 616 lineto
+ 522 618 lineto
+ 516 620 lineto
+ 510 620 lineto
+ 510 618 lineto
+ 274 618 lineto
+ 276 620 lineto
+ 270 618 lineto
+ 266 616 lineto
+ 262 612 lineto
+ 260 608 lineto
+ 258 602 lineto
+ 258 592 lineto
+ 260 586 lineto
+ 262 582 lineto
+ 266 578 lineto
+ 270 576 lineto
+ 276 574 lineto
+ 282 574 lineto
+ 282 576 lineto
+ 506 576 lineto
+ 506 574 lineto
+ 512 576 lineto
+ 514 578 lineto
+ 518 582 lineto
+ 500 574 lineto
+ 486 582 lineto
+ 490 578 lineto
+ 494 576 lineto
+ 500 574 lineto
+ 486 582 lineto
+ 482 592 lineto
+ 484 586 lineto
+ 486 582 lineto
+ 482 592 lineto
+ 486 606 lineto
+ 484 604 lineto
+ 482 598 lineto
+ 482 524 lineto
+ 484 518 lineto
+ 486 514 lineto
+ 490 510 lineto
+ 494 508 lineto
+ 500 506 lineto
+closepath
+%end path
+fill
+%new path
+ 404 454 moveto
+ 402 450 lineto
+ 400 444 lineto
+ 400 398 lineto
+ 404 414 lineto
+ 424 422 lineto
+ 418 422 lineto
+ 416 420 lineto
+ 274 420 lineto
+ 276 422 lineto
+ 270 420 lineto
+ 266 418 lineto
+ 262 414 lineto
+ 260 410 lineto
+ 258 404 lineto
+ 258 394 lineto
+ 260 388 lineto
+ 262 384 lineto
+ 266 380 lineto
+ 270 378 lineto
+ 276 376 lineto
+ 282 376 lineto
+ 282 378 lineto
+ 436 378 lineto
+ 434 376 lineto
+ 440 378 lineto
+ 444 380 lineto
+ 448 384 lineto
+ 450 388 lineto
+ 452 394 lineto
+ 452 444 lineto
+ 450 450 lineto
+ 448 454 lineto
+ 444 458 lineto
+ 440 460 lineto
+ 434 462 lineto
+ 428 462 lineto
+ 428 460 lineto
+ 416 460 lineto
+ 418 462 lineto
+ 412 460 lineto
+ 408 458 lineto
+ 404 454 lineto
+closepath
+%end path
+fill
+%new path
+ 418 336 moveto
+ 424 336 lineto
+ 424 338 lineto
+ 436 338 lineto
+ 434 336 lineto
+ 440 338 lineto
+ 444 340 lineto
+ 448 344 lineto
+ 450 348 lineto
+ 452 354 lineto
+ 452 404 lineto
+ 450 410 lineto
+ 448 414 lineto
+ 444 418 lineto
+ 440 420 lineto
+ 434 422 lineto
+ 428 422 lineto
+ 428 420 lineto
+ 274 420 lineto
+ 276 422 lineto
+ 270 420 lineto
+ 266 418 lineto
+ 262 414 lineto
+ 260 410 lineto
+ 258 404 lineto
+ 258 394 lineto
+ 260 388 lineto
+ 262 384 lineto
+ 266 380 lineto
+ 270 378 lineto
+ 276 376 lineto
+ 282 376 lineto
+ 282 378 lineto
+ 424 378 lineto
+ 424 376 lineto
+ 430 378 lineto
+ 432 380 lineto
+ 436 384 lineto
+ 418 376 lineto
+ 404 384 lineto
+ 408 380 lineto
+ 412 378 lineto
+ 418 376 lineto
+ 404 384 lineto
+ 400 394 lineto
+ 402 388 lineto
+ 404 384 lineto
+ 400 394 lineto
+ 404 408 lineto
+ 402 406 lineto
+ 400 400 lineto
+ 400 354 lineto
+ 402 348 lineto
+ 404 344 lineto
+ 408 340 lineto
+ 412 338 lineto
+ 418 336 lineto
+closepath
+%end path
+fill
+%new path
+ 294 584 moveto
+ 296 586 lineto
+ 298 592 lineto
+ 300 594 lineto
+ 300 598 lineto
+ 298 596 lineto
+ 298 602 lineto
+ 296 608 lineto
+ 294 612 lineto
+ 290 616 lineto
+ 288 618 lineto
+ 282 620 lineto
+ 276 620 lineto
+ 274 618 lineto
+ 216 618 lineto
+ 216 620 lineto
+ 210 618 lineto
+ 208 616 lineto
+ 204 612 lineto
+ 202 608 lineto
+ 200 602 lineto
+ 198 602 lineto
+ 198 598 lineto
+ 200 598 lineto
+ 200 592 lineto
+ 202 586 lineto
+ 204 584 lineto
+ 208 580 lineto
+ 210 578 lineto
+ 216 576 lineto
+ 282 576 lineto
+ 288 578 lineto
+ 290 580 lineto
+ 294 584 lineto
+closepath
+%end path
+fill
+%new path
+ 326 584 moveto
+ 328 586 lineto
+ 330 592 lineto
+ 330 602 lineto
+ 328 608 lineto
+ 326 612 lineto
+ 322 616 lineto
+ 318 618 lineto
+ 312 620 lineto
+ 306 620 lineto
+ 306 618 lineto
+ 274 618 lineto
+ 276 620 lineto
+ 270 618 lineto
+ 266 616 lineto
+ 262 612 lineto
+ 260 608 lineto
+ 258 602 lineto
+ 258 592 lineto
+ 260 586 lineto
+ 262 584 lineto
+ 266 580 lineto
+ 270 578 lineto
+ 276 576 lineto
+ 312 576 lineto
+ 318 578 lineto
+ 322 580 lineto
+ 326 584 lineto
+closepath
+%end path
+fill
+%new path
+ 204 216 moveto
+ 202 212 lineto
+ 200 206 lineto
+ 198 206 lineto
+ 198 200 lineto
+ 200 202 lineto
+ 200 196 lineto
+ 202 190 lineto
+ 204 186 lineto
+ 208 182 lineto
+ 210 180 lineto
+ 288 180 lineto
+ 290 182 lineto
+ 294 186 lineto
+ 296 190 lineto
+ 298 196 lineto
+ 300 196 lineto
+ 300 202 lineto
+ 298 200 lineto
+ 298 206 lineto
+ 296 212 lineto
+ 294 216 lineto
+ 290 220 lineto
+ 288 222 lineto
+ 282 224 lineto
+ 276 224 lineto
+ 274 222 lineto
+ 216 222 lineto
+ 216 224 lineto
+ 210 222 lineto
+ 208 220 lineto
+ 204 216 lineto
+closepath
+%end path
+fill
+%new path
+ 262 216 moveto
+ 260 212 lineto
+ 258 206 lineto
+ 258 196 lineto
+ 260 190 lineto
+ 262 186 lineto
+ 266 182 lineto
+ 270 180 lineto
+ 358 180 lineto
+ 362 182 lineto
+ 366 186 lineto
+ 368 190 lineto
+ 370 196 lineto
+ 370 206 lineto
+ 368 212 lineto
+ 366 216 lineto
+ 362 220 lineto
+ 358 222 lineto
+ 352 224 lineto
+ 346 224 lineto
+ 346 222 lineto
+ 274 222 lineto
+ 276 224 lineto
+ 270 222 lineto
+ 266 220 lineto
+ 262 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_G
+(
+newpath
+%new path
+ 470 468 moveto
+ 486 468 lineto
+ 492 470 lineto
+ 496 472 lineto
+ 500 476 lineto
+ 502 478 lineto
+ 504 484 lineto
+ 504 490 lineto
+ 502 492 lineto
+ 500 502 498 514 494 524 curveto
+ 496 524 lineto
+ 494 530 lineto
+ 492 530 lineto
+ 488 544 484 554 476 564 curveto
+ 478 564 lineto
+ 476 566 lineto
+ 474 568 lineto
+ 470 576 464 582 458 588 curveto
+ 460 586 lineto
+ 456 590 lineto
+ 454 592 lineto
+ 448 598 442 602 436 606 curveto
+ 438 606 lineto
+ 434 608 lineto
+ 426 614 418 618 408 620 curveto
+ 410 620 lineto
+ 404 622 lineto
+ 402 622 lineto
+ 392 626 380 628 370 628 curveto
+ 364 628 lineto
+ 364 626 lineto
+ 352 626 342 624 332 620 curveto
+ 334 622 lineto
+ 328 620 lineto
+ 326 618 lineto
+ 318 616 308 612 300 606 curveto
+ 298 604 lineto
+ 296 604 lineto
+ 290 598 282 592 276 586 curveto
+ 276 588 lineto
+ 272 584 lineto
+ 272 582 lineto
+ 264 574 258 566 252 558 curveto
+ 250 556 250 556 250 556 curveto
+ 252 558 lineto
+ 250 554 lineto
+ 248 554 lineto
+ 238 536 228 518 222 498 curveto
+ 224 500 lineto
+ 222 494 lineto
+ 220 492 lineto
+ 210 464 206 432 206 402 curveto
+ 208 402 lineto
+ 208 396 lineto
+ 208 364 212 332 222 304 curveto
+ 224 298 lineto
+ 230 278 240 260 250 242 curveto
+ 250 244 lineto
+ 252 240 lineto
+ 252 240 252 240 254 238 curveto
+ 260 230 266 222 274 214 curveto
+ 272 214 lineto
+ 276 210 lineto
+ 278 210 lineto
+ 284 204 292 198 298 192 curveto
+ 298 194 lineto
+ 300 192 lineto
+ 302 190 lineto
+ 310 184 320 180 328 180 curveto
+ 334 178 lineto
+ 344 174 354 172 366 172 curveto
+ 370 172 lineto
+ 372 174 lineto
+ 382 174 392 176 402 178 curveto
+ 400 178 lineto
+ 406 180 lineto
+ 408 180 lineto
+ 416 182 422 186 430 190 curveto
+ 428 188 lineto
+ 432 190 lineto
+ 432 192 lineto
+ 438 196 444 200 448 204 curveto
+ 452 208 lineto
+ 458 214 464 222 468 228 curveto
+ 470 230 lineto
+ 470 232 lineto
+ 478 244 486 258 490 272 curveto
+ 492 278 lineto
+ 500 302 504 328 504 354 curveto
+ 504 358 lineto
+ 502 364 lineto
+ 500 368 lineto
+ 496 372 lineto
+ 492 374 lineto
+ 486 376 lineto
+ 480 376 lineto
+ 480 374 lineto
+ 468 374 lineto
+ 470 376 lineto
+ 464 374 lineto
+ 460 372 lineto
+ 456 368 lineto
+ 454 364 lineto
+ 452 358 lineto
+ 452 330 448 302 440 276 curveto
+ 440 278 lineto
+ 442 284 lineto
+ 442 282 lineto
+ 438 268 432 256 424 244 curveto
+ 424 246 lineto
+ 426 248 lineto
+ 422 242 416 236 412 230 curveto
+ 412 232 lineto
+ 410 228 lineto
+ 408 222 lineto
+ 408 216 lineto
+ 412 232 lineto
+ 432 240 lineto
+ 426 240 lineto
+ 420 238 lineto
+ 416 236 lineto
+ 416 234 lineto
+ 412 230 406 226 402 224 curveto
+ 404 224 lineto
+ 406 226 lineto
+ 400 222 392 218 386 216 curveto
+ 388 218 lineto
+ 394 220 lineto
+ 392 218 lineto
+ 384 216 376 214 366 214 curveto
+ 366 216 lineto
+ 360 214 lineto
+ 358 212 lineto
+ 354 208 lineto
+ 372 216 lineto
+ 386 208 lineto
+ 382 212 lineto
+ 378 214 lineto
+ 372 216 lineto
+ 362 216 352 218 344 220 curveto
+ 350 218 lineto
+ 342 222 332 226 326 230 curveto
+ 330 228 lineto
+ 328 228 lineto
+ 322 234 314 240 308 246 curveto
+ 310 244 lineto
+ 306 246 lineto
+ 300 248 lineto
+ 314 240 lineto
+ 318 232 lineto
+ 316 238 lineto
+ 314 240 lineto
+ 312 242 lineto
+ 304 248 298 258 292 266 curveto
+ 294 262 lineto
+ 294 264 lineto
+ 292 264 lineto
+ 282 282 274 298 268 316 curveto
+ 270 316 lineto
+ 272 310 lineto
+ 270 310 lineto
+ 260 340 256 372 256 404 curveto
+ 258 402 lineto
+ 256 408 lineto
+ 254 412 lineto
+ 258 402 lineto
+ 254 388 lineto
+ 256 390 lineto
+ 258 396 lineto
+ 258 398 lineto
+ 258 428 262 460 272 488 curveto
+ 270 482 lineto
+ 276 502 284 518 296 536 curveto
+ 294 536 lineto
+ 292 532 lineto
+ 294 534 lineto
+ 300 542 306 550 314 558 curveto
+ 316 560 lineto
+ 318 566 lineto
+ 318 572 lineto
+ 314 558 lineto
+ 294 550 lineto
+ 300 550 lineto
+ 306 552 lineto
+ 310 554 lineto
+ 316 560 324 566 330 570 curveto
+ 326 568 lineto
+ 328 568 lineto
+ 336 574 344 578 352 582 curveto
+ 352 580 lineto
+ 346 578 lineto
+ 346 580 lineto
+ 356 582 364 584 374 584 curveto
+ 380 586 lineto
+ 382 588 lineto
+ 386 592 lineto
+ 368 584 lineto
+ 354 592 lineto
+ 358 588 lineto
+ 362 586 lineto
+ 368 584 lineto
+ 368 582 lineto
+ 378 582 388 580 396 578 curveto
+ 394 578 lineto
+ 388 580 lineto
+ 390 580 lineto
+ 398 578 404 574 410 570 curveto
+ 406 572 lineto
+ 408 572 lineto
+ 414 568 418 564 424 558 curveto
+ 422 560 lineto
+ 426 558 lineto
+ 432 556 lineto
+ 418 564 lineto
+ 414 572 lineto
+ 416 566 lineto
+ 418 564 lineto
+ 420 562 lineto
+ 424 558 430 552 434 544 curveto
+ 432 546 lineto
+ 430 548 lineto
+ 432 548 lineto
+ 438 538 444 526 448 514 curveto
+ 446 520 lineto
+ 450 508 452 496 454 484 curveto
+ 452 484 lineto
+ 454 478 lineto
+ 456 476 lineto
+ 460 472 lineto
+ 464 470 lineto
+ 470 468 lineto
+closepath
+%end path
+fill
+%new path
+ 500 476 moveto
+ 502 478 lineto
+ 504 484 lineto
+ 504 610 lineto
+ 502 616 lineto
+ 500 620 lineto
+ 496 624 lineto
+ 492 626 lineto
+ 486 628 lineto
+ 480 628 lineto
+ 480 626 lineto
+ 476 626 lineto
+ 476 628 lineto
+ 470 626 lineto
+ 468 624 lineto
+ 464 620 lineto
+ 462 616 lineto
+ 460 616 lineto
+ 452 598 444 580 436 562 curveto
+ 436 564 lineto
+ 434 558 lineto
+ 434 552 lineto
+ 436 546 lineto
+ 438 544 lineto
+ 444 534 450 524 454 512 curveto
+ 452 512 lineto
+ 450 518 lineto
+ 452 518 lineto
+ 456 506 458 494 458 484 curveto
+ 460 478 lineto
+ 462 476 lineto
+ 466 472 lineto
+ 468 470 lineto
+ 474 468 lineto
+ 486 468 lineto
+ 492 470 lineto
+ 496 472 lineto
+ 500 476 lineto
+closepath
+%end path
+fill
+%new path
+ 456 368 moveto
+ 454 364 lineto
+ 452 358 lineto
+ 452 196 lineto
+ 454 190 lineto
+ 456 188 lineto
+ 460 184 lineto
+ 464 182 lineto
+ 470 180 lineto
+ 486 180 lineto
+ 492 182 lineto
+ 496 184 lineto
+ 500 188 lineto
+ 502 190 lineto
+ 504 196 lineto
+ 504 358 lineto
+ 502 364 lineto
+ 500 368 lineto
+ 496 372 lineto
+ 492 374 lineto
+ 486 376 lineto
+ 480 376 lineto
+ 480 374 lineto
+ 468 374 lineto
+ 470 376 lineto
+ 464 374 lineto
+ 460 372 lineto
+ 456 368 lineto
+closepath
+%end path
+fill
+%new path
+ 494 340 moveto
+ 496 342 lineto
+ 498 348 lineto
+ 498 358 lineto
+ 496 364 lineto
+ 494 368 lineto
+ 490 372 lineto
+ 486 374 lineto
+ 480 376 lineto
+ 474 376 lineto
+ 474 374 lineto
+ 408 374 lineto
+ 410 376 lineto
+ 404 374 lineto
+ 400 372 lineto
+ 396 368 lineto
+ 394 364 lineto
+ 392 358 lineto
+ 392 348 lineto
+ 394 342 lineto
+ 396 340 lineto
+ 400 336 lineto
+ 404 334 lineto
+ 410 332 lineto
+ 480 332 lineto
+ 486 334 lineto
+ 490 336 lineto
+ 494 340 lineto
+closepath
+%end path
+fill
+%new path
+ 532 340 moveto
+ 534 342 lineto
+ 536 348 lineto
+ 538 350 lineto
+ 538 354 lineto
+ 536 352 lineto
+ 536 358 lineto
+ 534 364 lineto
+ 532 368 lineto
+ 528 372 lineto
+ 526 374 lineto
+ 520 376 lineto
+ 514 376 lineto
+ 512 374 lineto
+ 474 374 lineto
+ 474 376 lineto
+ 468 374 lineto
+ 466 372 lineto
+ 462 368 lineto
+ 460 364 lineto
+ 458 358 lineto
+ 456 358 lineto
+ 456 354 lineto
+ 458 354 lineto
+ 458 348 lineto
+ 460 342 lineto
+ 462 340 lineto
+ 466 336 lineto
+ 468 334 lineto
+ 474 332 lineto
+ 520 332 lineto
+ 526 334 lineto
+ 528 336 lineto
+ 532 340 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_H
+(
+newpath
+%new path
+ 246 612 moveto
+ 244 608 lineto
+ 242 602 lineto
+ 240 602 lineto
+ 240 202 lineto
+ 242 202 lineto
+ 242 196 lineto
+ 244 190 lineto
+ 246 188 lineto
+ 250 184 lineto
+ 252 182 lineto
+ 258 180 lineto
+ 274 180 lineto
+ 280 182 lineto
+ 284 184 lineto
+ 288 188 lineto
+ 290 190 lineto
+ 292 196 lineto
+ 292 602 lineto
+ 290 608 lineto
+ 288 612 lineto
+ 284 616 lineto
+ 280 618 lineto
+ 274 620 lineto
+ 268 620 lineto
+ 268 618 lineto
+ 258 618 lineto
+ 258 620 lineto
+ 252 618 lineto
+ 250 616 lineto
+ 246 612 lineto
+closepath
+%end path
+fill
+%new path
+ 448 612 moveto
+ 446 608 lineto
+ 444 602 lineto
+ 444 196 lineto
+ 446 190 lineto
+ 448 188 lineto
+ 452 184 lineto
+ 456 182 lineto
+ 462 180 lineto
+ 478 180 lineto
+ 484 182 lineto
+ 488 184 lineto
+ 492 188 lineto
+ 494 190 lineto
+ 496 196 lineto
+ 496 602 lineto
+ 494 608 lineto
+ 492 612 lineto
+ 488 616 lineto
+ 484 618 lineto
+ 478 620 lineto
+ 472 620 lineto
+ 472 618 lineto
+ 460 618 lineto
+ 462 620 lineto
+ 456 618 lineto
+ 452 616 lineto
+ 448 612 lineto
+closepath
+%end path
+fill
+%new path
+ 268 386 moveto
+ 470 386 lineto
+ 470 430 lineto
+ 468 428 lineto
+ 266 428 lineto
+ 266 384 lineto
+closepath
+%end path
+fill
+%new path
+ 282 584 moveto
+ 284 586 lineto
+ 286 592 lineto
+ 288 594 lineto
+ 288 598 lineto
+ 286 596 lineto
+ 286 602 lineto
+ 284 608 lineto
+ 282 612 lineto
+ 278 616 lineto
+ 276 618 lineto
+ 270 620 lineto
+ 264 620 lineto
+ 262 618 lineto
+ 210 618 lineto
+ 210 620 lineto
+ 204 618 lineto
+ 202 616 lineto
+ 198 612 lineto
+ 196 608 lineto
+ 194 602 lineto
+ 192 602 lineto
+ 192 598 lineto
+ 194 598 lineto
+ 194 592 lineto
+ 196 586 lineto
+ 198 584 lineto
+ 202 580 lineto
+ 204 578 lineto
+ 210 576 lineto
+ 270 576 lineto
+ 276 578 lineto
+ 278 580 lineto
+ 282 584 lineto
+closepath
+%end path
+fill
+%new path
+ 334 584 moveto
+ 336 586 lineto
+ 338 592 lineto
+ 340 594 lineto
+ 340 598 lineto
+ 338 596 lineto
+ 338 602 lineto
+ 336 608 lineto
+ 334 612 lineto
+ 330 616 lineto
+ 328 618 lineto
+ 322 620 lineto
+ 316 620 lineto
+ 314 618 lineto
+ 262 618 lineto
+ 264 620 lineto
+ 258 618 lineto
+ 254 616 lineto
+ 250 612 lineto
+ 248 608 lineto
+ 246 602 lineto
+ 246 592 lineto
+ 248 586 lineto
+ 250 584 lineto
+ 254 580 lineto
+ 258 578 lineto
+ 264 576 lineto
+ 322 576 lineto
+ 328 578 lineto
+ 330 580 lineto
+ 334 584 lineto
+closepath
+%end path
+fill
+%new path
+ 198 216 moveto
+ 196 212 lineto
+ 194 206 lineto
+ 192 206 lineto
+ 192 200 lineto
+ 194 202 lineto
+ 194 196 lineto
+ 196 190 lineto
+ 198 186 lineto
+ 202 182 lineto
+ 204 180 lineto
+ 276 180 lineto
+ 278 182 lineto
+ 282 186 lineto
+ 284 190 lineto
+ 286 196 lineto
+ 288 196 lineto
+ 288 202 lineto
+ 286 200 lineto
+ 286 206 lineto
+ 284 212 lineto
+ 282 216 lineto
+ 278 220 lineto
+ 276 222 lineto
+ 270 224 lineto
+ 264 224 lineto
+ 262 222 lineto
+ 210 222 lineto
+ 210 224 lineto
+ 204 222 lineto
+ 202 220 lineto
+ 198 216 lineto
+closepath
+%end path
+fill
+%new path
+ 250 216 moveto
+ 248 212 lineto
+ 246 206 lineto
+ 246 196 lineto
+ 248 190 lineto
+ 250 186 lineto
+ 254 182 lineto
+ 258 180 lineto
+ 328 180 lineto
+ 330 182 lineto
+ 334 186 lineto
+ 336 190 lineto
+ 338 196 lineto
+ 340 196 lineto
+ 340 202 lineto
+ 338 200 lineto
+ 338 206 lineto
+ 336 212 lineto
+ 334 216 lineto
+ 330 220 lineto
+ 328 222 lineto
+ 322 224 lineto
+ 316 224 lineto
+ 314 222 lineto
+ 262 222 lineto
+ 264 224 lineto
+ 258 222 lineto
+ 254 220 lineto
+ 250 216 lineto
+closepath
+%end path
+fill
+%new path
+ 486 584 moveto
+ 488 586 lineto
+ 490 592 lineto
+ 490 602 lineto
+ 488 608 lineto
+ 486 612 lineto
+ 482 616 lineto
+ 478 618 lineto
+ 472 620 lineto
+ 466 620 lineto
+ 466 618 lineto
+ 414 618 lineto
+ 414 620 lineto
+ 408 618 lineto
+ 406 616 lineto
+ 402 612 lineto
+ 400 608 lineto
+ 398 602 lineto
+ 396 602 lineto
+ 396 598 lineto
+ 398 598 lineto
+ 398 592 lineto
+ 400 586 lineto
+ 402 584 lineto
+ 406 580 lineto
+ 408 578 lineto
+ 414 576 lineto
+ 472 576 lineto
+ 478 578 lineto
+ 482 580 lineto
+ 486 584 lineto
+closepath
+%end path
+fill
+%new path
+ 538 584 moveto
+ 540 586 lineto
+ 542 592 lineto
+ 544 594 lineto
+ 544 598 lineto
+ 542 596 lineto
+ 542 602 lineto
+ 540 608 lineto
+ 538 612 lineto
+ 534 616 lineto
+ 532 618 lineto
+ 526 620 lineto
+ 520 620 lineto
+ 518 618 lineto
+ 466 618 lineto
+ 466 620 lineto
+ 460 618 lineto
+ 458 616 lineto
+ 454 612 lineto
+ 452 608 lineto
+ 450 602 lineto
+ 448 602 lineto
+ 448 598 lineto
+ 450 598 lineto
+ 450 592 lineto
+ 452 586 lineto
+ 454 584 lineto
+ 458 580 lineto
+ 460 578 lineto
+ 466 576 lineto
+ 526 576 lineto
+ 532 578 lineto
+ 534 580 lineto
+ 538 584 lineto
+closepath
+%end path
+fill
+%new path
+ 402 216 moveto
+ 400 212 lineto
+ 398 206 lineto
+ 396 206 lineto
+ 396 200 lineto
+ 398 202 lineto
+ 398 196 lineto
+ 400 190 lineto
+ 402 186 lineto
+ 406 182 lineto
+ 408 180 lineto
+ 478 180 lineto
+ 482 182 lineto
+ 486 186 lineto
+ 488 190 lineto
+ 490 196 lineto
+ 490 206 lineto
+ 488 212 lineto
+ 486 216 lineto
+ 482 220 lineto
+ 478 222 lineto
+ 472 224 lineto
+ 466 224 lineto
+ 466 222 lineto
+ 414 222 lineto
+ 414 224 lineto
+ 408 222 lineto
+ 406 220 lineto
+ 402 216 lineto
+closepath
+%end path
+fill
+%new path
+ 454 216 moveto
+ 452 212 lineto
+ 450 206 lineto
+ 448 206 lineto
+ 448 200 lineto
+ 450 202 lineto
+ 450 196 lineto
+ 452 190 lineto
+ 454 186 lineto
+ 458 182 lineto
+ 460 180 lineto
+ 532 180 lineto
+ 534 182 lineto
+ 538 186 lineto
+ 540 190 lineto
+ 542 196 lineto
+ 544 196 lineto
+ 544 202 lineto
+ 542 200 lineto
+ 542 206 lineto
+ 540 212 lineto
+ 538 216 lineto
+ 534 220 lineto
+ 532 222 lineto
+ 526 224 lineto
+ 520 224 lineto
+ 518 222 lineto
+ 466 222 lineto
+ 466 224 lineto
+ 460 222 lineto
+ 458 220 lineto
+ 454 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_I
+(
+newpath
+%new path
+ 348 612 moveto
+ 346 608 lineto
+ 344 602 lineto
+ 342 602 lineto
+ 342 202 lineto
+ 344 202 lineto
+ 344 196 lineto
+ 346 190 lineto
+ 348 188 lineto
+ 352 184 lineto
+ 354 182 lineto
+ 360 180 lineto
+ 376 180 lineto
+ 382 182 lineto
+ 386 184 lineto
+ 390 188 lineto
+ 392 190 lineto
+ 394 196 lineto
+ 394 602 lineto
+ 392 608 lineto
+ 390 612 lineto
+ 386 616 lineto
+ 382 618 lineto
+ 376 620 lineto
+ 370 620 lineto
+ 370 618 lineto
+ 360 618 lineto
+ 360 620 lineto
+ 354 618 lineto
+ 352 616 lineto
+ 348 612 lineto
+closepath
+%end path
+fill
+%new path
+ 384 584 moveto
+ 386 586 lineto
+ 388 592 lineto
+ 390 594 lineto
+ 390 598 lineto
+ 388 596 lineto
+ 388 602 lineto
+ 386 608 lineto
+ 384 612 lineto
+ 380 616 lineto
+ 378 618 lineto
+ 372 620 lineto
+ 366 620 lineto
+ 364 618 lineto
+ 252 618 lineto
+ 252 620 lineto
+ 246 618 lineto
+ 244 616 lineto
+ 240 612 lineto
+ 238 608 lineto
+ 236 602 lineto
+ 234 602 lineto
+ 234 598 lineto
+ 236 598 lineto
+ 236 592 lineto
+ 238 586 lineto
+ 240 584 lineto
+ 244 580 lineto
+ 246 578 lineto
+ 252 576 lineto
+ 372 576 lineto
+ 378 578 lineto
+ 380 580 lineto
+ 384 584 lineto
+closepath
+%end path
+fill
+%new path
+ 496 584 moveto
+ 498 586 lineto
+ 500 592 lineto
+ 502 594 lineto
+ 502 598 lineto
+ 500 596 lineto
+ 500 602 lineto
+ 498 608 lineto
+ 496 612 lineto
+ 492 616 lineto
+ 490 618 lineto
+ 484 620 lineto
+ 478 620 lineto
+ 476 618 lineto
+ 364 618 lineto
+ 366 620 lineto
+ 360 618 lineto
+ 356 616 lineto
+ 352 612 lineto
+ 350 608 lineto
+ 348 602 lineto
+ 348 592 lineto
+ 350 586 lineto
+ 352 584 lineto
+ 356 580 lineto
+ 360 578 lineto
+ 366 576 lineto
+ 484 576 lineto
+ 490 578 lineto
+ 492 580 lineto
+ 496 584 lineto
+closepath
+%end path
+fill
+%new path
+ 240 216 moveto
+ 238 212 lineto
+ 236 206 lineto
+ 234 206 lineto
+ 234 200 lineto
+ 236 202 lineto
+ 236 196 lineto
+ 238 190 lineto
+ 240 186 lineto
+ 244 182 lineto
+ 246 180 lineto
+ 378 180 lineto
+ 380 182 lineto
+ 384 186 lineto
+ 386 190 lineto
+ 388 196 lineto
+ 390 196 lineto
+ 390 202 lineto
+ 388 200 lineto
+ 388 206 lineto
+ 386 212 lineto
+ 384 216 lineto
+ 380 220 lineto
+ 378 222 lineto
+ 372 224 lineto
+ 366 224 lineto
+ 364 222 lineto
+ 252 222 lineto
+ 252 224 lineto
+ 246 222 lineto
+ 244 220 lineto
+ 240 216 lineto
+closepath
+%end path
+fill
+%new path
+ 352 216 moveto
+ 350 212 lineto
+ 348 206 lineto
+ 348 196 lineto
+ 350 190 lineto
+ 352 186 lineto
+ 356 182 lineto
+ 360 180 lineto
+ 490 180 lineto
+ 492 182 lineto
+ 496 186 lineto
+ 498 190 lineto
+ 500 196 lineto
+ 502 196 lineto
+ 502 202 lineto
+ 500 200 lineto
+ 500 206 lineto
+ 498 212 lineto
+ 496 216 lineto
+ 492 220 lineto
+ 490 222 lineto
+ 484 224 lineto
+ 478 224 lineto
+ 476 222 lineto
+ 364 222 lineto
+ 366 224 lineto
+ 360 222 lineto
+ 356 220 lineto
+ 352 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_J
+(
+newpath
+%new path
+ 426 612 moveto
+ 424 608 lineto
+ 422 602 lineto
+ 422 274 lineto
+ 422 266 420 260 418 252 curveto
+ 420 254 lineto
+ 422 260 lineto
+ 420 258 lineto
+ 418 252 416 248 412 242 curveto
+ 414 244 lineto
+ 416 246 lineto
+ 414 246 lineto
+ 412 240 408 236 404 234 curveto
+ 406 234 lineto
+ 404 232 lineto
+ 402 226 lineto
+ 402 220 lineto
+ 406 234 lineto
+ 424 242 lineto
+ 418 242 lineto
+ 412 240 lineto
+ 410 238 lineto
+ 408 238 lineto
+ 406 236 406 234 404 232 curveto
+ 400 230 398 228 396 226 curveto
+ 396 228 lineto
+ 400 230 lineto
+ 398 228 lineto
+ 392 224 384 220 376 218 curveto
+ 382 220 lineto
+ 370 216 360 214 348 214 curveto
+ 348 216 lineto
+ 342 214 lineto
+ 340 212 lineto
+ 336 208 lineto
+ 334 204 lineto
+ 332 198 lineto
+ 330 198 lineto
+ 330 192 lineto
+ 332 194 lineto
+ 332 188 lineto
+ 334 182 lineto
+ 336 180 lineto
+ 340 176 lineto
+ 342 174 lineto
+ 348 172 lineto
+ 354 172 lineto
+ 356 174 lineto
+ 370 174 382 176 396 180 curveto
+ 402 180 lineto
+ 410 184 418 188 426 192 curveto
+ 428 194 lineto
+ 430 194 lineto
+ 432 196 434 198 436 200 curveto
+ 440 202 442 204 444 206 curveto
+ 442 206 lineto
+ 446 210 lineto
+ 448 210 lineto
+ 452 214 456 218 458 222 curveto
+ 460 224 lineto
+ 460 226 lineto
+ 464 232 466 236 468 242 curveto
+ 470 248 lineto
+ 472 256 474 262 474 270 curveto
+ 474 602 lineto
+ 472 608 lineto
+ 470 612 lineto
+ 466 616 lineto
+ 462 618 lineto
+ 456 620 lineto
+ 450 620 lineto
+ 450 618 lineto
+ 438 618 lineto
+ 440 620 lineto
+ 434 618 lineto
+ 430 616 lineto
+ 426 612 lineto
+closepath
+%end path
+fill
+%new path
+ 464 584 moveto
+ 466 586 lineto
+ 468 592 lineto
+ 468 602 lineto
+ 466 608 lineto
+ 464 612 lineto
+ 460 616 lineto
+ 456 618 lineto
+ 450 620 lineto
+ 444 620 lineto
+ 444 618 lineto
+ 350 618 lineto
+ 352 620 lineto
+ 346 618 lineto
+ 342 616 lineto
+ 338 612 lineto
+ 336 608 lineto
+ 334 602 lineto
+ 334 592 lineto
+ 336 586 lineto
+ 338 584 lineto
+ 342 580 lineto
+ 346 578 lineto
+ 352 576 lineto
+ 450 576 lineto
+ 456 578 lineto
+ 460 580 lineto
+ 464 584 lineto
+closepath
+%end path
+fill
+%new path
+ 520 584 moveto
+ 522 586 lineto
+ 524 592 lineto
+ 524 602 lineto
+ 522 608 lineto
+ 520 612 lineto
+ 516 616 lineto
+ 512 618 lineto
+ 506 620 lineto
+ 500 620 lineto
+ 500 618 lineto
+ 444 618 lineto
+ 444 620 lineto
+ 438 618 lineto
+ 436 616 lineto
+ 432 612 lineto
+ 430 608 lineto
+ 428 602 lineto
+ 426 602 lineto
+ 426 598 lineto
+ 428 598 lineto
+ 428 592 lineto
+ 430 586 lineto
+ 432 584 lineto
+ 436 580 lineto
+ 438 578 lineto
+ 444 576 lineto
+ 506 576 lineto
+ 512 578 lineto
+ 516 580 lineto
+ 520 584 lineto
+closepath
+%end path
+fill
+%new path
+ 368 208 moveto
+ 364 212 lineto
+ 360 214 lineto
+ 354 216 lineto
+ 338 216 322 218 308 224 curveto
+ 308 222 lineto
+ 314 220 lineto
+ 314 222 lineto
+ 306 224 298 228 292 232 curveto
+ 292 230 lineto
+ 296 228 lineto
+ 294 230 lineto
+ 292 232 288 234 286 236 curveto
+ 284 238 lineto
+ 278 240 lineto
+ 290 232 lineto
+ 294 222 lineto
+ 292 228 lineto
+ 290 232 lineto
+ 288 236 286 238 284 240 curveto
+ 286 236 lineto
+ 286 238 lineto
+ 284 240 282 244 280 248 curveto
+ 282 246 lineto
+ 284 240 lineto
+ 282 242 lineto
+ 280 246 280 252 280 256 curveto
+ 282 256 lineto
+ 280 262 lineto
+ 278 264 lineto
+ 274 268 lineto
+ 270 270 lineto
+ 264 272 lineto
+ 248 272 lineto
+ 242 270 lineto
+ 238 268 lineto
+ 234 264 lineto
+ 232 262 lineto
+ 230 256 lineto
+ 230 250 lineto
+ 232 248 lineto
+ 232 242 232 238 234 232 curveto
+ 234 234 lineto
+ 236 228 lineto
+ 236 226 lineto
+ 238 222 240 220 242 216 curveto
+ 240 216 lineto
+ 242 214 lineto
+ 244 212 lineto
+ 246 210 248 208 250 204 curveto
+ 250 206 lineto
+ 254 202 lineto
+ 254 200 lineto
+ 258 198 260 196 264 192 curveto
+ 264 194 lineto
+ 266 192 lineto
+ 268 190 lineto
+ 274 186 282 182 290 180 curveto
+ 296 180 lineto
+ 312 174 332 172 350 172 curveto
+ 354 172 lineto
+ 360 174 lineto
+ 364 176 lineto
+ 368 180 lineto
+ 370 182 lineto
+ 372 188 lineto
+ 372 198 lineto
+ 370 204 lineto
+ 368 208 lineto
+closepath
+%end path
+fill
+%new path
+ 296 256 moveto
+ 294 256 lineto
+ 294 260 lineto
+ 292 266 lineto
+ 292 268 290 268 290 270 curveto
+ 292 268 lineto
+ 290 272 lineto
+ 288 272 lineto
+ 288 272 288 274 286 274 curveto
+ 288 272 lineto
+ 284 276 lineto
+ 282 278 lineto
+ 282 278 lineto
+ 280 280 lineto
+ 278 282 lineto
+ 276 282 lineto
+ 270 284 lineto
+ 268 286 266 286 264 286 curveto
+ 266 284 lineto
+ 258 284 lineto
+ 258 284 256 284 254 282 curveto
+ 256 284 lineto
+ 250 282 lineto
+ 248 280 lineto
+ 246 280 lineto
+ 244 278 lineto
+ 242 278 lineto
+ 242 276 lineto
+ 238 272 lineto
+ 236 272 236 270 236 270 curveto
+ 236 272 lineto
+ 234 268 lineto
+ 234 266 232 266 232 264 curveto
+ 234 266 lineto
+ 232 260 lineto
+ 230 258 lineto
+ 230 250 lineto
+ 232 244 lineto
+ 234 240 lineto
+ 236 240 lineto
+ 240 236 244 232 248 228 curveto
+ 246 228 lineto
+ 250 224 lineto
+ 254 222 lineto
+ 260 220 lineto
+ 266 220 lineto
+ 266 222 lineto
+ 270 222 lineto
+ 276 224 lineto
+ 278 224 lineto
+ 278 224 280 224 280 226 curveto
+ 280 224 lineto
+ 282 226 lineto
+ 284 228 lineto
+ 288 232 lineto
+ 290 234 290 234 290 234 curveto
+ 292 236 lineto
+ 292 238 lineto
+ 292 238 294 240 294 240 curveto
+ 292 240 lineto
+ 294 246 lineto
+ 296 246 lineto
+ 296 256 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_K
+(
+newpath
+%new path
+ 248 612 moveto
+ 246 608 lineto
+ 244 602 lineto
+ 242 602 lineto
+ 242 202 lineto
+ 244 202 lineto
+ 244 196 lineto
+ 246 190 lineto
+ 248 188 lineto
+ 252 184 lineto
+ 254 182 lineto
+ 260 180 lineto
+ 266 180 lineto
+ 272 182 lineto
+ 276 184 lineto
+ 280 188 lineto
+ 282 190 lineto
+ 284 196 lineto
+ 284 602 lineto
+ 282 608 lineto
+ 280 612 lineto
+ 276 616 lineto
+ 272 618 lineto
+ 266 620 lineto
+ 260 620 lineto
+ 260 620 lineto
+ 254 618 lineto
+ 252 616 lineto
+ 248 612 lineto
+closepath
+%end path
+fill
+%new path
+ 264 294 moveto
+ 346 396 426 498 508 600 curveto
+ 510 602 510 606 510 608 curveto
+ 508 608 lineto
+ 508 610 506 614 504 616 curveto
+ 502 618 500 620 496 620 curveto
+ 496 618 lineto
+ 484 618 lineto
+ 476 618 470 616 464 610 curveto
+ 464 610 464 608 462 608 curveto
+ 396 524 328 440 262 356 curveto
+ 262 292 lineto
+closepath
+%end path
+fill
+%new path
+ 340 422 moveto
+ 384 344 428 266 472 188 curveto
+ 474 186 474 186 476 184 curveto
+ 480 180 484 180 490 180 curveto
+ 502 180 lineto
+ 506 180 508 182 510 184 curveto
+ 514 186 514 190 514 194 curveto
+ 512 194 lineto
+ 512 200 lineto
+ 462 286 414 372 366 456 curveto
+ 366 454 lineto
+ 356 444 348 432 338 422 curveto
+closepath
+%end path
+fill
+%new path
+ 280 584 moveto
+ 282 586 lineto
+ 284 592 lineto
+ 284 598 lineto
+ 282 600 lineto
+ 282 604 lineto
+ 284 602 lineto
+ 282 608 lineto
+ 280 612 lineto
+ 276 616 lineto
+ 272 618 lineto
+ 266 620 lineto
+ 260 620 lineto
+ 260 618 lineto
+ 214 618 lineto
+ 214 620 lineto
+ 208 618 lineto
+ 206 616 lineto
+ 202 612 lineto
+ 200 608 lineto
+ 198 602 lineto
+ 196 602 lineto
+ 196 598 lineto
+ 198 598 lineto
+ 198 592 lineto
+ 200 586 lineto
+ 202 584 lineto
+ 206 580 lineto
+ 208 578 lineto
+ 214 576 lineto
+ 266 576 lineto
+ 272 578 lineto
+ 276 580 lineto
+ 280 584 lineto
+closepath
+%end path
+fill
+%new path
+ 324 584 moveto
+ 326 586 lineto
+ 328 592 lineto
+ 330 594 lineto
+ 330 598 lineto
+ 328 596 lineto
+ 328 602 lineto
+ 326 608 lineto
+ 324 612 lineto
+ 320 616 lineto
+ 318 618 lineto
+ 312 620 lineto
+ 306 620 lineto
+ 304 618 lineto
+ 260 618 lineto
+ 260 620 lineto
+ 254 618 lineto
+ 252 616 lineto
+ 248 612 lineto
+ 246 608 lineto
+ 244 602 lineto
+ 242 602 lineto
+ 242 598 lineto
+ 244 598 lineto
+ 244 592 lineto
+ 246 586 lineto
+ 248 584 lineto
+ 252 580 lineto
+ 254 578 lineto
+ 260 576 lineto
+ 312 576 lineto
+ 318 578 lineto
+ 320 580 lineto
+ 324 584 lineto
+closepath
+%end path
+fill
+%new path
+ 202 216 moveto
+ 200 212 lineto
+ 198 206 lineto
+ 196 206 lineto
+ 196 200 lineto
+ 198 202 lineto
+ 198 196 lineto
+ 200 190 lineto
+ 202 186 lineto
+ 206 182 lineto
+ 208 180 lineto
+ 272 180 lineto
+ 276 182 lineto
+ 280 186 lineto
+ 282 190 lineto
+ 284 196 lineto
+ 284 206 lineto
+ 282 212 lineto
+ 280 216 lineto
+ 276 220 lineto
+ 272 222 lineto
+ 266 224 lineto
+ 260 224 lineto
+ 260 222 lineto
+ 214 222 lineto
+ 214 224 lineto
+ 208 222 lineto
+ 206 220 lineto
+ 202 216 lineto
+closepath
+%end path
+fill
+%new path
+ 248 216 moveto
+ 246 212 lineto
+ 244 206 lineto
+ 244 196 lineto
+ 246 190 lineto
+ 248 186 lineto
+ 252 182 lineto
+ 254 180 lineto
+ 318 180 lineto
+ 320 182 lineto
+ 324 186 lineto
+ 326 190 lineto
+ 328 196 lineto
+ 330 196 lineto
+ 330 202 lineto
+ 328 200 lineto
+ 328 206 lineto
+ 326 212 lineto
+ 324 216 lineto
+ 320 220 lineto
+ 318 222 lineto
+ 312 224 lineto
+ 306 224 lineto
+ 304 222 lineto
+ 260 222 lineto
+ 260 224 lineto
+ 254 222 lineto
+ 252 220 lineto
+ 248 216 lineto
+closepath
+%end path
+fill
+%new path
+ 494 584 moveto
+ 496 586 496 586 498 588 curveto
+ 496 588 lineto
+ 498 590 lineto
+ 500 596 lineto
+ 500 602 lineto
+ 498 608 lineto
+ 496 612 lineto
+ 492 616 lineto
+ 490 618 lineto
+ 484 620 lineto
+ 478 620 lineto
+ 476 618 lineto
+ 422 618 lineto
+ 424 620 lineto
+ 418 618 lineto
+ 414 616 lineto
+ 410 612 lineto
+ 408 608 lineto
+ 406 602 lineto
+ 406 592 lineto
+ 408 586 lineto
+ 410 584 lineto
+ 414 580 lineto
+ 418 578 lineto
+ 424 576 lineto
+ 480 576 lineto
+ 486 578 lineto
+ 490 580 lineto
+ 494 584 lineto
+closepath
+%end path
+fill
+%new path
+ 524 584 moveto
+ 526 586 lineto
+ 528 592 lineto
+ 530 594 lineto
+ 530 598 lineto
+ 528 596 lineto
+ 528 602 lineto
+ 526 608 lineto
+ 524 612 lineto
+ 520 616 lineto
+ 518 618 lineto
+ 512 620 lineto
+ 506 620 lineto
+ 504 618 lineto
+ 476 618 lineto
+ 478 620 lineto
+ 472 618 lineto
+ 468 616 lineto
+ 464 612 lineto
+ 464 610 lineto
+ 462 608 462 608 460 606 curveto
+ 462 608 lineto
+ 460 604 lineto
+ 458 598 lineto
+ 458 592 lineto
+ 460 586 lineto
+ 462 584 lineto
+ 466 580 lineto
+ 468 578 lineto
+ 474 576 lineto
+ 512 576 lineto
+ 518 578 lineto
+ 520 580 lineto
+ 524 584 lineto
+closepath
+%end path
+fill
+%new path
+ 428 216 moveto
+ 426 212 lineto
+ 424 206 lineto
+ 422 206 lineto
+ 422 200 lineto
+ 424 202 lineto
+ 424 196 lineto
+ 426 190 lineto
+ 428 186 lineto
+ 432 182 lineto
+ 434 180 lineto
+ 498 180 lineto
+ 500 182 lineto
+ 504 186 lineto
+ 506 190 lineto
+ 508 196 lineto
+ 508 202 lineto
+ 506 208 lineto
+ 506 210 504 212 504 214 curveto
+ 504 212 lineto
+ 502 216 lineto
+ 498 220 lineto
+ 496 222 lineto
+ 490 224 lineto
+ 484 224 lineto
+ 482 222 lineto
+ 440 222 lineto
+ 440 224 lineto
+ 434 222 lineto
+ 432 220 lineto
+ 428 216 lineto
+closepath
+%end path
+fill
+%new path
+ 470 216 moveto
+ 468 212 lineto
+ 466 206 lineto
+ 466 200 lineto
+ 468 194 lineto
+ 470 194 lineto
+ 470 192 472 190 472 188 curveto
+ 470 190 lineto
+ 472 186 lineto
+ 476 182 lineto
+ 480 180 lineto
+ 526 180 lineto
+ 528 182 lineto
+ 532 186 lineto
+ 534 190 lineto
+ 536 196 lineto
+ 538 196 lineto
+ 538 202 lineto
+ 536 200 lineto
+ 536 206 lineto
+ 534 212 lineto
+ 532 216 lineto
+ 528 220 lineto
+ 526 222 lineto
+ 520 224 lineto
+ 514 224 lineto
+ 512 222 lineto
+ 482 222 lineto
+ 484 224 lineto
+ 478 222 lineto
+ 474 220 lineto
+ 470 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_L
+(
+newpath
+%new path
+ 262 612 moveto
+ 260 608 lineto
+ 258 602 lineto
+ 256 602 lineto
+ 256 202 lineto
+ 258 202 lineto
+ 258 196 lineto
+ 260 190 lineto
+ 262 188 lineto
+ 266 184 lineto
+ 268 182 lineto
+ 274 180 lineto
+ 290 180 lineto
+ 296 182 lineto
+ 300 184 lineto
+ 304 188 lineto
+ 306 190 lineto
+ 308 196 lineto
+ 308 602 lineto
+ 306 608 lineto
+ 304 612 lineto
+ 300 616 lineto
+ 296 618 lineto
+ 290 620 lineto
+ 284 620 lineto
+ 284 618 lineto
+ 274 618 lineto
+ 274 620 lineto
+ 268 618 lineto
+ 266 616 lineto
+ 262 612 lineto
+closepath
+%end path
+fill
+%new path
+ 484 294 moveto
+ 482 292 lineto
+ 480 286 lineto
+ 480 200 lineto
+ 484 216 lineto
+ 504 224 lineto
+ 498 224 lineto
+ 496 222 lineto
+ 278 222 lineto
+ 280 224 lineto
+ 274 222 lineto
+ 270 220 lineto
+ 266 216 lineto
+ 264 212 lineto
+ 262 206 lineto
+ 262 196 lineto
+ 264 190 lineto
+ 266 188 lineto
+ 270 184 lineto
+ 274 182 lineto
+ 280 180 lineto
+ 514 180 lineto
+ 520 182 lineto
+ 524 184 lineto
+ 528 188 lineto
+ 530 190 lineto
+ 532 196 lineto
+ 532 286 lineto
+ 530 292 lineto
+ 528 294 lineto
+ 524 298 lineto
+ 520 300 lineto
+ 514 302 lineto
+ 498 302 lineto
+ 492 300 lineto
+ 488 298 lineto
+ 484 294 lineto
+closepath
+%end path
+fill
+%new path
+ 298 584 moveto
+ 300 586 lineto
+ 302 592 lineto
+ 304 594 lineto
+ 304 598 lineto
+ 302 596 lineto
+ 302 602 lineto
+ 300 608 lineto
+ 298 612 lineto
+ 294 616 lineto
+ 292 618 lineto
+ 286 620 lineto
+ 280 620 lineto
+ 278 618 lineto
+ 218 618 lineto
+ 218 620 lineto
+ 212 618 lineto
+ 210 616 lineto
+ 206 612 lineto
+ 204 608 lineto
+ 202 602 lineto
+ 200 602 lineto
+ 200 598 lineto
+ 202 598 lineto
+ 202 592 lineto
+ 204 586 lineto
+ 206 584 lineto
+ 210 580 lineto
+ 212 578 lineto
+ 218 576 lineto
+ 286 576 lineto
+ 292 578 lineto
+ 294 580 lineto
+ 298 584 lineto
+closepath
+%end path
+fill
+%new path
+ 372 584 moveto
+ 374 586 lineto
+ 376 592 lineto
+ 378 594 lineto
+ 378 598 lineto
+ 376 596 lineto
+ 376 602 lineto
+ 374 608 lineto
+ 372 612 lineto
+ 368 616 lineto
+ 366 618 lineto
+ 360 620 lineto
+ 354 620 lineto
+ 352 618 lineto
+ 278 618 lineto
+ 280 620 lineto
+ 274 618 lineto
+ 270 616 lineto
+ 266 612 lineto
+ 264 608 lineto
+ 262 602 lineto
+ 262 592 lineto
+ 264 586 lineto
+ 266 584 lineto
+ 270 580 lineto
+ 274 578 lineto
+ 280 576 lineto
+ 360 576 lineto
+ 366 578 lineto
+ 368 580 lineto
+ 372 584 lineto
+closepath
+%end path
+fill
+%new path
+ 206 216 moveto
+ 204 212 lineto
+ 202 206 lineto
+ 200 206 lineto
+ 200 200 lineto
+ 202 202 lineto
+ 202 196 lineto
+ 204 190 lineto
+ 206 186 lineto
+ 210 182 lineto
+ 212 180 lineto
+ 292 180 lineto
+ 294 182 lineto
+ 298 186 lineto
+ 300 190 lineto
+ 302 196 lineto
+ 304 196 lineto
+ 304 202 lineto
+ 302 200 lineto
+ 302 206 lineto
+ 300 212 lineto
+ 298 216 lineto
+ 294 220 lineto
+ 292 222 lineto
+ 286 224 lineto
+ 280 224 lineto
+ 278 222 lineto
+ 218 222 lineto
+ 218 224 lineto
+ 212 222 lineto
+ 210 220 lineto
+ 206 216 lineto
+closepath
+%end path
+fill
+%new path
+ 266 216 moveto
+ 264 212 lineto
+ 262 206 lineto
+ 262 196 lineto
+ 264 190 lineto
+ 266 186 lineto
+ 270 182 lineto
+ 274 180 lineto
+ 324 180 lineto
+ 326 182 lineto
+ 330 186 lineto
+ 332 190 lineto
+ 334 196 lineto
+ 336 196 lineto
+ 336 202 lineto
+ 334 200 lineto
+ 334 206 lineto
+ 332 212 lineto
+ 330 216 lineto
+ 326 220 lineto
+ 324 222 lineto
+ 318 224 lineto
+ 312 224 lineto
+ 310 222 lineto
+ 278 222 lineto
+ 280 224 lineto
+ 274 222 lineto
+ 270 220 lineto
+ 266 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_M
+(
+newpath
+%new path
+ 234 612 moveto
+ 232 608 lineto
+ 230 602 lineto
+ 228 602 lineto
+ 228 202 lineto
+ 230 202 lineto
+ 230 196 lineto
+ 232 190 lineto
+ 234 188 lineto
+ 238 184 lineto
+ 240 182 lineto
+ 246 180 lineto
+ 252 180 lineto
+ 258 182 lineto
+ 262 184 lineto
+ 266 188 lineto
+ 268 190 lineto
+ 270 196 lineto
+ 270 602 lineto
+ 268 608 lineto
+ 266 612 lineto
+ 262 616 lineto
+ 258 618 lineto
+ 252 620 lineto
+ 246 620 lineto
+ 246 620 lineto
+ 240 618 lineto
+ 238 616 lineto
+ 234 612 lineto
+closepath
+%end path
+fill
+%new path
+ 470 612 moveto
+ 468 608 lineto
+ 466 602 lineto
+ 466 196 lineto
+ 468 190 lineto
+ 470 188 lineto
+ 474 184 lineto
+ 478 182 lineto
+ 484 180 lineto
+ 490 180 lineto
+ 496 182 lineto
+ 500 184 lineto
+ 504 188 lineto
+ 506 190 lineto
+ 508 196 lineto
+ 508 602 lineto
+ 506 608 lineto
+ 504 612 lineto
+ 500 616 lineto
+ 496 618 lineto
+ 490 620 lineto
+ 484 620 lineto
+ 484 618 lineto
+ 482 618 lineto
+ 484 620 lineto
+ 478 618 lineto
+ 474 616 lineto
+ 470 612 lineto
+closepath
+%end path
+fill
+%new path
+ 248 618 moveto
+ 242 612 240 604 240 598 curveto
+ 242 598 lineto
+ 242 590 246 582 252 576 curveto
+ 256 572 264 568 272 568 curveto
+ 272 552 318 418 342 344 curveto
+ 344 340 346 336 350 332 curveto
+ 354 328 362 324 370 324 curveto
+ 370 326 lineto
+ 372 326 lineto
+ 370 324 lineto
+ 364 324 lineto
+ 366 326 lineto
+ 368 326 lineto
+ 376 326 384 330 388 334 curveto
+ 392 338 394 342 396 346 curveto
+ 420 420 466 554 466 570 curveto
+ 474 570 482 574 486 578 curveto
+ 492 584 496 592 496 600 curveto
+ 494 600 lineto
+ 494 606 492 614 486 620 curveto
+ 486 618 lineto
+ 468 618 lineto
+ 460 618 452 614 446 610 curveto
+ 444 606 440 602 440 598 curveto
+ 414 524 368 386 368 374 curveto
+ 366 374 lineto
+ 366 376 lineto
+ 366 388 320 526 294 600 curveto
+ 294 604 290 608 288 612 curveto
+ 282 616 274 620 266 620 curveto
+ 266 618 lineto
+ 248 618 lineto
+closepath
+%end path
+fill
+%new path
+ 266 584 moveto
+ 268 586 lineto
+ 270 592 lineto
+ 270 598 lineto
+ 268 600 lineto
+ 268 604 lineto
+ 270 602 lineto
+ 268 608 lineto
+ 266 612 lineto
+ 262 616 lineto
+ 258 618 lineto
+ 252 620 lineto
+ 246 620 lineto
+ 246 618 lineto
+ 206 618 lineto
+ 208 620 lineto
+ 202 618 lineto
+ 198 616 lineto
+ 194 612 lineto
+ 192 608 lineto
+ 190 602 lineto
+ 190 592 lineto
+ 192 586 lineto
+ 194 584 lineto
+ 198 580 lineto
+ 202 578 lineto
+ 208 576 lineto
+ 252 576 lineto
+ 258 578 lineto
+ 262 580 lineto
+ 266 584 lineto
+closepath
+%end path
+fill
+%new path
+ 194 216 moveto
+ 192 212 lineto
+ 190 206 lineto
+ 190 196 lineto
+ 192 190 lineto
+ 194 186 lineto
+ 198 182 lineto
+ 202 180 lineto
+ 258 180 lineto
+ 262 182 lineto
+ 266 186 lineto
+ 268 190 lineto
+ 270 196 lineto
+ 270 206 lineto
+ 268 212 lineto
+ 266 216 lineto
+ 262 220 lineto
+ 258 222 lineto
+ 252 224 lineto
+ 246 224 lineto
+ 246 222 lineto
+ 206 222 lineto
+ 208 224 lineto
+ 202 222 lineto
+ 198 220 lineto
+ 194 216 lineto
+closepath
+%end path
+fill
+%new path
+ 234 216 moveto
+ 232 212 lineto
+ 230 206 lineto
+ 230 196 lineto
+ 232 190 lineto
+ 234 186 lineto
+ 238 182 lineto
+ 240 180 lineto
+ 296 180 lineto
+ 300 182 lineto
+ 304 186 lineto
+ 306 190 lineto
+ 308 196 lineto
+ 308 206 lineto
+ 306 212 lineto
+ 304 216 lineto
+ 300 220 lineto
+ 296 222 lineto
+ 290 224 lineto
+ 284 224 lineto
+ 284 222 lineto
+ 246 222 lineto
+ 246 224 lineto
+ 240 222 lineto
+ 238 220 lineto
+ 234 216 lineto
+closepath
+%end path
+fill
+%new path
+ 542 584 moveto
+ 544 586 lineto
+ 546 592 lineto
+ 546 602 lineto
+ 544 608 lineto
+ 542 612 lineto
+ 538 616 lineto
+ 534 618 lineto
+ 528 620 lineto
+ 522 620 lineto
+ 522 618 lineto
+ 482 618 lineto
+ 484 620 lineto
+ 478 618 lineto
+ 474 616 lineto
+ 470 612 lineto
+ 468 608 lineto
+ 466 602 lineto
+ 466 592 lineto
+ 468 586 lineto
+ 470 584 lineto
+ 474 580 lineto
+ 478 578 lineto
+ 484 576 lineto
+ 528 576 lineto
+ 534 578 lineto
+ 538 580 lineto
+ 542 584 lineto
+closepath
+%end path
+fill
+%new path
+ 432 216 moveto
+ 430 212 lineto
+ 428 206 lineto
+ 428 196 lineto
+ 430 190 lineto
+ 432 186 lineto
+ 436 182 lineto
+ 440 180 lineto
+ 496 180 lineto
+ 498 182 lineto
+ 502 186 lineto
+ 504 190 lineto
+ 506 196 lineto
+ 508 196 lineto
+ 508 206 lineto
+ 506 212 lineto
+ 504 216 lineto
+ 500 220 lineto
+ 496 222 lineto
+ 490 224 lineto
+ 484 224 lineto
+ 484 222 lineto
+ 444 222 lineto
+ 446 224 lineto
+ 440 222 lineto
+ 436 220 lineto
+ 432 216 lineto
+closepath
+%end path
+fill
+%new path
+ 470 216 moveto
+ 468 212 lineto
+ 466 206 lineto
+ 466 200 lineto
+ 468 200 lineto
+ 468 194 lineto
+ 466 196 lineto
+ 468 190 lineto
+ 470 186 lineto
+ 474 182 lineto
+ 478 180 lineto
+ 534 180 lineto
+ 538 182 lineto
+ 542 186 lineto
+ 544 190 lineto
+ 546 196 lineto
+ 546 206 lineto
+ 544 212 lineto
+ 542 216 lineto
+ 538 220 lineto
+ 534 222 lineto
+ 528 224 lineto
+ 522 224 lineto
+ 522 222 lineto
+ 482 222 lineto
+ 484 224 lineto
+ 478 222 lineto
+ 474 220 lineto
+ 470 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_N
+(
+newpath
+%new path
+ 252 612 moveto
+ 250 608 lineto
+ 248 602 lineto
+ 246 602 lineto
+ 246 202 lineto
+ 248 202 lineto
+ 248 196 lineto
+ 250 190 lineto
+ 252 188 lineto
+ 256 184 lineto
+ 258 182 lineto
+ 264 180 lineto
+ 270 180 lineto
+ 276 182 lineto
+ 280 184 lineto
+ 284 188 lineto
+ 286 190 lineto
+ 288 196 lineto
+ 288 602 lineto
+ 286 608 lineto
+ 284 612 lineto
+ 280 616 lineto
+ 276 618 lineto
+ 270 620 lineto
+ 264 620 lineto
+ 264 620 lineto
+ 258 618 lineto
+ 256 616 lineto
+ 252 612 lineto
+closepath
+%end path
+fill
+%new path
+ 452 612 moveto
+ 450 608 lineto
+ 448 602 lineto
+ 448 196 lineto
+ 450 190 lineto
+ 452 188 lineto
+ 456 184 lineto
+ 460 182 lineto
+ 466 180 lineto
+ 472 180 lineto
+ 478 182 lineto
+ 482 184 lineto
+ 486 188 lineto
+ 488 190 lineto
+ 490 196 lineto
+ 490 602 lineto
+ 488 608 lineto
+ 486 612 lineto
+ 482 616 lineto
+ 478 618 lineto
+ 472 620 lineto
+ 466 620 lineto
+ 466 618 lineto
+ 464 618 lineto
+ 466 620 lineto
+ 460 618 lineto
+ 456 616 lineto
+ 452 612 lineto
+closepath
+%end path
+fill
+%new path
+ 266 618 moveto
+ 260 612 258 604 258 598 curveto
+ 260 598 lineto
+ 260 590 264 582 270 576 curveto
+ 274 572 282 568 290 568 curveto
+ 290 558 376 322 422 198 curveto
+ 424 194 426 190 430 186 curveto
+ 436 182 444 180 452 180 curveto
+ 470 180 lineto
+ 476 186 478 194 478 200 curveto
+ 476 200 lineto
+ 476 208 472 216 466 222 curveto
+ 462 226 454 230 446 230 curveto
+ 446 240 360 476 314 600 curveto
+ 312 604 310 608 306 612 curveto
+ 300 616 292 620 284 620 curveto
+ 284 618 lineto
+ 266 618 lineto
+closepath
+%end path
+fill
+%new path
+ 284 584 moveto
+ 286 586 lineto
+ 288 592 lineto
+ 288 598 lineto
+ 286 600 lineto
+ 286 604 lineto
+ 288 602 lineto
+ 286 608 lineto
+ 284 612 lineto
+ 280 616 lineto
+ 276 618 lineto
+ 270 620 lineto
+ 264 620 lineto
+ 264 618 lineto
+ 216 618 lineto
+ 216 620 lineto
+ 210 618 lineto
+ 208 616 lineto
+ 204 612 lineto
+ 202 608 lineto
+ 200 602 lineto
+ 198 602 lineto
+ 198 598 lineto
+ 200 598 lineto
+ 200 592 lineto
+ 202 586 lineto
+ 204 584 lineto
+ 208 580 lineto
+ 210 578 lineto
+ 216 576 lineto
+ 270 576 lineto
+ 276 578 lineto
+ 280 580 lineto
+ 284 584 lineto
+closepath
+%end path
+fill
+%new path
+ 204 216 moveto
+ 202 212 lineto
+ 200 206 lineto
+ 198 206 lineto
+ 198 200 lineto
+ 200 202 lineto
+ 200 196 lineto
+ 202 190 lineto
+ 204 186 lineto
+ 208 182 lineto
+ 210 180 lineto
+ 276 180 lineto
+ 280 182 lineto
+ 284 186 lineto
+ 286 190 lineto
+ 288 196 lineto
+ 288 206 lineto
+ 286 212 lineto
+ 284 216 lineto
+ 280 220 lineto
+ 276 222 lineto
+ 270 224 lineto
+ 264 224 lineto
+ 264 222 lineto
+ 216 222 lineto
+ 216 224 lineto
+ 210 222 lineto
+ 208 220 lineto
+ 204 216 lineto
+closepath
+%end path
+fill
+%new path
+ 252 216 moveto
+ 250 212 lineto
+ 248 206 lineto
+ 248 196 lineto
+ 250 190 lineto
+ 252 186 lineto
+ 256 182 lineto
+ 258 180 lineto
+ 324 180 lineto
+ 326 182 lineto
+ 330 186 lineto
+ 332 190 lineto
+ 334 196 lineto
+ 336 196 lineto
+ 336 202 lineto
+ 334 200 lineto
+ 334 206 lineto
+ 332 212 lineto
+ 330 216 lineto
+ 326 220 lineto
+ 324 222 lineto
+ 318 224 lineto
+ 312 224 lineto
+ 310 222 lineto
+ 264 222 lineto
+ 264 224 lineto
+ 258 222 lineto
+ 256 220 lineto
+ 252 216 lineto
+closepath
+%end path
+fill
+%new path
+ 486 584 moveto
+ 488 586 lineto
+ 490 592 lineto
+ 490 598 lineto
+ 488 600 lineto
+ 488 602 lineto
+ 486 608 lineto
+ 484 612 lineto
+ 480 616 lineto
+ 478 618 lineto
+ 472 620 lineto
+ 466 620 lineto
+ 464 618 lineto
+ 418 618 lineto
+ 418 620 lineto
+ 412 618 lineto
+ 410 616 lineto
+ 406 612 lineto
+ 404 608 lineto
+ 402 602 lineto
+ 400 602 lineto
+ 400 598 lineto
+ 402 598 lineto
+ 402 592 lineto
+ 404 586 lineto
+ 406 584 lineto
+ 410 580 lineto
+ 412 578 lineto
+ 418 576 lineto
+ 472 576 lineto
+ 478 578 lineto
+ 482 580 lineto
+ 486 584 lineto
+closepath
+%end path
+fill
+%new path
+ 532 584 moveto
+ 534 586 lineto
+ 536 592 lineto
+ 538 594 lineto
+ 538 598 lineto
+ 536 596 lineto
+ 536 602 lineto
+ 534 608 lineto
+ 532 612 lineto
+ 528 616 lineto
+ 526 618 lineto
+ 520 620 lineto
+ 514 620 lineto
+ 512 618 lineto
+ 464 618 lineto
+ 466 620 lineto
+ 460 618 lineto
+ 456 616 lineto
+ 452 612 lineto
+ 450 608 lineto
+ 448 602 lineto
+ 448 592 lineto
+ 450 586 lineto
+ 452 584 lineto
+ 456 580 lineto
+ 460 578 lineto
+ 466 576 lineto
+ 520 576 lineto
+ 526 578 lineto
+ 528 580 lineto
+ 532 584 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_O
+(
+newpath
+%new path
+ 368 582 moveto
+ 340 582 308 582 292 564 curveto
+ 288 562 286 558 284 554 curveto
+ 268 526 268 458 268 406 curveto
+ 270 406 lineto
+ 270 352 270 276 286 244 curveto
+ 288 240 290 236 294 234 curveto
+ 312 216 342 214 370 214 curveto
+ 370 216 lineto
+ 396 216 426 218 444 236 curveto
+ 448 238 450 242 452 246 curveto
+ 468 278 468 354 468 408 curveto
+ 466 408 lineto
+ 466 460 466 528 450 556 curveto
+ 448 560 446 564 442 566 curveto
+ 426 584 394 584 368 584 curveto
+closepath
+%end path
+%new path
+ 368 626 moveto
+ 324 626 276 626 250 600 curveto
+ 246 596 244 594 242 590 curveto
+ 218 554 218 464 218 398 curveto
+ 220 398 lineto
+ 220 332 220 242 244 206 curveto
+ 246 202 248 200 252 196 curveto
+ 278 172 326 172 370 172 curveto
+ 370 174 lineto
+ 412 174 460 174 486 198 curveto
+ 490 202 492 204 494 208 curveto
+ 518 244 518 334 518 400 curveto
+ 516 400 lineto
+ 516 466 516 556 492 592 curveto
+ 490 596 488 598 484 602 curveto
+ 458 628 410 628 368 628 curveto
+closepath
+%end path
+eofill
+) def
+
+/The_letter_P
+(
+newpath
+%new path
+ 254 612 moveto
+ 252 608 lineto
+ 250 602 lineto
+ 248 602 lineto
+ 248 202 lineto
+ 250 202 lineto
+ 250 196 lineto
+ 252 190 lineto
+ 254 188 lineto
+ 258 184 lineto
+ 260 182 lineto
+ 266 180 lineto
+ 282 180 lineto
+ 288 182 lineto
+ 292 184 lineto
+ 296 188 lineto
+ 298 190 lineto
+ 300 196 lineto
+ 300 602 lineto
+ 298 608 lineto
+ 296 612 lineto
+ 292 616 lineto
+ 288 618 lineto
+ 282 620 lineto
+ 276 620 lineto
+ 276 618 lineto
+ 266 618 lineto
+ 266 620 lineto
+ 260 618 lineto
+ 258 616 lineto
+ 254 612 lineto
+closepath
+%end path
+fill
+%new path
+ 276 576 moveto
+ 380 576 lineto
+ 380 574 lineto
+ 406 574 430 566 448 548 curveto
+ 448 548 450 546 450 546 curveto
+ 466 530 476 508 476 486 curveto
+ 474 486 lineto
+ 474 464 464 442 448 426 curveto
+ 448 426 446 424 446 424 curveto
+ 428 406 404 398 378 398 curveto
+ 274 398 lineto
+ 274 354 lineto
+ 276 356 lineto
+ 392 356 lineto
+ 428 356 462 370 486 394 curveto
+ 488 394 488 394 488 396 curveto
+ 512 420 526 454 526 488 curveto
+ 524 488 lineto
+ 524 522 510 556 486 580 curveto
+ 486 582 486 582 484 582 curveto
+ 460 606 426 620 390 620 curveto
+ 390 618 lineto
+ 274 618 lineto
+ 274 574 lineto
+closepath
+%end path
+fill
+%new path
+ 290 584 moveto
+ 292 586 lineto
+ 294 592 lineto
+ 296 594 lineto
+ 296 598 lineto
+ 294 596 lineto
+ 294 602 lineto
+ 292 608 lineto
+ 290 612 lineto
+ 286 616 lineto
+ 284 618 lineto
+ 278 620 lineto
+ 272 620 lineto
+ 270 618 lineto
+ 214 618 lineto
+ 216 620 lineto
+ 210 618 lineto
+ 206 616 lineto
+ 202 612 lineto
+ 200 608 lineto
+ 198 602 lineto
+ 198 592 lineto
+ 200 586 lineto
+ 202 584 lineto
+ 206 580 lineto
+ 210 578 lineto
+ 216 576 lineto
+ 278 576 lineto
+ 284 578 lineto
+ 286 580 lineto
+ 290 584 lineto
+closepath
+%end path
+fill
+%new path
+ 320 584 moveto
+ 322 586 lineto
+ 324 592 lineto
+ 326 594 lineto
+ 326 598 lineto
+ 324 596 lineto
+ 324 602 lineto
+ 322 608 lineto
+ 320 612 lineto
+ 316 616 lineto
+ 314 618 lineto
+ 308 620 lineto
+ 302 620 lineto
+ 300 618 lineto
+ 270 618 lineto
+ 272 620 lineto
+ 266 618 lineto
+ 262 616 lineto
+ 258 612 lineto
+ 256 608 lineto
+ 254 602 lineto
+ 254 592 lineto
+ 256 586 lineto
+ 258 584 lineto
+ 262 580 lineto
+ 266 578 lineto
+ 272 576 lineto
+ 308 576 lineto
+ 314 578 lineto
+ 316 580 lineto
+ 320 584 lineto
+closepath
+%end path
+fill
+%new path
+ 202 216 moveto
+ 200 212 lineto
+ 198 206 lineto
+ 198 196 lineto
+ 200 190 lineto
+ 202 186 lineto
+ 206 182 lineto
+ 210 180 lineto
+ 284 180 lineto
+ 286 182 lineto
+ 290 186 lineto
+ 292 190 lineto
+ 294 196 lineto
+ 296 196 lineto
+ 296 202 lineto
+ 294 200 lineto
+ 294 206 lineto
+ 292 212 lineto
+ 290 216 lineto
+ 286 220 lineto
+ 284 222 lineto
+ 278 224 lineto
+ 272 224 lineto
+ 270 222 lineto
+ 214 222 lineto
+ 216 224 lineto
+ 210 222 lineto
+ 206 220 lineto
+ 202 216 lineto
+closepath
+%end path
+fill
+%new path
+ 258 216 moveto
+ 256 212 lineto
+ 254 206 lineto
+ 254 196 lineto
+ 256 190 lineto
+ 258 186 lineto
+ 262 182 lineto
+ 266 180 lineto
+ 340 180 lineto
+ 342 182 lineto
+ 346 186 lineto
+ 348 190 lineto
+ 350 196 lineto
+ 352 196 lineto
+ 352 202 lineto
+ 350 200 lineto
+ 350 206 lineto
+ 348 212 lineto
+ 346 216 lineto
+ 342 220 lineto
+ 340 222 lineto
+ 334 224 lineto
+ 328 224 lineto
+ 326 222 lineto
+ 270 222 lineto
+ 272 224 lineto
+ 266 222 lineto
+ 262 220 lineto
+ 258 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_Q
+(
+newpath
+%new path
+ 368 582 moveto
+ 340 582 310 580 292 564 curveto
+ 288 560 286 556 284 552 curveto
+ 268 524 268 450 268 398 curveto
+ 270 398 lineto
+ 270 346 270 272 286 244 curveto
+ 288 240 290 236 294 232 curveto
+ 312 216 342 214 370 214 curveto
+ 370 216 lineto
+ 396 216 426 218 444 234 curveto
+ 448 238 450 242 452 246 curveto
+ 468 274 468 348 468 400 curveto
+ 466 400 lineto
+ 466 452 466 526 450 554 curveto
+ 448 558 446 562 442 566 curveto
+ 424 582 394 584 368 584 curveto
+closepath
+%end path
+%new path
+ 368 626 moveto
+ 324 626 276 626 250 600 curveto
+ 246 596 244 594 242 590 curveto
+ 218 554 218 464 218 398 curveto
+ 220 398 lineto
+ 220 332 220 242 244 206 curveto
+ 246 202 248 200 252 196 curveto
+ 278 172 326 172 370 172 curveto
+ 370 174 lineto
+ 412 174 460 174 486 198 curveto
+ 490 202 492 204 494 208 curveto
+ 518 244 518 334 518 400 curveto
+ 516 400 lineto
+ 516 466 516 556 492 592 curveto
+ 490 596 488 598 484 602 curveto
+ 458 628 410 628 368 628 curveto
+closepath
+%end path
+eofill
+%new path
+ 396 302 moveto
+ 394 302 392 304 390 304 curveto
+ 390 302 lineto
+ 362 302 lineto
+ 358 302 354 300 352 298 curveto
+ 350 296 348 292 348 288 curveto
+ 350 288 lineto
+ 350 286 350 284 352 282 curveto
+ 386 218 418 154 452 90 curveto
+ 454 88 454 86 456 86 curveto
+ 460 82 464 80 470 80 curveto
+ 470 82 lineto
+ 496 82 lineto
+ 500 82 502 84 504 86 curveto
+ 508 88 508 92 508 96 curveto
+ 506 96 lineto
+ 506 102 lineto
+ 470 168 434 232 398 300 curveto
+ 398 300 396 300 396 302 curveto
+closepath
+%end path
+fill
+) def
+
+/The_letter_R
+(
+newpath
+%new path
+ 246 612 moveto
+ 244 608 lineto
+ 242 602 lineto
+ 240 602 lineto
+ 240 202 lineto
+ 242 202 lineto
+ 242 196 lineto
+ 244 190 lineto
+ 246 188 lineto
+ 250 184 lineto
+ 252 182 lineto
+ 258 180 lineto
+ 274 180 lineto
+ 280 182 lineto
+ 284 184 lineto
+ 288 188 lineto
+ 290 190 lineto
+ 292 196 lineto
+ 292 602 lineto
+ 290 608 lineto
+ 288 612 lineto
+ 284 616 lineto
+ 280 618 lineto
+ 274 620 lineto
+ 268 620 lineto
+ 268 618 lineto
+ 258 618 lineto
+ 258 620 lineto
+ 252 618 lineto
+ 250 616 lineto
+ 246 612 lineto
+closepath
+%end path
+fill
+%new path
+ 268 576 moveto
+ 348 576 lineto
+ 348 574 lineto
+ 372 574 396 566 414 552 curveto
+ 416 550 418 548 420 546 curveto
+ 434 532 442 516 442 498 curveto
+ 440 498 lineto
+ 440 478 432 462 418 448 curveto
+ 416 446 414 444 412 442 curveto
+ 394 428 370 420 346 420 curveto
+ 266 420 lineto
+ 266 376 lineto
+ 268 378 lineto
+ 354 378 lineto
+ 390 378 424 390 452 414 curveto
+ 454 416 456 418 458 418 curveto
+ 478 440 492 468 492 500 curveto
+ 490 500 lineto
+ 490 530 476 558 456 580 curveto
+ 454 580 452 582 450 584 curveto
+ 422 608 388 620 352 620 curveto
+ 352 618 lineto
+ 266 618 lineto
+ 266 574 lineto
+closepath
+%end path
+fill
+%new path
+ 338 414 moveto
+ 336 410 lineto
+ 334 404 lineto
+ 332 404 lineto
+ 332 398 lineto
+ 334 400 lineto
+ 334 394 lineto
+ 336 388 lineto
+ 338 384 lineto
+ 342 380 lineto
+ 344 378 lineto
+ 350 376 lineto
+ 352 376 lineto
+ 362 376 372 374 382 372 curveto
+ 376 374 lineto
+ 384 370 392 366 398 362 curveto
+ 398 364 lineto
+ 394 366 lineto
+ 396 364 lineto
+ 400 362 404 358 408 354 curveto
+ 410 352 lineto
+ 416 350 lineto
+ 404 358 lineto
+ 400 368 lineto
+ 402 362 lineto
+ 404 358 lineto
+ 408 354 412 350 414 346 curveto
+ 412 346 lineto
+ 410 350 lineto
+ 412 348 lineto
+ 416 344 418 338 420 332 curveto
+ 418 338 lineto
+ 420 330 422 322 422 316 curveto
+ 424 310 lineto
+ 426 308 lineto
+ 422 316 lineto
+ 426 332 lineto
+ 424 328 lineto
+ 422 322 lineto
+ 420 322 lineto
+ 420 268 lineto
+ 422 268 lineto
+ 422 262 lineto
+ 422 248 424 234 428 222 curveto
+ 426 224 lineto
+ 428 218 lineto
+ 430 216 lineto
+ 432 210 434 206 436 202 curveto
+ 438 200 lineto
+ 438 198 lineto
+ 440 196 442 192 444 190 curveto
+ 444 192 lineto
+ 448 188 lineto
+ 448 186 lineto
+ 450 184 454 182 456 182 curveto
+ 454 182 lineto
+ 458 180 lineto
+ 462 180 464 178 468 176 curveto
+ 468 178 lineto
+ 474 176 lineto
+ 474 174 lineto
+ 480 172 484 172 492 172 curveto
+ 496 172 lineto
+ 498 174 lineto
+ 500 174 504 174 508 176 curveto
+ 506 174 lineto
+ 512 176 lineto
+ 514 178 lineto
+ 516 178 520 180 522 180 curveto
+ 524 180 lineto
+ 526 182 lineto
+ 528 184 530 184 532 186 curveto
+ 530 186 lineto
+ 534 190 lineto
+ 536 190 lineto
+ 538 192 540 196 540 198 curveto
+ 540 196 lineto
+ 542 200 lineto
+ 546 206 548 210 550 216 curveto
+ 548 214 lineto
+ 550 220 lineto
+ 552 222 lineto
+ 554 230 556 238 556 248 curveto
+ 556 252 lineto
+ 554 258 lineto
+ 552 262 lineto
+ 548 266 lineto
+ 544 268 lineto
+ 538 270 lineto
+ 532 270 lineto
+ 532 268 lineto
+ 520 268 lineto
+ 522 270 lineto
+ 516 268 lineto
+ 512 266 lineto
+ 508 262 lineto
+ 506 258 lineto
+ 504 252 lineto
+ 504 240 502 230 500 222 curveto
+ 502 228 lineto
+ 500 224 498 220 496 216 curveto
+ 498 216 lineto
+ 500 220 lineto
+ 498 218 lineto
+ 496 216 496 214 494 214 curveto
+ 492 212 lineto
+ 490 206 lineto
+ 490 200 lineto
+ 494 214 lineto
+ 514 222 lineto
+ 508 222 lineto
+ 502 220 lineto
+ 498 218 lineto
+ 496 216 496 216 494 214 curveto
+ 494 216 lineto
+ 498 218 lineto
+ 496 216 lineto
+ 496 214 494 214 492 214 curveto
+ 498 216 lineto
+ 494 214 492 214 490 214 curveto
+ 490 216 lineto
+ 484 214 lineto
+ 482 212 lineto
+ 478 208 lineto
+ 496 216 lineto
+ 510 208 lineto
+ 506 212 lineto
+ 502 214 lineto
+ 496 216 lineto
+ 490 216 486 216 482 218 curveto
+ 482 216 lineto
+ 488 214 lineto
+ 488 216 lineto
+ 484 216 482 218 480 220 curveto
+ 482 218 lineto
+ 484 216 lineto
+ 484 218 lineto
+ 482 218 480 220 478 222 curveto
+ 480 220 lineto
+ 476 222 lineto
+ 470 224 lineto
+ 484 216 lineto
+ 488 208 lineto
+ 486 214 lineto
+ 484 216 lineto
+ 482 218 lineto
+ 480 220 478 222 478 224 curveto
+ 478 222 lineto
+ 480 220 lineto
+ 476 224 474 228 474 234 curveto
+ 474 232 lineto
+ 476 226 lineto
+ 476 228 lineto
+ 472 240 470 254 470 270 curveto
+ 472 268 lineto
+ 470 274 lineto
+ 468 278 lineto
+ 472 268 lineto
+ 468 254 lineto
+ 470 256 lineto
+ 472 262 lineto
+ 472 322 lineto
+ 470 324 lineto
+ 470 332 468 338 466 346 curveto
+ 468 344 lineto
+ 466 350 lineto
+ 464 352 lineto
+ 462 358 460 364 456 370 curveto
+ 456 368 lineto
+ 454 372 lineto
+ 450 376 448 380 444 384 curveto
+ 440 388 lineto
+ 436 392 430 396 426 400 curveto
+ 424 402 lineto
+ 422 402 lineto
+ 416 408 406 412 398 414 curveto
+ 392 416 lineto
+ 380 420 368 422 356 422 curveto
+ 350 422 lineto
+ 344 420 lineto
+ 342 418 lineto
+ 338 414 lineto
+closepath
+%end path
+fill
+%new path
+ 282 584 moveto
+ 284 586 lineto
+ 286 592 lineto
+ 288 594 lineto
+ 288 598 lineto
+ 286 596 lineto
+ 286 602 lineto
+ 284 608 lineto
+ 282 612 lineto
+ 278 616 lineto
+ 276 618 lineto
+ 270 620 lineto
+ 264 620 lineto
+ 262 618 lineto
+ 210 618 lineto
+ 210 620 lineto
+ 204 618 lineto
+ 202 616 lineto
+ 198 612 lineto
+ 196 608 lineto
+ 194 602 lineto
+ 192 602 lineto
+ 192 598 lineto
+ 194 598 lineto
+ 194 592 lineto
+ 196 586 lineto
+ 198 584 lineto
+ 202 580 lineto
+ 204 578 lineto
+ 210 576 lineto
+ 270 576 lineto
+ 276 578 lineto
+ 278 580 lineto
+ 282 584 lineto
+closepath
+%end path
+fill
+%new path
+ 310 584 moveto
+ 312 586 lineto
+ 314 592 lineto
+ 316 594 lineto
+ 316 598 lineto
+ 314 596 lineto
+ 314 602 lineto
+ 312 608 lineto
+ 310 612 lineto
+ 306 616 lineto
+ 304 618 lineto
+ 298 620 lineto
+ 292 620 lineto
+ 290 618 lineto
+ 262 618 lineto
+ 264 620 lineto
+ 258 618 lineto
+ 254 616 lineto
+ 250 612 lineto
+ 248 608 lineto
+ 246 602 lineto
+ 246 592 lineto
+ 248 586 lineto
+ 250 584 lineto
+ 254 580 lineto
+ 258 578 lineto
+ 264 576 lineto
+ 298 576 lineto
+ 304 578 lineto
+ 306 580 lineto
+ 310 584 lineto
+closepath
+%end path
+fill
+%new path
+ 198 216 moveto
+ 196 212 lineto
+ 194 206 lineto
+ 192 206 lineto
+ 192 200 lineto
+ 194 202 lineto
+ 194 196 lineto
+ 196 190 lineto
+ 198 186 lineto
+ 202 182 lineto
+ 204 180 lineto
+ 276 180 lineto
+ 278 182 lineto
+ 282 186 lineto
+ 284 190 lineto
+ 286 196 lineto
+ 288 196 lineto
+ 288 202 lineto
+ 286 200 lineto
+ 286 206 lineto
+ 284 212 lineto
+ 282 216 lineto
+ 278 220 lineto
+ 276 222 lineto
+ 270 224 lineto
+ 264 224 lineto
+ 262 222 lineto
+ 210 222 lineto
+ 210 224 lineto
+ 204 222 lineto
+ 202 220 lineto
+ 198 216 lineto
+closepath
+%end path
+fill
+%new path
+ 250 216 moveto
+ 248 212 lineto
+ 246 206 lineto
+ 246 196 lineto
+ 248 190 lineto
+ 250 186 lineto
+ 254 182 lineto
+ 258 180 lineto
+ 328 180 lineto
+ 330 182 lineto
+ 334 186 lineto
+ 336 190 lineto
+ 338 196 lineto
+ 340 196 lineto
+ 340 202 lineto
+ 338 200 lineto
+ 338 206 lineto
+ 336 212 lineto
+ 334 216 lineto
+ 330 220 lineto
+ 328 222 lineto
+ 322 224 lineto
+ 316 224 lineto
+ 314 222 lineto
+ 262 222 lineto
+ 264 224 lineto
+ 258 222 lineto
+ 254 220 lineto
+ 250 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_S
+(
+newpath
+%new path
+ 352 628 moveto
+ 346 628 lineto
+ 346 626 lineto
+ 332 626 318 624 306 620 curveto
+ 300 618 lineto
+ 290 614 280 610 272 604 curveto
+ 272 606 lineto
+ 270 604 lineto
+ 268 602 lineto
+ 264 600 260 596 256 594 curveto
+ 256 592 254 590 252 588 curveto
+ 252 590 lineto
+ 248 586 lineto
+ 248 584 lineto
+ 244 580 240 574 236 570 curveto
+ 234 568 lineto
+ 234 566 lineto
+ 228 560 226 552 222 544 curveto
+ 224 546 lineto
+ 222 540 lineto
+ 220 538 lineto
+ 218 530 216 520 216 510 curveto
+ 218 512 lineto
+ 218 504 lineto
+ 218 496 220 486 222 478 curveto
+ 224 472 lineto
+ 228 464 230 456 236 450 curveto
+ 234 450 lineto
+ 236 448 lineto
+ 238 446 lineto
+ 240 440 244 436 250 432 curveto
+ 248 432 lineto
+ 252 428 lineto
+ 254 428 lineto
+ 258 422 264 418 270 414 curveto
+ 272 412 lineto
+ 274 412 lineto
+ 282 406 292 402 302 398 curveto
+ 300 398 lineto
+ 306 396 lineto
+ 308 396 lineto
+ 312 394 314 394 318 392 curveto
+ 318 392 410 372 410 372 curveto
+ 412 370 416 370 418 368 curveto
+ 418 370 lineto
+ 412 372 lineto
+ 412 370 lineto
+ 422 368 430 364 438 358 curveto
+ 438 360 lineto
+ 434 362 lineto
+ 436 360 lineto
+ 440 356 446 352 450 348 curveto
+ 452 346 lineto
+ 458 344 lineto
+ 446 352 lineto
+ 442 362 lineto
+ 444 356 lineto
+ 446 352 lineto
+ 452 346 456 342 460 336 curveto
+ 458 338 lineto
+ 456 340 lineto
+ 458 340 lineto
+ 462 332 466 324 470 316 curveto
+ 468 316 lineto
+ 466 322 lineto
+ 468 322 lineto
+ 470 312 472 302 472 292 curveto
+ 470 292 lineto
+ 472 286 lineto
+ 474 284 lineto
+ 470 292 lineto
+ 474 308 lineto
+ 472 304 lineto
+ 470 298 lineto
+ 470 286 468 276 466 266 curveto
+ 466 268 lineto
+ 468 274 lineto
+ 468 272 lineto
+ 464 264 460 256 456 250 curveto
+ 458 254 lineto
+ 458 252 lineto
+ 454 246 450 242 444 236 curveto
+ 446 238 lineto
+ 444 234 lineto
+ 442 228 lineto
+ 442 222 lineto
+ 446 238 lineto
+ 464 246 lineto
+ 458 246 lineto
+ 452 244 lineto
+ 450 242 lineto
+ 448 240 lineto
+ 444 236 438 232 434 228 curveto
+ 438 230 lineto
+ 436 230 lineto
+ 428 224 420 220 412 218 curveto
+ 418 220 lineto
+ 406 216 394 214 382 214 curveto
+ 384 216 lineto
+ 378 214 lineto
+ 374 212 lineto
+ 370 208 lineto
+ 368 204 lineto
+ 366 198 lineto
+ 366 188 lineto
+ 368 182 lineto
+ 370 180 lineto
+ 374 176 lineto
+ 378 174 lineto
+ 384 172 lineto
+ 390 172 lineto
+ 390 174 lineto
+ 404 174 416 176 428 180 curveto
+ 426 178 lineto
+ 432 180 lineto
+ 434 180 lineto
+ 444 184 452 188 460 194 curveto
+ 460 192 lineto
+ 462 194 lineto
+ 464 196 lineto
+ 470 198 474 202 480 208 curveto
+ 480 208 lineto
+ 484 212 lineto
+ 484 214 lineto
+ 490 218 494 224 498 230 curveto
+ 498 228 lineto
+ 500 232 lineto
+ 506 240 510 248 512 258 curveto
+ 512 256 lineto
+ 514 262 lineto
+ 514 264 lineto
+ 518 274 520 286 520 296 curveto
+ 520 302 lineto
+ 518 302 lineto
+ 518 314 516 324 512 334 curveto
+ 514 334 lineto
+ 512 340 lineto
+ 510 340 lineto
+ 508 350 504 358 498 366 curveto
+ 500 364 lineto
+ 498 368 lineto
+ 496 368 lineto
+ 492 374 488 380 482 386 curveto
+ 484 384 lineto
+ 480 388 lineto
+ 478 390 lineto
+ 474 394 468 400 462 404 curveto
+ 462 402 lineto
+ 460 404 lineto
+ 458 406 lineto
+ 450 410 442 416 432 418 curveto
+ 426 420 lineto
+ 422 422 418 422 416 424 curveto
+ 416 424 324 444 324 444 curveto
+ 320 446 318 446 314 448 curveto
+ 316 446 lineto
+ 322 444 lineto
+ 320 446 lineto
+ 310 448 302 452 294 458 curveto
+ 296 458 lineto
+ 298 456 lineto
+ 292 460 286 464 282 468 curveto
+ 280 470 lineto
+ 274 472 lineto
+ 286 464 lineto
+ 290 454 lineto
+ 288 460 lineto
+ 286 464 lineto
+ 282 470 278 474 274 478 curveto
+ 276 478 lineto
+ 278 474 lineto
+ 276 476 lineto
+ 272 482 268 488 266 496 curveto
+ 268 496 lineto
+ 270 490 lineto
+ 268 490 lineto
+ 266 498 264 506 264 516 curveto
+ 266 514 lineto
+ 264 520 lineto
+ 262 524 lineto
+ 266 514 lineto
+ 262 500 lineto
+ 264 502 lineto
+ 266 508 lineto
+ 266 510 lineto
+ 266 518 268 528 270 536 curveto
+ 270 534 lineto
+ 268 528 lineto
+ 268 530 lineto
+ 270 536 274 544 278 550 curveto
+ 278 548 lineto
+ 276 546 lineto
+ 280 552 284 556 288 560 curveto
+ 286 560 lineto
+ 288 562 lineto
+ 290 568 lineto
+ 290 574 lineto
+ 286 560 lineto
+ 268 552 lineto
+ 274 552 lineto
+ 280 554 lineto
+ 282 556 lineto
+ 284 556 lineto
+ 286 558 286 560 288 562 curveto
+ 292 564 296 568 300 570 curveto
+ 298 568 lineto
+ 296 566 lineto
+ 296 568 lineto
+ 304 572 312 578 322 580 curveto
+ 316 578 lineto
+ 328 582 340 584 354 584 curveto
+ 352 584 lineto
+ 358 586 lineto
+ 362 588 lineto
+ 366 592 lineto
+ 368 594 lineto
+ 370 600 lineto
+ 370 610 lineto
+ 368 616 lineto
+ 366 620 lineto
+ 362 624 lineto
+ 358 626 lineto
+ 352 628 lineto
+closepath
+%end path
+fill
+%new path
+ 502 498 moveto
+ 500 500 lineto
+ 498 510 496 520 494 530 curveto
+ 492 536 lineto
+ 488 546 482 556 478 566 curveto
+ 478 564 lineto
+ 476 568 lineto
+ 472 574 466 580 462 584 curveto
+ 458 588 lineto
+ 452 594 448 598 442 602 curveto
+ 440 604 lineto
+ 438 604 lineto
+ 430 610 420 614 410 618 curveto
+ 404 620 lineto
+ 388 626 370 628 352 628 curveto
+ 346 628 lineto
+ 340 626 lineto
+ 338 624 lineto
+ 334 620 lineto
+ 332 616 lineto
+ 330 610 lineto
+ 328 610 lineto
+ 328 606 lineto
+ 330 606 lineto
+ 330 600 lineto
+ 332 594 lineto
+ 334 592 lineto
+ 338 588 lineto
+ 340 586 lineto
+ 346 584 lineto
+ 348 582 lineto
+ 364 582 380 580 394 574 curveto
+ 392 576 lineto
+ 386 578 lineto
+ 388 576 lineto
+ 398 574 406 570 414 564 curveto
+ 414 566 lineto
+ 410 568 lineto
+ 412 566 lineto
+ 416 562 422 558 426 554 curveto
+ 428 552 lineto
+ 434 550 lineto
+ 422 558 lineto
+ 418 568 lineto
+ 420 562 lineto
+ 422 558 lineto
+ 428 552 432 548 436 542 curveto
+ 434 542 lineto
+ 432 546 lineto
+ 434 544 lineto
+ 440 536 444 526 448 516 curveto
+ 446 518 lineto
+ 444 524 lineto
+ 446 522 lineto
+ 448 512 450 502 452 492 curveto
+ 450 492 lineto
+ 452 486 lineto
+ 454 484 lineto
+ 458 480 lineto
+ 462 478 lineto
+ 468 476 lineto
+ 484 476 lineto
+ 490 478 lineto
+ 494 480 lineto
+ 498 484 lineto
+ 500 486 lineto
+ 502 492 lineto
+ 502 498 lineto
+closepath
+%end path
+fill
+%new path
+ 402 208 moveto
+ 398 212 lineto
+ 396 214 lineto
+ 390 216 lineto
+ 388 216 lineto
+ 364 216 342 220 322 226 curveto
+ 324 224 lineto
+ 330 222 lineto
+ 328 224 lineto
+ 318 228 306 232 298 238 curveto
+ 302 236 lineto
+ 300 236 lineto
+ 296 240 290 244 286 248 curveto
+ 284 250 lineto
+ 278 252 lineto
+ 290 244 lineto
+ 294 234 lineto
+ 292 240 lineto
+ 290 244 lineto
+ 286 250 282 254 278 258 curveto
+ 280 254 lineto
+ 280 256 lineto
+ 276 262 272 270 270 278 curveto
+ 270 276 lineto
+ 272 270 lineto
+ 272 272 lineto
+ 268 282 266 294 266 308 curveto
+ 268 306 lineto
+ 266 312 lineto
+ 264 316 lineto
+ 260 320 lineto
+ 256 322 lineto
+ 250 324 lineto
+ 244 324 lineto
+ 244 322 lineto
+ 234 322 lineto
+ 234 324 lineto
+ 228 322 lineto
+ 226 320 lineto
+ 222 316 lineto
+ 220 312 lineto
+ 218 306 lineto
+ 218 300 lineto
+ 218 286 220 274 224 262 curveto
+ 222 264 lineto
+ 224 258 lineto
+ 226 256 lineto
+ 228 248 232 242 236 234 curveto
+ 236 236 lineto
+ 238 232 lineto
+ 242 226 246 222 250 218 curveto
+ 254 214 lineto
+ 258 208 264 204 270 200 curveto
+ 268 202 lineto
+ 272 200 lineto
+ 272 198 lineto
+ 282 192 294 186 306 182 curveto
+ 304 184 lineto
+ 310 182 lineto
+ 312 180 lineto
+ 334 176 358 172 384 172 curveto
+ 390 172 lineto
+ 396 174 lineto
+ 398 176 lineto
+ 402 180 lineto
+ 404 182 lineto
+ 406 188 lineto
+ 408 188 lineto
+ 408 194 lineto
+ 406 192 lineto
+ 406 198 lineto
+ 404 204 lineto
+ 402 208 lineto
+closepath
+%end path
+fill
+%new path
+ 498 484 moveto
+ 500 486 lineto
+ 502 492 lineto
+ 502 610 lineto
+ 500 616 lineto
+ 498 620 lineto
+ 494 624 lineto
+ 490 626 lineto
+ 484 628 lineto
+ 478 628 lineto
+ 478 626 lineto
+ 474 626 lineto
+ 474 628 lineto
+ 468 626 lineto
+ 466 624 lineto
+ 462 620 lineto
+ 460 616 lineto
+ 458 610 lineto
+ 456 610 lineto
+ 450 590 444 570 438 552 curveto
+ 438 546 lineto
+ 440 540 lineto
+ 442 540 lineto
+ 446 532 450 524 452 516 curveto
+ 452 518 lineto
+ 450 524 lineto
+ 450 522 lineto
+ 454 512 456 502 456 492 curveto
+ 458 486 lineto
+ 460 484 lineto
+ 464 480 lineto
+ 466 478 lineto
+ 472 476 lineto
+ 484 476 lineto
+ 490 478 lineto
+ 494 480 lineto
+ 498 484 lineto
+closepath
+%end path
+fill
+%new path
+ 222 316 moveto
+ 220 312 lineto
+ 218 306 lineto
+ 216 306 lineto
+ 216 192 lineto
+ 218 194 lineto
+ 218 188 lineto
+ 220 182 lineto
+ 222 180 lineto
+ 226 176 lineto
+ 228 174 lineto
+ 234 172 lineto
+ 240 172 lineto
+ 242 174 lineto
+ 244 174 lineto
+ 244 172 lineto
+ 250 174 lineto
+ 252 176 lineto
+ 256 180 lineto
+ 258 182 lineto
+ 260 188 lineto
+ 262 188 lineto
+ 266 208 272 226 278 244 curveto
+ 278 248 lineto
+ 276 254 lineto
+ 274 256 lineto
+ 270 262 268 270 264 278 curveto
+ 266 276 lineto
+ 268 270 lineto
+ 266 272 lineto
+ 262 282 262 294 262 308 curveto
+ 262 306 lineto
+ 260 312 lineto
+ 258 316 lineto
+ 254 320 lineto
+ 252 322 lineto
+ 246 324 lineto
+ 240 324 lineto
+ 238 322 lineto
+ 234 322 lineto
+ 234 324 lineto
+ 228 322 lineto
+ 226 320 lineto
+ 222 316 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_T
+(
+newpath
+%new path
+ 348 612 moveto
+ 346 608 lineto
+ 344 602 lineto
+ 342 602 lineto
+ 342 202 lineto
+ 344 202 lineto
+ 344 196 lineto
+ 346 190 lineto
+ 348 188 lineto
+ 352 184 lineto
+ 354 182 lineto
+ 360 180 lineto
+ 376 180 lineto
+ 382 182 lineto
+ 386 184 lineto
+ 390 188 lineto
+ 392 190 lineto
+ 394 196 lineto
+ 394 602 lineto
+ 392 608 lineto
+ 390 612 lineto
+ 386 616 lineto
+ 382 618 lineto
+ 376 620 lineto
+ 370 620 lineto
+ 370 618 lineto
+ 360 618 lineto
+ 360 620 lineto
+ 354 618 lineto
+ 352 616 lineto
+ 348 612 lineto
+closepath
+%end path
+fill
+%new path
+ 506 506 moveto
+ 512 506 lineto
+ 512 508 lineto
+ 524 508 lineto
+ 522 506 lineto
+ 528 508 lineto
+ 532 510 lineto
+ 536 514 lineto
+ 538 518 lineto
+ 540 524 lineto
+ 540 602 lineto
+ 538 608 lineto
+ 536 612 lineto
+ 532 616 lineto
+ 528 618 lineto
+ 522 620 lineto
+ 516 620 lineto
+ 516 618 lineto
+ 364 618 lineto
+ 366 620 lineto
+ 360 618 lineto
+ 356 616 lineto
+ 352 612 lineto
+ 350 608 lineto
+ 348 602 lineto
+ 348 592 lineto
+ 350 586 lineto
+ 352 582 lineto
+ 356 578 lineto
+ 360 576 lineto
+ 366 574 lineto
+ 372 574 lineto
+ 372 576 lineto
+ 512 576 lineto
+ 512 574 lineto
+ 518 576 lineto
+ 520 578 lineto
+ 524 582 lineto
+ 506 574 lineto
+ 492 582 lineto
+ 496 578 lineto
+ 500 576 lineto
+ 506 574 lineto
+ 492 582 lineto
+ 488 592 lineto
+ 490 586 lineto
+ 492 582 lineto
+ 488 592 lineto
+ 492 606 lineto
+ 490 604 lineto
+ 488 598 lineto
+ 488 524 lineto
+ 490 518 lineto
+ 492 514 lineto
+ 496 510 lineto
+ 500 508 lineto
+ 506 506 lineto
+closepath
+%end path
+fill
+%new path
+ 244 514 moveto
+ 246 518 lineto
+ 248 524 lineto
+ 248 598 lineto
+ 244 582 lineto
+ 224 574 lineto
+ 230 574 lineto
+ 232 576 lineto
+ 372 576 lineto
+ 372 574 lineto
+ 378 576 lineto
+ 380 578 lineto
+ 384 582 lineto
+ 386 586 lineto
+ 388 592 lineto
+ 390 592 lineto
+ 390 598 lineto
+ 388 596 lineto
+ 388 602 lineto
+ 386 608 lineto
+ 384 612 lineto
+ 380 616 lineto
+ 378 618 lineto
+ 372 620 lineto
+ 366 620 lineto
+ 364 618 lineto
+ 214 618 lineto
+ 214 620 lineto
+ 208 618 lineto
+ 206 616 lineto
+ 202 612 lineto
+ 200 608 lineto
+ 198 602 lineto
+ 196 602 lineto
+ 196 528 lineto
+ 198 530 lineto
+ 198 524 lineto
+ 200 518 lineto
+ 202 514 lineto
+ 206 510 lineto
+ 208 508 lineto
+ 214 506 lineto
+ 220 506 lineto
+ 222 508 lineto
+ 232 508 lineto
+ 230 506 lineto
+ 236 508 lineto
+ 240 510 lineto
+ 244 514 lineto
+closepath
+%end path
+fill
+%new path
+ 280 216 moveto
+ 278 212 lineto
+ 276 206 lineto
+ 276 196 lineto
+ 278 190 lineto
+ 280 186 lineto
+ 284 182 lineto
+ 288 180 lineto
+ 378 180 lineto
+ 380 182 lineto
+ 384 186 lineto
+ 386 190 lineto
+ 388 196 lineto
+ 390 196 lineto
+ 390 202 lineto
+ 388 200 lineto
+ 388 206 lineto
+ 386 212 lineto
+ 384 216 lineto
+ 380 220 lineto
+ 378 222 lineto
+ 372 224 lineto
+ 366 224 lineto
+ 364 222 lineto
+ 292 222 lineto
+ 294 224 lineto
+ 288 222 lineto
+ 284 220 lineto
+ 280 216 lineto
+closepath
+%end path
+fill
+%new path
+ 352 216 moveto
+ 350 212 lineto
+ 348 206 lineto
+ 348 196 lineto
+ 350 190 lineto
+ 352 186 lineto
+ 356 182 lineto
+ 360 180 lineto
+ 448 180 lineto
+ 452 182 lineto
+ 456 186 lineto
+ 458 190 lineto
+ 460 196 lineto
+ 460 206 lineto
+ 458 212 lineto
+ 456 216 lineto
+ 452 220 lineto
+ 448 222 lineto
+ 442 224 lineto
+ 436 224 lineto
+ 436 222 lineto
+ 364 222 lineto
+ 366 224 lineto
+ 360 222 lineto
+ 356 220 lineto
+ 352 216 lineto
+closepath
+%end path
+fill
+%new path
+ 384 584 moveto
+ 386 586 lineto
+ 388 592 lineto
+ 390 594 lineto
+ 390 598 lineto
+ 388 596 lineto
+ 388 602 lineto
+ 386 608 lineto
+ 384 612 lineto
+ 380 616 lineto
+ 378 618 lineto
+ 372 620 lineto
+ 366 620 lineto
+ 364 618 lineto
+ 336 618 lineto
+ 336 620 lineto
+ 330 618 lineto
+ 328 616 lineto
+ 324 612 lineto
+ 322 608 lineto
+ 320 602 lineto
+ 318 602 lineto
+ 318 598 lineto
+ 320 598 lineto
+ 320 592 lineto
+ 322 586 lineto
+ 324 584 lineto
+ 328 580 lineto
+ 330 578 lineto
+ 336 576 lineto
+ 372 576 lineto
+ 378 578 lineto
+ 380 580 lineto
+ 384 584 lineto
+closepath
+%end path
+fill
+%new path
+ 412 584 moveto
+ 414 586 lineto
+ 416 592 lineto
+ 418 594 lineto
+ 418 598 lineto
+ 416 596 lineto
+ 416 602 lineto
+ 414 608 lineto
+ 412 612 lineto
+ 408 616 lineto
+ 406 618 lineto
+ 400 620 lineto
+ 394 620 lineto
+ 392 618 lineto
+ 364 618 lineto
+ 366 620 lineto
+ 360 618 lineto
+ 356 616 lineto
+ 352 612 lineto
+ 350 608 lineto
+ 348 602 lineto
+ 348 592 lineto
+ 350 586 lineto
+ 352 584 lineto
+ 356 580 lineto
+ 360 578 lineto
+ 366 576 lineto
+ 400 576 lineto
+ 406 578 lineto
+ 408 580 lineto
+ 412 584 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_U
+(
+newpath
+%new path
+ 254 612 moveto
+ 252 608 lineto
+ 250 602 lineto
+ 248 602 lineto
+ 248 328 lineto
+ 250 328 lineto
+ 250 322 lineto
+ 252 316 lineto
+ 254 314 lineto
+ 258 310 lineto
+ 260 308 lineto
+ 266 306 lineto
+ 282 306 lineto
+ 288 308 lineto
+ 292 310 lineto
+ 296 314 lineto
+ 298 316 lineto
+ 300 322 lineto
+ 300 602 lineto
+ 298 608 lineto
+ 296 612 lineto
+ 292 616 lineto
+ 288 618 lineto
+ 282 620 lineto
+ 276 620 lineto
+ 276 618 lineto
+ 266 618 lineto
+ 266 620 lineto
+ 260 618 lineto
+ 258 616 lineto
+ 254 612 lineto
+closepath
+%end path
+fill
+%new path
+ 282 346 moveto
+ 276 346 lineto
+ 276 344 lineto
+ 266 344 lineto
+ 266 346 lineto
+ 260 344 lineto
+ 258 342 lineto
+ 254 338 lineto
+ 252 334 lineto
+ 250 328 lineto
+ 250 322 lineto
+ 250 304 252 288 258 272 curveto
+ 256 274 lineto
+ 258 268 lineto
+ 260 266 lineto
+ 264 254 270 244 276 234 curveto
+ 278 232 lineto
+ 278 230 lineto
+ 282 226 284 222 288 218 curveto
+ 290 216 292 212 294 210 curveto
+ 294 212 lineto
+ 298 208 lineto
+ 298 206 lineto
+ 304 200 310 196 316 192 curveto
+ 318 190 lineto
+ 320 190 lineto
+ 328 184 336 180 344 180 curveto
+ 350 178 lineto
+ 360 174 372 172 382 172 curveto
+ 388 172 lineto
+ 388 174 lineto
+ 398 174 410 176 420 180 curveto
+ 418 178 lineto
+ 424 180 lineto
+ 426 180 lineto
+ 434 182 442 186 450 192 curveto
+ 450 190 lineto
+ 452 192 lineto
+ 454 194 lineto
+ 460 198 466 202 472 208 curveto
+ 470 208 lineto
+ 474 212 lineto
+ 476 212 lineto
+ 478 214 480 218 482 220 curveto
+ 486 224 488 228 492 232 curveto
+ 490 232 lineto
+ 492 234 lineto
+ 494 236 lineto
+ 500 246 506 256 510 268 curveto
+ 512 274 lineto
+ 518 290 520 306 520 324 curveto
+ 520 602 lineto
+ 518 608 lineto
+ 516 612 lineto
+ 512 616 lineto
+ 508 618 lineto
+ 502 620 lineto
+ 496 620 lineto
+ 496 618 lineto
+ 484 618 lineto
+ 486 620 lineto
+ 480 618 lineto
+ 476 616 lineto
+ 472 612 lineto
+ 470 608 lineto
+ 468 602 lineto
+ 468 328 lineto
+ 468 310 466 294 460 278 curveto
+ 462 278 lineto
+ 464 284 lineto
+ 462 284 lineto
+ 458 272 452 260 446 250 curveto
+ 448 252 lineto
+ 450 254 lineto
+ 448 254 lineto
+ 446 250 444 248 442 244 curveto
+ 438 242 436 238 432 236 curveto
+ 434 236 lineto
+ 432 234 lineto
+ 430 228 lineto
+ 430 222 lineto
+ 434 236 lineto
+ 452 244 lineto
+ 446 244 lineto
+ 440 242 lineto
+ 438 240 lineto
+ 436 240 lineto
+ 432 234 426 230 420 226 curveto
+ 422 226 lineto
+ 424 228 lineto
+ 416 222 408 220 400 216 curveto
+ 402 218 lineto
+ 408 220 lineto
+ 406 218 lineto
+ 398 216 390 214 380 214 curveto
+ 382 216 lineto
+ 376 214 lineto
+ 372 212 lineto
+ 368 208 lineto
+ 388 216 lineto
+ 400 208 lineto
+ 396 212 lineto
+ 394 214 lineto
+ 388 216 lineto
+ 386 216 lineto
+ 376 216 368 218 360 220 curveto
+ 366 218 lineto
+ 358 222 350 224 342 230 curveto
+ 344 228 lineto
+ 346 226 lineto
+ 346 228 lineto
+ 340 232 334 236 330 242 curveto
+ 330 240 lineto
+ 328 242 lineto
+ 322 244 lineto
+ 334 236 lineto
+ 338 228 lineto
+ 336 234 lineto
+ 334 236 lineto
+ 334 238 lineto
+ 330 240 328 244 324 246 curveto
+ 322 250 320 252 318 256 curveto
+ 318 254 lineto
+ 320 252 lineto
+ 314 262 308 274 304 286 curveto
+ 304 284 lineto
+ 306 278 lineto
+ 306 280 lineto
+ 300 296 298 312 298 330 curveto
+ 300 328 lineto
+ 298 334 lineto
+ 296 338 lineto
+ 292 342 lineto
+ 288 344 lineto
+ 282 346 lineto
+closepath
+%end path
+fill
+%new path
+ 290 584 moveto
+ 292 586 lineto
+ 294 592 lineto
+ 296 594 lineto
+ 296 598 lineto
+ 294 596 lineto
+ 294 602 lineto
+ 292 608 lineto
+ 290 612 lineto
+ 286 616 lineto
+ 284 618 lineto
+ 278 620 lineto
+ 272 620 lineto
+ 270 618 lineto
+ 214 618 lineto
+ 216 620 lineto
+ 210 618 lineto
+ 206 616 lineto
+ 202 612 lineto
+ 200 608 lineto
+ 198 602 lineto
+ 198 592 lineto
+ 200 586 lineto
+ 202 584 lineto
+ 206 580 lineto
+ 210 578 lineto
+ 216 576 lineto
+ 278 576 lineto
+ 284 578 lineto
+ 286 580 lineto
+ 290 584 lineto
+closepath
+%end path
+fill
+%new path
+ 346 584 moveto
+ 348 586 lineto
+ 350 592 lineto
+ 352 594 lineto
+ 352 598 lineto
+ 350 596 lineto
+ 350 602 lineto
+ 348 608 lineto
+ 346 612 lineto
+ 342 616 lineto
+ 340 618 lineto
+ 334 620 lineto
+ 328 620 lineto
+ 326 618 lineto
+ 270 618 lineto
+ 272 620 lineto
+ 266 618 lineto
+ 262 616 lineto
+ 258 612 lineto
+ 256 608 lineto
+ 254 602 lineto
+ 254 592 lineto
+ 256 586 lineto
+ 258 584 lineto
+ 262 580 lineto
+ 266 578 lineto
+ 272 576 lineto
+ 334 576 lineto
+ 340 578 lineto
+ 342 580 lineto
+ 346 584 lineto
+closepath
+%end path
+fill
+%new path
+ 510 584 moveto
+ 512 586 lineto
+ 514 592 lineto
+ 514 602 lineto
+ 512 608 lineto
+ 510 612 lineto
+ 506 616 lineto
+ 502 618 lineto
+ 496 620 lineto
+ 490 620 lineto
+ 490 618 lineto
+ 434 618 lineto
+ 434 620 lineto
+ 428 618 lineto
+ 426 616 lineto
+ 422 612 lineto
+ 420 608 lineto
+ 418 602 lineto
+ 416 602 lineto
+ 416 598 lineto
+ 418 598 lineto
+ 418 592 lineto
+ 420 586 lineto
+ 422 584 lineto
+ 426 580 lineto
+ 428 578 lineto
+ 434 576 lineto
+ 496 576 lineto
+ 502 578 lineto
+ 506 580 lineto
+ 510 584 lineto
+closepath
+%end path
+fill
+%new path
+ 566 584 moveto
+ 568 586 lineto
+ 570 592 lineto
+ 570 602 lineto
+ 568 608 lineto
+ 566 612 lineto
+ 562 616 lineto
+ 558 618 lineto
+ 552 620 lineto
+ 546 620 lineto
+ 546 618 lineto
+ 490 618 lineto
+ 490 620 lineto
+ 484 618 lineto
+ 482 616 lineto
+ 478 612 lineto
+ 476 608 lineto
+ 474 602 lineto
+ 472 602 lineto
+ 472 598 lineto
+ 474 598 lineto
+ 474 592 lineto
+ 476 586 lineto
+ 478 584 lineto
+ 482 580 lineto
+ 484 578 lineto
+ 490 576 lineto
+ 552 576 lineto
+ 558 578 lineto
+ 562 580 lineto
+ 566 584 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_V
+(
+newpath
+%new path
+ 370 230 moveto
+ 370 252 428 476 458 600 curveto
+ 460 604 462 608 466 612 curveto
+ 470 618 478 620 484 620 curveto
+ 494 620 lineto
+ 494 618 lineto
+ 500 618 504 616 506 614 curveto
+ 510 610 510 606 510 602 curveto
+ 508 602 lineto
+ 508 598 lineto
+ 474 462 440 328 404 192 curveto
+ 404 188 402 184 398 180 curveto
+ 394 176 386 174 380 174 curveto
+ 354 174 lineto
+ 354 176 lineto
+ 348 176 340 178 336 182 curveto
+ 332 186 330 190 330 194 curveto
+ 294 330 260 464 226 600 curveto
+ 226 604 lineto
+ 228 604 lineto
+ 228 608 228 612 232 616 curveto
+ 234 618 238 620 244 620 curveto
+ 254 620 lineto
+ 254 618 lineto
+ 260 618 268 616 272 610 curveto
+ 276 606 278 602 280 598 curveto
+ 310 474 368 250 368 228 curveto
+ 368 230 lineto
+ 370 230 lineto
+closepath
+%end path
+fill
+%new path
+ 270 584 moveto
+ 272 586 lineto
+ 274 592 lineto
+ 274 598 lineto
+ 272 600 lineto
+ 272 602 lineto
+ 270 608 lineto
+ 268 612 lineto
+ 264 616 lineto
+ 262 618 lineto
+ 256 620 lineto
+ 250 620 lineto
+ 248 618 lineto
+ 208 618 lineto
+ 210 620 lineto
+ 204 618 lineto
+ 200 616 lineto
+ 196 612 lineto
+ 194 608 lineto
+ 192 602 lineto
+ 192 592 lineto
+ 194 586 lineto
+ 196 584 lineto
+ 200 580 lineto
+ 204 578 lineto
+ 210 576 lineto
+ 256 576 lineto
+ 262 578 lineto
+ 266 580 lineto
+ 270 584 lineto
+closepath
+%end path
+fill
+%new path
+ 320 584 moveto
+ 322 586 lineto
+ 324 592 lineto
+ 326 594 lineto
+ 326 598 lineto
+ 324 596 lineto
+ 324 602 lineto
+ 322 608 lineto
+ 320 612 lineto
+ 316 616 lineto
+ 314 618 lineto
+ 308 620 lineto
+ 302 620 lineto
+ 300 618 lineto
+ 248 618 lineto
+ 250 620 lineto
+ 244 618 lineto
+ 240 616 lineto
+ 236 612 lineto
+ 234 608 lineto
+ 232 602 lineto
+ 232 596 lineto
+ 234 596 lineto
+ 234 592 lineto
+ 236 586 lineto
+ 238 584 lineto
+ 242 580 lineto
+ 244 578 lineto
+ 250 576 lineto
+ 308 576 lineto
+ 314 578 lineto
+ 316 580 lineto
+ 320 584 lineto
+closepath
+%end path
+fill
+%new path
+ 498 584 moveto
+ 500 586 lineto
+ 502 592 lineto
+ 504 594 lineto
+ 504 602 lineto
+ 502 608 lineto
+ 500 612 lineto
+ 496 616 lineto
+ 492 618 lineto
+ 486 620 lineto
+ 480 620 lineto
+ 480 618 lineto
+ 428 618 lineto
+ 428 620 lineto
+ 422 618 lineto
+ 420 616 lineto
+ 416 612 lineto
+ 414 608 lineto
+ 412 602 lineto
+ 410 602 lineto
+ 410 598 lineto
+ 412 598 lineto
+ 412 592 lineto
+ 414 586 lineto
+ 416 584 lineto
+ 420 580 lineto
+ 422 578 lineto
+ 428 576 lineto
+ 486 576 lineto
+ 492 578 lineto
+ 494 580 lineto
+ 498 584 lineto
+closepath
+%end path
+fill
+%new path
+ 540 584 moveto
+ 542 586 lineto
+ 544 592 lineto
+ 544 602 lineto
+ 542 608 lineto
+ 540 612 lineto
+ 536 616 lineto
+ 532 618 lineto
+ 526 620 lineto
+ 520 620 lineto
+ 520 618 lineto
+ 480 618 lineto
+ 480 620 lineto
+ 474 618 lineto
+ 472 616 lineto
+ 468 612 lineto
+ 466 608 lineto
+ 464 602 lineto
+ 462 602 lineto
+ 462 592 lineto
+ 464 586 lineto
+ 466 584 lineto
+ 470 580 lineto
+ 474 578 lineto
+ 480 576 lineto
+ 526 576 lineto
+ 532 578 lineto
+ 536 580 lineto
+ 540 584 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_W
+(
+newpath
+%new path
+ 274 180 moveto
+ 280 176 284 174 292 174 curveto
+ 292 176 lineto
+ 300 176 lineto
+ 308 176 314 178 320 182 curveto
+ 322 184 324 190 326 194 curveto
+ 342 260 368 376 368 394 curveto
+ 370 394 lineto
+ 370 392 lineto
+ 370 374 396 258 412 192 curveto
+ 414 188 416 182 418 180 curveto
+ 424 176 430 174 438 174 curveto
+ 438 176 lineto
+ 446 176 lineto
+ 454 176 458 178 464 180 curveto
+ 466 184 470 188 470 194 curveto
+ 488 330 508 464 526 600 curveto
+ 526 602 lineto
+ 524 602 lineto
+ 524 608 522 612 520 614 curveto
+ 516 618 512 620 506 620 curveto
+ 506 618 lineto
+ 500 618 494 616 490 612 curveto
+ 486 608 484 604 484 598 curveto
+ 466 474 438 262 438 228 curveto
+ 436 228 lineto
+ 436 230 lineto
+ 436 260 412 360 398 424 curveto
+ 396 428 394 434 390 436 curveto
+ 386 442 380 444 372 444 curveto
+ 372 442 lineto
+ 362 442 lineto
+ 354 442 348 440 344 434 curveto
+ 340 432 338 426 336 422 curveto
+ 322 358 298 258 298 228 curveto
+ 296 228 lineto
+ 296 230 lineto
+ 296 264 268 476 250 600 curveto
+ 250 606 248 610 244 614 curveto
+ 240 618 234 620 228 620 curveto
+ 228 618 lineto
+ 222 618 218 616 214 612 curveto
+ 212 610 210 606 210 600 curveto
+ 212 600 lineto
+ 212 598 lineto
+ 230 462 250 328 268 192 curveto
+ 268 186 272 182 274 180 curveto
+closepath
+%end path
+fill
+%new path
+ 248 584 moveto
+ 250 586 lineto
+ 252 592 lineto
+ 252 598 lineto
+ 250 600 lineto
+ 250 604 lineto
+ 252 602 lineto
+ 250 608 lineto
+ 248 612 lineto
+ 244 616 lineto
+ 240 618 lineto
+ 234 620 lineto
+ 228 620 lineto
+ 228 618 lineto
+ 204 618 lineto
+ 204 620 lineto
+ 198 618 lineto
+ 196 616 lineto
+ 192 612 lineto
+ 190 608 lineto
+ 188 602 lineto
+ 186 602 lineto
+ 186 598 lineto
+ 188 598 lineto
+ 188 592 lineto
+ 190 586 lineto
+ 192 584 lineto
+ 196 580 lineto
+ 198 578 lineto
+ 204 576 lineto
+ 234 576 lineto
+ 240 578 lineto
+ 244 580 lineto
+ 248 584 lineto
+closepath
+%end path
+fill
+%new path
+ 298 584 moveto
+ 300 586 lineto
+ 302 592 lineto
+ 304 594 lineto
+ 304 598 lineto
+ 302 596 lineto
+ 302 602 lineto
+ 300 608 lineto
+ 298 612 lineto
+ 294 616 lineto
+ 292 618 lineto
+ 286 620 lineto
+ 280 620 lineto
+ 278 618 lineto
+ 228 618 lineto
+ 228 620 lineto
+ 222 618 lineto
+ 220 616 lineto
+ 216 612 lineto
+ 214 608 lineto
+ 212 602 lineto
+ 212 592 lineto
+ 214 586 lineto
+ 216 584 lineto
+ 220 580 lineto
+ 222 578 lineto
+ 228 576 lineto
+ 286 576 lineto
+ 292 578 lineto
+ 294 580 lineto
+ 298 584 lineto
+closepath
+%end path
+fill
+%new path
+ 520 584 moveto
+ 522 586 lineto
+ 524 592 lineto
+ 526 594 lineto
+ 526 598 lineto
+ 524 596 lineto
+ 524 602 lineto
+ 522 608 lineto
+ 520 612 lineto
+ 516 616 lineto
+ 514 618 lineto
+ 508 620 lineto
+ 502 620 lineto
+ 500 618 lineto
+ 450 618 lineto
+ 450 620 lineto
+ 444 618 lineto
+ 442 616 lineto
+ 438 612 lineto
+ 436 608 lineto
+ 434 602 lineto
+ 432 602 lineto
+ 432 598 lineto
+ 434 598 lineto
+ 434 592 lineto
+ 436 586 lineto
+ 438 584 lineto
+ 442 580 lineto
+ 444 578 lineto
+ 450 576 lineto
+ 508 576 lineto
+ 514 578 lineto
+ 516 580 lineto
+ 520 584 lineto
+closepath
+%end path
+fill
+%new path
+ 544 584 moveto
+ 546 586 lineto
+ 548 592 lineto
+ 550 594 lineto
+ 550 598 lineto
+ 548 596 lineto
+ 548 602 lineto
+ 546 608 lineto
+ 544 612 lineto
+ 540 616 lineto
+ 538 618 lineto
+ 532 620 lineto
+ 526 620 lineto
+ 524 618 lineto
+ 500 618 lineto
+ 502 620 lineto
+ 496 618 lineto
+ 492 616 lineto
+ 488 612 lineto
+ 486 608 lineto
+ 484 602 lineto
+ 484 592 lineto
+ 486 586 lineto
+ 488 584 lineto
+ 492 580 lineto
+ 496 578 lineto
+ 502 576 lineto
+ 532 576 lineto
+ 538 578 lineto
+ 540 580 lineto
+ 544 584 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_X
+(
+newpath
+%new path
+ 286 614 moveto
+ 282 618 278 620 272 620 curveto
+ 272 618 lineto
+ 250 618 lineto
+ 246 618 244 616 240 614 curveto
+ 238 612 236 608 236 604 curveto
+ 238 604 lineto
+ 238 602 240 600 240 598 curveto
+ 274 536 306 474 340 412 curveto
+ 338 412 lineto
+ 302 340 266 270 230 198 curveto
+ 230 192 lineto
+ 232 192 lineto
+ 232 188 232 184 236 182 curveto
+ 238 180 242 180 244 180 curveto
+ 268 180 lineto
+ 272 180 276 182 280 186 curveto
+ 280 186 282 188 282 190 curveto
+ 310 248 338 306 366 364 curveto
+ 366 362 lineto
+ 394 304 424 246 454 188 curveto
+ 454 186 456 184 458 184 curveto
+ 460 180 466 180 470 180 curveto
+ 492 180 lineto
+ 496 180 500 182 502 184 curveto
+ 504 186 506 190 506 194 curveto
+ 504 194 lineto
+ 504 196 504 198 502 200 curveto
+ 464 272 426 342 388 414 curveto
+ 390 414 lineto
+ 422 476 452 538 484 600 curveto
+ 484 602 486 604 486 606 curveto
+ 484 606 lineto
+ 484 610 482 614 478 616 curveto
+ 476 618 474 620 470 620 curveto
+ 470 618 lineto
+ 448 618 lineto
+ 442 618 438 616 434 612 curveto
+ 434 612 432 610 432 608 curveto
+ 408 562 386 516 364 470 curveto
+ 364 472 lineto
+ 338 518 314 564 290 610 curveto
+ 288 612 288 614 286 614 curveto
+closepath
+%end path
+fill
+%new path
+ 286 584 moveto
+ 288 586 lineto
+ 290 592 lineto
+ 290 598 lineto
+ 288 604 lineto
+ 286 606 lineto
+ 286 606 286 608 284 610 curveto
+ 286 608 lineto
+ 284 612 lineto
+ 280 616 lineto
+ 276 618 lineto
+ 270 620 lineto
+ 264 620 lineto
+ 264 618 lineto
+ 222 618 lineto
+ 224 620 lineto
+ 218 618 lineto
+ 214 616 lineto
+ 210 612 lineto
+ 208 608 lineto
+ 206 602 lineto
+ 206 592 lineto
+ 208 586 lineto
+ 210 584 lineto
+ 214 580 lineto
+ 218 578 lineto
+ 224 576 lineto
+ 272 576 lineto
+ 278 578 lineto
+ 282 580 lineto
+ 286 584 lineto
+closepath
+%end path
+fill
+%new path
+ 336 584 moveto
+ 338 586 lineto
+ 340 592 lineto
+ 342 594 lineto
+ 342 598 lineto
+ 340 596 lineto
+ 340 602 lineto
+ 338 608 lineto
+ 336 612 lineto
+ 332 616 lineto
+ 330 618 lineto
+ 324 620 lineto
+ 318 620 lineto
+ 316 618 lineto
+ 264 618 lineto
+ 264 620 lineto
+ 258 618 lineto
+ 256 616 lineto
+ 252 612 lineto
+ 250 608 lineto
+ 248 602 lineto
+ 248 596 lineto
+ 250 590 lineto
+ 252 588 252 586 252 586 curveto
+ 254 584 lineto
+ 258 580 lineto
+ 260 578 lineto
+ 266 576 lineto
+ 324 576 lineto
+ 330 578 lineto
+ 332 580 lineto
+ 336 584 lineto
+closepath
+%end path
+fill
+%new path
+ 408 216 moveto
+ 406 212 lineto
+ 404 206 lineto
+ 402 206 lineto
+ 402 200 lineto
+ 404 202 lineto
+ 404 196 lineto
+ 406 190 lineto
+ 408 186 lineto
+ 412 182 lineto
+ 414 180 lineto
+ 484 180 lineto
+ 488 182 lineto
+ 492 186 lineto
+ 494 190 lineto
+ 496 196 lineto
+ 496 202 lineto
+ 494 208 lineto
+ 492 208 lineto
+ 492 210 492 212 490 214 curveto
+ 492 212 lineto
+ 490 216 lineto
+ 486 220 lineto
+ 482 222 lineto
+ 476 224 lineto
+ 470 224 lineto
+ 470 222 lineto
+ 420 222 lineto
+ 420 224 lineto
+ 414 222 lineto
+ 412 220 lineto
+ 408 216 lineto
+closepath
+%end path
+fill
+%new path
+ 458 216 moveto
+ 456 212 lineto
+ 454 206 lineto
+ 454 200 lineto
+ 456 194 lineto
+ 458 192 458 190 458 188 curveto
+ 458 190 lineto
+ 460 186 lineto
+ 464 182 lineto
+ 466 180 lineto
+ 526 180 lineto
+ 528 182 lineto
+ 532 186 lineto
+ 534 190 lineto
+ 536 196 lineto
+ 538 196 lineto
+ 538 202 lineto
+ 536 200 lineto
+ 536 206 lineto
+ 534 212 lineto
+ 532 216 lineto
+ 528 220 lineto
+ 526 222 lineto
+ 520 224 lineto
+ 514 224 lineto
+ 512 222 lineto
+ 470 222 lineto
+ 470 224 lineto
+ 464 222 lineto
+ 462 220 lineto
+ 458 216 lineto
+closepath
+%end path
+fill
+%new path
+ 470 584 moveto
+ 472 586 lineto
+ 472 588 lineto
+ 472 588 474 590 474 592 curveto
+ 472 590 lineto
+ 474 596 lineto
+ 474 602 lineto
+ 472 608 lineto
+ 470 612 lineto
+ 466 616 lineto
+ 464 618 lineto
+ 458 620 lineto
+ 452 620 lineto
+ 450 618 lineto
+ 398 618 lineto
+ 400 620 lineto
+ 394 618 lineto
+ 390 616 lineto
+ 386 612 lineto
+ 384 608 lineto
+ 382 602 lineto
+ 382 592 lineto
+ 384 586 lineto
+ 386 584 lineto
+ 390 580 lineto
+ 394 578 lineto
+ 400 576 lineto
+ 456 576 lineto
+ 462 578 lineto
+ 466 580 lineto
+ 470 584 lineto
+closepath
+%end path
+fill
+%new path
+ 512 584 moveto
+ 514 586 lineto
+ 516 592 lineto
+ 516 602 lineto
+ 514 608 lineto
+ 512 612 lineto
+ 508 616 lineto
+ 504 618 lineto
+ 498 620 lineto
+ 492 620 lineto
+ 492 618 lineto
+ 450 618 lineto
+ 452 620 lineto
+ 446 618 lineto
+ 442 616 lineto
+ 438 612 lineto
+ 436 608 lineto
+ 436 606 434 604 434 604 curveto
+ 436 604 lineto
+ 434 598 lineto
+ 434 592 lineto
+ 436 586 lineto
+ 438 584 lineto
+ 442 580 lineto
+ 444 578 lineto
+ 450 576 lineto
+ 498 576 lineto
+ 504 578 lineto
+ 508 580 lineto
+ 512 584 lineto
+closepath
+%end path
+fill
+%new path
+ 202 216 moveto
+ 200 212 lineto
+ 198 206 lineto
+ 198 196 lineto
+ 200 190 lineto
+ 202 186 lineto
+ 206 182 lineto
+ 210 180 lineto
+ 268 180 lineto
+ 272 182 lineto
+ 276 186 lineto
+ 278 190 lineto
+ 278 192 280 194 280 196 curveto
+ 280 194 lineto
+ 282 200 lineto
+ 282 206 lineto
+ 280 212 lineto
+ 278 216 lineto
+ 274 220 lineto
+ 270 222 lineto
+ 264 224 lineto
+ 258 224 lineto
+ 258 222 lineto
+ 214 222 lineto
+ 216 224 lineto
+ 210 222 lineto
+ 206 220 lineto
+ 202 216 lineto
+closepath
+%end path
+fill
+%new path
+ 246 216 moveto
+ 244 212 lineto
+ 242 212 lineto
+ 242 210 240 208 240 206 curveto
+ 242 208 lineto
+ 240 202 lineto
+ 240 196 lineto
+ 242 190 lineto
+ 244 186 lineto
+ 248 182 lineto
+ 250 180 lineto
+ 320 180 lineto
+ 324 182 lineto
+ 328 186 lineto
+ 330 190 lineto
+ 332 196 lineto
+ 332 206 lineto
+ 330 212 lineto
+ 328 216 lineto
+ 324 220 lineto
+ 320 222 lineto
+ 314 224 lineto
+ 308 224 lineto
+ 308 222 lineto
+ 258 222 lineto
+ 258 224 lineto
+ 252 222 lineto
+ 250 220 lineto
+ 246 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_Y
+(
+newpath
+%new path
+ 370 406 moveto
+ 370 422 424 536 456 600 curveto
+ 458 604 460 606 462 610 curveto
+ 470 616 478 620 488 620 curveto
+ 500 620 lineto
+ 500 618 lineto
+ 502 618 506 616 508 614 curveto
+ 512 612 512 608 512 604 curveto
+ 510 604 lineto
+ 510 598 lineto
+ 470 516 432 436 392 354 curveto
+ 392 198 lineto
+ 392 192 390 188 386 184 curveto
+ 382 180 378 180 372 180 curveto
+ 362 180 lineto
+ 356 180 352 182 348 186 curveto
+ 344 190 342 194 342 200 curveto
+ 344 200 lineto
+ 344 356 lineto
+ 342 356 lineto
+ 302 438 264 518 224 600 curveto
+ 224 602 222 604 222 606 curveto
+ 224 606 lineto
+ 224 610 226 614 230 616 curveto
+ 232 618 236 620 238 620 curveto
+ 250 620 lineto
+ 250 618 lineto
+ 260 618 268 614 276 608 curveto
+ 278 604 280 602 282 598 curveto
+ 314 534 368 420 368 404 curveto
+ 368 406 lineto
+ 370 406 lineto
+closepath
+%end path
+fill
+%new path
+ 272 584 moveto
+ 274 586 lineto
+ 276 592 lineto
+ 276 598 lineto
+ 274 604 lineto
+ 272 606 lineto
+ 272 606 270 608 270 610 curveto
+ 272 608 lineto
+ 270 612 lineto
+ 266 616 lineto
+ 262 618 lineto
+ 256 620 lineto
+ 250 620 lineto
+ 250 618 lineto
+ 208 618 lineto
+ 210 620 lineto
+ 204 618 lineto
+ 200 616 lineto
+ 196 612 lineto
+ 194 608 lineto
+ 192 602 lineto
+ 192 592 lineto
+ 194 586 lineto
+ 196 584 lineto
+ 200 580 lineto
+ 204 578 lineto
+ 210 576 lineto
+ 258 576 lineto
+ 264 578 lineto
+ 268 580 lineto
+ 272 584 lineto
+closepath
+%end path
+fill
+%new path
+ 322 584 moveto
+ 324 586 lineto
+ 326 592 lineto
+ 326 602 lineto
+ 324 608 lineto
+ 322 612 lineto
+ 318 616 lineto
+ 314 618 lineto
+ 308 620 lineto
+ 302 620 lineto
+ 302 618 lineto
+ 250 618 lineto
+ 250 620 lineto
+ 244 618 lineto
+ 242 616 lineto
+ 238 612 lineto
+ 236 608 lineto
+ 234 602 lineto
+ 234 596 lineto
+ 236 590 lineto
+ 236 588 238 586 238 586 curveto
+ 240 584 lineto
+ 244 580 lineto
+ 246 578 lineto
+ 252 576 lineto
+ 308 576 lineto
+ 314 578 lineto
+ 318 580 lineto
+ 322 584 lineto
+closepath
+%end path
+fill
+%new path
+ 496 584 moveto
+ 498 586 lineto
+ 500 588 lineto
+ 500 588 502 590 502 592 curveto
+ 500 590 lineto
+ 502 596 lineto
+ 502 602 lineto
+ 500 608 lineto
+ 498 612 lineto
+ 494 616 lineto
+ 492 618 lineto
+ 486 620 lineto
+ 480 620 lineto
+ 478 618 lineto
+ 426 618 lineto
+ 428 620 lineto
+ 422 618 lineto
+ 418 616 lineto
+ 414 612 lineto
+ 412 608 lineto
+ 410 602 lineto
+ 410 592 lineto
+ 412 586 lineto
+ 414 584 lineto
+ 418 580 lineto
+ 422 578 lineto
+ 428 576 lineto
+ 484 576 lineto
+ 490 578 lineto
+ 492 580 lineto
+ 496 584 lineto
+closepath
+%end path
+fill
+%new path
+ 540 584 moveto
+ 542 586 lineto
+ 544 592 lineto
+ 544 602 lineto
+ 542 608 lineto
+ 540 612 lineto
+ 536 616 lineto
+ 532 618 lineto
+ 526 620 lineto
+ 520 620 lineto
+ 520 618 lineto
+ 478 618 lineto
+ 480 620 lineto
+ 474 618 lineto
+ 470 616 lineto
+ 466 612 lineto
+ 464 608 lineto
+ 464 606 462 604 462 604 curveto
+ 460 598 lineto
+ 460 592 lineto
+ 462 586 lineto
+ 464 584 lineto
+ 468 580 lineto
+ 472 578 lineto
+ 478 576 lineto
+ 526 576 lineto
+ 532 578 lineto
+ 536 580 lineto
+ 540 584 lineto
+closepath
+%end path
+fill
+%new path
+ 300 216 moveto
+ 298 212 lineto
+ 296 206 lineto
+ 294 206 lineto
+ 294 200 lineto
+ 296 202 lineto
+ 296 196 lineto
+ 298 190 lineto
+ 300 186 lineto
+ 304 182 lineto
+ 306 180 lineto
+ 378 180 lineto
+ 380 182 lineto
+ 384 186 lineto
+ 386 190 lineto
+ 388 196 lineto
+ 390 196 lineto
+ 390 202 lineto
+ 388 200 lineto
+ 388 206 lineto
+ 386 212 lineto
+ 384 216 lineto
+ 380 220 lineto
+ 378 222 lineto
+ 372 224 lineto
+ 366 224 lineto
+ 364 222 lineto
+ 312 222 lineto
+ 312 224 lineto
+ 306 222 lineto
+ 304 220 lineto
+ 300 216 lineto
+closepath
+%end path
+fill
+%new path
+ 352 216 moveto
+ 350 212 lineto
+ 348 206 lineto
+ 348 196 lineto
+ 350 190 lineto
+ 352 186 lineto
+ 356 182 lineto
+ 360 180 lineto
+ 430 180 lineto
+ 432 182 lineto
+ 436 186 lineto
+ 438 190 lineto
+ 440 196 lineto
+ 442 196 lineto
+ 442 202 lineto
+ 440 200 lineto
+ 440 206 lineto
+ 438 212 lineto
+ 436 216 lineto
+ 432 220 lineto
+ 430 222 lineto
+ 424 224 lineto
+ 418 224 lineto
+ 416 222 lineto
+ 364 222 lineto
+ 366 224 lineto
+ 360 222 lineto
+ 356 220 lineto
+ 352 216 lineto
+closepath
+%end path
+fill
+) def
+
+/The_letter_Z
+(
+newpath
+%new path
+ 474 618 moveto
+ 474 612 476 606 478 600 curveto
+ 476 600 lineto
+ 476 600 216 220 216 220 curveto
+ 214 216 212 212 212 208 curveto
+ 212 198 lineto
+ 214 198 lineto
+ 214 192 216 188 220 184 curveto
+ 224 180 228 180 234 180 curveto
+ 262 180 lineto
+ 262 186 260 192 258 198 curveto
+ 260 198 lineto
+ 260 198 520 578 520 578 curveto
+ 522 582 524 586 524 590 curveto
+ 524 600 lineto
+ 522 600 lineto
+ 522 606 520 610 516 614 curveto
+ 512 618 508 620 502 620 curveto
+ 502 618 lineto
+ 472 618 lineto
+closepath
+%end path
+fill
+%new path
+ 268 514 moveto
+ 270 518 lineto
+ 272 524 lineto
+ 272 598 lineto
+ 268 582 lineto
+ 248 574 lineto
+ 254 574 lineto
+ 256 576 lineto
+ 502 576 lineto
+ 500 574 lineto
+ 506 576 lineto
+ 510 578 lineto
+ 514 582 lineto
+ 516 586 lineto
+ 518 592 lineto
+ 518 602 lineto
+ 516 608 lineto
+ 514 612 lineto
+ 510 616 lineto
+ 506 618 lineto
+ 500 620 lineto
+ 494 620 lineto
+ 494 618 lineto
+ 238 618 lineto
+ 238 620 lineto
+ 232 618 lineto
+ 230 616 lineto
+ 226 612 lineto
+ 224 608 lineto
+ 222 602 lineto
+ 220 602 lineto
+ 220 528 lineto
+ 222 530 lineto
+ 222 524 lineto
+ 224 518 lineto
+ 226 514 lineto
+ 230 510 lineto
+ 232 508 lineto
+ 238 506 lineto
+ 244 506 lineto
+ 246 508 lineto
+ 256 508 lineto
+ 254 506 lineto
+ 260 508 lineto
+ 264 510 lineto
+ 268 514 lineto
+closepath
+%end path
+fill
+%new path
+ 480 298 moveto
+ 478 294 lineto
+ 476 288 lineto
+ 476 200 lineto
+ 480 216 lineto
+ 500 224 lineto
+ 494 224 lineto
+ 492 222 lineto
+ 234 222 lineto
+ 236 224 lineto
+ 230 222 lineto
+ 226 220 lineto
+ 222 216 lineto
+ 220 212 lineto
+ 218 206 lineto
+ 218 196 lineto
+ 220 190 lineto
+ 222 188 lineto
+ 226 184 lineto
+ 230 182 lineto
+ 236 180 lineto
+ 510 180 lineto
+ 516 182 lineto
+ 520 184 lineto
+ 524 188 lineto
+ 526 190 lineto
+ 528 196 lineto
+ 528 288 lineto
+ 526 294 lineto
+ 524 298 lineto
+ 520 302 lineto
+ 516 304 lineto
+ 510 306 lineto
+ 504 306 lineto
+ 504 304 lineto
+ 492 304 lineto
+ 494 306 lineto
+ 488 304 lineto
+ 484 302 lineto
+ 480 298 lineto
+closepath
+%end path
+fill
+) def
+
+end % of CharDefs dictionary
+
+Encoding 65 /The_letter_A put
+Encoding 66 /The_letter_B put
+Encoding 67 /The_letter_C put
+Encoding 68 /The_letter_D put
+Encoding 69 /The_letter_E put
+Encoding 70 /The_letter_F put
+Encoding 71 /The_letter_G put
+Encoding 72 /The_letter_H put
+Encoding 73 /The_letter_I put
+Encoding 74 /The_letter_J put
+Encoding 75 /The_letter_K put
+Encoding 76 /The_letter_L put
+Encoding 77 /The_letter_M put
+Encoding 78 /The_letter_N put
+Encoding 79 /The_letter_O put
+Encoding 80 /The_letter_P put
+Encoding 81 /The_letter_Q put
+Encoding 82 /The_letter_R put
+Encoding 83 /The_letter_S put
+Encoding 84 /The_letter_T put
+Encoding 85 /The_letter_U put
+Encoding 86 /The_letter_V put
+Encoding 87 /The_letter_W put
+Encoding 88 /The_letter_X put
+Encoding 89 /The_letter_Y put
+Encoding 90 /The_letter_Z put
+
+Metrics
+ begin
+/The_letter_A 353 fudge add def
+/The_letter_B 343 fudge add def
+/The_letter_C 343 fudge add def
+/The_letter_D 345 fudge add def
+/The_letter_E 357 fudge add def
+/The_letter_F 349 fudge add def
+/The_letter_G 353 fudge add def
+/The_letter_H 359 fudge add def
+/The_letter_I 317 fudge add def
+/The_letter_J 339 fudge add def
+/The_letter_K 353 fudge add def
+/The_letter_L 347 fudge add def
+/The_letter_M 361 fudge add def
+/The_letter_N 353 fudge add def
+/The_letter_O 333 fudge add def
+/The_letter_P 341 fudge add def
+/The_letter_Q 333 fudge add def
+/The_letter_R 371 fudge add def
+/The_letter_S 335 fudge add def
+/The_letter_T 355 fudge add def
+/The_letter_U 385 fudge add def
+/The_letter_V 359 fudge add def
+/The_letter_W 365 fudge add def
+/The_letter_X 353 fudge add def
+/The_letter_Y 359 fudge add def
+/The_letter_Z 343 fudge add def
+/.notdef 450 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.5 1.5 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 0
+ 0 -180
+ charwdth 1000
+ setcachedevice
+ -186 fudge add -180 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [186 fudge sub 80 570 630] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 8 scalefont setfont
+ 100 710 moveto (THIS IS CMTT EIGHT POINTS WRITTEN IN POSTSCRIPT) show
+ /Simon findfont 10 scalefont setfont
+ 100 698 moveto (THIS IS CMTT TEN POINTS WRITTEN IN POSTSCRIPT) show
+ /Simon findfont 12 scalefont setfont
+ 100 686 moveto (THIS IS CMTT TWELVE POINTS WRITTEN IN POSTSCRIPT) show
+ showpage
diff --git a/fonts/utilities/mf2ps/doc/printsamples/lasy.ps b/fonts/utilities/mf2ps/doc/printsamples/lasy.ps
new file mode 100644
index 0000000000..294ddac973
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/lasy.ps
@@ -0,0 +1,1715 @@
+%! Simon font
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 110 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.000895 0 0 0.000895 0 0] def
+% /FontMatrix [0.001 0 0 0.001 0 0] def
+
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+
+/Leftward_arrowhead
+(
+newpath
+%new path
+ 220 356 moveto
+ 224 354 lineto
+ 224 352 lineto
+ 250 342 274 326 294 306 curveto
+ 292 308 lineto
+ 296 306 lineto
+ 290 310 lineto
+ 288 314 lineto
+ 290 310 lineto
+ 310 288 328 264 338 234 curveto
+ 338 236 lineto
+ 340 232 lineto
+ 354 232 lineto
+ 358 236 lineto
+ 358 244 lineto
+ 356 244 lineto
+ 344 274 328 300 306 322 curveto
+ 304 324 lineto
+ 302 326 lineto
+ 286 342 266 358 244 368 curveto
+ 244 366 lineto
+ 242 368 lineto
+ 248 364 lineto
+ 248 358 lineto
+ 250 360 lineto
+ 248 360 lineto
+ 248 356 lineto
+ 240 352 lineto
+ 242 352 lineto
+ 244 354 lineto
+ 246 354 lineto
+ 268 364 288 380 304 396 curveto
+ 306 398 lineto
+ 308 400 lineto
+ 330 422 346 448 358 478 curveto
+ 358 484 lineto
+ 354 488 lineto
+ 340 488 lineto
+ 338 484 lineto
+ 336 484 lineto
+ 326 454 308 430 288 408 curveto
+ 290 410 lineto
+ 288 406 lineto
+ 288 404 lineto
+ 290 410 lineto
+ 298 414 lineto
+ 296 414 lineto
+ 292 412 lineto
+ 272 392 248 376 222 366 curveto
+ 224 368 lineto
+ 220 364 lineto
+ 220 356 lineto
+closepath
+%end path
+fill
+) def
+
+/Rightward_arrowhead
+(
+newpath
+%new path
+ 378 364 moveto
+ 376 368 lineto
+ 374 368 lineto
+ 348 378 324 394 304 414 curveto
+ 306 412 lineto
+ 302 414 lineto
+ 308 410 lineto
+ 310 406 lineto
+ 308 410 lineto
+ 288 432 270 456 260 486 curveto
+ 260 484 lineto
+ 258 488 lineto
+ 244 488 lineto
+ 240 484 lineto
+ 240 476 lineto
+ 242 476 lineto
+ 254 446 270 420 292 398 curveto
+ 294 396 lineto
+ 296 394 lineto
+ 312 378 332 362 354 352 curveto
+ 354 354 lineto
+ 356 352 lineto
+ 350 356 lineto
+ 350 362 lineto
+ 348 360 lineto
+ 350 360 lineto
+ 350 364 lineto
+ 358 368 lineto
+ 356 368 lineto
+ 354 366 lineto
+ 352 366 lineto
+ 330 356 310 340 294 324 curveto
+ 292 322 lineto
+ 290 320 lineto
+ 268 298 252 272 240 242 curveto
+ 240 236 lineto
+ 244 232 lineto
+ 258 232 lineto
+ 260 236 lineto
+ 262 236 lineto
+ 272 266 290 290 310 312 curveto
+ 308 310 lineto
+ 310 314 lineto
+ 310 316 lineto
+ 308 310 lineto
+ 300 306 lineto
+ 302 306 lineto
+ 306 308 lineto
+ 326 328 350 344 376 354 curveto
+ 378 356 lineto
+ 380 360 lineto
+ 380 362 lineto
+ 378 364 lineto
+closepath
+%end path
+fill
+) def
+
+/Upward_arrowhead
+(
+newpath
+%new path
+ 352 176 moveto
+ 340 150 324 126 306 106 curveto
+ 306 108 lineto
+ 314 112 lineto
+ 312 112 lineto
+ 310 110 lineto
+ 308 110 lineto
+ 288 90 262 72 234 62 curveto
+ 232 60 lineto
+ 230 56 lineto
+ 230 48 lineto
+ 232 46 lineto
+ 234 42 lineto
+ 242 42 lineto
+ 244 44 lineto
+ 274 56 300 72 322 94 curveto
+ 320 94 lineto
+ 324 96 lineto
+ 324 98 lineto
+ 342 114 356 134 366 156 curveto
+ 366 156 lineto
+ 358 152 lineto
+ 364 152 lineto
+ 366 156 lineto
+ 358 152 lineto
+ 352 156 lineto
+ 356 152 lineto
+ 358 152 lineto
+ 352 156 lineto
+ 352 156 lineto
+ 354 154 lineto
+ 364 132 378 112 396 96 curveto
+ 394 96 lineto
+ 398 94 lineto
+ 398 92 lineto
+ 420 70 446 54 476 42 curveto
+ 484 42 lineto
+ 486 46 lineto
+ 488 48 lineto
+ 488 56 lineto
+ 486 60 lineto
+ 484 62 lineto
+ 482 64 lineto
+ 454 74 428 92 408 112 curveto
+ 408 110 lineto
+ 406 112 lineto
+ 412 108 lineto
+ 412 108 lineto
+ 410 108 lineto
+ 392 128 376 152 366 178 curveto
+ 366 176 lineto
+ 364 180 lineto
+ 356 180 lineto
+ 352 176 lineto
+closepath
+%end path
+fill
+) def
+
+/Downward_arrowhead
+(
+newpath
+%new path
+ 366 184 moveto
+ 368 184 lineto
+ 378 210 394 234 412 254 curveto
+ 412 252 lineto
+ 404 248 lineto
+ 406 248 lineto
+ 408 250 lineto
+ 410 250 lineto
+ 430 270 456 288 484 298 curveto
+ 486 300 lineto
+ 488 304 lineto
+ 488 312 lineto
+ 486 314 lineto
+ 484 318 lineto
+ 476 318 lineto
+ 474 316 lineto
+ 444 304 418 288 396 266 curveto
+ 398 266 lineto
+ 394 264 lineto
+ 394 262 lineto
+ 376 246 362 226 352 204 curveto
+ 352 204 lineto
+ 360 208 lineto
+ 354 208 lineto
+ 352 204 lineto
+ 360 208 lineto
+ 366 204 lineto
+ 362 208 lineto
+ 360 208 lineto
+ 366 204 lineto
+ 366 204 lineto
+ 364 206 lineto
+ 354 228 340 248 322 264 curveto
+ 324 264 lineto
+ 320 266 lineto
+ 320 268 lineto
+ 298 290 272 306 242 318 curveto
+ 234 318 lineto
+ 232 314 lineto
+ 230 312 lineto
+ 230 304 lineto
+ 232 300 lineto
+ 234 298 lineto
+ 236 296 lineto
+ 264 286 290 268 310 248 curveto
+ 310 250 lineto
+ 312 248 lineto
+ 306 252 lineto
+ 306 252 lineto
+ 308 252 lineto
+ 326 232 342 208 354 182 curveto
+ 352 184 lineto
+ 356 180 lineto
+ 364 180 lineto
+ 366 184 lineto
+closepath
+%end path
+fill
+) def
+
+/Square_subset_sign
+(
+newpath
+%new path
+ 682 570 moveto
+ 678 570 lineto
+ 676 568 lineto
+ 260 568 lineto
+ 260 570 lineto
+ 254 568 lineto
+ 250 564 lineto
+ 248 560 lineto
+ 248 556 lineto
+ 246 556 lineto
+ 246 168 lineto
+ 248 170 lineto
+ 248 162 lineto
+ 250 158 lineto
+ 254 154 lineto
+ 260 152 lineto
+ 264 152 lineto
+ 266 154 lineto
+ 682 154 lineto
+ 682 152 lineto
+ 688 154 lineto
+ 692 158 lineto
+ 694 162 lineto
+ 694 174 lineto
+ 692 176 lineto
+ 688 180 lineto
+ 254 180 lineto
+ 250 176 lineto
+ 264 180 lineto
+ 274 176 lineto
+ 270 180 lineto
+ 264 180 lineto
+ 274 176 lineto
+ 278 170 lineto
+ 276 174 lineto
+ 274 176 lineto
+ 278 170 lineto
+ 274 158 lineto
+ 276 162 lineto
+ 278 166 lineto
+ 278 556 lineto
+ 274 546 lineto
+ 260 540 lineto
+ 682 540 lineto
+ 688 542 lineto
+ 692 546 lineto
+ 694 548 lineto
+ 694 560 lineto
+ 692 564 lineto
+ 688 568 lineto
+ 682 570 lineto
+closepath
+%end path
+fill
+) def
+
+/Square_superset_sign
+(
+newpath
+%new path
+ 236 540 moveto
+ 658 540 lineto
+ 664 542 lineto
+ 668 546 lineto
+ 654 540 lineto
+ 644 546 lineto
+ 648 542 lineto
+ 654 540 lineto
+ 644 546 lineto
+ 642 552 lineto
+ 642 548 lineto
+ 644 546 lineto
+ 642 552 lineto
+ 644 564 lineto
+ 642 560 lineto
+ 642 556 lineto
+ 640 556 lineto
+ 640 168 lineto
+ 642 170 lineto
+ 642 166 lineto
+ 644 176 lineto
+ 658 180 lineto
+ 230 180 lineto
+ 226 176 lineto
+ 224 174 lineto
+ 224 162 lineto
+ 226 158 lineto
+ 230 154 lineto
+ 236 152 lineto
+ 240 152 lineto
+ 242 154 lineto
+ 660 154 lineto
+ 658 152 lineto
+ 664 154 lineto
+ 668 158 lineto
+ 670 162 lineto
+ 672 166 lineto
+ 672 556 lineto
+ 670 560 lineto
+ 668 564 lineto
+ 664 568 lineto
+ 658 570 lineto
+ 654 570 lineto
+ 654 568 lineto
+ 236 568 lineto
+ 236 570 lineto
+ 230 568 lineto
+ 226 564 lineto
+ 224 560 lineto
+ 224 548 lineto
+ 226 546 lineto
+ 230 542 lineto
+ 236 540 lineto
+closepath
+%end path
+fill
+) def
+
+/Diamond
+(
+newpath
+%new path
+ 678 424 moveto
+ 682 434 lineto
+ 680 434 lineto
+ 604 356 528 280 452 204 curveto
+ 450 202 lineto
+ 450 194 lineto
+ 452 204 lineto
+ 466 210 lineto
+ 462 210 lineto
+ 456 208 lineto
+ 452 204 lineto
+ 466 210 lineto
+ 476 204 lineto
+ 472 208 lineto
+ 466 210 lineto
+ 476 204 lineto
+ 480 198 lineto
+ 478 202 lineto
+ 476 204 lineto
+ 476 206 lineto
+ 398 282 322 358 246 436 curveto
+ 248 434 lineto
+ 250 428 lineto
+ 248 416 lineto
+ 248 418 lineto
+ 324 494 400 570 478 648 curveto
+ 476 646 lineto
+ 478 650 lineto
+ 480 654 lineto
+ 480 658 lineto
+ 476 646 lineto
+ 462 640 lineto
+ 466 640 lineto
+ 472 642 lineto
+ 476 646 lineto
+ 462 640 lineto
+ 452 646 lineto
+ 456 642 lineto
+ 462 640 lineto
+ 452 646 lineto
+ 450 654 lineto
+ 450 650 lineto
+ 452 646 lineto
+ 454 646 lineto
+ 530 568 606 492 682 416 curveto
+ 678 424 lineto
+closepath
+%end path
+%new path
+ 708 428 moveto
+ 708 432 lineto
+ 706 434 lineto
+ 704 436 lineto
+ 628 512 552 588 476 666 curveto
+ 476 664 lineto
+ 472 668 lineto
+ 466 670 lineto
+ 462 670 lineto
+ 456 668 lineto
+ 452 664 lineto
+ 374 586 298 510 222 434 curveto
+ 224 434 lineto
+ 222 432 lineto
+ 220 428 lineto
+ 220 424 lineto
+ 222 420 lineto
+ 224 416 lineto
+ 300 338 376 262 454 186 curveto
+ 452 186 lineto
+ 456 182 lineto
+ 462 180 lineto
+ 466 180 lineto
+ 472 182 lineto
+ 476 186 lineto
+ 478 188 lineto
+ 554 264 630 340 706 418 curveto
+ 706 416 lineto
+ 708 420 lineto
+ 708 428 lineto
+closepath
+%end path
+fill
+) def
+
+/Square
+(
+newpath
+%new path
+ 272 606 moveto
+ 258 600 lineto
+ 262 600 lineto
+ 264 602 lineto
+ 644 602 lineto
+ 642 600 lineto
+ 648 602 lineto
+ 652 606 lineto
+ 638 600 lineto
+ 628 606 lineto
+ 632 602 lineto
+ 638 600 lineto
+ 628 606 lineto
+ 626 614 lineto
+ 626 610 lineto
+ 628 606 lineto
+ 626 614 lineto
+ 628 624 lineto
+ 626 622 lineto
+ 626 618 lineto
+ 624 616 lineto
+ 624 236 lineto
+ 626 238 lineto
+ 626 234 lineto
+ 628 244 lineto
+ 642 250 lineto
+ 258 250 lineto
+ 252 248 lineto
+ 248 244 lineto
+ 262 250 lineto
+ 272 244 lineto
+ 268 248 lineto
+ 262 250 lineto
+ 272 244 lineto
+ 276 238 lineto
+ 274 242 lineto
+ 272 244 lineto
+ 276 238 lineto
+ 272 226 lineto
+ 274 230 lineto
+ 276 234 lineto
+ 276 618 lineto
+ 272 606 lineto
+closepath
+%end path
+%new path
+ 248 624 moveto
+ 246 622 lineto
+ 246 618 lineto
+ 244 616 lineto
+ 244 236 lineto
+ 246 238 lineto
+ 246 230 lineto
+ 248 226 lineto
+ 252 222 lineto
+ 258 220 lineto
+ 262 220 lineto
+ 264 222 lineto
+ 644 222 lineto
+ 642 220 lineto
+ 648 222 lineto
+ 652 226 lineto
+ 654 230 lineto
+ 656 234 lineto
+ 656 618 lineto
+ 654 622 lineto
+ 652 624 lineto
+ 648 628 lineto
+ 642 630 lineto
+ 258 630 lineto
+ 252 628 lineto
+ 248 624 lineto
+closepath
+%end path
+fill
+) def
+
+/Bowtie_operator
+(
+newpath
+%new path
+ 252 218 moveto
+ 254 218 lineto
+ 386 352 518 484 652 618 curveto
+ 650 618 lineto
+ 652 620 lineto
+ 654 624 lineto
+ 654 628 lineto
+ 650 618 lineto
+ 636 612 lineto
+ 640 612 lineto
+ 646 614 lineto
+ 650 618 lineto
+ 636 612 lineto
+ 626 618 lineto
+ 630 614 lineto
+ 636 612 lineto
+ 626 618 lineto
+ 624 624 lineto
+ 624 620 lineto
+ 626 618 lineto
+ 624 624 lineto
+ 626 636 lineto
+ 624 632 lineto
+ 624 628 lineto
+ 622 628 lineto
+ 622 228 lineto
+ 624 228 lineto
+ 624 224 lineto
+ 626 236 lineto
+ 640 242 lineto
+ 636 242 lineto
+ 630 240 lineto
+ 626 236 lineto
+ 640 242 lineto
+ 650 236 lineto
+ 646 240 lineto
+ 640 242 lineto
+ 650 236 lineto
+ 654 228 lineto
+ 652 232 lineto
+ 650 236 lineto
+ 516 370 384 502 252 636 curveto
+ 248 640 lineto
+ 242 642 lineto
+ 238 642 lineto
+ 232 640 lineto
+ 228 636 lineto
+ 226 632 lineto
+ 226 628 lineto
+ 224 628 lineto
+ 224 228 lineto
+ 226 228 lineto
+ 226 220 lineto
+ 228 218 lineto
+ 232 214 lineto
+ 238 212 lineto
+ 242 212 lineto
+ 248 214 lineto
+ 252 218 lineto
+closepath
+%end path
+%new path
+ 256 228 moveto
+ 252 218 lineto
+ 254 220 lineto
+ 256 224 lineto
+ 256 628 lineto
+ 252 618 lineto
+ 238 612 lineto
+ 242 612 lineto
+ 248 614 lineto
+ 252 618 lineto
+ 238 612 lineto
+ 228 618 lineto
+ 232 614 lineto
+ 238 612 lineto
+ 228 618 lineto
+ 226 624 lineto
+ 226 620 lineto
+ 228 618 lineto
+ 230 616 lineto
+ 362 482 494 350 628 216 curveto
+ 626 218 lineto
+ 630 214 lineto
+ 636 212 lineto
+ 640 212 lineto
+ 646 214 lineto
+ 650 218 lineto
+ 652 220 lineto
+ 654 224 lineto
+ 654 628 lineto
+ 652 632 lineto
+ 650 636 lineto
+ 646 640 lineto
+ 640 642 lineto
+ 636 642 lineto
+ 630 640 lineto
+ 626 636 lineto
+ 626 634 lineto
+ 492 500 360 368 228 234 curveto
+ 228 236 lineto
+ 226 232 lineto
+ 226 224 lineto
+ 228 236 lineto
+ 242 242 lineto
+ 238 242 lineto
+ 232 240 lineto
+ 228 236 lineto
+ 242 242 lineto
+ 252 236 lineto
+ 248 240 lineto
+ 242 242 lineto
+ 252 236 lineto
+ 256 228 lineto
+ 254 232 lineto
+ 252 236 lineto
+ 256 228 lineto
+closepath
+%end path
+fill
+) def
+
+/Upside-down_Uppercase_Greek_Omega
+(
+newpath
+%new path
+ 510 662 moveto
+ 510 624 518 590 530 556 curveto
+ 528 558 lineto
+ 530 554 lineto
+ 544 516 558 480 572 442 curveto
+ 570 444 lineto
+ 570 446 lineto
+ 582 412 590 378 590 342 curveto
+ 588 342 lineto
+ 590 340 lineto
+ 588 342 lineto
+ 590 348 lineto
+ 588 344 lineto
+ 588 320 584 300 578 278 curveto
+ 578 280 lineto
+ 580 282 lineto
+ 578 282 lineto
+ 572 260 562 240 546 224 curveto
+ 544 222 542 222 542 220 curveto
+ 542 220 lineto
+ 550 224 lineto
+ 546 224 lineto
+ 544 222 lineto
+ 528 206 506 192 484 186 curveto
+ 488 188 lineto
+ 486 186 lineto
+ 470 180 454 180 438 180 curveto
+ 436 180 lineto
+ 432 176 lineto
+ 440 180 lineto
+ 446 176 lineto
+ 444 180 lineto
+ 440 180 lineto
+ 422 180 406 182 390 188 curveto
+ 394 186 lineto
+ 392 188 lineto
+ 370 194 348 208 332 224 curveto
+ 330 224 lineto
+ 336 220 lineto
+ 336 220 lineto
+ 334 222 lineto
+ 334 224 332 224 330 226 curveto
+ 314 242 304 262 298 284 curveto
+ 298 282 lineto
+ 300 280 lineto
+ 298 280 lineto
+ 292 302 288 322 288 346 curveto
+ 290 344 lineto
+ 288 348 lineto
+ 290 344 lineto
+ 288 340 lineto
+ 290 342 lineto
+ 290 344 lineto
+ 290 380 298 414 310 448 curveto
+ 308 446 lineto
+ 308 444 lineto
+ 322 482 336 518 350 556 curveto
+ 348 554 lineto
+ 350 558 lineto
+ 362 592 370 626 370 664 curveto
+ 370 664 lineto
+ 368 668 lineto
+ 366 670 lineto
+ 362 672 lineto
+ 360 672 lineto
+ 360 670 lineto
+ 358 670 lineto
+ 360 672 lineto
+ 356 670 lineto
+ 354 668 lineto
+ 352 664 lineto
+ 352 644 348 626 342 608 curveto
+ 344 608 lineto
+ 344 610 lineto
+ 318 536 254 476 228 402 curveto
+ 230 402 lineto
+ 228 400 lineto
+ 228 398 lineto
+ 222 380 218 362 218 344 curveto
+ 220 344 lineto
+ 220 342 lineto
+ 220 326 222 310 228 296 curveto
+ 226 298 lineto
+ 228 294 lineto
+ 236 270 250 248 268 230 curveto
+ 270 228 lineto
+ 272 226 lineto
+ 276 222 282 218 286 214 curveto
+ 306 196 330 184 356 178 curveto
+ 358 178 lineto
+ 358 176 lineto
+ 384 168 412 164 440 164 curveto
+ 440 164 lineto
+ 442 166 lineto
+ 468 166 496 170 522 178 curveto
+ 524 178 lineto
+ 524 180 lineto
+ 550 186 574 198 594 216 curveto
+ 598 220 604 224 608 228 curveto
+ 610 230 lineto
+ 612 232 lineto
+ 630 250 644 272 652 296 curveto
+ 650 294 lineto
+ 652 298 lineto
+ 658 312 660 328 660 344 curveto
+ 660 344 lineto
+ 658 346 lineto
+ 658 364 654 382 648 400 curveto
+ 650 400 lineto
+ 648 402 lineto
+ 648 404 lineto
+ 622 478 558 538 532 612 curveto
+ 534 612 lineto
+ 534 610 lineto
+ 528 628 524 646 524 666 curveto
+ 526 664 lineto
+ 524 668 lineto
+ 522 670 lineto
+ 518 672 lineto
+ 516 672 lineto
+ 516 672 lineto
+ 514 670 lineto
+ 510 668 lineto
+ 510 662 lineto
+closepath
+%end path
+fill
+%new path
+ 656 558 moveto
+ 664 558 lineto
+ 666 562 lineto
+ 668 564 lineto
+ 668 566 lineto
+ 666 568 lineto
+ 658 600 650 632 642 666 curveto
+ 644 664 lineto
+ 642 668 lineto
+ 640 670 lineto
+ 636 672 lineto
+ 634 672 lineto
+ 634 670 lineto
+ 516 670 lineto
+ 516 672 lineto
+ 514 670 lineto
+ 510 668 lineto
+ 510 662 lineto
+ 510 652 512 642 512 632 curveto
+ 512 630 lineto
+ 516 628 lineto
+ 518 626 lineto
+ 520 626 lineto
+ 522 628 lineto
+ 582 628 lineto
+ 580 626 lineto
+ 584 628 lineto
+ 586 630 lineto
+ 578 626 lineto
+ 572 630 lineto
+ 576 628 lineto
+ 578 626 lineto
+ 580 626 lineto
+ 596 626 620 626 630 622 curveto
+ 630 624 lineto
+ 628 624 lineto
+ 630 622 632 622 632 620 curveto
+ 634 620 lineto
+ 632 622 lineto
+ 636 620 lineto
+ 630 624 lineto
+ 628 628 lineto
+ 630 624 lineto
+ 634 620 636 614 638 606 curveto
+ 636 610 lineto
+ 638 608 lineto
+ 642 594 646 576 650 564 curveto
+ 648 564 lineto
+ 650 562 lineto
+ 652 558 lineto
+ 656 558 lineto
+closepath
+%end path
+fill
+%new path
+ 228 562 moveto
+ 230 564 lineto
+ 230 566 lineto
+ 234 578 238 596 242 610 curveto
+ 240 606 lineto
+ 242 608 lineto
+ 244 616 246 622 250 626 curveto
+ 248 624 lineto
+ 250 628 lineto
+ 250 630 lineto
+ 248 624 lineto
+ 240 620 lineto
+ 242 620 lineto
+ 246 622 lineto
+ 248 622 lineto
+ 248 624 250 624 252 626 curveto
+ 252 624 lineto
+ 250 624 lineto
+ 260 628 284 628 300 628 curveto
+ 360 628 lineto
+ 360 626 lineto
+ 362 628 lineto
+ 366 630 lineto
+ 366 634 lineto
+ 368 634 lineto
+ 368 644 370 654 370 664 curveto
+ 368 662 lineto
+ 368 668 lineto
+ 364 670 lineto
+ 362 672 lineto
+ 360 672 lineto
+ 358 670 lineto
+ 242 670 lineto
+ 242 672 lineto
+ 240 670 lineto
+ 236 668 lineto
+ 236 664 lineto
+ 234 664 lineto
+ 226 630 218 598 210 566 curveto
+ 212 566 lineto
+ 212 562 lineto
+ 216 558 lineto
+ 226 558 lineto
+ 228 562 lineto
+closepath
+%end path
+fill
+) def
+
+/Leads_to_character_extension
+(
+newpath
+%new path
+ 192 352 moveto
+ 202 366 214 380 226 392 curveto
+ 226 390 lineto
+ 228 394 lineto
+ 228 402 lineto
+ 226 390 lineto
+ 212 384 lineto
+ 216 384 lineto
+ 222 386 lineto
+ 222 388 lineto
+ 240 404 258 418 278 426 curveto
+ 278 424 lineto
+ 272 422 lineto
+ 272 424 lineto
+ 282 426 292 428 302 428 curveto
+ 308 430 lineto
+ 312 434 lineto
+ 298 428 lineto
+ 288 434 lineto
+ 292 430 lineto
+ 298 428 lineto
+ 298 426 lineto
+ 308 426 318 424 328 422 curveto
+ 326 422 lineto
+ 320 424 lineto
+ 322 424 lineto
+ 342 416 360 402 378 386 curveto
+ 376 386 lineto
+ 382 384 lineto
+ 372 390 lineto
+ 370 398 lineto
+ 370 394 lineto
+ 372 390 lineto
+ 374 390 lineto
+ 386 378 398 364 408 350 curveto
+ 418 336 430 322 442 310 curveto
+ 442 312 lineto
+ 446 308 lineto
+ 446 306 lineto
+ 464 290 482 276 502 268 curveto
+ 502 270 lineto
+ 508 268 lineto
+ 508 266 lineto
+ 518 264 528 262 538 262 curveto
+ 538 264 lineto
+ 542 264 lineto
+ 552 264 562 266 572 268 curveto
+ 570 268 lineto
+ 576 270 lineto
+ 578 270 lineto
+ 598 278 616 292 634 308 curveto
+ 632 308 lineto
+ 636 312 lineto
+ 638 312 lineto
+ 650 324 662 338 672 352 curveto
+ 674 354 lineto
+ 674 366 lineto
+ 672 370 lineto
+ 668 374 lineto
+ 662 376 lineto
+ 658 376 lineto
+ 652 374 lineto
+ 648 370 lineto
+ 646 368 lineto
+ 636 354 624 340 612 328 curveto
+ 612 330 lineto
+ 610 326 lineto
+ 610 318 lineto
+ 612 330 lineto
+ 626 336 lineto
+ 622 336 lineto
+ 616 334 lineto
+ 616 332 lineto
+ 598 316 580 302 560 294 curveto
+ 560 296 lineto
+ 566 298 lineto
+ 566 296 lineto
+ 556 294 546 292 536 292 curveto
+ 538 294 lineto
+ 532 292 lineto
+ 528 288 lineto
+ 542 294 lineto
+ 552 288 lineto
+ 548 292 lineto
+ 542 294 lineto
+ 540 294 lineto
+ 530 294 520 296 510 298 curveto
+ 512 298 lineto
+ 518 296 lineto
+ 516 296 lineto
+ 496 304 478 318 460 334 curveto
+ 462 334 lineto
+ 456 336 lineto
+ 466 330 lineto
+ 468 322 lineto
+ 468 326 lineto
+ 466 330 lineto
+ 464 330 lineto
+ 452 342 440 356 430 370 curveto
+ 420 384 408 398 396 410 curveto
+ 396 408 lineto
+ 392 412 lineto
+ 392 414 lineto
+ 374 430 356 444 336 452 curveto
+ 336 450 lineto
+ 330 452 lineto
+ 330 454 lineto
+ 320 456 310 458 300 458 curveto
+ 298 458 lineto
+ 296 456 lineto
+ 286 456 276 454 266 452 curveto
+ 268 452 lineto
+ 262 450 lineto
+ 260 450 lineto
+ 240 442 222 428 204 412 curveto
+ 206 412 lineto
+ 202 408 lineto
+ 200 408 lineto
+ 188 396 178 382 168 368 curveto
+ 168 370 lineto
+ 166 366 lineto
+ 166 354 lineto
+ 168 352 lineto
+ 172 348 lineto
+ 178 346 lineto
+ 182 346 lineto
+ 188 348 lineto
+ 192 352 lineto
+closepath
+%end path
+fill
+) def
+
+/Leads_to_character_with_arrowhead
+(
+newpath
+%new path
+ 858 364 moveto
+ 856 368 lineto
+ 854 368 lineto
+ 828 378 804 394 784 414 curveto
+ 786 412 lineto
+ 782 414 lineto
+ 788 410 lineto
+ 790 406 lineto
+ 788 410 lineto
+ 768 432 750 456 740 486 curveto
+ 740 484 lineto
+ 738 488 lineto
+ 724 488 lineto
+ 720 484 lineto
+ 720 476 lineto
+ 722 476 lineto
+ 734 446 750 420 772 398 curveto
+ 774 396 lineto
+ 776 394 lineto
+ 792 378 812 362 834 352 curveto
+ 834 354 lineto
+ 836 352 lineto
+ 830 356 lineto
+ 830 362 lineto
+ 828 360 lineto
+ 830 360 lineto
+ 830 364 lineto
+ 838 368 lineto
+ 836 368 lineto
+ 834 366 lineto
+ 832 366 lineto
+ 810 356 790 340 774 324 curveto
+ 772 322 lineto
+ 770 320 lineto
+ 748 298 732 272 720 242 curveto
+ 720 236 lineto
+ 724 232 lineto
+ 738 232 lineto
+ 740 236 lineto
+ 742 236 lineto
+ 752 266 770 290 790 312 curveto
+ 788 310 lineto
+ 790 314 lineto
+ 790 316 lineto
+ 788 310 lineto
+ 780 306 lineto
+ 782 306 lineto
+ 786 308 lineto
+ 806 328 830 344 856 354 curveto
+ 858 356 lineto
+ 860 360 lineto
+ 860 362 lineto
+ 858 364 lineto
+closepath
+%end path
+%new path
+ 192 352 moveto
+ 202 366 214 380 226 392 curveto
+ 226 390 lineto
+ 228 394 lineto
+ 228 402 lineto
+ 226 390 lineto
+ 212 384 lineto
+ 216 384 lineto
+ 222 386 lineto
+ 222 388 lineto
+ 240 404 258 418 278 426 curveto
+ 278 424 lineto
+ 272 422 lineto
+ 272 424 lineto
+ 282 426 292 428 302 428 curveto
+ 308 430 lineto
+ 312 434 lineto
+ 298 428 lineto
+ 288 434 lineto
+ 292 430 lineto
+ 298 428 lineto
+ 298 426 lineto
+ 308 426 318 424 328 422 curveto
+ 326 422 lineto
+ 320 424 lineto
+ 322 424 lineto
+ 342 416 360 402 378 386 curveto
+ 376 386 lineto
+ 382 384 lineto
+ 372 390 lineto
+ 370 398 lineto
+ 370 394 lineto
+ 372 390 lineto
+ 374 390 lineto
+ 386 378 398 364 408 350 curveto
+ 418 336 430 322 442 310 curveto
+ 442 312 lineto
+ 446 308 lineto
+ 446 306 lineto
+ 464 290 482 276 502 268 curveto
+ 502 270 lineto
+ 508 268 lineto
+ 508 266 lineto
+ 518 264 528 262 538 262 curveto
+ 538 264 lineto
+ 542 264 lineto
+ 552 264 562 266 570 268 curveto
+ 576 270 lineto
+ 620 286 654 328 698 344 curveto
+ 696 342 lineto
+ 690 340 lineto
+ 692 342 lineto
+ 700 344 710 346 720 346 curveto
+ 824 346 lineto
+ 830 348 lineto
+ 834 352 lineto
+ 836 354 lineto
+ 838 358 lineto
+ 838 362 lineto
+ 836 366 lineto
+ 834 370 lineto
+ 830 374 lineto
+ 824 376 lineto
+ 820 376 lineto
+ 820 374 lineto
+ 714 374 lineto
+ 704 374 694 372 686 370 curveto
+ 680 368 lineto
+ 636 352 602 310 558 294 curveto
+ 560 296 lineto
+ 566 298 lineto
+ 564 296 lineto
+ 556 294 546 292 536 292 curveto
+ 538 294 lineto
+ 532 292 lineto
+ 528 288 lineto
+ 542 294 lineto
+ 552 288 lineto
+ 548 292 lineto
+ 542 294 lineto
+ 540 294 lineto
+ 530 294 520 296 510 298 curveto
+ 512 298 lineto
+ 518 296 lineto
+ 516 296 lineto
+ 496 304 478 318 460 334 curveto
+ 462 334 lineto
+ 456 336 lineto
+ 466 330 lineto
+ 468 322 lineto
+ 468 326 lineto
+ 466 330 lineto
+ 464 330 lineto
+ 452 342 440 356 430 370 curveto
+ 420 384 408 398 396 410 curveto
+ 396 408 lineto
+ 392 412 lineto
+ 392 414 lineto
+ 374 430 356 444 336 452 curveto
+ 336 450 lineto
+ 330 452 lineto
+ 330 454 lineto
+ 320 456 310 458 300 458 curveto
+ 298 458 lineto
+ 296 456 lineto
+ 286 456 276 454 266 452 curveto
+ 268 452 lineto
+ 262 450 lineto
+ 260 450 lineto
+ 240 442 222 428 204 412 curveto
+ 206 412 lineto
+ 202 408 lineto
+ 200 408 lineto
+ 188 396 178 382 168 368 curveto
+ 168 370 lineto
+ 166 366 lineto
+ 166 354 lineto
+ 168 352 lineto
+ 172 348 lineto
+ 178 346 lineto
+ 182 346 lineto
+ 188 348 lineto
+ 192 352 lineto
+closepath
+%end path
+fill
+) def
+
+/LASY_lhd_triangle
+(
+newpath
+%new path
+ 666 570 moveto
+ 662 570 lineto
+ 656 568 lineto
+ 656 566 lineto
+ 518 502 382 436 244 372 curveto
+ 246 374 lineto
+ 242 370 lineto
+ 240 366 lineto
+ 238 362 lineto
+ 238 358 lineto
+ 240 354 lineto
+ 242 352 lineto
+ 246 348 lineto
+ 246 346 lineto
+ 384 282 520 216 658 154 curveto
+ 656 154 lineto
+ 662 152 lineto
+ 666 152 lineto
+ 672 154 lineto
+ 676 158 lineto
+ 678 162 lineto
+ 680 166 lineto
+ 680 556 lineto
+ 678 560 lineto
+ 676 564 lineto
+ 672 568 lineto
+ 666 570 lineto
+closepath
+%end path
+%new path
+ 650 552 moveto
+ 652 564 lineto
+ 650 560 lineto
+ 650 556 lineto
+ 648 556 lineto
+ 648 168 lineto
+ 650 170 lineto
+ 650 166 lineto
+ 652 176 lineto
+ 666 180 lineto
+ 656 180 lineto
+ 652 176 lineto
+ 666 180 lineto
+ 676 176 lineto
+ 672 180 lineto
+ 534 244 398 310 260 374 curveto
+ 262 374 lineto
+ 256 376 lineto
+ 266 370 lineto
+ 268 362 lineto
+ 268 366 lineto
+ 266 370 lineto
+ 268 362 lineto
+ 266 352 lineto
+ 268 354 lineto
+ 268 362 lineto
+ 266 352 lineto
+ 252 346 lineto
+ 256 346 lineto
+ 262 348 lineto
+ 400 412 536 478 674 542 curveto
+ 672 542 lineto
+ 676 546 lineto
+ 662 540 lineto
+ 652 546 lineto
+ 656 542 lineto
+ 662 540 lineto
+ 652 546 lineto
+ 650 552 lineto
+ 650 548 lineto
+ 652 546 lineto
+ 650 552 lineto
+closepath
+%end path
+fill
+) def
+
+/LASY_unlhd_triangle
+(
+newpath
+%new path
+ 666 638 moveto
+ 662 638 lineto
+ 656 636 lineto
+ 656 634 lineto
+ 518 570 382 504 244 440 curveto
+ 246 440 lineto
+ 242 436 lineto
+ 240 434 lineto
+ 238 430 lineto
+ 238 426 lineto
+ 240 422 lineto
+ 242 418 lineto
+ 246 414 lineto
+ 384 350 520 284 658 220 curveto
+ 656 220 lineto
+ 662 218 lineto
+ 666 218 lineto
+ 672 220 lineto
+ 676 224 lineto
+ 678 228 lineto
+ 680 232 lineto
+ 680 624 lineto
+ 678 628 lineto
+ 676 632 lineto
+ 672 636 lineto
+ 666 638 lineto
+closepath
+%end path
+%new path
+ 650 620 moveto
+ 652 632 lineto
+ 650 628 lineto
+ 650 624 lineto
+ 648 624 lineto
+ 648 234 lineto
+ 650 236 lineto
+ 650 232 lineto
+ 652 242 lineto
+ 666 248 lineto
+ 662 248 lineto
+ 656 246 lineto
+ 652 242 lineto
+ 666 248 lineto
+ 676 242 lineto
+ 672 246 lineto
+ 672 248 lineto
+ 534 312 398 378 260 442 curveto
+ 262 440 lineto
+ 256 442 lineto
+ 266 436 lineto
+ 268 430 lineto
+ 268 434 lineto
+ 266 436 lineto
+ 268 430 lineto
+ 266 418 lineto
+ 268 422 lineto
+ 268 430 lineto
+ 266 418 lineto
+ 252 412 lineto
+ 256 412 lineto
+ 262 414 lineto
+ 262 416 lineto
+ 400 480 536 546 674 610 curveto
+ 672 610 lineto
+ 676 614 lineto
+ 662 608 lineto
+ 652 614 lineto
+ 656 610 lineto
+ 662 608 lineto
+ 652 614 lineto
+ 650 620 lineto
+ 650 616 lineto
+ 652 614 lineto
+ 650 620 lineto
+closepath
+%end path
+%new path
+ 666 110 moveto
+ 252 110 lineto
+ 246 108 lineto
+ 242 104 lineto
+ 240 102 lineto
+ 238 98 lineto
+ 238 94 lineto
+ 240 90 lineto
+ 242 86 lineto
+ 246 82 lineto
+ 252 80 lineto
+ 256 80 lineto
+ 256 82 lineto
+ 668 82 lineto
+ 666 80 lineto
+ 672 82 lineto
+ 676 86 lineto
+ 678 90 lineto
+ 680 94 lineto
+ 680 98 lineto
+ 678 102 lineto
+ 676 104 lineto
+ 672 108 lineto
+ 666 110 lineto
+closepath
+%end path
+fill
+) def
+
+/LASY_rhd_triangle
+(
+newpath
+%new path
+ 252 540 moveto
+ 242 546 lineto
+ 246 542 lineto
+ 246 540 lineto
+ 384 476 520 410 658 346 curveto
+ 656 348 lineto
+ 662 346 lineto
+ 652 352 lineto
+ 650 358 lineto
+ 650 354 lineto
+ 652 352 lineto
+ 650 358 lineto
+ 652 370 lineto
+ 650 366 lineto
+ 650 358 lineto
+ 652 370 lineto
+ 666 376 lineto
+ 662 376 lineto
+ 656 374 lineto
+ 656 372 lineto
+ 518 308 382 242 244 180 curveto
+ 246 180 lineto
+ 242 176 lineto
+ 256 180 lineto
+ 266 176 lineto
+ 262 180 lineto
+ 256 180 lineto
+ 266 176 lineto
+ 268 170 lineto
+ 268 174 lineto
+ 266 176 lineto
+ 268 170 lineto
+ 266 158 lineto
+ 268 162 lineto
+ 268 166 lineto
+ 270 166 lineto
+ 270 554 lineto
+ 268 552 lineto
+ 268 556 lineto
+ 266 546 lineto
+ 252 540 lineto
+ 256 540 lineto
+ 262 542 lineto
+ 266 546 lineto
+ 252 540 lineto
+closepath
+%end path
+%new path
+ 242 564 moveto
+ 240 560 lineto
+ 238 556 lineto
+ 238 166 lineto
+ 240 162 lineto
+ 242 158 lineto
+ 246 154 lineto
+ 252 152 lineto
+ 256 152 lineto
+ 262 154 lineto
+ 262 156 lineto
+ 400 218 536 284 674 348 curveto
+ 672 348 lineto
+ 676 352 lineto
+ 678 354 lineto
+ 680 358 lineto
+ 680 362 lineto
+ 678 366 lineto
+ 676 370 lineto
+ 672 374 lineto
+ 534 438 398 504 260 568 curveto
+ 262 568 lineto
+ 256 570 lineto
+ 252 570 lineto
+ 246 568 lineto
+ 242 564 lineto
+closepath
+%end path
+fill
+) def
+
+/LASY_unrhd_triangle
+(
+newpath
+%new path
+ 252 608 moveto
+ 242 614 lineto
+ 246 610 lineto
+ 246 608 lineto
+ 384 544 520 478 658 414 curveto
+ 656 414 lineto
+ 662 412 lineto
+ 652 418 lineto
+ 650 426 lineto
+ 650 422 lineto
+ 652 418 lineto
+ 650 426 lineto
+ 652 436 lineto
+ 650 434 lineto
+ 650 426 lineto
+ 652 436 lineto
+ 666 442 lineto
+ 662 442 lineto
+ 656 440 lineto
+ 518 376 382 310 244 246 curveto
+ 246 246 lineto
+ 242 242 lineto
+ 256 248 lineto
+ 266 242 lineto
+ 262 246 lineto
+ 256 248 lineto
+ 266 242 lineto
+ 268 236 lineto
+ 268 240 lineto
+ 266 242 lineto
+ 268 236 lineto
+ 266 224 lineto
+ 268 228 lineto
+ 268 232 lineto
+ 270 232 lineto
+ 270 622 lineto
+ 268 620 lineto
+ 268 624 lineto
+ 266 614 lineto
+ 252 608 lineto
+ 256 608 lineto
+ 262 610 lineto
+ 266 614 lineto
+ 252 608 lineto
+closepath
+%end path
+%new path
+ 242 632 moveto
+ 240 628 lineto
+ 238 624 lineto
+ 238 232 lineto
+ 240 228 lineto
+ 242 224 lineto
+ 246 220 lineto
+ 252 218 lineto
+ 256 218 lineto
+ 262 220 lineto
+ 262 222 lineto
+ 400 286 536 352 674 416 curveto
+ 672 414 lineto
+ 676 418 lineto
+ 678 422 lineto
+ 680 426 lineto
+ 680 430 lineto
+ 678 434 lineto
+ 676 436 lineto
+ 672 440 lineto
+ 672 442 lineto
+ 534 506 398 572 260 636 curveto
+ 262 636 lineto
+ 256 638 lineto
+ 252 638 lineto
+ 246 636 lineto
+ 242 632 lineto
+closepath
+%end path
+%new path
+ 252 80 moveto
+ 256 80 lineto
+ 256 82 lineto
+ 668 82 lineto
+ 666 80 lineto
+ 672 82 lineto
+ 676 86 lineto
+ 678 90 lineto
+ 680 94 lineto
+ 680 98 lineto
+ 678 102 lineto
+ 676 104 lineto
+ 672 108 lineto
+ 666 110 lineto
+ 252 110 lineto
+ 246 108 lineto
+ 242 104 lineto
+ 240 102 lineto
+ 238 98 lineto
+ 238 94 lineto
+ 240 90 lineto
+ 242 86 lineto
+ 246 82 lineto
+ 252 80 lineto
+closepath
+%end path
+fill
+) def
+
+end % of CharDefs dictionary
+
+Encoding 65 /Leftward_arrowhead put
+Encoding 66 /Rightward_arrowhead put
+Encoding 67 /Upward_arrowhead put
+Encoding 68 /Downward_arrowhead put
+Encoding 69 /Square_subset_sign put
+Encoding 70 /Square_superset_sign put
+Encoding 71 /Diamond put
+Encoding 72 /Square put
+Encoding 73 /Bowtie_operator put
+Encoding 74 /Upside-down_Uppercase_Greek_Omega put
+Encoding 75 /Leads_to_character_extension put
+Encoding 76 /Leads_to_character_with_arrowhead put
+Encoding 77 /LASY_lhd_triangle put
+Encoding 78 /LASY_unlhd_triangle put
+Encoding 79 /LASY_rhd_triangle put
+Encoding 80 /LASY_unrhd_triangle put
+
+Metrics
+ begin
+/Leftward_arrowhead 139 fudge add def
+/Rightward_arrowhead 141 fudge add def
+/Upward_arrowhead 259 fudge add def
+/Downward_arrowhead 259 fudge add def
+/Square_subset_sign 449 fudge add def
+/Square_superset_sign 449 fudge add def
+/Diamond 489 fudge add def
+/Square 413 fudge add def
+/Bowtie_operator 431 fudge add def
+/Upside-down_Uppercase_Greek_Omega 459 fudge add def
+/Leads_to_character_extension 509 fudge add def
+/Leads_to_character_with_arrowhead 695 fudge add def
+/LASY_lhd_triangle 443 fudge add def
+/LASY_unlhd_triangle 443 fudge add def
+/LASY_rhd_triangle 443 fudge add def
+/LASY_unrhd_triangle 443 fudge add def
+/.notdef 225 def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.3 1.3 scale
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 10
+ 0 -100
+ charwdth 1000
+ setcachedevice
+ -166 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [166 fudge sub 42 860 672]
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 13 scalefont setfont
+ 100 710 moveto (EF GH IKL M N O P) show
+ showpage
diff --git a/fonts/utilities/mf2ps/doc/printsamples/logo.ps b/fonts/utilities/mf2ps/doc/printsamples/logo.ps
new file mode 100644
index 0000000000..fbd242302b
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/logo.ps
@@ -0,0 +1,1096 @@
+%! Simon font
+%0 serverdict begin exitserver
+/TBuildCharDict 10 dict def
+/SimonFont 10 dict def
+/fudge 150 def
+SimonFont begin
+%%
+ /FontType 3 def
+ /FontMatrix [0.001 0 0 0.001 0 0] def
+ /Encoding 256 array def
+
+ 0 1 255 {Encoding exch /.notdef put} for
+
+% Character definitions
+
+/Metrics 130 dict def
+
+/CharDefs 130 dict def
+
+CharDefs begin
+
+/.notdef
+ () def
+
+/M
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 600 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 266 576 lineto
+ 268 578 lineto
+ 274 580 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 244 580 lineto
+ 250 578 lineto
+ 254 576 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 236 596 lineto
+ 236 590 lineto
+ 238 590 lineto
+ 306 470 376 348 446 228 curveto
+ 444 230 lineto
+ 448 224 lineto
+ 452 220 lineto
+ 458 216 lineto
+ 462 216 lineto
+ 468 214 lineto
+ 474 216 lineto
+ 476 216 lineto
+ 482 220 lineto
+ 488 224 lineto
+ 490 230 lineto
+ 492 230 lineto
+ 560 350 630 472 700 592 curveto
+ 698 590 lineto
+ 700 596 lineto
+ 700 600 lineto
+ 696 586 lineto
+ 676 576 lineto
+ 682 576 lineto
+ 684 578 lineto
+ 690 580 lineto
+ 696 586 lineto
+ 676 576 lineto
+ 656 586 lineto
+ 660 580 lineto
+ 666 578 lineto
+ 670 576 lineto
+ 676 576 lineto
+ 656 586 lineto
+ 652 596 lineto
+ 652 590 lineto
+ 656 586 lineto
+ 652 596 lineto
+ 656 610 lineto
+ 652 604 lineto
+ 652 600 lineto
+ 650 598 lineto
+ 650 194 lineto
+ 652 194 lineto
+ 652 186 lineto
+ 656 180 lineto
+ 660 178 lineto
+ 666 174 lineto
+ 670 174 lineto
+ 676 172 lineto
+ 682 174 lineto
+ 684 174 lineto
+ 690 178 lineto
+ 696 180 lineto
+ 698 186 lineto
+ 700 190 lineto
+ 700 600 lineto
+ 698 604 lineto
+ 696 610 lineto
+ 690 614 lineto
+ 684 618 lineto
+ 682 618 lineto
+ 676 620 lineto
+ 670 618 lineto
+ 666 618 lineto
+ 660 614 lineto
+ 656 610 lineto
+ 652 604 lineto
+ 582 484 512 362 444 242 curveto
+ 444 234 lineto
+ 448 248 lineto
+ 468 258 lineto
+ 462 258 lineto
+ 458 256 lineto
+ 452 254 lineto
+ 448 248 lineto
+ 468 258 lineto
+ 488 248 lineto
+ 482 254 lineto
+ 476 256 lineto
+ 474 258 lineto
+ 468 258 lineto
+ 488 248 lineto
+ 492 238 lineto
+ 490 244 lineto
+ 420 364 350 486 282 606 curveto
+ 282 604 lineto
+ 280 610 lineto
+ 274 614 lineto
+ 268 618 lineto
+ 266 618 lineto
+ 260 620 lineto
+ 254 618 lineto
+ 250 618 lineto
+ 244 614 lineto
+ 240 610 lineto
+ 236 604 lineto
+ 236 600 lineto
+ 234 598 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+fill
+) def
+
+/E
+(
+newpath
+%new path
+ 556 224 moveto
+ 554 222 lineto
+ 258 222 lineto
+ 260 224 lineto
+ 254 222 lineto
+ 250 222 lineto
+ 244 218 lineto
+ 240 214 lineto
+ 260 224 lineto
+ 280 214 lineto
+ 274 218 lineto
+ 268 222 lineto
+ 266 222 lineto
+ 260 224 lineto
+ 280 214 lineto
+ 284 204 lineto
+ 282 208 lineto
+ 280 214 lineto
+ 284 204 lineto
+ 280 190 lineto
+ 282 194 lineto
+ 284 200 lineto
+ 284 592 lineto
+ 280 578 lineto
+ 260 568 lineto
+ 562 568 lineto
+ 564 570 lineto
+ 570 572 lineto
+ 576 578 lineto
+ 578 582 lineto
+ 580 588 lineto
+ 580 592 lineto
+ 578 596 lineto
+ 576 602 lineto
+ 570 606 lineto
+ 564 610 lineto
+ 562 610 lineto
+ 556 612 lineto
+ 554 610 lineto
+ 258 610 lineto
+ 260 612 lineto
+ 254 610 lineto
+ 250 610 lineto
+ 244 606 lineto
+ 240 602 lineto
+ 236 596 lineto
+ 236 592 lineto
+ 234 590 lineto
+ 234 202 lineto
+ 236 204 lineto
+ 236 194 lineto
+ 240 190 lineto
+ 244 184 lineto
+ 250 182 lineto
+ 254 180 lineto
+ 562 180 lineto
+ 564 182 lineto
+ 570 184 lineto
+ 576 190 lineto
+ 578 194 lineto
+ 580 200 lineto
+ 580 204 lineto
+ 578 208 lineto
+ 576 214 lineto
+ 570 218 lineto
+ 564 222 lineto
+ 562 222 lineto
+ 556 224 lineto
+closepath
+%end path
+%new path
+ 260 352 moveto
+ 518 352 lineto
+ 520 354 lineto
+ 526 356 lineto
+ 532 362 lineto
+ 534 366 lineto
+ 536 372 lineto
+ 536 376 lineto
+ 534 380 lineto
+ 532 386 lineto
+ 526 390 lineto
+ 520 394 lineto
+ 518 394 lineto
+ 512 396 lineto
+ 510 394 lineto
+ 258 394 lineto
+ 260 396 lineto
+ 254 394 lineto
+ 250 394 lineto
+ 244 390 lineto
+ 240 386 lineto
+ 236 380 lineto
+ 236 366 lineto
+ 240 362 lineto
+ 244 356 lineto
+ 250 354 lineto
+ 254 352 lineto
+ 260 352 lineto
+closepath
+%end path
+fill
+) def
+
+/T
+(
+newpath
+%new path
+ 202 568 moveto
+ 578 568 lineto
+ 580 570 lineto
+ 586 572 lineto
+ 592 578 lineto
+ 594 582 lineto
+ 596 588 lineto
+ 596 592 lineto
+ 594 596 lineto
+ 592 602 lineto
+ 586 606 lineto
+ 580 610 lineto
+ 578 610 lineto
+ 572 612 lineto
+ 570 610 lineto
+ 202 610 lineto
+ 202 612 lineto
+ 196 610 lineto
+ 194 610 lineto
+ 188 606 lineto
+ 182 602 lineto
+ 180 596 lineto
+ 180 582 lineto
+ 182 578 lineto
+ 188 572 lineto
+ 194 570 lineto
+ 196 568 lineto
+ 202 568 lineto
+closepath
+%end path
+%new path
+ 368 602 moveto
+ 364 596 lineto
+ 364 592 lineto
+ 362 590 lineto
+ 362 194 lineto
+ 364 194 lineto
+ 364 186 lineto
+ 368 180 lineto
+ 372 178 lineto
+ 378 174 lineto
+ 382 174 lineto
+ 388 172 lineto
+ 394 174 lineto
+ 396 174 lineto
+ 402 178 lineto
+ 408 180 lineto
+ 410 186 lineto
+ 412 190 lineto
+ 412 592 lineto
+ 410 596 lineto
+ 408 602 lineto
+ 402 606 lineto
+ 396 610 lineto
+ 394 610 lineto
+ 388 612 lineto
+ 382 610 lineto
+ 378 610 lineto
+ 372 606 lineto
+ 368 602 lineto
+closepath
+%end path
+fill
+) def
+
+/A
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 376 lineto
+ 280 362 lineto
+ 260 352 lineto
+ 586 352 lineto
+ 588 354 lineto
+ 594 356 lineto
+ 600 362 lineto
+ 580 352 lineto
+ 560 362 lineto
+ 564 356 lineto
+ 570 354 lineto
+ 574 352 lineto
+ 580 352 lineto
+ 560 362 lineto
+ 556 372 lineto
+ 556 366 lineto
+ 560 362 lineto
+ 556 372 lineto
+ 560 386 lineto
+ 556 380 lineto
+ 556 376 lineto
+ 554 374 lineto
+ 554 194 lineto
+ 556 194 lineto
+ 556 186 lineto
+ 560 180 lineto
+ 564 178 lineto
+ 570 174 lineto
+ 574 174 lineto
+ 580 172 lineto
+ 586 174 lineto
+ 588 174 lineto
+ 594 178 lineto
+ 600 180 lineto
+ 602 186 lineto
+ 604 190 lineto
+ 604 376 lineto
+ 602 380 lineto
+ 600 386 lineto
+ 594 390 lineto
+ 588 394 lineto
+ 586 394 lineto
+ 580 396 lineto
+ 578 394 lineto
+ 258 394 lineto
+ 260 396 lineto
+ 254 394 lineto
+ 250 394 lineto
+ 244 390 lineto
+ 240 386 lineto
+ 236 380 lineto
+ 236 376 lineto
+ 234 374 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+%new path
+ 280 362 moveto
+ 282 366 lineto
+ 284 372 lineto
+ 284 410 284 452 292 490 curveto
+ 290 488 lineto
+ 290 484 lineto
+ 294 504 300 522 310 538 curveto
+ 306 532 lineto
+ 308 534 lineto
+ 308 536 310 538 312 542 curveto
+ 314 546 318 548 322 552 curveto
+ 320 552 lineto
+ 324 556 lineto
+ 324 566 lineto
+ 320 552 lineto
+ 300 542 lineto
+ 306 542 lineto
+ 310 544 lineto
+ 316 546 lineto
+ 316 548 lineto
+ 324 554 332 560 340 564 curveto
+ 334 560 lineto
+ 334 562 lineto
+ 340 564 346 566 350 568 curveto
+ 346 566 lineto
+ 348 568 lineto
+ 356 570 364 572 374 574 curveto
+ 372 572 lineto
+ 368 572 lineto
+ 384 576 402 576 420 576 curveto
+ 426 576 lineto
+ 428 578 lineto
+ 434 580 lineto
+ 440 586 lineto
+ 420 576 lineto
+ 400 586 lineto
+ 404 580 lineto
+ 410 578 lineto
+ 414 576 lineto
+ 420 576 lineto
+ 420 574 lineto
+ 438 574 456 574 472 570 curveto
+ 472 572 lineto
+ 466 572 lineto
+ 476 570 484 568 492 566 curveto
+ 488 568 lineto
+ 490 566 lineto
+ 494 564 500 562 506 560 curveto
+ 504 560 lineto
+ 498 564 lineto
+ 500 562 lineto
+ 508 558 516 552 524 546 curveto
+ 522 546 lineto
+ 528 544 lineto
+ 532 542 lineto
+ 538 542 lineto
+ 518 552 lineto
+ 514 562 lineto
+ 514 556 lineto
+ 518 552 lineto
+ 518 550 lineto
+ 522 546 526 544 528 540 curveto
+ 530 536 532 534 532 532 curveto
+ 528 538 lineto
+ 530 536 lineto
+ 540 520 546 502 550 482 curveto
+ 548 484 lineto
+ 548 488 lineto
+ 556 450 556 408 556 370 curveto
+ 556 366 lineto
+ 560 362 lineto
+ 564 356 lineto
+ 570 354 lineto
+ 574 352 lineto
+ 586 352 lineto
+ 588 354 lineto
+ 594 356 lineto
+ 600 362 lineto
+ 602 366 lineto
+ 604 372 lineto
+ 604 376 lineto
+ 602 376 lineto
+ 602 414 602 456 594 494 curveto
+ 596 492 lineto
+ 594 498 lineto
+ 590 518 584 536 574 552 curveto
+ 572 556 lineto
+ 570 558 lineto
+ 570 560 568 562 566 566 curveto
+ 564 570 560 572 556 576 curveto
+ 558 576 lineto
+ 552 580 lineto
+ 552 582 lineto
+ 544 588 536 594 528 598 curveto
+ 522 600 lineto
+ 522 602 lineto
+ 516 604 510 606 506 608 curveto
+ 504 608 lineto
+ 502 610 lineto
+ 494 612 486 614 476 616 curveto
+ 478 614 lineto
+ 472 616 lineto
+ 470 616 lineto
+ 454 620 436 620 418 620 curveto
+ 420 620 lineto
+ 418 618 lineto
+ 400 618 382 618 366 614 curveto
+ 366 616 lineto
+ 360 614 lineto
+ 350 612 342 610 334 608 curveto
+ 332 608 lineto
+ 330 606 lineto
+ 326 604 320 602 314 600 curveto
+ 316 600 lineto
+ 310 598 lineto
+ 308 596 lineto
+ 300 592 292 586 284 580 curveto
+ 286 580 lineto
+ 280 576 lineto
+ 280 574 lineto
+ 276 570 272 568 270 564 curveto
+ 268 560 266 558 266 556 curveto
+ 264 552 lineto
+ 262 550 lineto
+ 252 534 246 516 242 496 curveto
+ 244 498 lineto
+ 242 492 lineto
+ 234 454 234 412 234 374 curveto
+ 236 376 lineto
+ 236 366 lineto
+ 240 362 lineto
+ 244 356 lineto
+ 250 354 lineto
+ 254 352 lineto
+ 266 352 lineto
+ 268 354 lineto
+ 274 356 lineto
+ 280 362 lineto
+closepath
+%end path
+fill
+) def
+
+/F
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 592 lineto
+ 280 578 lineto
+ 260 568 lineto
+ 562 568 lineto
+ 564 570 lineto
+ 570 572 lineto
+ 576 578 lineto
+ 578 582 lineto
+ 580 588 lineto
+ 580 592 lineto
+ 578 596 lineto
+ 576 602 lineto
+ 570 606 lineto
+ 564 610 lineto
+ 562 610 lineto
+ 556 612 lineto
+ 554 610 lineto
+ 258 610 lineto
+ 260 612 lineto
+ 254 610 lineto
+ 250 610 lineto
+ 244 606 lineto
+ 240 602 lineto
+ 236 596 lineto
+ 236 592 lineto
+ 234 590 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+%new path
+ 260 352 moveto
+ 518 352 lineto
+ 520 354 lineto
+ 526 356 lineto
+ 532 362 lineto
+ 534 366 lineto
+ 536 372 lineto
+ 536 376 lineto
+ 534 380 lineto
+ 532 386 lineto
+ 526 390 lineto
+ 520 394 lineto
+ 518 394 lineto
+ 512 396 lineto
+ 510 394 lineto
+ 258 394 lineto
+ 260 396 lineto
+ 254 394 lineto
+ 250 394 lineto
+ 244 390 lineto
+ 240 386 lineto
+ 236 380 lineto
+ 236 366 lineto
+ 240 362 lineto
+ 244 356 lineto
+ 250 354 lineto
+ 254 352 lineto
+ 260 352 lineto
+closepath
+%end path
+fill
+) def
+
+/O
+(
+newpath
+%new path
+ 248 362 moveto
+ 250 366 lineto
+ 252 372 lineto
+ 252 408 252 446 258 480 curveto
+ 256 474 lineto
+ 258 476 lineto
+ 262 494 268 514 278 530 curveto
+ 276 528 lineto
+ 274 524 lineto
+ 278 530 282 536 286 542 curveto
+ 288 544 290 546 292 546 curveto
+ 290 546 lineto
+ 294 550 lineto
+ 294 560 lineto
+ 290 546 lineto
+ 270 536 lineto
+ 276 536 lineto
+ 280 538 lineto
+ 286 540 lineto
+ 286 542 lineto
+ 296 550 306 558 316 562 curveto
+ 314 562 lineto
+ 308 558 lineto
+ 310 560 lineto
+ 316 562 322 564 328 566 curveto
+ 326 566 lineto
+ 324 564 lineto
+ 324 566 lineto
+ 334 568 344 570 352 572 curveto
+ 346 570 lineto
+ 346 572 lineto
+ 370 576 396 576 420 576 curveto
+ 426 576 lineto
+ 428 578 lineto
+ 434 580 lineto
+ 440 586 lineto
+ 420 576 lineto
+ 400 586 lineto
+ 404 580 lineto
+ 410 578 lineto
+ 414 576 lineto
+ 420 576 lineto
+ 420 574 lineto
+ 444 574 470 574 494 570 curveto
+ 492 570 lineto
+ 486 572 lineto
+ 488 570 lineto
+ 496 568 506 566 516 564 curveto
+ 514 564 lineto
+ 512 566 lineto
+ 512 564 lineto
+ 518 562 524 560 530 558 curveto
+ 524 562 lineto
+ 524 560 lineto
+ 534 556 544 548 554 540 curveto
+ 552 540 lineto
+ 558 538 lineto
+ 562 536 lineto
+ 568 536 lineto
+ 548 546 lineto
+ 544 556 lineto
+ 544 550 lineto
+ 548 546 lineto
+ 548 544 lineto
+ 550 544 552 542 554 540 curveto
+ 558 534 562 528 566 522 curveto
+ 564 524 lineto
+ 562 528 lineto
+ 572 512 578 492 582 474 curveto
+ 580 480 lineto
+ 582 478 lineto
+ 588 444 588 406 588 370 curveto
+ 588 366 lineto
+ 592 362 lineto
+ 596 356 lineto
+ 602 354 lineto
+ 606 352 lineto
+ 618 352 lineto
+ 620 354 lineto
+ 626 356 lineto
+ 632 362 lineto
+ 634 366 lineto
+ 636 372 lineto
+ 636 376 lineto
+ 634 376 lineto
+ 634 412 634 450 628 484 curveto
+ 628 488 lineto
+ 626 490 lineto
+ 622 508 616 528 606 544 curveto
+ 608 542 lineto
+ 604 548 lineto
+ 600 554 596 560 592 566 curveto
+ 590 568 588 570 586 570 curveto
+ 588 570 lineto
+ 582 574 lineto
+ 582 576 lineto
+ 572 584 562 592 552 596 curveto
+ 554 596 lineto
+ 548 598 lineto
+ 546 600 lineto
+ 540 602 534 604 528 606 curveto
+ 526 606 lineto
+ 526 608 lineto
+ 516 610 506 612 498 614 curveto
+ 492 614 lineto
+ 492 616 lineto
+ 468 620 442 620 418 620 curveto
+ 420 620 lineto
+ 418 618 lineto
+ 394 618 368 618 344 614 curveto
+ 340 614 lineto
+ 338 612 lineto
+ 330 610 320 608 310 606 curveto
+ 308 606 lineto
+ 308 604 lineto
+ 302 602 296 600 290 598 curveto
+ 284 596 lineto
+ 284 594 lineto
+ 274 590 264 582 254 574 curveto
+ 256 574 lineto
+ 250 570 lineto
+ 250 568 lineto
+ 248 568 246 566 244 564 curveto
+ 240 558 236 552 232 546 curveto
+ 234 548 lineto
+ 230 542 lineto
+ 220 526 214 506 210 488 curveto
+ 210 484 lineto
+ 208 482 lineto
+ 202 448 202 410 202 374 curveto
+ 204 376 lineto
+ 204 366 lineto
+ 208 362 lineto
+ 212 356 lineto
+ 218 354 lineto
+ 222 352 lineto
+ 234 352 lineto
+ 236 354 lineto
+ 242 356 lineto
+ 248 362 lineto
+closepath
+%end path
+%new path
+ 204 372 moveto
+ 204 370 lineto
+ 204 344 204 316 210 292 curveto
+ 208 292 lineto
+ 210 288 lineto
+ 210 286 lineto
+ 214 272 218 256 226 244 curveto
+ 228 240 lineto
+ 230 238 lineto
+ 234 232 238 224 244 218 curveto
+ 244 220 lineto
+ 248 214 lineto
+ 250 214 lineto
+ 250 212 250 212 252 212 curveto
+ 260 204 268 198 278 194 curveto
+ 276 194 lineto
+ 282 192 lineto
+ 284 190 lineto
+ 290 188 296 186 302 184 curveto
+ 304 184 lineto
+ 304 182 lineto
+ 314 180 322 180 332 178 curveto
+ 338 178 lineto
+ 338 176 lineto
+ 364 172 394 172 420 172 curveto
+ 420 174 lineto
+ 446 174 476 174 502 178 curveto
+ 506 178 lineto
+ 508 180 lineto
+ 518 180 526 182 536 184 curveto
+ 538 184 lineto
+ 538 186 lineto
+ 544 188 550 190 556 192 curveto
+ 562 194 lineto
+ 562 196 lineto
+ 572 200 580 206 588 214 curveto
+ 590 214 590 214 590 216 curveto
+ 590 214 lineto
+ 594 220 lineto
+ 596 220 lineto
+ 602 226 606 234 610 240 curveto
+ 612 244 lineto
+ 614 246 lineto
+ 622 258 626 274 630 288 curveto
+ 628 288 lineto
+ 630 292 lineto
+ 630 294 lineto
+ 636 318 636 346 636 372 curveto
+ 636 376 lineto
+ 634 380 lineto
+ 632 386 lineto
+ 626 390 lineto
+ 620 394 lineto
+ 618 394 lineto
+ 612 396 lineto
+ 606 394 lineto
+ 602 394 lineto
+ 596 390 lineto
+ 592 386 lineto
+ 588 380 lineto
+ 588 376 lineto
+ 586 374 lineto
+ 586 348 586 320 580 296 curveto
+ 582 296 lineto
+ 582 300 lineto
+ 578 286 574 270 566 258 curveto
+ 570 264 lineto
+ 568 262 lineto
+ 564 256 560 248 554 242 curveto
+ 554 244 lineto
+ 552 238 lineto
+ 550 234 lineto
+ 550 230 lineto
+ 554 244 lineto
+ 574 254 lineto
+ 568 252 lineto
+ 566 252 lineto
+ 560 248 lineto
+ 558 248 lineto
+ 558 246 558 246 556 246 curveto
+ 548 238 540 232 530 228 curveto
+ 532 228 lineto
+ 538 232 lineto
+ 536 230 lineto
+ 530 228 524 226 518 224 curveto
+ 520 224 lineto
+ 522 226 lineto
+ 522 224 lineto
+ 512 222 504 220 494 218 curveto
+ 500 220 lineto
+ 500 218 lineto
+ 474 214 444 214 418 214 curveto
+ 420 216 lineto
+ 414 214 lineto
+ 410 214 lineto
+ 404 210 lineto
+ 400 206 lineto
+ 420 216 lineto
+ 440 206 lineto
+ 434 210 lineto
+ 428 214 lineto
+ 426 214 lineto
+ 420 216 lineto
+ 418 216 lineto
+ 392 216 362 216 336 220 curveto
+ 338 220 lineto
+ 344 218 lineto
+ 342 220 lineto
+ 332 222 324 224 314 226 curveto
+ 316 226 lineto
+ 318 224 lineto
+ 318 226 lineto
+ 312 228 306 230 300 232 curveto
+ 306 228 lineto
+ 306 230 lineto
+ 296 234 288 240 280 248 curveto
+ 278 248 278 248 278 250 curveto
+ 278 248 lineto
+ 272 252 lineto
+ 270 252 lineto
+ 264 254 lineto
+ 284 244 lineto
+ 288 234 lineto
+ 286 238 lineto
+ 284 244 lineto
+ 282 244 lineto
+ 276 250 272 258 268 264 curveto
+ 272 258 lineto
+ 270 260 lineto
+ 262 272 258 288 254 302 curveto
+ 256 302 lineto
+ 256 298 lineto
+ 250 322 250 350 250 376 curveto
+ 252 376 lineto
+ 250 380 lineto
+ 248 386 lineto
+ 242 390 lineto
+ 236 394 lineto
+ 234 394 lineto
+ 228 396 lineto
+ 222 394 lineto
+ 218 394 lineto
+ 212 390 lineto
+ 208 386 lineto
+ 204 380 lineto
+ 204 372 lineto
+closepath
+%end path
+fill
+) def
+
+/N
+(
+newpath
+%new path
+ 280 180 moveto
+ 282 186 lineto
+ 284 190 lineto
+ 284 600 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 266 576 lineto
+ 268 578 lineto
+ 274 580 lineto
+ 280 586 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 244 580 lineto
+ 250 578 lineto
+ 254 576 lineto
+ 260 576 lineto
+ 240 586 lineto
+ 236 596 lineto
+ 236 590 lineto
+ 240 586 lineto
+ 240 584 lineto
+ 346 464 454 344 560 224 curveto
+ 564 220 lineto
+ 570 216 lineto
+ 574 216 lineto
+ 580 214 lineto
+ 586 216 lineto
+ 588 216 lineto
+ 594 220 lineto
+ 600 224 lineto
+ 602 230 lineto
+ 604 234 lineto
+ 604 238 lineto
+ 602 244 lineto
+ 600 248 lineto
+ 598 250 lineto
+ 492 370 384 490 278 610 curveto
+ 280 610 lineto
+ 274 614 lineto
+ 268 618 lineto
+ 266 618 lineto
+ 260 620 lineto
+ 254 618 lineto
+ 250 618 lineto
+ 244 614 lineto
+ 240 610 lineto
+ 236 604 lineto
+ 236 600 lineto
+ 234 598 lineto
+ 234 194 lineto
+ 236 194 lineto
+ 236 186 lineto
+ 240 180 lineto
+ 244 178 lineto
+ 250 174 lineto
+ 254 174 lineto
+ 260 172 lineto
+ 266 174 lineto
+ 268 174 lineto
+ 274 178 lineto
+ 280 180 lineto
+closepath
+%end path
+%new path
+ 600 180 moveto
+ 602 186 lineto
+ 604 190 lineto
+ 604 600 lineto
+ 602 604 lineto
+ 600 610 lineto
+ 594 614 lineto
+ 588 618 lineto
+ 586 618 lineto
+ 580 620 lineto
+ 574 618 lineto
+ 570 618 lineto
+ 564 614 lineto
+ 560 610 lineto
+ 556 604 lineto
+ 556 600 lineto
+ 554 598 lineto
+ 554 194 lineto
+ 556 194 lineto
+ 556 186 lineto
+ 560 180 lineto
+ 564 178 lineto
+ 570 174 lineto
+ 574 174 lineto
+ 580 172 lineto
+ 586 174 lineto
+ 588 174 lineto
+ 594 178 lineto
+ 600 180 lineto
+closepath
+%end path
+fill
+) def
+
+end % of CharDefs dictionary
+
+Encoding 77 /M put
+Encoding 69 /E put
+Encoding 84 /T put
+Encoding 65 /A put
+Encoding 70 /F put
+Encoding 79 /O put
+Encoding 78 /N put
+
+Metrics
+ begin
+/.notdef 0 def
+/M 466 fudge add def
+/E 346 fudge add def
+/T 414 fudge 80 sub add def
+/A 370 fudge add def
+/F 346 fudge add def
+/O 434 fudge add def
+/N 370 fudge add def
+ end
+
+ /BuildChar
+ { TBuildCharDict begin
+ %%
+ /char exch def
+ /fontdict exch def
+
+ /charname fontdict /Encoding get
+ char get def
+ %%
+ /charproc fontdict /CharDefs get
+ charname get def
+
+ /charwdth fontdict /Metrics get charname get def
+ %%
+ gsave
+ 1.1 1.3 scale
+ % bounding box : [180 180 700 700]
+ 0.2 setflat
+ 0.2 setlinewidth
+ charwdth 10
+ 0 -100
+ charwdth 80 add 1000
+ setcachedevice
+ -182 0 translate
+ charproc cvx exec
+ grestore
+ end
+ } def
+ /FontBBox [182 fudge sub 180 700 620] def
+
+ end
+
+ /Simon SimonFont definefont pop
+
+ /Simon findfont 11 scalefont setfont
+ 100 210 moveto (METAFONT) show
+ showpage
+
diff --git a/fonts/utilities/mf2ps/doc/printsamples/sy.ps b/fonts/utilities/mf2ps/doc/printsamples/sy.ps
new file mode 100644
index 0000000000..1e020e5833
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/sy.ps
@@ -0,0 +1,415 @@
+%! for use by dvi2ps Version 2.00
+% a start (Ha!) at a TeX mode for PostScript.
+% The following defines procedures assumed and used by program "dvi2ps"
+% and must be downloaded or sent as a header file for all TeX jobs.
+
+% By: Neal Holtz, Carleton University, Ottawa, Canada
+% <holtz@cascade.carleton.cdn>
+% <holtz%cascade.carleton.cdn@ubc.csnet>
+% June, 1985
+% Last Modified: Aug 25/85
+% oystr 12-Feb-1986
+% Changed @dc macro to check for a badly formed bits in character
+% definitions. Can get a <> bit map if a character is not actually
+% in the font file. This is absolutely guaranteed to drive the
+% printer nuts - it will appear that you can no longer define a
+% new font, although the built-ins will still be there.
+% pam 5-Jan-1988
+% Expanded arrays for 256 character gf fonts.
+
+% To convert this file into a downloaded file instead of a header
+% file, uncomment all of the lines beginning with %-%
+
+%-%0000000 % Server loop exit password
+%-%serverdict begin exitserver
+%-% systemdict /statusdict known
+%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end}
+%-% if
+
+/TeXDict 200 dict def % define a working dictionary
+TeXDict begin % start using it.
+
+ % units are in "dots" (300/inch)
+/Resolution 300 def
+/Inch {Resolution mul} def % converts inches to internal units
+
+/Mtrx 6 array def
+
+%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%%
+
+% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in
+% from top left, with y +ive downward). The default PostScript system
+% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in
+% the following code are an attempt to reconcile that. The intent is to
+% specify the scaling as 1 and have only translations in the matrix to
+% properly position the text. Caution: the default device matrices are
+% *not* the same in all PostScript devices; that should not matter in most
+% of the code below (except for lanscape mode -- in that, rotations of
+% -90 degrees resulted in the the rotation matrix [ e 1 ]
+% [ 1 e ]
+% where the "e"s were almost exactly but not quite unlike zeros.
+
+/@letter
+ { letter initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 310 -3005 translate % move origin to top (these are not exactly 1"
+ Mtrx currentmatrix pop % and -10" because margins aren't set exactly right)
+ } def
+ % note mode is like letter, except it uses less VM
+/@note
+ { note initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 310 -3005 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@landscape
+ { letter initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+% -90 rotate % it would be nice to be able to do this
+ Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what
+ Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly)
+ Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers
+ Mtrx 3 0.0 put % (nor on others where the device matrix is not like
+ Mtrx setmatrix % like it is on the LaserWriter).
+ 300 310 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@legal
+ { legal initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 295 -3880 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@manualfeed
+ { statusdict /manualfeed true put
+ } def
+ % n @copies - set number of copies
+/@copies
+ { /#copies exch def
+ } def
+
+%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+/@newfont % id @newfont - -- initialize a new font dictionary
+ { /newname exch def
+ pop
+ newname 7 dict def % allocate new font dictionary
+ newname load begin
+ /FontType 3 def
+ /FontMatrix [1 0 0 -1 0 0] def
+ /FontBBox [0 0 1 1] def
+% pam 5-Jan-1988 array enlarged for gf fonts
+ /BitMaps 256 array def
+ /BuildChar {CharBuilder} def
+ /Encoding 256 array def
+ 0 1 255 {Encoding exch /.undef put} for
+ end
+ newname newname load definefont pop
+ } def
+
+
+% the following is the only character builder we need. it looks up the
+% char data in the BitMaps array, and paints the character if possible.
+% char data -- a bitmap descriptor -- is an array of length 6, of
+% which the various slots are:
+
+/ch-image {ch-data 0 get} def % the hex string image
+/ch-width {ch-data 1 get} def % the number of pixels across
+/ch-height {ch-data 2 get} def % the number of pixels tall
+/ch-xoff {ch-data 3 get} def % number of pixels below origin
+/ch-yoff {ch-data 4 get} def % number of pixels to left of origin
+/ch-tfmw {ch-data 5 get} def % spacing to next character
+
+/CharBuilder % fontdict ch Charbuilder - -- image one character
+ { /ch-code exch def % save the char code
+ /font-dict exch def % and the font dict.
+ /ch-data font-dict /BitMaps get ch-code get def % get the bitmap descriptor for char
+ ch-data null eq not
+ { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub
+ setcachedevice
+ ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff]
+ {ch-image} imagemask
+ }
+ if
+ } def
+
+
+/@sf % fontdict @sf - -- make that the current font
+ { setfont() pop
+ } def
+
+ % in the following, the font-cacheing mechanism requires that
+ % a name unique in the particular font be generated
+
+/@dc % char-data ch @dc - -- define a new character bitmap in current font
+ { /ch-code exch def
+% ++oystr 12-Feb-86++
+ dup 0 get
+ length 2 lt
+ { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null
+ if
+% --oystr 12-Feb-86--
+ /ch-data exch def
+ currentfont /BitMaps get ch-code ch-data put
+ currentfont /Encoding get ch-code
+ dup ( ) cvs cvn % generate a unique name simply from the character code
+ put
+ } def
+
+/@bop0 % n @bop0 - -- begin the char def section of a new page
+ {
+ } def
+
+/@bop1 % n @bop1 - -- begin a brand new page
+ { pop
+ erasepage initgraphics
+ Mtrx setmatrix
+ /SaveImage save def() pop
+ } def
+
+/@eop % - @eop - -- end a page
+ { showpage
+ SaveImage restore() pop
+ } def
+
+/@start % - @start - -- start everything
+ { @letter % (there is not much to do)
+ } def
+
+/@end % - @end - -- done the whole shebang
+ { end
+ } def
+
+/p % x y p - -- move to position
+ { moveto
+ } def
+
+/r % x r - -- move right
+ { 0 rmoveto
+ } def
+
+/s % string s - -- show the string
+ { show
+ } def
+
+/c % ch c - -- show the character (code given)
+ { c-string exch 0 exch put
+ c-string show
+ } def
+
+/c-string ( ) def
+
+/ru % dx dy ru - -- set a rule (rectangle)
+ { /dy exch neg def % because dy is height up from bottom
+ /dx exch def
+ /x currentpoint /y exch def def % remember current point
+ newpath x y moveto
+ dx 0 rlineto
+ 0 dy rlineto
+ dx neg 0 rlineto
+ closepath fill
+ x y moveto
+ } def
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% the \special command junk
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The structure of the PostScript produced by dvi2ps for \special is:
+% @beginspecial
+% - any number of @hsize, @hoffset, @hscale, etc., commands
+% @setspecial
+% - the users file of PostScript commands
+% @endspecial
+
+% The @beginspecial command recognizes whether the Macintosh Laserprep
+% has been loaded or not, and redfines some Mac commands if so.
+% The @setspecial handles the users shifting, scaling, clipping commands
+
+
+% The following are user settable options from the \special command.
+
+/@SpecialDefaults
+ { /hs 8.5 Inch def
+ /vs 11 Inch def
+ /ho 0 def
+ /vo 0 def
+ /hsc 1 def
+ /vsc 1 def
+ /CLIP false def
+ } def
+
+% d @hsize - specify a horizontal clipping dimension
+% these 2 are executed before the MacDraw initializations
+/@hsize {/hs exch def /CLIP true def} def
+/@vsize {/vs exch def /CLIP true def} def
+% d @hoffset - specify a shift for the drwgs
+/@hoffset {/ho exch def} def
+/@voffset {/vo excl def} def
+% s @hscale - set scale factor
+/@hscale {/hsc exch def} def
+/@vscale {/vsc exch def} def
+
+/@setclipper
+ { hsc vsc scale
+ CLIP
+ { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip }
+ if
+ } def
+
+% this will be invoked as the result of a \special command (for the
+% inclusion of PostScript graphics). The basic idea is to change all
+% scaling and graphics back to defaults, but to shift the origin
+% to the current position on the page. Due to TeXnical difficulties,
+% we only set the y-origin. The x-origin is set at the left edge of
+% the page.
+
+/@beginspecial % - @beginspecial - -- enter special mode
+ { gsave /SpecialSave save def
+ % the following magic incantation establishes the current point as
+ % the users origin, and reverts back to default scalings, rotations
+ currentpoint transform initgraphics itransform translate
+ @SpecialDefaults % setup default offsets, scales, sizes
+ @MacSetUp % fix up Mac stuff
+ } def
+
+/@setspecial % to setup user specified offsets, scales, sizes (for clipping)
+ {
+ MacDrwgs
+ {md begin /pxt ho def /pyt vo neg def end}
+ {ho vo translate @setclipper}
+ ifelse
+ } def
+
+/@endspecial % - @endspecial - -- leave special mode
+ { SpecialSave restore
+ grestore
+ } def
+
+/MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded
+
+ % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us
+ % we depend on 'psu' being the first procedure executed
+ % by a Mac document. We redefine 'psu' to adjust page
+ % translations, and to do all other the fixups required.
+ % This stuff will not harm other included PS files
+/@MacSetUp
+ { userdict /md known % if md is defined
+ { userdict /md get type /dicttype eq % and if it is a dictionary
+ { /MacDrwgs true def
+ md begin % then redefine some stuff
+ /psu % redfine psu to set origins, etc.
+ /psu load
+ % this procedure contains almost all the fixup code
+ { /letter {} def % it is bad manners to execute the real
+ /note {} def % versions of these (clears page image, etc.)
+ /legal {} def
+ statusdict /waittimeout 300 put
+ /page {pop} def % no printing of pages
+ /pyt vo neg def % x & y pixel translations
+ /pxt ho def
+ }
+ concatprocs
+ def
+ /od % redefine od to set clipping region
+ /od load
+ { @setclipper }
+ concatprocs
+ def
+ end }
+ if }
+ if
+ } def
+
+% p1 p2 concatprocs p - concatenate procedures
+/concatprocs
+ { /p2 exch cvlit def
+ /p1 exch cvlit def
+ /p p1 length p2 length add array def
+ p 0 p1 putinterval
+ p p1 length p2 putinterval
+ p cvx
+ } def
+
+end % revert to previous dictionary
+TeXDict begin @start
+%%Title: sy.dvi
+%%Creator: dvi2ps
+%%EndProlog
+1 @bop0
+[ 360 ] /lasy10.360 @newfont
+lasy10.360 @sf
+[<7FFFFFFCFFFFFFFEC0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C000
+ 0000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000
+ C0000000C0000000C0000000FFFFFFFE7FFFFFFC> 32 30 -4 3 38.743] 60 @dc
+[<7FFFFFFCFFFFFFFE000000060000000600000006000000060000000600000006000000060000000600000006000000060000
+ 0006000000060000000600000006000000060000000600000006000000060000000600000006000000060000000600000006
+ 000000060000000600000006FFFFFFFE7FFFFFFC> 32 30 -3 3 38.743] 61 @dc
+[<000020000000007000000000D8000000018C000000030600000006030000000C018000001800C00000300060000060003000
+ 00C00018000180000C00030000060006000003000C0000018018000000C03000000060600000003060000000303000000060
+ 18000000C00C00000180060000030003000006000180000C0000C000180000600030000030006000001800C000000C018000
+ 0006030000000306000000018C00000000D8000000007000000000200000> 40 36 -1 1 39.435] 51 @dc
+[<FFFFFFE0FFFFFFE0C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C000
+ 0060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060C0000060
+ FFFFFFE07FFFFFC0> 32 27 -5 -4 37.221] 50 @dc
+[<40000018E0000038F0000078D80000D8CC000198C6000318C3000618C1800C18C0C01818C0603018C0306018C018C018C00D
+ 8018C0070018C0070018C00D8018C018C018C0306018C0603018C0C01818C1800C18C3000618C6000318CC000198D80000D8
+ F0000078E000003840000018> 32 28 -3 -3 35.975] 49 @dc
+[ 360 ] /cmsy10.360 @newfont
+cmsy10.360 @sf
+[<800007E00080001FF00080003FF800C000781C00C001E00E006003C006007007800300381E0003001FFC0001000FF8000100
+ 07E0000100> 40 11 -3 -7 38.743] 24 @dc
+lasy10.360 @sf
+[<000000000600000000000300000000000300000001F00180000007FC018000000E0F00C000001803806000003000E0384000
+ 60007FFCC000C0001FFE7001800000383803000000600E0E000000C007FC0000018001F00000018000000000030000000000
+ 0300000000000600> 48 18 1 -3 49.812] 59 @dc
+[ 300 ] /cmmi12.300 @newfont
+cmmi12.300 @sf
+[<0000001800000078000001E00000078000001E00000078000003E000000F8000003C000000F0000003C000000F0000003C00
+ 0000F0000000F00000003C0000000F00000003C0000000F00000003C0000000F80000003E0000000780000001E0000000780
+ 000001E00000007800000018> 32 28 -4 2 37.935] 60 @dc
+cmsy10.360 @sf
+[<FFFFFFFC7FFFFFF800000000000000000000000000000000000000000000000000000000000000000000000C0000003C0000
+ 00F0000003C000000F0000003C000000F0000007C000001F00000078000001E00000078000001E00000078000000E0000000
+ 780000001E0000000780000001E0000000780000001F00000007C0000000F00000003C0000000F00000003C0000000F00000
+ 003C0000000C> 32 39 -4 7 38.743] 20 @dc
+cmmi12.300 @sf
+[<C0000000F00000003C0000000F00000003C0000000F00000003E0000000F80000001E0000000780000001E00000007800000
+ 01E00000007800000078000001E00000078000001E00000078000001E000000F8000003E000000F0000003C000000F000000
+ 3C000000F0000000C0000000> 32 28 -4 2 37.935] 62 @dc
+cmsy10.360 @sf
+[<FFFFFFFC7FFFFFF80000000000000000000000000000000000000000000000000000000000000000C0000000700000003C00
+ 00000F00000003C0000000F00000003C0000000F80000003E0000000780000001E0000000780000001E0000000780000001C
+ 00000078000001E00000078000001E00000078000003E000000F8000003C000000F0000003C000000F0000003C000000F000
+ 0000C0000000> 32 39 -4 7 38.743] 21 @dc
+[ 300 ] /cmr12.300 @newfont
+cmr12.300 @sf
+[<FFFE07C003800380038003800380038003800380038003800380038003800380038003800380038003800380038003800380
+ 0380038003800380F3800F8003800080> 16 33 -4 0 24.387] 49 @dc
+1 @bop1
+lasy10.360 @sf
+73 45 p (<=) s
+14 r (32) s
+14 r 49 c
+cmsy10.360 @sf
+0 r 24 c
+lasy10.360 @sf
+0 r 59 c
+cmmi12.300 @sf
+14 r 60 c
+424 48 p 3 29 ru
+cmsy10.360 @sf
+448 45 p 20 c
+480 41 p 3 27 ru
+518 48 p 3 29 ru
+cmmi12.300 @sf
+514 45 p 62 c
+567 41 p 3 27 ru
+cmsy10.360 @sf
+563 45 p 21 c
+cmr12.300 @sf
+963 2828 p 49 c
+@eop
+@end
diff --git a/fonts/utilities/mf2ps/doc/printsamples/sy.tex b/fonts/utilities/mf2ps/doc/printsamples/sy.tex
new file mode 100644
index 0000000000..7cb83ed5f3
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/sy.tex
@@ -0,0 +1,11 @@
+\documentstyle [12pt] {article}
+
+\oddsidemargin 0in
+\evensidemargin 0in
+\topmargin -0.5in
+\textheight 9.0in
+\textwidth 6.5in
+
+\begin{document}
+$ \sqsubset \sqsupset \Diamond \Box \Join \sim \leadsto \lhd \unlhd \rhd \unrhd $
+\end{document}
diff --git a/fonts/utilities/mf2ps/doc/printsamples/tt.ps b/fonts/utilities/mf2ps/doc/printsamples/tt.ps
new file mode 100644
index 0000000000..3989da772a
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/tt.ps
@@ -0,0 +1,180 @@
+%!PS-Adobe-2.0
+%%Creator: dvips by Radical Eye Software
+%%Title: tt.dvi
+%%Pages: 1 -1
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%%BeginDocument: tex.pro
+/TeXDict 200 dict def TeXDict begin /bdf{bind def}def /Inch{Resolution mul}
+bdf /Dots{72 div Resolution mul}bdf /dopage{72 Resolution div dup neg scale
+translate}bdf /@letter{Resolution dup -10 mul dopage}bdf /@note{@letter}bdf
+/@a4{Resolution dup -10.6929133858 mul dopage}bdf /@translate{translate}bdf
+/@scale{scale}bdf /@rotate{rotate}bdf /@landscape{[0 1 -1 0 0 0]concat
+Resolution dup dopage}bdf /@legal{Resolution dup -13 mul dopage}bdf
+/@manualfeed{statusdict /manualfeed true put}bdf /@copies{/#copies exch def}
+bdf /@FontMatrix[1 0 0 -1 0 0]def /@FontBBox[0 0 1 1]def /dmystr(ZZf@@)def
+/newname{dmystr cvn}bdf /df{/fontname exch def dmystr 2 fontname cvx(@@@)cvs
+putinterval newname 7 dict def newname load begin /FontType 3 def /FontMatrix
+@FontMatrix def /FontBBox @FontBBox def /BitMaps 256 array def /BuildChar{
+CharBuilder}def /Encoding TeXEncoding def end fontname{/foo setfont}2 array
+copy cvx def fontname load 0 dmystr 5 string copy cvn cvx put}bdf /dfe{
+newname newname load definefont setfont}bdf /ch-image{ch-data 0 get}bdf
+/ch-width{ch-data 1 get}bdf /ch-height{ch-data 2 get}bdf /ch-xoff{ch-data 3
+get}bdf /ch-yoff{ch-data 4 get}bdf /ch-tfmw{ch-data 5 get}bdf /CharBuilder{
+save 3 1 roll exch /BitMaps get exch get /ch-data exch def ch-data null ne{
+ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub
+setcachedevice ch-width ch-height true[1 0 0 1 ch-xoff .1 sub ch-yoff .1 sub]{
+ch-image}imagemask}if restore}bdf /dc{/ch-code exch def dup 0 get length 1 lt{
+pop[<00>1 1 0 0 8.00]}if /ch-data exch def newname load /BitMaps get ch-code
+ch-data put}bdf /bop{gsave /SaveImage save def 0 0 moveto}bdf /eop{clear
+SaveImage restore showpage grestore}bdf /@start{/Resolution exch def
+/TeXEncoding 256 array def 0 1 255{TeXEncoding exch 1 string dup 0 3 index put
+cvn put}for}bdf /p{show}bdf /RuleMatrix[1 0 0 -1 -.1 -.1]def /BlackDots 8
+string def /v{gsave currentpoint translate false RuleMatrix{BlackDots}
+imagemask grestore}bdf /a{moveto}bdf /delta 0 def /tail{dup /delta exch def 0
+rmoveto}bdf /b{exch p tail}bdf /c{p delta 4 sub tail}bdf /d{p delta 3 sub tail
+}bdf /e{p delta 2 sub tail}bdf /f{p delta 1 sub tail}bdf /g{p delta 0 rmoveto}
+bdf /h{p delta 1 add tail}bdf /i{p delta 2 add tail}bdf /j{p delta 3 add tail}
+bdf /k{p delta 4 add tail}bdf /l{p -4 0 rmoveto}bdf /m{p -3 0 rmoveto}bdf /n{
+p -2 0 rmoveto}bdf /o{p -1 0 rmoveto}bdf /q{p 1 0 rmoveto}bdf /r{p 2 0 rmoveto
+}bdf /s{p 3 0 rmoveto}bdf /t{p 4 0 rmoveto}bdf /w{0 rmoveto}bdf /x{0 exch
+rmoveto}bdf /y{3 -1 roll p moveto}bdf /bos{/section save def}bdf /eos{clear
+section restore}bdf /SDict 200 dict def SDict begin /@SpecialDefaults{/hs 8.5
+Inch def /vs 11 Inch def /ho 0 def /vo 0 def /hsc 1 def /vsc 1 def /ang 0 def
+/CLIP false def /BBcalc false def}bdf /@hsize{/hs exch def /CLIP true def}bdf
+/@vsize{/vs exch def /CLIP true def}bdf /@hoffset{/ho exch def}bdf /@voffset{
+/vo exch def}bdf /@hscale{@scaleunit div /hsc exch def}bdf /@vscale{
+@scaleunit div /vsc exch def}bdf /@angle{/ang exch def}bdf /@scaleunit 100 def
+/@rwi{10 div /rwi exch def}bdf /@llx{/llx exch def}bdf /@lly{/lly exch def}
+bdf /@urx{/urx exch def}bdf /@ury{/ury exch def /BBcalc true def}bdf
+/@setclipper{BBcalc{rwi urx llx sub div dup scale llx neg lly neg translate}{
+hsc vsc scale}ifelse CLIP{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg
+0 rlineto closepath clip}{initclip}ifelse}bdf end /@MacSetUp{userdict /md
+known{userdict /md get type /dicttype eq{md begin /letter{}def /note{}def
+/legal{}def /od{txpose 1 0 mtx defaultmatrix dtransform exch atan/pa exch def
+newpath clippath mark{transform{itransform moveto}}{transform{itransform
+lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
+itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
+closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put
+10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}def /txpose{pxs pys
+scale ppr aload pop por{noflips{pop exch neg exch translate pop 1 -1 scale}if
+xflip yflip and{pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get
+ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip
+not and{pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 translate}if yflip xflip not and{ppr 1 get neg ppr 0 get neg translate}
+if}{noflips{translate pop pop 270 rotate 1 -1 scale}if xflip yflip and{
+translate pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2
+get ppr 0 get neg sub neg translate}if xflip yflip not and{translate pop pop
+90 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{
+translate pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate}
+if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2
+copy translate .96 dup scale neg exch neg exch translate}if}def /cp{pop pop
+showpage pm restore}def end}if}if}def /psf$TeXscale{65536 div}def /startTexFig
+{/psf$SavedState save def userdict maxlength dict begin Resolution 72 div dup
+neg scale currentpoint translate /psf$ury exch psf$TeXscale def /psf$urx exch
+psf$TeXscale def /psf$lly exch psf$TeXscale def /psf$llx exch psf$TeXscale def
+/psf$y exch psf$TeXscale def /psf$x exch psf$TeXscale def currentpoint /psf$cy
+exch def /psf$cx exch def /psf$sx psf$x psf$urx psf$llx sub div def /psf$sy
+psf$y psf$ury psf$lly sub div def psf$sx psf$sy scale psf$cx psf$sx div
+psf$llx sub psf$cy psf$sy div psf$ury sub translate /showpage{}def /erasepage{
+}def /copypage{}def @MacSetUp}def /doclip{psf$llx psf$lly psf$urx psf$ury
+currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto
+exch lineto exch lineto closepath clip newpath moveto}def /endTexFig{end
+psf$SavedState restore}def /@beginspecial{SDict begin /SpecialSave save def
+gsave Resolution 72 div dup neg scale currentpoint translate @SpecialDefaults}
+bdf /@setspecial{ho vo translate @setclipper ang rotate /showpage{}def newpath
+}bdf /@endspecial{grestore clear SpecialSave restore end}bdf /@defspecial{
+SDict begin}bdf /@fedspecial{end}bdf /li{lineto}bdf /rl{rlineto}bdf /rc{
+rcurveto}bdf /np{/SaveX currentpoint /SaveY exch def def newpath}bdf /st{
+stroke SaveX SaveY moveto}bdf /fil{fill SaveX SaveY moveto}bdf /ellipse{
+/endangle exch def /startangle exch def /yrad exch def /xrad exch def
+/savematrix matrix currentmatrix def translate xrad yrad scale 0 0 1
+startangle endangle arc savematrix setmatrix}bdf end
+%%EndDocument
+TeXDict begin 300 @start /fa df[<7F01FCFF83FE7F01FC1C00700E00E00E00E00E00E00E
+00E00FFFE007FFC007FFC00701C00701C003838003838003838003838001C70001C70001C70001
+C70000C60000C60000EE0000EE0000EE00006C00007C00007C00003800>23 30 -1 0 26]65 dc
+[<00FE0003FF8007FFC00F83E01E00F01C00703C0078780038700038700038F00000E00000E000
+00E00000E00000E00000E00000E00000E00000F000007000387000387800383C00781C00781E00
+F80F83F807FFF803FFB800FE38>21 30 -2 0 26]67 dc[<FFFFFCFFFFFCFFFFFC1C001C1C001C
+1C001C1C001C1C001C1C00001C00001C00001C0E001C0E001C0E001FFE001FFE001FFE001C0E00
+1C0E001C0E001C00001C00001C00001C00381C00381C00381C0038FFFFF8FFFFF8FFFFF8>22 30
+-2 0 26]69 dc[<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E
+00000E03800E03800E03800FFF800FFF800FFF800E03800E03800E03800E00000E00000E00000E
+001C0E001C0E001C0E001C7FFFFCFFFFFC7FFFFC>22 30 -1 0 26]70 dc[<FF83FEFF83FEFF83
+FE1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701FFFF01FFF
+F01FFFF01C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070FF83FEFF83
+FEFF83FE>23 30 -1 0 26]72 dc[<FFFF80FFFF80FFFF8001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF80>17 30 -4 0 26]73 dc[<7F
+FFFCFFFFFC7FFFFC0E001C0E001C0E001C0E001C0E001C0E00000E00000E00000E00000E00000E
+00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E
+00007FE000FFF0007FE000>22 30 -1 0 26]76 dc[<7F007F00FF80FF807F007F001C001C001C
+001C001C001C001C001C001C001C001C001C001C001C001C1C1C001C1C1C001C3E1C001C361C00
+1C361C001C771C001C771C001C631C001CE39C001CE39C001CC19C001CC19C001DC1DC001DC1DC
+001D80DC001D80DC001D80DC007F007F00FF007F807E003F00>25 30 0 0 26]77 dc[<FF80F0
+FF81F0FF81F01C03701C03701C07701C06701C06701C0E701C0E701C0C701C1C701C1C701C1870
+1C38701C38701C30701C70701C70701C60701CE0701CE0701CC0701CC0701DC0701D80701D8070
+FF03FEFF03FEFE03FE>23 30 -1 0 26]78 dc[<0FFE003FFF807FFFC07C07C07001C0F001E0F0
+01E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E0
+00E0E000E0E000E0E000E0E000E0F001E07001C07C07C07FFFC03FFF800FFE00>19 30 -3 0 26
+]79 dc[<FF8000FF8000FF80001C00001C00001C00001C00001C00001C00001C00001C00001C00
+001FFE001FFF801FFFC01C03E01C00F01C00701C00781C00381C00381C00381C00381C00781C00
+701C00F01C03E0FFFFC0FFFF80FFFE00>21 30 -2 0 26]80 dc[<FF803CFF807EFF80FF1C00E7
+1C00E71C00E71C00E21C00E01C00E01C00E01C00E01C00E01C01E01C07C01FFF801FFF001FFF80
+1C07C01C01E01C00F01C00701C00701C00701C00701C00F01C01E01C07C0FFFF80FFFF00FFFC00
+>24 30 -1 0 26]82 dc[<E3FC00FFFE00FFFF80FE0780F003C0F001E0E000E0E000E06000E000
+00E00001E00001C00003C0000F8001FF000FFE001FF8003F0000780000F00000E00000E001C0E0
+01C0E001C0F003C07007C07C1FC03FFFC01FFDC007F1C0>19 30 -3 0 26]83 dc[<03FF8003FF
+8003FF800038000038000038000038000038000038000038000038000038000038000038000038
+00003800003800003800003800003800003800003800003800E0380EE0380EE0380EE0380EFFFF
+FEFFFFFE7FFFFE>23 30 -1 0 26]84 dc[<003800007C00007C00006C0000EE0000EE0000EE00
+00C60001C70001C70001C70001C7000383800383800383800383800701C00701C00701C00701C0
+0E00E00E00E00E00E01E00F01C00701C00701C0070FF01FEFF01FEFF01FE>23 30 -1 0 26]86
+dc[<0701C00F83E00F83E00D83600D83600D83600DC7600DC7600DC7601CC6701CC6701CEE701C
+EE701CEE701CEE701CEE701C7C70387C3838003838003838003838003838003838003838003878
+003C70001CFE00FEFF01FEFE00FE>23 30 -1 0 26]87 dc dfe /fb df[<7F1FC0FF1FE07F1F
+C01C07001C07001C07001FFF000FFE000FFE000E0E000E0E00071C00071C00071C00071C00071C
+0003180003B80003B80003B80001B00001B00001F00001F00000E000>19 25 -1 0 22]65 dc[<
+01F00007FC000FFE001F0F003C0780780380780380700380F00000E00000E00000E00000E00000
+E00000E00000E00000F000007003807803807807803C07801F0F800FFF8007FF8001F180>17 25
+-2 0 22]67 dc[<7FFFE0FFFFE07FFFE01C00E01C00E01C00E01C00E01C00E01C00001C1C001C
+1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C01C01C01C01C01C01C01C07FFFC0FF
+FFC07FFFC0>19 25 -1 0 22]69 dc[<FF8000FFC000FF80001C00001C00001C00001C00001C00
+001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C00E01C00E01C00
+E01C00E0FFFFE0FFFFE0FFFFE0>19 25 -1 0 22]70 dc[<7F1FC0FFBFE07F1FC01C07001C0700
+1C07001C07001C07001C07001C07001C07001C07001FFF001FFF001FFF001C07001C07001C0700
+1C07001C07001C07001C07007F1FC0FFBFE07F1FC0>19 25 -1 0 22]72 dc[<FFFEFFFEFFFE03
+80038003800380038003800380038003800380038003800380038003800380038003800380FFFE
+FFFEFFFE>15 25 -3 0 22]73 dc[<FE0FE0FE0FE0FE0FE0380380380380380380380380380380
+38E38038E38039F38039B38039B38039B38039B3803BBB803BBB803B1B803B1B803B1B803B1B80
+3A0B80FE0FE0FE0FE0FC07E0>19 25 -1 0 22]77 dc[<7F0F00FF9F007F1F001C17001C37001C
+37001C37001C77001C77001C67001C67001CE7001CE7001CE7001CC7001CC7001DC7001DC7001D
+87001D87001D87001D07007F1FC0FF3FE07E1FC0>19 25 -1 0 22]78 dc[<1FFC003FFE007FFF
+00780F00F00780F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E003
+80E00380E00380E00380E00380F00780780F007FFF003FFE001FFC00>17 25 -2 0 22]79 dc[<
+7F0000FF80007F00001C00001C00001C00001C00001C00001C00001C00001FF8001FFE001FFF00
+1C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F807FFF00FFFE007FF800>18 25
+-1 0 22]80 dc[<7F03C0FF87E07F0FF01C0E701C0E701C0E201C0E001C0E001C0E001C0E001C
+3E001FFC001FF8001FFC001C1E001C0F001C07001C07001C07001C07001C0F001C1E007FFC00FF
+F8007FE000>20 25 -1 0 22]82 dc[<C7F000FFFC00FFFE00F80F00F00780E00380E003800003
+80000380000780000F0000FE0007FC001FF0007F8000780000F00000E00000E00700E00700F00F
+00781F007FFF001FFF0007E300>17 25 -2 0 22]83 dc[<07FC000FFE0007FC0000E00000E000
+00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000
+E0E0E0E0E0E0E0E0E0E0E0E0FFFFE0FFFFE07FFFE0>19 25 -1 0 22]84 dc[<0E0E000F1E000F
+1E001B1B0019130019B30019B30019B30019B30019B30019B30039B38039F38039F38038E38038
+03803803803803803001807001C07001C07001C0FC07E0FE0FE0FC07E0>19 25 -1 0 22]87 dc
+dfe /fc df[<FFF80F800700070007000700070007000700070007000700070007000700070007
+00070007000700070007000700C7003F0007000300>13 27 -4 0 21]49 dc dfe end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300
+ TeXDict begin @letter
+%%EndSetup
+%%Page: 1 1
+ bop 83 42 a fb(THIS)21 b(IS)g(CMTT)g(TEN)h(POINTS)e(WRITTEN)g(IN)i(METAFONT)
+83 91 y fa(THIS)i(IS)h(CMTT)f(TWELVE)g(POINTS)f(WRITTEN)g(IN)i(METAFONT)965
+2770 y fc(1)g eop
+%%Trailer
+ end
+%%EOF
diff --git a/fonts/utilities/mf2ps/doc/printsamples/tt.tex b/fonts/utilities/mf2ps/doc/printsamples/tt.tex
new file mode 100644
index 0000000000..9eaad5ce86
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/tt.tex
@@ -0,0 +1,8 @@
+\font\test=cmtt10
+\test
+THIS IS CMTT TEN POINTS WRITTEN IN METAFONT
+
+\font\test=cmtt12
+\test
+THIS IS CMTT TWELVE POINTS WRITTEN IN METAFONT
+\bye
diff --git a/fonts/utilities/mf2ps/doc/printsamples/tt7.ps b/fonts/utilities/mf2ps/doc/printsamples/tt7.ps
new file mode 100644
index 0000000000..a61024be70
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/tt7.ps
@@ -0,0 +1,457 @@
+%! for use by dvi2ps Version 2.00
+% a start (Ha!) at a TeX mode for PostScript.
+% The following defines procedures assumed and used by program "dvi2ps"
+% and must be downloaded or sent as a header file for all TeX jobs.
+
+% By: Neal Holtz, Carleton University, Ottawa, Canada
+% <holtz@cascade.carleton.cdn>
+% <holtz%cascade.carleton.cdn@ubc.csnet>
+% June, 1985
+% Last Modified: Aug 25/85
+% oystr 12-Feb-1986
+% Changed @dc macro to check for a badly formed bits in character
+% definitions. Can get a <> bit map if a character is not actually
+% in the font file. This is absolutely guaranteed to drive the
+% printer nuts - it will appear that you can no longer define a
+% new font, although the built-ins will still be there.
+
+% To convert this file into a downloaded file instead of a header
+% file, uncomment all of the lines beginning with %-%
+
+%-%0000000 % Server loop exit password
+%-%serverdict begin exitserver
+%-% systemdict /statusdict known
+%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end}
+%-% if
+
+/TeXDict 200 dict def % define a working dictionary
+TeXDict begin % start using it.
+
+ % units are in "dots" (300/inch)
+/Resolution 300 def
+/Inch {Resolution mul} def % converts inches to internal units
+
+/Mtrx 6 array def
+
+%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%%
+
+% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in
+% from top left, with y +ive downward). The default PostScript system
+% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in
+% the following code are an attempt to reconcile that. The intent is to
+% specify the scaling as 1 and have only translations in the matrix to
+% properly position the text. Caution: the default device matrices are
+% *not* the same in all PostScript devices; that should not matter in most
+% of the code below (except for lanscape mode -- in that, rotations of
+% -90 degrees resulted in the the rotation matrix [ e 1 ]
+% [ 1 e ]
+% where the "e"s were almost exactly but not quite unlike zeros.
+
+/@letter
+ { letter initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 310 -3005 translate % move origin to top (these are not exactly 1"
+ Mtrx currentmatrix pop % and -10" because margins aren't set exactly right)
+ } def
+ % note mode is like letter, except it uses less VM
+/@note
+ { note initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 310 -3005 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@landscape
+ { letter initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+% -90 rotate % it would be nice to be able to do this
+ Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what
+ Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly)
+ Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers
+ Mtrx 3 0.0 put % (nor on others where the device matrix is not like
+ Mtrx setmatrix % like it is on the LaserWriter).
+ 300 310 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@legal
+ { legal initmatrix
+ 72 Resolution div dup neg scale % set scaling to 1.
+ 295 -3880 translate % move origin to top
+ Mtrx currentmatrix pop
+ } def
+
+/@manualfeed
+ { statusdict /manualfeed true put
+ } def
+ % n @copies - set number of copies
+/@copies
+ { /#copies exch def
+ } def
+
+%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+/@newfont % id @newfont - -- initialize a new font dictionary
+ { /newname exch def
+ pop
+ newname 7 dict def % allocate new font dictionary
+ newname load begin
+ /FontType 3 def
+ /FontMatrix [1 0 0 -1 0 0] def
+ /FontBBox [0 0 1 1] def
+ /BitMaps 128 array def
+ /BuildChar {CharBuilder} def
+ /Encoding 128 array def
+ 0 1 127 {Encoding exch /.undef put} for
+ end
+ newname newname load definefont pop
+ } def
+
+
+% the following is the only character builder we need. it looks up the
+% char data in the BitMaps array, and paints the character if possible.
+% char data -- a bitmap descriptor -- is an array of length 6, of
+% which the various slots are:
+
+/ch-image {ch-data 0 get} def % the hex string image
+/ch-width {ch-data 1 get} def % the number of pixels across
+/ch-height {ch-data 2 get} def % the number of pixels tall
+/ch-xoff {ch-data 3 get} def % number of pixels below origin
+/ch-yoff {ch-data 4 get} def % number of pixels to left of origin
+/ch-tfmw {ch-data 5 get} def % spacing to next character
+
+/CharBuilder % fontdict ch Charbuilder - -- image one character
+ { /ch-code exch def % save the char code
+ /font-dict exch def % and the font dict.
+ /ch-data font-dict /BitMaps get ch-code get def % get the bitmap descriptor for char
+ ch-data null eq not
+ { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub
+ setcachedevice
+ ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff]
+ {ch-image} imagemask
+ }
+ if
+ } def
+
+
+/@sf % fontdict @sf - -- make that the current font
+ { setfont() pop
+ } def
+
+ % in the following, the font-cacheing mechanism requires that
+ % a name unique in the particular font be generated
+
+/@dc % char-data ch @dc - -- define a new character bitmap in current font
+ { /ch-code exch def
+% ++oystr 12-Feb-86++
+ dup 0 get
+ length 2 lt
+ { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null
+ if
+% --oystr 12-Feb-86--
+ /ch-data exch def
+ currentfont /BitMaps get ch-code ch-data put
+ currentfont /Encoding get ch-code
+ dup ( ) cvs cvn % generate a unique name simply from the character code
+ put
+ } def
+
+/@bop0 % n @bop0 - -- begin the char def section of a new page
+ {
+ } def
+
+/@bop1 % n @bop1 - -- begin a brand new page
+ { pop
+ erasepage initgraphics
+ Mtrx setmatrix
+ /SaveImage save def() pop
+ } def
+
+/@eop % - @eop - -- end a page
+ { showpage
+ SaveImage restore() pop
+ } def
+
+/@start % - @start - -- start everything
+ { @letter % (there is not much to do)
+ } def
+
+/@end % - @end - -- done the whole shebang
+ { end
+ } def
+
+/p % x y p - -- move to position
+ { moveto
+ } def
+
+/r % x r - -- move right
+ { 0 rmoveto
+ } def
+
+/s % string s - -- show the string
+ { show
+ } def
+
+/c % ch c - -- show the character (code given)
+ { c-string exch 0 exch put
+ c-string show
+ } def
+
+/c-string ( ) def
+
+/ru % dx dy ru - -- set a rule (rectangle)
+ { /dy exch neg def % because dy is height up from bottom
+ /dx exch def
+ /x currentpoint /y exch def def % remember current point
+ newpath x y moveto
+ dx 0 rlineto
+ 0 dy rlineto
+ dx neg 0 rlineto
+ closepath fill
+ x y moveto
+ } def
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% the \special command junk
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The structure of the PostScript produced by dvi2ps for \special is:
+% @beginspecial
+% - any number of @hsize, @hoffset, @hscale, etc., commands
+% @setspecial
+% - the users file of PostScript commands
+% @endspecial
+
+% The @beginspecial command recognizes whether the Macintosh Laserprep
+% has been loaded or not, and redfines some Mac commands if so.
+% The @setspecial handles the users shifting, scaling, clipping commands
+
+
+% The following are user settable options from the \special command.
+
+/@SpecialDefaults
+ { /hs 8.5 Inch def
+ /vs 11 Inch def
+ /ho 0 def
+ /vo 0 def
+ /hsc 1 def
+ /vsc 1 def
+ /CLIP false def
+ } def
+
+% d @hsize - specify a horizontal clipping dimension
+% these 2 are executed before the MacDraw initializations
+/@hsize {/hs exch def /CLIP true def} def
+/@vsize {/vs exch def /CLIP true def} def
+% d @hoffset - specify a shift for the drwgs
+/@hoffset {/ho exch def} def
+/@voffset {/vo excl def} def
+% s @hscale - set scale factor
+/@hscale {/hsc exch def} def
+/@vscale {/vsc exch def} def
+
+/@setclipper
+ { hsc vsc scale
+ CLIP
+ { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip }
+ if
+ } def
+
+% this will be invoked as the result of a \special command (for the
+% inclusion of PostScript graphics). The basic idea is to change all
+% scaling and graphics back to defaults, but to shift the origin
+% to the current position on the page. Due to TeXnical difficulties,
+% we only set the y-origin. The x-origin is set at the left edge of
+% the page.
+
+/@beginspecial % - @beginspecial - -- enter special mode
+ { gsave /SpecialSave save def
+ % the following magic incantation establishes the current point as
+ % the users origin, and reverts back to default scalings, rotations
+ currentpoint transform initgraphics itransform translate
+ @SpecialDefaults % setup default offsets, scales, sizes
+ @MacSetUp % fix up Mac stuff
+ } def
+
+/@setspecial % to setup user specified offsets, scales, sizes (for clipping)
+ {
+ MacDrwgs
+ {md begin /pxt ho def /pyt vo neg def end}
+ {ho vo translate @setclipper}
+ ifelse
+ } def
+
+/@endspecial % - @endspecial - -- leave special mode
+ { SpecialSave restore
+ grestore
+ } def
+
+/MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded
+
+ % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us
+ % we depend on 'psu' being the first procedure executed
+ % by a Mac document. We redefine 'psu' to adjust page
+ % translations, and to do all other the fixups required.
+ % This stuff will not harm other included PS files
+/@MacSetUp
+ { userdict /md known % if md is defined
+ { userdict /md get type /dicttype eq % and if it is a dictionary
+ { /MacDrwgs true def
+ md begin % then redefine some stuff
+ /psu % redfine psu to set origins, etc.
+ /psu load
+ % this procedure contains almost all the fixup code
+ { /letter {} def % it is bad manners to execute the real
+ /note {} def % versions of these (clears page image, etc.)
+ /legal {} def
+ statusdict /waittimeout 300 put
+ /page {pop} def % no printing of pages
+ /pyt vo neg def % x & y pixel translations
+ /pxt ho def
+ }
+ concatprocs
+ def
+ /od % redefine od to set clipping region
+ /od load
+ { @setclipper }
+ concatprocs
+ def
+ end }
+ if }
+ if
+ } def
+
+% p1 p2 concatprocs p - concatenate procedures
+/concatprocs
+ { /p2 exch cvlit def
+ /p1 exch cvlit def
+ /p p1 length p2 length add array def
+ p 0 p1 putinterval
+ p p1 length p2 putinterval
+ p cvx
+ } def
+
+end % revert to previous dictionary
+TeXDict begin @start
+%%Title: tt7.dvi
+%%Creator: dvi2ps
+%%EndProlog
+1 @bop0
+[ 1500 ] /cmtt8.1500 @newfont
+cmtt8.1500 @sf
+[<1FF01FF00380038003800380038003800380038003800380038003800380E38EE38EE38EFFFEFFFE> 16 20 -1 0 17.642] 84 @dc
+[<FEFEFEFE38383838383838383838383838383FF83FF83838383838383838383838383838FEFEFEFE> 16 20 -1 0 17.642] 72 @dc
+[<FFF8FFF80700070007000700070007000700070007000700070007000700070007000700FFF8FFF8> 16 20 -2 0 17.642] 73 @dc
+[<CF80FFE0F070F078E038E0380038007800F00FF03FE07F00F000F000E070E070E0F070F03FF01F30> 16 20 -2 0 17.642] 83 @dc
+[<03E00FF81C3C381E780E700EF00EE000E000E000E000E000E000F00E700E781E381E1C3E0FFE03E6> 16 20 -1 0 17.642] 67 @dc
+[<FE3F80FE3F80380E00380E00380E00380E00380E0039CE0039CE003BEE003B6E003B6E003B6E003B6E003B6E003B6E003A2E
+ 003A2E00FE3F80FE3F80> 24 20 0 0 17.642] 77 @dc
+[<FFFEFFFE380E380E380E380E380038E038E03FE03FE038E038E038003800380E380E380EFFFEFFFE> 16 20 -1 0 17.642] 69 @dc
+[<07B81FF83CF8387870787038F038E038E1FEE1FEE000E000E000F0387038703838783CF81FF80798> 16 20 -1 0 17.642] 71 @dc
+[<FE00FE003800380038003800380038003FE03FF8383C381C380E380E380E380E381C383CFFF8FFE0> 16 20 -1 0 17.642] 80 @dc
+[<3FE07FF07070E038E038E038E038E038E038E038E038E038E038E038E038E038E03870707FF03FE0> 16 20 -2 0 17.642] 79 @dc
+[<FEF8FEF838B838B839B839B839B839B839B839B83B383B383B383B383B383B383A383A38FEFEFEFE> 16 20 -1 0 17.642] 78 @dc
+[<0E38001E3C001F7C001B6C001B6C001B6C001B6C001B6C001B6C001BEC003BEE003BEE00380E00380E00380E00380E00380E
+ 00380E00FE3F80FE3F80> 24 20 0 0 17.642] 87 @dc
+[<FE1CFE3F38773877387038703870387038F03FE03FE038F03878383838383838387838F0FFE0FF80> 16 20 -1 0 17.642] 82 @dc
+[<FEFEFEFE3838383838381FF01FF01C701C701C700C600EE00EE00EE00EE006C006C007C007C00380> 16 20 -1 0 17.642] 65 @dc
+[<FF00FF003800380038003800380038E038E03FE03FE038E038E038003800380E380E380EFFFEFFFE> 16 20 -1 0 17.642] 70 @dc
+[ 1500 ] /cmtt10.1500 @newfont
+cmtt10.1500 @sf
+[<07FC000FFE0007FC0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
+ 0000E000E0E0E0E0E0E0E0E0E0E0E0E0FFFFE0FFFFE07FFFE0> 24 25 -1 0 21.793] 84 @dc
+[<7F1FC0FFBFE07F1FC01C07001C07001C07001C07001C07001C07001C07001C07001C07001FFF001FFF001FFF001C07001C07
+ 001C07001C07001C07001C07001C07007F1FC0FFBFE07F1FC0> 24 25 -1 0 21.793] 72 @dc
+[<FFFEFFFEFFFE0380038003800380038003800380038003800380038003800380038003800380038003800380FFFEFFFEFFFE> 16 25 -3 0 21.793] 73 @dc
+[<C7F000FFFC00FFFE00F80F00F00780E00380E00380000380000380000780000F0000FE0007FC001FF0007F8000780000F000
+ 00E00000E00700E00700F00F00781F007FFF001FFF0007E300> 24 25 -2 0 21.793] 83 @dc
+[<01F00007FC000FFE001F0F003C0780780380780380700380F00000E00000E00000E00000E00000E00000E00000E00000F000
+ 007003807803807807803C07801F0F800FFF8007FF8001F180> 24 25 -2 0 21.793] 67 @dc
+[<FE0FE0FE0FE0FE0FE038038038038038038038038038038038E38038E38039F38039B38039B38039B38039B3803BBB803B1B
+ 803B1B803B1B803B1B803B1B803A0B80FE0FE0FE0FE0FC07E0> 24 25 -1 0 21.793] 77 @dc
+[<7FFFE0FFFFE07FFFE01C00E01C00E01C00E01C00E01C00E01C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00
+ 001C00001C01C01C01C01C01C01C01C07FFFC0FFFFC07FFFC0> 24 25 -1 0 21.793] 69 @dc
+[<7F0F00FF9F007F1F001C17001C37001C37001C37001C77001C77001C67001C67001CE7001CE7001CE7001CC7001CC7001DC7
+ 001DC7001D87001D87001D87001D07007F1FC0FF3FE07E1FC0> 24 25 -1 0 21.793] 78 @dc
+[<7F0000FF80007F00001C00001C00001C00001C00001C00001C00001C00001FF8001FFE001FFF001C0F801C03801C03C01C01
+ C01C01C01C01C01C03C01C03801C0F807FFF00FFFE007FF800> 24 25 -1 0 21.793] 80 @dc
+[<1FFC003FFE007FFF00780F00F00780F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E003
+ 80E00380E00380E00380F00780780F007FFF003FFE001FFC00> 24 25 -2 0 21.793] 79 @dc
+[<0E0E000F1E000F1E001B1B0019130019B30019B30019B30019B30019B30019B30039B38039F38039F38038E3803803803803
+ 803803803001807001C07001C07001C0FC07E0FE0FE0FC07E0> 24 25 -1 0 21.793] 87 @dc
+[<7F03C0FF87E07F0FF01C0E701C0E701C0E201C0E001C0E001C0E001C0E001C3E001FFC001FF8001FFC001C1E001C0F001C07
+ 001C07001C07001C07001C0F001C1E007FFC00FFF8007FE000> 24 25 -1 0 21.793] 82 @dc
+[<7F1FC0FF1FE07F1FC01C07001C07001C07001FFF000FFE000FFE000E0E000E0E00071C00071C00071C00071C00071C000318
+ 0003B80003B80003B80001B00001B00001F00001F00000E000> 24 25 -1 0 21.793] 65 @dc
+[<FF8000FFC000FF80001C00001C00001C00001C00001C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00
+ 001C00001C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE0> 24 25 -1 0 21.793] 70 @dc
+[ 1500 ] /cmtt12.1500 @newfont
+cmtt12.1500 @sf
+[<03FF8003FF8003FF800038000038000038000038000038000038000038000038000038000038000038000038000038000038
+ 00003800003800003800003800003800003800E0380EE0380EE0380EE0380EFFFFFEFFFFFE7FFFFE> 24 30 -1 0 25.632] 84 @dc
+[<FF83FEFF83FEFF83FE1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701FFFF01FFFF01FFF
+ F01C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070FF83FEFF83FEFF83FE> 24 30 -1 0 25.632] 72 @dc
+[<FFFF80FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+ 0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF80> 24 30 -4 0 25.632] 73 @dc
+[<E3FC00FFFE00FFFF80FE0780F003C0F001E0E000E0E000E06000E00000E00001E00001C00003C0000F8001FF000FFE001FF8
+ 003F0000780000F00000E00000E001C0E001C0E001C0F003C07007C07C1FC03FFFC01FFDC007F1C0> 24 30 -3 0 25.632] 83 @dc
+[<00FE0003FF8007FFC00F83E01E00F01C00703C0078780038700038700038F00000E00000E00000E00000E00000E00000E000
+ 00E00000E00000F000007000387000387800383C00781C00781E00F80F83F807FFF803FFB800FE38> 24 30 -2 0 25.632] 67 @dc
+[<7F007F00FF80FF807F007F001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C1C1C001C1C1C001C3E
+ 1C001C361C001C361C001C771C001C771C001C631C001CE39C001CE39C001CC19C001CC19C001DC1DC001DC1DC001D80DC00
+ 1D80DC001D80DC007F007F00FF007F807E003F00> 32 30 0 0 25.632] 77 @dc
+[<0701C00F83E00F83E00D83600D83600D83600DC7600DC7600DC7601CC6701CC6701CEE701CEE701CEE701CEE701CEE701C7C
+ 70387C3838003838003838003838003838003838003838003878003C70001CFE00FEFF01FEFE00FE> 24 30 -1 0 25.632] 87 @dc
+[<FFFFFCFFFFFCFFFFFC1C001C1C001C1C001C1C001C1C001C1C00001C00001C00001C0E001C0E001C0E001FFE001FFE001FFE
+ 001C0E001C0E001C0E001C00001C00001C00001C00381C00381C00381C0038FFFFF8FFFFF8FFFFF8> 24 30 -2 0 25.632] 69 @dc
+[<7FFFFCFFFFFC7FFFFC0E001C0E001C0E001C0E001C0E001C0E00000E00000E00000E00000E00000E00000E00000E00000E00
+ 000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00007FE000FFF0007FE000> 24 30 -1 0 25.632] 76 @dc
+[<003800007C00007C00006C0000EE0000EE0000EE0000C60001C70001C70001C70001C7000383800383800383800383800701
+ C00701C00701C00701C00E00E00E00E00E00E01E00F01C00701C00701C0070FF01FEFF01FEFF01FE> 24 30 -1 0 25.632] 86 @dc
+[<FF8000FF8000FF80001C00001C00001C00001C00001C00001C00001C00001C00001C00001FFE001FFF801FFFC01C03E01C00
+ F01C00701C00781C00381C00381C00381C00381C00781C00701C00F01C03E0FFFFC0FFFF80FFFE00> 24 30 -2 0 25.632] 80 @dc
+[<0FFE003FFF807FFFC07C07C07001C0F001E0F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000
+ E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07C07C07FFFC03FFF800FFE00> 24 30 -3 0 25.632] 79 @dc
+[<FF80F0FF81F0FF81F01C03701C03701C07701C06701C06701C0E701C0E701C0C701C1C701C1C701C18701C38701C38701C30
+ 701C70701C70701C60701CE0701CE0701CC0701CC0701DC0701D80701D8070FF03FEFF03FEFE03FE> 24 30 -1 0 25.632] 78 @dc
+[<FF803CFF807EFF80FF1C00E71C00E71C00E71C00E21C00E01C00E01C00E01C00E01C00E01C01E01C07C01FFF801FFF001FFF
+ 801C07C01C01E01C00F01C00701C00701C00701C00701C00F01C01E01C07C0FFFF80FFFF00FFFC00> 24 30 -1 0 25.632] 82 @dc
+[<7F01FCFF83FE7F01FC1C00700E00E00E00E00E00E00E00E00FFFE007FFC007FFC00701C00701C00383800383800383800383
+ 8001C70001C70001C70001C70000C60000C60000EE0000EE0000EE00006C00007C00007C00003800> 24 30 -1 0 25.632] 65 @dc
+[<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E03800E03800E03800FFF800FFF800FFF
+ 800E03800E03800E03800E00000E00000E00000E001C0E001C0E001C0E001C7FFFFCFFFFFC7FFFFC> 24 30 -1 0 25.632] 70 @dc
+[ 1500 ] /cmr10.1500 @newfont
+cmr10.1500 @sf
+[<FFF80F80070007000700070007000700070007000700070007000700070007000700070007000700070007000700C7003F00
+ 07000300> 16 27 -4 0 20.755] 49 @dc
+1 @bop1
+cmtt8.1500 @sf
+83 42 p (THIS) s
+18 r (IS) s
+17 r (CMTT) s
+18 r (EIGHT) s
+18 r (POINTS) s
+17 r (WRITTEN) s
+18 r (IN) s
+18 r (METAFONT) s
+cmtt10.1500 @sf
+83 91 p (THIS) s
+22 r (IS) s
+22 r (CMTT) s
+21 r (TEN) s
+22 r (POINTS) s
+22 r (WRITTEN) s
+22 r (IN) s
+22 r (METAFONT) s
+cmtt12.1500 @sf
+83 141 p (THIS) s
+26 r (IS) s
+25 r (CMTT) s
+26 r (TWELVE) s
+26 r (POINTS) s
+25 r (WRITTEN) s
+26 r (IN) s
+25 r (METAFONT) s
+cmr10.1500 @sf
+965 2770 p 49 c
+@eop
+@end
diff --git a/fonts/utilities/mf2ps/doc/printsamples/tt7.tex b/fonts/utilities/mf2ps/doc/printsamples/tt7.tex
new file mode 100644
index 0000000000..093783b32b
--- /dev/null
+++ b/fonts/utilities/mf2ps/doc/printsamples/tt7.tex
@@ -0,0 +1,12 @@
+\font\test=cmtt8
+\test
+THIS IS CMTT EIGHT POINTS WRITTEN IN METAFONT
+
+\font\test=cmtt10
+\test
+THIS IS CMTT TEN POINTS WRITTEN IN METAFONT
+
+\font\test=cmtt12
+\test
+THIS IS CMTT TWELVE POINTS WRITTEN IN METAFONT
+\bye