summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fontinst/base/examples/basicex.tex
blob: fe7f6f699350b19c07745434f33dbdc9587f7a44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
% basicex.tex
% 
% This file contains some basic examples of commands for
% installing the AGaramond family of fonts with fontinst v1.9.
% It is pretty similar to what the \latinfamily command
% does for these fonts, but the details are not identical.
% 
% In case you want to run this file yourself, the metrics for 
% the AGaramond font family can be downloaded from
% 
%   ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/051-100/100/
% and
%   ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/101-150/101/
% 
% The AFM files found in these directories should then be renamed 
% as indicated in the Fontname adobe.map file. Also note that 
% the line endings are Windows-style (CRLF), so you probably need
% to download as binary and do some conversion before you can use
% these files comfortably.

\input fontinst.sty

% This tells fontinst to collect information about font 
% transformations in the file basicex.recs. That file is
% then used by basicex2.tex.
\recordtransforms{basicex.recs}

% These commands perform transformations on the metrics of
% some of the fonts, thereby creating new metrics files for
% the transformed fonts.
\transformfont{padr8r}{\reencodefont{8r}{\fromafm{padr8a}}}
\transformfont{padrc8r}{\reencodefont{8r}{\fromafm{padrc8a}}}
\transformfont{padri8r}{\reencodefont{8r}{\fromafm{padri8a}}}
\transformfont{padro8r}{\slantfont{250}{\frommtx{padr8r}}}
\transformfont{padro8x}{\slantfont{250}{\fromafm{padr8x}}}

% The first three lines of each group reencode fonts 
% so that TeX can access all glyphs in them.
\transformfont{pads8r}{\reencodefont{8r}{\fromafm{pads8a}}}
\transformfont{padsc8r}{\reencodefont{8r}{\fromafm{padsc8a}}}
\transformfont{padsi8r}{\reencodefont{8r}{\fromafm{padsi8a}}}
% The last two lines artifically create slanted variants
% of fonts by skewing them. 250 is the natural slant of
% the italics in this family.
\transformfont{padso8r}{\slantfont{250}{\frommtx{pads8r}}}
\transformfont{padso8x}{\slantfont{250}{\fromafm{pads8x}}}

\transformfont{padb8r}{\reencodefont{8r}{\fromafm{padb8a}}}
% There is no padbc8a, hence nothing to make a padbc8r from.
\transformfont{padbi8r}{\reencodefont{8r}{\fromafm{padbi8a}}}
\transformfont{padbo8r}{\slantfont{250}{\frommtx{padb8r}}}
\transformfont{padbo8x}{\slantfont{250}{\fromafm{padb8x}}}
% The DVI driver must be told to make the same transformations 
% to the actual fonts when a document using them is to be viewed
% or printed. The information collected in basicex.recs can
% help with this. The job of basicex2.tex is to translate this
% information to a format understood by DVI drivers.


% The \transformfont commands above generate metric files in MTX 
% format (for use by the \installfont commands below) and PL 
% format (for transformation to TFMs that are needed by the DVI
% driver when interpreting VFs based on these fonts). These PL
% files are minimal and not suitable for direct use in typesetting
% since there is no kerning information, ligaturing instructions,
% or fontdimens, but they are perfectly adequate to serve as
% base fonts for VFs.
% 
% The next bunch of commands generate a new set of PL files for 
% these fonts (overwriting the previous), and these new files
% do contain kerning information, ligaturing instructions, and
% fontdimens. (As a side-effect, these files are also larger than
% the previous ones.) Since 8r-encoded fonts are not in practice
% used for typesetting (not much, anyway), it is perfectly 
% possible to skip this step.
\installfonts
  \installrawfont {padr8r}{padr8r,8r}{8r}   {8r}{pad}{m}{n}{}
  \installrawfont {padrc8r}{padrc8r,8r}{8r} {8r}{pad}{m}{sc}{}
  \installrawfont {padri8r}{padri8r,8r}{8r} {8r}{pad}{m}{it}{}
  \installrawfont {padro8r}{padro8r,8r}{8r} {8r}{pad}{m}{sl}{}
  
  \installrawfont {pads8r}{pads8r,8r}{8r}   {8r}{pad}{sb}{n}{}
  \installrawfont {padsc8r}{padsc8r,8r}{8r} {8r}{pad}{sb}{sc}{}
  \installrawfont {padsi8r}{padsi8r,8r}{8r} {8r}{pad}{sb}{it}{}
  \installrawfont {padso8r}{padso8r,8r}{8r} {8r}{pad}{sb}{sl}{}
  
  \installrawfont {padb8r}{padb8r,8r}{8r}   {8r}{pad}{b}{n}{}
  \installrawfont {padbi8r}{padbi8r,8r}{8r} {8r}{pad}{b}{it}{}
  \installrawfont {padbo8r}{padbo8r,8r}{8r} {8r}{pad}{b}{sl}{}
\endinstallfonts


% In the above commands, the commands have been lined up to 
% visually separate those arguments that have to do with how
% a font is declared to LaTeX (rightmost) from those arguments 
% that specify how the font is made and what it should be called.


% The following commands make a very basic installation of "pad"
% families in the OT1, T1, and TS1 encodings; there is not attempt
% to make use of the -Exp (expert) or -SC (smallcaps) fonts in 
% the AGaramond family. (One reason for making this distinction
% is that Adobe sell these other fonts separately, so some people
% may have the basic set used below and nothing more. Another
% reason is that for many typefaces, there are no expert or -SC
% fonts at all. Adapting an example using such fonts to a typeface
% which do not have them is much too confusing for a beginner.)
\installfonts
  \installfamily{OT1}{pad}{}
  \installfamily{T1}{pad}{}
  \installfamily{TS1}{pad}{}
  
  \installfont {padr8t}{padr8r,newlatin}{t1}                {T1}{pad}{m}{n}{}
  \installfont {padr7t}{padr8r,newlatin}{ot1}               {OT1}{pad}{m}{n}{}
  \installfont {padrc8t}{padr8r,newlatin}{t1c}              {T1}{pad}{m}{sc}{}
  \installfont {padrc7t}{padr8r,newlatin}{ot1c}             {OT1}{pad}{m}{sc}{}
  \installfont {padr8i}{padr8r,textcomp}{ts1}               {TS1}{pad}{m}{n}{}
  % There is no difference between the n and the sc shapes 
  % of TS1 encoded fonts, hence the same TeX font can be
  % used for both. LaTeX does however need the declarations
  % to be explicit, hence this \installfontas command.
  \installfontas{padr8i}                                    {TS1}{pad}{m}{sc}{}
  % The "option nosc" below is a speed optimization.
  % newlatin.mtx normally makes sure that a smallcaps 
  % alphabet is defined (faking it if necessary), 
  % regardless of whether that alphabet is at all 
  % going to be used. By passing it the "nosc" option,
  % one can tell newlatin.mtx to completely skip those 
  % commands that have to do with smallcaps.
  \installfont {padri8t}{padri8r,newlatin option nosc}{t1}  {T1}{pad}{m}{it}{}
  \installfont {padri7t}{padri8r,newlatin option nosc}{ot1} {OT1}{pad}{m}{it}{}
  \installfont {padri8i}{padri8r,textcomp}{ts1}             {TS1}{pad}{m}{it}{}
  \installfont {padro8t}{padro8r,newlatin option nosc}{t1}  {T1}{pad}{m}{sl}{}
  \installfont {padro7t}{padro8r,newlatin option nosc}{ot1} {OT1}{pad}{m}{sl}{}
  \installfont {padro8i}{padro8r,textcomp}{ts1}             {TS1}{pad}{m}{sl}{}
  
  % The reason newlatin is not passed the nosc option when
  % making the "n" shape fonts here is another (more tricky)
  % speed optimization. If the metric argument of two
  % subsequent \installfont commands are identical then the
  % respective glyph bases will be identical too, and in these 
  % cases fontinst saves work by not rebuilding the glyph base
  % at the second command, but instead using the cached 
  % definitions from the first.
  \installfont {pads8t}{pads8r,newlatin}{t1}                {T1}{pad}{sb}{n}{}
  \installfont {pads7t}{pads8r,newlatin}{ot1}               {OT1}{pad}{sb}{n}{}
  \installfont {padsc8t}{pads8r,newlatin}{t1c}              {T1}{pad}{sb}{sc}{}
  \installfont {padsc7t}{pads8r,newlatin}{ot1c}             {OT1}{pad}{sb}{sc}{}
  % Thus the last four commands cause four fonts to be
  % generated, but the pads8r.mtx and newlatin.mtx files
  % are only read once.
  \installfont {pads8i}{pads8r,textcomp}{ts1}               {TS1}{pad}{sb}{n}{}
  \installfontas{pads8i}                                    {TS1}{pad}{sb}{sc}{}
  \installfont {padsi8t}{padsi8r,newlatin option nosc}{t1}  {T1}{pad}{sb}{it}{}
  \installfont {padsi7t}{padsi8r,newlatin option nosc}{ot1} {OT1}{pad}{sb}{it}{}
  \installfont {padsi8i}{padsi8r,textcomp}{ts1}             {TS1}{pad}{sb}{it}{}
  \installfont {padso8t}{padso8r,newlatin option nosc}{t1}  {T1}{pad}{sb}{sl}{}
  \installfont {padso7t}{padso8r,newlatin option nosc}{ot1} {OT1}{pad}{sb}{sl}{}
  \installfont {padso8i}{padso8r,textcomp}{ts1}             {TS1}{pad}{sb}{sl}{}
  
  \installfont {padb8t}{padb8r,newlatin}{t1}                {T1}{pad}{b}{n}{}
  \installfont {padb7t}{padb8r,newlatin}{ot1}               {OT1}{pad}{b}{n}{}
  \installfont {padbc8t}{padb8r,newlatin}{t1c}              {T1}{pad}{b}{sc}{}
  \installfont {padbc7t}{padb8r,newlatin}{ot1c}             {OT1}{pad}{b}{sc}{}
  \installfont {padb8i}{padb8r,textcomp}{ts1}               {TS1}{pad}{b}{n}{}
  \installfontas{padb8i}                                    {TS1}{pad}{b}{sc}{}
  \installfont {padbi8t}{padbi8r,newlatin option nosc}{t1}  {T1}{pad}{b}{it}{}
  \installfont {padbi7t}{padbi8r,newlatin option nosc}{ot1} {OT1}{pad}{b}{it}{}
  \installfont {padbi8i}{padbi8r,textcomp}{ts1}             {TS1}{pad}{b}{it}{}
  \installfont {padbo8t}{padbo8r,newlatin option nosc}{t1}  {T1}{pad}{b}{sl}{}
  \installfont {padbo7t}{padbo8r,newlatin option nosc}{ot1} {OT1}{pad}{b}{sl}{}
  \installfont {padbo8i}{padbo8r,textcomp}{ts1}             {TS1}{pad}{b}{sl}{}
\endinstallfonts


% The set of commands above will "fake" an sc shape for the typeface
% by making dual use of the capitals in the n shape (Regular): both
% as normal (for the upper case in the sc shape) and shrunk to 80% of
% their normal size (for the lower case in the sc shape). This works
% (anyone who looks at it will understand what was intended), but it 
% does not look good, and therefore it is always better to make use
% of proper smallcaps when it is available.
% 
% The next set of commands is another take at creating the "pad" 
% families, this time making use of the proper smallcaps in padrc8r
% and padsc8r. The files created by this set of commands will 
% completely overwrite the files created by the previous set of
% commands; in practice one would only include one set of commands,
% but both are provided here for comparison.
\installfonts
  \installfamily{OT1}{pad}{}
  \installfamily{T1}{pad}{}
  \installfamily{TS1}{pad}{}
  
  % Since the glyph bases used for the n and sc shapes in this
  % case are different, there is no point in doing the smallcaps
  % processing when making the n shape fonts.
  \installfont {padr8t}{padr8r,newlatin option nosc}{t1}    {T1}{pad}{m}{n}{}
  \installfont {padr7t}{padr8r,newlatin option nosc}{ot1}   {OT1}{pad}{m}{n}{}
  % There is actually no point in doing that processing for
  % the sc shape fonts either! This is because the glyph names
  % used in padrc8r are the same as those used in padr8r (and
  % padri8r), and thus the smallcaps glyphs will already have
  % been delt with by the code for lower case glyphs. Another
  % consequence is that the same ETX files as are used for 
  % the other shapes should be used for the sc shape.
  \installfont {padrc8t}{padrc8r,newlatin option nosc}{t1}  {T1}{pad}{m}{sc}{}
  \installfont {padrc7t}{padrc8r,newlatin option nosc}{ot1} {OT1}{pad}{m}{sc}{}
  \installfont {padr8i}{padr8r,textcomp}{ts1}               {TS1}{pad}{m}{n}{}
  \installfontas{padr8i}                                    {TS1}{pad}{m}{sc}{}
  \installfont {padri8t}{padri8r,newlatin option nosc}{t1}  {T1}{pad}{m}{it}{}
  \installfont {padri7t}{padri8r,newlatin option nosc}{ot1} {OT1}{pad}{m}{it}{}
  \installfont {padri8i}{padri8r,textcomp}{ts1}             {TS1}{pad}{m}{it}{}
  \installfont {padro8t}{padro8r,newlatin option nosc}{t1}  {T1}{pad}{m}{sl}{}
  \installfont {padro7t}{padro8r,newlatin option nosc}{ot1} {OT1}{pad}{m}{sl}{}
  \installfont {padro8i}{padro8r,textcomp}{ts1}             {TS1}{pad}{m}{sl}{}
  
  \installfont {pads8t}{pads8r,newlatin option nosc}{t1}    {T1}{pad}{sb}{n}{}
  \installfont {pads7t}{pads8r,newlatin option nosc}{ot1}   {OT1}{pad}{sb}{n}{}
  \installfont {padsc8t}{padsc8r,newlatin option nosc}{t1}  {T1}{pad}{sb}{sc}{}
  \installfont {padsc7t}{padsc8r,newlatin option nosc}{ot1} {OT1}{pad}{sb}{sc}{}
  \installfont {pads8i}{pads8r,textcomp}{ts1}               {TS1}{pad}{sb}{n}{}
  \installfontas{pads8i}                                    {TS1}{pad}{sb}{sc}{}
  \installfont {padsi8t}{padsi8r,newlatin option nosc}{t1}  {T1}{pad}{sb}{it}{}
  \installfont {padsi7t}{padsi8r,newlatin option nosc}{ot1} {OT1}{pad}{sb}{it}{}
  \installfont {padsi8i}{padsi8r,textcomp}{ts1}             {TS1}{pad}{sb}{it}{}
  \installfont {padso8t}{padso8r,newlatin option nosc}{t1}  {T1}{pad}{sb}{sl}{}
  \installfont {padso7t}{padso8r,newlatin option nosc}{ot1} {OT1}{pad}{sb}{sl}{}
  \installfont {padso8i}{padso8r,textcomp}{ts1}             {TS1}{pad}{sb}{sl}{}
  
  % There is however no padbc8r font; hence the sc shape of 
  % the b series must still be faked, just as above.
  \installfont {padb8t}{padb8r,newlatin}{t1}                {T1}{pad}{b}{n}{}
  \installfont {padb7t}{padb8r,newlatin}{ot1}               {OT1}{pad}{b}{n}{}
  \installfont {padbc8t}{padb8r,newlatin}{t1c}              {T1}{pad}{b}{sc}{}
  \installfont {padbc7t}{padb8r,newlatin}{ot1c}             {OT1}{pad}{b}{sc}{}
  \installfont {padb8i}{padb8r,textcomp}{ts1}               {TS1}{pad}{b}{n}{}
  \installfontas{padb8i}                                    {TS1}{pad}{b}{sc}{}
  \installfont {padbi8t}{padbi8r,newlatin option nosc}{t1}  {T1}{pad}{b}{it}{}
  \installfont {padbi7t}{padbi8r,newlatin option nosc}{ot1} {OT1}{pad}{b}{it}{}
  \installfont {padbi8i}{padbi8r,textcomp}{ts1}             {TS1}{pad}{b}{it}{}
  \installfont {padbo8t}{padbo8r,newlatin option nosc}{t1}  {T1}{pad}{b}{sl}{}
  \installfont {padbo7t}{padbo8r,newlatin option nosc}{ot1} {OT1}{pad}{b}{sl}{}
  \installfont {padbo8i}{padbo8r,textcomp}{ts1}             {TS1}{pad}{b}{sl}{}
\endinstallfonts


% The "pad" family installed above is however still far from perfect. 
% The `ff', `ffi', and `ffl' ligatures are fakes, since those aren't 
% available in the fonts used. There are however such glyphs in the 
% expert (8x) companions of the fonts used above, and hence the 
% results will be better if these resources can be combined.
% 
% One of the great advantages with TeX, virtual fonts, and fontinst 
% is the ease with which one can combine glyphs from (what the foundry 
% has packaged as) several different fonts into a single font; 
% if \installfont is given the metrics of two fonts, and some glyph
% is available in one font but not the other, then fontinst will 
% automatically take it from the font where it was available.
% Hence one can fill in (at least some of) the blanks of one font 
% by also listing a second font in the metrics argument of 
% \installfont. It will do the right thing automatically.
\installfonts
  \installfamily{OT1}{padx}{}
  \installfamily{T1}{padx}{}
  \installfamily{TS1}{padx}{}
  % The "padx" family name used here is mainly motivated by 
  % tradition. It has been considered useful to simultaneously 
  % on a single system have both a family of virtual fonts which 
  % do not make use of the expert set of base fonts, and a family
  % of virtual fonts which do make use of the expert set of base 
  % fonts. For this to work, the different fonts must have
  % different names. In the Fontname scheme, this is accomplished
  % by including an "x" variant letter in the names to signify that
  % the font is "expertized". In LaTeX there is no proper standard
  % for this, but the custom is to similarly append an "x" to the
  % basic three letter family name, thus yielding "padx" instead
  % of "pad".
  
  % The Fontname scheme is in this case further complicated by
  % a desire to avoid names of more than eight characters 
  % (a limit which is important in many old file systems).
  % Therefore many of the two-character variants starting with
  % 9 is a combination of an encoding variant with one or two
  % other variants (most commonly the "x" variant). The commands
  % below utilize these abbreviations (but there is no software
  % involved which would require them to).
  \installfont {padr9e}{padr8r,padr8x,newlatin}{t1}                 {T1}{padx}{m}{n}{}
  \installfont {padr9t}{padr8r,padr8x,newlatin}{ot1}                {OT1}{padx}{m}{n}{}
  % Besides the extra ligatures, the upright 8x fonts also contain 
  % a proper smallcaps alphabet. This makes it possible to make do 
  % without the -c8r fonts. The commands below will make a font
  % using the upper case from padr8r and (as lower case) the
  % small caps from padr8x.
  \installfont {padrc9e}{padr8r,padr8x,newlatin}{t1c}               {T1}{padx}{m}{sc}{}
  \installfont {padrc9t}{padr8r,padr8x,newlatin}{ot1c}              {OT1}{padx}{m}{sc}{}
  \installfont {padr9i}{padr8r,padr8x,textcomp}{ts1}                {TS1}{padx}{m}{n}{}
  \installfontas{padr9i}                                            {TS1}{padx}{m}{sc}{}
  \installfont {padri9e}{padri8r,padri8x,newlatin option nosc}{t1}  {T1}{padx}{m}{it}{}
  \installfont {padri9t}{padri8r,padri8x,newlatin option nosc}{ot1} {OT1}{padx}{m}{it}{}
  \installfont {padri9i}{padri8r,padri8x,textcomp}{ts1}             {TS1}{padx}{m}{it}{}
  \installfont {padro9e}{padro8r,padro8x,newlatin option nosc}{t1}  {T1}{padx}{m}{sl}{}
  \installfont {padro9t}{padro8r,padro8x,newlatin option nosc}{ot1} {OT1}{padx}{m}{sl}{}
  \installfont {padro9i}{padro8r,padro8x,textcomp}{ts1}             {TS1}{padx}{m}{sl}{}
  
  \installfont {pads9e}{pads8r,pads8x,newlatin}{t1}                 {T1}{padx}{sb}{n}{}
  \installfont {pads9t}{pads8r,pads8x,newlatin}{ot1}                {OT1}{padx}{sb}{n}{}
  \installfont {padsc9e}{pads8r,pads8x,newlatin}{t1c}               {T1}{padx}{sb}{sc}{}
  \installfont {padsc9t}{pads8r,pads8x,newlatin}{ot1c}              {OT1}{padx}{sb}{sc}{}
  \installfont {pads9i}{pads8r,pads8x,textcomp}{ts1}                {TS1}{padx}{sb}{n}{}
  \installfontas{pads9i}                                            {TS1}{padx}{sb}{sc}{}
  \installfont {padsi9e}{padsi8r,padsi8x,newlatin option nosc}{t1}  {T1}{padx}{sb}{it}{}
  \installfont {padsi9t}{padsi8r,padsi8x,newlatin option nosc}{ot1} {OT1}{padx}{sb}{it}{}
  \installfont {padsi9i}{padsi8r,padsi8x,textcomp}{ts1}             {TS1}{padx}{sb}{it}{}
  \installfont {padso9e}{padso8r,padso8x,newlatin option nosc}{t1}  {T1}{padx}{sb}{sl}{}
  \installfont {padso9t}{padso8r,padso8x,newlatin option nosc}{ot1} {OT1}{padx}{sb}{sl}{}
  \installfont {padso9i}{padso8r,padso8x,textcomp}{ts1}             {TS1}{padx}{sb}{sl}{}
  
  \installfont {padb9e}{padb8r,padb8x,newlatin}{t1}                 {T1}{padx}{b}{n}{}
  \installfont {padb9t}{padb8r,padb8x,newlatin}{ot1}                {OT1}{padx}{b}{n}{}
  % The padb8x font does not contain a smallcaps alphabet --
  % hence in this case the newlatin.mtx file reverts to faking
  % such an alphabet by shrinking the upper case. The commands
  % can however be the same as above!
  \installfont {padbc9e}{padb8r,padb8x,newlatin}{t1c}               {T1}{padx}{b}{sc}{}
  \installfont {padbc9t}{padb8r,padb8x,newlatin}{ot1c}              {OT1}{padx}{b}{sc}{}
  \installfont {padb9i}{padb8r,padb8x,textcomp}{ts1}                {TS1}{padx}{b}{n}{}
  \installfontas{padb9i}                                            {TS1}{padx}{b}{sc}{}
  \installfont {padbi9e}{padbi8r,padbi8x,newlatin option nosc}{t1}  {T1}{padx}{b}{it}{}
  \installfont {padbi9t}{padbi8r,padbi8x,newlatin option nosc}{ot1} {OT1}{padx}{b}{it}{}
  \installfont {padbi9i}{padbi8r,padbi8x,textcomp}{ts1}             {TS1}{padx}{b}{it}{}
  \installfont {padbo9e}{padbo8r,padbo8x,newlatin option nosc}{t1}  {T1}{padx}{b}{sl}{}
  \installfont {padbo9t}{padbo8r,padbo8x,newlatin option nosc}{ot1} {OT1}{padx}{b}{sl}{}
  \installfont {padbo9i}{padbo8r,padbo8x,textcomp}{ts1}             {TS1}{padx}{b}{sl}{}
\endinstallfonts


% Finally we get to my personal favourite -- the families with hanging
% (a.k.a. oldstyle) figures. From a historical point of view, this is
% really the most correct appearence of these fonts, because in the 16th
% century (when Claude Garamond designed the metal types after which the
% AGaramond fonts where modelled) there was no such thing as lining 
% figures; all figures were hanging.
% 
% The 8x fonts all contain a suitable set of hanging figures. This makes
% it very straightforward to make use of these instead of the lining
% digits of the base fonts. One simply has to make use of ETX files
% which selects these glyphs hanging figure glyphs instead of the
% lining figure glyphs.
\installfonts
  \installfamily{OT1}{padj}{}
  \installfamily{T1}{padj}{}
  \installfamily{TS1}{padj}{}
  % Another custom: a "j" (the Fontname hanging figure variant letter) 
  % is appended to the LaTeX family name to distinguish between 
  % lining and hanging figure families.
  
  \installfont {padr9d}{padr8r,padr8x,newlatin}{t1j}                 {T1}{padj}{m}{n}{}
  \installfont {padr9o}{padr8r,padr8x,newlatin}{ot1j}                {OT1}{padj}{m}{n}{}
  \installfont {padrc9d}{padr8r,padr8x,newlatin}{t1cj}               {T1}{padj}{m}{sc}{}
  \installfont {padrc9o}{padr8r,padr8x,newlatin}{ot1cj}              {OT1}{padj}{m}{sc}{}
  \installfont {padr9i}{padr8r,padr8x,textcomp}{ts1}                 {TS1}{padj}{m}{n}{}
  \installfontas{padr9i}                                             {TS1}{padj}{m}{sc}{}
  \installfont {padri9d}{padri8r,padri8x,newlatin option nosc}{t1j}  {T1}{padj}{m}{it}{}
  \installfont {padri9o}{padri8r,padri8x,newlatin option nosc}{ot1j} {OT1}{padj}{m}{it}{}
  \installfont {padri9i}{padri8r,padri8x,textcomp}{ts1}              {TS1}{padj}{m}{it}{}
  \installfont {padro9d}{padro8r,padro8x,newlatin option nosc}{t1j}  {T1}{padj}{m}{sl}{}
  \installfont {padro9o}{padro8r,padro8x,newlatin option nosc}{ot1j} {OT1}{padj}{m}{sl}{}
  \installfont {padro9i}{padro8r,padro8x,textcomp}{ts1}              {TS1}{padj}{m}{sl}{}
  
  \installfont {pads9d}{pads8r,pads8x,newlatin}{t1j}                 {T1}{padj}{sb}{n}{}
  \installfont {pads9o}{pads8r,pads8x,newlatin}{ot1j}                {OT1}{padj}{sb}{n}{}
  \installfont {padsc9d}{pads8r,pads8x,newlatin}{t1cj}               {T1}{padj}{sb}{sc}{}
  \installfont {padsc9o}{pads8r,pads8x,newlatin}{ot1cj}              {OT1}{padj}{sb}{sc}{}
  \installfont {pads9i}{pads8r,pads8x,textcomp}{ts1}                 {TS1}{padj}{sb}{n}{}
  \installfontas{pads9i}                                             {TS1}{padj}{sb}{sc}{}
  \installfont {padsi9d}{padsi8r,padsi8x,newlatin option nosc}{t1j}  {T1}{padj}{sb}{it}{}
  \installfont {padsi9o}{padsi8r,padsi8x,newlatin option nosc}{ot1j} {OT1}{padj}{sb}{it}{}
  \installfont {padsi9i}{padsi8r,padsi8x,textcomp}{ts1}              {TS1}{padj}{sb}{it}{}
  \installfont {padso9d}{padso8r,padso8x,newlatin option nosc}{t1j}  {T1}{padj}{sb}{sl}{}
  \installfont {padso9o}{padso8r,padso8x,newlatin option nosc}{ot1j} {OT1}{padj}{sb}{sl}{}
  \installfont {padso9i}{padso8r,padso8x,textcomp}{ts1}              {TS1}{padj}{sb}{sl}{}
  
  \installfont {padb9d}{padb8r,padb8x,newlatin}{t1j}                 {T1}{padj}{b}{n}{}
  \installfont {padb9o}{padb8r,padb8x,newlatin}{ot1j}                {OT1}{padj}{b}{n}{}
  \installfont {padbc9d}{padb8r,padb8x,newlatin}{t1cj}               {T1}{padj}{b}{sc}{}
  \installfont {padbc9o}{padb8r,padb8x,newlatin}{ot1cj}              {OT1}{padj}{b}{sc}{}
  \installfont {padb9i}{padb8r,padb8x,textcomp}{ts1}                 {TS1}{padj}{b}{n}{}
  \installfontas{padb9i}                                             {TS1}{padj}{b}{sc}{}
  \installfont {padbi9d}{padbi8r,padbi8x,newlatin option nosc}{t1j}  {T1}{padj}{b}{it}{}
  \installfont {padbi9o}{padbi8r,padbi8x,newlatin option nosc}{ot1j} {OT1}{padj}{b}{it}{}
  \installfont {padbi9i}{padbi8r,padbi8x,textcomp}{ts1}              {TS1}{padj}{b}{it}{}
  \installfont {padbo9d}{padbo8r,padbo8x,newlatin option nosc}{t1j}  {T1}{padj}{b}{sl}{}
  \installfont {padbo9o}{padbo8r,padbo8x,newlatin option nosc}{ot1j} {OT1}{padj}{b}{sl}{}
  \installfont {padbo9i}{padbo8r,padbo8x,textcomp}{ts1}              {TS1}{padj}{b}{sl}{}
\endinstallfonts

% This closes the file opened by \recordtransforms above.
\endrecordtransforms

\bye

% The installations made by the above commands are certainly not
% optimal. Some things which can be improved are:
% 
%  - Although the padrc9e, padrc9t, padsc9e, padsc9t, padrc9d,
%    padrc9o, padsc9d, and padsc9o fonts contain proper smallcaps
%    glyphs, there are no kerns between the smallcaps and 
%    the upper case in these fonts, because there were no such 
%    kerns in any of the fonts they are based on. There are 
%    however such kerning pairs in padrc8r and padsc8r, and it is
%    quite easy to extract this information using the \reglyphfont
%    command with the settings in the csckrn2x.tex file.
%    
%  - The padrc8t, padrc7t, padsc8t, and padsc7t fonts that are 
%    based on padrc8r and padsc8r respectively have hanging figures,
%    whereas the other fonts in the same family have lining figures.
%    This is only because that is how the foundry packaged the 
%    glyphs into fonts, and the careful font installer might want
%    to straighten out this situation. One way to do that is
%    to make use of the unsetnum.mtx file, another is to make
%    use of the `suffix' mechanism (new in v1.923).
%    
%  - One glyph which is missing from all the fonts made above is
%    the Euro glyph (and that is kind of awkward these days, although 
%    as of v1.926 textcomp.mtx fakes this using a C and two rules).
%    One way to supply a Euro glyph is to provide yet another font 
%    (besides the -8r's and -8x's) as base font, if that extra 
%    font contains the missing Euro glyph. The same trick can be used
%    to get greek capitals for the OT1-encoded fonts.