| PREVIOUS | HEAD |
The explanation below assumes you understand the concepts of virtual fonts, as described in the reference above. The details are quite technical, but as we said, it is a feature for TEX experts.
Virtual fonts affect the operation of the previewer as follows (The following convention was modified in Release 4.0R; see above). If there is an ``actual'' font (that is, a TrueType font) for a font's external name, then the font is treated in the conventional (non-virtual) way, using the TEX or ANSI composite encoding as appropriate for the name. If there is no actual font for a given name, then the previewer expects to find a virtual font file (fontname .vf), and treats the font as a virtual font according to the instructions in the virtual font file. The previewer uses the same directory path for virtual font files as it does for TFM files, so the setting of Options Expert Path for TFM Files determines the directories where TRUETEX expects to find .vf files.
In previous TRUETEX versions which did not implement virtual fonts, all TEX font external names had to have an ``actual'' realization, which in the case of TRUETEX meant that they had to have a TrueType font with the same external name. With virtual fonts, a font name may refer to a virtual font file which gives instructions for rendering the font in terms of compositions from other fonts. A virtual font may also be recursive: it may refer in turn to other virtual fonts, as long as the chain ultimately leads to a glyph in an actual font.
Note that there are several details of how TRUETEX implements virtual fonts in addition to the TEX standard:
First, virtual fonts are never re-mapped. TRUETEX does not apply composite encoding to virtual fonts themselves or when rendering actual fonts used within virtual fonts. It is assumed that the virtual font mechanism will appropriately re-map the TEX font codes to the proper Windows ANSI codes. This means that if you want to make a virtual font out of several of the Computer Modern fonts, you must incorporate the ``ad hoc'' re-encoding table (described in the User's Guide) into your virtual font. By not re-encoding the fonts, TRUETEX virtual fonts allow you complete and simplified access to all glyphs in any font. Non-virtual fonts continue to be re-mapped with either the ``ad hoc'' or Windows ANSI tables; you can think of this behavior as if TRUETEX had a ``default'' virtual font (consisting of the re-mapping tables) for every top-level non-virtual font.
Second, in the case where both a virtual and actual font exist for a given external name, TRUETEX will give precedence to the virtual font at the top level. In keeping with the virtual font standard, TRUETEX prefers to treat recursive fonts within virtual fonts as actual (that is, TrueType) fonts, and treats them as virtual only if there is no TrueType version. At the top level, this bias is reversed, and TRUETEX attempts to first find a virtual font file for each top-level font in the document.
In this way we can use both a virtual and a TrueType version of a given font, without having to multiply the number of names or change the names of fonts in TEX or in the TrueType font system. For example, virtual font file cmr10.vf might render glyphs in terms of the font with the same name cmr10; TRUETEX would understand that the virtual font file is defining the virtual characters in terms of the TrueType font.
The usual virtual font scheme is to always prefer to treat font names as actual fonts, thereby precluding infinite recursion. The TRUETEX scheme is slightly different: A given font name may have both an actual and virtual realization. That is, the name may match both a TrueType font and a virtual font file, and the recursion rule sorts out which is used and when. This change presents no conflict with the usual virtual font scheme of always prefering the actual font.
We plan to extend the TRUETEX TFM export feature to also export virtual font files to facilitate your use of Windows fonts. The CTAN TEXware packages like vptovf and fontinst are good expert tools for creating virtual fonts which are compatible with TRUETEX.
| NEXT | HEAD |