Filenames for TeX fonts

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:

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

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 section 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
`m0'
Monospace
`m1'
Monoline Script
`md'
Meridien
`me'
Mercurius Script
`mg'
Marigold
`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
`wi'
Wingdings
`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
Omega
(LaserJet) Optima
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'
encoding with changed characters only, e.g., Adobe's `Dfr'
`3'
fractions
`4'
fax
`5'
phonetic (IPA)
`6'
semi serif
`8'
escape, see below
`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, DC) 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.

The variant `8' is marked "escape": this means the next character is also to be taken as a variant letter (and gives us another 36 characters). Here is the table for the escaped variants:

`1'
ISO Latin 1 (8859/1) encoding
`2'
ISO Latin 2 (8859/2) encoding
`5'
ISO Latin 5 (8859/5) encoding
`m'
Macintosh standard encoding
`w'
Windows ANSI encoding (from Appendix C of the Adobe PDF manual and the back of the Windows manual)

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 section 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.