A Better Font Structure

The TDS mandates the use of dpi300/cmr10.pk for font naming syntax as it is the only portable form across present-day operating systems. Extensions to this recommendation, such as cmr10.300pk or the use of font library files, may optionally be employed on those systems that support this filename syntax, as long as the portable form of the filename is also supported.

The TWG struggled more with the font directory structure than anything else. The alternative arrangement we considered was:

texmf/fonts/supplier/typeface/type/

In fact, many sites already use this alternative arrangement. (It is the arrangement suggested by the Web2C distribution.)

This arrangement greatly improves the maintainability of the font tree, but, unless all the programs that search this tree employ some form of caching, there are serious performance concerns. For example, in order to find cmr10.tfm, TeX would potentially have to search through all the directories that contain pk files in all modes and at all resolutions. Clearly, this could make TeX unusable unless it had some method for ``short circuiting'' the search.

In the end, a straw poll of developers revealed considerable resistance to implementing sufficient caching mechanisms, so this other arrangement was abandoned. The arrangement settled on for the TDS allows the search tree to be restricted to the correct type of file, at least. Concerns about efficiency remain, but there seems to be no more we can do.

Where Does the Mode Go?

Another discussion arose in the effort to determine where the mode should go. The two alternative contenders were

texmf/fonts/pk/supplier/typeface/mode/dpi/

and

texmf/fonts/pk/mode/dpi/supplier/typeface/

In the former case, it isn't easy to limit subdirectory searching to only the mode required for the particular printer you are using. And in the latter case, leaving dpiNNN at the bottom allows that level to be omitted on systems which allow long filenames (e.g., cmr10.300pk).