diff options
author | Reinhard Kotucha <reinhard.kotucha@web.de> | 2010-05-12 19:25:45 +0000 |
---|---|---|
committer | Reinhard Kotucha <reinhard.kotucha@web.de> | 2010-05-12 19:25:45 +0000 |
commit | dc55d4f5cde421a3704c183bc6ceb3fcdb6b0653 (patch) | |
tree | db0890c2f5f2714d527a42ad3fb7955ac5b1f545 /Master/tlpkg/tlgs/lib/prfont.ps | |
parent | 053ead4487e776b05721ec15b941fe0bc1b7d513 (diff) |
tlgs: 8.70 => 8.71
git-svn-id: svn://tug.org/texlive/trunk@18215 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlgs/lib/prfont.ps')
-rw-r--r--[-rwxr-xr-x] | Master/tlpkg/tlgs/lib/prfont.ps | 496 |
1 files changed, 248 insertions, 248 deletions
diff --git a/Master/tlpkg/tlgs/lib/prfont.ps b/Master/tlpkg/tlgs/lib/prfont.ps index 3afefca1f7d..94f2873b4ce 100755..100644 --- a/Master/tlpkg/tlgs/lib/prfont.ps +++ b/Master/tlpkg/tlgs/lib/prfont.ps @@ -1,248 +1,248 @@ -%!
-%%Creator: Eric Gisin <egisin@waterloo.csnet>
-%%Title: Print font catalog
-% Copyright (c) 1986 Eric Gisin
-% Copyright (C) 1992 Aladdin Enterprises, Menlo Park, CA
-% Modified to print all 256 encoded characters.
-% Copyright (C) 1993 Aladdin Enterprises, Menlo Park, CA
-% Modified to print unencoded characters.
-% Copyright (C) 1994 Aladdin Enterprises, Menlo Park, CA
-% Modified to always create 256-element Encoding vectors.
-% Copyright (C) 1995 Aladdin Enterprises, Menlo Park, CA
-% Modified to print more than 128 unencoded characters.
-% Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA
-% Modified to leave a slightly wider left margin, because many H-P
-% printers can't print in the leftmost 1/4" of the page.
-% Modified to print unencoded characters in any font that has CharStrings.
-% Copyright (C) 1999 Aladdin Enterprises, Menlo Park, CA
-% Modified to sort unencoded characters.
-% Copyright (C) 2000 Aladdin Enterprises, Menlo Park, CA
-% Modified to print CIDFonts as well as fonts.
-% O(N^2) sorting replaced with O(N log N).
-% Copyright transferred 2000/09/15 to Artifex Software, Inc. Send any questions to
-% bug-gs@ghostscript.com.
-
-% $Id: prfont.ps 8022 2007-06-05 22:23:38Z giles $
-
-% Example usages at bottom of file
-
-/#copies 1 def
-/min { 2 copy gt { exch } if pop } bind def
-
-/T6 /Times-Roman findfont 6 scalefont def
-/Temp 64 string def
-/Inch {72 mul} def
-/Base 16 def % char code output base
-/TempEncoding [ 256 { /.notdef } repeat ] def
-
-% Sort an array. Code used by permission of the author, Aladdin Enterprises.
-/sort { % <array> <lt-proc> sort <array>
- % Heapsort (algorithm 5.2.3H, Knuth vol. 2, p. 146),
- % modified for 0-origin indexing. */
- 10 dict begin
- /LT exch def
- /recs exch def
- /N recs length def
- N 1 gt {
- /l N 2 idiv def
- /r N 1 sub def {
- l 0 gt {
- /l l 1 sub def
- /R recs l get def
- } {
- /R recs r get def
- recs r recs 0 get put
- /r r 1 sub def
- r 0 eq { recs 0 R put exit } if
- } ifelse
- /j l def {
- /i j def
- /j j dup add 1 add def
- j r lt {
- recs j get recs j 1 add get LT { /j j 1 add def } if
- } if
- j r gt { recs i R put exit } if
- R recs j get LT not { recs i R put exit } if
- recs i recs j get put
- } loop
- } loop
- } if recs end
-} def
-
-% do single character of page
-% output to rectangle ll=(0,-24) ur=(36,24)
-/DoGlyph { % C, N, W set
-
- % print code name, width and char name
- T6 setfont
- N /.notdef ne {0 -20 moveto N Temp cvs show} if
- 0 -12 moveto C Base Temp cvrs show ( ) show
- W 0.0005 add Temp cvs 0 5 getinterval show
-
- % print char with reference lines
- N /.notdef ne {
- 3 0 translate
- 0 0 moveto F24 setfont N glyphshow
- /W W 24 mul def
- 0 -6 moveto 0 24 lineto
- W -6 moveto W 24 lineto
- -3 0 moveto W 3 add 0 lineto
- 0 setlinewidth stroke
- } if
-} def
-/DoChar {
- /C exch def
- /N F /Encoding get C get def
- /S (_) dup 0 C put def
- /W F setfont S stringwidth pop def
- DoGlyph
-} def
-/CIDTemp 20 string def
-/DoCID {
- /N exch def
- /C N def
- /W F setfont gsave
- matrix currentmatrix nulldevice setmatrix
- 0 0 moveto N glyphshow currentpoint pop
- grestore def
- DoGlyph
-} def
-
-% print page title
-/DoTitle {
- /Times-Roman findfont 18 scalefont setfont
- 36 10.5 Inch moveto FName Temp cvs show ( ) show ((24 point)) show
-} def
-
-% print one block of characters
-/DoBlock { % firstcode lastcode
- /FirstCode 2 index def
- 1 exch {
- /I exch def
- /Xn I FirstCode sub 16 mod def /Yn I FirstCode sub 16 idiv def
- gsave
- Xn 35 mul 24 add Yn -56 mul 9.5 Inch add translate
- I DoCode
- grestore
- } for
-} def
-
-% print a line of character
-/DoCharLine { % firstcode lastcode
- 1 exch { (_) dup 0 3 index put show pop } for
-} def
-/DoCIDLine { % firstcode lastcode
- 1 exch { glyphshow } for
-} def
-
-% initialize variables
-/InitDoFont { % fontname font
- /F exch def % font
- /FName exch def % font name
- /F24 F 24 scalefont def
- /Line0 96 string def
- /Line1 96 string def
- /Namestring1 128 string def
- /Namestring2 128 string def
-} def
-
-% print pages of unencoded characters
-/DoUnencoded { % glyphs
- /Unencoded exch def
- /Count Unencoded length def
-
- % Print the unencoded characters in blocks of 128.
-
- 0 128 Unencoded length 1 sub
- { /BlockStart 1 index def
- dup 128 add Unencoded length .min 1 index sub
- Unencoded 3 1 roll getinterval TempEncoding copy
- /BlockEncoding exch def
- /BlockCount BlockEncoding length def
- save
- F /Encoding known {
- F length dict F
- { 1 index /FID eq { pop pop } { 2 index 3 1 roll put } ifelse }
- forall dup /Encoding TempEncoding put
- /* exch definefont
- /F exch def
- /F24 F 24 scalefont def
- /BlockStart 0 def
- } if
-
- DoTitle (, unencoded characters) show
- BlockStart dup BlockCount 1 sub add DoBlock
- F 10 scalefont setfont
- 36 2.4 Inch moveto
- 0 32 BlockCount 1 sub {
- 0 -0.4 Inch rmoveto gsave
- dup 31 add BlockCount 1 sub .min
- exch BlockStart add exch BlockStart add DoLine
- grestore
- } for
- showpage
- restore
- } for
-
-} def
-
-% print font sample pages
-/DoFont {
- dup findfont InitDoFont
- /DoCode {DoChar} def
- /DoLine {DoCharLine} def
-
- % Display the first 128 encoded characters.
-
- DoTitle (, characters 0-127) show
- 0 127 DoBlock
- F 10 scalefont setfont
- 36 2.0 Inch moveto 0 31 DoLine
- 36 1.6 Inch moveto 32 63 DoLine
- 36 1.2 Inch moveto 64 95 DoLine
- 36 0.8 Inch moveto 96 127 DoLine
- showpage
-
- % Display the second 128 encoded characters.
-
- DoTitle (, characters 128-255) show
- 128 255 DoBlock
- F 10 scalefont setfont
- 36 2.0 Inch moveto 128 159 DoLine
- 36 1.6 Inch moveto 160 191 DoLine
- 36 1.2 Inch moveto 192 223 DoLine
- 36 0.8 Inch moveto 224 255 DoLine
- showpage
-
- F /CharStrings known
- {
- % Find and display the unencoded characters.
-
- /Encoded F /Encoding get length dict def
- F /Encoding get { true Encoded 3 1 roll put } forall
- [ F /CharStrings get
- { pop dup Encoded exch known { pop } if }
- forall ] {
- exch Namestring1 cvs exch Namestring2 cvs lt
- } sort DoUnencoded
-
- }
- if
-
-} def
-
-% print CIDFont sample pages
-/DoCIDFont {
- dup /CIDFont findresource InitDoFont
- /DoCode {DoCID} def
- /DoLine {DoCIDLine} def
-
- [ 0 1 F /CIDCount get 1 sub { } for ] DoUnencoded
-} def
-
-% Do font samples
-% /Times-Roman DoFont % Test (less than a minute)
-% /Hershey-Gothic-English DoFont % Test (8 minutes)
-
-% Do a complete catalog
-% FontDirectory {pop DoFont} forall % All fonts (quite a long time)
+%! +%%Creator: Eric Gisin <egisin@waterloo.csnet> +%%Title: Print font catalog +% Copyright (c) 1986 Eric Gisin +% Copyright (C) 1992 Aladdin Enterprises, Menlo Park, CA +% Modified to print all 256 encoded characters. +% Copyright (C) 1993 Aladdin Enterprises, Menlo Park, CA +% Modified to print unencoded characters. +% Copyright (C) 1994 Aladdin Enterprises, Menlo Park, CA +% Modified to always create 256-element Encoding vectors. +% Copyright (C) 1995 Aladdin Enterprises, Menlo Park, CA +% Modified to print more than 128 unencoded characters. +% Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA +% Modified to leave a slightly wider left margin, because many H-P +% printers can't print in the leftmost 1/4" of the page. +% Modified to print unencoded characters in any font that has CharStrings. +% Copyright (C) 1999 Aladdin Enterprises, Menlo Park, CA +% Modified to sort unencoded characters. +% Copyright (C) 2000 Aladdin Enterprises, Menlo Park, CA +% Modified to print CIDFonts as well as fonts. +% O(N^2) sorting replaced with O(N log N). +% Copyright transferred 2000/09/15 to Artifex Software, Inc. Send any questions to +% bug-gs@ghostscript.com. + +% $Id: prfont.ps 8022 2007-06-05 22:23:38Z giles $ + +% Example usages at bottom of file + +/#copies 1 def +/min { 2 copy gt { exch } if pop } bind def + +/T6 /Times-Roman findfont 6 scalefont def +/Temp 64 string def +/Inch {72 mul} def +/Base 16 def % char code output base +/TempEncoding [ 256 { /.notdef } repeat ] def + +% Sort an array. Code used by permission of the author, Aladdin Enterprises. +/sort { % <array> <lt-proc> sort <array> + % Heapsort (algorithm 5.2.3H, Knuth vol. 2, p. 146), + % modified for 0-origin indexing. */ + 10 dict begin + /LT exch def + /recs exch def + /N recs length def + N 1 gt { + /l N 2 idiv def + /r N 1 sub def { + l 0 gt { + /l l 1 sub def + /R recs l get def + } { + /R recs r get def + recs r recs 0 get put + /r r 1 sub def + r 0 eq { recs 0 R put exit } if + } ifelse + /j l def { + /i j def + /j j dup add 1 add def + j r lt { + recs j get recs j 1 add get LT { /j j 1 add def } if + } if + j r gt { recs i R put exit } if + R recs j get LT not { recs i R put exit } if + recs i recs j get put + } loop + } loop + } if recs end +} def + +% do single character of page +% output to rectangle ll=(0,-24) ur=(36,24) +/DoGlyph { % C, N, W set + + % print code name, width and char name + T6 setfont + N /.notdef ne {0 -20 moveto N Temp cvs show} if + 0 -12 moveto C Base Temp cvrs show ( ) show + W 0.0005 add Temp cvs 0 5 getinterval show + + % print char with reference lines + N /.notdef ne { + 3 0 translate + 0 0 moveto F24 setfont N glyphshow + /W W 24 mul def + 0 -6 moveto 0 24 lineto + W -6 moveto W 24 lineto + -3 0 moveto W 3 add 0 lineto + 0 setlinewidth stroke + } if +} def +/DoChar { + /C exch def + /N F /Encoding get C get def + /S (_) dup 0 C put def + /W F setfont S stringwidth pop def + DoGlyph +} def +/CIDTemp 20 string def +/DoCID { + /N exch def + /C N def + /W F setfont gsave + matrix currentmatrix nulldevice setmatrix + 0 0 moveto N glyphshow currentpoint pop + grestore def + DoGlyph +} def + +% print page title +/DoTitle { + /Times-Roman findfont 18 scalefont setfont + 36 10.5 Inch moveto FName Temp cvs show ( ) show ((24 point)) show +} def + +% print one block of characters +/DoBlock { % firstcode lastcode + /FirstCode 2 index def + 1 exch { + /I exch def + /Xn I FirstCode sub 16 mod def /Yn I FirstCode sub 16 idiv def + gsave + Xn 35 mul 24 add Yn -56 mul 9.5 Inch add translate + I DoCode + grestore + } for +} def + +% print a line of character +/DoCharLine { % firstcode lastcode + 1 exch { (_) dup 0 3 index put show pop } for +} def +/DoCIDLine { % firstcode lastcode + 1 exch { glyphshow } for +} def + +% initialize variables +/InitDoFont { % fontname font + /F exch def % font + /FName exch def % font name + /F24 F 24 scalefont def + /Line0 96 string def + /Line1 96 string def + /Namestring1 128 string def + /Namestring2 128 string def +} def + +% print pages of unencoded characters +/DoUnencoded { % glyphs + /Unencoded exch def + /Count Unencoded length def + + % Print the unencoded characters in blocks of 128. + + 0 128 Unencoded length 1 sub + { /BlockStart 1 index def + dup 128 add Unencoded length .min 1 index sub + Unencoded 3 1 roll getinterval TempEncoding copy + /BlockEncoding exch def + /BlockCount BlockEncoding length def + save + F /Encoding known { + F length dict F + { 1 index /FID eq { pop pop } { 2 index 3 1 roll put } ifelse } + forall dup /Encoding TempEncoding put + /* exch definefont + /F exch def + /F24 F 24 scalefont def + /BlockStart 0 def + } if + + DoTitle (, unencoded characters) show + BlockStart dup BlockCount 1 sub add DoBlock + F 10 scalefont setfont + 36 2.4 Inch moveto + 0 32 BlockCount 1 sub { + 0 -0.4 Inch rmoveto gsave + dup 31 add BlockCount 1 sub .min + exch BlockStart add exch BlockStart add DoLine + grestore + } for + showpage + restore + } for + +} def + +% print font sample pages +/DoFont { + dup findfont InitDoFont + /DoCode {DoChar} def + /DoLine {DoCharLine} def + + % Display the first 128 encoded characters. + + DoTitle (, characters 0-127) show + 0 127 DoBlock + F 10 scalefont setfont + 36 2.0 Inch moveto 0 31 DoLine + 36 1.6 Inch moveto 32 63 DoLine + 36 1.2 Inch moveto 64 95 DoLine + 36 0.8 Inch moveto 96 127 DoLine + showpage + + % Display the second 128 encoded characters. + + DoTitle (, characters 128-255) show + 128 255 DoBlock + F 10 scalefont setfont + 36 2.0 Inch moveto 128 159 DoLine + 36 1.6 Inch moveto 160 191 DoLine + 36 1.2 Inch moveto 192 223 DoLine + 36 0.8 Inch moveto 224 255 DoLine + showpage + + F /CharStrings known + { + % Find and display the unencoded characters. + + /Encoded F /Encoding get length dict def + F /Encoding get { true Encoded 3 1 roll put } forall + [ F /CharStrings get + { pop dup Encoded exch known { pop } if } + forall ] { + exch Namestring1 cvs exch Namestring2 cvs lt + } sort DoUnencoded + + } + if + +} def + +% print CIDFont sample pages +/DoCIDFont { + dup /CIDFont findresource InitDoFont + /DoCode {DoCID} def + /DoLine {DoCIDLine} def + + [ 0 1 F /CIDCount get 1 sub { } for ] DoUnencoded +} def + +% Do font samples +% /Times-Roman DoFont % Test (less than a minute) +% /Hershey-Gothic-English DoFont % Test (8 minutes) + +% Do a complete catalog +% FontDirectory {pop DoFont} forall % All fonts (quite a long time) |