Annotation of researchv10no/cmd/postscript/devpost/shell.lib, revision 1.1.1.1

1.1       root        1: #
                      2: # Shell library - for building devpost tables. Original collection was
                      3: # built on a Version 47.0 PS-810.
                      4: #
                      5: 
                      6: RESOLUTION=720
                      7: UNITWIDTH=10
                      8: 
                      9: #
                     10: # BuiltinTables returns command lines that generate PostScript programs
                     11: # for building a typesetter description file and font width tables for
                     12: # a relatively standard collection of fonts. Use awk to select a command
                     13: # line or modify an existing command to build a width table for a new
                     14: # font.
                     15: #
                     16: 
                     17: BuiltinTables() {
                     18:        cat <<-'//End of BuiltinTables'
                     19:                Proportional    R       Times-Roman
                     20:                Proportional    I       Times-Italic
                     21:                Proportional    B       Times-Bold
                     22:                Proportional    BI      Times-BoldItalic
                     23:                Proportional    AB      AvantGarde-Demi
                     24:                Proportional    AI      AvantGarde-BookOblique
                     25:                Proportional    AR      AvantGarde-Book
                     26:                Proportional    AX      AvantGarde-DemiOblique
                     27:                Proportional    H       Helvetica
                     28:                Proportional    HB      Helvetica-Bold
                     29:                Proportional    HI      Helvetica-Oblique
                     30:                Proportional    HX      Helvetica-BoldOblique
                     31:                Proportional    Hb      Helvetica-Narrow-Bold
                     32:                Proportional    Hi      Helvetica-Narrow-Oblique
                     33:                Proportional    Hr      Helvetica-Narrow
                     34:                Proportional    Hx      Helvetica-Narrow-BoldOblique
                     35:                Proportional    KB      Bookman-Demi
                     36:                Proportional    KI      Bookman-LightItalic
                     37:                Proportional    KR      Bookman-Light
                     38:                Proportional    KX      Bookman-DemiItalic
                     39:                Proportional    NB      NewCenturySchlbk-Bold
                     40:                Proportional    NI      NewCenturySchlbk-Italic
                     41:                Proportional    NR      NewCenturySchlbk-Roman
                     42:                Proportional    NX      NewCenturySchlbk-BoldItalic
                     43:                Proportional    PA      Palatino-Roman
                     44:                Proportional    PB      Palatino-Bold
                     45:                Proportional    PI      Palatino-Italic
                     46:                Proportional    PX      Palatino-BoldItalic
                     47:                Proportional    ZI      ZapfChancery-MediumItalic
                     48:                FixedWidth      C       Courier
                     49:                FixedWidth      CB      Courier-Bold
                     50:                FixedWidth      CI      Courier-Oblique
                     51:                FixedWidth      CO      Courier
                     52:                FixedWidth      CW      Courier
                     53:                FixedWidth      CX      Courier-BoldOblique
                     54:                Dingbats        ZD      ZapfDingbats
                     55:                Greek           GR      Symbol
                     56:                Symbol          S       Symbol
                     57:                Special         S1      Times-Roman
                     58:                Description     DESC    ---
                     59:        //End of BuiltinTables
                     60: }
                     61: 
                     62: #
                     63: # AllTables prints the complete list of builtin font names.
                     64: #
                     65: 
                     66: AllTables() {
                     67:        BuiltinTables | awk '{print $2}'
                     68: }
                     69: 
                     70: #
                     71: # Charset functions generate keyword/value pairs (as PostScript objects)
                     72: # that describe the character set available in a font. The keyword is a
                     73: # PostScript string that represents troff's name for the character. The
                     74: # value is usually the literal name (i.e. begins with a /) assigned to
                     75: # the character in the PostScript font. The value can also be an integer
                     76: # or a PostScript string. An integer value is used as an index in the
                     77: # current font's Encoding array. A string value is returned to the host
                     78: # unchanged when the entry for the character is constructed. Entries that
                     79: # have (") as their value are synonyms for the preceeding character.
                     80: #
                     81: 
                     82: StandardCharset() {
                     83:        cat <<-'//End of StandardCharset'
                     84:                (!)     /exclam
                     85:                (")     /quotedbl
                     86:                (#)     /numbersign
                     87:                ($)     /dollar
                     88:                (%)     /percent
                     89:                (&)     /ampersand
                     90:                (')     /quoteright
                     91:                (\()    /parenleft
                     92:                (\))    /parenright
                     93:                (*)     /asterisk
                     94:                (+)     /plus
                     95:                (,)     /comma
                     96:                (hy)    /hyphen
                     97:                (-)     (")                     % synonym
                     98:                (.)     /period
                     99:                (/)     /slash
                    100:                (0)     /zero
                    101:                (1)     /one
                    102:                (2)     /two
                    103:                (3)     /three
                    104:                (4)     /four
                    105:                (5)     /five
                    106:                (6)     /six
                    107:                (7)     /seven
                    108:                (8)     /eight
                    109:                (9)     /nine
                    110:                (:)     /colon
                    111:                (;)     /semicolon
                    112:                (<)     /less
                    113:                (=)     /equal
                    114:                (>)     /greater
                    115:                (?)     /question
                    116:                (@)     /at
                    117:                (A)     /A
                    118:                (B)     /B
                    119:                (C)     /C
                    120:                (D)     /D
                    121:                (E)     /E
                    122:                (F)     /F
                    123:                (G)     /G
                    124:                (H)     /H
                    125:                (I)     /I
                    126:                (J)     /J
                    127:                (K)     /K
                    128:                (L)     /L
                    129:                (M)     /M
                    130:                (N)     /N
                    131:                (O)     /O
                    132:                (P)     /P
                    133:                (Q)     /Q
                    134:                (R)     /R
                    135:                (S)     /S
                    136:                (T)     /T
                    137:                (U)     /U
                    138:                (V)     /V
                    139:                (W)     /W
                    140:                (X)     /X
                    141:                (Y)     /Y
                    142:                (Z)     /Z
                    143:                ([)     /bracketleft
                    144:                (\\)    /backslash
                    145:                (])     /bracketright
                    146:                (^)     /asciicircum
                    147:                (_)     /underscore
                    148:                (`)     /quoteleft
                    149:                (a)     /a
                    150:                (b)     /b
                    151:                (c)     /c
                    152:                (d)     /d
                    153:                (e)     /e
                    154:                (f)     /f
                    155:                (g)     /g
                    156:                (h)     /h
                    157:                (i)     /i
                    158:                (j)     /j
                    159:                (k)     /k
                    160:                (l)     /l
                    161:                (m)     /m
                    162:                (n)     /n
                    163:                (o)     /o
                    164:                (p)     /p
                    165:                (q)     /q
                    166:                (r)     /r
                    167:                (s)     /s
                    168:                (t)     /t
                    169:                (u)     /u
                    170:                (v)     /v
                    171:                (w)     /w
                    172:                (x)     /x
                    173:                (y)     /y
                    174:                (z)     /z
                    175:                ({)     /braceleft
                    176:                (|)     /bar
                    177:                (})     /braceright
                    178:                (~)     /asciitilde
                    179:                (---)   /exclamdown
                    180:                (ct)    /cent
                    181:                (ps)    /sterling
                    182:                (fr)    /fraction
                    183:                (yn)    /yen
                    184:                (fn)    /florin
                    185:                (sc)    /section
                    186:                (cr)    /currency
                    187:                (---)   /quotesingle
                    188:                (``)    /quotedblleft
                    189:                (---)   /guillemotleft
                    190:                (---)   /guilsinglleft
                    191:                (---)   /guilsinglright
                    192:                (fi)    /fi
                    193:                (fl)    /fl
                    194:                (en)    /endash
                    195:                (\\-)   (")
                    196:                (dg)    /dagger
                    197:                (dd)    /daggerdbl
                    198:                (---)   /periodcentered
                    199:                (pg)    /paragraph
                    200:                (---)   /bullet
                    201:                (---)   /quotesinglbase
                    202:                (---)   /quotedblbase
                    203:                ('')    /quotedblright
                    204:                (---)   /guillemotright
                    205:                (---)   /ellipsis
                    206:                (---)   /perthousand
                    207:                (---)   /questiondown
                    208:                (ga)    /grave
                    209:                (\\`)   (")
                    210:                (aa)    /acute
                    211:                (\\')   (")
                    212:                (^a)    /circumflex
                    213:                (~a)    /tilde
                    214:                (-a)    /macron
                    215:                (Ua)    /breve
                    216:                (.a)    /dotaccent
                    217:                (:a)    /dieresis
                    218:                (oa)    /ring
                    219:                (,a)    /cedilla
                    220:                ("a)    /hungarumlaut
                    221:                (Ca)    /ogonek
                    222:                (va)    /caron
                    223:                (em)    /emdash
                    224:                (---)   /AE
                    225:                (---)   /ordfeminine
                    226:                (---)   /Lslash
                    227:                (---)   /Oslash
                    228:                (---)   /OE
                    229:                (---)   /ordmasculine
                    230:                (---)   /ae
                    231:                (---)   /dotlessi
                    232:                (---)   /lslash
                    233:                (---)   /oslash
                    234:                (---)   /oe
                    235:                (---)   /germandbls
                    236:        //End of StandardCharset
                    237: }
                    238: 
                    239: SymbolCharset() {
                    240:        cat <<-'//End of SymbolCharset'
                    241:                (---)   /exclam
                    242:                (fa)    /universal
                    243:                (---)   /numbersign
                    244:                (te)    /existential
                    245:                (---)   /percent
                    246:                (---)   /ampersand
                    247:                (st)    /suchthat
                    248:                (---)   /parenleft
                    249:                (---)   /parenright
                    250:                (**)    /asteriskmath
                    251:                (pl)    /plus
                    252:                (---)   /comma
                    253:                (mi)    /minus
                    254:                (---)   /period
                    255:                (sl)    /slash
                    256:                (---)   /zero
                    257:                (---)   /one
                    258:                (---)   /two
                    259:                (---)   /three
                    260:                (---)   /four
                    261:                (---)   /five
                    262:                (---)   /six
                    263:                (---)   /seven
                    264:                (---)   /eight
                    265:                (---)   /nine
                    266:                (---)   /colon
                    267:                (---)   /semicolon
                    268:                (<)     /less
                    269:                (eq)    /equal
                    270:                (>)     /greater
                    271:                (---)   /question
                    272:                (cg)    /congruent
                    273:                (*A)    /Alpha
                    274:                (*B)    /Beta
                    275:                (*X)    /Chi
                    276:                (*D)    /Delta
                    277:                (*E)    /Epsilon
                    278:                (*F)    /Phi
                    279:                (*G)    /Gamma
                    280:                (*Y)    /Eta
                    281:                (*I)    /Iota
                    282:                (---)   /theta1
                    283:                (*K)    /Kappa
                    284:                (*L)    /Lambda
                    285:                (*M)    /Mu
                    286:                (*N)    /Nu
                    287:                (*O)    /Omicron
                    288:                (*P)    /Pi
                    289:                (*H)    /Theta
                    290:                (*R)    /Rho
                    291:                (*S)    /Sigma
                    292:                (*T)    /Tau
                    293:                (*U)    /Upsilon
                    294:                (ts)    /sigma1
                    295:                (*W)    /Omega
                    296:                (*C)    /Xi
                    297:                (*Q)    /Psi
                    298:                (*Z)    /Zeta
                    299:                (---)   /bracketleft
                    300:                (tf)    /therefore
                    301:                (---)   /bracketright
                    302:                (pp)    /perpendicular
                    303:                (ul)    /underscore
                    304:                (_)     (")                     % synonym
                    305:                (rn)    /radicalex
                    306:                (*a)    /alpha
                    307:                (*b)    /beta
                    308:                (*x)    /chi
                    309:                (*d)    /delta
                    310:                (*e)    /epsilon
                    311:                (*f)    /phi
                    312:                (*g)    /gamma
                    313:                (*y)    /eta
                    314:                (*i)    /iota
                    315:                (---)   /phi1
                    316:                (*k)    /kappa
                    317:                (*l)    /lambda
                    318:                (*m)    /mu
                    319:                (*n)    /nu
                    320:                (*o)    /omicron
                    321:                (*p)    /pi
                    322:                (*h)    /theta
                    323:                (*r)    /rho
                    324:                (*s)    /sigma
                    325:                (*t)    /tau
                    326:                (*u)    /upsilon
                    327:                (---)   /omega1
                    328:                (*w)    /omega
                    329:                (*c)    /xi
                    330:                (*q)    /psi
                    331:                (*z)    /zeta
                    332:                (---)   /braceleft
                    333:                (or)    /bar
                    334:                (---)   /braceright
                    335:                (ap)    /similar
                    336:                (---)   /Upsilon1
                    337:                (fm)    /minute
                    338:                (<=)    /lessequal
                    339:                (---)   /fraction
                    340:                (if)    /infinity
                    341:                (---)   /florin
                    342:                (---)   /club
                    343:                (---)   /diamond
                    344:                (---)   /heart
                    345:                (---)   /spade
                    346:                (ab)    /arrowboth
                    347:                (<-)    /arrowleft
                    348:                (ua)    /arrowup
                    349:                (->)    /arrowright
                    350:                (da)    /arrowdown
                    351:                (de)    /degree
                    352:                (+-)    /plusminus
                    353:                (---)   /second
                    354:                (>=)    /greaterequal
                    355:                (mu)    /multiply
                    356:                (pt)    /proportional
                    357:                (pd)    /partialdiff
                    358:                (bu)    /bullet
                    359:                (di)    /divide
                    360:                (!=)    /notequal
                    361:                (==)    /equivalence
                    362:                (~~)    /approxequal
                    363:                (el)    /ellipsis
                    364:                (av)    /arrowvertex
                    365:                (ah)    /arrowhorizex
                    366:                (CR)    /carriagereturn
                    367:                (af)    /aleph
                    368:                (If)    /Ifraktur
                    369:                (Rf)    /Rfraktur
                    370:                (ws)    /weierstrass
                    371:                (Ox)    /circlemultiply
                    372:                (O+)    /circleplus
                    373:                (es)    /emptyset
                    374:                (ca)    /intersection
                    375:                (cu)    /union
                    376:                (sp)    /propersuperset
                    377:                (ip)    /reflexsuperset
                    378:                (!b)    /notsubset
                    379:                (sb)    /propersubset
                    380:                (ib)    /reflexsubset
                    381:                (mo)    /element
                    382:                (!m)    /notelement
                    383:                (an)    /angle
                    384:                (gr)    /gradient
                    385:                (rg)    /registerserif
                    386:                (co)    /copyrightserif
                    387:                (tm)    /trademarkserif
                    388:                (---)   /product
                    389:                (sr)    /radical
                    390:                (c.)    /dotmath
                    391:                (no)    /logicalnot
                    392:                (l&)    /logicaland
                    393:                (l|)    /logicalor
                    394:                (---)   /arrowdblboth
                    395:                (---)   /arrowdblleft
                    396:                (---)   /arrowdblup
                    397:                (---)   /arrowdblright
                    398:                (---)   /arrowdbldown
                    399:                (lz)    /lozenge
                    400:                (b<)    /angleleft
                    401:                (RG)    /registersans
                    402:                (CO)    /copyrightsans
                    403:                (TM)    /trademarksans
                    404:                (---)   /summation
                    405:                (LT)    /parenlefttp
                    406:                (br)    /parenleftex
                    407:                (LX)    (")                     % synonym
                    408:                (LB)    /parenleftbt
                    409:                (lc)    /bracketlefttp
                    410:                (lx)    /bracketleftex
                    411:                (lf)    /bracketleftbt
                    412:                (lt)    /bracelefttp
                    413:                (lk)    /braceleftmid
                    414:                (lb)    /braceleftbt
                    415:                (bv)    /braceex
                    416:                (|)     (")                     % synonym
                    417:                (b>)    /angleright
                    418:                (is)    /integral
                    419:                (---)   /integraltp
                    420:                (---)   /integralex
                    421:                (---)   /integralbt
                    422:                (RT)    /parenrighttp
                    423:                (RX)    /parenrightex
                    424:                (RB)    /parenrightbt
                    425:                (rc)    /bracketrighttp
                    426:                (rx)    /bracketrightex
                    427:                (rf)    /bracketrightbt
                    428:                (rt)    /bracerighttp
                    429:                (rk)    /bracerightmid
                    430:                (rb)    /bracerightbt
                    431:                (~=)    (55     0       1)      % charlib
                    432:        //End of SymbolCharset
                    433: }
                    434: 
                    435: SpecialCharset() {
                    436:        cat <<-'//End of SpecialCharset'
                    437:                (ru)    /underscore
                    438:                (ff)    (60     2       1)      % charlib
                    439:                (Fi)    (84     2       1)      % charlib
                    440:                (Fl)    (84     2       1)      % charlib
                    441:                (14)    (75     2       1)      % charlib
                    442:                (12)    (75     2       1)      % charlib
                    443:                (34)    (75     2       1)      % charlib
                    444:                (bx)    (50     2       1)      % charlib
                    445:                (ob)    (38     2       1)      % charlib
                    446:                (ci)    (75     0       1)      % charlib
                    447:                (sq)    (50     2       1)      % charlib
                    448:                (Sl)    (50     2       1)      % charlib
                    449:                (L1)    (110    1       2)      % charlib
                    450:                (LA)    (110    1       2)      % charlib
                    451:                (LV)    (110    3       1)      % charlib
                    452:                (LH)    (210    1       1)      % charlib
                    453:                (lh)    (100    0       1)      % charlib
                    454:                (rh)    (100    0       1)      % charlib
                    455:                (lH)    (100    0       1)      % charlib
                    456:                (rH)    (100    0       1)      % charlib
                    457:                (PC)    (220    2       1)      % charlib
                    458:                (DG)    (185    2       1)      % charlib
                    459:        //End of SpecialCharset
                    460: }
                    461: 
                    462: DingbatsCharset() {
                    463:        cat <<-'//End of DingbatsCharset'
                    464:                (!)     33
                    465:                (")     34
                    466:                (#)     35
                    467:                ($)     36
                    468:                (%)     37
                    469:                (&)     38
                    470:                (')     39
                    471:                (\()    40
                    472:                (\))    41
                    473:                (*)     42
                    474:                (+)     43
                    475:                (,)     44
                    476:                (-)     45
                    477:                (.)     46
                    478:                (/)     47
                    479:                (0)     48
                    480:                (1)     49
                    481:                (2)     50
                    482:                (3)     51
                    483:                (4)     52
                    484:                (5)     53
                    485:                (6)     54
                    486:                (7)     55
                    487:                (8)     56
                    488:                (9)     57
                    489:                (:)     58
                    490:                (;)     59
                    491:                (<)     60
                    492:                (=)     61
                    493:                (>)     62
                    494:                (?)     63
                    495:                (@)     64
                    496:                (A)     65
                    497:                (B)     66
                    498:                (C)     67
                    499:                (D)     68
                    500:                (E)     69
                    501:                (F)     70
                    502:                (G)     71
                    503:                (H)     72
                    504:                (I)     73
                    505:                (J)     74
                    506:                (K)     75
                    507:                (L)     76
                    508:                (M)     77
                    509:                (N)     78
                    510:                (O)     79
                    511:                (P)     80
                    512:                (Q)     81
                    513:                (R)     82
                    514:                (S)     83
                    515:                (T)     84
                    516:                (U)     85
                    517:                (V)     86
                    518:                (W)     87
                    519:                (X)     88
                    520:                (Y)     89
                    521:                (Z)     90
                    522:                ([)     91
                    523:                (\\)    92
                    524:                (])     93
                    525:                (^)     94
                    526:                (_)     95
                    527:                (`)     96
                    528:                (a)     97
                    529:                (b)     98
                    530:                (c)     99
                    531:                (d)     100
                    532:                (e)     101
                    533:                (f)     102
                    534:                (g)     103
                    535:                (h)     104
                    536:                (i)     105
                    537:                (j)     106
                    538:                (k)     107
                    539:                (l)     108
                    540:                (m)     109
                    541:                (n)     110
                    542:                (o)     111
                    543:                (p)     112
                    544:                (q)     113
                    545:                (r)     114
                    546:                (s)     115
                    547:                (t)     116
                    548:                (u)     117
                    549:                (v)     118
                    550:                (w)     119
                    551:                (x)     120
                    552:                (y)     121
                    553:                (z)     122
                    554:                ({)     123
                    555:                (|)     124
                    556:                (})     125
                    557:                (~)     126
                    558:                (hy)    161
                    559:                (em)    162
                    560:                (de)    163
                    561:                (\\-)   164
                    562:                (en)    165
                    563:                (ff)    166
                    564:                (fi)    167
                    565:                (fl)    168
                    566:                (Fi)    169
                    567:                (Fl)    170
                    568:                (fm)    171
                    569:                (ru)    172
                    570:                (dg)    173
                    571:                (bu)    174
                    572:                (14)    175
                    573:                (34)    176
                    574:                (12)    177
                    575:                (ct)    178
                    576:                (rg)    179
                    577:                (sq)    180
                    578:                (sl)    181
                    579:                (ul)    182
                    580:                (or)    183
                    581:                (no)    184
                    582:                (->)    185
                    583:                (<-)    186
                    584:                (da)    187
                    585:                (lh)    188
                    586:                (ua)    189
                    587:                (ab)    190
                    588:                (!b)    191
                    589:                (aa)    192
                    590:                (!m)    193
                    591:                (ga)    194
                    592:                (pl)    195
                    593:                (mi)    196
                    594:                (mu)    197
                    595:                (di)    198
                    596:                (eq)    199
                    597:                (==)    200
                    598:                (>=)    201
                    599:                (<=)    202
                    600:                (!=)    203
                    601:                (+-)    204
                    602:                (-+)    205
                    603:                (ap)    206
                    604:                (~=)    207
                    605:                (gr)    208
                    606:                (is)    209
                    607:                (pd)    210
                    608:                (if)    211
                    609:                (sr)    212
                    610:                (rn)    213
                    611:                (sb)    214
                    612:                (sp)    215
                    613:                (cu)    216
                    614:                (ca)    217
                    615:                (ib)    218
                    616:                (ip)    219
                    617:                (mo)    220
                    618:                (es)    221
                    619:                (sc)    222
                    620:                (dd)    223
                    621:                (lc)    224
                    622:                (rc)    225
                    623:                (lf)    226
                    624:                (rf)    227
                    625:                (bv)    228
                    626:                (**)    229
                    627:                (br)    230
                    628:                (ci)    231
                    629:                (ts)    232
                    630:                (co)    233
                    631:                (lt)    234
                    632:                (rt)    235
                    633:                (lb)    236
                    634:                (rb)    237
                    635:                (lk)    238
                    636:                (rk)    239
                    637:                (rh)    241
                    638:                (tm)    242
                    639:                (Sl)    243
                    640:                (ps)    244
                    641:                (cs)    245
                    642:                (cy)    246
                    643:                (as)    247
                    644:                (os)    248
                    645:                (=.)    249
                    646:                (ld)    250
                    647:                (rd)    251
                    648:                (le)    252
                    649:                (ge)    253
                    650:                (pp)    254
                    651:        //End of DingbatsCharset
                    652: }
                    653: 
                    654: #
                    655: # Generating functions output PostScript programs that build font width
                    656: # tables or a typesetter description file. Send the program to a printer
                    657: # and the complete table will come back on the serial port. All write on
                    658: # stdout and assume the prologue and other required PostScript files are
                    659: # all available.
                    660: #
                    661: 
                    662: Proportional() {
                    663:        echo "/unitwidth $UNITWIDTH def"
                    664:        echo "/resolution $RESOLUTION def"
                    665:        echo "/charset ["
                    666:                # Get <>_ and | from S. Use accents for ascii ^ and ~.
                    667:                StandardCharset | awk '
                    668:                        $1 == "(<)" && $2 == "/less" {$1 = "(---)"}
                    669:                        $1 == "(>)" && $2 == "/greater" {$1 = "(---)"}
                    670:                        $1 == "(_)" && $2 == "/underscore" {$1 = "(---)"}
                    671:                        $1 == "(|)" && $2 == "/bar" {$1 = "(---)"}
                    672:                        $1 == "(^)" && $2 == "/asciicircum" {$1 = "(---)"}
                    673:                        $1 == "(~)" && $2 == "/asciitilde" {$1 = "(---)"}
                    674:                        {printf "%s\t%s\n", $1, $2}
                    675:                        $2 == "/circumflex" {printf "(^)\t(\")\n"}
                    676:                        $2 == "/tilde" {printf "(~)\t(\")\n"}
                    677:                '
                    678:        echo "] def"
                    679: 
                    680:        echo "/$2 SelectFont"
                    681:        echo "(opO) SetAscender"
                    682: 
                    683:        echo "(name $1\\\\n) Print"
                    684:        echo "(fontname $2\\\\n) Print"
                    685:        echo "/$1 NamedInPrologue"
                    686:        echo "(ligatures fi fl 0\\\\n) Print"
                    687:        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
                    688:        echo "(charset\\\\n) Print"
                    689:        echo "BuildFontCharset"
                    690: }
                    691: 
                    692: FixedWidth() {
                    693:        echo "/unitwidth $UNITWIDTH def"
                    694:        echo "/resolution $RESOLUTION def"
                    695:        echo "/charset ["
                    696:                # awk is not important - it's only here for compatibility
                    697:                StandardCharset | awk '
                    698:                        $1 == "(fi)" || $1 == "(fl)" {next}
                    699:                        {printf "%s\t%s\n", $1, $2}
                    700:                        $2 == "/circumflex" {printf "(^)\t(\")\n"}
                    701:                        $2 == "/tilde" {printf "(~)\t(\")\n"}
                    702:        '
                    703:        echo "] def"
                    704: 
                    705:        echo "/$2 SelectFont"
                    706:        echo "(opO) SetAscender"
                    707: 
                    708:        echo "(name $1\\\\n) Print"
                    709:        echo "(fontname $2\\\\n) Print"
                    710:        echo "/$1 NamedInPrologue"
                    711:        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
                    712:        echo "(charset\\\\n) Print"
                    713:        echo "BuildFontCharset"
                    714: }
                    715: 
                    716: Dingbats() {
                    717:        echo "/unitwidth $UNITWIDTH def"
                    718:        echo "/resolution $RESOLUTION def"
                    719:        echo "/charset ["
                    720:                DingbatsCharset
                    721:        echo "] def"
                    722: 
                    723:        echo "/$2 SelectFont"
                    724:        echo "(   ) SetAscender"
                    725: 
                    726:        echo "(name $1\\\\n) Print"
                    727:        echo "(fontname $2\\\\n) Print"
                    728:        echo "/$1 NamedInPrologue"
                    729:        echo "(charset\\\\n) Print"
                    730:        echo "BuildFontCharset"
                    731: }
                    732: 
                    733: Greek() {
                    734:        echo "/unitwidth $UNITWIDTH def"
                    735:        echo "/resolution $RESOLUTION def"
                    736:        echo "/charset ["
                    737:                SymbolCharset | awk '$1 ~ /\(\*[a-zA-Z]\)/'
                    738:        echo "] def"
                    739: 
                    740:        echo "/$2 SelectFont"
                    741:        echo "(orO) SetAscender"
                    742: 
                    743:        echo "(name $1\\\\n) Print"
                    744:        echo "(fontname $2\\\\n) Print"
                    745:        echo "/$1 NamedInPrologue"
                    746:        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
                    747:        echo "(charset\\\\n) Print"
                    748:        echo "BuildFontCharset"
                    749: }
                    750: 
                    751: Symbol() {
                    752:        echo "/unitwidth $UNITWIDTH def"
                    753:        echo "/resolution $RESOLUTION def"
                    754:        echo "/charset ["
                    755:                SymbolCharset
                    756:        echo "] def"
                    757: 
                    758:        echo "ChangeMetrics"
                    759:        echo "/S SelectFont"
                    760:        echo "(orO) SetAscender"
                    761: 
                    762:        echo "(name $1\\\\n) Print"
                    763:        echo "(fontname $2\\\\n) Print"
                    764:        echo "/$1 NamedInPrologue"
                    765:        echo "(special\\\\n) Print"
                    766:        echo "(charset\\\\n) Print"
                    767:        echo "BuildFontCharset"
                    768: }
                    769: 
                    770: Special() {
                    771:        echo "/unitwidth $UNITWIDTH def"
                    772:        echo "/resolution $RESOLUTION def"
                    773:        echo "/charset ["
                    774:                SpecialCharset
                    775:        echo "] def"
                    776: 
                    777:        echo "ChangeMetrics"
                    778:        echo "/S1 SelectFont"
                    779: 
                    780:        echo "(# Times-Roman special font\\\\n) Print"
                    781:        echo "(name $1\\\\n) Print"
                    782:        echo "(fontname $2\\\\n) Print"
                    783:        echo "/$1 NamedInPrologue"
                    784:        echo "(special\\\\n) Print"
                    785:        echo "(charset\\\\n) Print"
                    786:        echo "BuildFontCharset"
                    787: }
                    788: 
                    789: #
                    790: # The DESC file doesn't have to be built on a printer. It's only here for
                    791: # consistency.
                    792: #
                    793: 
                    794: Description() {
                    795:        echo "/charset ["       # awk - so the stack doesn't overflow
                    796:                StandardCharset | awk '$1 != "(---)" {print $1}'
                    797:                SymbolCharset | awk '$1 != "(---)" {print $1}'
                    798:                SpecialCharset | awk '$1 != "(---)" {print $1}'
                    799:                DingbatsCharset | awk '$1 != "(---)" {print $1}'
                    800:        echo "] def"
                    801: 
                    802:        cat <<-//DESC
                    803:                (#Device Description - original PostScript character set
                    804: 
                    805:                PDL PostScript
                    806: 
                    807:                fonts 10 R I B BI CW H HI HB S1 S
                    808:                sizes 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
                    809:                23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 40 42 44 46
                    810:                48 50 52 54 56 58 60 64 68 72 78 84 90 96 100 105 110 115
                    811:                120 125 130 135 140 145 150 155 160 0
                    812: 
                    813:                res $RESOLUTION
                    814:                hor 1
                    815:                vert 1
                    816:                unitwidth $UNITWIDTH
                    817: 
                    818:                ) Print
                    819:        //DESC
                    820:        echo "(charset\\\\n) Print"
                    821:        echo "BuildDescCharset"
                    822:        echo "(\\\\n) Print"
                    823: }
                    824: 

unix.superglobalmegacorp.com

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