Filenames for TeX fonts
***********************

This document describes a scheme for making eight-character filenames from (almost) arbitrarily complex font names.  It points out shortcomings of this approach, as well as strengths.  Many examples of the approach are given as well as complete tables of all ``registered'' (i.e., sent to me, karl@cs.umb.edu) names.

This is version 1.5.

Introduction
************

As more typeface families become available for use with TeX, the need for a consistent, rational naming scheme for the font filenames concomitantly grows.  What follows is somewhat related to and a simplification of Mittelbach's and Schoepf's article in TUGboat, volume 11, number 2 (June 1990).  The document you are now reading is an update of my article published in TUGboat 11(4) (November 1990), pages 512--519.  Finally, Mittelbach wrote another 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.  Other of his points are addressed in the appropriate sections below.

Here are some relevant facts about fonts:

  * TeX runs on virtually all computers, under almost as many operating systems, all with their own (usually incompatible) ideas of how files should be named.  Any proposal regarding filenames, therefore, must cater to the lowest common denominator.  As far as I know, this is eight characters in length (since the SAIL machines on which Knuth developed TeX have been unplugged), not counting any extension, without regard to case, and using only letters and numerals.

  * Most typefaces are offered by several vendors.  The version offered by one vendor is not compatible with that of another.  In fact, the names are usually not the same (a deplorable practice due to the lack of typeface protection in all countries (at this writing, and to my knowledge) except Germany, England, and (in a few cases) France).

  * Typefaces typically come in different weights (hairline to extra heavy), different widths (ultra condensed to wide), and an open-ended range of variants (italic, sans serif, typewriter, shadow, ....  No accepted standards exist for what any of these qualities actually, nor (in my opinion) are any standards ever likely to gain acceptance.  (Although work on an international font standard is progressing, the end is not in sight.)

  * The Computer Modern typeface family preserves traditional typesetting practice in at least one important respect: different sizes of the same font are not simply linear scalings.  This is in contrast to most commercial (e.g., PostScript) fonts available.

I know that these tables are incomplete.  Please send me, by electronic mail to karl@cs.umb.edu, any additions or corrections, as well as any other comments you may have.  There is also a (low-volume) mailing list concerned with fonts and TeX in general (this scheme was developed after discussions on that list, in fact): tex-fonts@math.utah.edu.

Many people have contributed to this proposal.  I would like to acknowledge in particular Barbara Beeton, Rocky Bernstein, Berthold K.P. Horn, Sebastian Rahtz, and Jean Rivlin.  Tom Rokicki and Russell Lang gave it its first real test when they adapted it to Tom's DVI-to-PostScript translator, dvips.

The naming scheme
*****************

Here is how I propose to divide up the eight characters (the spaces between the parts are only for readability, and of course should not be in the filename!):

      S TT W V E DD

where

  * S represents the source of the font, and is omitted if the source is unknown or irrelevant.

  * TT represents the typeface name.

  * W represents the weight.

  * V represents the variant, and is omitted if both it and the width are ``normal''.  Many fonts have more than one variant.

  * E represents the width (``expansion''), and is omitted if it is ``normal''.

  * DD represents the design size, and is omitted if the font is linearly scaled from a single TFM file.

See the section on virtual fonts (towards the end) for an exception to the above.

The weight, variant, and width are probably all best taken from the original source of the typeface, instead of trying to relate them to some external standard.

Before giving the lists of abbreviations, let me point out some problems.  I don't know of a good solution for any of them.  Please let me know if you have ideas about any of them.

 1. Assuming that only the English letters are used, two letters is enough for only 676 typeface families (even assuming we want to use all possible combinations, which is doubtful).  There are many more than 676 typeface families in the world.  This problem has already arisen in practice---the abbreviations for typeface families that start with the letter `s', for example, break down after a while: I had to call Simoncini Garamond (which should be sg on the face of it) ig.

 2. Fonts with design sizes larger than 100 point do exist.  Mittelbach in TUGboat 13(1) proposes using hexadecimal or base-36 notation.  I don't think the increased range makes up for the unreadability of the common sizes (e.g., 10pt fonts would have a suffix a (in hex), or j (in base 36)).  In practice, no one has complained to me that they can't name their 128pt Helvetica.

 3. Several of the ``variants'' below are not type styles (specifically, `expert' and `alternate'); instead, they are different encoding schemes.  The encoding scheme should be specified separately, but there are no more letters.

 4. Another dimension along which typefaces can vary is the script. Many typeface families include variants for Greek, or Cyrillic, or what have you.  Again, this should be specified independently of everything else, but there are no more letters.  For now, Greek can be specified as a variant letter k.

 5. It is common to have multiple variants.  This quickly makes the font names longer than eight letters.  For example, Adobe sells a font named Minion-SwashDisplayItalic, which translates to the name pmnrwdi, seven letters long.  If Adobe did proper design sizing, the name would be nine letters long already---and the font isn't even bold!

 6. Multiple variants also lead to ambiguous names, in two different ways.

     First, the same font can be given different names, by specifying the variants in different orders.  For example, the Minion-SwashDisplayItalic font mentioned above could also be specified as pmnrdiw.  This can be alleviated by always giving the variant abbreviations in alphabetical order.

     Second, two fonts can be given the same name.  For example, fcmrtc could be either Computer Modern typewriter condensed or Computer Modern typewriter small caps.  This problem can be alleviated by adding r (or possibly rr, in pathological cases) to the end, meaning ``normal width.  But that will make the name too long in many cases, and always specifies what should be redundant information.

     Ideally, the various parts of the name would be separated by something other than the empty string.

If you adopt this proposal at your installation, and find that you have fonts with some property I missed, please write to me (see the end of the article for various addresses), so I can update the lists.  You can get the most up-to-date version of these lists electronically, by anonymous ftp from the host ftp.cs.umb.edu, in the directory pub/tex/fontname.  I will also send them to you by electronic mail, if necessary.

Graham Asher (gasher@cursci.co.uk) has written a C routine to demangle these fontnames.  See fnget.h and fnget.c in this distribution.

I give the letters in lowercase, which I think should be used on systems where case is significant.  The lists are in alphabetical order by the abbreviation.

Sources
=======

You should use the letter here which matches the vendor you obtained the font from.  This doesn't necessarily mean that vendor is the original source; for example, Avant Garde was designed by Herb Lubalin for ITC, but Adobe also sells it.  The name of the font that you get from Adobe should start with p.

9
     unknown

a
     Autologic

b
     Bitstream

c
     Compugraphic

d
     Digital Typeface Corporation (DTC)

f
     freely distributable (e.g., public domain)

g
     Free Software Foundation (g for GNU)

h
     Bigelow & Holmes

i
     ITC (International Typeface Corporation)

l
     Linotype

m
     Monotype

n
     IBM

p
     Adobe (p for PostScript)

r
     `raw' (for [obsolete] use with virtual fonts, see Naming virtual fonts)

s
     Sun

u
     URW

x
     American Mathematical Society (x for math)

y
     Y&Y

z
     bizarre

Fonts that are distributed without any real attribution to the creator or by individuals who don't plan to start their own digital type foundries (Computer Modern, for example) can use f. People sometimes create their own personal fonts, not intended for distribution; for those, it doesn't make any difference what the name is.

It's unfortunate that the ``bizarre'' source z is needed; but some fonts just don't fit well into the naming scheme.  Such fonts should be prefixed by z (in addition to the real source).

The source r is also unfortunate; it would be better to simply specify the encoding of the font, or whatever the virtual font changed or added, eliminating the rather artificial distinction between ``raw'' and ``virtual'' fonts.

Typeface families
=================

a2
     Amasis

aa
     Aachen

ab
     Arnold Boecklin

ac
     Adobe Caslon

ad
     Adobe Garamond

ag
     Avant Garde

ah
     Ashley Script

ai
     Abadi

al
     Albertus

am
     Americana

ao
     Antique Olive

ap
     Apollo

aq
     Antiqua

ar
     Arcadia

as
     Aldus

at
     American Typewriter

au
     Auriol

av
     Avenir

az
     Akzidenz Grotesque

b0
     Blackoak

b1
     Blado

b2
     BinnyOldStyle

b3
     Braggadocio

bb
     Bembo

bc
     Banco

bd
     Bodoni

be
     Bell

bf
     Biffo

bg
     Benguiat

bh
     Bauhaus

bi
     Birch

bk
     Bookman

bl
     Belwe

bn
     Bernard

bo
     Balloon

bp
     Bundesbahn Pi

br
     Berling

bs
     BakerSignet

bu
     Brush

bv
     Baskerville

bw
     Broadway

by
     Berkeley

c0
     Carolina

c1
     Calisto

c2
     Caslon 224

c3
     Caslon 3

c5
     Caslon 540

c6
     Clarion

c7
     Compacta

c8
     Calvert

ca
     Caslon

cb
     Cooper Black

cc
     Cascade

cd
     Clarendon

ce
     Centennial

cf
     Clearface

cg
     Charlemagne

ch
     Charter

ci
     Candida

cl
     Cloister

cm
     Computer Modern

cn
     Century

co
     Cochin

cp
     Copperplate

cq
     Cheq

cr
     Courier

cs
     Century Schoolbook

ct
     Cheltenham

cu
     Century Old Style

cv
     Clairvaux

cw
     Cottonwood

cx
     Caxton

cy
     City

dc
     Dom Casual

dd
     Duc de Berry

dl
     Dolores

dr
     Doric

ds
     Dorchester Script

ee
     Egyptian Extended

ef
     EgyptienneF

eg
     Stempel Garamond

eh
     Engschrift

ei
     Esprit

el
     Ellington

en
     Engravers

eo
     Amerigo

ep
     European Pi

er
     Eras

es
     Eurostile

et
     Ehrhardt

eu
     Euler

ex
     Excelsior

fa
     Formata

fe
     Forte

ff
     Fairfield

fg
     Franklin Gothic

fl
     Flora

fn
     Fenice

fo
     Folio

fq
     Friz Quadrata

fr
     Frutiger

fs
     Falstaff

fi
     Figaro

ft
     Fette Fraktur

fu
     Futura

fx
     Felix Titling

fy
     Flyer

g1
     Gothic Thirteen

g3
     Garamond No. 3

g4
     Goudy Modern

g5
     Goudy Catalogue

gb
     Gothic BBB

gg
     Garth Graphic

gj
     Granjon

gl
     Galliard

gm
     Garamond

go
     Goudy Old Style

gp
     Glypha

gq
     Grotesque

gr
     Gloucester

gs
     Gill Sans

gt
     Goudy Text

gu
     Guardi

gv
     Giovanni

gy
     Goudy

hb
     Hobo

hc
     Herculanum

hd
     Headline

hg
     Hiroshige

hi
     Helvetica Inserat

hm
     Charme

hn
     Helvetica Neue

ho
     Horley Old Style

hr
     Helvetica Rounded

hv
     Helvetica

ia
     Insignia

ic
     Impact

if
     Inflex

ig
     Simoncini Garamond

ii
     Imprint

il
     Caecilia

im
     Imago

in
     Industria

io
     ionic

ip
     Impressum

is
     Italian Old Style

it
     Italia

iw
     Ironwood

jn
     Janson

jo
     Joanna

jp
     Juniper

kb
     Kabel

kl
     Klang

kr
     Korinna

ks
     Kuenstler Script

ku
     Kaufmann

lb
     Lubalin Graph

lc
     Lucida

lf
     Life

lg
     Letter Gothic

li
     Latin

ln
     Lino

lo
     Lithos

ls
     Mittelshrift

lt
     Lutetia

lw
     Leawood

m1
     Monoline Script

md
     Meridien

me
     Mercurius Script

mh
     Machine

mi
     Medici

ml
     Melior

mn
     Minion

mo
     Modern

mp
     Memphis

mq
     Mesquite

mr
     Madrone

ms
     Mistral

mt
     Minister

mv
     Malvern

mx
     Maximus

na
     New Aster

nb
     New Baskerville

nc
     New Century Schoolbook

nd
     New Caledonia

nf
     Nofret

ng
     News Gothic

ni
     Nimrod

nk
     Neographik

nm
     Nimbus

nn
     New Clarendon

np
     News Plantin

nr
     New Berolina

nt
     Times New Roman

nu
     Nuptial

nv
     Novarese

nz
     Neuzeit S

o7
     Old Style 7

oa
     OCR-A

ob
     OCR-B

oc
     Concorde

oe
     Old English

om
     Omnia

on
     Corona

op
     Optima

or
     Orator

os
     Old Style

ot
     Coronet

ov
     Octavian

ox
     Onyx

oy
     Olympian

p0
     Poplar

p1
     Palace Script

p2
     Pepita

pa
     Park Avenue

pd
     Placard

pe
     Prestige Elite

pg
     Peignot

ph
     Photina

pl
     Palatino

pn
     Plantin

po
     Ponderosa

pp
     Perpetua

pq
     Post Antiqua

ps
     Parisian

pt
     Present

px
     Poppl Pontifex

pz
     Poliphilus

qr
     Quorum

ra
     Raleigh

ro
     Rotis

rp
     Reporter

rq
     Russell Square

rt
     Carta

ru
     Runic

rv
     Revue

rw
     Rockwell

ry
     Ryumin

s0
     San Marco

s1
     Scotch Roman

s2
     Script

sb
     Sabon

sc
     Slimbach

sf
     Serifa

sg
     Serif Gothic

sh
     Shannon

sl
     Stencil

sm
     Spectrum

sn
     Spartan

so
     Sonata

sp
     Serpentine

sr
     Snell Roundhand

ss
     Stempel Schneidler

st
     Stone

sv
     Souvenir

sw
     Swing

sx
     Syntax

sy
     Symbol

tb
     Berthold Bodoni

te
     Times Europa

tf
     Tiffany

tg
     Trade Gothic

ti
     Tech Phonetic

tj
     Trajan

tk
     Tektok

tl
     Castellar

tm
     Times

tp
     Tempo

tv
     Trump Mediaeval

tw
     Twentieth Century

ty
     Typewriter

ub
     Bauer Bodoni

ug
     Benguiat Gothic

uh
     Cushing

ul
     Universal

um
     Umbra

un
     Univers

ur
     Centaur

ut
     Utopia

uw
     Usherwood

uy
     University

va
     Activa

vc
     Vectora

vd
     Van Dijck

vj
     Veljovic

vl
     Versailles

vr
     VAG Rounded

wb
     Walbaum

wd
     Weidemann

wg
     WilhelmKlingsporGotisch

wk
     Wilke

wo
     Wood

ws
     Weiss

ww
     Willow

ym
     Stymie

za
     ZAntiqua

zc
     Zapf Chancery

zd
     Zapf Dingbats

zg
     Neuzeit Grotesk

zt
     Zeitgeist

Aliases
-------

In the introduction, I alluded to the fact that the same typeface design is often (in fact, usually) offered under different names by different vendors.  This is because typeface names can be protected in many countries, including the United States, via trademarks.  But typeface designs can be easily protected in only a few countries. (Incidentally, who the trademark belongs to doesn't necessarily have anything to do with who actually did the original design; in the case of Helvetica, it was the Swiss letterform designer Max Miedinger for, I believe, the Haas foundry.)

For an excellent article (still mostly up-to-date) on typeface protection, see `Notes on typeface protection' by Charles Bigelow in TUGboat volume 7, number 3 (October 1986).  I have tried to summarize that article, and events since then, in the `Legal issues' section of the GNU fontutils manual.

This all leads to massive confusion for a typeface buyer, who knows what, say, Helvetica (a trademark of Allied Corporation) looks like---but probably doesn't know, or care, that Monotype's marketing department called one of their versions of Helvetica `Arial'.  Rather than perpetuate this confusion, I believe it will be better to use the same name for the same design, in contrast to always using the vendor's name.  (For one thing, this will help in conserving the number of typeface families, which, given the limited number of letters, is a desirable goal.)

In order to help users who may only know their vendor's name, and not the original name, I am maintaining the following table of typeface name aliases, organized alphabetically by typeface name.

The vendor who perpetrated the alias is given in parentheses, where known.

Arial
     (Monotype) Helvetica

Dutch
     (Bitstream) Times

Exotic
     (Bitstream) Peignot

Hammersmith
     (Bitstream) Gill Sans

ISIL Gothic
     Letter Gothic

Newton
     Helvetica

Optimum
     (DTC) Optima

Palton
     (DTC) Palatino

Sans
     (DTC) Helvetica

Slate
     (Bitstream) Rockwell

Sonoran Serif
     (IBM) New Times Roman

Sonoran Sans Serif
     (IBM) Helvetica

Swiss
     (Bitstream) Helvetica

Tramp
     Hobo

Zapf Calligraphic
     (Bitstream) Palatino

Zapf Elliptical
     (Bitstream) Melior

Zapf Humanist
     (Bitstream) Optima

Zurich
     (Bitstream) Univers

Weight
======

a
     hairline, thin

b
     bold

c
     black

d
     demibold

h
     heavy

i
     extra light

k
     book

l
     light

m
     medium

p
     poster

r
     regular

s
     semibold

u
     ultra

x
     extra bold

In order of lightest to heaviest (more or less):

     hairline, extra light, light,
     book, regular, medium,
     demibold, semibold, bold, extra bold, heavy
     black, ultra, poster

Variant
=======

Unfortunately, ``variants'' include scripts (Greek, Cyrillic) and font encodings (Adobe standard, alternate, expert), as well as true typeface variations (italic, typewriter).

Mittelbach in TUGboat 13(1) suggests that `typewriter' and `sans' should be identified as part of the typeface name, because there are few typeface families with these variants.  I feel the typeface namespace is already too cluttered, and that logically they are variants.

0
     Adobe standard encoding

1
     semi sans

2
     changed characters only, e.g., Adobe's Dfr

3
     fractions

4
     fax

5
     phonetic (IPA)

6
     semi serif

9
     oldstyle digits

a
     Adobe alternate encoding, alternate characters only

b
     bright

c
     small caps

d
     display, titling, caption

e
     engraved, copperplate

f
     Fraktur, gothic, blackletter

g
     grooved (as in the IBM logo)

h
     shadow

i
     text italic, kursiv

j
     invisible

k
     Greek

l
     outline, open face

m
     math italic

n
     informal

o
     oblique (i.e., slanted)

p
     ornament

q
     TeX extended (Cork) encoding

r
     normal (roman or sans)

s
     sans serif

t
     typewriter

u
     unslanted italic

v
     math extension

w
     script, handwritten, swash

x
     Adobe expert encoding

y
     symbol

z
     Cyrillic

If the variant is r, and the width is also normal, both the variant and the width are omitted.  When the normal version of the typeface is sans serif (e.g., Helvetica), r should be used, not s.  Use s only when the typeface family has both serif and sans serif variants.

Width
=====

c
     condensed (by hand)

e
     expanded (automatic)

n
     narrow (automatic)

o
     ultra condensed

p
     compressed

q
     extra compressed, extra condensed

r
     regular, normal, medium (usually omitted)

t
     thin

u
     ultra compressed

w
     wide

x
     extended (by hand)

In order of narrowest to widest (more or less):

     ultra compressed, extra condensed, compressed, condensed, narrow
     regular, extended, expanded, wide

Expansion or compression of fonts is sometimes done automatically (as by the PostScript scale operator), and sometimes done by humans.  I chose `narrow' and `expanded' to imply the former, and `condensed' and `extended' to imply the latter, as I believe this reflects the most common usage.  (Of course there is no general consensus.)

Naming virtual fonts
====================

In concert with releasing TeX version 3.0 and Metafont version 2.7, Don Knuth wrote two new utility programs: VFtoVP and VPtoVF, which convert to and from ``virtual'' fonts.  Virtual fonts provide a general interface between the writers of TeX macros and font suppliers.  In general, therefore, it is impossible to come up with a general scheme for naming virtual fonts, since each virtual font is an individual creation, possibly bringing together many unrelated fonts.

Nevertheless, one common case is to use virtual fonts to map plain TeX's accent and other character code conventions onto a vendor-supplied font.  For example, the DVI-to-PostScript translator Dvips (written by Tom Rokicki) does this for fonts given in the PostScript ``standard encoding''.  In this case, each font consists of a ``virtual'' tfm file, which is what TeX uses, a ``raw'' tfm file, which corresponds to the actual device font, and a vf file, which describes the relationship between the two.

This adds another dimension to the font namespace, namely, ``virtualness'' (or rather, ``rawness'', since it is the virtual tfm files that the users want to see, and thus the one that should have the ``normal'' name, as given by the tables above).  But we have already used up all eight characters in the font names (more, in fact).

The first solution, adopted in dvips, was this: prepend r to the raw tfm files; the virtual tfm files should be named with the usual source prefix.  For example, Adobe's virtual Times Roman tfm file is named ptmr, as usual; the raw Times Roman tfm file is named rptmr.  To prevent intolerable confusion, I promise never to give a foundry the letter r.

But now, years after, I think there is a better solution: ignore the virtual/raw distinction in favor of the font encoding or other distinguishing characteristics.  For example, the raw Times Roman font, using Adobe's encoding, could be named ptmr0; the virtual font, with the ersatz CM encoding, would be just ptmr.

Examples
********

This chapter gives two examples.  Other examples (including the entire Adobe font catalog as of early 1991) are available by ftp or email (see Introduction).

Univers
=======

The fonts in the Univers typeface family were assigned numbers by its designer, Adrien Frutiger.  (You can see the scheme on, for example, page 29 of The Art of Typo.icon.ography, by Martin Solomon.)

The names given here have to be prefixed with a source letter to actually be usable.  Since my purpose here was just to demonstrate the correspondence between typeface variations and the naming scheme, I left the source out.

45 (light)
     unl

46 (light italic)
     unli

47 (light condensed)
     unlrc

48 (light condensed italic)
     unlic

49 (light extra condensed)
     unlro

53 (medium extended)
     unmrx

55 (medium)
     unm

56 (medium italic)
     unmi

57 (medium condensed)
     unmrc

58 (medium condensed italic)
     unmic

59 (medium extra condensed)
     unmro

63 (demibold extended)
     undrx

65 (demibold)
     und

66 (demibold italic)
     undi

67 (demibold condensed)
     undrc

68 (demibold condensed italic)
     undic

73 (bold extended)
     unbrx

75 (bold)
     unb

76 (bold italic)
     unbi

83 (extra bold extended)
     unxrx

Standard PostScript fonts
=========================

Here are names for the 35 standard PostScript fonts:

AvantGarde-Book
     pagk

AvantGarde-BookOblique
     pagko

AvantGarde-Demi
     pagd

AvantGarde-DemiOblique
     pagdo

Bookman-Demi
     pbkd

Bookman-DemiItalic
     pbkdi

Bookman-Light
     pbkl

Bookman-LightItalic
     pbkli

Courier-Bold
     pcrb

Courier-BoldOblique
     pcrbo

Courier
     pcrr

Courier-Oblique
     pcrro

Helvetica-Bold
     phvb

Helvetica-BoldOblique
     phvbo

Helvetica-NarrowBold
     phvbrn

Helvetica-NarrowBoldOblique
     phvbon

Helvetica
     phvr

Helvetica-Oblique
     phvro

Helvetica-Narrow
     phvrrn

Helvetica-NarrowOblique
     phvron

NewCenturySchlbk-Bold
     pncb

NewCenturySchlbk-BoldItalic
     pncbi

NewCenturySchlbk-Italic
     pncri

NewCenturySchlbk-Roman
     pncr

Palatino-Bold
     pplb

Palatino-BoldItalic
     pplbi

Palatino-Italic
     pplri

Palatino-Roman
     pplr

Symbol
     psyr

Times-Bold
     ptmb

Times-BoldItalic
     ptmbi

Times-Italic
     ptmri

Times-Roman
     ptmr

ZapfChancery-MediumItalic
     pzcmi

ZapfDingbats
     pzdr

Long names
**********

As pointed out earlier, eight characters is not enough to unambiguously represent all fonts.  To do that, we have to allow ourselves very long filenames.  Right now, such a scheme could only be implemented on a few kinds of systems.  But with a simple change to TeX, it could be used on all systems.

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 it looks the name up first in another file, which specifies the actual filename, the fontname given in the TeX source could be almost anything at all, of any length.

In version 5.851d of Web2C, I implemented this mapping file.  It has an 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, as usual.

Besides allowing long names, the mapping file could have additional advantages.  The TeX source files could become more nearly system-independent, because the same font names could 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 change as a legitimate ``system-dependent'' adaptation; a TeX with such a feature can still be called ``TeX''.

A naming scheme for long names
==============================

Once we allow ourselves long names, we can construct a naming scheme to handle arbitrary fonts without much difficulty.  Here is one proposal:

     SOURCE-FAMILY-WEIGHT-VARIANTS-
     WIDTH-ENCODING--SIZE

The SOURCE is the usual Adobe or AUTOLOGIC or whatever, as well as unknown, pd, or weird---this last meaning the rest of the name is nonstandard.  If the SOURCE is missing, i.e., the name starts with a -, ``public domain'' is assumed.  For fonts made by individuals, the initials of the designer are probably a good SOURCE.

The FAMILY is ComputerModern or Times or whatever.

Everything else is optional.  The -- before the SIZE lets one specify a name with, say, a weight and variants, but then skip the WIDTH and ENCODING, but still be able to give a size.

The WEIGHT and WIDTH are as described earlier.

If there is more than one variant, they are separated with some character other than -, say =:

     BigelowHolmes-Lucida-Bold-Sans=Typewriter--10

The ENCODING is what Metafont calls the font_coding_scheme---the layout of the characters in the font. For example, TeXExtended or ISOLatin1 or AdobeAlternate.  Perhaps this should be mandatory, as a font is useless if you do not know its encoding.

Names are case-sensitive, for consistency with the rest of TeX and with PostScript, etc.  Spaces cannot be used in the name, to make it easier for TeX to parse.  Likewise, characters with default category codes other than letter or other should not be used.

Another possibility is to forget all the above, and simply use the vendor's name (perhaps prefixed by the vendor): Adobe-Times-Roman, say.