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