1 /* ---------------------------------------------------------------------------
2 
3    encvec.c
4 
5    Notes:
6 
7       This file contains routines which generate each of the PostScript
8       enccoding vectors necessary to support the various languages.
9 
10    Revision history:
11 
12 	4.10.0
13 		B.Marr		2006-07-19
14 
15 		Created.
16 
17 */
18 
19 /* ---------------------------------------------------------------------------
20 
21    Header Files
22 
23 */
24 
25 #include <stdio.h>
26 
27 /* ---------------------------------------------------------------------------
28 
29    Type, Struct, & Enum Declarations
30 
31 */
32 
33 /* ---------------------------------------------------------------------------
34 
35    Constant Declarations
36 
37 */
38 
39 /* ---------------------------------------------------------------------------
40 
41    Macro Definitions
42 
43 */
44 
45 /* ---------------------------------------------------------------------------
46 
47    Data Declarations (including externals)
48 
49 */
50 
51 /* ---------------------------------------------------------------------------
52 
53    External Routine References & Function Prototypes
54 
55 */
56 
57 /* ---------------------------------------------------------------------------
58 
59    Misc Notes:
60 
61       Here are the mappings for the lower-order characters, which are common
62       among the following vector encodings and will therefore not be output as
63       part of those encodings...
64 
65          - ISO 8859-2  (Latin2)
66          - ISO 8859-3  (Latin3)
67          - ISO 8859-4  (Latin4)
68          - ISO 8859-5  (Cyrillic)
69          - ISO 8859-7  (Greek)
70          - ISO 8859-9  (Latin5)
71          - ISO 8859-10 (Latin6)
72          - ISO 8859-11 (Thai)
73          - ISO 8859-13 (Latin7)
74          - ISO 8859-14 (Latin8)
75          - ISO 8859-15 (Latin9 aka Latin0)
76 
77          printf("   8#000 /.notdef     8#001 /.notdef        8#002 /.notdef       8#003 /.notdef\n");
78          printf("   8#004 /.notdef     8#005 /.notdef        8#006 /.notdef       8#007 /.notdef\n");
79          printf("   8#010 /.notdef     8#011 /.notdef        8#012 /.notdef       8#013 /.notdef\n");
80          printf("   8#014 /.notdef     8#015 /.notdef        8#016 /.notdef       8#017 /.notdef\n");
81          printf("   8#020 /.notdef     8#021 /.notdef        8#022 /.notdef       8#023 /.notdef\n");
82          printf("   8#024 /.notdef     8#025 /.notdef        8#026 /.notdef       8#027 /.notdef\n");
83          printf("   8#030 /.notdef     8#031 /.notdef        8#032 /.notdef       8#033 /.notdef\n");
84          printf("   8#034 /.notdef     8#035 /.notdef        8#036 /.notdef       8#037 /.notdef\n");
85          printf("   8#040 /space       8#041 /exclam         8#042 /quotedbl      8#043 /numbersign\n");
86          printf("   8#044 /dollar      8#045 /percent        8#046 /ampersand     8#047 /quotesingle\n");
87          printf("   8#050 /parenleft   8#051 /parenright     8#052 /asterisk      8#053 /plus\n");
88          printf("   8#054 /comma       8#055 /hyphen         8#056 /period        8#057 /slash\n");
89          printf("   8#060 /zero        8#061 /one            8#062 /two           8#063 /three\n");
90          printf("   8#064 /four        8#065 /five           8#066 /six           8#067 /seven\n");
91          printf("   8#070 /eight       8#071 /nine           8#072 /colon         8#073 /semicolon\n");
92          printf("   8#074 /less        8#075 /equal          8#076 /greater       8#077 /question\n");
93          printf("   8#100 /at          8#101 /A              8#102 /B             8#103 /C\n");
94          printf("   8#104 /D           8#105 /E              8#106 /F             8#107 /G\n");
95          printf("   8#110 /H           8#111 /I              8#112 /J             8#113 /K\n");
96          printf("   8#114 /L           8#115 /M              8#116 /N             8#117 /O\n");
97          printf("   8#120 /P           8#121 /Q              8#122 /R             8#123 /S\n");
98          printf("   8#124 /T           8#125 /U              8#126 /V             8#127 /W\n");
99          printf("   8#130 /X           8#131 /Y              8#132 /Z             8#133 /bracketleft\n");
100          printf("   8#134 /backslash   8#135 /bracketright   8#136 /asciicircum   8#137 /underscore\n");
101          printf("   8#140 /grave       8#141 /a              8#142 /b             8#143 /c\n");
102          printf("   8#144 /d           8#145 /e              8#146 /f             8#147 /g\n");
103          printf("   8#150 /h           8#151 /i              8#152 /j             8#153 /k\n");
104          printf("   8#154 /l           8#155 /m              8#156 /n             8#157 /o\n");
105          printf("   8#160 /p           8#161 /q              8#162 /r             8#163 /s\n");
106          printf("   8#164 /t           8#165 /u              8#166 /v             8#167 /w\n");
107          printf("   8#170 /x           8#171 /y              8#172 /z             8#173 /braceleft\n");
108          printf("   8#174 /bar         8#175 /braceright     8#176 /asciitilde    8#177 /.notdef\n");
109          printf("   8#200 /.notdef     8#201 /.notdef        8#202 /.notdef       8#203 /.notdef\n");
110          printf("   8#204 /.notdef     8#205 /.notdef        8#206 /.notdef       8#207 /.notdef\n");
111          printf("   8#210 /.notdef     8#211 /.notdef        8#212 /.notdef       8#213 /.notdef\n");
112          printf("   8#214 /.notdef     8#215 /.notdef        8#216 /.notdef       8#217 /.notdef\n");
113          printf("   8#220 /.notdef     8#221 /.notdef        8#222 /.notdef       8#223 /.notdef\n");
114          printf("   8#224 /.notdef     8#225 /.notdef        8#226 /.notdef       8#227 /.notdef\n");
115          printf("   8#230 /.notdef     8#231 /.notdef        8#232 /.notdef       8#233 /.notdef\n");
116          printf("   8#234 /.notdef     8#235 /.notdef        8#236 /.notdef       8#237 /.notdef\n");
117 
118       --------------------------------------------
119 
120       Note that for the ISO 8859-1 (Latin1) encoding, the first 145 characters
121       (octal 0-220) are the same as those defined above.  Unlike most of the
122       other Latin encodings, the characters at positions 145-159 (decimal
123       [221-237 octal]) are _not_ undefined (i.e. they are something other than
124       '.notdef') for ISO 8859-1 (Latin1).
125 
126       --------------------------------------------
127 
128       Note that for the KOI8-R and KOI8-U encodings, the first 128 characters
129       (octal 0-177) are the same as those defined above.  Unlike most of the
130       Latin encodings, the characters at positions 128-159 (decimal [200-237
131       octal]) are _not_ undefined (i.e. they are something other than
132       '.notdef') for KOI8-R and KOI8-U.
133 
134       --------------------------------------------
135 
136       There is one other minor discrepancy.  The PostScript encoding vector
137       for KOI8-U provided with the Ukrainian patch used this definition:
138 
139          8#047 /quoteright
140 
141       whereas all other encodings seem to use this definition:
142 
143          8#047 /quotesingle
144 
145       It probably makes no difference, however.
146 
147 */
148 
149 /* ---------------------------------------------------------------------------
150 
151    encvec_iso8859_1
152 
153    Notes:
154 
155       This routine outputs a particular PostScript encoding vector, used to
156       support any languages which use that encoding.
157 
158 */
encvec_iso8859_1(void)159 void encvec_iso8859_1 (void)
160 {
161    printf("%%\n");
162    printf("%% ISO 8859-1 (Latin1) character mappings\n");
163    printf("%%\n");
164    printf("/alt_mappings [\n");
165    printf("                        8#221 /grave          8#222 /acute           8#223 /circumflex\n");
166    printf("   8#224 /tilde         8#225 /macron         8#226 /breve           8#227 /dotaccent\n");
167    printf("   8#230 /dieresis      8#231 /.notdef        8#232 /ring            8#233 /cedilla\n");
168    printf("   8#234 /.notdef       8#235 /hungarumlaut   8#236 /ogonek          8#237 /caron\n");
169    printf("   8#240 /space         8#241 /exclamdown     8#242 /cent            8#243 /sterling\n");
170    printf("   8#244 /currency      8#245 /yen            8#246 /brokenbar       8#247 /section\n");
171    printf("   8#250 /dieresis      8#251 /copyright      8#252 /ordfeminine     8#253 /guillemotleft\n");
172    printf("   8#254 /logicalnot    8#255 /hyphen         8#256 /registered      8#257 /macron\n");
173    printf("   8#260 /degree        8#261 /plusminus      8#262 /twosuperior     8#263 /threesuperior\n");
174    printf("   8#264 /acute         8#265 /mu             8#266 /paragraph       8#267 /periodcentered\n");
175    printf("   8#270 /cedilla       8#271 /onesuperior    8#272 /ordmasculine    8#273 /guillemotright\n");
176    printf("   8#274 /onequarter    8#275 /onehalf        8#276 /threequarters   8#277 /questiondown\n");
177    printf("   8#300 /Agrave        8#301 /Aacute         8#302 /Acircumflex     8#303 /Atilde\n");
178    printf("   8#304 /Adieresis     8#305 /Aring          8#306 /AE              8#307 /Ccedilla\n");
179    printf("   8#310 /Egrave        8#311 /Eacute         8#312 /Ecircumflex     8#313 /Edieresis\n");
180    printf("   8#314 /Igrave        8#315 /Iacute         8#316 /Icircumflex     8#317 /Idieresis\n");
181    printf("   8#320 /Eth           8#321 /Ntilde         8#322 /Ograve          8#323 /Oacute\n");
182    printf("   8#324 /Ocircumflex   8#325 /Otilde         8#326 /Odieresis       8#327 /multiply\n");
183    printf("   8#330 /Oslash        8#331 /Ugrave         8#332 /Uacute          8#333 /Ucircumflex\n");
184    printf("   8#334 /Udieresis     8#335 /Yacute         8#336 /Thorn           8#337 /germandbls\n");
185    printf("   8#340 /agrave        8#341 /aacute         8#342 /acircumflex     8#343 /atilde\n");
186    printf("   8#344 /adieresis     8#345 /aring          8#346 /ae              8#347 /ccedilla\n");
187    printf("   8#350 /egrave        8#351 /eacute         8#352 /ecircumflex     8#353 /edieresis\n");
188    printf("   8#354 /igrave        8#355 /iacute         8#356 /icircumflex     8#357 /idieresis\n");
189    printf("   8#360 /eth           8#361 /ntilde         8#362 /ograve          8#363 /oacute\n");
190    printf("   8#364 /ocircumflex   8#365 /otilde         8#366 /odieresis       8#367 /divide\n");
191    printf("   8#370 /oslash        8#371 /ugrave         8#372 /uacute          8#373 /ucircumflex\n");
192    printf("   8#374 /udieresis     8#375 /yacute         8#376 /thorn           8#377 /ydieresis\n");
193    printf("] readonly def\n");
194 
195    return;
196 }
197 
198 /* ---------------------------------------------------------------------------
199 
200    encvec_iso8859_2
201 
202    Notes:
203 
204       This routine outputs a particular PostScript encoding vector, used to
205       support any languages which use that encoding.
206 
207 */
encvec_iso8859_2(void)208 void encvec_iso8859_2 (void)
209 {
210    printf("%%\n");
211    printf("%% ISO 8859-2 (Latin2) character mappings\n");
212    printf("%% \n");
213    printf("%% This PostScript encoding vector was derived from the information at the following\n");
214    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
215    printf("%%    \n");
216    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
217    printf("%% \n");
218    printf("/alt_mappings [\n");
219    printf("   8#240 /uni00A0       8#241 /Aogonek         8#242 /breve         8#243 /Lslash\n");
220    printf("   8#244 /currency      8#245 /Lcaron          8#246 /Sacute        8#247 /section\n");
221    printf("   8#250 /dieresis      8#251 /Scaron          8#252 /Scedilla      8#253 /Tcaron\n");
222    printf("   8#254 /Zacute        8#255 /uni00AD         8#256 /Zcaron        8#257 /Zdotaccent\n");
223    printf("   8#260 /degree        8#261 /aogonek         8#262 /ogonek        8#263 /lslash\n");
224    printf("   8#264 /acute         8#265 /lcaron          8#266 /sacute        8#267 /caron\n");
225    printf("   8#270 /cedilla       8#271 /scaron          8#272 /scedilla      8#273 /tcaron\n");
226    printf("   8#274 /zacute        8#275 /hungarumlaut    8#276 /zcaron        8#277 /zdotaccent\n");
227    printf("   8#300 /Racute        8#301 /Aacute          8#302 /Acircumflex   8#303 /Abreve\n");
228    printf("   8#304 /Adieresis     8#305 /Lacute          8#306 /Cacute        8#307 /Ccedilla\n");
229    printf("   8#310 /Ccaron        8#311 /Eacute          8#312 /Eogonek       8#313 /Edieresis\n");
230    printf("   8#314 /Ecaron        8#315 /Iacute          8#316 /Icircumflex   8#317 /Dcaron\n");
231    printf("   8#320 /Dcroat        8#321 /Nacute          8#322 /Ncaron        8#323 /Oacute\n");
232    printf("   8#324 /Ocircumflex   8#325 /Ohungarumlaut   8#326 /Odieresis     8#327 /multiply\n");
233    printf("   8#330 /Rcaron        8#331 /Uring           8#332 /Uacute        8#333 /Uhungarumlaut\n");
234    printf("   8#334 /Udieresis     8#335 /Yacute          8#336 /uni0162       8#337 /germandbls\n");
235    printf("   8#340 /racute        8#341 /aacute          8#342 /acircumflex   8#343 /abreve\n");
236    printf("   8#344 /adieresis     8#345 /lacute          8#346 /cacute        8#347 /ccedilla\n");
237    printf("   8#350 /ccaron        8#351 /eacute          8#352 /eogonek       8#353 /edieresis\n");
238    printf("   8#354 /ecaron        8#355 /iacute          8#356 /icircumflex   8#357 /dcaron\n");
239    printf("   8#360 /dcroat        8#361 /nacute          8#362 /ncaron        8#363 /oacute\n");
240    printf("   8#364 /ocircumflex   8#365 /ohungarumlaut   8#366 /odieresis     8#367 /divide\n");
241    printf("   8#370 /rcaron        8#371 /uring           8#372 /uacute        8#373 /uhungarumlaut\n");
242    printf("   8#374 /udieresis     8#375 /yacute          8#376 /uni0163       8#377 /dotaccent\n");
243    printf("] readonly def\n");
244 
245    return;
246 }
247 
248 /* ---------------------------------------------------------------------------
249 
250    encvec_iso8859_3
251 
252    Notes:
253 
254       This routine outputs a particular PostScript encoding vector, used to
255       support any languages which use that encoding.
256 
257 */
encvec_iso8859_3(void)258 void encvec_iso8859_3 (void)
259 {
260    printf("%%\n");
261    printf("%% ISO 8859-3 (Latin3) character mappings\n");
262    printf("%% \n");
263    printf("%% This PostScript encoding vector was derived from the information at the following\n");
264    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
265    printf("%%    \n");
266    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
267    printf("%% \n");
268    printf("/alt_mappings [\n");
269    printf("   8#240 /uni00A0       8#241 /Hbar         8#242 /breve           8#243 /sterling\n");
270    printf("   8#244 /currency      8#245 /yen          8#246 /Hcircumflex     8#247 /section\n");
271    printf("   8#250 /dieresis      8#251 /Idotaccent   8#252 /Scedilla        8#253 /Gbreve\n");
272    printf("   8#254 /Jcircumflex   8#255 /uni00AD      8#256 /registered      8#257 /Zdotaccent\n");
273    printf("   8#260 /degree        8#261 /hbar         8#262 /twosuperior     8#263 /threesuperior\n");
274    printf("   8#264 /acute         8#265 /mu           8#266 /hcircumflex     8#267 /periodcentered\n");
275    printf("   8#270 /cedilla       8#271 /dotlessi     8#272 /scedilla        8#273 /gbreve\n");
276    printf("   8#274 /jcircumflex   8#275 /onehalf      8#276 /threequarters   8#277 /zdotaccent\n");
277    printf("   8#300 /Agrave        8#301 /Aacute       8#302 /Acircumflex     8#303 /Atilde\n");
278    printf("   8#304 /Adieresis     8#305 /Cdotaccent   8#306 /Ccircumflex     8#307 /Ccedilla\n");
279    printf("   8#310 /Egrave        8#311 /Eacute       8#312 /Ecircumflex     8#313 /Edieresis\n");
280    printf("   8#314 /Igrave        8#315 /Iacute       8#316 /Icircumflex     8#317 /Idieresis\n");
281    printf("   8#320 /Eth           8#321 /Ntilde       8#322 /Ograve          8#323 /Oacute\n");
282    printf("   8#324 /Ocircumflex   8#325 /Gdotaccent   8#326 /Odieresis       8#327 /multiply\n");
283    printf("   8#330 /Gcircumflex   8#331 /Ugrave       8#332 /Uacute          8#333 /Ucircumflex\n");
284    printf("   8#334 /Udieresis     8#335 /Ubreve       8#336 /Scircumflex     8#337 /germandbls\n");
285    printf("   8#340 /agrave        8#341 /aacute       8#342 /acircumflex     8#343 /atilde\n");
286    printf("   8#344 /adieresis     8#345 /cdotaccent   8#346 /ccircumflex     8#347 /ccedilla\n");
287    printf("   8#350 /egrave        8#351 /eacute       8#352 /ecircumflex     8#353 /edieresis\n");
288    printf("   8#354 /igrave        8#355 /iacute       8#356 /icircumflex     8#357 /idieresis\n");
289    printf("   8#360 /eth           8#361 /ntilde       8#362 /ograve          8#363 /oacute\n");
290    printf("   8#364 /ocircumflex   8#365 /gdotaccent   8#366 /odieresis       8#367 /divide\n");
291    printf("   8#370 /gcircumflex   8#371 /ugrave       8#372 /uacute          8#373 /ucircumflex\n");
292    printf("   8#374 /udieresis     8#375 /ubreve       8#376 /scircumflex     8#377 /dotaccent\n");
293    printf("] readonly def\n");
294 
295    return;
296 }
297 
298 /* ---------------------------------------------------------------------------
299 
300    encvec_iso8859_4
301 
302    Notes:
303 
304       This routine outputs a particular PostScript encoding vector, used to
305       support any languages which use that encoding.
306 
307 */
encvec_iso8859_4(void)308 void encvec_iso8859_4 (void)
309 {
310    printf("%%\n");
311    printf("%% ISO 8859-4 (Latin4) character mappings\n");
312    printf("%% \n");
313    printf("%% This PostScript encoding vector was derived from the information at the following\n");
314    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
315    printf("%%    \n");
316    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
317    printf("%% \n");
318    printf("/alt_mappings [\n");
319    printf("   8#240 /uni00A0       8#241 /Aogonek        8#242 /kgreenlandic   8#243 /Rcommaaccent\n");
320    printf("   8#244 /currency      8#245 /Itilde         8#246 /Lcommaaccent   8#247 /section\n");
321    printf("   8#250 /dieresis      8#251 /Scaron         8#252 /Emacron        8#253 /Gcommaaccent\n");
322    printf("   8#254 /Tbar          8#255 /uni00AD        8#256 /Zcaron         8#257 /macron\n");
323    printf("   8#260 /degree        8#261 /aogonek        8#262 /ogonek         8#263 /rcommaaccent\n");
324    printf("   8#264 /acute         8#265 /itilde         8#266 /lcommaaccent   8#267 /caron\n");
325    printf("   8#270 /cedilla       8#271 /scaron         8#272 /emacron        8#273 /gcommaaccent\n");
326    printf("   8#274 /tbar          8#275 /Eng            8#276 /zcaron         8#277 /eng\n");
327    printf("   8#300 /Amacron       8#301 /Aacute         8#302 /Acircumflex    8#303 /Atilde\n");
328    printf("   8#304 /Adieresis     8#305 /Aring          8#306 /AE             8#307 /Iogonek\n");
329    printf("   8#310 /Ccaron        8#311 /Eacute         8#312 /Eogonek        8#313 /Edieresis\n");
330    printf("   8#314 /Edotaccent    8#315 /Iacute         8#316 /Icircumflex    8#317 /Imacron\n");
331    printf("   8#320 /Dcroat        8#321 /Ncommaaccent   8#322 /Omacron        8#323 /Kcommaaccent\n");
332    printf("   8#324 /Ocircumflex   8#325 /Otilde         8#326 /Odieresis      8#327 /multiply\n");
333    printf("   8#330 /Oslash        8#331 /Uogonek        8#332 /Uacute         8#333 /Ucircumflex\n");
334    printf("   8#334 /Udieresis     8#335 /Utilde         8#336 /Umacron        8#337 /germandbls\n");
335    printf("   8#340 /amacron       8#341 /aacute         8#342 /acircumflex    8#343 /atilde\n");
336    printf("   8#344 /adieresis     8#345 /aring          8#346 /ae             8#347 /iogonek\n");
337    printf("   8#350 /ccaron        8#351 /eacute         8#352 /eogonek        8#353 /edieresis\n");
338    printf("   8#354 /edotaccent    8#355 /iacute         8#356 /icircumflex    8#357 /imacron\n");
339    printf("   8#360 /dcroat        8#361 /ncommaaccent   8#362 /omacron        8#363 /kcommaaccent\n");
340    printf("   8#364 /ocircumflex   8#365 /otilde         8#366 /odieresis      8#367 /divide\n");
341    printf("   8#370 /oslash        8#371 /uogonek        8#372 /uacute         8#373 /ucircumflex\n");
342    printf("   8#374 /udieresis     8#375 /utilde         8#376 /umacron        8#377 /dotaccent\n");
343    printf("] readonly def\n");
344 
345    return;
346 }
347 
348 /* ---------------------------------------------------------------------------
349 
350    encvec_iso8859_5
351 
352    Notes:
353 
354       This routine outputs a particular PostScript encoding vector, used to
355       support any languages which use that encoding.
356 
357 */
encvec_iso8859_5(void)358 void encvec_iso8859_5 (void)
359 {
360    printf("%%\n");
361    printf("%% ISO 8859-5 (Cyrillic) character mappings\n");
362    printf("%% \n");
363    printf("%% This PostScript encoding vector was derived from the information at the following\n");
364    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
365    printf("%%    \n");
366    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
367    printf("%% \n");
368    printf("/alt_mappings [\n");
369    printf("   8#240 /uni00A0     8#241 /afii10023   8#242 /afii10051   8#243 /afii10052\n");
370    printf("   8#244 /afii10053   8#245 /afii10054   8#246 /afii10055   8#247 /afii10056\n");
371    printf("   8#250 /afii10057   8#251 /afii10058   8#252 /afii10059   8#253 /afii10060\n");
372    printf("   8#254 /afii10061   8#255 /uni00AD     8#256 /afii10062   8#257 /afii10145\n");
373    printf("   8#260 /afii10017   8#261 /afii10018   8#262 /afii10019   8#263 /afii10020\n");
374    printf("   8#264 /afii10021   8#265 /afii10022   8#266 /afii10024   8#267 /afii10025\n");
375    printf("   8#270 /afii10026   8#271 /afii10027   8#272 /afii10028   8#273 /afii10029\n");
376    printf("   8#274 /afii10030   8#275 /afii10031   8#276 /afii10032   8#277 /afii10033\n");
377    printf("   8#300 /afii10034   8#301 /afii10035   8#302 /afii10036   8#303 /afii10037\n");
378    printf("   8#304 /afii10038   8#305 /afii10039   8#306 /afii10040   8#307 /afii10041\n");
379    printf("   8#310 /afii10042   8#311 /afii10043   8#312 /afii10044   8#313 /afii10045\n");
380    printf("   8#314 /afii10046   8#315 /afii10047   8#316 /afii10048   8#317 /afii10049\n");
381    printf("   8#320 /afii10065   8#321 /afii10066   8#322 /afii10067   8#323 /afii10068\n");
382    printf("   8#324 /afii10069   8#325 /afii10070   8#326 /afii10072   8#327 /afii10073\n");
383    printf("   8#330 /afii10074   8#331 /afii10075   8#332 /afii10076   8#333 /afii10077\n");
384    printf("   8#334 /afii10078   8#335 /afii10079   8#336 /afii10080   8#337 /afii10081\n");
385    printf("   8#340 /afii10082   8#341 /afii10083   8#342 /afii10084   8#343 /afii10085\n");
386    printf("   8#344 /afii10086   8#345 /afii10087   8#346 /afii10088   8#347 /afii10089\n");
387    printf("   8#350 /afii10090   8#351 /afii10091   8#352 /afii10092   8#353 /afii10093\n");
388    printf("   8#354 /afii10094   8#355 /afii10095   8#356 /afii10096   8#357 /afii10097\n");
389    printf("   8#360 /afii61352   8#361 /afii10071   8#362 /afii10099   8#363 /afii10100\n");
390    printf("   8#364 /afii10101   8#365 /afii10102   8#366 /afii10103   8#367 /afii10104\n");
391    printf("   8#370 /afii10105   8#371 /afii10106   8#372 /afii10107   8#373 /afii10108\n");
392    printf("   8#374 /afii10109   8#375 /section     8#376 /afii10110   8#377 /afii10193\n");
393    printf("] readonly def\n");
394 
395    return;
396 }
397 
398 /* ---------------------------------------------------------------------------
399 
400    encvec_iso8859_6
401 
402    Notes:
403 
404       This routine outputs a particular PostScript encoding vector, used to
405       support any languages which use that encoding.
406 
407 */
encvec_iso8859_6(void)408 void encvec_iso8859_6 (void)
409 {
410    printf("%%%%%%   %%\n");
411    printf("%%%%%%   %% ISO 8859-6 (Arabic) character mappings\n");
412    printf("%%%%%%   %% \n");
413    printf("%%%%%%   %% This PostScript encoding vector is currently undefined because the\n");
414    printf("%%%%%%   %% information needed to create it was not found.\n");
415    printf("%%%%%%   %% \n");
416    printf("%%%%%%   /alt_mappings [\n");
417    printf("%%%%%%   ] readonly def\n");
418    printf("\n");
419 
420    return;
421 }
422 
423 /* ---------------------------------------------------------------------------
424 
425    encvec_iso8859_7
426 
427    Notes:
428 
429       This routine outputs a particular PostScript encoding vector, used to
430       support any languages which use that encoding.
431 
432 */
encvec_iso8859_7(void)433 void encvec_iso8859_7 (void)
434 {
435    printf("%%\n");
436    printf("%% ISO 8859-7 (Greek) character mappings\n");
437    printf("%% \n");
438    printf("%% This PostScript encoding vector was derived from the information at the following\n");
439    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
440    printf("%%    \n");
441    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
442    printf("%% \n");
443    printf("/alt_mappings [\n");
444    printf("   8#240 /uni00A0                8#241 /afii64937       8#242 /afii57929      8#243 /sterling\n");
445    printf("   8#244 /currency               8#245 /yen             8#246 /brokenbar      8#247 /section\n");
446    printf("   8#250 /dieresis               8#251 /copyright       8#252 /ordfeminine    8#253 /guillemotleft\n");
447    printf("   8#254 /logicalnot             8#255 /uni00AD         8#256 /registered     8#257 /afii00208\n");
448    printf("   8#260 /degree                 8#261 /plusminus       8#262 /twosuperior    8#263 /threesuperior\n");
449    printf("   8#264 /tonos                  8#265 /dieresistonos   8#266 /Alphatonos     8#267 /periodcentered\n");
450    printf("   8#270 /Epsilontonos           8#271 /Etatonos        8#272 /Iotatonos      8#273 /guillemotright\n");
451    printf("   8#274 /Omicrontonos           8#275 /onehalf         8#276 /Upsilontonos   8#277 /Omegatonos\n");
452    printf("   8#300 /iotadieresistonos      8#301 /Alpha           8#302 /Beta           8#303 /Gamma\n");
453    printf("   8#304 /uni0394                8#305 /Epsilon         8#306 /Zeta           8#307 /Eta\n");
454    printf("   8#310 /Theta                  8#311 /Iota            8#312 /Kappa          8#313 /Lambda\n");
455    printf("   8#314 /Mu                     8#315 /Nu              8#316 /Xi             8#317 /Omicron\n");
456    printf("   8#320 /Pi                     8#321 /Rho             8#322 /Ograve         8#323 /Sigma\n");
457    printf("   8#324 /Tau                    8#325 /Upsilon         8#326 /Phi            8#327 /Chi\n");
458    printf("   8#330 /Psi                    8#331 /uni03A9         8#332 /Iotadieresis   8#333 /Upsilondieresis\n");
459    printf("   8#334 /alphatonos             8#335 /epsilontonos    8#336 /etatonos       8#337 /iotatonos\n");
460    printf("   8#340 /upsilondieresistonos   8#341 /alpha           8#342 /beta           8#343 /gamma\n");
461    printf("   8#344 /delta                  8#345 /epsilon         8#346 /zeta           8#347 /eta\n");
462    printf("   8#350 /theta                  8#351 /iota            8#352 /kappa          8#353 /lambda\n");
463    printf("   8#354 /uni03BC                8#355 /nu              8#356 /xi             8#357 /omicron\n");
464    printf("   8#360 /pi                     8#361 /rho             8#362 /sigma1         8#363 /sigma\n");
465    printf("   8#364 /tau                    8#365 /upsilon         8#366 /phi            8#367 /chi\n");
466    printf("   8#370 /psi                    8#371 /omega           8#372 /iotadieresis   8#373 /upsilondieresis\n");
467    printf("   8#374 /omicrontonos           8#375 /upsilontonos    8#376 /omegatonos     8#377 /ydieresis\n");
468    printf("] readonly def\n");
469 
470    return;
471 }
472 
473 /* ---------------------------------------------------------------------------
474 
475    encvec_iso8859_8
476 
477    Notes:
478 
479       This routine outputs a particular PostScript encoding vector, used to
480       support any languages which use that encoding.
481 
482 */
encvec_iso8859_8(void)483 void encvec_iso8859_8 (void)
484 {
485    printf("%%%%%%   %%\n");
486    printf("%%%%%%   %% ISO 8859-8 (Hebrew) character mappings\n");
487    printf("%%%%%%   %% \n");
488    printf("%%%%%%   %% This PostScript encoding vector is currently undefined because the\n");
489    printf("%%%%%%   %% information needed to create it was not found.\n");
490    printf("%%%%%%   %% \n");
491    printf("%%%%%%   /alt_mappings [\n");
492    printf("%%%%%%   ] readonly def\n");
493 
494    return;
495 }
496 
497 /* ---------------------------------------------------------------------------
498 
499    encvec_iso8859_9
500 
501    Notes:
502 
503       This routine outputs a particular PostScript encoding vector, used to
504       support any languages which use that encoding.
505 
506 */
encvec_iso8859_9(void)507 void encvec_iso8859_9 (void)
508 {
509    printf("%%\n");
510    printf("%% ISO 8859-9 (Latin5) character mappings\n");
511    printf("%% \n");
512    printf("%% This PostScript encoding vector was derived from the information at the following\n");
513    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
514    printf("%%    \n");
515    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
516    printf("%% \n");
517    printf("/alt_mappings [\n");
518    printf("   8#240 /uni00A0       8#241 /exclamdown    8#242 /cent            8#243 /sterling\n");
519    printf("   8#244 /currency      8#245 /yen           8#246 /brokenbar       8#247 /section\n");
520    printf("   8#250 /dieresis      8#251 /copyright     8#252 /ordfeminine     8#253 /guillemotleft\n");
521    printf("   8#254 /logicalnot    8#255 /uni00AD       8#256 /registered      8#257 /macron\n");
522    printf("   8#260 /degree        8#261 /plusminus     8#262 /twosuperior     8#263 /threesuperior\n");
523    printf("   8#264 /acute         8#265 /mu            8#266 /paragraph       8#267 /periodcentered\n");
524    printf("   8#270 /cedilla       8#271 /onesuperior   8#272 /ordmasculine    8#273 /guillemotright\n");
525    printf("   8#274 /onequarter    8#275 /onehalf       8#276 /threequarters   8#277 /questiondown\n");
526    printf("   8#300 /Agrave        8#301 /Aacute        8#302 /Acircumflex     8#303 /Atilde\n");
527    printf("   8#304 /Adieresis     8#305 /Aring         8#306 /AE              8#307 /Ccedilla\n");
528    printf("   8#310 /Egrave        8#311 /Eacute        8#312 /Ecircumflex     8#313 /Edieresis\n");
529    printf("   8#314 /Igrave        8#315 /Iacute        8#316 /Icircumflex     8#317 /Idieresis\n");
530    printf("   8#320 /Gbreve        8#321 /Ntilde        8#322 /Ograve          8#323 /Oacute\n");
531    printf("   8#324 /Ocircumflex   8#325 /Otilde        8#326 /Odieresis       8#327 /multiply\n");
532    printf("   8#330 /Oslash        8#331 /Ugrave        8#332 /Uacute          8#333 /Ucircumflex\n");
533    printf("   8#334 /Udieresis     8#335 /Idotaccent    8#336 /Scedilla        8#337 /germandbls\n");
534    printf("   8#340 /agrave        8#341 /aacute        8#342 /acircumflex     8#343 /atilde\n");
535    printf("   8#344 /adieresis     8#345 /aring         8#346 /ae              8#347 /ccedilla\n");
536    printf("   8#350 /egrave        8#351 /eacute        8#352 /ecircumflex     8#353 /edieresis\n");
537    printf("   8#354 /igrave        8#355 /iacute        8#356 /icircumflex     8#357 /idieresis\n");
538    printf("   8#360 /gbreve        8#361 /ntilde        8#362 /ograve          8#363 /oacute\n");
539    printf("   8#364 /ocircumflex   8#365 /otilde        8#366 /odieresis       8#367 /divide\n");
540    printf("   8#370 /oslash        8#371 /ugrave        8#372 /uacute          8#373 /ucircumflex\n");
541    printf("   8#374 /udieresis     8#375 /dotlessi      8#376 /scedilla        8#377 /ydieresis\n");
542    printf("] readonly def\n");
543 
544    return;
545 }
546 
547 /* ---------------------------------------------------------------------------
548 
549    encvec_iso8859_10
550 
551    Notes:
552 
553       This routine outputs a particular PostScript encoding vector, used to
554       support any languages which use that encoding.
555 
556 */
encvec_iso8859_10(void)557 void encvec_iso8859_10 (void)
558 {
559    printf("%%\n");
560    printf("%% ISO 8859-10 (Latin6) character mappings\n");
561    printf("%% \n");
562    printf("%% This PostScript encoding vector was derived from the information at the following\n");
563    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
564    printf("%%    \n");
565    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
566    printf("%% \n");
567    printf("/alt_mappings [\n");
568    printf("   8#240 /uni00A0        8#241 /Aogonek        8#242 /Emacron        8#243 /Gcommaaccent\n");
569    printf("   8#244 /Imacron        8#245 /Itilde         8#246 /Kcommaaccent   8#247 /section\n");
570    printf("   8#250 /Lcommaaccent   8#251 /Dcroat         8#252 /Scaron         8#253 /Tbar\n");
571    printf("   8#254 /Zcaron         8#255 /uni00AD        8#256 /Umacron        8#257 /Eng\n");
572    printf("   8#260 /degree         8#261 /aogonek        8#262 /emacron        8#263 /gcommaaccent\n");
573    printf("   8#264 /imacron        8#265 /itilde         8#266 /kcommaaccent   8#267 /periodcentered\n");
574    printf("   8#270 /lcommaaccent   8#271 /dcroat         8#272 /scaron         8#273 /tbar\n");
575    printf("   8#274 /zcaron         8#275 /macron         8#276 /umacron        8#277 /eng\n");
576    printf("   8#300 /Amacron        8#301 /Aacute         8#302 /Acircumflex    8#303 /Atilde\n");
577    printf("   8#304 /Adieresis      8#305 /Aring          8#306 /AE             8#307 /Iogonek\n");
578    printf("   8#310 /Ccaron         8#311 /Eacute         8#312 /Eogonek        8#313 /Edieresis\n");
579    printf("   8#314 /Emacron        8#315 /Iacute         8#316 /Icircumflex    8#317 /Idieresis\n");
580    printf("   8#320 /Eth            8#321 /Ncommaaccent   8#322 /Omacron        8#323 /Oacute\n");
581    printf("   8#324 /Ocircumflex    8#325 /Otilde         8#326 /Odieresis      8#327 /Utilde\n");
582    printf("   8#330 /Oslash         8#331 /Uogonek        8#332 /Uacute         8#333 /Ucircumflex\n");
583    printf("   8#334 /Udieresis      8#335 /Yacute         8#336 /Thorn          8#337 /germandbls\n");
584    printf("   8#340 /amacron        8#341 /aacute         8#342 /acircumflex    8#343 /atilde\n");
585    printf("   8#344 /adieresis      8#345 /aring          8#346 /ae             8#347 /iogonek\n");
586    printf("   8#350 /ccaron         8#351 /eacute         8#352 /eogonek        8#353 /edieresis\n");
587    printf("   8#354 /emacron        8#355 /iacute         8#356 /icircumflex    8#357 /idieresis\n");
588    printf("   8#360 /eth            8#361 /ncommaaccent   8#362 /omacron        8#363 /oacute\n");
589    printf("   8#364 /ocircumflex    8#365 /otilde         8#366 /odieresis      8#367 /utilde\n");
590    printf("   8#370 /oslash         8#371 /uogonek        8#372 /uacute         8#373 /ucircumflex\n");
591    printf("   8#374 /udieresis      8#375 /yacute         8#376 /thorn          8#377 /kgreenlandic\n");
592    printf("] readonly def\n");
593 
594    return;
595 }
596 
597 /* ---------------------------------------------------------------------------
598 
599    encvec_iso8859_11
600 
601    Notes:
602 
603       This routine outputs a particular PostScript encoding vector, used to
604       support any languages which use that encoding.
605 
606 */
encvec_iso8859_11(void)607 void encvec_iso8859_11 (void)
608 {
609    printf("%%\n");
610    printf("%% ISO 8859-11 (Thai) character mappings\n");
611    printf("%% \n");
612    printf("%% This PostScript encoding vector was derived from the information at the following\n");
613    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
614    printf("%%    \n");
615    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
616    printf("%% \n");
617    printf("/alt_mappings [\n");
618    printf("   8#240 /uni00A0   8#241 /uni0E01   8#242 /uni0E02   8#243 /uni0E03\n");
619    printf("   8#244 /uni0E04   8#245 /uni0E05   8#246 /uni0E06   8#247 /uni0E07\n");
620    printf("   8#250 /uni0E08   8#251 /uni0E09   8#252 /uni0E0A   8#253 /uni0E0B\n");
621    printf("   8#254 /uni0E0C   8#255 /uni0E0D   8#256 /uni0E0E   8#257 /uni0E0F\n");
622    printf("   8#260 /uni0E10   8#261 /uni0E11   8#262 /uni0E12   8#263 /uni0E13\n");
623    printf("   8#264 /uni0E14   8#265 /uni0E15   8#266 /uni0E16   8#267 /uni0E17\n");
624    printf("   8#270 /uni0E18   8#271 /uni0E19   8#272 /uni0E1A   8#273 /uni0E1B\n");
625    printf("   8#274 /uni0E1C   8#275 /uni0E1D   8#276 /uni0E1E   8#277 /uni0E1F\n");
626    printf("   8#300 /uni0E20   8#301 /uni0E21   8#302 /uni0E22   8#303 /uni0E23\n");
627    printf("   8#304 /uni0E24   8#305 /uni0E25   8#306 /uni0E26   8#307 /uni0E27\n");
628    printf("   8#310 /uni0E28   8#311 /uni0E29   8#312 /uni0E2A   8#313 /uni0E2B\n");
629    printf("   8#314 /uni0E2C   8#315 /uni0E2D   8#316 /uni0E2E   8#317 /uni0E2F\n");
630    printf("   8#320 /uni0E30   8#321 /uni0E31   8#322 /uni0E32   8#323 /uni0E33\n");
631    printf("   8#324 /uni0E34   8#325 /uni0E35   8#326 /uni0E36   8#327 /uni0E37\n");
632    printf("   8#330 /uni0E38   8#331 /uni0E39   8#332 /uni0E3A   8#333 /.notdef\n");
633    printf("   8#334 /space     8#335 /.notdef   8#336 /.notdef   8#337 /uni0E3F\n");
634    printf("   8#340 /uni0E40   8#341 /uni0E41   8#342 /uni0E42   8#343 /uni0E43\n");
635    printf("   8#344 /uni0E44   8#345 /uni0E45   8#346 /uni0E46   8#347 /uni0E47\n");
636    printf("   8#350 /uni0E48   8#351 /uni0E49   8#352 /uni0E4A   8#353 /uni0E4B\n");
637    printf("   8#354 /uni0E4C   8#355 /uni0E4D   8#356 /uni0E4E   8#357 /uni0E4F\n");
638    printf("   8#360 /uni0E50   8#361 /uni0E51   8#362 /uni0E52   8#363 /uni0E53\n");
639    printf("   8#364 /uni0E54   8#365 /uni0E55   8#366 /uni0E56   8#367 /uni0E57\n");
640    printf("   8#370 /uni0E58   8#371 /uni0E59   8#372 /uni0E5A   8#373 /.notdef\n");
641    printf("   8#374 /.notdef   8#375 /.notdef   8#376 /.notdef   8#377 /.notdef\n");
642    printf("] readonly def\n");
643 
644    return;
645 }
646 
647 /* ---------------------------------------------------------------------------
648 
649    encvec_iso8859_13
650 
651    Notes:
652 
653       This routine outputs a particular PostScript encoding vector, used to
654       support any languages which use that encoding.
655 
656 */
encvec_iso8859_13(void)657 void encvec_iso8859_13 (void)
658 {
659    printf("%%\n");
660    printf("%% ISO 8859-13 (Latin7) character mappings\n");
661    printf("%% \n");
662    printf("%% This PostScript encoding vector was derived from the information at the following\n");
663    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
664    printf("%%    \n");
665    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
666    printf("%% \n");
667    printf("/alt_mappings [\n");
668    printf("   8#240 /uni00A0        8#241 /quotedblright   8#242 /cent            8#243 /sterling\n");
669    printf("   8#244 /currency       8#245 /quotedblbase    8#246 /brokenbar       8#247 /section\n");
670    printf("   8#250 /Oslash         8#251 /copyright       8#252 /rcommaaccent    8#253 /guillemotleft\n");
671    printf("   8#254 /logicalnot     8#255 /uni00AD         8#256 /registered      8#257 /AE\n");
672    printf("   8#260 /degree         8#261 /plusminus       8#262 /twosuperior     8#263 /threesuperior\n");
673    printf("   8#264 /quotedblleft   8#265 /mu              8#266 /paragraph       8#267 /periodcentered\n");
674    printf("   8#270 /oslash         8#271 /onesuperior     8#272 /.notdef         8#273 /guillemotright\n");
675    printf("   8#274 /onequarter     8#275 /onehalf         8#276 /threequarters   8#277 /ae\n");
676    printf("   8#300 /Aogonek        8#301 /Iogonek         8#302 /Amacron         8#303 /Cacute\n");
677    printf("   8#304 /Adieresis      8#305 /Aring           8#306 /Eogonek         8#307 /Emacron\n");
678    printf("   8#310 /Ccaron         8#311 /Eacute          8#312 /Zacute          8#313 /Edotaccent\n");
679    printf("   8#314 /Gcommaaccent   8#315 /Kcommaaccent    8#316 /Imacron         8#317 /Lcommaaccent\n");
680    printf("   8#320 /Scaron         8#321 /Nacute          8#322 /Ncommaaccent    8#323 /Oacute\n");
681    printf("   8#324 /Omacron        8#325 /Otilde          8#326 /Odieresis       8#327 /multiply\n");
682    printf("   8#330 /Uogonek        8#331 /Lslash          8#332 /Uacute          8#333 /Ucircumflex\n");
683    printf("   8#334 /Udieresis      8#335 /Zdotaccent      8#336 /Zcaron          8#337 /germandbls\n");
684    printf("   8#340 /aogonek        8#341 /Iogonek         8#342 /amacron         8#343 /cacute\n");
685    printf("   8#344 /adieresis      8#345 /aring           8#346 /eogonek         8#347 /emacron\n");
686    printf("   8#350 /ccaron         8#351 /eacute          8#352 /zacute          8#353 /edotaccent\n");
687    printf("   8#354 /gcommaaccent   8#355 /kcommaaccent    8#356 /imacron         8#357 /lcommaaccent\n");
688    printf("   8#360 /scaron         8#361 /nacute          8#362 /ncommaaccent    8#363 /oacute\n");
689    printf("   8#364 /omacron        8#365 /otilde          8#366 /odieresis       8#367 /divide\n");
690    printf("   8#370 /uogonek        8#371 /lslash          8#372 /uacute          8#373 /ucircumflex\n");
691    printf("   8#374 /udieresis      8#375 /zdotaccent      8#376 /zcaron          8#377 /quoteright\n");
692    printf("] readonly def\n");
693 
694    return;
695 }
696 
697 /* ---------------------------------------------------------------------------
698 
699    encvec_iso8859_14
700 
701    Notes:
702 
703       This routine outputs a particular PostScript encoding vector, used to
704       support any languages which use that encoding.
705 
706 */
encvec_iso8859_14(void)707 void encvec_iso8859_14 (void)
708 {
709    printf("%%\n");
710    printf("%% ISO 8859-14 (Latin8) character mappings\n");
711    printf("%% \n");
712    printf("%% This PostScript encoding vector was derived from the information at the following\n");
713    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
714    printf("%%    \n");
715    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
716    printf("%% \n");
717    printf("/alt_mappings [\n");
718    printf("   8#240 /uni00A0       8#241 /uni1E02      8#242 /uni1E03       8#243 /sterling\n");
719    printf("   8#244 /Cdotaccent    8#245 /cdotaccent   8#246 /uni1E0A       8#247 /section\n");
720    printf("   8#250 /Wgrave        8#251 /copyright    8#252 /Wacute        8#253 /uni1E0B\n");
721    printf("   8#254 /Ygrave        8#255 /uni00AD      8#256 /registered    8#257 /Ydieresis\n");
722    printf("   8#260 /uni1E1E       8#261 /uni1E1F      8#262 /Gdotaccent    8#263 /gdotaccent\n");
723    printf("   8#264 /uni1E40       8#265 /uni1E41      8#266 /paragraph     8#267 /uni1E56\n");
724    printf("   8#270 /wgrave        8#271 /uni1E57      8#272 /wacute        8#273 /uni1E60\n");
725    printf("   8#274 /ygrave        8#275 /Wdieresis    8#276 /wdieresis     8#277 /uni1E61\n");
726    printf("   8#300 /Agrave        8#301 /Aacute       8#302 /Acircumflex   8#303 /Atilde\n");
727    printf("   8#304 /Adieresis     8#305 /Aring        8#306 /AE            8#307 /Ccedilla\n");
728    printf("   8#310 /Egrave        8#311 /Eacute       8#312 /Ecircumflex   8#313 /Edieresis\n");
729    printf("   8#314 /Igrave        8#315 /Iacute       8#316 /Icircumflex   8#317 /Idieresis\n");
730    printf("   8#320 /Wcircumflex   8#321 /Ntilde       8#322 /Ograve        8#323 /Oacute\n");
731    printf("   8#324 /Ocircumflex   8#325 /Otilde       8#326 /Odieresis     8#327 /uni1E6A\n");
732    printf("   8#330 /Oslash        8#331 /Ugrave       8#332 /Uacute        8#333 /Ucircumflex\n");
733    printf("   8#334 /Udieresis     8#335 /Yacute       8#336 /Ycircumflex   8#337 /germandbls\n");
734    printf("   8#340 /agrave        8#341 /aacute       8#342 /acircumflex   8#343 /atilde\n");
735    printf("   8#344 /adieresis     8#345 /aring        8#346 /ae            8#347 /ccedilla\n");
736    printf("   8#350 /egrave        8#351 /eacute       8#352 /ecircumflex   8#353 /edieresis\n");
737    printf("   8#354 /igrave        8#355 /iacute       8#356 /icircumflex   8#357 /idieresis\n");
738    printf("   8#360 /wcircumflex   8#361 /ntilde       8#362 /ograve        8#363 /oacute\n");
739    printf("   8#364 /ocircumflex   8#365 /otilde       8#366 /odieresis     8#367 /uni1E6B\n");
740    printf("   8#370 /oslash        8#371 /ugrave       8#372 /uacute        8#373 /ucircumflex\n");
741    printf("   8#374 /udieresis     8#375 /yacute       8#376 /ycircumflex   8#377 /ydieresis\n");
742    printf("] readonly def\n");
743 
744    return;
745 }
746 
747 /* ---------------------------------------------------------------------------
748 
749    encvec_iso8859_15
750 
751    Notes:
752 
753       This routine outputs a particular PostScript encoding vector, used to
754       support any languages which use that encoding.
755 
756 */
encvec_iso8859_15(void)757 void encvec_iso8859_15 (void)
758 {
759    printf("%%\n");
760    printf("%% ISO 8859-15 (Latin9 aka Latin0) character mappings\n");
761    printf("%% \n");
762    printf("%% This PostScript encoding vector was derived from the information at the following\n");
763    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
764    printf("%%    \n");
765    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
766    printf("%% \n");
767    printf("/alt_mappings [\n");
768    printf("   8#240 /uni00A0       8#241 /exclamdown    8#242 /cent          8#243 /sterling\n");
769    printf("   8#244 /Euro          8#245 /yen           8#246 /Scaron        8#247 /section\n");
770    printf("   8#250 /scaron        8#251 /copyright     8#252 /ordfeminine   8#253 /guillemotleft\n");
771    printf("   8#254 /logicalnot    8#255 /uni00AD       8#256 /registered    8#257 /macron\n");
772    printf("   8#260 /degree        8#261 /plusminus     8#262 /twosuperior   8#263 /threesuperior\n");
773    printf("   8#264 /Zcaron        8#265 /mu            8#266 /paragraph     8#267 /periodcentered\n");
774    printf("   8#270 /zcaron        8#271 /onesuperior   8#272 /ordmasculine  8#273 /guillemotright\n");
775    printf("   8#274 /OE            8#275 /oe            8#276 /Ydieresis     8#277 /questiondown\n");
776    printf("   8#300 /Agrave        8#301 /Aacute        8#302 /Acircumflex   8#303 /Atilde\n");
777    printf("   8#304 /Adieresis     8#305 /Aring         8#306 /AE            8#307 /Ccedilla\n");
778    printf("   8#310 /Egrave        8#311 /Eacute        8#312 /Ecircumflex   8#313 /Edieresis\n");
779    printf("   8#314 /Igrave        8#315 /Iacute        8#316 /Icircumflex   8#317 /Idieresis\n");
780    printf("   8#320 /Eth           8#321 /Ntilde        8#322 /Ograve        8#323 /Oacute\n");
781    printf("   8#324 /Ocircumflex   8#325 /Otilde        8#326 /Odieresis     8#327 /multiply\n");
782    printf("   8#330 /Oslash        8#331 /Ugrave        8#332 /Uacute        8#333 /Ucircumflex\n");
783    printf("   8#334 /Udieresis     8#335 /Yacute        8#336 /Thorn         8#337 /germandbls\n");
784    printf("   8#340 /agrave        8#341 /aacute        8#342 /acircumflex   8#343 /atilde\n");
785    printf("   8#344 /adieresis     8#345 /aring         8#346 /ae            8#347 /ccedilla\n");
786    printf("   8#350 /egrave        8#351 /eacute        8#352 /ecircumflex   8#353 /edieresis\n");
787    printf("   8#354 /igrave        8#355 /iacute        8#356 /icircumflex   8#357 /idieresis\n");
788    printf("   8#360 /eth           8#361 /ntilde        8#362 /ograve        8#363 /oacute\n");
789    printf("   8#364 /ocircumflex   8#365 /otilde        8#366 /odieresis     8#367 /divide\n");
790    printf("   8#370 /oslash        8#371 /ugrave        8#372 /uacute        8#373 /ucircumflex\n");
791    printf("   8#374 /udieresis     8#375 /yacute        8#376 /thorn         8#377 /ydieresis\n");
792    printf("] readonly def\n");
793 
794    return;
795 }
796 
797 /* ---------------------------------------------------------------------------
798 
799    encvec_iso8859_16
800 
801    Notes:
802 
803       This routine outputs a particular PostScript encoding vector, used to
804       support any languages which use that encoding.
805 
806 */
encvec_iso8859_16(void)807 void encvec_iso8859_16 (void)
808 {
809    printf("%%%%%%   %%\n");
810    printf("%%%%%%   %% ISO 8859-16 (Latin10) character mappings\n");
811    printf("%%%%%%   %% \n");
812    printf("%%%%%%   %% This PostScript encoding vector is currently undefined because the\n");
813    printf("%%%%%%   %% information needed to create it was not found.\n");
814    printf("%%%%%%   %% \n");
815    printf("%%%%%%   /alt_mappings [\n");
816    printf("%%%%%%   ] readonly def\n");
817 
818    return;
819 }
820 
821 /* ---------------------------------------------------------------------------
822 
823    encvec_koi8_r
824 
825    Notes:
826 
827       This routine outputs a particular PostScript encoding vector, used to
828       support any languages which use that encoding.
829 
830 */
encvec_koi8_r(void)831 void encvec_koi8_r (void)
832 {
833    printf("%%\n");
834    printf("%% KOI8-R (Russian) character mappings\n");
835    printf("%% \n");
836    printf("%% This PostScript encoding vector was derived from the information at the following\n");
837    printf("%% website (circa Jan 2005), which covers several character mappings:\n");
838    printf("%%    \n");
839    printf("%%    http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html\n");
840    printf("%% \n");
841    printf("/alt_mappings [\n");
842    printf("   8#200 /SF100000    8#201 /SF110000       8#202 /SF010000         8#203 /SF030000\n");
843    printf("   8#204 /SF020000    8#205 /SF040000       8#206 /SF080000         8#207 /SF090000\n");
844    printf("   8#210 /SF060000    8#211 /SF070000       8#212 /SF050000         8#213 /upblock\n");
845    printf("   8#214 /dnblock     8#215 /block          8#216 /lfblock          8#217 /rtblock\n");
846    printf("   8#220 /ltshade     8#221 /shade          8#222 /dkshade          8#223 /integraltp\n");
847    printf("   8#224 /filledbox   8#225 /uni2219        8#226 /radical          8#227 /approxequal\n");
848    printf("   8#230 /lessequal   8#231 /greaterequal   8#232 /uni00A0          8#233 /integralbt\n");
849    printf("   8#234 /degree      8#235 /twosuperior    8#236 /periodcentered   8#237 /divide\n");
850    printf("   8#240 /SF430000    8#241 /SF240000       8#242 /SF510000         8#243 /afii10071\n");
851    printf("   8#244 /SF520000    8#245 /SF390000       8#246 /SF220000         8#247 /SF210000\n");
852    printf("   8#250 /SF250000    8#251 /SF500000       8#252 /SF490000         8#253 /SF380000\n");
853    printf("   8#254 /SF280000    8#255 /SF270000       8#256 /SF260000         8#257 /SF360000\n");
854    printf("   8#260 /SF370000    8#261 /SF420000       8#262 /SF190000         8#263 /afii10023\n");
855    printf("   8#264 /SF200000    8#265 /SF230000       8#266 /SF470000         8#267 /SF480000\n");
856    printf("   8#270 /SF410000    8#271 /SF450000       8#272 /SF460000         8#273 /SF400000\n");
857    printf("   8#274 /SF540000    8#275 /SF530000       8#276 /SF440000         8#277 /copyright\n");
858    printf("   8#300 /afii10096   8#301 /afii10065      8#302 /afii10066        8#303 /afii10088\n");
859    printf("   8#304 /afii10069   8#305 /afii10070      8#306 /afii10086        8#307 /afii10068\n");
860    printf("   8#310 /afii10087   8#311 /afii10074      8#312 /afii10075        8#313 /afii10076\n");
861    printf("   8#314 /afii10077   8#315 /afii10078      8#316 /afii10079        8#317 /afii10080\n");
862    printf("   8#320 /afii10081   8#321 /afii10097      8#322 /afii10082        8#323 /afii10083\n");
863    printf("   8#324 /afii10084   8#325 /afii10085      8#326 /afii10072        8#327 /afii10067\n");
864    printf("   8#330 /afii10094   8#331 /afii10093      8#332 /afii10073        8#333 /afii10090\n");
865    printf("   8#334 /afii10095   8#335 /afii10091      8#336 /afii10089        8#337 /afii10092\n");
866    printf("   8#340 /afii10048   8#341 /afii10017      8#342 /afii10018        8#343 /afii10040\n");
867    printf("   8#344 /afii10021   8#345 /afii10022      8#346 /afii10038        8#347 /afii10020\n");
868    printf("   8#350 /afii10039   8#351 /afii10026      8#352 /afii10027        8#353 /afii10028\n");
869    printf("   8#354 /afii10029   8#355 /afii10030      8#356 /afii10031        8#357 /afii10032\n");
870    printf("   8#360 /afii10033   8#361 /afii10049      8#362 /afii10034        8#363 /afii10035\n");
871    printf("   8#364 /afii10036   8#365 /afii10037      8#366 /afii10024        8#367 /afii10019\n");
872    printf("   8#370 /afii10046   8#371 /afii10045      8#372 /afii10025        8#373 /afii10042\n");
873    printf("   8#374 /afii10047   8#375 /afii10043      8#376 /afii10041        8#377 /afii10044\n");
874    printf("] readonly def\n");
875 
876    return;
877 }
878 
879 /* ---------------------------------------------------------------------------
880 
881    encvec_iso8859_koi8_u
882 
883    Notes:
884 
885       This routine outputs a particular PostScript encoding vector, used to
886       support any languages which use that encoding.
887 
888 */
encvec_koi8_u(void)889 void encvec_koi8_u (void)
890 {
891    printf("%%\n");
892    printf("%% KOI8-U (Ukrainian) character mappings\n");
893    printf("%% \n");
894    printf("%% This PostScript encoding vector came from the Ukrainian language patch\n");
895    printf("%% provided by Volodymyr M. Lisivka <lvm at mystery.lviv.net>.\n");
896    printf("%% \n");
897    printf("/alt_mappings [\n");
898    printf("   8#200 /SF100000    8#201 /SF110000         8#202 /SF010000         8#203 /SF030000\n");
899    printf("   8#204 /SF020000    8#205 /SF040000         8#206 /SF080000         8#207 /SF090000\n");
900    printf("   8#210 /SF060000    8#211 /SF070000         8#212 /SF050000         8#213 /upblock\n");
901    printf("   8#214 /dnblock     8#215 /block            8#216 /lfblock          8#217 /rtblock\n");
902    printf("   8#220 /ltshade     8#221 /shade            8#222 /dkshade          8#223 /integraltp\n");
903    printf("   8#224 /filledbox   8#225 /periodcentered   8#226 /radical          8#227 /approxequal\n");
904    printf("   8#230 /lessequal   8#231 /greaterequal     8#232 /space            8#233 /integralbt\n");
905    printf("   8#234 /degree      8#235 /twosuperior      8#236 /periodcentered   8#237 /divide\n");
906    printf("   8#240 /SF430000    8#241 /SF240000         8#242 /SF510000         8#243 /afii10071\n");
907    printf("   8#244 /afii10101   8#245 /SF390000         8#246 /afii10103        8#247 /afii10104\n");
908    printf("   8#250 /SF250000    8#251 /SF500000         8#252 /SF490000         8#253 /SF380000\n");
909    printf("   8#254 /SF280000    8#255 /afii10098        8#256 /SF260000         8#257 /SF360000\n");
910    printf("   8#260 /SF370000    8#261 /SF420000         8#262 /SF190000         8#263 /afii10023\n");
911    printf("   8#264 /afii10053   8#265 /SF230000         8#266 /afii10055        8#267 /afii10056\n");
912    printf("   8#270 /SF410000    8#271 /SF450000         8#272 /SF460000         8#273 /SF400000\n");
913    printf("   8#274 /SF540000    8#275 /afii10050        8#276 /SF440000         8#277 /copyright\n");
914    printf("   8#300 /afii10096   8#301 /afii10065        8#302 /afii10066        8#303 /afii10088\n");
915    printf("   8#304 /afii10069   8#305 /afii10070        8#306 /afii10086        8#307 /afii10068\n");
916    printf("   8#310 /afii10087   8#311 /afii10074        8#312 /afii10075        8#313 /afii10076\n");
917    printf("   8#314 /afii10077   8#315 /afii10078        8#316 /afii10079        8#317 /afii10080\n");
918    printf("   8#320 /afii10081   8#321 /afii10097        8#322 /afii10082        8#323 /afii10083\n");
919    printf("   8#324 /afii10084   8#325 /afii10085        8#326 /afii10072        8#327 /afii10067\n");
920    printf("   8#330 /afii10094   8#331 /afii10093        8#332 /afii10073        8#333 /afii10090\n");
921    printf("   8#334 /afii10095   8#335 /afii10091        8#336 /afii10089        8#337 /afii10092\n");
922    printf("   8#340 /afii10048   8#341 /afii10017        8#342 /afii10018        8#343 /afii10040\n");
923    printf("   8#344 /afii10021   8#345 /afii10022        8#346 /afii10038        8#347 /afii10020\n");
924    printf("   8#350 /afii10039   8#351 /afii10026        8#352 /afii10027        8#353 /afii10028\n");
925    printf("   8#354 /afii10029   8#355 /afii10030        8#356 /afii10031        8#357 /afii10032\n");
926    printf("   8#360 /afii10033   8#361 /afii10049        8#362 /afii10034        8#363 /afii10035\n");
927    printf("   8#364 /afii10036   8#365 /afii10037        8#366 /afii10024        8#367 /afii10019\n");
928    printf("   8#370 /afii10046   8#371 /afii10045        8#372 /afii10025        8#373 /afii10042\n");
929    printf("   8#374 /afii10047   8#375 /afii10043        8#376 /afii10041        8#377 /afii10044\n");
930    printf("] readonly def\n");
931 
932    return;
933 }
934 
935 /* ---------------------------------------------------------------------------
936 
937    encvec_roman8
938 
939    Notes:
940 
941       This routine outputs a particular PostScript encoding vector, used to
942       support any languages which use that encoding.
943 
944 */
encvec_roman8(void)945 void encvec_roman8 (void)
946 {
947    printf("%%\n");
948    printf("%% Roman8 character mappings\n");
949    printf("%%\n");
950    printf("/alt_mappings [\n");
951    printf("                        8#241 /Agrave           8#242 /Acircumflex    8#243 /Egrave\n");
952    printf("   8#244 /Ecircumflex   8#245 /Edieresis        8#246 /Icircumflex    8#247 /Idieresis\n");
953    printf("   8#250 /acute         8#251 /grave            8#252 /circumflex     8#253 /dieresis\n");
954    printf("   8#254 /tilde         8#255 /Ugrave           8#256 /Ucircumflex    8#257 /sterling\n");
955    printf("   8#260 /macron        8#261 /Yacute           8#262 /yacute         8#263 /degree\n");
956    printf("   8#264 /Ccedilla      8#265 /ccedilla         8#266 /Ntilde         8#267 /ntilde\n");
957    printf("   8#270 /exclamdown    8#271 /questiondown     8#272 /currency       8#273 /sterling\n");
958    printf("   8#274 /yen           8#275 /section          8#276 /florin         8#277 /cent\n");
959    printf("   8#300 /acircumflex   8#301 /ecircumflex      8#302 /ocircumflex    8#303 /ucircumflex\n");
960    printf("   8#304 /aacute        8#305 /eacute           8#306 /oacute         8#307 /uacute\n");
961    printf("   8#310 /agrave        8#311 /egrave           8#312 /ograve         8#313 /ugrave\n");
962    printf("   8#314 /adieresis     8#315 /edieresis        8#316 /odieresis      8#317 /udieresis\n");
963    printf("   8#320 /Aring         8#321 /icircumflex      8#322 /Oslash         8#323 /AE\n");
964    printf("   8#324 /aring         8#325 /iacute           8#326 /oslash         8#327 /ae\n");
965    printf("   8#330 /Adieresis     8#331 /igrave           8#332 /Odieresis      8#333 /Udieresis\n");
966    printf("   8#334 /Eacute        8#335 /idieresis        8#336 /germandbls     8#337 /Ocircumflex\n");
967    printf("   8#340 /Aacute        8#341 /Atilde           8#342 /atilde         8#343 /Eth\n");
968    printf("   8#344 /eth           8#345 /Iacute           8#346 /Igrave         8#347 /Oacute\n");
969    printf("   8#350 /Ograve        8#351 /Otilde           8#352 /otilde         8#353 /Scaron\n");
970    printf("   8#354 /scaron        8#355 /Uacute           8#356 /Ydieresis      8#357 /ydieresis\n");
971    printf("   8#360 /thorn         8#361 /Thorn            8#362 /dotaccent      8#363 /mu\n");
972    printf("   8#364 /paragraph     8#365 /threequarters    8#366 /hyphen         8#367 /onequarter\n");
973    printf("   8#370 /onehalf       8#371 /ordfeminine      8#372 /ordmasculine   8#373 /guillemotleft\n");
974    printf("   8#374 /bullet        8#375 /guillemotright   8#376 /plusminus      8#377 /.notdef\n");
975    printf("] readonly def\n");
976 
977    return;
978 }
979