diff options
Diffstat (limited to 'Master/tlpkg/tlgs/lib/printafm.ps')
-rw-r--r-- | Master/tlpkg/tlgs/lib/printafm.ps | 234 |
1 files changed, 117 insertions, 117 deletions
diff --git a/Master/tlpkg/tlgs/lib/printafm.ps b/Master/tlpkg/tlgs/lib/printafm.ps index 16524c54be7..9fb6c0dd7a3 100644 --- a/Master/tlpkg/tlgs/lib/printafm.ps +++ b/Master/tlpkg/tlgs/lib/printafm.ps @@ -11,7 +11,7 @@ % Altered by d.love@dl.ac.uk to produce input for Rokicki's afm2tfm, % which groks the format of the Adobe AFMs. -% $Id: printafm.ps 8779 2008-05-27 17:07:40Z alexcher $ +% $Id$ % Modified by L. Peter Deutsch 9/14/93: % uses Ghostscript's =only procedure to replace 'buf cvs print'. % Modified by L. Peter Deutsch 9/6/95: @@ -25,142 +25,142 @@ % c toupper - c /toupper { - dup dup 8#141 ge exch 8#172 le and { - 8#40 sub - } if + dup dup 8#141 ge exch 8#172 le and { + 8#40 sub + } if } bind def % print unencoded character metric data lines for glyphs in `v' array % and reset `v' - /printv { - % define a new font with v as its encoding vector - currentfont maxlength dict /f exch def - currentfont { - exch dup dup /FID ne exch /Encoding ne and { - exch f 3 1 roll put - } { - pop pop - } ifelse - } forall - f /Encoding v put - f /FontName /temp put - % make this new font the current font - /temp f definefont setfont - % print a entry for each character not in old vector - /e currentfont /Encoding get def - 0 1 255 { - dup e exch get - dup dup /.notdef ne exch s exch known not and { - exch -1 printmetric - } { - pop pop - } ifelse - } for - 0 1 255 { - v exch /.notdef put - } for + % define a new font with v as its encoding vector + currentfont maxlength dict /f exch def + currentfont { + exch dup dup /FID ne exch /Encoding ne and { + exch f 3 1 roll put + } { + pop pop + } ifelse + } forall + f /Encoding v put + f /FontName /temp put + % make this new font the current font + /temp f definefont setfont + % print a entry for each character not in old vector + /e currentfont /Encoding get def + 0 1 255 { + dup e exch get + dup dup /.notdef ne exch s exch known not and { + exch -1 printmetric + } { + pop pop + } ifelse + } for + 0 1 255 { + v exch /.notdef put + } for } bind def % printcharmetrics - /printcharmetrics { - (StartCharMetrics ) print - currentfont /CharStrings get dup length exch /.notdef known { 1 sub } if = - currentfont 1000 scalefont setfont 0 0 moveto - /e currentfont /Encoding get def - 0 1 255 { - dup e exch get - dup /.notdef ne { - exch dup printmetric - } { - pop pop - } ifelse - } for - % s contains an entry for each name in the original encoding vector - /s 256 dict def - e { - s exch true put - } forall - % v is the new encoding vector - /v 256 array def - 0 1 255 { - v exch /.notdef put - } for - % fill up v with names in CharStrings - /i 0 def - currentfont /CharStrings get { - pop - i 255 le { - v i 3 -1 roll put - /i i 1 add def - } { - printv - v 0 3 -1 roll put - /i 1 def - } ifelse - } forall - printv - (EndCharMetrics) = + (StartCharMetrics ) print + currentfont /CharStrings get dup length exch /.notdef known { 1 sub } if = + currentfont 1000 scalefont setfont 0 0 moveto + /e currentfont /Encoding get def + 0 1 255 { + dup e exch get + dup /.notdef ne { + exch dup printmetric + } { + pop pop + } ifelse + } for + % s contains an entry for each name in the original encoding vector + /s 256 dict def + e { + s exch true put + } forall + % v is the new encoding vector + /v 256 array def + 0 1 255 { + v exch /.notdef put + } for + % fill up v with names in CharStrings + /i 0 def + currentfont /CharStrings get { + pop + i 255 le { + v i 3 -1 roll put + /i i 1 add def + } { + printv + v 0 3 -1 roll put + /i 1 def + } ifelse + } forall + printv + (EndCharMetrics) = } bind def % name actual_code normal_code printmetric - /printmetric { - /saved save def - (C ) print =only - ( ; WX ) print - onechar 0 3 -1 roll put - onechar stringwidth pop round cvi =only - ( ; N ) print =only - ( ; B ) print - onechar false charpath flattenpath mark pathbbox counttomark { - counttomark -1 roll - round cvi =only - ( ) print - } repeat pop - (;) = - saved restore + /saved save def + (C ) print =only + ( ; WX ) print + onechar 0 3 -1 roll put + onechar stringwidth pop round cvi =only + ( ; N ) print =only + ( ; B ) print + onechar false charpath flattenpath mark pathbbox counttomark { + counttomark -1 roll + round cvi =only + ( ) print + } repeat pop + (;) = + saved restore } bind def % fontname printafm - /printafm { - findfont gsave setfont - (StartFontMetrics 2.0) = - - % Print the UniqueID - - currentfont /UniqueID known { - (Comment UniqueID ) print - currentfont /UniqueID get =only - (\n) print - } if - - (FontName ) print currentfont /FontName get = - - % Print the FontInfo - - currentfont /FontInfo get { - exch - dup /FSType ne { - =string cvs dup dup 0 get 0 exch toupper put print - ( ) print = - } { - pop pop - } ifelse - } forall - - % Print the FontBBox - - (FontBBox) print - currentfont /FontBBox get { - ( ) print round cvi =only - } forall - (\n) print - - printcharmetrics - (EndFontMetrics) = - grestore + findfont gsave setfont + (StartFontMetrics 2.0) = + + % Print the UniqueID + + currentfont /UniqueID known { + (Comment UniqueID ) print + currentfont /UniqueID get =only + (\n) print + } if + + (FontName ) print currentfont /FontName get = + + % Print the FontInfo + + currentfont /FontInfo get { + exch + dup /FSType ne { + =string cvs dup dup 0 get 0 exch toupper put print + ( ) print = + } { + pop pop + } ifelse + } forall + + % Print the FontBBox + + (FontBBox) print + currentfont /FontBBox get { + ( ) print round cvi =only + } forall + (\n) print + + printcharmetrics + (EndFontMetrics) = + grestore } bind def % Check for command line arguments. |