~ubuntu-branches/ubuntu/saucy/9base/saucy

« back to all changes in this revision

Viewing changes to troff/font/devutf/shell.lib

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2009-11-07 12:25:14 UTC
  • mfrom: (6.2.3 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091107122514-tcw4u4ha2w2xbbnn
* Adding maintainer homepage field to control.
* Marking maintainer homepage field to be also included in binary
  packages and changelog.
* Adding README.source.
* Merging upstream version 4.
* Adding sh4 to explicit architecture list (Closes: #545772).
* Moving maintainer homepage field from control to copyright.
* Updating README.source.
* Updating homepage field in control.
* Removing manpage patch, went upstream.
* Removing kfreebsd.patch, went upstream.
* Generalizing manpage moving in rules.
* Moving base directory from /usr/lib/9base to /usr/lib/plan9 for
  consistency reasons.
* Prefixing manpages with plan9 instead of 9base for consistency
  reasons.
* Bumping versioned build-depends on debhelper.
* Making internal mkMAP and sendcover scripts executable.
* Adding patch to adjust shebang in newly included troff commands.
* Updating lintian-overrides.
* Making buildd-depends on quilt versioned.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Shell library - for building devutf tables.
 
3
#
 
4
 
 
5
RESOLUTION=720
 
6
UNITWIDTH=10
 
7
 
 
8
OCTALESCAPES=${OCTALESCAPES:-160}       # <= code means add \0ddd names
 
9
DOWNLOADVECTOR=FALSE                    # TRUE can mean incomplete tables
 
10
 
 
11
#
 
12
# BuiltinTables returns command lines that generate PostScript programs
 
13
# for building a typesetter description file and font width tables for
 
14
# a relatively standard collection of fonts. Use awk to select a command
 
15
# line or modify an existing command to build a width table for a new
 
16
# font.
 
17
#
 
18
 
 
19
BuiltinTables() {
 
20
        cat <<-'//End of BuiltinTables'
 
21
                Proportional    R       Times-Roman
 
22
                Proportional    I       Times-Italic
 
23
                Proportional    B       Times-Bold
 
24
                Proportional    BI      Times-BoldItalic
 
25
                Proportional    AB      AvantGarde-Demi
 
26
                Proportional    AI      AvantGarde-BookOblique
 
27
                Proportional    AR      AvantGarde-Book
 
28
                Proportional    AX      AvantGarde-DemiOblique
 
29
                Proportional    H       Helvetica
 
30
                Proportional    HB      Helvetica-Bold
 
31
                Proportional    HI      Helvetica-Oblique
 
32
                Proportional    HX      Helvetica-BoldOblique
 
33
                Proportional    Hb      Helvetica-Narrow-Bold
 
34
                Proportional    Hi      Helvetica-Narrow-Oblique
 
35
                Proportional    Hr      Helvetica-Narrow
 
36
                Proportional    Hx      Helvetica-Narrow-BoldOblique
 
37
                Proportional    KB      Bookman-Demi
 
38
                Proportional    KI      Bookman-LightItalic
 
39
                Proportional    KR      Bookman-Light
 
40
                Proportional    KX      Bookman-DemiItalic
 
41
                Proportional    NB      NewCenturySchlbk-Bold
 
42
                Proportional    NI      NewCenturySchlbk-Italic
 
43
                Proportional    NR      NewCenturySchlbk-Roman
 
44
                Proportional    NX      NewCenturySchlbk-BoldItalic
 
45
                Proportional    PA      Palatino-Roman
 
46
                Proportional    PB      Palatino-Bold
 
47
                Proportional    PI      Palatino-Italic
 
48
                Proportional    PX      Palatino-BoldItalic
 
49
                Proportional    ZI      ZapfChancery-MediumItalic
 
50
                FixedWidth      C       Courier
 
51
                FixedWidth      CB      Courier-Bold
 
52
                FixedWidth      CI      Courier-Oblique
 
53
                FixedWidth      CO      Courier
 
54
                FixedWidth      CW      Courier
 
55
                FixedWidth      CX      Courier-BoldOblique
 
56
                Dingbats        ZD      ZapfDingbats
 
57
                Greek           GR      Symbol
 
58
                Symbol          S       Symbol
 
59
                Special         S1      Times-Roman
 
60
                Description     DESC    ---
 
61
        //End of BuiltinTables
 
62
}
 
63
 
 
64
#
 
65
# AllTables prints the complete list of builtin font names.
 
66
#
 
67
 
 
68
AllTables() {
 
69
        BuiltinTables | awk '{print $2}'
 
70
}
 
71
 
 
72
#
 
73
# Charset functions generate keyword/value pairs (as PostScript objects)
 
74
# that describe the character set available in a font. The keyword is a
 
75
# PostScript string that represents troff's name for the character. The
 
76
# value is usually the literal name (i.e. begins with a /) assigned to
 
77
# the character in the PostScript font. The value can also be an integer
 
78
# or a PostScript string. An integer value is used as an index in the
 
79
# current font's Encoding array. A string value is returned to the host
 
80
# unchanged when the entry for the character is constructed. Entries that
 
81
# have (") as their value are synonyms for the preceeding character.
 
82
#
 
83
# The 18 characters missing from ROM resident fonts on older printers are
 
84
# flagged with the PostScript comment "% missing".
 
85
#
 
86
 
 
87
StandardCharset() {
 
88
        cat <<-'//End of StandardCharset'
 
89
                (!)     /exclam
 
90
                (")     /quotedbl
 
91
                (dq)    (")                     % synonym
 
92
                (#)     /numbersign
 
93
                ($)     /dollar
 
94
                (%)     /percent
 
95
                (&)     /ampersand
 
96
                (')     /quoteright
 
97
                (\()    /parenleft
 
98
                (\))    /parenright
 
99
                (*)     /asterisk
 
100
                (+)     /plus
 
101
                (,)     /comma
 
102
                (-)     /hyphen                 % changed from minus by request
 
103
                (.)     /period
 
104
                (/)     /slash
 
105
                (0)     /zero
 
106
                (1)     /one
 
107
                (2)     /two
 
108
                (3)     /three
 
109
                (4)     /four
 
110
                (5)     /five
 
111
                (6)     /six
 
112
                (7)     /seven
 
113
                (8)     /eight
 
114
                (9)     /nine
 
115
                (:)     /colon
 
116
                (;)     /semicolon
 
117
                (<)     /less
 
118
                (=)     /equal
 
119
                (>)     /greater
 
120
                (?)     /question
 
121
                (@)     /at
 
122
                (A)     /A
 
123
                (B)     /B
 
124
                (C)     /C
 
125
                (D)     /D
 
126
                (E)     /E
 
127
                (F)     /F
 
128
                (G)     /G
 
129
                (H)     /H
 
130
                (I)     /I
 
131
                (J)     /J
 
132
                (K)     /K
 
133
                (L)     /L
 
134
                (M)     /M
 
135
                (N)     /N
 
136
                (O)     /O
 
137
                (P)     /P
 
138
                (Q)     /Q
 
139
                (R)     /R
 
140
                (S)     /S
 
141
                (T)     /T
 
142
                (U)     /U
 
143
                (V)     /V
 
144
                (W)     /W
 
145
                (X)     /X
 
146
                (Y)     /Y
 
147
                (Z)     /Z
 
148
                ([)     /bracketleft
 
149
                (\\)    /backslash
 
150
                (bs)    (")                     % synonym
 
151
                (])     /bracketright
 
152
                (^)     /asciicircum
 
153
                (_)     /underscore
 
154
                (`)     /quoteleft
 
155
                (a)     /a
 
156
                (b)     /b
 
157
                (c)     /c
 
158
                (d)     /d
 
159
                (e)     /e
 
160
                (f)     /f
 
161
                (g)     /g
 
162
                (h)     /h
 
163
                (i)     /i
 
164
                (j)     /j
 
165
                (k)     /k
 
166
                (l)     /l
 
167
                (m)     /m
 
168
                (n)     /n
 
169
                (o)     /o
 
170
                (p)     /p
 
171
                (q)     /q
 
172
                (r)     /r
 
173
                (s)     /s
 
174
                (t)     /t
 
175
                (u)     /u
 
176
                (v)     /v
 
177
                (w)     /w
 
178
                (x)     /x
 
179
                (y)     /y
 
180
                (z)     /z
 
181
                ({)     /braceleft
 
182
                (|)     /bar
 
183
                (})     /braceright
 
184
                (~)     /asciitilde
 
185
                (\\`)   /grave                  % devpost character
 
186
                (ga)    (")                     % synonym
 
187
                (!!)    /exclamdown
 
188
                (c|)    /cent
 
189
                (ct)    (")                     % devpost synonym
 
190
                (L-)    /sterling
 
191
                (ps)    (")                     % devpost synonym
 
192
                (xo)    /currency
 
193
                (cr)    (")                     % devpost synonym
 
194
                (Y-)    /yen
 
195
                (yn)    (")                     % devpost synonym
 
196
                (||)    /brokenbar              % missing
 
197
                (so)    /section
 
198
                (sc)    (")                     % devpost synonym
 
199
                ("")    /dieresis
 
200
                (:a)    (")                     % devpost synonym
 
201
                (co)    /copyright
 
202
                (a_)    /ordfeminine
 
203
                (<<)    /guillemotleft
 
204
                (-,)    /logicalnot
 
205
                (hy)    /hyphen
 
206
                (--)    /minus
 
207
                (ro)    /registered
 
208
                (rg)    (")                     % devpost synonym
 
209
                (-^)    /macron
 
210
                (-a)    (")                     % devpost synonym
 
211
                (0^)    /degree                 % missing
 
212
                (+-)    /plusminus              % missing
 
213
                (2^)    /twosuperior            % missing
 
214
                (3^)    /threesuperior          % missing
 
215
                (\\')   /acute
 
216
                (aa)    (")                     % devpost synonym
 
217
                (/u)    /mu                     % missing
 
218
                (P!)    /paragraph
 
219
                (pg)    (")                     % devpost synonym
 
220
                (.^)    /periodcentered
 
221
                (,,)    /cedilla
 
222
                (,a)    (")                     % devpost synonym
 
223
                (1^)    /onesuperior            % missing
 
224
                (o_)    /ordmasculine
 
225
                (>>)    /guillemotright
 
226
                (14)    /onequarter             % missing
 
227
                (12)    /onehalf                % missing
 
228
                (34)    /threequarters          % missing
 
229
                (??)    /questiondown
 
230
                (A`)    /Agrave
 
231
                (A')    /Aacute
 
232
                (A^)    /Acircumflex
 
233
                (A~)    /Atilde
 
234
                (A")    /Adieresis
 
235
                (A*)    /Aring
 
236
                (AE)    /AE
 
237
                (C,)    /Ccedilla
 
238
                (E`)    /Egrave
 
239
                (E')    /Eacute
 
240
                (E^)    /Ecircumflex
 
241
                (E")    /Edieresis
 
242
                (I`)    /Igrave
 
243
                (I')    /Iacute
 
244
                (I^)    /Icircumflex
 
245
                (I")    /Idieresis
 
246
                (D-)    /Eth                    % missing
 
247
                (N~)    /Ntilde
 
248
                (O`)    /Ograve
 
249
                (O')    /Oacute
 
250
                (O^)    /Ocircumflex
 
251
                (O~)    /Otilde
 
252
                (O")    /Odieresis
 
253
                (xx)    /multiply               % missing
 
254
                (O/)    /Oslash
 
255
                (U`)    /Ugrave
 
256
                (U')    /Uacute
 
257
                (U^)    /Ucircumflex
 
258
                (U")    /Udieresis
 
259
                (Y')    /Yacute                 % missing
 
260
                (TH)    /Thorn                  % missing
 
261
                (ss)    /germandbls
 
262
                (a`)    /agrave
 
263
                (a')    /aacute
 
264
                (a^)    /acircumflex
 
265
                (a~)    /atilde
 
266
                (a")    /adieresis
 
267
                (a*)    /aring
 
268
                (ae)    /ae
 
269
                (c,)    /ccedilla
 
270
                (e`)    /egrave
 
271
                (e')    /eacute
 
272
                (e^)    /ecircumflex
 
273
                (e")    /edieresis
 
274
                (i`)    /igrave
 
275
                (i')    /iacute
 
276
                (i^)    /icircumflex
 
277
                (i")    /idieresis
 
278
                (d-)    /eth                    % missing
 
279
                (n~)    /ntilde
 
280
                (o`)    /ograve
 
281
                (o')    /oacute
 
282
                (o^)    /ocircumflex
 
283
                (o~)    /otilde
 
284
                (o")    /odieresis
 
285
                (-:)    /divide                 % missing
 
286
                (o/)    /oslash
 
287
                (u`)    /ugrave
 
288
                (u')    /uacute
 
289
                (u^)    /ucircumflex
 
290
                (u")    /udieresis
 
291
                (y')    /yacute                 % missing
 
292
                (th)    /thorn                  % missing
 
293
                (y")    /ydieresis
 
294
                (^a)    /circumflex             % devpost accent
 
295
                (~a)    /tilde                  % devpost accent
 
296
                (Ua)    /breve                  % devpost accent
 
297
                (.a)    /dotaccent              % devpost accent
 
298
                (oa)    /ring                   % devpost accent
 
299
                ("a)    /hungarumlaut           % devpost accent
 
300
                (Ca)    /ogonek                 % devpost accent
 
301
                (va)    /caron                  % devpost accent
 
302
        //End of StandardCharset
 
303
}
 
304
 
 
305
#
 
306
# DingbatsCharset guarantees changes in StandardCharset don't show up in ZD.
 
307
#
 
308
 
 
309
DingbatsCharset() {
 
310
        cat <<-'//End of DingbatsCharset'
 
311
                (!)     /exclam
 
312
                (")     /quotedbl
 
313
                (#)     /numbersign
 
314
                ($)     /dollar
 
315
                (%)     /percent
 
316
                (&)     /ampersand
 
317
                (')     /quoteright
 
318
                (\()    /parenleft
 
319
                (\))    /parenright
 
320
                (*)     /asterisk
 
321
                (+)     /plus
 
322
                (,)     /comma
 
323
                (-)     /minus          % also hyphen in devpost
 
324
                (.)     /period
 
325
                (/)     /slash
 
326
                (0)     /zero
 
327
                (1)     /one
 
328
                (2)     /two
 
329
                (3)     /three
 
330
                (4)     /four
 
331
                (5)     /five
 
332
                (6)     /six
 
333
                (7)     /seven
 
334
                (8)     /eight
 
335
                (9)     /nine
 
336
                (:)     /colon
 
337
                (;)     /semicolon
 
338
                (<)     /less
 
339
                (=)     /equal
 
340
                (>)     /greater
 
341
                (?)     /question
 
342
                (@)     /at
 
343
                (A)     /A
 
344
                (B)     /B
 
345
                (C)     /C
 
346
                (D)     /D
 
347
                (E)     /E
 
348
                (F)     /F
 
349
                (G)     /G
 
350
                (H)     /H
 
351
                (I)     /I
 
352
                (J)     /J
 
353
                (K)     /K
 
354
                (L)     /L
 
355
                (M)     /M
 
356
                (N)     /N
 
357
                (O)     /O
 
358
                (P)     /P
 
359
                (Q)     /Q
 
360
                (R)     /R
 
361
                (S)     /S
 
362
                (T)     /T
 
363
                (U)     /U
 
364
                (V)     /V
 
365
                (W)     /W
 
366
                (X)     /X
 
367
                (Y)     /Y
 
368
                (Z)     /Z
 
369
                ([)     /bracketleft
 
370
                (\\)    /backslash
 
371
                (])     /bracketright
 
372
                (^)     /asciicircum
 
373
                (_)     /underscore
 
374
                (`)     /quoteleft
 
375
                (a)     /a
 
376
                (b)     /b
 
377
                (c)     /c
 
378
                (d)     /d
 
379
                (e)     /e
 
380
                (f)     /f
 
381
                (g)     /g
 
382
                (h)     /h
 
383
                (i)     /i
 
384
                (j)     /j
 
385
                (k)     /k
 
386
                (l)     /l
 
387
                (m)     /m
 
388
                (n)     /n
 
389
                (o)     /o
 
390
                (p)     /p
 
391
                (q)     /q
 
392
                (r)     /r
 
393
                (s)     /s
 
394
                (t)     /t
 
395
                (u)     /u
 
396
                (v)     /v
 
397
                (w)     /w
 
398
                (x)     /x
 
399
                (y)     /y
 
400
                (z)     /z
 
401
                ({)     /braceleft
 
402
                (|)     /bar
 
403
                (})     /braceright
 
404
                (~)     /asciitilde
 
405
                (\\`)   /grave                  % devpost character
 
406
                (!!)    /exclamdown
 
407
                (c|)    /cent
 
408
                (L-)    /sterling
 
409
                (xo)    /currency
 
410
                (Y-)    /yen
 
411
                (||)    /brokenbar              % missing
 
412
                (so)    /section
 
413
                ("")    /dieresis
 
414
                (co)    /copyright
 
415
                (a_)    /ordfeminine
 
416
                (<<)    /guillemotleft
 
417
                (-,)    /logicalnot
 
418
                (hy)    /hyphen
 
419
                (ro)    /registered
 
420
                (-^)    /macron
 
421
                (0^)    /degree                 % missing
 
422
                (+-)    /plusminus              % missing
 
423
                (2^)    /twosuperior            % missing
 
424
                (3^)    /threesuperior          % missing
 
425
                (\\')   /acute
 
426
                (/u)    /mu                     % missing
 
427
                (P!)    /paragraph
 
428
                (.^)    /periodcentered
 
429
                (,,)    /cedilla
 
430
                (1^)    /onesuperior            % missing
 
431
                (o_)    /ordmasculine
 
432
                (>>)    /guillemotright
 
433
                (14)    /onequarter             % missing
 
434
                (12)    /onehalf                % missing
 
435
                (34)    /threequarters          % missing
 
436
                (??)    /questiondown
 
437
                (A`)    /Agrave
 
438
                (A')    /Aacute
 
439
                (A^)    /Acircumflex
 
440
                (A~)    /Atilde
 
441
                (A")    /Adieresis
 
442
                (A*)    /Aring
 
443
                (AE)    /AE
 
444
                (C,)    /Ccedilla
 
445
                (E`)    /Egrave
 
446
                (E')    /Eacute
 
447
                (E^)    /Ecircumflex
 
448
                (E")    /Edieresis
 
449
                (I`)    /Igrave
 
450
                (I')    /Iacute
 
451
                (I^)    /Icircumflex
 
452
                (I")    /Idieresis
 
453
                (D-)    /Eth                    % missing
 
454
                (N~)    /Ntilde
 
455
                (O`)    /Ograve
 
456
                (O')    /Oacute
 
457
                (O^)    /Ocircumflex
 
458
                (O~)    /Otilde
 
459
                (O")    /Odieresis
 
460
                (xx)    /multiply               % missing
 
461
                (O/)    /Oslash
 
462
                (U`)    /Ugrave
 
463
                (U')    /Uacute
 
464
                (U^)    /Ucircumflex
 
465
                (U")    /Udieresis
 
466
                (Y')    /Yacute                 % missing
 
467
                (TH)    /Thorn                  % missing
 
468
                (ss)    /germandbls
 
469
                (a`)    /agrave
 
470
                (a')    /aacute
 
471
                (a^)    /acircumflex
 
472
                (a~)    /atilde
 
473
                (a")    /adieresis
 
474
                (a*)    /aring
 
475
                (ae)    /ae
 
476
                (c,)    /ccedilla
 
477
                (e`)    /egrave
 
478
                (e')    /eacute
 
479
                (e^)    /ecircumflex
 
480
                (e")    /edieresis
 
481
                (i`)    /igrave
 
482
                (i')    /iacute
 
483
                (i^)    /icircumflex
 
484
                (i")    /idieresis
 
485
                (d-)    /eth                    % missing
 
486
                (n~)    /ntilde
 
487
                (o`)    /ograve
 
488
                (o')    /oacute
 
489
                (o^)    /ocircumflex
 
490
                (o~)    /otilde
 
491
                (o")    /odieresis
 
492
                (-:)    /divide                 % missing
 
493
                (o/)    /oslash
 
494
                (u`)    /ugrave
 
495
                (u')    /uacute
 
496
                (u^)    /ucircumflex
 
497
                (u")    /udieresis
 
498
                (y')    /yacute                 % missing
 
499
                (th)    /thorn                  % missing
 
500
                (y")    /ydieresis
 
501
        //End of DingbatsCharset
 
502
}
 
503
 
 
504
SymbolCharset() {
 
505
        cat <<-'//End of SymbolCharset'
 
506
                (---)           /exclam
 
507
                (fa)            /universal
 
508
                (---)           /numbersign
 
509
                (te)            /existential
 
510
                (---)           /percent
 
511
                (---)           /ampersand
 
512
                (st)            /suchthat
 
513
                (---)           /parenleft
 
514
                (---)           /parenright
 
515
                (**)            /asteriskmath
 
516
                (pl)            /plus
 
517
                (---)           /comma
 
518
                (mi)            /minus
 
519
                (---)           /period
 
520
                (sl)            /slash
 
521
                (---)           /zero
 
522
                (---)           /one
 
523
                (---)           /two
 
524
                (---)           /three
 
525
                (---)           /four
 
526
                (---)           /five
 
527
                (---)           /six
 
528
                (---)           /seven
 
529
                (---)           /eight
 
530
                (---)           /nine
 
531
                (---)           /colon
 
532
                (---)           /semicolon
 
533
                (<)             /less
 
534
                (eq)            /equal
 
535
                (>)             /greater
 
536
                (---)           /question
 
537
                (cg)            /congruent
 
538
                (*A)            /Alpha
 
539
                (\244x)         (")
 
540
                (*B)            /Beta
 
541
                (\244y)         (")
 
542
                (*X)            /Chi
 
543
                (\244\257)      (")
 
544
                (*D)            /Delta
 
545
                (\244{)         (")
 
546
                (*E)            /Epsilon
 
547
                (\244|)         (")
 
548
                (*F)            /Phi
 
549
                (\244\256)      (")
 
550
                (*G)            /Gamma
 
551
                (\244z)         (")
 
552
                (*Y)            /Eta
 
553
                (\244~)         (")
 
554
                (*I)            /Iota
 
555
                (\244\241)      (")
 
556
                (---)           /theta1
 
557
                (\244\331)      (")
 
558
                (*K)            /Kappa
 
559
                (\244\242)      (")
 
560
                (*L)            /Lambda
 
561
                (\244\243)      (")
 
562
                (*M)            /Mu
 
563
                (\244\244)      (")
 
564
                (*N)            /Nu
 
565
                (\244\245)      (")
 
566
                (*O)            /Omicron
 
567
                (\244\247)      (")
 
568
                (*P)            /Pi
 
569
                (\244\250)      (")
 
570
                (*H)            /Theta
 
571
                (\244\240)      (")
 
572
                (*R)            /Rho
 
573
                (\244\251)      (")
 
574
                (*S)            /Sigma
 
575
                (\244\253)      (")
 
576
                (*T)            /Tau
 
577
                (\244\254)      (")
 
578
                (*U)            /Upsilon
 
579
                (\244\255)      (")
 
580
                (ts)            /sigma1
 
581
                (\244\312)      (")
 
582
                (*W)            /Omega
 
583
                (\244\261)      (")
 
584
                (*C)            /Xi
 
585
                (\244\246)      (")
 
586
                (*Q)            /Psi
 
587
                (\244\260)      (")
 
588
                (*Z)            /Zeta
 
589
                (\244})         (")
 
590
                (---)           /bracketleft
 
591
                (tf)            /therefore
 
592
                (---)           /bracketright
 
593
                (pp)            /perpendicular
 
594
                (ul)            /underscore
 
595
                (_)             (")                     % synonym
 
596
                (rn)            /radicalex
 
597
                (*a)            /alpha
 
598
                (\244\271)      (")
 
599
                (*b)            /beta
 
600
                (\244\272)      (")
 
601
                (*x)            /chi
 
602
                (\244\317)      (")
 
603
                (*d)            /delta
 
604
                (\244\274)      (")
 
605
                (*e)            /epsilon
 
606
                (\244\275)      (")
 
607
                (*f)            /phi
 
608
                (\244\316)      (")
 
609
                (*g)            /gamma
 
610
                (\244\273)      (")
 
611
                (*y)            /eta
 
612
                (\244\277)      (")
 
613
                (*i)            /iota
 
614
                (\244\301)      (")
 
615
                (---)           /phi1
 
616
                (\244\335)      (")
 
617
                (*k)            /kappa
 
618
                (\244\302)      (")
 
619
                (*l)            /lambda
 
620
                (\244\303)      (")
 
621
                (*m)            /mu
 
622
                (\244\304)      (")
 
623
                (*n)            /nu
 
624
                (\244\305)      (")
 
625
                (*o)            /omicron
 
626
                (\244\307)      (")
 
627
                (*p)            /pi
 
628
                (\244\310)      (")
 
629
                (*h)            /theta
 
630
                (\244\300)      (")
 
631
                (*r)            /rho
 
632
                (\244\311)      (")
 
633
                (*s)            /sigma
 
634
                (\244\313)      (")
 
635
                (*t)            /tau
 
636
                (\244\314)      (")
 
637
                (*u)            /upsilon
 
638
                (\244\315)      (")
 
639
                (---)           /omega1
 
640
                (\244\336)      (")
 
641
                (*w)            /omega
 
642
                (\244\321)      (")
 
643
                (*c)            /xi
 
644
                (\244\306)      (")
 
645
                (*q)            /psi
 
646
                (\244\320)      (")
 
647
                (*z)            /zeta
 
648
                (\244\276)      (")
 
649
                (---)           /braceleft
 
650
                (or)            /bar
 
651
                (---)           /braceright
 
652
                (ap)            /similar
 
653
                (---)           /Upsilon1
 
654
                (fm)            /minute
 
655
                (<=)            /lessequal
 
656
                (fr)            /fraction               % devpost character
 
657
                (if)            /infinity
 
658
                (fn)            /florin                 % devpost character
 
659
                (---)           /club
 
660
                (---)           /diamond
 
661
                (---)           /heart
 
662
                (---)           /spade
 
663
                (ab)            /arrowboth
 
664
                (<-)            /arrowleft
 
665
                (ua)            /arrowup
 
666
                (->)            /arrowright
 
667
                (da)            /arrowdown
 
668
                (de)            /degree
 
669
                (+-)            /plusminus
 
670
                (---)           /second
 
671
                (>=)            /greaterequal
 
672
                (mu)            /multiply
 
673
                (pt)            /proportional
 
674
                (pd)            /partialdiff
 
675
                (bu)            /bullet
 
676
                (di)            /divide
 
677
                (!=)            /notequal
 
678
                (==)            /equivalence
 
679
                (~~)            /approxequal
 
680
                (el)            /ellipsis
 
681
                (av)            /arrowvertex
 
682
                (ah)            /arrowhorizex
 
683
                (CR)            /carriagereturn
 
684
                (af)            /aleph
 
685
                (If)            /Ifraktur
 
686
                (Rf)            /Rfraktur
 
687
                (ws)            /weierstrass
 
688
                (Ox)            /circlemultiply
 
689
                (O+)            /circleplus
 
690
                (es)            /emptyset
 
691
                (ca)            /intersection
 
692
                (cu)            /union
 
693
                (sp)            /propersuperset
 
694
                (ip)            /reflexsuperset
 
695
                (!b)            /notsubset
 
696
                (sb)            /propersubset
 
697
                (ib)            /reflexsubset
 
698
                (mo)            /element
 
699
                (!m)            /notelement
 
700
                (an)            /angle
 
701
                (gr)            /gradient
 
702
                (rg)            /registerserif
 
703
                (co)            /copyrightserif
 
704
                (tm)            /trademarkserif
 
705
                (---)           /product
 
706
                (sr)            /radical
 
707
                (c.)            /dotmath
 
708
                (no)            /logicalnot
 
709
                (l&)            /logicaland
 
710
                (l|)            /logicalor
 
711
                (---)           /arrowdblboth
 
712
                (---)           /arrowdblleft
 
713
                (---)           /arrowdblup
 
714
                (---)           /arrowdblright
 
715
                (---)           /arrowdbldown
 
716
                (lz)            /lozenge
 
717
                (b<)            /angleleft
 
718
                (RG)            /registersans
 
719
                (CO)            /copyrightsans
 
720
                (TM)            /trademarksans
 
721
                (---)           /summation
 
722
                (LT)            /parenlefttp
 
723
                (br)            /parenleftex
 
724
                (LX)            (")                     % synonym
 
725
                (LB)            /parenleftbt
 
726
                (lc)            /bracketlefttp
 
727
                (lx)            /bracketleftex
 
728
                (lf)            /bracketleftbt
 
729
                (lt)            /bracelefttp
 
730
                (lk)            /braceleftmid
 
731
                (lb)            /braceleftbt
 
732
                (bv)            /braceex
 
733
                (|)             (")                     % synonym
 
734
                (b>)            /angleright
 
735
                (is)            /integral
 
736
                (---)           /integraltp
 
737
                (---)           /integralex
 
738
                (---)           /integralbt
 
739
                (RT)            /parenrighttp
 
740
                (RX)            /parenrightex
 
741
                (RB)            /parenrightbt
 
742
                (rc)            /bracketrighttp
 
743
                (rx)            /bracketrightex
 
744
                (rf)            /bracketrightbt
 
745
                (rt)            /bracerighttp
 
746
                (rk)            /bracerightmid
 
747
                (rb)            /bracerightbt
 
748
                (~=)            (55     0       1)      % charlib
 
749
        //End of SymbolCharset
 
750
}
 
751
 
 
752
SpecialCharset() {
 
753
        cat <<-'//End of SpecialCharset'
 
754
                (ru)    /underscore
 
755
                ('')    /quotedblright          % devpost character
 
756
                (``)    /quotedblleft           % devpost character
 
757
                (dg)    /dagger                 % devpost character
 
758
                (dd)    /daggerdbl              % devpost character
 
759
                (en)    /endash                 % devpost character
 
760
                (\\-)   (")                     % synonym
 
761
                (em)    /emdash
 
762
%               (ff)    (60     2       1)      % charlib
 
763
%               (Fi)    (84     2       1)      % charlib
 
764
%               (Fl)    (84     2       1)      % charlib
 
765
                (14)    (75     2       1)      % charlib
 
766
                (12)    (75     2       1)      % charlib
 
767
                (34)    (75     2       1)      % charlib
 
768
                (bx)    (50     2       1)      % charlib
 
769
                (ob)    (38     2       1)      % charlib
 
770
                (ci)    (75     0       1)      % charlib
 
771
                (sq)    (50     2       1)      % charlib
 
772
                (Sl)    (50     2       1)      % charlib
 
773
                (L1)    (110    1       1)      % charlib
 
774
                (LA)    (110    1       1)      % charlib
 
775
                (LV)    (110    3       1)      % charlib
 
776
                (LH)    (210    1       1)      % charlib
 
777
                (lh)    (100    0       1)      % charlib
 
778
                (rh)    (100    0       1)      % charlib
 
779
                (lH)    (100    0       1)      % charlib
 
780
                (rH)    (100    0       1)      % charlib
 
781
                (PC)    (220    2       1)      % charlib
 
782
                (DG)    (185    2       1)      % charlib
 
783
        //End of SpecialCharset
 
784
}
 
785
 
 
786
#
 
787
# Latin1 ensures a font uses the ISOLatin1Encoding vector, although only
 
788
# text fonts should be re-encoded. Downloading the Encoding vector doesn't
 
789
# often make sense. No ISOLatin1Encoding array likely means ROM based fonts
 
790
# on your printer are incomplete. Type 1 fonts with a full Latin1 character
 
791
# set appeared sometime after Version 50.0.
 
792
#
 
793
 
 
794
Latin1() {
 
795
        if [ "$DOWNLOADVECTOR" = TRUE ]; then
 
796
                cat <<-'//End of ISOLatin1Encoding'
 
797
                        /ISOLatin1Encoding [
 
798
                                /.notdef
 
799
                                /.notdef
 
800
                                /.notdef
 
801
                                /.notdef
 
802
                                /.notdef
 
803
                                /.notdef
 
804
                                /.notdef
 
805
                                /.notdef
 
806
                                /.notdef
 
807
                                /.notdef
 
808
                                /.notdef
 
809
                                /.notdef
 
810
                                /.notdef
 
811
                                /.notdef
 
812
                                /.notdef
 
813
                                /.notdef
 
814
                                /.notdef
 
815
                                /.notdef
 
816
                                /.notdef
 
817
                                /.notdef
 
818
                                /.notdef
 
819
                                /.notdef
 
820
                                /.notdef
 
821
                                /.notdef
 
822
                                /.notdef
 
823
                                /.notdef
 
824
                                /.notdef
 
825
                                /.notdef
 
826
                                /.notdef
 
827
                                /.notdef
 
828
                                /.notdef
 
829
                                /.notdef
 
830
                                /space
 
831
                                /exclam
 
832
                                /quotedbl
 
833
                                /numbersign
 
834
                                /dollar
 
835
                                /percent
 
836
                                /ampersand
 
837
                                /quoteright
 
838
                                /parenleft
 
839
                                /parenright
 
840
                                /asterisk
 
841
                                /plus
 
842
                                /comma
 
843
                                /minus
 
844
                                /period
 
845
                                /slash
 
846
                                /zero
 
847
                                /one
 
848
                                /two
 
849
                                /three
 
850
                                /four
 
851
                                /five
 
852
                                /six
 
853
                                /seven
 
854
                                /eight
 
855
                                /nine
 
856
                                /colon
 
857
                                /semicolon
 
858
                                /less
 
859
                                /equal
 
860
                                /greater
 
861
                                /question
 
862
                                /at
 
863
                                /A
 
864
                                /B
 
865
                                /C
 
866
                                /D
 
867
                                /E
 
868
                                /F
 
869
                                /G
 
870
                                /H
 
871
                                /I
 
872
                                /J
 
873
                                /K
 
874
                                /L
 
875
                                /M
 
876
                                /N
 
877
                                /O
 
878
                                /P
 
879
                                /Q
 
880
                                /R
 
881
                                /S
 
882
                                /T
 
883
                                /U
 
884
                                /V
 
885
                                /W
 
886
                                /X
 
887
                                /Y
 
888
                                /Z
 
889
                                /bracketleft
 
890
                                /backslash
 
891
                                /bracketright
 
892
                                /asciicircum
 
893
                                /underscore
 
894
                                /quoteleft
 
895
                                /a
 
896
                                /b
 
897
                                /c
 
898
                                /d
 
899
                                /e
 
900
                                /f
 
901
                                /g
 
902
                                /h
 
903
                                /i
 
904
                                /j
 
905
                                /k
 
906
                                /l
 
907
                                /m
 
908
                                /n
 
909
                                /o
 
910
                                /p
 
911
                                /q
 
912
                                /r
 
913
                                /s
 
914
                                /t
 
915
                                /u
 
916
                                /v
 
917
                                /w
 
918
                                /x
 
919
                                /y
 
920
                                /z
 
921
                                /braceleft
 
922
                                /bar
 
923
                                /braceright
 
924
                                /asciitilde
 
925
                                /.notdef
 
926
                                /.notdef
 
927
                                /.notdef
 
928
                                /.notdef
 
929
                                /.notdef
 
930
                                /.notdef
 
931
                                /.notdef
 
932
                                /.notdef
 
933
                                /.notdef
 
934
                                /.notdef
 
935
                                /.notdef
 
936
                                /.notdef
 
937
                                /.notdef
 
938
                                /.notdef
 
939
                                /.notdef
 
940
                                /.notdef
 
941
                                /.notdef
 
942
                                /dotlessi
 
943
                                /grave
 
944
                                /acute
 
945
                                /circumflex
 
946
                                /tilde
 
947
                                /macron
 
948
                                /breve
 
949
                                /dotaccent
 
950
                                /dieresis
 
951
                                /.notdef
 
952
                                /ring
 
953
                                /cedilla
 
954
                                /.notdef
 
955
                                /hungarumlaut
 
956
                                /ogonek
 
957
                                /caron
 
958
                                /space
 
959
                                /exclamdown
 
960
                                /cent
 
961
                                /sterling
 
962
                                /currency
 
963
                                /yen
 
964
                                /brokenbar
 
965
                                /section
 
966
                                /dieresis
 
967
                                /copyright
 
968
                                /ordfeminine
 
969
                                /guillemotleft
 
970
                                /logicalnot
 
971
                                /hyphen
 
972
                                /registered
 
973
                                /macron
 
974
                                /degree
 
975
                                /plusminus
 
976
                                /twosuperior
 
977
                                /threesuperior
 
978
                                /acute
 
979
                                /mu
 
980
                                /paragraph
 
981
                                /periodcentered
 
982
                                /cedilla
 
983
                                /onesuperior
 
984
                                /ordmasculine
 
985
                                /guillemotright
 
986
                                /onequarter
 
987
                                /onehalf
 
988
                                /threequarters
 
989
                                /questiondown
 
990
                                /Agrave
 
991
                                /Aacute
 
992
                                /Acircumflex
 
993
                                /Atilde
 
994
                                /Adieresis
 
995
                                /Aring
 
996
                                /AE
 
997
                                /Ccedilla
 
998
                                /Egrave
 
999
                                /Eacute
 
1000
                                /Ecircumflex
 
1001
                                /Edieresis
 
1002
                                /Igrave
 
1003
                                /Iacute
 
1004
                                /Icircumflex
 
1005
                                /Idieresis
 
1006
                                /Eth
 
1007
                                /Ntilde
 
1008
                                /Ograve
 
1009
                                /Oacute
 
1010
                                /Ocircumflex
 
1011
                                /Otilde
 
1012
                                /Odieresis
 
1013
                                /multiply
 
1014
                                /Oslash
 
1015
                                /Ugrave
 
1016
                                /Uacute
 
1017
                                /Ucircumflex
 
1018
                                /Udieresis
 
1019
                                /Yacute
 
1020
                                /Thorn
 
1021
                                /germandbls
 
1022
                                /agrave
 
1023
                                /aacute
 
1024
                                /acircumflex
 
1025
                                /atilde
 
1026
                                /adieresis
 
1027
                                /aring
 
1028
                                /ae
 
1029
                                /ccedilla
 
1030
                                /egrave
 
1031
                                /eacute
 
1032
                                /ecircumflex
 
1033
                                /edieresis
 
1034
                                /igrave
 
1035
                                /iacute
 
1036
                                /icircumflex
 
1037
                                /idieresis
 
1038
                                /eth
 
1039
                                /ntilde
 
1040
                                /ograve
 
1041
                                /oacute
 
1042
                                /ocircumflex
 
1043
                                /otilde
 
1044
                                /odieresis
 
1045
                                /divide
 
1046
                                /oslash
 
1047
                                /ugrave
 
1048
                                /uacute
 
1049
                                /ucircumflex
 
1050
                                /udieresis
 
1051
                                /yacute
 
1052
                                /thorn
 
1053
                                /ydieresis
 
1054
                        ] def
 
1055
                //End of ISOLatin1Encoding
 
1056
        fi
 
1057
 
 
1058
        echo "ISOLatin1Encoding /$1 ReEncode"
 
1059
}
 
1060
 
 
1061
#
 
1062
# Generating functions output PostScript programs that build font width
 
1063
# tables or a typesetter description file. Send the program to a printer
 
1064
# and the complete table will come back on the serial port. All write on
 
1065
# stdout and assume the prologue and other required PostScript files are
 
1066
# all available.
 
1067
#
 
1068
 
 
1069
Proportional() {
 
1070
        echo "/unitwidth $UNITWIDTH def"
 
1071
        echo "/resolution $RESOLUTION def"
 
1072
        echo "/octalescapes $OCTALESCAPES def"
 
1073
        echo "/charset ["
 
1074
                # Get <>_ and | from S. Use accents for ascii ^ and ~.
 
1075
                StandardCharset | awk '
 
1076
                        $1 == "(<)" && $2 == "/less" {$1 = "(---)"}
 
1077
                        $1 == "(>)" && $2 == "/greater" {$1 = "(---)"}
 
1078
                        $1 == "(_)" && $2 == "/underscore" {$1 = "(---)"}
 
1079
                        $1 == "(|)" && $2 == "/bar" {$1 = "(---)"}
 
1080
                        $1 == "(^)" && $2 == "/asciicircum" {
 
1081
                                printf "(^)\t/circumflex\n"
 
1082
                                $1 = "(---)"
 
1083
                        }
 
1084
                        $1 == "(~)" && $2 == "/asciitilde" {
 
1085
                                printf "(~)\t/tilde\n"
 
1086
                                $1 = "(---)"
 
1087
                        }
 
1088
                        {printf "%s\t%s\n", $1, $2}
 
1089
                '
 
1090
        echo "] def"
 
1091
 
 
1092
        Latin1 $2
 
1093
        echo "/$2 SelectFont"
 
1094
        echo "(opO) SetAscender"
 
1095
 
 
1096
        echo "(name $1\\\\n) Print"
 
1097
        echo "(fontname $2\\\\n) Print"
 
1098
        echo "/$1 NamedInPrologue"
 
1099
        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
 
1100
        echo "(charset\\\\n) Print"
 
1101
        echo "BuildFontCharset"
 
1102
}
 
1103
 
 
1104
FixedWidth() {
 
1105
        echo "/unitwidth $UNITWIDTH def"
 
1106
        echo "/resolution $RESOLUTION def"
 
1107
        echo "/octalescapes $OCTALESCAPES def"
 
1108
        echo "/charset ["
 
1109
                StandardCharset
 
1110
        echo "] def"
 
1111
 
 
1112
        Latin1 $2
 
1113
        echo "/$2 SelectFont"
 
1114
        echo "(opO) SetAscender"
 
1115
 
 
1116
        echo "(name $1\\\\n) Print"
 
1117
        echo "(fontname $2\\\\n) Print"
 
1118
        echo "/$1 NamedInPrologue"
 
1119
        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
 
1120
        echo "(charset\\\\n) Print"
 
1121
        echo "BuildFontCharset"
 
1122
}
 
1123
 
 
1124
Dingbats() {
 
1125
        echo "/unitwidth $UNITWIDTH def"
 
1126
        echo "/resolution $RESOLUTION def"
 
1127
        echo "/octalescapes $OCTALESCAPES def"
 
1128
        echo "/charset ["
 
1129
                DingbatsCharset | awk '$1 != "(---)" && $2 ~ /^\/[a-zA-Z]/ {
 
1130
                        printf "%s\tISOLatin1Encoding %s GetCode\n", $1, $2
 
1131
                }'
 
1132
        echo "] def"
 
1133
 
 
1134
        echo "/$2 SelectFont"
 
1135
        echo "(   ) SetAscender"
 
1136
 
 
1137
        echo "(name $1\\\\n) Print"
 
1138
        echo "(fontname $2\\\\n) Print"
 
1139
        echo "/$1 NamedInPrologue"
 
1140
        echo "(charset\\\\n) Print"
 
1141
        echo "BuildFontCharset"
 
1142
}
 
1143
 
 
1144
Greek() {
 
1145
        echo "/unitwidth $UNITWIDTH def"
 
1146
        echo "/resolution $RESOLUTION def"
 
1147
        echo "/charset ["
 
1148
                SymbolCharset | awk '
 
1149
                        BEGIN {hit = -1}
 
1150
                        $1 ~ /\(\*[a-zA-Z]\)/ {print; hit = NR}
 
1151
                        $2 == "(\")" && hit == NR-1 {print; hit = NR}
 
1152
                '
 
1153
        echo "] def"
 
1154
 
 
1155
        echo "/$2 SelectFont"
 
1156
        echo "(orO) SetAscender"
 
1157
 
 
1158
        echo "(name $1\\\\n) Print"
 
1159
        echo "(fontname $2\\\\n) Print"
 
1160
        echo "/$1 NamedInPrologue"
 
1161
        echo "(spacewidth ) Print 32 GetWidth Print (\n) Print"
 
1162
        echo "(charset\\\\n) Print"
 
1163
        echo "BuildFontCharset"
 
1164
}
 
1165
 
 
1166
Symbol() {
 
1167
        echo "/unitwidth $UNITWIDTH def"
 
1168
        echo "/resolution $RESOLUTION def"
 
1169
        echo "/charset ["
 
1170
                SymbolCharset
 
1171
        echo "] def"
 
1172
 
 
1173
        echo "ChangeMetrics"
 
1174
        echo "/S SelectFont"
 
1175
        echo "(orO) SetAscender"
 
1176
 
 
1177
        echo "(name $1\\\\n) Print"
 
1178
        echo "(fontname $2\\\\n) Print"
 
1179
        echo "/$1 NamedInPrologue"
 
1180
        echo "(special\\\\n) Print"
 
1181
        echo "(charset\\\\n) Print"
 
1182
        echo "BuildFontCharset"
 
1183
}
 
1184
 
 
1185
Special() {
 
1186
        echo "/unitwidth $UNITWIDTH def"
 
1187
        echo "/resolution $RESOLUTION def"
 
1188
        echo "/charset ["
 
1189
                SpecialCharset
 
1190
        echo "] def"
 
1191
 
 
1192
        echo "ChangeMetrics"
 
1193
        echo "/S1 SelectFont"
 
1194
 
 
1195
        echo "(# Times-Roman special font\\\\n) Print"
 
1196
        echo "(name $1\\\\n) Print"
 
1197
        echo "(fontname $2\\\\n) Print"
 
1198
        echo "/$1 NamedInPrologue"
 
1199
        echo "(special\\\\n) Print"
 
1200
        echo "(charset\\\\n) Print"
 
1201
        echo "BuildFontCharset"
 
1202
}
 
1203
 
 
1204
#
 
1205
# The DESC file doesn't have to be built on a printer. It's only here for
 
1206
# consistency.
 
1207
#
 
1208
 
 
1209
Description() {
 
1210
        echo "/charset ["       # awk - so the stack doesn't overflow
 
1211
                StandardCharset | awk '$1 !~ /\(\\[0-9]/ {print $1}'
 
1212
                SymbolCharset | awk '$1 !~ /\(\\[0-9]/ {print $1}'
 
1213
                SpecialCharset | awk '$1 !~ /\(\\[0-9]/ {print $1}'
 
1214
        echo "] def"
 
1215
 
 
1216
        cat <<-//DESC
 
1217
                (#Device Description - utf character set
 
1218
 
 
1219
                PDL PostScript
 
1220
                Encoding Latin1
 
1221
 
 
1222
                fonts 10 R I B BI CW H HI HB S1 S
 
1223
                sizes 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
 
1224
                23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 40 42 44 46
 
1225
                48 50 52 54 56 58 60 64 68 72 78 84 90 96 100 105 110 115
 
1226
                120 125 130 135 140 145 150 155 160 0
 
1227
                res $RESOLUTION
 
1228
                hor 1
 
1229
                vert 1
 
1230
                unitwidth $UNITWIDTH
 
1231
 
 
1232
                ) Print
 
1233
        //DESC
 
1234
        echo "(charset\\\\n) Print"
 
1235
        echo "BuildDescCharset"
 
1236
        echo "(\\\\n) Print"
 
1237
}
 
1238