diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/utilities/fontinst/examples |
Initial commit
Diffstat (limited to 'fonts/utilities/fontinst/examples')
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 |