Virtual fonts

Virtual fonts for TeX were first implemented by David Fuchs in the early days of TeX, but for most people they date from when Knuth redefined the format, and wrote some support software, in 1989 (he published an article in TUGboat at the time, and a copy is available on CTAN). Virtual fonts provide a way of telling TeX about something more complicated than just a one-to-one character mapping. The entities you define in a virtual font look like characters to TeX (they appear with their sizes in a font metric file), but the DVI processor may expand them to something quite different. You can use this facility just to remap characters, to make a composite font with glyphs drawn from several sources, or to build up an effect in arbitrarily complicated ways - a virtual font may contain anything which is legal in a DVI file.

In practice, the most common use of virtual fonts is to remap PostScript fonts (see font metrics). Other interesting uses have been to build 'fake' maths fonts (by bundling glyphs from several fonts together), and (utilising the facility to use bits of DVI) to build useful subsets of the T1 fonts using nothing but the PostScript Type 1 versions of Knuth's Computer Modern fonts.

It is important to realise that TeX itself does not see virtual fonts; for every virtual font read by the DVI driver there is a corresponding TFM file read by TeX. Virtual fonts are normally created in a single ASCII vpl (Virtual Property List) file, which includes both sets of information. The vptovf program is then used to the create the binary TFM and VF files. The commonest way (nowadays) of generating vpl files is to use the fontinst package, which is described in detail together with the discussion of PostScript font metrics. qdtexvpl is another utility for creating ad-hoc virtual fonts.

fontinst
fonts/utilities/fontinst (zip, browse)
Knuth on virtual fonts
info/virtual-fonts.knuth
qdtexvpl
fonts/utilities/qdtexvpl (zip, browse)

This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=virtualfonts