| # |
| # Shell library - for building devutf tables. |
| # |
| |
| RESOLUTION=720 |
| UNITWIDTH=10 |
| |
| OCTALESCAPES=${OCTALESCAPES:-160} # <= code means add \0ddd names |
| DOWNLOADVECTOR=FALSE # TRUE can mean incomplete tables |
| |
| # |
| # BuiltinTables returns command lines that generate PostScript programs |
| # for building a typesetter description file and font width tables for |
| # a relatively standard collection of fonts. Use awk to select a command |
| # line or modify an existing command to build a width table for a new |
| # font. |
| # |
| |
| BuiltinTables() { |
| cat <<-'//End of BuiltinTables' |
| Proportional R Times-Roman |
| Proportional I Times-Italic |
| Proportional B Times-Bold |
| Proportional BI Times-BoldItalic |
| Proportional AB AvantGarde-Demi |
| Proportional AI AvantGarde-BookOblique |
| Proportional AR AvantGarde-Book |
| Proportional AX AvantGarde-DemiOblique |
| Proportional H Helvetica |
| Proportional HB Helvetica-Bold |
| Proportional HI Helvetica-Oblique |
| Proportional HX Helvetica-BoldOblique |
| Proportional Hb Helvetica-Narrow-Bold |
| Proportional Hi Helvetica-Narrow-Oblique |
| Proportional Hr Helvetica-Narrow |
| Proportional Hx Helvetica-Narrow-BoldOblique |
| Proportional KB Bookman-Demi |
| Proportional KI Bookman-LightItalic |
| Proportional KR Bookman-Light |
| Proportional KX Bookman-DemiItalic |
| Proportional NB NewCenturySchlbk-Bold |
| Proportional NI NewCenturySchlbk-Italic |
| Proportional NR NewCenturySchlbk-Roman |
| Proportional NX NewCenturySchlbk-BoldItalic |
| Proportional PA Palatino-Roman |
| Proportional PB Palatino-Bold |
| Proportional PI Palatino-Italic |
| Proportional PX Palatino-BoldItalic |
| Proportional ZI ZapfChancery-MediumItalic |
| FixedWidth C Courier |
| FixedWidth CB Courier-Bold |
| FixedWidth CI Courier-Oblique |
| FixedWidth CO Courier |
| FixedWidth CW Courier |
| FixedWidth CX Courier-BoldOblique |
| Dingbats ZD ZapfDingbats |
| Greek GR Symbol |
| Symbol S Symbol |
| Special S1 Times-Roman |
| Description DESC --- |
| //End of BuiltinTables |
| } |
| |
| # |
| # AllTables prints the complete list of builtin font names. |
| # |
| |
| AllTables() { |
| BuiltinTables | awk '{print $2}' |
| } |
| |
| # |
| # Charset functions generate keyword/value pairs (as PostScript objects) |
| # that describe the character set available in a font. The keyword is a |
| # PostScript string that represents troff's name for the character. The |
| # value is usually the literal name (i.e. begins with a /) assigned to |
| # the character in the PostScript font. The value can also be an integer |
| # or a PostScript string. An integer value is used as an index in the |
| # current font's Encoding array. A string value is returned to the host |
| # unchanged when the entry for the character is constructed. Entries that |
| # have (") as their value are synonyms for the preceeding character. |
| # |
| # The 18 characters missing from ROM resident fonts on older printers are |
| # flagged with the PostScript comment "% missing". |
| # |
| |
| StandardCharset() { |
| cat <<-'//End of StandardCharset' |
| (!) /exclam |
| (") /quotedbl |
| (dq) (") % synonym |
| (#) /numbersign |
| ($) /dollar |
| (%) /percent |
| (&) /ampersand |
| (') /quoteright |
| (\() /parenleft |
| (\)) /parenright |
| (*) /asterisk |
| (+) /plus |
| (,) /comma |
| (-) /hyphen % changed from minus by request |
| (.) /period |
| (/) /slash |
| (0) /zero |
| (1) /one |
| (2) /two |
| (3) /three |
| (4) /four |
| (5) /five |
| (6) /six |
| (7) /seven |
| (8) /eight |
| (9) /nine |
| (:) /colon |
| (;) /semicolon |
| (<) /less |
| (=) /equal |
| (>) /greater |
| (?) /question |
| (@) /at |
| (A) /A |
| (B) /B |
| (C) /C |
| (D) /D |
| (E) /E |
| (F) /F |
| (G) /G |
| (H) /H |
| (I) /I |
| (J) /J |
| (K) /K |
| (L) /L |
| (M) /M |
| (N) /N |
| (O) /O |
| (P) /P |
| (Q) /Q |
| (R) /R |
| (S) /S |
| (T) /T |
| (U) /U |
| (V) /V |
| (W) /W |
| (X) /X |
| (Y) /Y |
| (Z) /Z |
| ([) /bracketleft |
| (\\) /backslash |
| (bs) (") % synonym |
| (]) /bracketright |
| (^) /asciicircum |
| (_) /underscore |
| (`) /quoteleft |
| (a) /a |
| (b) /b |
| (c) /c |
| (d) /d |
| (e) /e |
| (f) /f |
| (g) /g |
| (h) /h |
| (i) /i |
| (j) /j |
| (k) /k |
| (l) /l |
| (m) /m |
| (n) /n |
| (o) /o |
| (p) /p |
| (q) /q |
| (r) /r |
| (s) /s |
| (t) /t |
| (u) /u |
| (v) /v |
| (w) /w |
| (x) /x |
| (y) /y |
| (z) /z |
| ({) /braceleft |
| (|) /bar |
| (}) /braceright |
| (~) /asciitilde |
| (\\`) /grave % devpost character |
| (ga) (") % synonym |
| (!!) /exclamdown |
| (c|) /cent |
| (ct) (") % devpost synonym |
| (L-) /sterling |
| (ps) (") % devpost synonym |
| (xo) /currency |
| (cr) (") % devpost synonym |
| (Y-) /yen |
| (yn) (") % devpost synonym |
| (||) /brokenbar % missing |
| (so) /section |
| (sc) (") % devpost synonym |
| ("") /dieresis |
| (:a) (") % devpost synonym |
| (co) /copyright |
| (a_) /ordfeminine |
| (<<) /guillemotleft |
| (-,) /logicalnot |
| (hy) /hyphen |
| (--) /minus |
| (ro) /registered |
| (rg) (") % devpost synonym |
| (-^) /macron |
| (-a) (") % devpost synonym |
| (0^) /degree % missing |
| (+-) /plusminus % missing |
| (2^) /twosuperior % missing |
| (3^) /threesuperior % missing |
| (\\') /acute |
| (aa) (") % devpost synonym |
| (/u) /mu % missing |
| (P!) /paragraph |
| (pg) (") % devpost synonym |
| (.^) /periodcentered |
| (,,) /cedilla |
| (,a) (") % devpost synonym |
| (1^) /onesuperior % missing |
| (o_) /ordmasculine |
| (>>) /guillemotright |
| (14) /onequarter % missing |
| (12) /onehalf % missing |
| (34) /threequarters % missing |
| (??) /questiondown |
| (A`) /Agrave |
| (A') /Aacute |
| (A^) /Acircumflex |
| (A~) /Atilde |
| (A") /Adieresis |
| (A*) /Aring |
| (AE) /AE |
| (C,) /Ccedilla |
| (E`) /Egrave |
| (E') /Eacute |
| (E^) /Ecircumflex |
| (E") /Edieresis |
| (I`) /Igrave |
| (I') /Iacute |
| (I^) /Icircumflex |
| (I") /Idieresis |
| (D-) /Eth % missing |
| (N~) /Ntilde |
| (O`) /Ograve |
| (O') /Oacute |
| (O^) /Ocircumflex |
| (O~) /Otilde |
| (O") /Odieresis |
| (xx) /multiply % missing |
| (O/) /Oslash |
| (U`) /Ugrave |
| (U') /Uacute |
| (U^) /Ucircumflex |
| (U") /Udieresis |
| (Y') /Yacute % missing |
| (TH) /Thorn % missing |
| (ss) /germandbls |
| (a`) /agrave |
| (a') /aacute |
| (a^) /acircumflex |
| (a~) /atilde |
| (a") /adieresis |
| (a*) /aring |
| (ae) /ae |
| (c,) /ccedilla |
| (e`) /egrave |
| (e') /eacute |
| (e^) /ecircumflex |
| (e") /edieresis |
| (i`) /igrave |
| (i') /iacute |
| (i^) /icircumflex |
| (i") /idieresis |
| (d-) /eth % missing |
| (n~) /ntilde |
| (o`) /ograve |
| (o') /oacute |
| (o^) /ocircumflex |
| (o~) /otilde |
| (o") /odieresis |
| (-:) /divide % missing |
| (o/) /oslash |
| (u`) /ugrave |
| (u') /uacute |
| (u^) /ucircumflex |
| (u") /udieresis |
| (y') /yacute % missing |
| (th) /thorn % missing |
| (y") /ydieresis |
| (^a) /circumflex % devpost accent |
| (~a) /tilde % devpost accent |
| (Ua) /breve % devpost accent |
| (.a) /dotaccent % devpost accent |
| (oa) /ring % devpost accent |
| ("a) /hungarumlaut % devpost accent |
| (Ca) /ogonek % devpost accent |
| (va) /caron % devpost accent |
| //End of StandardCharset |
| } |
| |
| # |
| # DingbatsCharset guarantees changes in StandardCharset don't show up in ZD. |
| # |
| |
| DingbatsCharset() { |
| cat <<-'//End of DingbatsCharset' |
| (!) /exclam |
| (") /quotedbl |
| (#) /numbersign |
| ($) /dollar |
| (%) /percent |
| (&) /ampersand |
| (') /quoteright |
| (\() /parenleft |
| (\)) /parenright |
| (*) /asterisk |
| (+) /plus |
| (,) /comma |
| (-) /minus % also hyphen in devpost |
| (.) /period |
| (/) /slash |
| (0) /zero |
| (1) /one |
| (2) /two |
| (3) /three |
| (4) /four |
| (5) /five |
| (6) /six |
| (7) /seven |
| (8) /eight |
| (9) /nine |
| (:) /colon |
| (;) /semicolon |
| (<) /less |
| (=) /equal |
| (>) /greater |
| (?) /question |
| (@) /at |
| (A) /A |
| (B) /B |
| (C) /C |
| (D) /D |
| (E) /E |
| (F) /F |
| (G) /G |
| (H) /H |
| (I) /I |
| (J) /J |
| (K) /K |
| (L) /L |
| (M) /M |
| (N) /N |
| (O) /O |
| (P) /P |
| (Q) /Q |
| (R) /R |
| (S) /S |
| (T) /T |
| (U) /U |
| (V) /V |
| (W) /W |
| (X) /X |
| (Y) /Y |
| (Z) /Z |
| ([) /bracketleft |
| (\\) /backslash |
| (]) /bracketright |
| (^) /asciicircum |
| (_) /underscore |
| (`) /quoteleft |
| (a) /a |
| (b) /b |
| (c) /c |
| (d) /d |
| (e) /e |
| (f) /f |
| (g) /g |
| (h) /h |
| (i) /i |
| (j) /j |
| (k) /k |
| (l) /l |
| (m) /m |
| (n) /n |
| (o) /o |
| (p) /p |
| (q) /q |
| (r) /r |
| (s) /s |
| (t) /t |
| (u) /u |
| (v) /v |
| (w) /w |
| (x) /x |
| (y) /y |
| (z) /z |
| ({) /braceleft |
| (|) /bar |
| (}) /braceright |
| (~) /asciitilde |
| (\\`) /grave % devpost character |
| (!!) /exclamdown |
| (c|) /cent |
| (L-) /sterling |
| (xo) /currency |
| (Y-) /yen |
| (||) /brokenbar % missing |
| (so) /section |
| ("") /dieresis |
| (co) /copyright |
| (a_) /ordfeminine |
| (<<) /guillemotleft |
| (-,) /logicalnot |
| (hy) /hyphen |
| (ro) /registered |
| (-^) /macron |
| (0^) /degree % missing |
| (+-) /plusminus % missing |
| (2^) /twosuperior % missing |
| (3^) /threesuperior % missing |
| (\\') /acute |
| (/u) /mu % missing |
| (P!) /paragraph |
| (.^) /periodcentered |
| (,,) /cedilla |
| (1^) /onesuperior % missing |
| (o_) /ordmasculine |
| (>>) /guillemotright |
| (14) /onequarter % missing |
| (12) /onehalf % missing |
| (34) /threequarters % missing |
| (??) /questiondown |
| (A`) /Agrave |
| (A') /Aacute |
| (A^) /Acircumflex |
| (A~) /Atilde |
| (A") /Adieresis |
| (A*) /Aring |
| (AE) /AE |
| (C,) /Ccedilla |
| (E`) /Egrave |
| (E') /Eacute |
| (E^) /Ecircumflex |
| (E") /Edieresis |
| (I`) /Igrave |
| (I') /Iacute |
| (I^) /Icircumflex |
| (I") /Idieresis |
| (D-) /Eth % missing |
| (N~) /Ntilde |
| (O`) /Ograve |
| (O') /Oacute |
| (O^) /Ocircumflex |
| (O~) /Otilde |
| (O") /Odieresis |
| (xx) /multiply % missing |
| (O/) /Oslash |
| (U`) /Ugrave |
| (U') /Uacute |
| (U^) /Ucircumflex |
| (U") /Udieresis |
| (Y') /Yacute % missing |
| (TH) /Thorn % missing |
| (ss) /germandbls |
| (a`) /agrave |
| (a') /aacute |
| (a^) /acircumflex |
| (a~) /atilde |
| (a") /adieresis |
| (a*) /aring |
| (ae) /ae |
| (c,) /ccedilla |
| (e`) /egrave |
| (e') /eacute |
| (e^) /ecircumflex |
| (e") /edieresis |
| (i`) /igrave |
| (i') /iacute |
| (i^) /icircumflex |
| (i") /idieresis |
| (d-) /eth % missing |
| (n~) /ntilde |
| (o`) /ograve |
| (o') /oacute |
| (o^) /ocircumflex |
| (o~) /otilde |
| (o") /odieresis |
| (-:) /divide % missing |
| (o/) /oslash |
| (u`) /ugrave |
| (u') /uacute |
| (u^) /ucircumflex |
| (u") /udieresis |
| (y') /yacute % missing |
| (th) /thorn % missing |
| (y") /ydieresis |
| //End of DingbatsCharset |
| } |
| |
| SymbolCharset() { |
| cat <<-'//End of SymbolCharset' |
| (---) /exclam |
| (fa) /universal |
| (---) /numbersign |
| (te) /existential |
| (---) /percent |
| (---) /ampersand |
| (st) /suchthat |
| (---) /parenleft |
| (---) /parenright |
| (**) /asteriskmath |
| (pl) /plus |
| (---) /comma |
| (mi) /minus |
| (---) /period |
| (sl) /slash |
| (---) /zero |
| (---) /one |
| (---) /two |
| (---) /three |
| (---) /four |
| (---) /five |
| (---) /six |
| (---) /seven |
| (---) /eight |
| (---) /nine |
| (---) /colon |
| (---) /semicolon |
| (<) /less |
| (eq) /equal |
| (>) /greater |
| (---) /question |
| (cg) /congruent |
| (*A) /Alpha |
| (\244x) (") |
| (*B) /Beta |
| (\244y) (") |
| (*X) /Chi |
| (\244\257) (") |
| (*D) /Delta |
| (\244{) (") |
| (*E) /Epsilon |
| (\244|) (") |
| (*F) /Phi |
| (\244\256) (") |
| (*G) /Gamma |
| (\244z) (") |
| (*Y) /Eta |
| (\244~) (") |
| (*I) /Iota |
| (\244\241) (") |
| (---) /theta1 |
| (\244\331) (") |
| (*K) /Kappa |
| (\244\242) (") |
| (*L) /Lambda |
| (\244\243) (") |
| (*M) /Mu |
| (\244\244) (") |
| (*N) /Nu |
| (\244\245) (") |
| (*O) /Omicron |
| (\244\247) (") |
| (*P) /Pi |
| (\244\250) (") |
| (*H) /Theta |
| (\244\240) (") |
| (*R) /Rho |
| (\244\251) (") |
| (*S) /Sigma |
| (\244\253) (") |
| (*T) /Tau |
| (\244\254) (") |
| (*U) /Upsilon |
| (\244\255) (") |
| (ts) /sigma1 |
| (\244\312) (") |
| (*W) /Omega |
| (\244\261) (") |
| (*C) /Xi |
| (\244\246) (") |
| (*Q) /Psi |
| (\244\260) (") |
| (*Z) /Zeta |
| (\244}) (") |
| (---) /bracketleft |
| (tf) /therefore |
| (---) /bracketright |
| (pp) /perpendicular |
| (ul) /underscore |
| (_) (") % synonym |
| (rn) /radicalex |
| (*a) /alpha |
| (\244\271) (") |
| (*b) /beta |
| (\244\272) (") |
| (*x) /chi |
| (\244\317) (") |
| (*d) /delta |
| (\244\274) (") |
| (*e) /epsilon |
| (\244\275) (") |
| (*f) /phi |
| (\244\316) (") |
| (*g) /gamma |
| (\244\273) (") |
| (*y) /eta |
| (\244\277) (") |
| (*i) /iota |
| (\244\301) (") |
| (---) /phi1 |
| (\244\335) (") |
| (*k) /kappa |
| (\244\302) (") |
| (*l) /lambda |
| (\244\303) (") |
| (*m) /mu |
| (\244\304) (") |
| (*n) /nu |
| (\244\305) (") |
| (*o) /omicron |
| (\244\307) (") |
| (*p) /pi |
| (\244\310) (") |
| (*h) /theta |
| (\244\300) (") |
| (*r) /rho |
| (\244\311) (") |
| (*s) /sigma |
| (\244\313) (") |
| (*t) /tau |
| (\244\314) (") |
| (*u) /upsilon |
| (\244\315) (") |
| (---) /omega1 |
| (\244\336) (") |
| (*w) /omega |
| (\244\321) (") |
| (*c) /xi |
| (\244\306) (") |
| (*q) /psi |
| (\244\320) (") |
| (*z) /zeta |
| (\244\276) (") |
| (---) /braceleft |
| (or) /bar |
| (---) /braceright |
| (ap) /similar |
| (---) /Upsilon1 |
| (fm) /minute |
| (<=) /lessequal |
| (fr) /fraction % devpost character |
| (if) /infinity |
| (fn) /florin % devpost character |
| (---) /club |
| (---) /diamond |
| (---) /heart |
| (---) /spade |
| (ab) /arrowboth |
| (<-) /arrowleft |
| (ua) /arrowup |
| (->) /arrowright |
| (da) /arrowdown |
| (de) /degree |
| (+-) /plusminus |
| (---) /second |
| (>=) /greaterequal |
| (mu) /multiply |
| (pt) /proportional |
| (pd) /partialdiff |
| (bu) /bullet |
| (di) /divide |
| (!=) /notequal |
| (==) /equivalence |
| (~~) /approxequal |
| (el) /ellipsis |
| (av) /arrowvertex |
| (ah) /arrowhorizex |
| (CR) /carriagereturn |
| (af) /aleph |
| (If) /Ifraktur |
| (Rf) /Rfraktur |
| (ws) /weierstrass |
| (Ox) /circlemultiply |
| (O+) /circleplus |
| (es) /emptyset |
| (ca) /intersection |
| (cu) /union |
| (sp) /propersuperset |
| (ip) /reflexsuperset |
| (!b) /notsubset |
| (sb) /propersubset |
| (ib) /reflexsubset |
| (mo) /element |
| (!m) /notelement |
| (an) /angle |
| (gr) /gradient |
| (rg) /registerserif |
| (co) /copyrightserif |
| (tm) /trademarkserif |
| (---) /product |
| (sr) /radical |
| (c.) /dotmath |
| (no) /logicalnot |
| (l&) /logicaland |
| (l|) /logicalor |
| (---) /arrowdblboth |
| (---) /arrowdblleft |
| (---) /arrowdblup |
| (---) /arrowdblright |
| (---) /arrowdbldown |
| (lz) /lozenge |
| (b<) /angleleft |
| (RG) /registersans |
| (CO) /copyrightsans |
| (TM) /trademarksans |
| (---) /summation |
| (LT) /parenlefttp |
| (br) /parenleftex |
| (LX) (") % synonym |
| (LB) /parenleftbt |
| (lc) /bracketlefttp |
| (lx) /bracketleftex |
| (lf) /bracketleftbt |
| (lt) /bracelefttp |
| (lk) /braceleftmid |
| (lb) /braceleftbt |
| (bv) /braceex |
| (|) (") % synonym |
| (b>) /angleright |
| (is) /integral |
| (---) /integraltp |
| (---) /integralex |
| (---) /integralbt |
| (RT) /parenrighttp |
| (RX) /parenrightex |
| (RB) /parenrightbt |
| (rc) /bracketrighttp |
| (rx) /bracketrightex |
| (rf) /bracketrightbt |
| (rt) /bracerighttp |
| (rk) /bracerightmid |
| (rb) /bracerightbt |
| (~=) (55 0 1) % charlib |
| //End of SymbolCharset |
| } |
| |
| SpecialCharset() { |
| cat <<-'//End of SpecialCharset' |
| (ru) /underscore |
| ('') /quotedblright % devpost character |
| (``) /quotedblleft % devpost character |
| (dg) /dagger % devpost character |
| (dd) /daggerdbl % devpost character |
| (en) /endash % devpost character |
| (\\-) (") % synonym |
| (em) /emdash |
| % (ff) (60 2 1) % charlib |
| % (Fi) (84 2 1) % charlib |
| % (Fl) (84 2 1) % charlib |
| (14) (75 2 1) % charlib |
| (12) (75 2 1) % charlib |
| (34) (75 2 1) % charlib |
| (bx) (50 2 1) % charlib |
| (ob) (38 2 1) % charlib |
| (ci) (75 0 1) % charlib |
| (sq) (50 2 1) % charlib |
| (Sl) (50 2 1) % charlib |
| (L1) (110 1 1) % charlib |
| (LA) (110 1 1) % charlib |
| (LV) (110 3 1) % charlib |
| (LH) (210 1 1) % charlib |
| (lh) (100 0 1) % charlib |
| (rh) (100 0 1) % charlib |
| (lH) (100 0 1) % charlib |
| (rH) (100 0 1) % charlib |
| (PC) (220 2 1) % charlib |
| (DG) (185 2 1) % charlib |
| //End of SpecialCharset |
| } |
| |
| # |
| # Latin1 ensures a font uses the ISOLatin1Encoding vector, although only |
| # text fonts should be re-encoded. Downloading the Encoding vector doesn't |
| # often make sense. No ISOLatin1Encoding array likely means ROM based fonts |
| # on your printer are incomplete. Type 1 fonts with a full Latin1 character |
| # set appeared sometime after Version 50.0. |
| # |
| |
| Latin1() { |
| if [ "$DOWNLOADVECTOR" = TRUE ]; then |
| cat <<-'//End of ISOLatin1Encoding' |
| /ISOLatin1Encoding [ |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /space |
| /exclam |
| /quotedbl |
| /numbersign |
| /dollar |
| /percent |
| /ampersand |
| /quoteright |
| /parenleft |
| /parenright |
| /asterisk |
| /plus |
| /comma |
| /minus |
| /period |
| /slash |
| /zero |
| /one |
| /two |
| /three |
| /four |
| /five |
| /six |
| /seven |
| /eight |
| /nine |
| /colon |
| /semicolon |
| /less |
| /equal |
| /greater |
| /question |
| /at |
| /A |
| /B |
| /C |
| /D |
| /E |
| /F |
| /G |
| /H |
| /I |
| /J |
| /K |
| /L |
| /M |
| /N |
| /O |
| /P |
| /Q |
| /R |
| /S |
| /T |
| /U |
| /V |
| /W |
| /X |
| /Y |
| /Z |
| /bracketleft |
| /backslash |
| /bracketright |
| /asciicircum |
| /underscore |
| /quoteleft |
| /a |
| /b |
| /c |
| /d |
| /e |
| /f |
| /g |
| /h |
| /i |
| /j |
| /k |
| /l |
| /m |
| /n |
| /o |
| /p |
| /q |
| /r |
| /s |
| /t |
| /u |
| /v |
| /w |
| /x |
| /y |
| /z |
| /braceleft |
| /bar |
| /braceright |
| /asciitilde |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /.notdef |
| /dotlessi |
| /grave |
| /acute |
| /circumflex |
| /tilde |
| /macron |
| /breve |
| /dotaccent |
| /dieresis |
| /.notdef |
| /ring |
| /cedilla |
| /.notdef |
| /hungarumlaut |
| /ogonek |
| /caron |
| /space |
| /exclamdown |
| /cent |
| /sterling |
| /currency |
| /yen |
| /brokenbar |
| /section |
| /dieresis |
| /copyright |
| /ordfeminine |
| /guillemotleft |
| /logicalnot |
| /hyphen |
| /registered |
| /macron |
| /degree |
| /plusminus |
| /twosuperior |
| /threesuperior |
| /acute |
| /mu |
| /paragraph |
| /periodcentered |
| /cedilla |
| /onesuperior |
| /ordmasculine |
| /guillemotright |
| /onequarter |
| /onehalf |
| /threequarters |
| /questiondown |
| /Agrave |
| /Aacute |
| /Acircumflex |
| /Atilde |
| /Adieresis |
| /Aring |
| /AE |
| /Ccedilla |
| /Egrave |
| /Eacute |
| /Ecircumflex |
| /Edieresis |
| /Igrave |
| /Iacute |
| /Icircumflex |
| /Idieresis |
| /Eth |
| /Ntilde |
| /Ograve |
| /Oacute |
| /Ocircumflex |
| /Otilde |
| /Odieresis |
| /multiply |
| /Oslash |
| /Ugrave |
| /Uacute |
| /Ucircumflex |
| /Udieresis |
| /Yacute |
| /Thorn |
| /germandbls |
| /agrave |
| /aacute |
| /acircumflex |
| /atilde |
| /adieresis |
| /aring |
| /ae |
| /ccedilla |
| /egrave |
| /eacute |
| /ecircumflex |
| /edieresis |
| /igrave |
| /iacute |
| /icircumflex |
| /idieresis |
| /eth |
| /ntilde |
| /ograve |
| /oacute |
| /ocircumflex |
| /otilde |
| /odieresis |
| /divide |
| /oslash |
| /ugrave |
| /uacute |
| /ucircumflex |
| /udieresis |
| /yacute |
| /thorn |
| /ydieresis |
| ] def |
| //End of ISOLatin1Encoding |
| fi |
| |
| echo "ISOLatin1Encoding /$1 ReEncode" |
| } |
| |
| # |
| # Generating functions output PostScript programs that build font width |
| # tables or a typesetter description file. Send the program to a printer |
| # and the complete table will come back on the serial port. All write on |
| # stdout and assume the prologue and other required PostScript files are |
| # all available. |
| # |
| |
| Proportional() { |
| echo "/unitwidth $UNITWIDTH def" |
| echo "/resolution $RESOLUTION def" |
| echo "/octalescapes $OCTALESCAPES def" |
| echo "/charset [" |
| # Get <>_ and | from S. Use accents for ascii ^ and ~. |
| StandardCharset | awk ' |
| $1 == "(<)" && $2 == "/less" {$1 = "(---)"} |
| $1 == "(>)" && $2 == "/greater" {$1 = "(---)"} |
| $1 == "(_)" && $2 == "/underscore" {$1 = "(---)"} |
| $1 == "(|)" && $2 == "/bar" {$1 = "(---)"} |
| $1 == "(^)" && $2 == "/asciicircum" { |
| printf "(^)\t/circumflex\n" |
| $1 = "(---)" |
| } |
| $1 == "(~)" && $2 == "/asciitilde" { |
| printf "(~)\t/tilde\n" |
| $1 = "(---)" |
| } |
| {printf "%s\t%s\n", $1, $2} |
| ' |
| echo "] def" |
| |
| Latin1 $2 |
| echo "/$2 SelectFont" |
| echo "(opO) SetAscender" |
| |
| echo "(name $1\\\\n) Print" |
| echo "(fontname $2\\\\n) Print" |
| echo "/$1 NamedInPrologue" |
| echo "(spacewidth ) Print 32 GetWidth Print (\n) Print" |
| echo "(charset\\\\n) Print" |
| echo "BuildFontCharset" |
| } |
| |
| FixedWidth() { |
| echo "/unitwidth $UNITWIDTH def" |
| echo "/resolution $RESOLUTION def" |
| echo "/octalescapes $OCTALESCAPES def" |
| echo "/charset [" |
| StandardCharset |
| echo "] def" |
| |
| Latin1 $2 |
| echo "/$2 SelectFont" |
| echo "(opO) SetAscender" |
| |
| echo "(name $1\\\\n) Print" |
| echo "(fontname $2\\\\n) Print" |
| echo "/$1 NamedInPrologue" |
| echo "(spacewidth ) Print 32 GetWidth Print (\n) Print" |
| echo "(charset\\\\n) Print" |
| echo "BuildFontCharset" |
| } |
| |
| Dingbats() { |
| echo "/unitwidth $UNITWIDTH def" |
| echo "/resolution $RESOLUTION def" |
| echo "/octalescapes $OCTALESCAPES def" |
| echo "/charset [" |
| DingbatsCharset | awk '$1 != "(---)" && $2 ~ /^\/[a-zA-Z]/ { |
| printf "%s\tISOLatin1Encoding %s GetCode\n", $1, $2 |
| }' |
| echo "] def" |
| |
| echo "/$2 SelectFont" |
| echo "( ) SetAscender" |
| |
| echo "(name $1\\\\n) Print" |
| echo "(fontname $2\\\\n) Print" |
| echo "/$1 NamedInPrologue" |
| echo "(charset\\\\n) Print" |
| echo "BuildFontCharset" |
| } |
| |
| Greek() { |
| echo "/unitwidth $UNITWIDTH def" |
| echo "/resolution $RESOLUTION def" |
| echo "/charset [" |
| SymbolCharset | awk ' |
| BEGIN {hit = -1} |
| $1 ~ /\(\*[a-zA-Z]\)/ {print; hit = NR} |
| $2 == "(\")" && hit == NR-1 {print; hit = NR} |
| ' |
| echo "] def" |
| |
| echo "/$2 SelectFont" |
| echo "(orO) SetAscender" |
| |
| echo "(name $1\\\\n) Print" |
| echo "(fontname $2\\\\n) Print" |
| echo "/$1 NamedInPrologue" |
| echo "(spacewidth ) Print 32 GetWidth Print (\n) Print" |
| echo "(charset\\\\n) Print" |
| echo "BuildFontCharset" |
| } |
| |
| Symbol() { |
| echo "/unitwidth $UNITWIDTH def" |
| echo "/resolution $RESOLUTION def" |
| echo "/charset [" |
| SymbolCharset |
| echo "] def" |
| |
| echo "ChangeMetrics" |
| echo "/S SelectFont" |
| echo "(orO) SetAscender" |
| |
| echo "(name $1\\\\n) Print" |
| echo "(fontname $2\\\\n) Print" |
| echo "/$1 NamedInPrologue" |
| echo "(special\\\\n) Print" |
| echo "(charset\\\\n) Print" |
| echo "BuildFontCharset" |
| } |
| |
| Special() { |
| echo "/unitwidth $UNITWIDTH def" |
| echo "/resolution $RESOLUTION def" |
| echo "/charset [" |
| SpecialCharset |
| echo "] def" |
| |
| echo "ChangeMetrics" |
| echo "/S1 SelectFont" |
| |
| echo "(# Times-Roman special font\\\\n) Print" |
| echo "(name $1\\\\n) Print" |
| echo "(fontname $2\\\\n) Print" |
| echo "/$1 NamedInPrologue" |
| echo "(special\\\\n) Print" |
| echo "(charset\\\\n) Print" |
| echo "BuildFontCharset" |
| } |
| |
| # |
| # The DESC file doesn't have to be built on a printer. It's only here for |
| # consistency. |
| # |
| |
| Description() { |
| echo "/charset [" # awk - so the stack doesn't overflow |
| StandardCharset | awk '$1 !~ /\(\\[0-9]/ {print $1}' |
| SymbolCharset | awk '$1 !~ /\(\\[0-9]/ {print $1}' |
| SpecialCharset | awk '$1 !~ /\(\\[0-9]/ {print $1}' |
| echo "] def" |
| |
| cat <<-//DESC |
| (#Device Description - utf character set |
| |
| PDL PostScript |
| Encoding Latin1 |
| |
| fonts 10 R I B BI CW H HI HB S1 S |
| sizes 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
| 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 40 42 44 46 |
| 48 50 52 54 56 58 60 64 68 72 78 84 90 96 100 105 110 115 |
| 120 125 130 135 140 145 150 155 160 0 |
| res $RESOLUTION |
| hor 1 |
| vert 1 |
| unitwidth $UNITWIDTH |
| |
| ) Print |
| //DESC |
| echo "(charset\\\\n) Print" |
| echo "BuildDescCharset" |
| echo "(\\\\n) Print" |
| } |
| |