[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Future of the `Karl Berry Font Naming Scheme'...

Pierre MacKay writes:
> One of the primary criteria emphasized by DEK in the development of
> TeX is its archival capabilities, in the sense that source from 1984
> can be used to generate DVI in 1997.  This is the whole reason why
> certain "enhancements" to TeX are forbidden to use the name TeX.  The
> TeX and LaTeX communities are strongly committed to supporting the
> interchangeability of source, and they have largely succeeded.  My
> TeX files are largely useless to anyone else because they depend on
> a thirty-five page macro package which I have not chosen to make public
> (largely because I can't put the resources in to support it), but if
> I sent source and macro package together to some other site, it would
> run.  It could with minor adjustments run even on an 8+3 system.

Lets get some points straight. More than 21% of the files on CTAN do
not use 8+3 names. Some of the standard TeX/LaTeXfiles (e.g. lcircle10.tfm)
are not 8+3 names. In the realm of fonts, 237 of the 560 EC fonts on CTAN
do not fit into the 8+3 naming scheme.

Next, users of modern TeX systems may use a map file that means that
TeX doesn't have to be hamstrung by 8+3 file names on their native
operating system. This is outlined by Karl Berry in his _Fontname_
document, where he writes:
| 3   Long names
| Eight characters is not enough to unambiguously represent all fonts.
| To do that, we have to allow ourselves arbitrarily long names. Although
| we certainly cannot use such names for the files themselves, we could
| still use them in TEX documents given a simple mapping file, as discussed
| below.
| 3.1 A fontname mapping file
| At the moment, most implementations of TEX look up a TFM file (as part
| of the "font command), by searching for a file with the name given by
| the user (possibly in any of series of directories). But if we also
| looked TFM names up in another file (or set of files), which specifies
| the actual filename, the fontname given in the TEX source file could be
| almost anything at all, of any length.
|    In version 5.851d of Web2c, I implemented this mapping file. Each
| file `texfonts.map' in a search path is read for abbreviations. The file
| has a straightforward format: each line specifies the filename and the
| TEX name for one font, separated by whitespace. Extra information on
| the line is ignored; then more information could be specified for the
| benefit of DVI-reading programs in the same file. Comments start with
| % and continue to the end of the line.
|    Besides allowing long names, this sort of mapping file has other
| benefits.  TEX source or DVI files can be more easily transported,
| because the font names in a particular file can be made work on every
| system. Also, when combined with a consistent naming scheme, macros
| could be written to access any of a number of fonts. Right now, each
| font family has to have specialized macros written to deal with it.
|    Incidentally, Professor Knuth has approved this as a legitimate
| "system-dependent" extension; a TEX with such a feature can still be
| called "TEX".

And finally, the KB system does not guarantee 8+3 names anyway. If 8+3
names were important, perhaps we should have used a scheme that could
better compress font names into 8+3 characters -- I'm pretty sure such
schemes have been proposed in the past. Karl Berry is, I believe, well
aware of these limitations, as they have been observed many times before.
Karl writes on the first page of _Fontname_:
| [Frank] Mittelbach wrote [a TUGboat] article criticizing the scheme
| below in TUGboat 13(1) (April 1992), pages 51-53; most of his points
| are well-taken, but I saw no alternative then, and see no alternative
| now.

Personally, I'm left believing that we should use some long-name scheme
for fonts within TeX, and then have TeX map its font name to whatever
local naming convention is used for fonts. And that local convention
does not need to be standardized -- although a suitable `standard' would
be to adopt whatever convention is used for AFM files on that system.

To return to where I began, I've been creating TFMs for a font, faithfully
following the KB scheme, resulting in names that are pretty hard to
understand and use different letter sequences to those LaTeX uses (for
example, where LaTeX uses `sb' for SemiBold, the Berry scheme uses `s').
Then I asked myself just why I was doing this -- about the only reason
I can see to do this is to try to fit font names into 8+3 characters,
and in my case, it fails.



P.S. If you think the KB scheme is easy to follow, just try to remember
what the following mean: 9d, 9o, 9e, 9t, 9c, 8x, 8cx, 8xc.