|
|
1.1 ! root 1: # ! 2: # Shell library - for building devLatin1 tables. ! 3: # ! 4: # The full ISO Latin1 alphabet appeared in Adobe's interpreter sometime ! 5: # around Version 50.0. Prior to that ROM resident Type 1 text fonts were ! 6: # missing 18 characters that are now part of the Latin1 standard. Width ! 7: # tables will not build on printers that lack full Latin1 support. Error ! 8: # message will likely reflect a missing ISOLatin1Encoding array. ! 9: # ! 10: ! 11: RESOLUTION=720 ! 12: UNITWIDTH=10 ! 13: ! 14: OCTALESCAPES=${OCTALESCAPES:-160} # <= code means add \0ddd names ! 15: DOWNLOADVECTOR=FALSE # TRUE can mean incomplete tables ! 16: ! 17: # ! 18: # BuiltinTables returns command lines that generate PostScript programs ! 19: # for building a typesetter description file and font width tables for ! 20: # a relatively standard collection of fonts. Use awk to select a command ! 21: # line or modify an existing command to build a width table for a new ! 22: # font. ! 23: # ! 24: ! 25: BuiltinTables() { ! 26: cat <<-'//End of BuiltinTables' ! 27: Proportional R Times-Roman ! 28: Proportional I Times-Italic ! 29: Proportional B Times-Bold ! 30: Proportional BI Times-BoldItalic ! 31: Proportional AB AvantGarde-Demi ! 32: Proportional AI AvantGarde-BookOblique ! 33: Proportional AR AvantGarde-Book ! 34: Proportional AX AvantGarde-DemiOblique ! 35: Proportional H Helvetica ! 36: Proportional HB Helvetica-Bold ! 37: Proportional HI Helvetica-Oblique ! 38: Proportional HX Helvetica-BoldOblique ! 39: Proportional Hb Helvetica-Narrow-Bold ! 40: Proportional Hi Helvetica-Narrow-Oblique ! 41: Proportional Hr Helvetica-Narrow ! 42: Proportional Hx Helvetica-Narrow-BoldOblique ! 43: Proportional KB Bookman-Demi ! 44: Proportional KI Bookman-LightItalic ! 45: Proportional KR Bookman-Light ! 46: Proportional KX Bookman-DemiItalic ! 47: Proportional NB NewCenturySchlbk-Bold ! 48: Proportional NI NewCenturySchlbk-Italic ! 49: Proportional NR NewCenturySchlbk-Roman ! 50: Proportional NX NewCenturySchlbk-BoldItalic ! 51: Proportional PA Palatino-Roman ! 52: Proportional PB Palatino-Bold ! 53: Proportional PI Palatino-Italic ! 54: Proportional PX Palatino-BoldItalic ! 55: Proportional ZI ZapfChancery-MediumItalic ! 56: FixedWidth C Courier ! 57: FixedWidth CB Courier-Bold ! 58: FixedWidth CI Courier-Oblique ! 59: FixedWidth CO Courier ! 60: FixedWidth CW Courier ! 61: FixedWidth CX Courier-BoldOblique ! 62: Dingbats ZD ZapfDingbats ! 63: Greek GR Symbol ! 64: Symbol S Symbol ! 65: Special S1 Times-Roman ! 66: Description DESC --- ! 67: //End of BuiltinTables ! 68: } ! 69: ! 70: # ! 71: # AllTables prints the complete list of builtin font names. ! 72: # ! 73: ! 74: AllTables() { ! 75: BuiltinTables | awk '{print $2}' ! 76: } ! 77: ! 78: # ! 79: # Charset functions generate keyword/value pairs (as PostScript objects) ! 80: # that describe the character set available in a font. The keyword is a ! 81: # PostScript string that represents troff's name for the character. The ! 82: # value is usually the literal name (i.e. begins with a /) assigned to ! 83: # the character in the PostScript font. The value can also be an integer ! 84: # or a PostScript string. An integer value is used as an index in the ! 85: # current font's Encoding array. A string value is returned to the host ! 86: # unchanged when the entry for the character is constructed. Entries that ! 87: # have (") as their value are synonyms for the preceeding character. ! 88: # ! 89: # The 18 characters missing from ROM resident fonts on older printers are ! 90: # flagged with the PostScript comment "% missing". ! 91: # ! 92: ! 93: StandardCharset() { ! 94: cat <<-'//End of StandardCharset' ! 95: (!) /exclam ! 96: (") /quotedbl ! 97: (#) /numbersign ! 98: ($) /dollar ! 99: (%) /percent ! 100: (&) /ampersand ! 101: (') /quoteright ! 102: (\() /parenleft ! 103: (\)) /parenright ! 104: (*) /asterisk ! 105: (+) /plus ! 106: (,) /comma ! 107: (-) /hyphen % changed from minus by request ! 108: (.) /period ! 109: (/) /slash ! 110: (0) /zero ! 111: (1) /one ! 112: (2) /two ! 113: (3) /three ! 114: (4) /four ! 115: (5) /five ! 116: (6) /six ! 117: (7) /seven ! 118: (8) /eight ! 119: (9) /nine ! 120: (:) /colon ! 121: (;) /semicolon ! 122: (<) /less ! 123: (=) /equal ! 124: (>) /greater ! 125: (?) /question ! 126: (@) /at ! 127: (A) /A ! 128: (B) /B ! 129: (C) /C ! 130: (D) /D ! 131: (E) /E ! 132: (F) /F ! 133: (G) /G ! 134: (H) /H ! 135: (I) /I ! 136: (J) /J ! 137: (K) /K ! 138: (L) /L ! 139: (M) /M ! 140: (N) /N ! 141: (O) /O ! 142: (P) /P ! 143: (Q) /Q ! 144: (R) /R ! 145: (S) /S ! 146: (T) /T ! 147: (U) /U ! 148: (V) /V ! 149: (W) /W ! 150: (X) /X ! 151: (Y) /Y ! 152: (Z) /Z ! 153: ([) /bracketleft ! 154: (\\) /backslash ! 155: (]) /bracketright ! 156: (^) /asciicircum ! 157: (_) /underscore ! 158: (`) /quoteleft ! 159: (a) /a ! 160: (b) /b ! 161: (c) /c ! 162: (d) /d ! 163: (e) /e ! 164: (f) /f ! 165: (g) /g ! 166: (h) /h ! 167: (i) /i ! 168: (j) /j ! 169: (k) /k ! 170: (l) /l ! 171: (m) /m ! 172: (n) /n ! 173: (o) /o ! 174: (p) /p ! 175: (q) /q ! 176: (r) /r ! 177: (s) /s ! 178: (t) /t ! 179: (u) /u ! 180: (v) /v ! 181: (w) /w ! 182: (x) /x ! 183: (y) /y ! 184: (z) /z ! 185: ({) /braceleft ! 186: (|) /bar ! 187: (}) /braceright ! 188: (~) /asciitilde ! 189: (\\`) /grave % devpost character ! 190: (ga) (") % synonym ! 191: (!!) /exclamdown ! 192: (c|) /cent ! 193: (ct) (") % devpost synonym ! 194: (L-) /sterling ! 195: (ps) (") % devpost synonym ! 196: (xo) /currency ! 197: (cr) (") % devpost synonym ! 198: (Y-) /yen ! 199: (yn) (") % devpost synonym ! 200: (||) /brokenbar % missing ! 201: (so) /section ! 202: (sc) (") % devpost synonym ! 203: ("") /dieresis ! 204: (:a) (") % devpost synonym ! 205: (co) /copyright ! 206: (a_) /ordfeminine ! 207: (<<) /guillemotleft ! 208: (-,) /logicalnot ! 209: (hy) /hyphen ! 210: (--) (") % synonym ! 211: (ro) /registered ! 212: (rg) (") % devpost synonym ! 213: (-^) /macron ! 214: (-a) (") % devpost synonym ! 215: (0^) /degree % missing ! 216: (+-) /plusminus % missing ! 217: (2^) /twosuperior % missing ! 218: (3^) /threesuperior % missing ! 219: (\\') /acute ! 220: (aa) (") % devpost synonym ! 221: (/u) /mu % missing ! 222: (P!) /paragraph ! 223: (pg) (") % devpost synonym ! 224: (.^) /periodcentered ! 225: (,,) /cedilla ! 226: (,a) (") % devpost synonym ! 227: (1^) /onesuperior % missing ! 228: (o_) /ordmasculine ! 229: (>>) /guillemotright ! 230: (14) /onequarter % missing ! 231: (12) /onehalf % missing ! 232: (34) /threequarters % missing ! 233: (??) /questiondown ! 234: (A`) /Agrave ! 235: (A') /Aacute ! 236: (A^) /Acircumflex ! 237: (A~) /Atilde ! 238: (A") /Adieresis ! 239: (A*) /Aring ! 240: (AE) /AE ! 241: (C,) /Ccedilla ! 242: (E`) /Egrave ! 243: (E') /Eacute ! 244: (E^) /Ecircumflex ! 245: (E") /Edieresis ! 246: (I`) /Igrave ! 247: (I') /Iacute ! 248: (I^) /Icircumflex ! 249: (I") /Idieresis ! 250: (D-) /Eth % missing ! 251: (N~) /Ntilde ! 252: (O`) /Ograve ! 253: (O') /Oacute ! 254: (O^) /Ocircumflex ! 255: (O~) /Otilde ! 256: (O") /Odieresis ! 257: (xx) /multiply % missing ! 258: (O/) /Oslash ! 259: (U`) /Ugrave ! 260: (U') /Uacute ! 261: (U^) /Ucircumflex ! 262: (U") /Udieresis ! 263: (Y') /Yacute % missing ! 264: (TH) /Thorn % missing ! 265: (ss) /germandbls ! 266: (a`) /agrave ! 267: (a') /aacute ! 268: (a^) /acircumflex ! 269: (a~) /atilde ! 270: (a") /adieresis ! 271: (a*) /aring ! 272: (ae) /ae ! 273: (c,) /ccedilla ! 274: (e`) /egrave ! 275: (e') /eacute ! 276: (e^) /ecircumflex ! 277: (e") /edieresis ! 278: (i`) /igrave ! 279: (i') /iacute ! 280: (i^) /icircumflex ! 281: (i") /idieresis ! 282: (d-) /eth % missing ! 283: (n~) /ntilde ! 284: (o`) /ograve ! 285: (o') /oacute ! 286: (o^) /ocircumflex ! 287: (o~) /otilde ! 288: (o") /odieresis ! 289: (-:) /divide % missing ! 290: (o/) /oslash ! 291: (u`) /ugrave ! 292: (u') /uacute ! 293: (u^) /ucircumflex ! 294: (u") /udieresis ! 295: (y') /yacute % missing ! 296: (th) /thorn % missing ! 297: (y") /ydieresis ! 298: (^a) /circumflex % devpost accent ! 299: (~a) /tilde % devpost accent ! 300: (Ua) /breve % devpost accent ! 301: (.a) /dotaccent % devpost accent ! 302: (oa) /ring % devpost accent ! 303: ("a) /hungarumlaut % devpost accent ! 304: (Ca) /ogonek % devpost accent ! 305: (va) /caron % devpost accent ! 306: //End of StandardCharset ! 307: } ! 308: ! 309: # ! 310: # DingbatsCharset guarantees changes in StandardCharset don't show up in ZD. ! 311: # ! 312: ! 313: DingbatsCharset() { ! 314: cat <<-'//End of DingbatsCharset' ! 315: (!) /exclam ! 316: (") /quotedbl ! 317: (#) /numbersign ! 318: ($) /dollar ! 319: (%) /percent ! 320: (&) /ampersand ! 321: (') /quoteright ! 322: (\() /parenleft ! 323: (\)) /parenright ! 324: (*) /asterisk ! 325: (+) /plus ! 326: (,) /comma ! 327: (-) /minus % also hyphen in devpost ! 328: (.) /period ! 329: (/) /slash ! 330: (0) /zero ! 331: (1) /one ! 332: (2) /two ! 333: (3) /three ! 334: (4) /four ! 335: (5) /five ! 336: (6) /six ! 337: (7) /seven ! 338: (8) /eight ! 339: (9) /nine ! 340: (:) /colon ! 341: (;) /semicolon ! 342: (<) /less ! 343: (=) /equal ! 344: (>) /greater ! 345: (?) /question ! 346: (@) /at ! 347: (A) /A ! 348: (B) /B ! 349: (C) /C ! 350: (D) /D ! 351: (E) /E ! 352: (F) /F ! 353: (G) /G ! 354: (H) /H ! 355: (I) /I ! 356: (J) /J ! 357: (K) /K ! 358: (L) /L ! 359: (M) /M ! 360: (N) /N ! 361: (O) /O ! 362: (P) /P ! 363: (Q) /Q ! 364: (R) /R ! 365: (S) /S ! 366: (T) /T ! 367: (U) /U ! 368: (V) /V ! 369: (W) /W ! 370: (X) /X ! 371: (Y) /Y ! 372: (Z) /Z ! 373: ([) /bracketleft ! 374: (\\) /backslash ! 375: (]) /bracketright ! 376: (^) /asciicircum ! 377: (_) /underscore ! 378: (`) /quoteleft ! 379: (a) /a ! 380: (b) /b ! 381: (c) /c ! 382: (d) /d ! 383: (e) /e ! 384: (f) /f ! 385: (g) /g ! 386: (h) /h ! 387: (i) /i ! 388: (j) /j ! 389: (k) /k ! 390: (l) /l ! 391: (m) /m ! 392: (n) /n ! 393: (o) /o ! 394: (p) /p ! 395: (q) /q ! 396: (r) /r ! 397: (s) /s ! 398: (t) /t ! 399: (u) /u ! 400: (v) /v ! 401: (w) /w ! 402: (x) /x ! 403: (y) /y ! 404: (z) /z ! 405: ({) /braceleft ! 406: (|) /bar ! 407: (}) /braceright ! 408: (~) /asciitilde ! 409: (\\`) /grave % devpost character ! 410: (ga) (") % synonym ! 411: (!!) /exclamdown ! 412: (c|) /cent ! 413: (ct) (") % devpost synonym ! 414: (L-) /sterling ! 415: (ps) (") % devpost synonym ! 416: (xo) /currency ! 417: (cr) (") % devpost synonym ! 418: (Y-) /yen ! 419: (yn) (") % devpost synonym ! 420: (||) /brokenbar % missing ! 421: (so) /section ! 422: (sc) (") % devpost synonym ! 423: ("") /dieresis ! 424: (co) /copyright ! 425: (a_) /ordfeminine ! 426: (<<) /guillemotleft ! 427: (-,) /logicalnot ! 428: (hy) /hyphen ! 429: (--) (") % synonym ! 430: (ro) /registered ! 431: (rg) (") % devpost synonym ! 432: (-^) /macron ! 433: (0^) /degree % missing ! 434: (+-) /plusminus % missing ! 435: (2^) /twosuperior % missing ! 436: (3^) /threesuperior % missing ! 437: (\\') /acute ! 438: (aa) (") % devpost synonym ! 439: (/u) /mu % missing ! 440: (P!) /paragraph ! 441: (pg) (") % devpost synonym ! 442: (.^) /periodcentered ! 443: (,,) /cedilla ! 444: (1^) /onesuperior % missing ! 445: (o_) /ordmasculine ! 446: (>>) /guillemotright ! 447: (14) /onequarter % missing ! 448: (12) /onehalf % missing ! 449: (34) /threequarters % missing ! 450: (??) /questiondown ! 451: (A`) /Agrave ! 452: (A') /Aacute ! 453: (A^) /Acircumflex ! 454: (A~) /Atilde ! 455: (A") /Adieresis ! 456: (A*) /Aring ! 457: (AE) /AE ! 458: (C,) /Ccedilla ! 459: (E`) /Egrave ! 460: (E') /Eacute ! 461: (E^) /Ecircumflex ! 462: (E") /Edieresis ! 463: (I`) /Igrave ! 464: (I') /Iacute ! 465: (I^) /Icircumflex ! 466: (I") /Idieresis ! 467: (D-) /Eth % missing ! 468: (N~) /Ntilde ! 469: (O`) /Ograve ! 470: (O') /Oacute ! 471: (O^) /Ocircumflex ! 472: (O~) /Otilde ! 473: (O") /Odieresis ! 474: (xx) /multiply % missing ! 475: (O/) /Oslash ! 476: (U`) /Ugrave ! 477: (U') /Uacute ! 478: (U^) /Ucircumflex ! 479: (U") /Udieresis ! 480: (Y') /Yacute % missing ! 481: (TH) /Thorn % missing ! 482: (ss) /germandbls ! 483: (a`) /agrave ! 484: (a') /aacute ! 485: (a^) /acircumflex ! 486: (a~) /atilde ! 487: (a") /adieresis ! 488: (a*) /aring ! 489: (ae) /ae ! 490: (c,) /ccedilla ! 491: (e`) /egrave ! 492: (e') /eacute ! 493: (e^) /ecircumflex ! 494: (e") /edieresis ! 495: (i`) /igrave ! 496: (i') /iacute ! 497: (i^) /icircumflex ! 498: (i") /idieresis ! 499: (d-) /eth % missing ! 500: (n~) /ntilde ! 501: (o`) /ograve ! 502: (o') /oacute ! 503: (o^) /ocircumflex ! 504: (o~) /otilde ! 505: (o") /odieresis ! 506: (-:) /divide % missing ! 507: (o/) /oslash ! 508: (u`) /ugrave ! 509: (u') /uacute ! 510: (u^) /ucircumflex ! 511: (u") /udieresis ! 512: (y') /yacute % missing ! 513: (th) /thorn % missing ! 514: (y") /ydieresis ! 515: //End of DingbatsCharset ! 516: } ! 517: ! 518: SymbolCharset() { ! 519: cat <<-'//End of SymbolCharset' ! 520: (---) /exclam ! 521: (fa) /universal ! 522: (---) /numbersign ! 523: (te) /existential ! 524: (---) /percent ! 525: (---) /ampersand ! 526: (st) /suchthat ! 527: (---) /parenleft ! 528: (---) /parenright ! 529: (**) /asteriskmath ! 530: (pl) /plus ! 531: (---) /comma ! 532: (mi) /minus ! 533: (---) /period ! 534: (sl) /slash ! 535: (---) /zero ! 536: (---) /one ! 537: (---) /two ! 538: (---) /three ! 539: (---) /four ! 540: (---) /five ! 541: (---) /six ! 542: (---) /seven ! 543: (---) /eight ! 544: (---) /nine ! 545: (---) /colon ! 546: (---) /semicolon ! 547: (<) /less ! 548: (eq) /equal ! 549: (>) /greater ! 550: (---) /question ! 551: (cg) /congruent ! 552: (*A) /Alpha ! 553: (*B) /Beta ! 554: (*X) /Chi ! 555: (*D) /Delta ! 556: (*E) /Epsilon ! 557: (*F) /Phi ! 558: (*G) /Gamma ! 559: (*Y) /Eta ! 560: (*I) /Iota ! 561: (---) /theta1 ! 562: (*K) /Kappa ! 563: (*L) /Lambda ! 564: (*M) /Mu ! 565: (*N) /Nu ! 566: (*O) /Omicron ! 567: (*P) /Pi ! 568: (*H) /Theta ! 569: (*R) /Rho ! 570: (*S) /Sigma ! 571: (*T) /Tau ! 572: (*U) /Upsilon ! 573: (ts) /sigma1 ! 574: (*W) /Omega ! 575: (*C) /Xi ! 576: (*Q) /Psi ! 577: (*Z) /Zeta ! 578: (---) /bracketleft ! 579: (tf) /therefore ! 580: (---) /bracketright ! 581: (pp) /perpendicular ! 582: (ul) /underscore ! 583: (_) (") % synonym ! 584: (rn) /radicalex ! 585: (*a) /alpha ! 586: (*b) /beta ! 587: (*x) /chi ! 588: (*d) /delta ! 589: (*e) /epsilon ! 590: (*f) /phi ! 591: (*g) /gamma ! 592: (*y) /eta ! 593: (*i) /iota ! 594: (---) /phi1 ! 595: (*k) /kappa ! 596: (*l) /lambda ! 597: (*m) /mu ! 598: (*n) /nu ! 599: (*o) /omicron ! 600: (*p) /pi ! 601: (*h) /theta ! 602: (*r) /rho ! 603: (*s) /sigma ! 604: (*t) /tau ! 605: (*u) /upsilon ! 606: (---) /omega1 ! 607: (*w) /omega ! 608: (*c) /xi ! 609: (*q) /psi ! 610: (*z) /zeta ! 611: (---) /braceleft ! 612: (or) /bar ! 613: (---) /braceright ! 614: (ap) /similar ! 615: (---) /Upsilon1 ! 616: (fm) /minute ! 617: (<=) /lessequal ! 618: (fr) /fraction % devpost character ! 619: (if) /infinity ! 620: (fn) /florin % devpost character ! 621: (---) /club ! 622: (---) /diamond ! 623: (---) /heart ! 624: (---) /spade ! 625: (ab) /arrowboth ! 626: (<-) /arrowleft ! 627: (ua) /arrowup ! 628: (->) /arrowright ! 629: (da) /arrowdown ! 630: (de) /degree ! 631: (+-) /plusminus ! 632: (---) /second ! 633: (>=) /greaterequal ! 634: (mu) /multiply ! 635: (pt) /proportional ! 636: (pd) /partialdiff ! 637: (bu) /bullet ! 638: (di) /divide ! 639: (!=) /notequal ! 640: (==) /equivalence ! 641: (~~) /approxequal ! 642: (el) /ellipsis ! 643: (av) /arrowvertex ! 644: (ah) /arrowhorizex ! 645: (CR) /carriagereturn ! 646: (af) /aleph ! 647: (If) /Ifraktur ! 648: (Rf) /Rfraktur ! 649: (ws) /weierstrass ! 650: (Ox) /circlemultiply ! 651: (O+) /circleplus ! 652: (es) /emptyset ! 653: (ca) /intersection ! 654: (cu) /union ! 655: (sp) /propersuperset ! 656: (ip) /reflexsuperset ! 657: (!b) /notsubset ! 658: (sb) /propersubset ! 659: (ib) /reflexsubset ! 660: (mo) /element ! 661: (!m) /notelement ! 662: (an) /angle ! 663: (gr) /gradient ! 664: (rg) /registerserif ! 665: (co) /copyrightserif ! 666: (tm) /trademarkserif ! 667: (---) /product ! 668: (sr) /radical ! 669: (c.) /dotmath ! 670: (no) /logicalnot ! 671: (l&) /logicaland ! 672: (l|) /logicalor ! 673: (---) /arrowdblboth ! 674: (---) /arrowdblleft ! 675: (---) /arrowdblup ! 676: (---) /arrowdblright ! 677: (---) /arrowdbldown ! 678: (lz) /lozenge ! 679: (b<) /angleleft ! 680: (RG) /registersans ! 681: (CO) /copyrightsans ! 682: (TM) /trademarksans ! 683: (---) /summation ! 684: (LT) /parenlefttp ! 685: (br) /parenleftex ! 686: (LX) (") % synonym ! 687: (LB) /parenleftbt ! 688: (lc) /bracketlefttp ! 689: (lx) /bracketleftex ! 690: (lf) /bracketleftbt ! 691: (lt) /bracelefttp ! 692: (lk) /braceleftmid ! 693: (lb) /braceleftbt ! 694: (bv) /braceex ! 695: (|) (") % synonym ! 696: (b>) /angleright ! 697: (is) /integral ! 698: (---) /integraltp ! 699: (---) /integralex ! 700: (---) /integralbt ! 701: (RT) /parenrighttp ! 702: (RX) /parenrightex ! 703: (RB) /parenrightbt ! 704: (rc) /bracketrighttp ! 705: (rx) /bracketrightex ! 706: (rf) /bracketrightbt ! 707: (rt) /bracerighttp ! 708: (rk) /bracerightmid ! 709: (rb) /bracerightbt ! 710: (~=) (55 0 1) % charlib ! 711: //End of SymbolCharset ! 712: } ! 713: ! 714: SpecialCharset() { ! 715: cat <<-'//End of SpecialCharset' ! 716: (ru) /underscore ! 717: ('') /quotedblright % devpost character ! 718: (``) /quotedblleft % devpost character ! 719: (dg) /dagger % devpost character ! 720: (dd) /daggerdbl % devpost character ! 721: (en) /endash % devpost character ! 722: (\\-) (") % synonym ! 723: (em) /emdash ! 724: % (ff) (60 2 1) % charlib ! 725: % (Fi) (84 2 1) % charlib ! 726: % (Fl) (84 2 1) % charlib ! 727: (14) (75 2 1) % charlib ! 728: (12) (75 2 1) % charlib ! 729: (34) (75 2 1) % charlib ! 730: (bx) (50 2 1) % charlib ! 731: (ob) (38 2 1) % charlib ! 732: (ci) (75 0 1) % charlib ! 733: (sq) (50 2 1) % charlib ! 734: (Sl) (50 2 1) % charlib ! 735: (L1) (110 1 2) % charlib ! 736: (LA) (110 1 2) % charlib ! 737: (LV) (110 3 1) % charlib ! 738: (LH) (210 1 1) % charlib ! 739: (lh) (100 0 1) % charlib ! 740: (rh) (100 0 1) % charlib ! 741: (lH) (100 0 1) % charlib ! 742: (rH) (100 0 1) % charlib ! 743: (PC) (220 2 1) % charlib ! 744: (DG) (185 2 1) % charlib ! 745: //End of SpecialCharset ! 746: } ! 747: ! 748: # ! 749: # Latin1 ensures a font uses the ISOLatin1Encoding vector, although only ! 750: # text fonts should be re-encoded. Downloading the Encoding vector doesn't ! 751: # often make sense. No ISOLatin1Encoding array likely means ROM based fonts ! 752: # on your printer are incomplete. Type 1 fonts with a full Latin1 character ! 753: # set appeared sometime after Version 50.0. ! 754: # ! 755: ! 756: Latin1() { ! 757: if [ "$DOWNLOADVECTOR" = TRUE ]; then ! 758: cat <<-'//End of ISOLatin1Encoding' ! 759: /ISOLatin1Encoding [ ! 760: /.notdef ! 761: /.notdef ! 762: /.notdef ! 763: /.notdef ! 764: /.notdef ! 765: /.notdef ! 766: /.notdef ! 767: /.notdef ! 768: /.notdef ! 769: /.notdef ! 770: /.notdef ! 771: /.notdef ! 772: /.notdef ! 773: /.notdef ! 774: /.notdef ! 775: /.notdef ! 776: /.notdef ! 777: /.notdef ! 778: /.notdef ! 779: /.notdef ! 780: /.notdef ! 781: /.notdef ! 782: /.notdef ! 783: /.notdef ! 784: /.notdef ! 785: /.notdef ! 786: /.notdef ! 787: /.notdef ! 788: /.notdef ! 789: /.notdef ! 790: /.notdef ! 791: /.notdef ! 792: /space ! 793: /exclam ! 794: /quotedbl ! 795: /numbersign ! 796: /dollar ! 797: /percent ! 798: /ampersand ! 799: /quoteright ! 800: /parenleft ! 801: /parenright ! 802: /asterisk ! 803: /plus ! 804: /comma ! 805: /minus ! 806: /period ! 807: /slash ! 808: /zero ! 809: /one ! 810: /two ! 811: /three ! 812: /four ! 813: /five ! 814: /six ! 815: /seven ! 816: /eight ! 817: /nine ! 818: /colon ! 819: /semicolon ! 820: /less ! 821: /equal ! 822: /greater ! 823: /question ! 824: /at ! 825: /A ! 826: /B ! 827: /C ! 828: /D ! 829: /E ! 830: /F ! 831: /G ! 832: /H ! 833: /I ! 834: /J ! 835: /K ! 836: /L ! 837: /M ! 838: /N ! 839: /O ! 840: /P ! 841: /Q ! 842: /R ! 843: /S ! 844: /T ! 845: /U ! 846: /V ! 847: /W ! 848: /X ! 849: /Y ! 850: /Z ! 851: /bracketleft ! 852: /backslash ! 853: /bracketright ! 854: /asciicircum ! 855: /underscore ! 856: /quoteleft ! 857: /a ! 858: /b ! 859: /c ! 860: /d ! 861: /e ! 862: /f ! 863: /g ! 864: /h ! 865: /i ! 866: /j ! 867: /k ! 868: /l ! 869: /m ! 870: /n ! 871: /o ! 872: /p ! 873: /q ! 874: /r ! 875: /s ! 876: /t ! 877: /u ! 878: /v ! 879: /w ! 880: /x ! 881: /y ! 882: /z ! 883: /braceleft ! 884: /bar ! 885: /braceright ! 886: /asciitilde ! 887: /.notdef ! 888: /.notdef ! 889: /.notdef ! 890: /.notdef ! 891: /.notdef ! 892: /.notdef ! 893: /.notdef ! 894: /.notdef ! 895: /.notdef ! 896: /.notdef ! 897: /.notdef ! 898: /.notdef ! 899: /.notdef ! 900: /.notdef ! 901: /.notdef ! 902: /.notdef ! 903: /.notdef ! 904: /dotlessi ! 905: /grave ! 906: /acute ! 907: /circumflex ! 908: /tilde ! 909: /macron ! 910: /breve ! 911: /dotaccent ! 912: /dieresis ! 913: /.notdef ! 914: /ring ! 915: /cedilla ! 916: /.notdef ! 917: /hungarumlaut ! 918: /ogonek ! 919: /caron ! 920: /space ! 921: /exclamdown ! 922: /cent ! 923: /sterling ! 924: /currency ! 925: /yen ! 926: /brokenbar ! 927: /section ! 928: /dieresis ! 929: /copyright ! 930: /ordfeminine ! 931: /guillemotleft ! 932: /logicalnot ! 933: /hyphen ! 934: /registered ! 935: /macron ! 936: /degree ! 937: /plusminus ! 938: /twosuperior ! 939: /threesuperior ! 940: /acute ! 941: /mu ! 942: /paragraph ! 943: /periodcentered ! 944: /cedilla ! 945: /onesuperior ! 946: /ordmasculine ! 947: /guillemotright ! 948: /onequarter ! 949: /onehalf ! 950: /threequarters ! 951: /questiondown ! 952: /Agrave ! 953: /Aacute ! 954: /Acircumflex ! 955: /Atilde ! 956: /Adieresis ! 957: /Aring ! 958: /AE ! 959: /Ccedilla ! 960: /Egrave ! 961: /Eacute ! 962: /Ecircumflex ! 963: /Edieresis ! 964: /Igrave ! 965: /Iacute ! 966: /Icircumflex ! 967: /Idieresis ! 968: /Eth ! 969: /Ntilde ! 970: /Ograve ! 971: /Oacute ! 972: /Ocircumflex ! 973: /Otilde ! 974: /Odieresis ! 975: /multiply ! 976: /Oslash ! 977: /Ugrave ! 978: /Uacute ! 979: /Ucircumflex ! 980: /Udieresis ! 981: /Yacute ! 982: /Thorn ! 983: /germandbls ! 984: /agrave ! 985: /aacute ! 986: /acircumflex ! 987: /atilde ! 988: /adieresis ! 989: /aring ! 990: /ae ! 991: /ccedilla ! 992: /egrave ! 993: /eacute ! 994: /ecircumflex ! 995: /edieresis ! 996: /igrave ! 997: /iacute ! 998: /icircumflex ! 999: /idieresis ! 1000: /eth ! 1001: /ntilde ! 1002: /ograve ! 1003: /oacute ! 1004: /ocircumflex ! 1005: /otilde ! 1006: /odieresis ! 1007: /divide ! 1008: /oslash ! 1009: /ugrave ! 1010: /uacute ! 1011: /ucircumflex ! 1012: /udieresis ! 1013: /yacute ! 1014: /thorn ! 1015: /ydieresis ! 1016: ] def ! 1017: //End of ISOLatin1Encoding ! 1018: fi ! 1019: ! 1020: echo "ISOLatin1Encoding /$1 ReEncode" ! 1021: } ! 1022: ! 1023: # ! 1024: # Generating functions output PostScript programs that build font width ! 1025: # tables or a typesetter description file. Send the program to a printer ! 1026: # and the complete table will come back on the serial port. All write on ! 1027: # stdout and assume the prologue and other required PostScript files are ! 1028: # all available. ! 1029: # ! 1030: ! 1031: Proportional() { ! 1032: echo "/unitwidth $UNITWIDTH def" ! 1033: echo "/resolution $RESOLUTION def" ! 1034: echo "/octalescapes $OCTALESCAPES def" ! 1035: echo "/charset [" ! 1036: # Get <>_ and | from S. Use accents for ascii ^ and ~. ! 1037: StandardCharset | awk ' ! 1038: $1 == "(<)" && $2 == "/less" {$1 = "(---)"} ! 1039: $1 == "(>)" && $2 == "/greater" {$1 = "(---)"} ! 1040: $1 == "(_)" && $2 == "/underscore" {$1 = "(---)"} ! 1041: $1 == "(|)" && $2 == "/bar" {$1 = "(---)"} ! 1042: $1 == "(^)" && $2 == "/asciicircum" { ! 1043: printf "(^)\t/circumflex\n" ! 1044: $1 = "(---)" ! 1045: } ! 1046: $1 == "(~)" && $2 == "/asciitilde" { ! 1047: printf "(~)\t/tilde\n" ! 1048: $1 = "(---)" ! 1049: } ! 1050: {printf "%s\t%s\n", $1, $2} ! 1051: ' ! 1052: echo "] def" ! 1053: ! 1054: Latin1 $2 ! 1055: echo "/$2 SelectFont" ! 1056: echo "(opO) SetAscender" ! 1057: ! 1058: echo "(name $1\\\\n) Print" ! 1059: echo "(fontname $2\\\\n) Print" ! 1060: echo "/$1 NamedInPrologue" ! 1061: echo "(spacewidth ) Print 32 GetWidth Print (\n) Print" ! 1062: echo "(charset\\\\n) Print" ! 1063: echo "BuildFontCharset" ! 1064: } ! 1065: ! 1066: FixedWidth() { ! 1067: echo "/unitwidth $UNITWIDTH def" ! 1068: echo "/resolution $RESOLUTION def" ! 1069: echo "/octalescapes $OCTALESCAPES def" ! 1070: echo "/charset [" ! 1071: StandardCharset ! 1072: echo "] def" ! 1073: ! 1074: Latin1 $2 ! 1075: echo "/$2 SelectFont" ! 1076: echo "(opO) SetAscender" ! 1077: ! 1078: echo "(name $1\\\\n) Print" ! 1079: echo "(fontname $2\\\\n) Print" ! 1080: echo "/$1 NamedInPrologue" ! 1081: echo "(spacewidth ) Print 32 GetWidth Print (\n) Print" ! 1082: echo "(charset\\\\n) Print" ! 1083: echo "BuildFontCharset" ! 1084: } ! 1085: ! 1086: Dingbats() { ! 1087: echo "/unitwidth $UNITWIDTH def" ! 1088: echo "/resolution $RESOLUTION def" ! 1089: echo "/octalescapes $OCTALESCAPES def" ! 1090: echo "/charset [" ! 1091: DingbatsCharset | awk '$1 != "(---)" && $2 ~ /^\/[a-zA-Z]/ { ! 1092: printf "%s\tISOLatin1Encoding %s GetCode\n", $1, $2 ! 1093: }' ! 1094: echo "] def" ! 1095: ! 1096: echo "/$2 SelectFont" ! 1097: echo "( ) SetAscender" ! 1098: ! 1099: echo "(name $1\\\\n) Print" ! 1100: echo "(fontname $2\\\\n) Print" ! 1101: echo "/$1 NamedInPrologue" ! 1102: echo "(charset\\\\n) Print" ! 1103: echo "BuildFontCharset" ! 1104: } ! 1105: ! 1106: Greek() { ! 1107: echo "/unitwidth $UNITWIDTH def" ! 1108: echo "/resolution $RESOLUTION def" ! 1109: echo "/charset [" ! 1110: SymbolCharset | awk '$1 ~ /\(\*[a-zA-Z]\)/' ! 1111: echo "] def" ! 1112: ! 1113: echo "/$2 SelectFont" ! 1114: echo "(orO) SetAscender" ! 1115: ! 1116: echo "(name $1\\\\n) Print" ! 1117: echo "(fontname $2\\\\n) Print" ! 1118: echo "/$1 NamedInPrologue" ! 1119: echo "(spacewidth ) Print 32 GetWidth Print (\n) Print" ! 1120: echo "(charset\\\\n) Print" ! 1121: echo "BuildFontCharset" ! 1122: } ! 1123: ! 1124: Symbol() { ! 1125: echo "/unitwidth $UNITWIDTH def" ! 1126: echo "/resolution $RESOLUTION def" ! 1127: echo "/charset [" ! 1128: SymbolCharset ! 1129: echo "] def" ! 1130: ! 1131: echo "ChangeMetrics" ! 1132: echo "/S SelectFont" ! 1133: echo "(orO) SetAscender" ! 1134: ! 1135: echo "(name $1\\\\n) Print" ! 1136: echo "(fontname $2\\\\n) Print" ! 1137: echo "/$1 NamedInPrologue" ! 1138: echo "(special\\\\n) Print" ! 1139: echo "(charset\\\\n) Print" ! 1140: echo "BuildFontCharset" ! 1141: } ! 1142: ! 1143: Special() { ! 1144: echo "/unitwidth $UNITWIDTH def" ! 1145: echo "/resolution $RESOLUTION def" ! 1146: echo "/charset [" ! 1147: SpecialCharset ! 1148: echo "] def" ! 1149: ! 1150: echo "ChangeMetrics" ! 1151: echo "/S1 SelectFont" ! 1152: ! 1153: echo "(# Times-Roman special font\\\\n) Print" ! 1154: echo "(name $1\\\\n) Print" ! 1155: echo "(fontname $2\\\\n) Print" ! 1156: echo "/$1 NamedInPrologue" ! 1157: echo "(special\\\\n) Print" ! 1158: echo "(charset\\\\n) Print" ! 1159: echo "BuildFontCharset" ! 1160: } ! 1161: ! 1162: # ! 1163: # The DESC file doesn't have to be built on a printer. It's only here for ! 1164: # consistency. ! 1165: # ! 1166: ! 1167: Description() { ! 1168: echo "/charset [" # awk - so the stack doesn't overflow ! 1169: StandardCharset | awk '{print $1}' ! 1170: SymbolCharset | awk '{print $1}' ! 1171: SpecialCharset | awk '{print $1}' ! 1172: echo "] def" ! 1173: ! 1174: cat <<-//DESC ! 1175: (#Device Description - Latin1 character set ! 1176: ! 1177: PDL PostScript ! 1178: Encoding Latin1 ! 1179: ! 1180: fonts 10 R I B BI CW H HI HB S1 S ! 1181: sizes 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ! 1182: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 40 42 44 46 ! 1183: 48 50 52 54 56 58 60 64 68 72 78 84 90 96 100 105 110 115 ! 1184: 120 125 130 135 140 145 150 155 160 0 ! 1185: res $RESOLUTION ! 1186: hor 1 ! 1187: vert 1 ! 1188: unitwidth $UNITWIDTH ! 1189: ! 1190: ) Print ! 1191: //DESC ! 1192: echo "(charset\\\\n) Print" ! 1193: echo "BuildDescCharset" ! 1194: echo "(\\\\n) Print" ! 1195: } ! 1196:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.