Annotation of researchv10no/cmd/post.src/devLatin1/shell.lib.last, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.