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.
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=virtualfonts