Annotation of researchv10no/cmd/postscript/devLatin1/shell.lib, 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:                (-)     /minus          % also hyphen in devpost
                    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:                (co)    /copyright
                    205:                (a_)    /ordfeminine
                    206:                (<<)    /guillemotleft
                    207:                (-,)    /logicalnot
                    208:                (hy)    /hyphen
                    209:                (--)    (")                     % synonym
                    210:                (ro)    /registered
                    211:                (rg)    (")                     % devpost synonym
                    212:                (-^)    /macron
                    213:                (0^)    /degree                 % missing
                    214:                (+-)    /plusminus              % missing
                    215:                (2^)    /twosuperior            % missing
                    216:                (3^)    /threesuperior          % missing
                    217:                (\\')   /acute
                    218:                (aa)    (")                     % devpost synonym
                    219:                (/u)    /mu                     % missing
                    220:                (P!)    /paragraph
                    221:                (pg)    (")                     % devpost synonym
                    222:                (.^)    /periodcentered
                    223:                (,,)    /cedilla
                    224:                (1^)    /onesuperior            % missing
                    225:                (o_)    /ordmasculine
                    226:                (>>)    /guillemotright
                    227:                (14)    /onequarter             % missing
                    228:                (12)    /onehalf                % missing
                    229:                (34)    /threequarters          % missing
                    230:                (??)    /questiondown
                    231:                (A`)    /Agrave
                    232:                (A')    /Aacute
                    233:                (A^)    /Acircumflex
                    234:                (A~)    /Atilde
                    235:                (A")    /Adieresis
                    236:                (A*)    /Aring
                    237:                (AE)    /AE
                    238:                (C,)    /Ccedilla
                    239:                (E`)    /Egrave
                    240:                (E')    /Eacute
                    241:                (E^)    /Ecircumflex
                    242:                (E")    /Edieresis
                    243:                (I`)    /Igrave
                    244:                (I')    /Iacute
                    245:                (I^)    /Icircumflex
                    246:                (I")    /Idieresis
                    247:                (D-)    /Eth                    % missing
                    248:                (N~)    /Ntilde
                    249:                (O`)    /Ograve
                    250:                (O')    /Oacute
                    251:                (O^)    /Ocircumflex
                    252:                (O~)    /Otilde
                    253:                (O")    /Odieresis
                    254:                (xx)    /multiply               % missing
                    255:                (O/)    /Oslash
                    256:                (U`)    /Ugrave
                    257:                (U')    /Uacute
                    258:                (U^)    /Ucircumflex
                    259:                (U")    /Udieresis
                    260:                (Y')    /Yacute                 % missing
                    261:                (TH)    /Thorn                  % missing
                    262:                (ss)    /germandbls
                    263:                (a`)    /agrave
                    264:                (a')    /aacute
                    265:                (a^)    /acircumflex
                    266:                (a~)    /atilde
                    267:                (a")    /adieresis
                    268:                (a*)    /aring
                    269:                (ae)    /ae
                    270:                (c,)    /ccedilla
                    271:                (e`)    /egrave
                    272:                (e')    /eacute
                    273:                (e^)    /ecircumflex
                    274:                (e")    /edieresis
                    275:                (i`)    /igrave
                    276:                (i')    /iacute
                    277:                (i^)    /icircumflex
                    278:                (i")    /idieresis
                    279:                (d-)    /eth                    % missing
                    280:                (n~)    /ntilde
                    281:                (o`)    /ograve
                    282:                (o')    /oacute
                    283:                (o^)    /ocircumflex
                    284:                (o~)    /otilde
                    285:                (o")    /odieresis
                    286:                (-:)    /divide                 % missing
                    287:                (o/)    /oslash
                    288:                (u`)    /ugrave
                    289:                (u')    /uacute
                    290:                (u^)    /ucircumflex
                    291:                (u")    /udieresis
                    292:                (y')    /yacute                 % missing
                    293:                (th)    /thorn                  % missing
                    294:                (y")    /ydieresis
                    295:        //End of StandardCharset
                    296: }
                    297: 
                    298: SymbolCharset() {
                    299:        cat <<-'//End of SymbolCharset'
                    300:                (---)   /exclam
                    301:                (fa)    /universal
                    302:                (---)   /numbersign
                    303:                (te)    /existential
                    304:                (---)   /percent
                    305:                (---)   /ampersand
                    306:                (st)    /suchthat
                    307:                (---)   /parenleft
                    308:                (---)   /parenright
                    309:                (**)    /asteriskmath
                    310:                (pl)    /plus
                    311:                (---)   /comma
                    312:                (mi)    /minus
                    313:                (---)   /period
                    314:                (sl)    /slash
                    315:                (---)   /zero
                    316:                (---)   /one
                    317:                (---)   /two
                    318:                (---)   /three
                    319:                (---)   /four
                    320:                (---)   /five
                    321:                (---)   /six
                    322:                (---)   /seven
                    323:                (---)   /eight
                    324:                (---)   /nine
                    325:                (---)   /colon
                    326:                (---)   /semicolon
                    327:                (<)     /less
                    328:                (eq)    /equal
                    329:                (>)     /greater
                    330:                (---)   /question
                    331:                (cg)    /congruent
                    332:                (*A)    /Alpha
                    333:                (*B)    /Beta
                    334:                (*X)    /Chi
                    335:                (*D)    /Delta
                    336:                (*E)    /Epsilon
                    337:                (*F)    /Phi
                    338:                (*G)    /Gamma
                    339:                (*Y)    /Eta
                    340:                (*I)    /Iota
                    341:                (---)   /theta1
                    342:                (*K)    /Kappa
                    343:                (*L)    /Lambda
                    344:                (*M)    /Mu
                    345:                (*N)    /Nu
                    346:                (*O)    /Omicron
                    347:                (*P)    /Pi
                    348:                (*H)    /Theta
                    349:                (*R)    /Rho
                    350:                (*S)    /Sigma
                    351:                (*T)    /Tau
                    352:                (*U)    /Upsilon
                    353:                (ts)    /sigma1
                    354:                (*W)    /Omega
                    355:                (*C)    /Xi
                    356:                (*Q)    /Psi
                    357:                (*Z)    /Zeta
                    358:                (---)   /bracketleft
                    359:                (tf)    /therefore
                    360:                (---)   /bracketright
                    361:                (pp)    /perpendicular
                    362:                (ul)    /underscore
                    363:                (_)     (")                     % synonym
                    364:                (rn)    /radicalex
                    365:                (*a)    /alpha
                    366:                (*b)    /beta
                    367:                (*x)    /chi
                    368:                (*d)    /delta
                    369:                (*e)    /epsilon
                    370:                (*f)    /phi
                    371:                (*g)    /gamma
                    372:                (*y)    /eta
                    373:                (*i)    /iota
                    374:                (---)   /phi1
                    375:                (*k)    /kappa
                    376:                (*l)    /lambda
                    377:                (*m)    /mu
                    378:                (*n)    /nu
                    379:                (*o)    /omicron
                    380:                (*p)    /pi
                    381:                (*h)    /theta
                    382:                (*r)    /rho
                    383:                (*s)    /sigma
                    384:                (*t)    /tau
                    385:                (*u)    /upsilon
                    386:                (---)   /omega1
                    387:                (*w)    /omega
                    388:                (*c)    /xi
                    389:                (*q)    /psi
                    390:                (*z)    /zeta
                    391:                (---)   /braceleft
                    392:                (or)    /bar
                    393:                (---)   /braceright
                    394:                (ap)    /similar
                    395:                (---)   /Upsilon1
                    396:                (fm)    /minute
                    397:                (<=)    /lessequal
                    398:                (fr)    /fraction               % devpost character
                    399:                (if)    /infinity
                    400:                (fn)    /florin                 % devpost character
                    401:                (---)   /club
                    402:                (---)   /diamond
                    403:                (---)   /heart
                    404:                (---)   /spade
                    405:                (ab)    /arrowboth
                    406:                (<-)    /arrowleft
                    407:                (ua)    /arrowup
                    408:                (->)    /arrowright
                    409:                (da)    /arrowdown
                    410:                (de)    /degree
                    411:                (+-)    /plusminus
                    412:                (---)   /second
                    413:                (>=)    /greaterequal
                    414:                (mu)    /multiply
                    415:                (pt)    /proportional
                    416:                (pd)    /partialdiff
                    417:                (bu)    /bullet
                    418:                (di)    /divide
                    419:                (!=)    /notequal
                    420:                (==)    /equivalence
                    421:                (~~)    /approxequal
                    422:                (el)    /ellipsis
                    423:                (av)    /arrowvertex
                    424:                (ah)    /arrowhorizex
                    425:                (CR)    /carriagereturn
                    426:                (af)    /aleph
                    427:                (If)    /Ifraktur
                    428:                (Rf)    /Rfraktur
                    429:                (ws)    /weierstrass
                    430:                (Ox)    /circlemultiply
                    431:                (O+)    /circleplus
                    432:                (es)    /emptyset
                    433:                (ca)    /intersection
                    434:                (cu)    /union
                    435:                (sp)    /propersuperset
                    436:                (ip)    /reflexsuperset
                    437:                (!b)    /notsubset
                    438:                (sb)    /propersubset
                    439:                (ib)    /reflexsubset
                    440:                (mo)    /element
                    441:                (!m)    /notelement
                    442:                (an)    /angle
                    443:                (gr)    /gradient
                    444:                (rg)    /registerserif
                    445:                (co)    /copyrightserif
                    446:                (tm)    /trademarkserif
                    447:                (---)   /product
                    448:                (sr)    /radical
                    449:                (c.)    /dotmath
                    450:                (no)    /logicalnot
                    451:                (l&)    /logicaland
                    452:                (l|)    /logicalor
                    453:                (---)   /arrowdblboth
                    454:                (---)   /arrowdblleft
                    455:                (---)   /arrowdblup
                    456:                (---)   /arrowdblright
                    457:                (---)   /arrowdbldown
                    458:                (lz)    /lozenge
                    459:                (b<)    /angleleft
                    460:                (RG)    /registersans
                    461:                (CO)    /copyrightsans
                    462:                (TM)    /trademarksans
                    463:                (---)   /summation
                    464:                (LT)    /parenlefttp
                    465:                (br)    /parenleftex
                    466:                (LX)    (")                     % synonym
                    467:                (LB)    /parenleftbt
                    468:                (lc)    /bracketlefttp
                    469:                (lx)    /bracketleftex
                    470:                (lf)    /bracketleftbt
                    471:                (lt)    /bracelefttp
                    472:                (lk)    /braceleftmid
                    473:                (lb)    /braceleftbt
                    474:                (bv)    /braceex
                    475:                (|)     (")                     % synonym
                    476:                (b>)    /angleright
                    477:                (is)    /integral
                    478:                (---)   /integraltp
                    479:                (---)   /integralex
                    480:                (---)   /integralbt
                    481:                (RT)    /parenrighttp
                    482:                (RX)    /parenrightex
                    483:                (RB)    /parenrightbt
                    484:                (rc)    /bracketrighttp
                    485:                (rx)    /bracketrightex
                    486:                (rf)    /bracketrightbt
                    487:                (rt)    /bracerighttp
                    488:                (rk)    /bracerightmid
                    489:                (rb)    /bracerightbt
                    490:                (~=)    (55     0       1)      % charlib
                    491:        //End of SymbolCharset
                    492: }
                    493: 
                    494: SpecialCharset() {
                    495:        cat <<-'//End of SpecialCharset'
                    496:                (ru)    /underscore
                    497:                ('')    /quotedblright          % devpost character
                    498:                (``)    /quotedblleft           % devpost character
                    499:                (dg)    /dagger                 % devpost character
                    500:                (dd)    /daggerdbl              % devpost character
                    501:                (en)    /endash                 % devpost character
                    502:                (\\-)   (")                     % synonym
                    503:                (em)    /emdash
                    504: %              (ff)    (60     2       1)      % charlib
                    505: %              (Fi)    (84     2       1)      % charlib
                    506: %              (Fl)    (84     2       1)      % charlib
                    507:                (14)    (75     2       1)      % charlib
                    508:                (12)    (75     2       1)      % charlib
                    509:                (34)    (75     2       1)      % charlib
                    510:                (bx)    (50     2       1)      % charlib
                    511:                (ob)    (38     2       1)      % charlib
                    512:                (ci)    (75     0       1)      % charlib
                    513:                (sq)    (50     2       1)      % charlib
                    514:                (Sl)    (50     2       1)      % charlib
                    515:                (L1)    (110    1       2)      % charlib
                    516:                (LA)    (110    1       2)      % charlib
                    517:                (LV)    (110    3       1)      % charlib
                    518:                (LH)    (210    1       1)      % charlib
                    519:                (lh)    (100    0       1)      % charlib
                    520:                (rh)    (100    0       1)      % charlib
                    521:                (lH)    (100    0       1)      % charlib
                    522:                (rH)    (100    0       1)      % charlib
                    523:                (PC)    (220    2       1)      % charlib
                    524:                (DG)    (185    2       1)      % charlib
                    525:        //End of SpecialCharset
                    526: }
                    527: 
                    528: #
                    529: # Latin1 ensures a font uses the ISOLatin1Encoding vector, although only
                    530: # text fonts should be re-encoded. Downloading the Encoding vector doesn't
                    531: # often make sense. No ISOLatin1Encoding array likely means ROM based fonts
                    532: # on your printer are incomplete. Type 1 fonts with a full Latin1 character
                    533: # set appeared sometime after Version 50.0.
                    534: #
                    535: 
                    536: Latin1() {
                    537:        if [ "$DOWNLOADVECTOR" = TRUE ]; then
                    538:                cat <<-'//End of ISOLatin1Encoding'
                    539:                        /ISOLatin1Encoding [
                    540:                                /.notdef
                    541:                                /.notdef
                    542:                                /.notdef
                    543:                                /.notdef
                    544:                                /.notdef
                    545:                                /.notdef
                    546:                                /.notdef
                    547:                                /.notdef
                    548:                                /.notdef
                    549:                                /.notdef
                    550:                                /.notdef
                    551:                                /.notdef
                    552:                                /.notdef
                    553:                                /.notdef
                    554:                                /.notdef
                    555:                                /.notdef
                    556:                                /.notdef
                    557:                                /.notdef
                    558:                                /.notdef
                    559:                                /.notdef
                    560:                                /.notdef
                    561:                                /.notdef
                    562:                                /.notdef
                    563:                                /.notdef
                    564:                                /.notdef
                    565:                                /.notdef
                    566:                                /.notdef
                    567:                                /.notdef
                    568:                                /.notdef
                    569:                                /.notdef
                    570:                                /.notdef
                    571:                                /.notdef
                    572:                                /space
                    573:                                /exclam
                    574:                                /quotedbl
                    575:                                /numbersign
                    576:                                /dollar
                    577:                                /percent
                    578:                                /ampersand
                    579:                                /quoteright
                    580:                                /parenleft
                    581:                                /parenright
                    582:                                /asterisk
                    583:                                /plus
                    584:                                /comma
                    585:                                /minus
                    586:                                /period
                    587:                                /slash
                    588:                                /zero
                    589:                                /one
                    590:                                /two
                    591:                                /three
                    592:                                /four
                    593:                                /five
                    594:                                /six
                    595:                                /seven
                    596:                                /eight
                    597:                                /nine
                    598:                                /colon
                    599:                                /semicolon
                    600:                                /less
                    601:                                /equal
                    602:                                /greater
                    603:                                /question
                    604:                                /at
                    605:                                /A
                    606:                                /B
                    607:                                /C
                    608:                                /D
                    609:                                /E
                    610:                                /F
                    611:                                /G
                    612:                                /H
                    613:                                /I
                    614:                                /J
                    615:                                /K
                    616:                                /L
                    617:                                /M
                    618:                                /N
                    619:                                /O
                    620:                                /P
                    621:                                /Q
                    622:                                /R
                    623:                                /S
                    624:                                /T
                    625:                                /U
                    626:                                /V
                    627:                                /W
                    628:                                /X
                    629:                                /Y
                    630:                                /Z
                    631:                                /bracketleft
                    632:                                /backslash
                    633:                                /bracketright
                    634:                                /asciicircum
                    635:                                /underscore
                    636:                                /quoteleft
                    637:                                /a
                    638:                                /b
                    639:                                /c
                    640:                                /d
                    641:                                /e
                    642:                                /f
                    643:                                /g
                    644:                                /h
                    645:                                /i
                    646:                                /j
                    647:                                /k
                    648:                                /l
                    649:                                /m
                    650:                                /n
                    651:                                /o
                    652:                                /p
                    653:                                /q
                    654:                                /r
                    655:                                /s
                    656:                                /t
                    657:                                /u
                    658:                                /v
                    659:                                /w
                    660:                                /x
                    661:                                /y
                    662:                                /z
                    663:                                /braceleft
                    664:                                /bar
                    665:                                /braceright
                    666:                                /asciitilde
                    667:                                /.notdef
                    668:                                /.notdef
                    669:                                /.notdef
                    670:                                /.notdef
                    671:                                /.notdef
                    672:                                /.notdef
                    673:                                /.notdef
                    674:                                /.notdef
                    675:                                /.notdef
                    676:                                /.notdef
                    677:                                /.notdef
                    678:                                /.notdef
                    679:                                /.notdef
                    680:                                /.notdef
                    681:                                /.notdef
                    682:                                /.notdef
                    683:                                /.notdef
                    684:                                /dotlessi
                    685:                                /grave
                    686:                                /acute
                    687:                                /circumflex
                    688:                                /tilde
                    689:                                /macron
                    690:                                /breve
                    691:                                /dotaccent
                    692:                                /dieresis
                    693:                                /.notdef
                    694:                                /ring
                    695:                                /cedilla
                    696:                                /.notdef
                    697:                                /hungarumlaut
                    698:                                /ogonek
                    699:                                /caron
                    700:                                /space
                    701:                                /exclamdown
                    702:                                /cent
                    703:                                /sterling
                    704:                                /currency
                    705:                                /yen
                    706:                                /brokenbar
                    707:                                /section
                    708:                                /dieresis
                    709:                                /copyright
                    710:                                /ordfeminine
                    711:                                /guillemotleft
                    712:                                /logicalnot
                    713:                                /hyphen
                    714:                                /registered
                    715:                                /macron
                    716:                                /degree
                    717:                                /plusminus
                    718:                                /twosuperior
                    719:                                /threesuperior
                    720:                                /acute
                    721:                                /mu
                    722:                                /paragraph
                    723:                                /periodcentered
                    724:                                /cedilla
                    725:                                /onesuperior
                    726:                                /ordmasculine
                    727:                                /guillemotright
                    728:                                /onequarter
                    729:                                /onehalf
                    730:                                /threequarters
                    731:                                /questiondown
                    732:                                /Agrave
                    733:                                /Aacute
                    734:                                /Acircumflex
                    735:                                /Atilde
                    736:                                /Adieresis
                    737:                                /Aring
                    738:                                /AE
                    739:                                /Ccedilla
                    740:                                /Egrave
                    741:                                /Eacute
                    742:                                /Ecircumflex
                    743:                                /Edieresis
                    744:                                /Igrave
                    745:                                /Iacute
                    746:                                /Icircumflex
                    747:                                /Idieresis
                    748:                                /Eth
                    749:                                /Ntilde
                    750:                                /Ograve
                    751:                                /Oacute
                    752:                                /Ocircumflex
                    753:                                /Otilde
                    754:                                /Odieresis
                    755:                                /multiply
                    756:                                /Oslash
                    757:                                /Ugrave
                    758:                                /Uacute
                    759:                                /Ucircumflex
                    760:                                /Udieresis
                    761:                                /Yacute
                    762:                                /Thorn
                    763:                                /germandbls
                    764:                                /agrave
                    765:                                /aacute
                    766:                                /acircumflex
                    767:                                /atilde
                    768:                                /adieresis
                    769:                                /aring
                    770:                                /ae
                    771:                                /ccedilla
                    772:                                /egrave
                    773:                                /eacute
                    774:                                /ecircumflex
                    775:                                /edieresis
                    776:                                /igrave
                    777:                                /iacute
                    778:                                /icircumflex
                    779:                                /idieresis
                    780:                                /eth
                    781:                                /ntilde
                    782:                                /ograve
                    783:                                /oacute
                    784:                                /ocircumflex
                    785:                                /otilde
                    786:                                /odieresis
                    787:                                /divide
                    788:                                /oslash
                    789:                                /ugrave
                    790:                                /uacute
                    791:                                /ucircumflex
                    792:                                /udieresis
                    793:                                /yacute
                    794:                                /thorn
                    795:                                /ydieresis
                    796:                        ] def
                    797:                //End of ISOLatin1Encoding
                    798:        fi
                    799: 
                    800:        echo "ISOLatin1Encoding /$1 ReEncode"
                    801: }
                    802: 
                    803: #
                    804: # Generating functions output PostScript programs that build font width
                    805: # tables or a typesetter description file. Send the program to a printer
                    806: # and the complete table will come back on the serial port. All write on
                    807: # stdout and assume the prologue and other required PostScript files are
                    808: # all available.
                    809: #
                    810: 
                    811: Proportional() {
                    812:        echo "/unitwidth $UNITWIDTH def"
                    813:        echo "/resolution $RESOLUTION def"
                    814:        echo "/octalescapes $OCTALESCAPES def"
                    815:        echo "/charset ["
                    816:                # Get <>_ and | from S. Use accents for ascii ^ and ~.
                    817:                StandardCharset | awk '
                    818:                        $1 == "(<)" && $2 == "/less" {$1 = "(---)"}
                    819:                        $1 == "(>)" && $2 == "/greater" {$1 = "(---)"}
                    820:                        $1 == "(_)" && $2 == "/underscore" {$1 = "(---)"}
                    821:                        $1 == "(|)" && $2 == "/bar" {$1 = "(---)"}
                    822:                        $1 == "(^)" && $2 == "/asciicircum" {
                    823:                                printf "(^)\t/circumflex\n"
                    824:                                $1 = "(---)"
                    825:                        }
                    826:                        $1 == "(~)" && $2 == "/asciitilde" {
                    827:                                printf "(~)\t/tilde\n"
                    828:                                $1 = "(---)"
                    829:                        }
                    830:                        {printf "%s\t%s\n", $1, $2}
                    831:                '
                    832:        echo "] def"
                    833: 
                    834:        Latin1 $2
                    835:        echo "/$2 SelectFont"
                    836:        echo "(opO) SetAscender"
                    837: 
                    838:        echo "(name $1\\\\n) Print"
                    839:        echo "(fontname $2\\\\n) Print"
                    840:        echo "/$1 NamedInPrologue"
                    841:        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
                    842:        echo "(charset\\\\n) Print"
                    843:        echo "BuildFontCharset"
                    844: }
                    845: 
                    846: FixedWidth() {
                    847:        echo "/unitwidth $UNITWIDTH def"
                    848:        echo "/resolution $RESOLUTION def"
                    849:        echo "/octalescapes $OCTALESCAPES def"
                    850:        echo "/charset ["
                    851:                StandardCharset
                    852:        echo "] def"
                    853: 
                    854:        Latin1 $2
                    855:        echo "/$2 SelectFont"
                    856:        echo "(opO) SetAscender"
                    857: 
                    858:        echo "(name $1\\\\n) Print"
                    859:        echo "(fontname $2\\\\n) Print"
                    860:        echo "/$1 NamedInPrologue"
                    861:        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
                    862:        echo "(charset\\\\n) Print"
                    863:        echo "BuildFontCharset"
                    864: }
                    865: 
                    866: Dingbats() {
                    867:        echo "/unitwidth $UNITWIDTH def"
                    868:        echo "/resolution $RESOLUTION def"
                    869:        echo "/octalescapes $OCTALESCAPES def"
                    870:        echo "/charset ["
                    871:                StandardCharset | awk '$1 != "(---)" && $2 ~ /^\/[a-zA-Z]/ {
                    872:                        printf "%s\tISOLatin1Encoding %s GetCode\n", $1, $2
                    873:                }'
                    874:        echo "] def"
                    875: 
                    876:        echo "/$2 SelectFont"
                    877:        echo "(   ) SetAscender"
                    878: 
                    879:        echo "(name $1\\\\n) Print"
                    880:        echo "(fontname $2\\\\n) Print"
                    881:        echo "/$1 NamedInPrologue"
                    882:        echo "(charset\\\\n) Print"
                    883:        echo "BuildFontCharset"
                    884: }
                    885: 
                    886: Greek() {
                    887:        echo "/unitwidth $UNITWIDTH def"
                    888:        echo "/resolution $RESOLUTION def"
                    889:        echo "/charset ["
                    890:                SymbolCharset | awk '$1 ~ /\(\*[a-zA-Z]\)/'
                    891:        echo "] def"
                    892: 
                    893:        echo "/$2 SelectFont"
                    894:        echo "(orO) SetAscender"
                    895: 
                    896:        echo "(name $1\\\\n) Print"
                    897:        echo "(fontname $2\\\\n) Print"
                    898:        echo "/$1 NamedInPrologue"
                    899:        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
                    900:        echo "(charset\\\\n) Print"
                    901:        echo "BuildFontCharset"
                    902: }
                    903: 
                    904: Symbol() {
                    905:        echo "/unitwidth $UNITWIDTH def"
                    906:        echo "/resolution $RESOLUTION def"
                    907:        echo "/charset ["
                    908:                SymbolCharset
                    909:        echo "] def"
                    910: 
                    911:        echo "ChangeMetrics"
                    912:        echo "/S SelectFont"
                    913:        echo "(orO) SetAscender"
                    914: 
                    915:        echo "(name $1\\\\n) Print"
                    916:        echo "(fontname $2\\\\n) Print"
                    917:        echo "/$1 NamedInPrologue"
                    918:        echo "(special\\\\n) Print"
                    919:        echo "(charset\\\\n) Print"
                    920:        echo "BuildFontCharset"
                    921: }
                    922: 
                    923: Special() {
                    924:        echo "/unitwidth $UNITWIDTH def"
                    925:        echo "/resolution $RESOLUTION def"
                    926:        echo "/charset ["
                    927:                SpecialCharset
                    928:        echo "] def"
                    929: 
                    930:        echo "ChangeMetrics"
                    931:        echo "/S1 SelectFont"
                    932: 
                    933:        echo "(# Times-Roman special font\\\\n) Print"
                    934:        echo "(name $1\\\\n) Print"
                    935:        echo "(fontname $2\\\\n) Print"
                    936:        echo "/$1 NamedInPrologue"
                    937:        echo "(special\\\\n) Print"
                    938:        echo "(charset\\\\n) Print"
                    939:        echo "BuildFontCharset"
                    940: }
                    941: 
                    942: #
                    943: # The DESC file doesn't have to be built on a printer. It's only here for
                    944: # consistency.
                    945: #
                    946: 
                    947: Description() {
                    948:        echo "/charset ["       # awk - so the stack doesn't overflow
                    949:                StandardCharset | awk '{print $1}'
                    950:                SymbolCharset | awk '{print $1}'
                    951:                SpecialCharset | awk '{print $1}'
                    952:        echo "] def"
                    953: 
                    954:        cat <<-//DESC
                    955:                (#Device Description - Latin1 character set
                    956: 
                    957:                PDL PostScript
                    958:                Encoding Latin1
                    959: 
                    960:                fonts 10 R I B BI CW H HI HB S1 S
                    961:                sizes 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
                    962:                23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 40 42 44 46
                    963:                48 50 52 54 56 58 60 64 68 72 78 84 90 96 100 105 110 115
                    964:                120 125 130 135 140 145 150 155 160 0
                    965:                res $RESOLUTION
                    966:                hor 1
                    967:                vert 1
                    968:                unitwidth $UNITWIDTH
                    969: 
                    970:                ) Print
                    971:        //DESC
                    972:        echo "(charset\\\\n) Print"
                    973:        echo "BuildDescCharset"
                    974:        echo "(\\\\n) Print"
                    975: }
                    976: 

unix.superglobalmegacorp.com

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