summaryrefslogtreecommitdiff
path: root/fonts/utilities/fontinst/examples
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/utilities/fontinst/examples
Initial commit
Diffstat (limited to 'fonts/utilities/fontinst/examples')
-rw-r--r--fonts/utilities/fontinst/examples/basic/basicex.tex431
-rw-r--r--fonts/utilities/fontinst/examples/basic/basicex2.tex50
-rw-r--r--fonts/utilities/fontinst/examples/eurofont/Makefile45
-rw-r--r--fonts/utilities/fontinst/examples/eurofont/eurofont.map12
-rw-r--r--fonts/utilities/fontinst/examples/eurofont/eurofont.tex43
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/Makefile24
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/fontptcm.tex75
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/mathtest.tex643
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/resetsy.mtx30
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/unsetmu.mtx7
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/zrhax.mtx15
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/zrmhax.mtx14
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/zrmkern.mtx158
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/zrvhax.mtx73
-rw-r--r--fonts/utilities/fontinst/examples/mathptm/zryhax.mtx26
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/Makefile23
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/fontptcmx.tex76
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/mathptmx.sty42
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/mathtestx.tex643
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/resetsy.mtx30
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/unsetmu.mtx7
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/zrhax.mtx15
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/zrmhax.mtx14
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/zrmkernx.mtx239
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/zrvhax.mtx73
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/zryhax.mtx26
-rw-r--r--fonts/utilities/fontinst/examples/mathptmx/zrykernx.mtx35
27 files changed, 2869 insertions, 0 deletions
diff --git a/fonts/utilities/fontinst/examples/basic/basicex.tex b/fonts/utilities/fontinst/examples/basic/basicex.tex
new file mode 100644
index 0000000000..fe7f6f6993
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/basic/basicex.tex
@@ -0,0 +1,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.
+
diff --git a/fonts/utilities/fontinst/examples/basic/basicex2.tex b/fonts/utilities/fontinst/examples/basic/basicex2.tex
new file mode 100644
index 0000000000..74fe2a4df5
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/basic/basicex2.tex
@@ -0,0 +1,50 @@
+%
+% basicex2.tex
+%
+% fontinst command file for writing map file fragments for
+% the raw fonts used by the fonts made in basicex.tex.
+%
+
+\input finstmsc.sty
+
+% At this point, you might want to change some settings
+% to make the map file fragments written better adjusted
+% to your particular system. Some common examples are:
+%
+% \resetstr{PSfontsuffix}{.pfb}
+%
+% which is useful if the actual fonts are in PFB format.
+%
+% \AssumeLWFN
+%
+% This is useful if the font files are named according to
+% the old Mac OS Classic convention for PostScript fonts
+% (names like AGarBolIta).
+
+\adddriver{dvips}{dvips.map}
+% This causes a .map file for dvips to be written.
+% It is probably better to choose a name that has to
+% do with the fonts than to use `dvips.map'.
+% In some systems, there is a program updmap which combines
+% several small .map files such as this one into a large
+% psfonts.map file.
+\adddriver{dvipdfm}{dvipdfm.map}
+% Similar file for dvipdfm.
+\adddriver{pltotf}{pltotf-script.sh}
+% A shell script that runs pltotf on those .pl files
+% which you need to turn into .tfm files.
+\adddriver{debug}{mapdump.txt}
+% This file contains the available data in a human-readable
+% format. This is useful if your dvi driver uses some other
+% kind of map file.
+
+\input basicex.recs
+% This is where all the work is done.
+
+\donedrivers
+% This closes the files and does some cleanup.
+
+\bye
+
+
+
diff --git a/fonts/utilities/fontinst/examples/eurofont/Makefile b/fonts/utilities/fontinst/examples/eurofont/Makefile
new file mode 100644
index 0000000000..ec07888a1a
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/eurofont/Makefile
@@ -0,0 +1,45 @@
+## Makefile to build TS1-encoded text companion fonts
+## for Times, Helvetica and Symbol using the Adobe Euro Fonts
+
+all: afms tex vfs
+
+afms:
+ cp _3______.afm zpeur.afm
+ cp _3i_____.afm zpeuri.afm
+ cp _3b_____.afm zpeub.afm
+ cp _3bi____.afm zpeubi.afm
+ cp _1______.afm zpeurs.afm
+ cp _1i_____.afm zpeuris.afm
+ cp _1b_____.afm zpeubs.afm
+ cp _1bi____.afm zpeubis.afm
+ cp _2______.afm zpeurt.afm
+ cp _2i_____.afm zpeurit.afm
+ cp _2b_____.afm zpeubt.afm
+ cp _2bi____.afm zpeubit.afm
+
+tex:
+ tex eurofont.tex
+
+vfs:
+ vptovf ptmr8c.vpl ptmr8c.vf ptmr8c.tfm
+ vptovf ptmro8c.vpl ptmro8c.vf ptmro8c.tfm
+ vptovf ptmri8c.vpl ptmri8c.vf ptmri8c.tfm
+ vptovf ptmb8c.vpl ptmb8c.vf ptmb8c.tfm
+ vptovf ptmbo8c.vpl ptmbo8c.vf ptmbo8c.tfm
+ vptovf ptmbi8c.vpl ptmbi8c.vf ptmbi8c.tfm
+
+ vptovf phvr8c.vpl phvr8c.vf phvr8c.tfm
+ vptovf phvro8c.vpl phvro8c.vf phvro8c.tfm
+ vptovf phvb8c.vpl phvb8c.vf phvb8c.tfm
+ vptovf phvbo8c.vpl phvbo8c.vf phvbo8c.tfm
+
+ vptovf pcrr8c.vpl pcrr8c.vf pcrr8c.tfm
+ vptovf pcrro8c.vpl pcrro8c.vf pcrro8c.tfm
+ vptovf pcrb8c.vpl pcrb8c.vf pcrb8c.tfm
+ vptovf pcrbo8c.vpl pcrbo8c.vf pcrbo8c.tfm
+
+clean:
+ -rm *.mtx *.pl *.vpl *.log
+
+realclean: clean
+ -rm p*.tfm *.vf *.fd
diff --git a/fonts/utilities/fontinst/examples/eurofont/eurofont.map b/fonts/utilities/fontinst/examples/eurofont/eurofont.map
new file mode 100644
index 0000000000..373ffd2d16
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/eurofont/eurofont.map
@@ -0,0 +1,12 @@
+zpeur EuroSerif-Regular <_3______.pfb
+zpeuri EuroSerif-Italic <_3i_____.pfb
+zpeub EuroSerif-Bold <_3b_____.pfb
+zpeubi EuroSerif-BoldItalic <_3bi____.pfb
+zpeurs EuroSans-Regular <_1______.pfb
+zpeuris EuroSans-Italic <_1i_____.pfb
+zpeubs EuroSans-Bold <_1b_____.pfb
+zpeubis EuroSans-BoldItalic <_1bi____.pfb
+zpeurt EuroMono-Regular <_2______.pfb
+zpeurit EuroMono-Italic <_2i_____.pfb
+zpeubt EuroMono-Bold <_2b_____.pfb
+zpeubit EuroMono-BoldItalic <_2bi____.pfb
diff --git a/fonts/utilities/fontinst/examples/eurofont/eurofont.tex b/fonts/utilities/fontinst/examples/eurofont/eurofont.tex
new file mode 100644
index 0000000000..b97cfeb84a
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/eurofont/eurofont.tex
@@ -0,0 +1,43 @@
+\input fontinst.sty
+
+\transformfont{ptmr8r} {\reencodefont{8r}{\fromafm{ptmr8a}}}
+\transformfont{ptmro8r}{\slantfont{167} {\frommtx{ptmr8r}}}
+\transformfont{ptmri8r}{\reencodefont{8r}{\fromafm{ptmri8a}}}
+\transformfont{ptmb8r} {\reencodefont{8r}{\fromafm{ptmb8a}}}
+\transformfont{ptmbo8r}{\slantfont{167} {\frommtx{ptmb8r}}}
+\transformfont{ptmbi8r}{\reencodefont{8r}{\fromafm{ptmbi8a}}}
+
+\transformfont{phvr8r} {\reencodefont{8r}{\fromafm{phvr8a}}}
+\transformfont{phvro8r}{\reencodefont{8r}{\fromafm{phvro8a}}}
+\transformfont{phvb8r} {\reencodefont{8r}{\fromafm{phvb8a}}}
+\transformfont{phvbo8r}{\reencodefont{8r}{\fromafm{phvbo8a}}}
+
+\transformfont{pcrr8r} {\reencodefont{8r}{\fromafm{pcrr8a}}}
+\transformfont{pcrro8r}{\reencodefont{8r}{\fromafm{pcrro8a}}}
+\transformfont{pcrb8r} {\reencodefont{8r}{\fromafm{pcrb8a}}}
+\transformfont{pcrbo8r}{\reencodefont{8r}{\fromafm{pcrbo8a}}}
+
+\installfonts
+
+\installfamily{TS1}{ptm}{}
+\installfont{ptmr8c} {ptmr8r,zpeur,textcomp} {TS1}{TS1}{ptm}{m}{n}{}
+\installfont{ptmro8c}{ptmro8r,zpeuri,textcomp}{TS1}{TS1}{ptm}{m}{sl}{}
+\installfont{ptmri8c}{ptmri8r,zpeuri,textcomp}{TS1}{TS1}{ptm}{m}{it}{}
+\installfont{ptmb8c} {ptmb8r,zpeub,textcomp} {TS1}{TS1}{ptm}{b}{n}{}
+\installfont{ptmbo8c}{ptmbo8r,zpeubi,textcomp}{TS1}{TS1}{ptm}{b}{sl}{}
+\installfont{ptmbi8c}{ptmbi8r,zpeubi,textcomp}{TS1}{TS1}{ptm}{b}{it}{}
+
+\installfamily{TS1}{phv}{}
+\installfont{phvr8c} {phvr8r,zpeurs,textcomp} {TS1}{TS1}{phv}{m}{n}{}
+\installfont{phvro8c}{phvro8r,zpeuris,textcomp}{TS1}{TS1}{phv}{m}{sl}{}
+\installfont{phvb8c} {phvb8r,zpeubs,textcomp} {TS1}{TS1}{phv}{b}{n}{}
+\installfont{phvbo8c}{phvbo8r,zpeubis,textcomp}{TS1}{TS1}{phv}{b}{sl}{}
+
+\installfamily{TS1}{pcr}{}
+\installfont{pcrr8c} {pcrr8r,zpeurt,textcomp} {TS1}{TS1}{pcr}{m}{n}{}
+\installfont{pcrro8c}{pcrro8r,zpeurit,textcomp}{TS1}{TS1}{pcr}{m}{sl}{}
+\installfont{pcrb8c} {pcrb8r,zpeubt,textcomp} {TS1}{TS1}{pcr}{b}{n}{}
+\installfont{pcrbo8c}{pcrbo8r,zpeubit,textcomp}{TS1}{TS1}{pcr}{b}{sl}{}
+
+\endinstallfonts
+\bye \ No newline at end of file
diff --git a/fonts/utilities/fontinst/examples/mathptm/Makefile b/fonts/utilities/fontinst/examples/mathptm/Makefile
new file mode 100644
index 0000000000..8f2b4df065
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/Makefile
@@ -0,0 +1,24 @@
+ZAP= cmex10.mtx cmex9.mtx cmr10.mtx cmmi10.mtx cmsy10.mtx \
+ psyr.mtx psyr.pl \
+ ptmr8a.mtx ptmr8a.pl ptmr8r.mtx ptmr8r.pl \
+ ptmri8a.mtx ptmri8a.pl ptmri8r.mtx ptmri8r.pl \
+ pzcmi8a.mtx pzcmi8a.pl pzcmi8r.mtx pzcmi8r.pl \
+ zpsycmrv.vpl zptmcmr.vpl zptmcmrm.vpl zpzccmry.vpl \
+ fontptcm.log
+
+all: tex vfs
+
+tex:
+ tex fontptcm
+
+vfs:
+ vptovf zpsycmrv.vpl zpsycmrv.vf zpsycmrv.tfm
+ vptovf zptmcmr.vpl zptmcmr.vf zptmcmr.tfm
+ vptovf zptmcmrm.vpl zptmcmrm.vf zptmcmrm.tfm
+ vptovf zpzccmry.vpl zpzccmry.vf zpzccmry.tfm
+
+clean:
+ -rm $(ZAP) *.log
+
+realclean: clean
+ -rm p*tfm z*.tfm *.vf *.fd
diff --git a/fonts/utilities/fontinst/examples/mathptm/fontptcm.tex b/fonts/utilities/fontinst/examples/mathptm/fontptcm.tex
new file mode 100644
index 0000000000..12f9200f1a
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/fontptcm.tex
@@ -0,0 +1,75 @@
+%%% ====================================================================
+%%% @TeX-file{
+%%% author = "Alan Jeffrey and Sebastian Rathz and
+%%% Ulrik Vieth",
+%%% version = "1.801",
+%%% date = "30 June 1998",
+%%% time = "00:24:26 CEST",
+%%% filename = "fontptcm.tex",
+%%% email = "vieth@thphy.uni-duesseldorf.de",
+%%% URL = "http://www.thphy.uni-duesseldorf.de/~vieth/",
+%%% checksum = "55484 75 248 2976",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "font installation example",
+%%% supported = "yes",
+%%% abstract = "This is an example program which uses
+%%% Adobe Times, Adobe Symbol and Computer
+%%% Modern fonts to build Times math fonts.",
+%%% package = "fontinst",
+%%% dependencies = "fontinst.sty, ptmr8a.afm, ptmri8a.afm,
+%%% pzcmi8a.afm, psyr.afm, cmr10.pl,
+%%% cmmi10.pl, cmsy10.pl, cmex10.pl, cmex9.pl,
+%%% mathit.mtx, mathsy.mtx, mathex.mtx,
+%%% zrhax.mtx, zrmhax.mtx, zrvhax.mtx,
+%%% zrmkern.mtx, unsethum.mtx, unsetalf.mtx,
+%%% resetsy.mtx, kernoff.mtx, kernon.mtx",
+%%% }
+%%% ====================================================================
+
+% Math fonts built from Times, Symbol, Zapf Chancery and CM math.
+
+\input fontinst.sty
+
+\needsfontinstversion{1.800}
+
+\installfonts
+ \transformfont{ptmr8r} {\reencodefont{8r}{\fromafm{ptmr8a}}}
+ \transformfont{ptmri8r}{\reencodefont{8r}{\fromafm{ptmri8a}}}
+ \transformfont{pzcmi8r}{\reencodefont{8r}{\fromafm{pzcmi8a}}}
+ \fromafm{psyr}
+
+ % OT1: Latin and digits from Times-Roman, Greek from Symbol,
+ % accents and punctuation from Times, delimiters from cmr10
+ \installfamily{OT1}{ptmcm}{}
+ \installfont{zptmcmr}
+ {ptmr8r,psyr,resetsy,latin,%
+ zrhax,kernoff,cmr10,kernon}
+ {OT1}{OT1}{ptmcm}{m}{n}{}
+
+ % OML: Latin from Times-Italic, Greek from Adobe Symbol,
+ % operators, delimiters and punctuation from cmmi10
+ \installfamily{OML}{ptmcm}{\skewchar\font=127}
+ \installfont{zptmcmrm}
+ {ptmri8r,psyr,resetsy,%
+ zrmhax,kernoff,cmmi10,kernon,%
+ zrmkern,mathit}
+ {OML}{OML}{ptmcm}{m}{it}{}
+
+ % OMS: Humanist symbols from Times-Roman and Symbol,
+ % Calligraphic alphabet from Zapf Chancery,
+ % operators, delimiters and arrows from cmsy10
+ \installfamily{OMS}{pzccm}{}
+ \installfont{zpzccmry}
+ {cmsy10,zryhax,psyr,ptmr8r,%
+ unsetalf,pzcmi8r scaled 1124,mathsy}
+ {OMS}{OMS}{pzccm}{m}{n}{}
+
+ % OMX: summation and product from psyr, bigops from cmex9,
+ % delimiters, radicals and arrows from cmex10
+ \installfamily{OMX}{psycm}{}
+ \installfont{zpsycmrv}
+ {cmex10,psyr,zrvhax,cmex9 scaled 900}
+ {OMX}{OMX}{psycm}{m}{n}{}
+
+\endinstallfonts
+\end
diff --git a/fonts/utilities/fontinst/examples/mathptm/mathtest.tex b/fonts/utilities/fontinst/examples/mathptm/mathtest.tex
new file mode 100644
index 0000000000..f0504baf5c
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/mathtest.tex
@@ -0,0 +1,643 @@
+\documentclass[fleqn]{article}
+\usepackage{mathptm}
+
+\DeclareMathSymbol{\Gamma} {\mathalpha}{letters}{"00}
+\DeclareMathSymbol{\Delta} {\mathalpha}{letters}{"01}
+\DeclareMathSymbol{\Theta} {\mathalpha}{letters}{"02}
+\DeclareMathSymbol{\Lambda} {\mathalpha}{letters}{"03}
+\DeclareMathSymbol{\Xi} {\mathalpha}{letters}{"04}
+\DeclareMathSymbol{\Pi} {\mathalpha}{letters}{"05}
+\DeclareMathSymbol{\Sigma} {\mathalpha}{letters}{"06}
+\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
+\DeclareMathSymbol{\Phi} {\mathalpha}{letters}{"08}
+\DeclareMathSymbol{\Psi} {\mathalpha}{letters}{"09}
+\DeclareMathSymbol{\Omega} {\mathalpha}{letters}{"0A}
+
+\DeclareMathSymbol{\alpha} {\mathalpha}{letters}{"0B}
+\DeclareMathSymbol{\beta} {\mathalpha}{letters}{"0C}
+\DeclareMathSymbol{\gamma} {\mathalpha}{letters}{"0D}
+\DeclareMathSymbol{\delta} {\mathalpha}{letters}{"0E}
+\DeclareMathSymbol{\epsilon}{\mathalpha}{letters}{"0F}
+\DeclareMathSymbol{\zeta} {\mathalpha}{letters}{"10}
+\DeclareMathSymbol{\eta} {\mathalpha}{letters}{"11}
+\DeclareMathSymbol{\theta} {\mathalpha}{letters}{"12}
+\DeclareMathSymbol{\iota} {\mathalpha}{letters}{"13}
+\DeclareMathSymbol{\kappa} {\mathalpha}{letters}{"14}
+\DeclareMathSymbol{\lambda} {\mathalpha}{letters}{"15}
+\DeclareMathSymbol{\mu} {\mathalpha}{letters}{"16}
+\DeclareMathSymbol{\nu} {\mathalpha}{letters}{"17}
+\DeclareMathSymbol{\xi} {\mathalpha}{letters}{"18}
+\DeclareMathSymbol{\pi} {\mathalpha}{letters}{"19}
+\DeclareMathSymbol{\rho} {\mathalpha}{letters}{"1A}
+\DeclareMathSymbol{\sigma} {\mathalpha}{letters}{"1B}
+\DeclareMathSymbol{\tau} {\mathalpha}{letters}{"1C}
+\DeclareMathSymbol{\upsilon}{\mathalpha}{letters}{"1D}
+\DeclareMathSymbol{\phi} {\mathalpha}{letters}{"1E}
+\DeclareMathSymbol{\chi} {\mathalpha}{letters}{"1F}
+\DeclareMathSymbol{\psi} {\mathalpha}{letters}{"20}
+\DeclareMathSymbol{\omega} {\mathalpha}{letters}{"21}
+\DeclareMathSymbol{\varepsilon} {\mathalpha}{letters}{"22}
+\DeclareMathSymbol{\vartheta} {\mathalpha}{letters}{"23}
+\DeclareMathSymbol{\varpi} {\mathalpha}{letters}{"24}
+\DeclareMathSymbol{\varrho} {\mathalpha}{letters}{"25}
+\DeclareMathSymbol{\varsigma} {\mathalpha}{letters}{"26}
+\DeclareMathSymbol{\varphi} {\mathalpha}{letters}{"27}
+
+\DeclareMathSymbol{\dit}{\mathord}{letters}{`d}
+\DeclareMathSymbol{\dup}{\mathord}{operators}{`d}
+
+\nofiles
+
+\parindent 0pt
+\mathindent 1em
+
+\def\test#1{#1}
+
+\def\testnums{%
+ \test 0 \test 1 \test 2 \test 3 \test 4 \test 5 \test 6 \test 7
+ \test 8 \test 9 }
+\def\testupperi{%
+ \test A \test B \test C \test D \test E \test F \test G \test H
+ \test I \test J \test K \test L \test M }
+\def\testupperii{%
+ \test N \test O \test P \test Q \test R \test S \test T \test U
+ \test V \test W \test X \test Y \test Z }
+\def\testupper{%
+ \testupperi\testupperii}
+
+\def\testloweri{%
+ \test a \test b \test c \test d \test e \test f \test g \test h
+ \test i \test j \test k \test l \test m }
+\def\testlowerii{%
+ \test n \test o \test p \test q \test r \test s \test t \test u
+ \test v \test w \test x \test y \test z
+ \test\imath \test\jmath }
+\def\testlower{%
+ \testloweri\testlowerii}
+
+\def\testupgreeki{%
+ \test A \test B \test\Gamma \test\Delta \test E \test Z \test H
+ \test\Theta \test I \test K \test\Lambda \test M }
+\def\testupgreekii{%
+ \test N \test\Xi \test O \test\Pi \test P \test\Sigma \test T
+ \test\Upsilon \test\Phi \test X \test\Psi \test\Omega
+ \test\nabla }
+\def\testupgreek{%
+ \testupgreeki\testupgreekii}
+
+\def\testlowgreeki{%
+ \test\alpha \test\beta \test\gamma \test\delta \test\epsilon
+ \test\zeta \test\eta \test\theta \test\iota \test\kappa \test\lambda
+ \test\mu }
+\def\testlowgreekii{%
+ \test\nu \test\xi \test o \test\pi \test\rho \test\sigma \test\tau
+ \test\upsilon \test\phi \test\chi \test\psi \test\omega }
+\def\testlowgreekiii{%
+ \test\varepsilon \test\vartheta \test\varpi \test\varrho
+ \test\varsigma \test\varphi}
+\def\testlowgreek{%
+ \testlowgreeki\testlowgreekii\testlowgreekiii}
+
+
+\begin{document}
+
+\section{Math Alphabets}
+
+Math Italic (\texttt{\string\mathnormal})
+\def\test#1{\mathnormal{#1},}
+\begin{eqnarray*}
+ && {\testnums}\\
+ && {\testupper}\\
+ && {\testlower}\\
+ && {\testupgreek}\\
+ && {\testlowgreek}
+\end{eqnarray*}%
+
+Math Roman (\texttt{\string\mathrm})
+\def\test#1{\mathrm{#1},}
+\begin{eqnarray*}
+ && {\testnums}\\
+ && {\testupper}\\
+ && {\testlower}\\
+ && {\testupgreek}
+\end{eqnarray*}%
+
+%Math Italic Bold
+%\def\test#1{\mathbm{#1},}
+%\begin{eqnarray*}
+% && {\testnums}\\
+% && {\testupper}\\
+% && {\testlower}\\
+% && {\testupgreek}\\
+% && {\testlowgreek}
+%\end{eqnarray*}%
+
+%Math Bold (\texttt{\string\mathbf})
+%\def\test#1{\mathbf{#1},}
+%\begin{eqnarray*}
+% && {\testnums}\\
+% && {\testupper}\\
+% && {\testlower}\\
+% && {\testupgreek}
+%\end{eqnarray*}%
+
+Caligraphic (\texttt{\string\mathcal})
+\def\test#1{\mathcal{#1},}
+\begin{eqnarray*}
+ && {\testupper}
+\end{eqnarray*}%
+
+%Script (\texttt{\string\mathscr})
+%\def\test#1{\mathscr{#1},}
+%\begin{eqnarray*}
+% && {\testupper}
+%\end{eqnarray*}%
+
+%Fraktur (\texttt{\string\mathfrak})
+%\def\test#1{\mathfrak{#1},}
+%\begin{eqnarray*}
+% && {\testupper}\\
+% && {\testlower}
+%\end{eqnarray*}%
+
+%Blackboard Bold (\texttt{\string\mathbb})
+%\def\test#1{\mathbb{#1},}
+%\begin{eqnarray*}
+% && {\testupper}
+%\end{eqnarray*}%
+
+
+\clearpage
+\section{Character Sidebearings}
+
+\def\test#1{|#1|+}
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{|\mathrm{#1}|+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{|\mathbm{#1}|+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}%
+%%
+%\def\test#1{|\mathbf{#1}|+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}%
+%
+\def\test#1{|\mathcal{#1}|+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Superscript positioning}
+
+\def\test#1{#1^{2}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{\mathrm{#1}^{2}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{\mathbm{#1}^{2}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}%
+%
+%\def\test#1{\mathbf{#1}^{2}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}
+%
+\def\test#1{\mathcal{#1}^{2}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Subscript positioning}
+
+\def\test#1{\mathnormal{#1}_{i}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{\mathrm{#1}_{i}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{\mathbm{#1}_{i}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}
+%%
+%\def\test#1{\mathbf{#1}_{i}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}%
+%
+\def\test#1{\mathcal{#1}_{i}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Accent positioning}
+
+\def\test#1{\hat{#1}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{\hat{\mathrm{#1}}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{\hat{\mathbm{#1}}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}%
+%%
+%\def\test#1{\hat{\mathbf{#1}}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}
+%
+\def\test#1{\hat{\mathcal{#1}}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Differentials}
+
+\begin{eqnarray*}
+\gdef\test#1{\dit #1+}%
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}\\
+\gdef\test#1{\dit \mathrm{#1}+}%
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+\begin{eqnarray*}
+\gdef\test#1{\dup #1+}%
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}\\
+\gdef\test#1{\dup \mathrm{#1}+}%
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+\begin{eqnarray*}
+\gdef\test#1{\partial #1+}%
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}\\
+\gdef\test#1{\partial \mathrm{#1}+}%
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Slash kerning}
+
+\def\test#1{1/#1+}
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}
+
+\def\test#1{#1/2+}
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}
+
+
+\clearpage
+\section{Big operators}
+
+\def\testop#1{#1_{i=1}^{n} x^{n} \quad}
+\begin{displaymath}
+ \testop\sum
+ \testop\prod
+ \testop\coprod
+ \testop\int
+ \testop\oint
+\end{displaymath}
+\begin{displaymath}
+ \testop\bigotimes
+ \testop\bigoplus
+ \testop\bigodot
+ \testop\bigwedge
+ \testop\bigvee
+ \testop\biguplus
+ \testop\bigcup
+ \testop\bigcap
+ \testop\bigsqcup
+% \testop\bigsqcap
+\end{displaymath}
+
+
+\section{Radicals}
+
+\begin{displaymath}
+ \sqrt{x+y} \qquad \sqrt{x^{2}+y^{2}} \qquad
+ \sqrt{x_{i}^{2}+y_{j}^{2}} \qquad
+ \sqrt{\left(\frac{\cos x}{2}\right)} \qquad
+ \sqrt{\left(\frac{\sin x}{2}\right)}
+\end{displaymath}
+
+\begingroup
+\delimitershortfall-1pt
+\begin{displaymath}
+ \sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{x+y}}}}}}}
+\end{displaymath}
+\endgroup % \delimitershortfall
+
+
+\section{Over- and underbraces}
+
+\begin{displaymath}
+ \overbrace{x} \quad
+ \overbrace{x+y} \quad
+ \overbrace{x^{2}+y^{2}} \quad
+ \overbrace{x_{i}^{2}+y_{j}^{2}} \quad
+ \underbrace{x} \quad
+ \underbrace{x+y} \quad
+ \underbrace{x_{i}+y_{j}} \quad
+ \underbrace{x_{i}^{2}+y_{j}^{2}} \quad
+\end{displaymath}
+
+
+\section{Normal and wide accents}
+
+\begin{displaymath}
+ \dot{x} \quad
+ \ddot{x} \quad
+ \vec{x} \quad
+ \bar{x} \quad
+ \overline{x} \quad
+ \overline{xx} \quad
+ \tilde{x} \quad
+ \widetilde{x} \quad
+ \widetilde{xx} \quad
+ \widetilde{xxx} \quad
+ \hat{x} \quad
+ \widehat{x} \quad
+ \widehat{xx} \quad
+ \widehat{xxx} \quad
+\end{displaymath}
+
+
+\section{Long arrows}
+
+\begin{displaymath}
+ \leftarrow \mathrel{-} \rightarrow \quad
+ \leftrightarrow \quad
+ \longleftarrow \quad
+ \longrightarrow \quad
+ \longleftrightarrow \quad
+ \Leftarrow = \Rightarrow \quad
+ \Leftrightarrow \quad
+ \Longleftarrow \quad
+ \Longrightarrow \quad
+ \Longleftrightarrow \quad
+\end{displaymath}
+
+
+\section{Left and right delimters}
+
+\def\testdelim#1#2{ - #1 f #2 - }
+\begin{displaymath}
+ \testdelim()
+ \testdelim[]
+ \testdelim\lfloor\rfloor
+ \testdelim\lceil\rceil
+ \testdelim\langle\rangle
+ \testdelim\{\}
+\end{displaymath}
+
+\def\testdelim#1#2{ - \left#1 f \right#2 - }
+\begin{displaymath}
+ \testdelim()
+ \testdelim[]
+ \testdelim\lfloor\rfloor
+ \testdelim\lceil\rceil
+ \testdelim\langle\rangle
+ \testdelim\{\}
+% \testdelim\lgroup\rgroup
+% \testdelim\lmoustache\rmoustache
+\end{displaymath}
+\begin{displaymath}
+ \testdelim)(
+ \testdelim][
+ \testdelim//
+ \testdelim\backslash\backslash
+ \testdelim/\backslash
+ \testdelim\backslash/
+\end{displaymath}
+
+
+\clearpage
+\section{Big-g-g delimters}
+
+\def\testdelim#1#2{%
+ - \left#1\left#1\left#1\left#1\left#1\left#1\left#1\left#1 -
+ \right#2\right#2\right#2\right#2\right#2\right#2\right#2\right#2 -}
+
+\begingroup
+\delimitershortfall-1pt
+\begin{displaymath}
+ \testdelim\lfloor\rfloor
+ \qquad
+ \testdelim()
+\end{displaymath}
+\begin{displaymath}
+ \testdelim\lceil\rceil
+ \qquad
+ \testdelim\{\}
+\end{displaymath}
+\begin{displaymath}
+ \testdelim[]
+ \qquad
+ \testdelim\lgroup\rgroup
+\end{displaymath}
+\begin{displaymath}
+ \testdelim\langle\rangle
+ \qquad
+ \testdelim\lmoustache\rmoustache
+\end{displaymath}
+\begin{displaymath}
+ \testdelim\uparrow\downarrow \quad
+ \testdelim\Uparrow\Downarrow \quad
+\end{displaymath}
+\endgroup % \delimitershortfall
+
+
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/fonts/utilities/fontinst/examples/mathptm/resetsy.mtx b/fonts/utilities/fontinst/examples/mathptm/resetsy.mtx
new file mode 100644
index 0000000000..27da54c046
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/resetsy.mtx
@@ -0,0 +1,30 @@
+\relax
+
+\metrics
+
+\unsetglyph{Upsilon}
+\setglyph{Upsilon}
+ \glyph{Upsilon1}{1000}
+\endsetglyph
+
+\setglyph{pi1}
+ \glyph{omega1}{1000}
+\endsetglyph
+
+\setglyph{epsilon1}
+ \glyph{epsilon}{1000}
+\endsetglyph
+
+\setglyph{rho1}
+ \glyph{rho}{1000}
+\endsetglyph
+
+\setglyph{dotlessj}
+ \moveup{\neg{\depth{j}}}
+ \glyphrule{\width{j}}{\add{\depth{j}}{\height{dotlessi}}}
+ \resetitalic{\italic{dotlessi}}
+ \moveup{\depth{j}}
+ \glyphwarning{missing glyph `dotlessj'}
+\endsetglyph
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptm/unsetmu.mtx b/fonts/utilities/fontinst/examples/mathptm/unsetmu.mtx
new file mode 100644
index 0000000000..63b222ed9f
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/unsetmu.mtx
@@ -0,0 +1,7 @@
+\relax
+
+\metrics
+
+\unsetglyph{mu}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptm/zrhax.mtx b/fonts/utilities/fontinst/examples/mathptm/zrhax.mtx
new file mode 100644
index 0000000000..ce1bc5a281
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/zrhax.mtx
@@ -0,0 +1,15 @@
+\relax
+
+\metrics
+
+% This metrics file is loaded after having read the Times-Roman
+% glyphs. We unset those glyphs that should be taken from cmr.
+
+\unsetglyph{plus}
+\unsetglyph{equal}
+\unsetglyph{parenleft}
+\unsetglyph{parenright}
+\unsetglyph{bracketleft}
+\unsetglyph{bracketright}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptm/zrmhax.mtx b/fonts/utilities/fontinst/examples/mathptm/zrmhax.mtx
new file mode 100644
index 0000000000..141899c6dc
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/zrmhax.mtx
@@ -0,0 +1,14 @@
+\relax
+
+\metrics
+
+% This metrics file is loaded after having read the Times-Italic
+% glyphs. We unset those glyphs that should be taken from cmmi.
+
+\unsetglyph{period}
+\unsetglyph{comma}
+\unsetglyph{less}
+\unsetglyph{slash}
+\unsetglyph{greater}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptm/zrmkern.mtx b/fonts/utilities/fontinst/examples/mathptm/zrmkern.mtx
new file mode 100644
index 0000000000..62ccd50a84
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/zrmkern.mtx
@@ -0,0 +1,158 @@
+\relax
+
+% The following adjustments (as originally derived by Alan Jeffrey)
+% are tuned for Times-Italic and non-oblique Adobe Symbol.
+
+\metrics
+
+\needsfontinstversion{1.800}
+
+% \shiftglyph takes four parameters:
+%
+% #1 the name of the glyph
+% #2 the amount of extra space at the left
+% #3 the amount of extra space at the right
+% #4 the amount of extra space for subscripts
+
+\setcommand\shiftglyph#1#2#3#4{
+ \resetglyph{#1}
+ \movert{#2}
+ \glyph{#1}{1000}
+ \movert{#4}
+ \resetitalic{\add{\italic{#1}}{\sub{#3}{#4}}}
+ \endresetglyph
+}
+
+% \skewkern sets a skewchar kern, assuming that `tie'
+% is the skewchar.
+%
+% #1 the name of the glyph
+% #2 the amount of skewchar kerning
+
+\setcommand\skewkern#1#2{\setkern{#1}{tie}{#2}}
+
+
+% A
+% B
+\shiftglyph{C}{-50}{0}{-25}
+% D
+\shiftglyph{E}{0}{50}{0}
+\shiftglyph{F}{0}{50}{-100}
+% G
+\shiftglyph{H}{0}{25}{-25}
+\shiftglyph{I}{0}{0}{-25}
+\shiftglyph{J}{0}{0}{-25}
+\shiftglyph{K}{0}{0}{-25}
+% L
+% M
+\shiftglyph{N}{0}{0}{-25}
+% O
+\shiftglyph{P}{0}{0}{-100}
+% Q
+% R
+% S
+\shiftglyph{T}{0}{50}{-75}
+\shiftglyph{U}{-50}{50}{-25}
+\shiftglyph{V}{-50}{50}{-50}
+\shiftglyph{W}{-50}{50}{-50}
+\shiftglyph{X}{0}{50}{-25}
+\shiftglyph{Y}{-50}{50}{-50}
+% Z
+
+% a
+\shiftglyph{b}{0}{-25}{0}
+% c
+\shiftglyph{d}{0}{25}{0}
+% e
+\shiftglyph{f}{150}{0}{25}
+\shiftglyph{g}{0}{-50}{0}
+% h
+% i
+\shiftglyph{j}{150}{25}{0}
+% k
+\shiftglyph{l}{0}{50}{0}
+% m
+% n
+\shiftglyph{o}{0}{-50}{0}
+\shiftglyph{p}{75}{-25}{0}
+% q
+% r
+% s
+\shiftglyph{t}{-25}{50}{0}
+% u
+% v
+% w
+% x
+% y
+% z
+
+\shiftglyph{Upsilon}{0}{0}{-150} % was: -50 -100, adds up to -150
+\shiftglyph{weierstrass}{-100}{-200}{-150}
+
+\skewkern{A}{75}
+\skewkern{B}{100}
+\skewkern{C}{100}
+\skewkern{D}{50}
+\skewkern{E}{75}
+\skewkern{F}{75}
+\skewkern{G}{100}
+\skewkern{H}{50}
+\skewkern{I}{100}
+\skewkern{J}{200}
+\skewkern{K}{75}
+% L
+\skewkern{M}{100}
+\skewkern{N}{25}
+\skewkern{O}{100}
+\skewkern{P}{100}
+\skewkern{Q}{100}
+\skewkern{R}{100}
+\skewkern{S}{100}
+\skewkern{T}{50}
+\skewkern{U}{50}
+\skewkern{X}{50}
+\skewkern{Z}{50}
+
+\skewkern{a}{75}
+% b
+\skewkern{c}{75}
+\skewkern{d}{200}
+\skewkern{e}{75}
+\skewkern{f}{150}
+\skewkern{g}{75}
+% h
+\skewkern{i}{75}
+\skewkern{j}{150}
+% k
+\skewkern{l}{100}
+\skewkern{m}{50}
+\skewkern{n}{50}
+\skewkern{o}{75}
+\skewkern{p}{100}
+\skewkern{q}{75}
+\skewkern{r}{50}
+\skewkern{s}{100}
+\skewkern{t}{50}
+\skewkern{u}{75}
+\skewkern{v}{75}
+\skewkern{w}{75}
+\skewkern{x}{75}
+\skewkern{y}{75}
+\skewkern{z}{50}
+
+\skewkern{dotlessi}{50}
+\skewkern{dotlessj}{50}
+
+\skewkern{upsilon}{25}
+\skewkern{iota}{-50}
+\skewkern{lambda}{-75}
+\skewkern{weierstrass}{175}
+\skewkern{lscript}{125}
+
+\resetglyph{vector}
+ \movert{-100}
+ \glyph{vector}{1000}
+ \movert{100}
+\endresetglyph
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptm/zrvhax.mtx b/fonts/utilities/fontinst/examples/mathptm/zrvhax.mtx
new file mode 100644
index 0000000000..6270feb615
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/zrvhax.mtx
@@ -0,0 +1,73 @@
+\relax
+
+% This metrics file is loaded after having read the cmex glyps.
+% We unset the big operators that should be taken from Symbol
+% or from a scaled-down version of cmex.
+
+\metrics
+
+\setint{psy-textscale}{1000}
+\setint{psy-displayscale}{1440}
+
+\unsetglyph{circledotdisplay}
+\unsetglyph{circledottext}
+\unsetglyph{circlemultiplydisplay}
+\unsetglyph{circlemultiplytext}
+\unsetglyph{circleplusdisplay}
+\unsetglyph{circleplustext}
+\unsetglyph{contintegraldisplay}
+\unsetglyph{contintegraltext}
+\unsetglyph{integraldisplay}
+\unsetglyph{integraltext}
+\unsetglyph{intersectiondisplay}
+\unsetglyph{intersectiontext}
+\unsetglyph{logicalanddisplay}
+\unsetglyph{logicalandtext}
+\unsetglyph{logicalordisplay}
+\unsetglyph{logicalortext}
+\unsetglyph{uniondisplay}
+\unsetglyph{unionmultidisplay}
+\unsetglyph{unionmultitext}
+\unsetglyph{unionsqdisplay}
+\unsetglyph{unionsqtext}
+\unsetglyph{uniontext}
+
+\resetglyph{summationtext}
+ \glyph{summation}{\int{psy-textscale}}
+\endresetglyph
+
+\resetglyph{summationdisplay}
+ \glyph{summation}{\int{psy-displayscale}}
+\endresetglyph
+
+\resetglyph{producttext}
+ \glyph{product}{\int{psy-textscale}}
+\endresetglyph
+
+\resetglyph{productdisplay}
+ \glyph{product}{\int{psy-displayscale}}
+\endresetglyph
+
+\resetglyph{coproducttext}
+ \moveup{\neg{\depth{producttext}}}
+ \glyphrule{
+ \width{producttext}
+ }{
+ \add{\height{producttext}}{\depth{producttext}}
+ }
+ \moveup{\depth{producttext}}
+ \glyphwarning{missing glyph `coproducttext'}
+\endresetglyph
+
+\resetglyph{coproductdisplay}
+ \moveup{\neg{\depth{productdisplay}}}
+ \glyphrule{
+ \width{productdisplay}
+ }{
+ \add{\height{productdisplay}}{\depth{productdisplay}}
+ }
+ \moveup{\depth{productdisplay}}
+ \glyphwarning{missing glyph `coproductdisplay'}
+\endresetglyph
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptm/zryhax.mtx b/fonts/utilities/fontinst/examples/mathptm/zryhax.mtx
new file mode 100644
index 0000000000..19addd6ad8
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptm/zryhax.mtx
@@ -0,0 +1,26 @@
+\relax
+
+\metrics
+
+% This metrics file is loaded after having read the cmsy glyphs.
+% We unset those glyphs that should be taken from Times or Symbol.
+
+\unsetglyph{infinity}
+\unsetglyph{proportional}
+
+\unsetglyph{emptysetstress}
+
+\unsetglyph{Rfraktur}
+\unsetglyph{Ifraktur}
+
+\unsetglyph{aleph}
+
+\unsetglyph{coproduct}
+\unsetglyph{gradient}
+
+\unsetglyph{section}
+\unsetglyph{dagger}
+\unsetglyph{daggerdbl}
+\unsetglyph{paragraph}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/Makefile b/fonts/utilities/fontinst/examples/mathptmx/Makefile
new file mode 100644
index 0000000000..37a660e0cb
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/Makefile
@@ -0,0 +1,23 @@
+ZAP= cmex10.mtx cmr10.mtx cmmi10.mtx cmsy10.mtx \
+ rsfs10.mtx psyr.mtx psyr.pl psyro.mtx psyro.pl \
+ ptmr8a.mtx ptmr8a.pl ptmr8r.mtx ptmr8r.pl \
+ ptmri8a.mtx ptmri8a.pl ptmri8r.mtx ptmri8r.pl \
+ zptmcm7t.vpl zptmcm7m.vpl zptmcm7y.vpl zptmcm7v.vpl \
+ fontptcmx.log
+
+all: tex vfs
+
+tex:
+ tex fontptcmx
+
+vfs:
+ vptovf zptmcm7t.vpl zptmcm7t.vf zptmcm7t.tfm
+ vptovf zptmcm7m.vpl zptmcm7m.vf zptmcm7m.tfm
+ vptovf zptmcm7y.vpl zptmcm7y.vf zptmcm7y.tfm
+ vptovf zptmcm7v.vpl zptmcm7v.vf zptmcm7v.tfm
+
+clean:
+ -rm $(ZAP) *.log
+
+realclean: clean
+ -rm p*tfm z*.tfm *.vf *.fd
diff --git a/fonts/utilities/fontinst/examples/mathptmx/fontptcmx.tex b/fonts/utilities/fontinst/examples/mathptmx/fontptcmx.tex
new file mode 100644
index 0000000000..0f876ce345
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/fontptcmx.tex
@@ -0,0 +1,76 @@
+%%% ====================================================================
+%%% @TeX-file{
+%%% author = "Alan Jeffrey and Sebastian Rathz and
+%%% Ulrik Vieth",
+%%% version = "1.802",
+%%% date = "01 July 1998",
+%%% time = "10:57:48 MET DST",
+%%% filename = "fontzcmtmx.tex",
+%%% email = "vieth@thphy.uni-duesseldorf.de",
+%%% URL = "http://www.thphy.uni-duesseldorf.de/~vieth/",
+%%% checksum = "49508 76 251 3044",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "font installation example",
+%%% supported = "yes",
+%%% abstract = "This is an example program which uses
+%%% Adobe Times, Adobe Symbol and Computer
+%%% Modern fonts to build Times math fonts.",
+%%% package = "fontinst",
+%%% dependencies = "fontinst.sty, ptmr8a.afm, ptmri8a.afm,
+%%% pzcmi8a.afm, psyr.afm, cmr10.pl,
+%%% cmmi10.pl, cmsy10.pl, cmex10.pl,
+%%% mathit.mtx, mathsy.mtx, mathex.mtx,
+%%% zrhax.mtx, zrmhax.mtx, zrvhax.mtx,
+%%% zrmkern.mtx, unsethum.mtx, unsetalf.mtx,
+%%% resetsy.mtx, kernoff.mtx, kernon.mtx",
+%%% }
+%%% ====================================================================
+
+% Math fonts built from Times, Symbol, RSFS and CM math.
+
+\input fontinst.sty
+
+\needsfontinstversion{1.800}
+
+\declareencoding{RAS SCRIPT}{rsfs}
+
+\installfonts
+ \transformfont{ptmr8r} {\reencodefont{8r}{\fromafm{ptmr8a}}}
+ \transformfont{ptmri8r}{\reencodefont{8r}{\fromafm{ptmri8a}}}
+ \transformfont{psyro} {\slantfont{167}{\fromafm{psyr}}}
+
+ % OT1: Latin and digits from Times-Roman, Greek from Symbol,
+ % accents and punctuation from Times, delimiters from cmr10
+ \installfamily{OT1}{ztmcm}{}
+ \installfont{zptmcm7t}
+ {ptmr8r,psyr,resetsy,latin,%
+ zrhax,kernoff,cmr10,kernon}
+ {OT1}{OT1}{ztmcm}{m}{n}{}
+
+ % OML: Latin from Times-Italic, Greek from Symbol (oblique),
+ % operators, delimiters and puctuation from cmmi10
+ \installfamily{OML}{ztmcm}{\skewchar\font=127}
+ \installfont{zptmcm7m}
+ {ptmri8r,unsetmu,psyro,resetsy,%
+ zrmhax,kernoff,cmmi10,kernon,%
+ mathit,zrmkernx}
+ {OML}{OML}{ztmcm}{m}{it}{}
+
+ % OMS: Humanist symbols from Times-Roman and Symbol,
+ % Script alphabet from Ralph Smith's Formal Script,
+ % operators, delimiters and arrows from cmsy10
+ \installfamily{OMS}{ztmcm}{\skewchar\font=48}
+ \installfont{zptmcm7y}
+ {kernoff,cmsy10,kernon,zryhax,ptmr8r,psyr,%
+ unsetalf,rsfs10,zrykernx,mathsy}
+ {OMS}{OMS}{ztmcm}{m}{n}{}
+
+ % OMX: summation and product from psyr, bigops from scaled cmex10,
+ % delimiters, radicals and arrows from cmex10
+ \installfamily{OMX}{ztmcm}{}
+ \installfont{zptmcm7v}
+ {cmex10,psyr,zrvhax,cmex10 scaled 900}
+ {OMX}{OMX}{ztmcm}{m}{n}{}
+
+\endinstallfonts
+\end
diff --git a/fonts/utilities/fontinst/examples/mathptmx/mathptmx.sty b/fonts/utilities/fontinst/examples/mathptmx/mathptmx.sty
new file mode 100644
index 0000000000..068bddd65c
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/mathptmx.sty
@@ -0,0 +1,42 @@
+\def\filedate{1998/06/30}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mathptmx}[\filedate\space
+ Times + math package from fontinst]
+\def\rmdefault{ptm}
+\DeclareSymbolFont{operators} {OT1}{ztmcm}{m}{n}
+\DeclareSymbolFont{letters} {OML}{ztmcm}{m}{it}
+\DeclareSymbolFont{symbols} {OMS}{ztmcm}{m}{n}
+\DeclareSymbolFont{largesymbols}{OMX}{ztmcm}{m}{n}
+\DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n}
+\DeclareSymbolFont{italic} {OT1}{ptm}{m}{it}
+\@ifundefined{mathbf}{}{\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}}
+\@ifundefined{mathit}{}{\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}}
+\DeclareMathSymbol{\omicron}{0}{operators}{`\o}
+\thinmuskip=2mu
+\medmuskip=2.5mu plus 1mu minus 1mu
+\thickmuskip=4mu plus 1.5mu minus 1mu
+ \let\@tempa\version@elt
+ \def\version@elt#1{%
+ \ifx\mv@bold#1\else\noexpand\version@elt\noexpand#1\fi}
+ \edef\version@list{\version@list}
+ \let\version@elt\@tempa
+ \let\mv@bold\@undefined
+\def\boldmath{%
+ \PackageWarning{there is no bold Symbol font}%
+ \global\let\boldmath=\relax
+}
+\DeclareMathSizes{5}{5}{5}{5}
+\DeclareMathSizes{6}{6}{5}{5}
+\DeclareMathSizes{7}{7}{5}{5}
+\DeclareMathSizes{8}{8}{6}{5}
+\DeclareMathSizes{9}{9}{7}{5}
+\DeclareMathSizes{10}{10}{7.4}{6}
+\DeclareMathSizes{10.95}{10.95}{8}{6}
+\DeclareMathSizes{12}{12}{9}{7}
+\DeclareMathSizes{14.4}{14.4}{10.95}{8}
+\DeclareMathSizes{17.28}{17.28}{12}{10}
+\DeclareMathSizes{20.74}{20.74}{14.4}{12}
+\DeclareMathSizes{24.88}{24.88}{17.28}{14.4}
+\endinput
+%%
+%% End of file `mathptmx.sty'.
diff --git a/fonts/utilities/fontinst/examples/mathptmx/mathtestx.tex b/fonts/utilities/fontinst/examples/mathptmx/mathtestx.tex
new file mode 100644
index 0000000000..8f3342ea7c
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/mathtestx.tex
@@ -0,0 +1,643 @@
+\documentclass[fleqn]{article}
+\usepackage{mathptmx}
+
+\DeclareMathSymbol{\Gamma} {\mathalpha}{letters}{"00}
+\DeclareMathSymbol{\Delta} {\mathalpha}{letters}{"01}
+\DeclareMathSymbol{\Theta} {\mathalpha}{letters}{"02}
+\DeclareMathSymbol{\Lambda} {\mathalpha}{letters}{"03}
+\DeclareMathSymbol{\Xi} {\mathalpha}{letters}{"04}
+\DeclareMathSymbol{\Pi} {\mathalpha}{letters}{"05}
+\DeclareMathSymbol{\Sigma} {\mathalpha}{letters}{"06}
+\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
+\DeclareMathSymbol{\Phi} {\mathalpha}{letters}{"08}
+\DeclareMathSymbol{\Psi} {\mathalpha}{letters}{"09}
+\DeclareMathSymbol{\Omega} {\mathalpha}{letters}{"0A}
+
+\DeclareMathSymbol{\alpha} {\mathalpha}{letters}{"0B}
+\DeclareMathSymbol{\beta} {\mathalpha}{letters}{"0C}
+\DeclareMathSymbol{\gamma} {\mathalpha}{letters}{"0D}
+\DeclareMathSymbol{\delta} {\mathalpha}{letters}{"0E}
+\DeclareMathSymbol{\epsilon}{\mathalpha}{letters}{"0F}
+\DeclareMathSymbol{\zeta} {\mathalpha}{letters}{"10}
+\DeclareMathSymbol{\eta} {\mathalpha}{letters}{"11}
+\DeclareMathSymbol{\theta} {\mathalpha}{letters}{"12}
+\DeclareMathSymbol{\iota} {\mathalpha}{letters}{"13}
+\DeclareMathSymbol{\kappa} {\mathalpha}{letters}{"14}
+\DeclareMathSymbol{\lambda} {\mathalpha}{letters}{"15}
+\DeclareMathSymbol{\mu} {\mathalpha}{letters}{"16}
+\DeclareMathSymbol{\nu} {\mathalpha}{letters}{"17}
+\DeclareMathSymbol{\xi} {\mathalpha}{letters}{"18}
+\DeclareMathSymbol{\pi} {\mathalpha}{letters}{"19}
+\DeclareMathSymbol{\rho} {\mathalpha}{letters}{"1A}
+\DeclareMathSymbol{\sigma} {\mathalpha}{letters}{"1B}
+\DeclareMathSymbol{\tau} {\mathalpha}{letters}{"1C}
+\DeclareMathSymbol{\upsilon}{\mathalpha}{letters}{"1D}
+\DeclareMathSymbol{\phi} {\mathalpha}{letters}{"1E}
+\DeclareMathSymbol{\chi} {\mathalpha}{letters}{"1F}
+\DeclareMathSymbol{\psi} {\mathalpha}{letters}{"20}
+\DeclareMathSymbol{\omega} {\mathalpha}{letters}{"21}
+\DeclareMathSymbol{\varepsilon} {\mathalpha}{letters}{"22}
+\DeclareMathSymbol{\vartheta} {\mathalpha}{letters}{"23}
+\DeclareMathSymbol{\varpi} {\mathalpha}{letters}{"24}
+\DeclareMathSymbol{\varrho} {\mathalpha}{letters}{"25}
+\DeclareMathSymbol{\varsigma} {\mathalpha}{letters}{"26}
+\DeclareMathSymbol{\varphi} {\mathalpha}{letters}{"27}
+
+\DeclareMathSymbol{\dit}{\mathord}{letters}{`d}
+\DeclareMathSymbol{\dup}{\mathord}{operators}{`d}
+
+\nofiles
+
+\parindent 0pt
+\mathindent 1em
+
+\def\test#1{#1}
+
+\def\testnums{%
+ \test 0 \test 1 \test 2 \test 3 \test 4 \test 5 \test 6 \test 7
+ \test 8 \test 9 }
+\def\testupperi{%
+ \test A \test B \test C \test D \test E \test F \test G \test H
+ \test I \test J \test K \test L \test M }
+\def\testupperii{%
+ \test N \test O \test P \test Q \test R \test S \test T \test U
+ \test V \test W \test X \test Y \test Z }
+\def\testupper{%
+ \testupperi\testupperii}
+
+\def\testloweri{%
+ \test a \test b \test c \test d \test e \test f \test g \test h
+ \test i \test j \test k \test l \test m }
+\def\testlowerii{%
+ \test n \test o \test p \test q \test r \test s \test t \test u
+ \test v \test w \test x \test y \test z
+ \test\imath \test\jmath }
+\def\testlower{%
+ \testloweri\testlowerii}
+
+\def\testupgreeki{%
+ \test A \test B \test\Gamma \test\Delta \test E \test Z \test H
+ \test\Theta \test I \test K \test\Lambda \test M }
+\def\testupgreekii{%
+ \test N \test\Xi \test O \test\Pi \test P \test\Sigma \test T
+ \test\Upsilon \test\Phi \test X \test\Psi \test\Omega
+ \test\nabla }
+\def\testupgreek{%
+ \testupgreeki\testupgreekii}
+
+\def\testlowgreeki{%
+ \test\alpha \test\beta \test\gamma \test\delta \test\epsilon
+ \test\zeta \test\eta \test\theta \test\iota \test\kappa \test\lambda
+ \test\mu }
+\def\testlowgreekii{%
+ \test\nu \test\xi \test o \test\pi \test\rho \test\sigma \test\tau
+ \test\upsilon \test\phi \test\chi \test\psi \test\omega }
+\def\testlowgreekiii{%
+ \test\varepsilon \test\vartheta \test\varpi \test\varrho
+ \test\varsigma \test\varphi}
+\def\testlowgreek{%
+ \testlowgreeki\testlowgreekii\testlowgreekiii}
+
+
+\begin{document}
+
+\section{Math Alphabets}
+
+Math Italic (\texttt{\string\mathnormal})
+\def\test#1{\mathnormal{#1},}
+\begin{eqnarray*}
+ && {\testnums}\\
+ && {\testupper}\\
+ && {\testlower}\\
+ && {\testupgreek}\\
+ && {\testlowgreek}
+\end{eqnarray*}%
+
+Math Roman (\texttt{\string\mathrm})
+\def\test#1{\mathrm{#1},}
+\begin{eqnarray*}
+ && {\testnums}\\
+ && {\testupper}\\
+ && {\testlower}\\
+ && {\testupgreek}
+\end{eqnarray*}%
+
+%Math Italic Bold
+%\def\test#1{\mathbm{#1},}
+%\begin{eqnarray*}
+% && {\testnums}\\
+% && {\testupper}\\
+% && {\testlower}\\
+% && {\testupgreek}\\
+% && {\testlowgreek}
+%\end{eqnarray*}%
+
+%Math Bold (\texttt{\string\mathbf})
+%\def\test#1{\mathbf{#1},}
+%\begin{eqnarray*}
+% && {\testnums}\\
+% && {\testupper}\\
+% && {\testlower}\\
+% && {\testupgreek}
+%\end{eqnarray*}%
+
+Caligraphic (\texttt{\string\mathcal})
+\def\test#1{\mathcal{#1},}
+\begin{eqnarray*}
+ && {\testupper}
+\end{eqnarray*}%
+
+%Script (\texttt{\string\mathscr})
+%\def\test#1{\mathscr{#1},}
+%\begin{eqnarray*}
+% && {\testupper}
+%\end{eqnarray*}%
+
+%Fraktur (\texttt{\string\mathfrak})
+%\def\test#1{\mathfrak{#1},}
+%\begin{eqnarray*}
+% && {\testupper}\\
+% && {\testlower}
+%\end{eqnarray*}%
+
+%Blackboard Bold (\texttt{\string\mathbb})
+%\def\test#1{\mathbb{#1},}
+%\begin{eqnarray*}
+% && {\testupper}
+%\end{eqnarray*}%
+
+
+\clearpage
+\section{Character Sidebearings}
+
+\def\test#1{|#1|+}
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{|\mathrm{#1}|+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{|\mathbm{#1}|+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}%
+%%
+%\def\test#1{|\mathbf{#1}|+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}%
+%
+\def\test#1{|\mathcal{#1}|+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Superscript positioning}
+
+\def\test#1{#1^{2}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{\mathrm{#1}^{2}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{\mathbm{#1}^{2}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}%
+%
+%\def\test#1{\mathbf{#1}^{2}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}
+%
+\def\test#1{\mathcal{#1}^{2}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Subscript positioning}
+
+\def\test#1{\mathnormal{#1}_{i}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{\mathrm{#1}_{i}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{\mathbm{#1}_{i}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}
+%%
+%\def\test#1{\mathbf{#1}_{i}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}%
+%
+\def\test#1{\mathcal{#1}_{i}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Accent positioning}
+
+\def\test#1{\hat{#1}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}%
+%
+\def\test#1{\hat{\mathrm{#1}}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+%\def\test#1{\hat{\mathbm{#1}}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}\\
+% && {\testlowgreeki}\\
+% && {\testlowgreekii}\\
+% && {\testlowgreekiii}
+%\end{eqnarray*}%
+%%
+%\def\test#1{\hat{\mathbf{#1}}+}%
+%\begin{eqnarray*}
+% && {\testupperi}\\
+% && {\testupperii}\\
+% && {\testloweri}\\
+% && {\testlowerii}\\
+% && {\testupgreeki}\\
+% && {\testupgreekii}
+%\end{eqnarray*}
+%
+\def\test#1{\hat{\mathcal{#1}}+}%
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Differentials}
+
+\begin{eqnarray*}
+\gdef\test#1{\dit #1+}%
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}\\
+\gdef\test#1{\dit \mathrm{#1}+}%
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+\begin{eqnarray*}
+\gdef\test#1{\dup #1+}%
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}\\
+\gdef\test#1{\dup \mathrm{#1}+}%
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+%
+\begin{eqnarray*}
+\gdef\test#1{\partial #1+}%
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}\\
+\gdef\test#1{\partial \mathrm{#1}+}%
+ && {\testupgreeki}\\
+ && {\testupgreekii}
+\end{eqnarray*}%
+
+
+\clearpage
+\section{Slash kerning}
+
+\def\test#1{1/#1+}
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}
+
+\def\test#1{#1/2+}
+\begin{eqnarray*}
+ && {\testupperi}\\
+ && {\testupperii}\\
+ && {\testloweri}\\
+ && {\testlowerii}\\
+ && {\testupgreeki}\\
+ && {\testupgreekii}\\
+ && {\testlowgreeki}\\
+ && {\testlowgreekii}\\
+ && {\testlowgreekiii}
+\end{eqnarray*}
+
+
+\clearpage
+\section{Big operators}
+
+\def\testop#1{#1_{i=1}^{n} x^{n} \quad}
+\begin{displaymath}
+ \testop\sum
+ \testop\prod
+ \testop\coprod
+ \testop\int
+ \testop\oint
+\end{displaymath}
+\begin{displaymath}
+ \testop\bigotimes
+ \testop\bigoplus
+ \testop\bigodot
+ \testop\bigwedge
+ \testop\bigvee
+ \testop\biguplus
+ \testop\bigcup
+ \testop\bigcap
+ \testop\bigsqcup
+% \testop\bigsqcap
+\end{displaymath}
+
+
+\section{Radicals}
+
+\begin{displaymath}
+ \sqrt{x+y} \qquad \sqrt{x^{2}+y^{2}} \qquad
+ \sqrt{x_{i}^{2}+y_{j}^{2}} \qquad
+ \sqrt{\left(\frac{\cos x}{2}\right)} \qquad
+ \sqrt{\left(\frac{\sin x}{2}\right)}
+\end{displaymath}
+
+\begingroup
+\delimitershortfall-1pt
+\begin{displaymath}
+ \sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{\sqrt{x+y}}}}}}}
+\end{displaymath}
+\endgroup % \delimitershortfall
+
+
+\section{Over- and underbraces}
+
+\begin{displaymath}
+ \overbrace{x} \quad
+ \overbrace{x+y} \quad
+ \overbrace{x^{2}+y^{2}} \quad
+ \overbrace{x_{i}^{2}+y_{j}^{2}} \quad
+ \underbrace{x} \quad
+ \underbrace{x+y} \quad
+ \underbrace{x_{i}+y_{j}} \quad
+ \underbrace{x_{i}^{2}+y_{j}^{2}} \quad
+\end{displaymath}
+
+
+\section{Normal and wide accents}
+
+\begin{displaymath}
+ \dot{x} \quad
+ \ddot{x} \quad
+ \vec{x} \quad
+ \bar{x} \quad
+ \overline{x} \quad
+ \overline{xx} \quad
+ \tilde{x} \quad
+ \widetilde{x} \quad
+ \widetilde{xx} \quad
+ \widetilde{xxx} \quad
+ \hat{x} \quad
+ \widehat{x} \quad
+ \widehat{xx} \quad
+ \widehat{xxx} \quad
+\end{displaymath}
+
+
+\section{Long arrows}
+
+\begin{displaymath}
+ \leftarrow \mathrel{-} \rightarrow \quad
+ \leftrightarrow \quad
+ \longleftarrow \quad
+ \longrightarrow \quad
+ \longleftrightarrow \quad
+ \Leftarrow = \Rightarrow \quad
+ \Leftrightarrow \quad
+ \Longleftarrow \quad
+ \Longrightarrow \quad
+ \Longleftrightarrow \quad
+\end{displaymath}
+
+
+\section{Left and right delimters}
+
+\def\testdelim#1#2{ - #1 f #2 - }
+\begin{displaymath}
+ \testdelim()
+ \testdelim[]
+ \testdelim\lfloor\rfloor
+ \testdelim\lceil\rceil
+ \testdelim\langle\rangle
+ \testdelim\{\}
+\end{displaymath}
+
+\def\testdelim#1#2{ - \left#1 f \right#2 - }
+\begin{displaymath}
+ \testdelim()
+ \testdelim[]
+ \testdelim\lfloor\rfloor
+ \testdelim\lceil\rceil
+ \testdelim\langle\rangle
+ \testdelim\{\}
+% \testdelim\lgroup\rgroup
+% \testdelim\lmoustache\rmoustache
+\end{displaymath}
+\begin{displaymath}
+ \testdelim)(
+ \testdelim][
+ \testdelim//
+ \testdelim\backslash\backslash
+ \testdelim/\backslash
+ \testdelim\backslash/
+\end{displaymath}
+
+
+\clearpage
+\section{Big-g-g delimters}
+
+\def\testdelim#1#2{%
+ - \left#1\left#1\left#1\left#1\left#1\left#1\left#1\left#1 -
+ \right#2\right#2\right#2\right#2\right#2\right#2\right#2\right#2 -}
+
+\begingroup
+\delimitershortfall-1pt
+\begin{displaymath}
+ \testdelim\lfloor\rfloor
+ \qquad
+ \testdelim()
+\end{displaymath}
+\begin{displaymath}
+ \testdelim\lceil\rceil
+ \qquad
+ \testdelim\{\}
+\end{displaymath}
+\begin{displaymath}
+ \testdelim[]
+ \qquad
+ \testdelim\lgroup\rgroup
+\end{displaymath}
+\begin{displaymath}
+ \testdelim\langle\rangle
+ \qquad
+ \testdelim\lmoustache\rmoustache
+\end{displaymath}
+\begin{displaymath}
+ \testdelim\uparrow\downarrow \quad
+ \testdelim\Uparrow\Downarrow \quad
+\end{displaymath}
+\endgroup % \delimitershortfall
+
+
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/fonts/utilities/fontinst/examples/mathptmx/resetsy.mtx b/fonts/utilities/fontinst/examples/mathptmx/resetsy.mtx
new file mode 100644
index 0000000000..27da54c046
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/resetsy.mtx
@@ -0,0 +1,30 @@
+\relax
+
+\metrics
+
+\unsetglyph{Upsilon}
+\setglyph{Upsilon}
+ \glyph{Upsilon1}{1000}
+\endsetglyph
+
+\setglyph{pi1}
+ \glyph{omega1}{1000}
+\endsetglyph
+
+\setglyph{epsilon1}
+ \glyph{epsilon}{1000}
+\endsetglyph
+
+\setglyph{rho1}
+ \glyph{rho}{1000}
+\endsetglyph
+
+\setglyph{dotlessj}
+ \moveup{\neg{\depth{j}}}
+ \glyphrule{\width{j}}{\add{\depth{j}}{\height{dotlessi}}}
+ \resetitalic{\italic{dotlessi}}
+ \moveup{\depth{j}}
+ \glyphwarning{missing glyph `dotlessj'}
+\endsetglyph
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/unsetmu.mtx b/fonts/utilities/fontinst/examples/mathptmx/unsetmu.mtx
new file mode 100644
index 0000000000..63b222ed9f
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/unsetmu.mtx
@@ -0,0 +1,7 @@
+\relax
+
+\metrics
+
+\unsetglyph{mu}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/zrhax.mtx b/fonts/utilities/fontinst/examples/mathptmx/zrhax.mtx
new file mode 100644
index 0000000000..ce1bc5a281
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/zrhax.mtx
@@ -0,0 +1,15 @@
+\relax
+
+\metrics
+
+% This metrics file is loaded after having read the Times-Roman
+% glyphs. We unset those glyphs that should be taken from cmr.
+
+\unsetglyph{plus}
+\unsetglyph{equal}
+\unsetglyph{parenleft}
+\unsetglyph{parenright}
+\unsetglyph{bracketleft}
+\unsetglyph{bracketright}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/zrmhax.mtx b/fonts/utilities/fontinst/examples/mathptmx/zrmhax.mtx
new file mode 100644
index 0000000000..141899c6dc
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/zrmhax.mtx
@@ -0,0 +1,14 @@
+\relax
+
+\metrics
+
+% This metrics file is loaded after having read the Times-Italic
+% glyphs. We unset those glyphs that should be taken from cmmi.
+
+\unsetglyph{period}
+\unsetglyph{comma}
+\unsetglyph{less}
+\unsetglyph{slash}
+\unsetglyph{greater}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/zrmkernx.mtx b/fonts/utilities/fontinst/examples/mathptmx/zrmkernx.mtx
new file mode 100644
index 0000000000..f05a2f6867
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/zrmkernx.mtx
@@ -0,0 +1,239 @@
+\relax
+
+% The following adjustments (as proposed by Ulrik Vieth)
+% are tuned for Times-Italic and oblique Adobe Symbol.
+
+\metrics
+
+\needsfontinstversion{1.800}
+
+% \shiftglyph takes four parameters:
+%
+% #1 the name of the glyph
+% #2 the amount of extra space at the left
+% #3 the amount of extra space at the right
+% #4 the amount of extra space for subscripts
+
+\setcommand\shiftglyph#1#2#3#4{
+ \resetglyph{#1}
+ \movert{#2}
+ \glyph{#1}{1000}
+ \movert{#4}
+ \resetitalic{\add{\italic{#1}}{\sub{#3}{#4}}}
+ \endresetglyph
+}
+
+% \skewkern sets a skewchar kern, assuming that `tie'
+% is the skewchar.
+%
+% #1 the name of the glyph
+% #2 the amount of skewchar kerning
+
+\setcommand\skewkern#1#2{\setkern{#1}{tie}{#2}}
+
+
+%\shiftglyph{A}{}{}{}
+%\shiftglyph{B}{}{}{}
+\shiftglyph{C}{-50}{0}{-25}
+%\shiftglyph{D}{}{}{}
+\shiftglyph{E}{0}{50}{0}
+\shiftglyph{F}{0}{50}{-100}
+%\shiftglyph{G}{}{}{}
+\shiftglyph{H}{0}{25}{-25}
+\shiftglyph{I}{0}{0}{-25}
+\shiftglyph{J}{0}{0}{-25}
+\shiftglyph{K}{0}{0}{-25}
+%\shiftglyph{L}{}{}{}
+\shiftglyph{M}{0}{0}{-25}
+\shiftglyph{N}{0}{0}{-25}
+%\shiftglyph{O}{}{}{}
+\shiftglyph{P}{0}{0}{-125}
+%\shiftglyph{Q}{}{}{}
+%\shiftglyph{R}{}{}{}
+%\shiftglyph{S}{}{}{}
+\shiftglyph{T}{0}{50}{-75}
+\shiftglyph{U}{-50}{50}{-25}
+\shiftglyph{V}{-50}{50}{-50}
+\shiftglyph{W}{-50}{50}{-50}
+\shiftglyph{X}{0}{50}{-25}
+\shiftglyph{Y}{-50}{50}{-50}
+%\shiftglyph{Z}{}{}{}
+
+%\shiftglyph{a}{}{}{}
+\shiftglyph{b}{0}{-25}{0}
+%\shiftglyph{c}{}{}{}
+\shiftglyph{d}{0}{25}{0}
+%\shiftglyph{e}{}{}{}
+\shiftglyph{f}{150}{0}{25}
+\shiftglyph{g}{0}{-50}{0}
+%\shiftglyph{h}{}{}{}
+%\shiftglyph{i}{}{}{}
+\shiftglyph{j}{150}{25}{0}
+%\shiftglyph{k}{}{}{}
+\shiftglyph{l}{0}{50}{0}
+%\shiftglyph{m}{}{}{}
+%\shiftglyph{n}{}{}{}
+\shiftglyph{o}{0}{-50}{0}
+\shiftglyph{p}{75}{-25}{0}
+%\shiftglyph{q}{}{}{}
+%\shiftglyph{r}{}{}{}
+%\shiftglyph{s}{}{}{}
+\shiftglyph{t}{-25}{50}{0}
+%\shiftglyph{u}{}{}{}
+%\shiftglyph{v}{}{}{}
+%\shiftglyph{w}{}{}{}
+%\shiftglyph{x}{}{}{}
+%\shiftglyph{y}{}{}{}
+%\shiftglyph{z}{}{}{}
+
+\shiftglyph{Gamma}{-25}{50}{-125}
+\shiftglyph{Delta}{0}{0}{25}
+\shiftglyph{Theta}{-50}{0}{0}
+\shiftglyph{Lambda}{-25}{0}{0}
+\shiftglyph{Xi}{0}{0}{25}
+%\shiftglyph{Pi}{}{}{}
+\shiftglyph{Sigma}{0}{0}{25}
+\shiftglyph{Upsilon}{-75}{25}{-100}
+\shiftglyph{Phi}{0}{-25}{0}
+\shiftglyph{Psi}{-75}{0}{-100}
+\shiftglyph{Omega}{0}{0}{25}
+
+%\shiftglyph{alpha}{}{}{}
+%\shiftglyph{beta}{}{}{}
+%\shiftglyph{gamma}{}{}{}
+%\shiftglyph{delta}{}{}{}
+%\shiftglyph{epsilon1}{}{}{}
+%\shiftglyph{zeta}{}{}{}
+%\shiftglyph{theta}{}{}{}
+%\shiftglyph{iota}{}{}{}
+%\shiftglyph{kappa}{}{}{}
+%\shiftglyph{lambda}{}{}{}
+\shiftglyph{mu}{25}{0}{0}
+%\shiftglyph{nu}{}{}{}
+%\shiftglyph{xi}{}{}{}
+%\shiftglyph{omikron}{}{}{}
+%\shiftglyph{pi}{}{}{}
+%\shiftglyph{rho}{}{}{}
+\shiftglyph{sigma}{0}{25}{0}
+%\shiftglyph{tau}{}{}{}
+%\shiftglyph{upsilon}{}{}{}
+\shiftglyph{chi}{25}{0}{0}
+%\shiftglyph{phi}{}{}{}
+%\shiftglyph{psi}{}{}{}
+%\shiftglyph{omega}{}{}{}
+%\shiftglyph{epsilon}{}{}{}
+%\shiftglyph{theta1}{}{}{}
+%\shiftglyph{pi1}{}{}{}
+%\shiftglyph{rho1}{}{}{}
+\shiftglyph{sigma1}{0}{25}{0}
+%\shiftglyph{phi1}{}{}{}
+
+\shiftglyph{weierstrass}{-100}{-200}{-150}
+
+\skewkern{A}{75}
+\skewkern{B}{100}
+\skewkern{C}{100}
+\skewkern{D}{50}
+\skewkern{E}{75}
+\skewkern{F}{75}
+\skewkern{G}{100}
+\skewkern{H}{75}
+\skewkern{I}{100}
+\skewkern{J}{200}
+\skewkern{K}{75}
+%\skewkern{L}{}
+\skewkern{M}{100}
+\skewkern{N}{25}
+\skewkern{O}{100}
+\skewkern{P}{100}
+\skewkern{Q}{100}
+\skewkern{R}{100}
+\skewkern{S}{100}
+\skewkern{T}{50}
+\skewkern{U}{50}
+%\skewkern{V}{}
+%\skewkern{W}{}
+\skewkern{X}{50}
+%\skewkern{Y}{}
+\skewkern{Z}{50}
+
+\skewkern{a}{75}
+%\skewkern{b}{}
+\skewkern{c}{75}
+\skewkern{d}{200}
+\skewkern{e}{75}
+\skewkern{f}{150}
+\skewkern{g}{75}
+%\skewkern{h}{}
+\skewkern{i}{75}
+\skewkern{j}{150}
+%\skewkern{k}{}
+\skewkern{l}{100}
+\skewkern{m}{50}
+\skewkern{n}{50}
+\skewkern{o}{75}
+\skewkern{p}{100}
+\skewkern{q}{75}
+\skewkern{r}{50}
+\skewkern{s}{100}
+\skewkern{t}{50}
+\skewkern{u}{75}
+\skewkern{v}{75}
+\skewkern{w}{75}
+\skewkern{x}{75}
+\skewkern{y}{75}
+\skewkern{z}{50}
+\skewkern{dotlessi}{50}
+\skewkern{dotlessj}{50}
+
+\skewkern{Gamma}{75}
+\skewkern{Delta}{75}
+\skewkern{Theta}{50}
+\skewkern{Lambda}{50}
+\skewkern{Xi}{50}
+\skewkern{Pi}{75}
+\skewkern{Sigma}{50}
+\skewkern{Upsilon}{25}
+\skewkern{Phi}{75}
+\skewkern{Psi}{50}
+\skewkern{Omega}{50}
+
+%\skewkern{alpha}{}
+\skewkern{beta}{50}
+\skewkern{gamma}{75}
+\skewkern{delta}{50}
+%\skewkern{epsilon1}{}
+\skewkern{zeta}{50}
+\skewkern{theta}{50}
+%\skewkern{iota}{}
+\skewkern{kappa}{25}
+\skewkern{lambda}{-75}
+%\skewkern{mu}{}
+%\skewkern{nu}{}
+\skewkern{xi}{50}
+\skewkern{pi}{50}
+\skewkern{rho}{25}
+\skewkern{sigma}{25}
+\skewkern{tau}{50}
+\skewkern{upsilon}{50}
+\skewkern{chi}{25}
+\skewkern{phi}{75}
+\skewkern{psi}{50}
+\skewkern{omega}{50}
+%\skewkern{epsilon}{}
+\skewkern{theta1}{75}
+\skewkern{pi1}{50}
+\skewkern{rho1}{25}
+\skewkern{sigma1}{50}
+\skewkern{phi1}{50}
+
+\skewkern{weierstrass}{175}
+\skewkern{lscript}{125}
+
+\resetglyph{vector}
+ \movert{-100}
+ \glyph{vector}{1000}
+ \movert{100}
+\endresetglyph
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/zrvhax.mtx b/fonts/utilities/fontinst/examples/mathptmx/zrvhax.mtx
new file mode 100644
index 0000000000..6270feb615
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/zrvhax.mtx
@@ -0,0 +1,73 @@
+\relax
+
+% This metrics file is loaded after having read the cmex glyps.
+% We unset the big operators that should be taken from Symbol
+% or from a scaled-down version of cmex.
+
+\metrics
+
+\setint{psy-textscale}{1000}
+\setint{psy-displayscale}{1440}
+
+\unsetglyph{circledotdisplay}
+\unsetglyph{circledottext}
+\unsetglyph{circlemultiplydisplay}
+\unsetglyph{circlemultiplytext}
+\unsetglyph{circleplusdisplay}
+\unsetglyph{circleplustext}
+\unsetglyph{contintegraldisplay}
+\unsetglyph{contintegraltext}
+\unsetglyph{integraldisplay}
+\unsetglyph{integraltext}
+\unsetglyph{intersectiondisplay}
+\unsetglyph{intersectiontext}
+\unsetglyph{logicalanddisplay}
+\unsetglyph{logicalandtext}
+\unsetglyph{logicalordisplay}
+\unsetglyph{logicalortext}
+\unsetglyph{uniondisplay}
+\unsetglyph{unionmultidisplay}
+\unsetglyph{unionmultitext}
+\unsetglyph{unionsqdisplay}
+\unsetglyph{unionsqtext}
+\unsetglyph{uniontext}
+
+\resetglyph{summationtext}
+ \glyph{summation}{\int{psy-textscale}}
+\endresetglyph
+
+\resetglyph{summationdisplay}
+ \glyph{summation}{\int{psy-displayscale}}
+\endresetglyph
+
+\resetglyph{producttext}
+ \glyph{product}{\int{psy-textscale}}
+\endresetglyph
+
+\resetglyph{productdisplay}
+ \glyph{product}{\int{psy-displayscale}}
+\endresetglyph
+
+\resetglyph{coproducttext}
+ \moveup{\neg{\depth{producttext}}}
+ \glyphrule{
+ \width{producttext}
+ }{
+ \add{\height{producttext}}{\depth{producttext}}
+ }
+ \moveup{\depth{producttext}}
+ \glyphwarning{missing glyph `coproducttext'}
+\endresetglyph
+
+\resetglyph{coproductdisplay}
+ \moveup{\neg{\depth{productdisplay}}}
+ \glyphrule{
+ \width{productdisplay}
+ }{
+ \add{\height{productdisplay}}{\depth{productdisplay}}
+ }
+ \moveup{\depth{productdisplay}}
+ \glyphwarning{missing glyph `coproductdisplay'}
+\endresetglyph
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/zryhax.mtx b/fonts/utilities/fontinst/examples/mathptmx/zryhax.mtx
new file mode 100644
index 0000000000..19addd6ad8
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/zryhax.mtx
@@ -0,0 +1,26 @@
+\relax
+
+\metrics
+
+% This metrics file is loaded after having read the cmsy glyphs.
+% We unset those glyphs that should be taken from Times or Symbol.
+
+\unsetglyph{infinity}
+\unsetglyph{proportional}
+
+\unsetglyph{emptysetstress}
+
+\unsetglyph{Rfraktur}
+\unsetglyph{Ifraktur}
+
+\unsetglyph{aleph}
+
+\unsetglyph{coproduct}
+\unsetglyph{gradient}
+
+\unsetglyph{section}
+\unsetglyph{dagger}
+\unsetglyph{daggerdbl}
+\unsetglyph{paragraph}
+
+\endmetrics
diff --git a/fonts/utilities/fontinst/examples/mathptmx/zrykernx.mtx b/fonts/utilities/fontinst/examples/mathptmx/zrykernx.mtx
new file mode 100644
index 0000000000..249700156e
--- /dev/null
+++ b/fonts/utilities/fontinst/examples/mathptmx/zrykernx.mtx
@@ -0,0 +1,35 @@
+\relax
+
+% We reset the skewchar kerning for OMS (assuming skewchar=`prime')
+% using the original kern pairs for OML (assuming skewchar=`tie').
+
+\metrics
+
+\setkern{A}{prime}{\kerning{A}{tie}}
+\setkern{B}{prime}{\kerning{B}{tie}}
+\setkern{C}{prime}{\kerning{C}{tie}}
+\setkern{D}{prime}{\kerning{D}{tie}}
+\setkern{E}{prime}{\kerning{E}{tie}}
+\setkern{F}{prime}{\kerning{F}{tie}}
+\setkern{G}{prime}{\kerning{G}{tie}}
+\setkern{H}{prime}{\kerning{H}{tie}}
+\setkern{I}{prime}{\kerning{I}{tie}}
+\setkern{J}{prime}{\kerning{J}{tie}}
+\setkern{K}{prime}{\kerning{K}{tie}}
+\setkern{L}{prime}{\kerning{L}{tie}}
+\setkern{M}{prime}{\kerning{M}{tie}}
+\setkern{N}{prime}{\kerning{N}{tie}}
+\setkern{O}{prime}{\kerning{O}{tie}}
+\setkern{P}{prime}{\kerning{P}{tie}}
+\setkern{Q}{prime}{\kerning{Q}{tie}}
+\setkern{R}{prime}{\kerning{R}{tie}}
+\setkern{S}{prime}{\kerning{S}{tie}}
+\setkern{T}{prime}{\kerning{T}{tie}}
+\setkern{U}{prime}{\kerning{U}{tie}}
+\setkern{V}{prime}{\kerning{V}{tie}}
+\setkern{W}{prime}{\kerning{W}{tie}}
+\setkern{X}{prime}{\kerning{X}{tie}}
+\setkern{Y}{prime}{\kerning{Y}{tie}}
+\setkern{Z}{prime}{\kerning{Z}{tie}}
+
+\endmetrics