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

  This is Fontname 2.0, a naming scheme for (the base part of) external
TeX font filenames.  Released August 1995.

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

  This is Fontname 2.0, a naming scheme for (the base part of) external
TeX font filenames.  We make at most eight-character names from
(almost) arbitrarily complex font names, thus helping portability of
TeX documents.  We point out some shortcomings of the scheme, and ways
of dealing with them.

  Please send additions, corrections, or other comments to me at
`kb@cs.umb.edu', or to the mailing list `tex-fonts@math.utah.edu'.
Email `tex-fonts-request@math.utah.edu' to join the list.

  Besides this document, the Fontname distribution includes various
encoding files, mapping files, and utilities.  See the file `README'
for details.  You can retrieve the most up-to-date version of these
lists by anonymous ftp from the host `ftp.cs.umb.edu', in the directory
`pub/tex/fontname'.  This directory is mirrored on `ftp.cdrom.com', and
on all CTAN hosts (`ftp.shsu.edu', `ftp.dante.de', `ftp.tex.ac.uk', and
their mirrors) in the directory `tex-archive/doc/fontname'.  For a list
of CTAN mirrors, finger `ctan@ftp.shsu.edu'.

  This document is uncopyrighted and may be used freely.

History
=======

  The original inspiration for Fontname was Frank Mittelbach and Rainer
Schoepf's article in `TUGboat' 11(2) (June 1990), which led to my
article in `TUGboat' 11(4) (November 1990), pages 512-519.  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.  Others of his points
are addressed in the appropriate sections below.

  In August 1995, Fontname version 2 was released, concomitantly with a
new release of the PostScript fonts for use with LaTeX and Dvips. After
several years of experience, several modifications of the original
distribution seemed desirable: more precise specification of encodings
(see Variants.), machine-readable mapping files (the `*.map' files
in the distribution), and standardizing directory names as well as font
filenames (included in `supplier.map' and `typeface.map').

  In Fontname version 1, some encoding variant characters (`0', `2',
etc.) have been reassigned to a `7' or `8' sequence (see
Variants.).  Although this is an incompatible change, the advantages
of (1) consistency in naming encoding variants, and (2) having some
free variants makes it worthwhile.  Also, not so coincidentally, new
metrics for PostScript fonts in the Cork encoding were issued--same
encoding, different metrics. So a new name served a practical purpose
as well.

  Many people have contributed to this work.  In particular, I
gratefully acknowledge Nelson Beebe, Barbara Beeton, Rocky Bernstein,
Damian Cugley, Berthold K.P. Horn, Alan Jeffrey, Russell Lang, Pierre
MacKay, Sebastian Rahtz, Tom Rokicki, and Jean Rivlin.

References
==========

  Related files and distributions:

   * The TeX Directory Structure (TDS) standard,
     (`jasper.ora.com:pub/twg-tds', mirrored on CTAN sites) specifies a
     directory tree for all TeX library files.  The directory names
     given in Suppliers and Typefaces are intended to
     mesh with that standard.

   * The `modes.mf' file (`ftp.cs.umb.edu:pub/tex/modes.mf') contains
     recommended directory names to segregate fonts by Metafont mode.

   * The PSfonts distribution (`fonts/psfonts' on CTAN hosts) contains
     TeX support for many fonts, both commercially available and free.

   * The Fontinst distribution (`fonts/utilities/psfonts' on CTAN hosts)
     supports quite general creation of virtual fonts, named according
     to the scheme given here.

   * The Dvips translator (original from
     `labrea.stanford.edu:pub/dvips*.tar.gz' and variation from
     `ftp.cs.umb.edu:pub/tex/dvipsk.tar.gz') contains TeX support for
     the 35 standard PostScript fonts, plus additional freely available
     fonts.  Dvips was the first real application of Fontname 1.

   * The Dviljk processor (`ftp.cs.umb.edu:pub/tex/dviljk.tar.gz')
     contains TeX support for the fonts built into the LaserJet 4.

   * `Designing New Typefaces with Metafont', by Richard Southall,
     Stanford Computer Science Department Technical Report
     STAN-CS-85-1074, September 1985, for a comprehensive terminology
     of font design.

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

  We must limit ourselves to eight character names, for compatibility
with DOS filesystems and the ISO 9660 standard used for CD-ROM
distribution.  Names may consist of only the letters (monocase),
numerals, and underscore.

  Here is the basic division of the eight characters (the spaces here
are merely for readability):

      S TT W [V...] [N] [E] [DD]

where

S
     represents the supplier of the font.

TT
     represents the typeface name.

W
     represents the weight.

V...
     represents the variant(s), and is omitted if both it and the width
     are normal.  Many fonts have more than one variant.

N
     represents the encoding, and is omitted if the encoding is
     nonstandard.  Encodings are subsumed in the section on variants
     (see Variants.).

E
     represents the width ("expansion"), and is omitted if it is normal.

DD
     represents the design size (in decimal), and is omitted if the
     font is linearly scaled.  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)).

  The weight, variants, and width are probably all best taken from the
original name of the font, instead of trying to relate them to some
external standard.

Suppliers
=========

  The "supplier" is the source of a font, typically a (digital) type
foundry.

  You should use the supplier letter which matches the supplier you
obtained the font from, not 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'.
This is because font resellers typically make modifications to the
original design.

  Notes on specific suppliers:

`f'
     For fonts that are distributed without any specific attribution to
     the creator, or by individuals.

`r'
     obsolete; specifies raw fonts, in the old distribution of Dvips.
     New fonts should never use `r'. (The right thing to do is specify
     the correct encoding, variant, or whatever the font's
     characteristics actually are.)

`z'
     for fonts that just don't fit well into the naming scheme.  The `z'
     should be followed by the real supplier letter.

  Here is the table from the file `supplier.map'.  It is organized
alphabetically by abbreviation.  Each line consists of an abbreviation,
directory name, and comment.

     9 unknown
     a autologi      Autologic
     b bitstrea      Bitstream
     c cg            Compugraphic
     d dtc           Digital Typeface Corporation
     e apple         Apple
     f public        freely distributable (e.g., public domain)
     g gnu           Free Software Foundation
     h bh            Bigelow & Holmes
     i itc           International Typeface Corporation
     k softkey       SoftKey
     l linotype      Linotype
     m monotype      Monotype
     n ibm           IBM
     o corel         Corel
     p adobe         Adobe (`p' for PostScript)
     r -             raw (for [obsolete] use with virtual fonts)
     s sun           Sun
     u urw           URW
     z -             bizarre (fontname is nonstandard)

Typefaces
=========

  For our purposes, a "typeface" is a collection of related fonts.

  We sometimes use the same typeface abbreviation for fonts with
different supplier names, where we know (usually by inspection) that
the fonts truly are the same.  This helps conserve abbreviations.

  Notes on specific typefaces:

`ad'
`gm'
     To explain a common confusion: `ad' is Adobe Garamond (with a
     `FontName' of `AGaramond'). This is quite different from the
     `Garamond' typeface distributed by Adobe, which is actually ITC
     Garamond.  (Garamond No. 3 (`f3'), Simoncini Garamond (`ig'), and
     Stempel Garamond (`eg') are still other variations on the Garamond
     theme.)

`lh'
`ls'
`lx'
`r1'
     These abbreviations for Lucida typeface subfamilies, et al., solve
     a problem with names getting too long, or help conserve variant
     abbreviations.  See Variants.  Ideally, they would not exist.

`ns'
`nt'
`tm'
     Suppliers like to offer as many variations on the Times New Roman
     design as they do Garamond.  Adobe has `Times', `TimesNewRoman',
     and `TimesNewRomanPS'.  Although this last has been used by other
     foundries (e.g., Monotype) for a Times variation exactly
     compatible with Adobe's `Times', Adobe itself also offers it, so
     we must have abbreviations for all three.

`pi'
     For all pi fonts. Since names of pi fonts are rather arbitrary, it
     is not useful to try to assign typeface abbreviations to all of
     them. Instead, we use the supplier letter, `pi', an
     arbitarily-assigned three-digit number, a weight and (if
     necessary) a variant. For example, `mpi001r'.  Pi font `001' for
     one supplier has nothing to do with pi font `001' for another.

  Here is the table, from the file `typeface.map'.  It is organized
alphabetically by abbreviation.  Each line consists of an abbreviation
and directory name, possibly followed by PostScript `FontName's and/or
a comment in roman.  The `FontName' may be preceded by a letter S and a
`:', as in `b:Dutch'.  In that case, the S is a supplier abbreviation,
and we've used that abbreviation for the given `FontName' from that
supplier.

     a1 arial        Arial
     a2 amasis       Amasis
     a3 adlib        AdLib
     a4 altgoth2     AlternateGothicNo2
     a5 allegro      Allegro
     a6 amelia       Amelia
     a7 amertext     AmericanText
     a8 aurora       Aurora
     a9 adsans       Adsans b:Humanist970BT
     aa aachen       Aachen
     ab aboeckli     ArnoldBoecklin
     ac acaslon      ACaslon                                 Adobe Caslon
     ad agaramon     AGaramond                               Adobe Garamond
     ag avantgar     AvantGarde m:MAvantGardeGothicPS
     ah ashleysc     AshleyScript
     ai abadi        Abadi
     al albertus     Albertus b:Flareserif821BT
     am amercana     Americana b:Americana
     ao atqolive     AntiqueOlive b:Incised901BT
     ap apollo       Apollo
     aq antiqua      Antiqua u:URWAntiqua
     ar arcadia      Arcadia
     as aldus        Aldus
     at atypewri     AmericanTypewriter
     au auriol       Auriol b:Freeform721
     av avenir       Avenir
     az azdzgrot     AkzidenzGrotesk b:Gothic725BT
     b0 blackoak     Blackoak
     b1 blado        Blado
     b2 binnyos      BinnyOldStyle
     b3 braggado     Braggadocio
     b4 bison        Bison b:Brush738BT
     b5 binghams     BinghamScript b:Freehand591BT
     b6 block        Block b:Gothic821
     b7 bernhard     Bernhard BernhardModern
     b8 blippo       Blippo
     b9 bremen       Bremen
     bb bembo        Bembo b:Aldine401BT
     bc banco        Banco
     bd bodoni       Bodoni
     be bell         Bell
     bf biffo        Biffo
     bg benguiat     Benguiat
     bh bauhaus      Bauhaus
     bi birch        Birch
     bk bookman      Bookman m:MBookmanPS
     bl belwe        Belwe
     bn bernard      Bernard
     bo balloon      Balloon
     bp bodocamp     BodoniCampanile b:Modern735
     br berling      Berling b:Revival565BT
     bs bakersig     BakerSignet
     bu brush        Brush
     bv baskervi     Baskerville
     bw broadway     Broadway
     by berkeley     Berkeley
     c0 carolina     Carolina
     c1 calisto      Calisto
     c2 casln224     CaslonTwoTwentyFour
     c3 caslon3      CaslonThree
     c4 chicago      Chicago
     c5 casln540     CaslonFiveForty
     c6 clarion      Clarion
     c7 compacta     Compacta
     c8 calvert      Calvert
     c9 codex        Codex b:Calligraphic421BT
     ca caslon       Caslon
     cb cooper       Cooper
     cc cascade      Cascade b:Freehand471BT
     cd clarendo     Clarendon
     ce centenni     Centennial
     cf clearfac     Clearface
     cg charlema     Charlemagne
     ch charter      Charter
     ci candida      Candida
     cl cloister     Cloister
     cm cm           Computer Modern
     cn century      Century
     co cochin       Cochin
     cp copperpl     Copperplate
     cq cheq         Cheq
     cr courier      Courier m:MCourierPS m:CourierTwelveMT
     cs cntursbk     CenturySchoolbook
     ct cheltenh     Cheltenham
     cu centuros     CenturyOldStyle
     cv clairvx      Clairvaux
     cw cottonwd     Cottonwood
     cx caxton       Caxton
     cy city         City b:SquareSlabserif711BT
     cz choc         Choc b:Staccato555BT
     d0 davida       DavidaBold
     dc domcasl      Dom DomCasual DomDiagonal
     dd ducberry     DucDeBerry
     de dellarob     DellaRobia
     di diotima      Diotima b:Calligraphic810BT
     dl dolores      Dolores
     dr doric        Doric
     ds dorchesc     DorchesterScript
     e0 embassy      Embassy
     e1 empire       Empire
     ea lectra       Electra b:Transitional521BT
     ec applecha     e:AppleChancery
     ee egyptian     Egyptian EgyptianExtended
     ef egyptien     EgyptienneF
     eg stgaramo     StempelGaramond b:OriginalGaramondBT
     eh engsft       Engschrift
     ei esprit       Esprit
     ek eckmann      Eckmann b:Freeform710
     el ellingtn     Ellington
     en engraver     Engravers
     eo amerigo      Amerigo b:AmerigoBT
     er eras         Eras
     es eurostil     Eurostile b:Square721BT
     et ehrhardt     Ehrhardt
     eu euler        Euler
     ex exclsior     Excelsior
     f0 flemishs     FlemishScript
     fa formata      Formata
     fe forte        Forte
     ff fairfld      Fairfield b:Transitional551BT
     fg frankgth     FranklinGothic
     fi figaro       Figaro
     fl flora        Flora
     fn fenice       Fenice
     fo folio        Folio
     fq frizquad     FrizQuadrata
     fr frutiger     Frutiger b:Humanist777BT
     fs falstaff     Falstaff
     ft fettefrk     FetteFraktur Fraktur
     fu futura       Futura
     fx felixttl     FelixTitling
     fy flyer        Flyer
     g0 gando        Gando
     g1 gothic13     GothicThirteen
     g3 garamon3     GaramondThree b:AmercianGaramondBT      Garamond No. 3
     g4 gymodern     GoudyModern
     g5 gycatalg     GoudyCatalogue
     g6 gorilla      GorillaITC
     g9 ugaramon     GaramondRetrospective
     gb gothicbb     GothicBBB
     ge geneva       e:Geneva
     gg garthgra     GarthGraphic
     gj granjon      Granjon b:ElegantGaramondBT
     gl galliard     Galliard
     gm garamond     Garamond
     go gyoldsty     GoudyOldStyle
     gp glypha       Glypha
     gq grotesq      Grotesque u:URWGrotesk
     gr gloucest     Gloucester
     gs gillsans     GillSans m:GillAltOneMT b:Humanist521BT
     gt goudytxt     GoudyText
     gu guardi       Guardi
     gv giovanni     Giovanni
     gy goudy        Goudy
     h0 handelgo     HandelGothic
     hb hobo         Hobo Tramp
     hc herculnm     Herculanum
     hd headline     Headline
     hg hiroshig     Hiroshige
     hi hvinsera     HelveticaInserat b:Swiss921BT
     hm charme       Charme
     hn hvneue       HelveticaNeue
     ho horleyos     HorleyOldStyle
     hr hvround      HelveticaRounded
     hs hnseati      Hanseatic B:Swiss924BT
     ht hoeflert     e:HoeflerText
     hv helvetic     Helvetica u:NimbusSans b:Swiss721BT b:Monospace821BT b:Swiss911BT d:Sans Newton n:SonoranSansSerif
     hw schadow      Schadow
     hx huxleyvr     HuxleyVertical
     i0 commscr      CommercialScript
     i1 impress      Impress
     i2 impuls       Impuls
     ia insignia     Insignia
     ic impact       Impact
     if inflex       Inflex
     ig scgaramo     SimonciniGaramond b:ItalianGaramond
     ii imprint      Imprint
     il caecilia     Caecilia
     im imago        Imago
     in industri     Industria
     io ionic        Ionic b:News701BT
     ip impressm     Impressum
     is italnos      ItalianOldStyle
     it italia       Italia
     iw ironwood     Ironwood
     iy iowanold     IowanOldStyle
     jf jeffersn     Jefferson b:Freehand575BT
     jn janson       Janson
     jo joanna       Joanna
     jp juniper      Juniper
     kb kabel        Kabel
     kg bankgoth     BankGothic
     kl klang        Klang
     kr korinna      Korinna
     ks kuenstsc     KuenstlerScript
     ku kaufmann     Kaufmann
     l0 latin        Latin
     l1 liberty      Liberty
     l2 libra        Libra
     l3 lucia        Lucia
     l4 lucian       Lucian
     lb lubaling     LubalinGraph
     lc lucida       Lucida
     lf life         Life
     lg lettrgth     LetterGothic ISILGothic
     lh lubright     LucidaBright
     li latin        Latin
     ln lino         Lino
     lo lithos       Lithos
     ls lucsans      LucidaSans
     lt lutetia      Lutetia
     lw leawood      Leawood
     lx lucidfax     LucidaFax
     ly lydian       Lydian
     m0 monospac     Monospace
     m1 monolisc     MonolineScript
     m2 metro        Metro b:Geometric415BT
     m3 mirarae      Mirareae
     m4 mrearl       MisterEarl
     m5 murrayhl     MurrayHill
     m6 mittlsft     Mittelschrift
     ma mandate      Mandate b:Freehand521BT
     mc monaco       e:Monaco
     md meridien     Meridien
     me mercursc     MercuriusScript
     mg marigold     Marigold
     mh machine      Machine
     mi medici       Medici
     ml melior       Melior b:ZapfElliptical711BT
     mn minion       Minion
     mo modern       Modern b:Modern20BT
     mp memphis      Memphis b:GeometricSlab703BT
     mq mesquite     Mesquite
     mr madrone      Madrone
     ms mistral      Mistral b:Staccato222BT
     mt minister     Minister
     mv malvern      Malvern
     mx maximus      Maximus
     mz amazone      Amazone
     n0 normande     Normande
     na newaster     NewAster
     nb nbaskerv     NewBaskerville
     nc ncntrsbk     NewCenturySchlbk
     nd ncaledon     NewCaledonia
     nf nofret       Nofret
     ng newsgth      NewsGothic
     ni nimrod       Nimrod
     nk neograph     Neographik
     nl neuland      Neuland b:Informal011BT
     nm nimbus       Nimbus
     nn nclarend     NewClarendon
     np nsplanti     NewsPlantin
     nr nberolin     NewBerolina
     ns timesnps     TimesNewRomanPS
     nt timesnew     TimesNewRoman m:TimesNR n:SonoranSerif
     nu nuptial      Nuptial
     nv novarese     Novarese
     nz neuzeits     NeuzeitS b:Geometric706BT
     o0 oldreadf     OldDreadfulNo7
     o1 oranda       Oranda
     o2 orbitb       OrbitB
     o7 oldsty7      OldStyleSeven
     oa ocra         OCR-A
     ob ocrb         OCR-B
     oc concorde     Concorde
     oe oldengli     OldEnglish b:English157
     oi ondine       Ondine Mermaid b:FormalScript421BT
     om omnia        Omnia
     on corona       Corona
     op optima       Optima d:Optimum b:ZapfHumanist601BT Omega
     or orator       Orator
     os oldstyle     OldStyle
     ot coronet      Coronet b:Ribbon131BT
     ov octavian     Octavian
     ox onyx         Onyx
     oy olympian     Olympian l:OlympicLH
     oz ozhandcr     OzHandicraft
     p0 poplar       Poplar
     p1 palacesc     PalaceScript
     p2 pepita       Pepita
     p3 palette      Palette b:Brush445BT
     p4 pioneer      PioneerITC
     p5 piranesi     Piranesi
     pa parkave      ParkAvenue
     pb ptbarnum     PtBarnum
     pd placard      Placard
     pe prestige     PrestigeElite
     pf profile      Profile Profil b:Decorated035BT
     pg peignot      Peignot b:Exotic350BT
     ph photina      Photina
     pi pi           pi fonts---see text and `*.map' files
     pl palatino     Palatino d:Palton b:ZapfCalligraphic801BT Palmspring
     pn plantin      Plantin b:Aldine721BT
     po ponderos     Ponderosa
     pp perpetua     Perpetua b:Lapidary333BT
     pq postatqa     PostAntiqua
     ps parisian     Parisian
     pt present      Present
     px popplpfx     PopplPontifex
     py playbill     Playbill
     pz poliphil     Poliphilus
     qr quorum       Quorum
     r0 romana       Romana
     r1 rotis        RotisSemi
     ra raleigh      Raleigh
     ro rotis        Rotis
     rm carmina      Carmina
     rp reporter     Reporter
     rq russelsq     RussellSquare
     rs arrus        Arrus
     rt carta        Carta
     ru runic        Runic
     rv revue        Revue
     rw rockwell     Rockwell Slate b:GeometricSlab712BT
     ry ryumin       Ryumin
     s0 sanmarco     SanMarco
     s1 scotchro     ScotchRoman
     s2 script       Script
     s3 seagull      Seagull
     s4 shotgun      Shotgun ShotgunBlanks
     s5 snell        Snell
     s6 stuyvesa     Stuyvesant
     s9 scriptor     Scriptoria
     sb sabon        Sabon b:ClassicalGaramondBT
     sc slimbach     Slimbach
     sf serifa       Serifa
     sg serifgth     SerifGothic
     sh shannon      Shannon
     sk skia         e:Skia
     sl stencil      Stencil
     sm spectrum     Spectrum
     sn spartan      Spartan
     so sonata       Sonata
     sp serpenti     Serpentine
     sr snellrnd     SnellRoundhand
     ss stschnei     StempelSchneidler
     st stone        Stone
     sv souvenir     Souvenir
     sw swing        Swing
     sx syntax       Syntax
     sy symbol       Symbol m:MSymbolPS
     t0 tango        Tango
     t1 thunderb     Thunderbird
     t2 typo         TypoUpright
     tb bebodoni     BBodoni                                 Berthold Bodoni
     te timeseur     TimesEuropa
     tf tiffany      Tiffany
     tg tradegth     TradeGothic
     ti techphon     TechPhonetic
     tj trajan       Trajan
     tk tekton       Tekton
     tl castella     Castellar
     tm times        Times u:NimbusRoman b:Dutch801BT
     to torino       Torino b:Industrial736BT
     tp tempo        Tempo
     tv trumpmed     TrumpMediaeval b:Kuenstler480BT
     tw twentyc      TwentiethCentury
     ty typewrit     Typewriter
     ub babodoni     BauerBodoni
     ug bengugth     BenguiatGothic
     uh cushing      Cushing
     ul universa     Universal
     um umbra        Umbra
     un univers      Univers b:ZurichBT
     ur centaur      Centaur b:Venetian301BT
     ut utopia       Utopia
     uw usherwoo     Usherwood
     uy universi     University
     v0 vineta       Vineta
     va activa       Activa
     vc vectora      Vectora
     vd vandijck     VanDijck
     vj veljovic     Veljovic
     vl versaill     Versailles
     vr vagrnd       VAGRounded
     w0 weddingt     WeddingT
     wb walbaum      Walbaum
     wd weideman     Weidemann
     wg wlklgth      WilhelmKlingsporGotisch
     wi wingding     Wingdings
     wk wilke        Wilke
     wn windsor      Windsor
     ws weiss        Weiss
     ww willow       Willow
     ym stymie       Stymie
     za zantiqua     ZAntiqua
     zc zapfchan     ZapfChancery m:ZapfChanceryPS
     zd zapfding     ZapfDingbats m:ZapfDingbatsPS
     zg neuzeitg     NeuzeitGrotesk
     zt zeitgeis     Zeitgeist

Weights
=======

  The "weight" of a font specifies its boldness.  Arranged from
lightest to heaviest (more or less):

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

  Here is the table, from the file `weight.map'.  It is organized
alphabetically by abbreviation.  Each line consists of an abbreviation
and any parts of a PostScript `FontName' which use that abbreviation.

     a Thin Hairline
     b Bold
     c Black
     d Demi
     h Heavy Heavyface
     j ExtraLight
     k Book
     l Light
     m Medium
     p Poster
     r Regular Roman
     s Semibold
     u Ultra UltraBlack
     x ExtraBold ExtraBlack

Variants
========

  "Variants" include typeface variations (e.g., italic, sans serif),
and font encodings (e.g., Adobe standard, TeX text).

  A fontname may require multiple variants.  To resolve the worst
ambiguities, we specify that any encoding variant (`7', `8', or `9',
see below) come last and any other numeral variant come first (to avoid
confusion with a design size).  We recommend but do not require that
the other variants be given in alphabetical order.  (It's not required
because it's too painful to implement the sorting in TeX, and many
existing names already have non-alphabetized variants.)

  The letterspacing possibilities introduced by `fontinst' and virtual
fonts have not yet become sufficiently widespread to make
standardization beneficial.  Likewise for the many possible ways to
generate small caps fonts.

  Notes on specific variants, both old and new:

`1'
`4'
`6'
`b'
     These variants (`semisans', `bright', `semiserif', and `fax') were
     used only for single typefaces, so to conserve variant
     abbreviations, they now have typeface abbreviations instead.
     Also, for `b', to avoid too-long names; and for the others, to
     avoid variant vs. design-size ambiguities.

`g'
`h'
`j'
     Since these variants were not actually used in any font names,
     they are now obsolete and may be reassigned in the future.

`5'
`7'
`8'
`9'
     These characters begin a two-character "encoding variant".
     Generally, `7' is for 7-bit encodings, `8' is for 8-bit encodings,
     and `9' is for expertised encodings (see the `x' item below), but
     this is not an absolute rule.

     For a font to be named with a certain encoding variant, it's not
     necessary that all the characters appear in precisely the same
     positions as in the encoding definition.  It's enough that the
     usual TeX macros work. In practice, this means that it's ok for a
     font to be labelled `7t' if the only difference from Computer
     Modern is that the ligatures and the `lslash' and `Lslash'
     characters are different, since it's impossible to access or
     change the ligature table from TeX.  Standard PostScript fonts
     don't have an `lslash' character the way Computer Modern does, but
     they do have the `Lslash' and `lslash' characters themselves, so
     the usual TeX `\lslash' and `\Lslash' macros can be made to work
     via ligatures.  See the file `T1.etx' file in the `fontinst'
     distribution for details.

     If a name does not contain a specific encoding variant, its
     encoding is unspecified.  For example, some of the fonts
     distributed with Dvips(k) have names like `ptmr' for
     `Times-Roman'; they are in the default Afm2tfm encoding, which is
     close to (but not the same as) the TeX text encoding.  Similarly,
     the TFM files distributed with Dvilj(k) for the builtin LaserJet 4
     fonts have names like `cunm', since these fonts, while compatible
     with TeX text, contain many additional characters.

`9'
     This is needed only because `x' followed by a two-character regular
     variant makes some names too long.  That is, `9t' is equivalent in
     meaning to `x7t'.

`k'
`z'
     These variants (indicating Greek and Cyrillic fonts, respectively)
     are obsolete; future fonts in different scripts should be assigned
     an appropriate encoding abbreviation.  These are not currently
     standardized, due to ignorance of the appropriate encodings.
     Please send suggestions for abbreviations to the address in
     Introduction.

`m'
`v'
`y'
     These math-related variants remain for the sake of
     typeface-specific math encodings, e.g., Lucida.  Fonts that
     specifically use the Computer Modern math encodings should use
     `7m', `7v', and `7y'.

`r'
     Included only if no other variants, including encodings, apply, and
     either the width (see Widths.) is not `r' or a design size is
     present.  I.e., `r' is only used as a placeholder.  When the normal
     version of the typeface is sans serif (e.g., Helvetica), `r' should
     be used when necessary, not `s'.  Use `s' only when the typeface
     family has both serif and sans serif variants.

`s'
`t'
     Mittelbach in `TUGboat' 13(1) suggests that these variants (for
     `sans' and `typewriter') should be identified as part of the
     typeface name, because there are few typeface families with these
     variants.  I feel that since they are logically variants, it's
     best to name them that way.  But `LucidaSans' (see Typefaces.)
     is an exception, to avoid too-long names.

`x'
`8x'
     `8x' indicates a font in the `Expert' encoding itself.  `x'
     indicates an "expertised" font, i.e., a composite (i.e., virtual)
     font that includes characters from an `8x' font.

  Fontname 1 assignments are shown in brackets in the following table,
from the file `variant.map'.  It is organized alphabetically by
abbreviation.  Each line consists of an abbreviation and either any
parts of a PostScript `FontName' which use that abbreviation or the
PostScript `Encoding' name.

     [0=>8a] Adobe standard encoding
     obsolete [1 SemiSans]
     [2=>7c] encoding with changed characters only; Adobe's `Dfr'
     [3=>7f] Fraction
     [4 fax; now typeface `lx', Lucida Fax]
     5 escape for (presently) phonetic encodings
     obsolete [6 SemiSerif]
     7 escape for (mostly) 7-bit encodings
     8 escape for (mostly) 8-bit encodings
     9 escape for (presently) expert encodings
     [9=>7d] oldstyle digits; Adobe's `OsF'
     a Alt Arrows Alternative                [was alternate encoding]
     [b bright; now typeface lh, Lucida Bright]
     c small caps, small text
     d Display Titling Caption Headline
     e Engraved Copperplate Elite
     f Fraktur Gothic OldEnglish Handtooled  (`gothic' can also be sans)
     obsolete [g grooved (as in the IBM logo)]
     obsolete [h shadow]
     i Italic Kursiv Ital                    text italic
     obsolete [j invisible]
     k Greek                                 obsolete
     l Outline OpenFace Blanks
     m MathItalic                            math italic
     n Informal Fashion
     o Oblique Obl                           slanted
     p Ornament
     [q=>8t Cork (TeX extended) encoding]
     r roman or sans; often omitted, see text
     s Gothic                                sans serif
     t Monospace                             fixed-width typewriter
     u unslanted italic
     v MathExtension
     w Script Handwritten Swash Calligraphy Cursive Tango
     x built with Adobe expert encoding [was expert-encoded]
     y MathSymbol
     z Cyrillic                              obsolete
     5a PhoneticAlternate
     5i PhoneticIPA
     5s sil-IPA
     7a A                                    alternate characters only
     7c Dfr                                  changed characters only
     7d oldstyle digits; Adobe's `OsF'
     7f Fraction
     7m TeXMathItalicEncoding                see `texmital.enc'
     7t TeX text encoding (as in Computer Modern Roman)
     7v TeXMathExtensionEncoding             see `texmext.enc'
     7y TeXMathSymbolEncoding                see `texmsym.enc'
     8a StandardEncoding                     Adobe standard encoding
     8m Macintosh standard encoding
     8r TeXBase1Encoding                     see `8r.enc'
     8t CorkEncoding                         see `cork.enc'
     8u XT2Encoding                          cmtt + Latin 2, see `xl2.enc'
     8w Windows 3.1 ANSI encoding
     8x Expert                               expert encoding
     8z XL2Encoding                          cmr + Latin 2, see `xl2.enc'
     9e expert + Cork
     9t expert + TeX text

Widths
======

  The "width" of a font specifies the compression or expansion of the
font.  Arranged from 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.  In
the latter case, the human will also presumably choose a font name
including `Extended' or `Expanded' or `Condensed' or `Narrow' or
whatever, according to their own preferences, and the abbreviation can
follow along.  When creating a new synthetically expanded or compressed
font for use with TeX, e.g., with Afm2tfm or `fontinst', use `n' and
`e'.

  Here is the table, from the file `width.map'.  It is organized
alphabetically by abbreviation.  Each line consists of an abbreviation
and any parts of a PostScript `FontName' which use that abbreviation.

     c Condensed Cond
     e Expanded
     n Narrow
     o UltraCondensed
     p Compressed Compact
     q ExtraCompressed ExtraCondensed
     r Regular Normal Medium (usually omitted)
     t Thin
     u UltraCompressed
     w Wide
     x Extended Elongated

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.

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
looked TFM names up first 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".

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, based on the X Window System font naming conventions.

     SUPPLIER-FAMILY-WEIGHT-VARIANTS-WIDTH-ENCODING--SIZE

  The SUPPLIER is the usual `Adobe', `Autologic', etc., as well as
`unknown', `public', or `bizarre'--this last meaning the rest of the
name is nonstandard.  If the SUPPLIER is missing, i.e., the name starts
with a `-', "public domain" is assumed.  For fonts made by individuals,
the initials of the designer would probably make a good SUPPLIER.

  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 `=':

     B+H-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, `Cork' or
`ISOLatin1' or `AdobeAlternate'.

  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 11 (letter) or 12 (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.

Examples
********

  The examples you probably are most interested in are the files
`adobe.map', `bitstrea.map', and `monotype.map' in the distribution.
They contain a comprehensive list of fonts from those suppliers
together with the corresponding names.  They're omitted here because
the files are so large.  The vastly shorter `.map' files for Apple,
DTC, and Linotype are included, however, for the sake of example. The
larger files follow the same pattern.

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

  Abbreviated names for the 35 standard PostScript fonts. An encoding
variant, such as `8a' for the Adobe `StandardEncoding', is omitted.

`pagk'
     `AvantGarde-Book'

`pagko'
     `AvantGarde-BookOblique'

`pagd'
     `AvantGarde-Demi'

`pagdo'
     `AvantGarde-DemiOblique'

`pbkd'
     `Bookman-Demi'

`pbkdi'
     `Bookman-DemiItalic'

`pbkl'
     `Bookman-Light'

`pbkli'
     `Bookman-LightItalic'

`pcrb'
     `Courier-Bold'

`pcrbo'
     `Courier-BoldOblique'

`pcrr'
     `Courier'

`pcrro'
     `Courier-Oblique'

`phvb'
     `Helvetica-Bold'

`phvbo'
     `Helvetica-BoldOblique'

`phvbrn'
     `Helvetica-NarrowBold'

`phvbon'
     `Helvetica-NarrowBoldOblique'

`phvr'
     `Helvetica'

`phvro'
     `Helvetica-Oblique'

`phvrrn'
     `Helvetica-Narrow'

`phvron'
     `Helvetica-NarrowOblique'

`pncb'
     `NewCenturySchlbk-Bold'

`pncbi'
     `NewCenturySchlbk-BoldItalic'

`pncri'
     `NewCenturySchlbk-Italic'

`pncr'
     `NewCenturySchlbk-Roman'

`pplb'
     `Palatino-Bold'

`pplbi'
     `Palatino-BoldItalic'

`pplri'
     `Palatino-Italic'

`pplr'
     `Palatino-Roman'

`psyr'
     `Symbol'

`ptmb'
     `Times-Bold'

`ptmbi'
     `Times-BoldItalic'

`ptmri'
     `Times-Italic'

`ptmr'
     `Times-Roman'

`pzcmi'
     `ZapfChancery-MediumItalic'

`pzdr'
     `ZapfDingbats'

Apple fonts
===========

  The `apple.map' file has abbreviations for Apple fonts.

     eecr     AppleChancery
     eger     Geneva
     ehtr     HoeflerText
     emcr     Monaco
     epi001   Zeal
     eskr     Skia

DTC fonts
=========

  The `dtc.map' file has abbreviations for DTC (Digital Typeface
Corporation) fonts.

     dhvcrc  SansBlackCondensed-DTC
     dhvcoc  SansBlackCondensed-Oblique-DTC
     dhvmrx  SansExtended-Medium-DTC
     dhvrrx  SansExtended-Regular-DTC
     dhvroc  SansExtended-RegularOblique-DTC
     dhvxrc  SansExtraBlackCondensed-DTC
     dhvlrx  SansLightExtended-DTC
     dhvhrc  SansThinCondensed-DTC
     dhvhoc  SansThinCondensed-Oblique-DTC
     dnbb    NewBaskerville-Bold-DTC
     dnbbi   NewBaskerville-BoldItalic-DTC
     dnbri   NewBaskerville-RomanItalic-DTC
     dnbr    NewBaskerville-Roman-DTC
     dopr    Optimum-Roman-DTC
     dopb    Optimum-Bold-DTC
     dopbo   Optimum-BoldItalic-DTC
     doro    Optimum-RomanItalic-DTC
     dpll    Palton-Light-DTC

Linotype fonts
==============

  The `linotype.map' file has abbreviations for Linotype fonts.

     lenb     EngraversLH-BoldFace
     lpi001   OlympicLH-Pi
     ltgbrx   TradeGothicLH-BoldExtended
     ltgrrx   TradeGothicLH-Extended
     lvcc     VectoraLH-Black
     lvcci    VectoraLH-BlackItalic
     lvcb     VectoraLH-Bold
     lvcbi    VectoraLH-BoldItalic
     lvcri    VectoraLH-Italic
     lvcl     VectoraLH-Light
     lvcli    VectoraLH-LightItalic
     lvcr     VectoraLH-Roman
     lpi002   WarningLH-Pi
     lpi003   AudioLH-Pi
     lcfcs    ClearfaceGothicLH-Black
     lcfbs    ClearfaceGothicLH-Bold
     lcfls    ClearfaceGothicLH-Light
     lcfms    ClearfaceGothicLH-Medium
     lcfrs    ClearfaceGothicLH-Roman
     lpi004   EECLH-Pi
     lffb     FairfieldLH-Bold
     lffbi    FairfieldLH-BoldItalic
     lffbc    FairfieldLH-BoldSC
     lffbd    FairfieldLH-CaptionBold
     lffhd    FairfieldLH-CaptionHeavy
     lffld    FairfieldLH-CaptionLight
     lffmd    FairfieldLH-CaptionMedium
     lffh     FairfieldLH-Heavy
     lffhi    FairfieldLH-HeavyItalic
     lffhc    FairfieldLH-HeavySC
     lffl     FairfieldLH-Light
     lffli    FairfieldLH-LightItalic
     lfflc    FairfieldLH-LightSC
     lffm     FairfieldLH-Medium
     lffmi    FairfieldLH-MediumItalic
     lffmc    FairfieldLH-MediumSC
     lffbiw7d FairfieldLH-SwBoldItalicOsF
     lffhiw7d FairfieldLH-SwHeavyItalicOsF
     lffliw7d FairfieldLH-SwLightItalicOsF
     lffmiw7d FairfieldLH-SwMediumItalicOsF

Legal issues
************

  This section owes a great deal to Charles Bigelow (co-designer with
Kris Holmes of the Lucida typeface family, among others), who has
generously answered our many queries about fonts and the law around the
world with remarkable patience and understanding.  (But he is naturally
not responsible for any errors here, much less our opinions.)

  Fonts have always been treated rather strangely under the law, as
befits their rather strange nature: letterforms are indivisibly both
*useful* and *artistic*.  In most countries--in all countries until
recently--utility has taken precedence; i.e., it has been legal to copy
fonts without permission or fee.

  In any case, to the best of my knowledge, the situation in those
countries which have adopted any sort of typeface protection is as
follows:

United States
     Typeface designs can be patented, but not copyrighted.  Only a few
     designs have been patented.  (Lucida and Stone are the only ones I
     know of.  I don't know what the grounds were for patenting Stone,
     but Lucida had some novel features in its design which make it
     reasonable to patent, given the acceptance of the patent system in
     the first place.)

     Particular programs which instantiate a font can be copyrighted
     just as any other computer program can.  This is arguably wrong,
     since font programs are nothing but a description of the shapes,
     possibly with some simple hints, and there's only one basic way to
     describe the shapes in any given language.  Thus, the creativity
     lies in making the shape right, not in making the computer program
     right, so it would seem that to be consistent, the copyright laws
     should protect the design, not the program--the opposite of the
     current situation.

Germany
     Typeface designs have been copyrightable as original works of art
     since 1981.  As a result, many (perhaps most) designs have been
     copyrighted there. The law is not retroactive, but German courts
     have upheld the intellectual property rights of designers of
     earlier fonts as well: In one case the heirs of Paul Bauer
     (designer of Futura) won a suit against the Bauer foundry for
     arbitrarily discontinuing a portion of their royalties.

England
     A copyright law passed in 1989 covers typeface designs first
     published in England (or published in Britain within 30 days of
     its publication elsewhere), and it *is* retroactive.  It's unclear
     how far back the law extends, but Times Roman, designed in the
     late 1920's and 1930's by Stanley Morison and cut by Victor
     Lardent for Monotype is probably covered.  This does not mean GNU
     (for example) cannot have a Times Roman; it just means we cannot
     start with an English version, as the law does not forbid
     importing foreign versions of English typefaces.

France
     The Romain du Roi typeface designed by Philippe Grandjean in 1702
     for the French royal family is protected, and perhaps other such
     "royal" designs.  There is no protection for designs in general.

  In 1973 the international Vienna treaty on typeface design protection
was proposed.  France ratified it in 1974 or 1975, and Germany in 1981.
The English law might constitute ratification, but this has not been
settled.  In any case, since at least four countries have to ratify it
before it takes effect (and even then it takes effect only in those
countries which ratify it), it is still of no consequence for now.