1238 lines
22 KiB
Text
1238 lines
22 KiB
Text
#
|
|
# 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"
|
|
}
|
|
|