(Laurence Finston's Website)
This copyright notice applies to all material on this webpage:
Copyright 2022, 2023 Laurence D. Finston
All Rights Reserved.
Last updated: July 7, 2022.
For many years, I have been using TeX and friends for my typesetting needs. The original fonts for TeX were designed by its inventor, Prof. Donald E. Knuth, using his own METAFONT package.
MetaPost is another software package, which was developed by John Hobby from METAFONT. Hobby was Prof. Knuth's main collaborator on METAFONT. (See also MetaPost on the Web.) Whereas the output of METAFONT is run-length encoded bit-maps, that of MetaPost is Encapsulated PostScript (EPS) code, which may be included in TeX or other kinds of documents or converted to other graphics formats.
While MetaPost may be used for creating PostScript fonts, it was primarily intended for creating graphics, which may contain material ("labels") typeset by TeX.
My own software package, GNU 3DLDF, is for three-dimensional drawing with MetaPost output. It implements a language based on METAFONT but is a completely separate program, sharing no code with either METAFONT or MetaPost.
There is a great variety of fonts (of varying quality) available for use with TeX. TeX distributions, such as TeX Live and MiKTeX, typically include a large selection of METAFONT fonts, programmed by professionals and amateurs alike. In addition, many PostScript fonts, including the "standard" ones such as Times-Roman, Courier, Garamond, etc., have been made available for use with TeX.
An important family of fonts is still Knuth's Computer Modern, originally designed for typesetting his magnum opus The Art of Computer Programming (TAOCP). I say "still" because of Knuth's own disclaimer that he is not a professional type designer, though he did receive expert advice, in particular, but not exclusively, from the designer Hermann Zapf.
One reason for the Computer Modern's tenacity is the fact that it contains a full set of sorts for mathematical typesetting, which was a key requirement of TAOCP. Even today, the main typeface of many mathematical textbooks, in particular, those published by Springer-Verlag but also others, is instantly recognizable as Computer Modern Roman.
Zapf himself designed another set of mathematical typefaces, AMS Euler, commissioned by the American Mathematical Society, for the volume Concrete Mathematics by Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, which were implemented in METAFONT by a team at Stanford University under Knuth's direction. However, it would seem that Euler has never since been used for any other volume published in book form.
Typically, the revisions to Euler in 2009 were implemented directly in PostScript, bypassing the METAFONT code completely. (This is discussed further below.) Subsequently, the AMS withdrew the original sources, which I feel is not in the spirit of Knuth's work. Since the copyright notices of the sources specifically allow copying, I have made them available here. The TeX Users Group has also made them available here.
For lettering in my graphics work, e.g., in titles, I use TeX for typesetting and a selection of METAFONT fonts, in particular Computer Modern and Euler. Generally, however, I require them in display sizes. A display size may be anything from a centimeter or two on the page of a book, 5 to 10cm on a poster or several meters on the side of a skyscraper or, in the case of skywriting, written on the sky by an airplane.
The Computer Modern fonts are available in a range of sizes. A major reason why Knuth invented METAFONT in the first place, and the reason for its name, is that it makes it possible to parameterize fonts in order to vary their proportions relative to type size. In the context of METAFONT, Knuth calls this "meta-ness".
There are individual parameter files for Computer Modern Roman in the sizes 5, 6, 7, 8, 9, 10, 12 and 17 points. Larger or smaller versions of these fonts may be generated by magnification (or shrinkage). A simpler, display size font, cminch, is available with a design size of, you guessed it, one inch.
A major problem that must be overcome when using TeX fonts for displays is that, unlike typesetting fonts, display fonts are often not solid. A way must therefore be found to use only the outlines of the characters. In addition, display fonts are often bi- or multi-colored whereas TeX doesn't provide any means for typesetting such characters.
I know of two approaches to solving the problem of using METAFONT fonts in TeX for displays: The simplest is to use MetaPost's glyph command to obtain each character's outline whereas a better one is to modify the METAFONT code directly. Each approach has its own advantages and limitations.
In short, the problem with glyph is that it returns the outlines of the character, but not its original bounding box or the relation to the latter of the strokes that make up the character. The problem with modifying the METAFONT code is that this may require a deeper understanding of it. While this is not a problem with Computer Modern, provided one has done one's homework, in the case of Euler, it may not be possible with a reasonable amount of effort. (See below.)
METAFONT is documented in the series Computers & Typesetting as Vol. C, The METAFONTbook and the Computer Modern typefaces in Vol. E of the same series. The latter contains all of the METAFONT programs used to create the entire family of Computer Modern typefaces together with detailed explanations. These two volumes together provide all of information anyone could possibly need to understand and modify Computer Modern fonts.
For my purposes, the Bold Extended version of Computer Modern is most suitable for displayed text. The following figure shows the output of METAFONT when run in "proof" mode:
[TODO: Add Figure]
By making the following changes, it's possible to create a modified, outlined character:
[TODO: Add Figure]
The next step is to run METAFONT with mode set to a value for generating a bit-map font in a particular resolution:
[Example]
This generates the "generic font" file [GF FILENAME]. It must be converted to a "packed font" file [PK FILENAME] with gftopk. The packed font file is used by programs that read and/or process the DVI ("device-independent") files produced by TeX, such as xdvi, dvips, dvipdfmx, dvitype, etc.
Now, the font may be used within a TeX file:
%% TeX file
\font\outline=cmroutline10
This is an example of using an outline font:
[ADD BOX]
{\outline A}
\bye
[ADD FIGURE]
Euler Fraktur, Hollow Display Font
MetaPost code: | euler_fraktur.mp
|
MetaPost macro file: | outline_euler_fraktur.mac
|
TeX code: | euler_fraktur.txt
|
PDF file (DIN A4 portrait): | euler_fraktur.pdf |
Laurence Finston
Göttingen, Germany
email: Laurence.Finston-*-AT-*-gmx.de
(Replace -*-AT-*-
with @
for the email address.)