summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fontname/fontname.texi
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fontname/fontname.texi')
-rw-r--r--Master/texmf-dist/doc/fontname/fontname.texi1344
1 files changed, 1344 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fontname/fontname.texi b/Master/texmf-dist/doc/fontname/fontname.texi
new file mode 100644
index 00000000000..ec8a17036c9
--- /dev/null
+++ b/Master/texmf-dist/doc/fontname/fontname.texi
@@ -0,0 +1,1344 @@
+\input texinfo
+@c This file is in the public domain and may be used freely.
+@c
+@c @texinfofile{
+@c author = "Karl Berry",
+@c date = "10sep05",
+@c filename = "fontname.texi",
+@c email = "tex-fonts@@math.utah.edu",
+@c url = "http://tug.org/fontname/",
+@c docstring = "A naming scheme for font files intended to be usable
+@c with all systems on which TeX runs."
+@c }
+@setfilename fontname.info
+@settitle Filenames for @TeX{} fonts
+
+@copying
+This document is in the public domain and may be used freely.
+@end copying
+
+@c Define a new index for filenames, and use the concept index for everything.
+@defcodeindex fl
+@syncodeindex fl cp
+@syncodeindex fn cp
+
+@dircategory TeX
+@direntry
+* Naming TeX fonts: (fontname). Filenames for TeX fonts.
+@end direntry
+
+
+@titlepage
+@title Fontname
+@subtitle September 2005
+@subtitle Filenames for @TeX{} fonts
+@author K. Berry
+@end titlepage
+
+@contents
+
+@ifnottex
+@node Top
+@top Filenames for @TeX{} fonts
+
+This is Fontname, a naming scheme for (the base part of) external @TeX{}
+font filenames. Last update 10 September 2005.
+
+@menu
+* Introduction:: Rationale and basic information about fonts.
+* Filenames for fonts:: The construction of font names.
+* Long names:: A specification for long filenames.
+* Font name lists:: Real fontnames for many existing fonts.
+* Encodings:: Specifications for various encodings.
+* Font legalities:: Legal issues vary from country to country.
+* General index:: Index.
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+Introduction
+
+* History::
+* References::
+
+Filenames for fonts
+
+* Suppliers::
+* Typefaces::
+* Weights::
+* Variants::
+* Widths::
+
+Long names
+
+* Name mapping file:: Aliases for fonts.
+* Long naming scheme:: A way to use more than 8 alphanumerics.
+
+Font name lists
+
+* Standard PostScript fonts:: The standard 35 PostScript fonts.
+* Adobe fonts::
+* Apple fonts::
+* Bitstream fonts::
+* DTC fonts::
+* ITC fonts::
+* Linotype fonts::
+* Monotype fonts::
+* URW fonts::
+
+Encodings
+
+* 8a:: Adobe standard.
+* 8r:: TeX base.
+* cork:: Cork (aka EC, TeX Latin 1, tex256).
+* dvips:: Dvips.
+* qx:: QX, from GUST.
+* t5:: Vietnamese, from vntex.
+* texmext:: TeX math extension.
+* texmsym:: TeX math symbol.
+* texmital:: TeX math italic.
+* texnansi:: From Y&Y.
+* texnansx:: From Y&Y.
+* xl2:: OT1 + ISO Latin 2 (extended).
+* xt2:: Typewriter version of xl2.
+
+@end detailmenu
+@end menu
+
+@end ifnottex
+
+
+@node Introduction
+@chapter Introduction
+
+@cindex introduction
+
+This is Fontname, a naming scheme for (the base part of) external @TeX{}
+font filenames. This makes 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.
+
+@cindex bugs, reporting
+@cindex reporting bugs
+@flindex tex-fonts@@tug.org
+Please send additions, corrections, or other comments to
+@email{tex-fonts@@tug.org}. Email
+@email{tex-fonts-request@@tug.org} to join the list.
+
+@cindex distribution
+@cindex encoding files
+@cindex mapping files
+@cindex utilities
+Besides this document, the Fontname distribution includes various
+encoding files, mapping files, and utilities. See the file
+@file{README} for details. You can retrieve the most up-to-date
+version of these lists from @uref{http://tug.org/fontname}. It is
+also mirrored on all CTAN hosts in the directory
+@file{tex-archive/doc/fontname}. For a list of CTAN mirrors, see
+@uref{http://www.ctan.org/tex-archive/CTAN.sites}.
+
+This document is in the public domain and may be used freely.
+
+@menu
+* History::
+* References::
+@end menu
+
+
+@node History
+@section History
+
+@cindex history
+
+@cindex Mittelbach, Frank
+@cindex Schoepf, Rainer
+The original inspiration for Fontname was Frank Mittelbach and Rainer
+Schoepf's article in @cite{TUGboat} 11(2) (June 1990), which led to my
+article in @cite{TUGboat} 11(4) (November 1990), pages 512--519.
+Mittelbach wrote another article criticizing the scheme below in
+@cite{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.
+
+@cindex Fontname version 2
+In August 1995, Fontname version 2 was released, concomitantly with a new
+release of the PostScript fonts for use with La@TeX{} and Dvips. After
+several years of experience, several modifications of the original
+distribution seemed desirable: more precise specification of encodings
+(@pxref{Variants}); machine-readable mapping files (the @file{*.map}
+files in the distribution) and standardizing directory names as well as
+font filenames (included in @file{supplier.map} and
+@file{typeface.map}).
+
+In Fontname version 1, some encoding variant characters (@samp{0},
+@samp{2}, etc.) have been reassigned to a @samp{7} or @samp{8} sequence
+(@pxref{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.
+
+@cindex contributors
+@cindex Beebe, Nelson
+@cindex Beeton, Barbara
+@cindex Bernstein, Rocky
+@cindex Bouche, Thierry
+@cindex Cugley, Damian
+@cindex Horn, Berthol
+@cindex Jeffrey, Alan
+@cindex Lang, Russell
+@cindex MacKay, Pierre
+@cindex Rahtz, Sebastian
+@cindex Rivlin, Jean
+@cindex Rokicki, Tom
+Many people have contributed to this work. In particular, I gratefully
+acknowledge Nelson Beebe, Barbara Beeton, Rocky Bernstein, Thierry Bouche,
+Damian Cugley, Berthold K.P. Horn, Alan Jeffrey, Russell Lang, Pierre
+MacKay, Sebastian Rahtz, Jean Rivlin, and Tom Rokicki.
+
+
+@node References
+@section References
+
+@cindex references
+@cindex related files
+
+Related files and distributions:
+
+@itemize @bullet
+@item
+@cindex @TeX{} Directory Structure standard
+@cindex TDS standard
+The @TeX{} Directory Structure (TDS) standard, available at
+(@uref{ftp://tug.org/tex/tds} and @file{@var{CTAN:}/tds})
+specifies a directory tree for all @TeX{} library files. The directory
+names given in @ref{Suppliers} and @ref{Typefaces} are intended to mesh
+with that standard.
+
+@item
+@flindex modes.mf
+The @file{modes.mf} file (@uref{ftp://tug.org/tex/modes.mf})
+contains recommended mode names to use as directory names.
+
+@item
+@cindex PSfonts distribution
+The PSfonts distribution (@file{@var{CTAN:}/fonts/psfonts}) contains
+@TeX{} support for many fonts, both commercially available and free.
+
+@item
+@cindex Fontinst distribution
+The Fontinst distribution (@file{@var{CTAN:}/fonts/utilities/psfonts})
+supports quite general creation of virtual fonts, named according to the
+scheme given here.
+
+@item
+@cindex Dvips translator
+The Dvips translator (original at
+@uref{ftp://labrea.stanford.edu/pub/dvips*.tar.gz} and variation at
+@uref{ftp://tug.org/tex/dvipsk.tar.gz}) supports resident and
+downloadable PostScript fonts. Dvips was the first real application of
+Fontname 1. Dvips also includes Afm2tfm, another program that can
+create virtual fonts.
+
+@item
+@cindex Dviljk translator
+The Dviljk processor (@uref{ftp://tug.org/tex/dviljk.tar.gz})
+contains @TeX{} support for the fonts built into the LaserJet 4.
+
+@item
+@cindex terminology
+@cindex Southall, Richard
+`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.
+
+@end itemize
+
+
+@node Filenames for fonts
+@chapter Filenames for fonts
+
+@cindex limitations
+@cindex eight-character limitation
+@cindex DOS filesystems
+@cindex ISO 9660
+@cindex CD-ROM distribution
+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 a-z), numerals (0-9),
+and underscore.
+
+@cindex filenames, basics
+Here is the basic division of the eight characters (the spaces here are
+merely for readability):
+
+@example
+ @var{S} @var{TT} @var{W} [@var{V@dots{}}] [@var{N}] [@var{E}] [@var{DD}]
+@end example
+
+@noindent where
+
+@table @var
+@item S
+represents the supplier of the font.
+
+@item TT
+represents the typeface name.
+
+@item W
+represents the weight.
+
+@item V@dots{}
+represents the variant(s), and is omitted if both it and the width are
+normal. Many fonts have more than one variant.
+
+@item N
+represents the encoding, and is omitted if the encoding is nonstandard.
+Encodings are subsumed in the section on variants (@pxref{Variants}).
+
+@item E
+represents the width (``expansion''), and is omitted if
+it is normal.
+
+@item DD
+@cindex design size specification
+@cindex hexadecimal design size
+@cindex font scaling
+@cindex Mittelbach, Frank
+represents the design size (in decimal), and is omitted if the font is
+linearly scaled. Mittelbach in @cite{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., 10@dmn{pt}
+fonts would have a suffix @samp{a} (in hex), or @samp{j} (in base 36)).
+
+@end table
+
+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.
+
+@menu
+* Suppliers::
+* Typefaces::
+* Weights::
+* Variants::
+* Widths::
+@end menu
+
+
+@node Suppliers
+@section Suppliers
+
+@cindex suppliers
+@cindex foundries
+@cindex type foundries
+
+The @dfn{supplier} is the source of a font, typically a (digital) type
+foundry.
+
+@cindex Avant Garde
+@cindex Lubalin, Herb
+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 @samp{p}.
+This is because font resellers typically make modifications to the
+original design.
+
+Notes on specific suppliers:
+
+@table @samp
+@item f
+@cindex individual font designers
+@cindex small foundries
+@cindex attribution of fonts, missing
+@cindex unattributed fonts
+For fonts that are distributed without any specific attribution to the
+creator, by individuals, or by small foundries. (Unfortunately, we
+don't have enough characters to assign one to every font
+supplier in the world.)
+
+@item r
+@cindex raw fonts
+obsolete; specifies raw fonts, in the old distribution of Dvips. New
+fonts should never use @samp{r}. (The right thing to do is specify the
+correct encoding, variant, or whatever the font's characteristics
+actually are.)
+
+@item z
+@cindex bizarre font names
+@cindex nonstandard names, escape for
+@cindex escape for nonstandard names
+for fonts that just don't fit well into the naming scheme. The @samp{z}
+should be followed by the real supplier letter.
+@end table
+
+@flindex supplier.map
+Here is the table from the file @file{supplier.map}. It is organized
+alphabetically by abbreviation. Each line consists of an abbreviation,
+directory name, and comment.
+
+@example
+@include supplier.map
+@end example
+
+
+@node Typefaces
+@section Typefaces
+
+@cindex typefaces
+
+For our purposes, a @dfn{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:
+
+@table @samp
+@item ad
+@itemx gm
+@cindex Garamond, versions of
+To explain a common confusion: @samp{ad} is Adobe Garamond (with a
+@samp{FontName} of @samp{AGaramond}). This is quite different from the
+@samp{Garamond} typeface distributed by Adobe, which is actually ITC
+Garamond. (Garamond No.@: 3 (@samp{f3}), Simoncini Garamond
+(@samp{ig}), and Stempel Garamond (@samp{eg}) are still other
+variations on the Garamond theme.)
+
+@item lh
+@itemx ls
+@itemx lx
+@itemx r1
+These abbreviations for Lucida typeface subfamilies, et al., solve a
+problem with names getting too long, or help conserve variant
+abbreviations. @xref{Variants}. Ideally, they would not exist.
+
+@item ns
+@itemx nt
+@itemx tm
+Suppliers offer as many variations on the Times New Roman design as they
+do Garamond. Adobe has @samp{Times}, @samp{TimesNewRoman}, and
+@samp{TimesNewRomanPS}. Although this last has been used by other
+foundries (e.g., Monotype) for a Times variation exactly compatible with
+Adobe's @samp{Times}, Adobe itself also offers it, so we must have
+abbreviations for all three.
+
+@item pi
+@cindex pi fonts
+For 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, @samp{pi}, an
+arbitarily-assigned three-digit number, a weight and (if necessary) a
+variant. For example, @samp{mpi001r}. Pi font @samp{001} for one
+supplier has nothing to do with pi font @samp{001} for another.
+@end table
+
+@flindex typeface.map
+@findex FontName
+Here is the table, from the file @file{typeface.map}. It is organized
+alphabetically by abbreviation. Each line consists of an abbreviation
+and directory name, possibly followed by PostScript @samp{FontName}s
+and/or a comment in roman. The @samp{FontName} may be preceded by a
+letter @var{s} and a @samp{:}, as in @samp{b:Dutch}. In that case, the
+@var{s} is a supplier abbreviation, and we've used that abbreviation for
+the given @samp{FontName} from that supplier.
+
+@example
+@iftex
+@ifclear html
+@global@hfuzz@maxdimen
+@end ifclear
+@end iftex
+@include typeface.map
+@end example
+@iftex
+@ifclear html
+@global@hfuzz1pt
+@end ifclear
+@end iftex
+
+
+@node Weights
+@section Weights
+
+@cindex weight
+
+The @dfn{weight} of a font specifies its boldness. Arranged from
+lightest to heaviest (more or less):
+
+@display
+hairline, extra light, light
+book, regular, medium
+demibold, semibold, bold, extra bold, heavy
+black, ultra, poster
+@end display
+
+@flindex weight.map
+Here is the table, from the file @file{weight.map}. It is organized
+alphabetically by abbreviation. Each line consists of an abbreviation
+and any parts of a PostScript @samp{FontName} which use that
+abbreviation.
+
+@example
+@include weight.map
+@end example
+
+
+@node Variants
+@section Variants
+
+@cindex variants
+
+@dfn{Variants} include typeface variations (e.g., italic, sans serif),
+and font encodings (e.g., Adobe standard, @TeX{} text).
+
+@cindex multiple variants
+A fontname may require multiple variants. To resolve the worst
+ambiguities, we specify that any encoding variant (@samp{7}, @samp{8},
+or @samp{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.)
+
+@cindex letterspacing
+@cindex small caps fonts
+The letterspacing possibilities introduced by @code{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:
+
+@table @samp
+@item 1
+@itemx 4
+@itemx 6
+@itemx b
+@cindex semisans variant
+@cindex semiserif variant
+@cindex fax variant
+@cindex bright variant
+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 @samp{b}, to avoid
+too-long names; and for the others, to avoid variant vs.@: design-size
+ambiguities.
+
+@item g
+@itemx h
+Since these variants were not actually used in any font names, they are
+now obsolete and may be reassigned in the future.
+
+@item 5
+@itemx 6
+@itemx 7
+@itemx 8
+@itemx 9
+@cindex phonetic encodings
+@cindex Cyrillic encodings
+@cindex 7-bit encodings
+@cindex 8-bit encodings
+@cindex expertised encodings
+@findex SuperFont
+@findex 9s @r{variant}
+These characters begin a two-character @dfn{encoding variant}.
+Generally, @samp{7} is for 7-bit encodings, @samp{8} is for 8-bit
+encodings, and @samp{9} is for expertised encodings with or without
+oldstyle digits (see the @samp{x} item below), but this is not an
+absolute rule. Also, @samp{5} is presently used for phonetic encodings
+and @samp{6} for Cyrillic encodings. The @samp{9s} (@samp{SuperFont})
+variant contain all of Adobe, Latin 1, and Expert glyphs, perhaps with
+slightly different metrics than the original fonts.
+
+@cindex ligatures and encodings
+@findex Lslash
+@findex lslash
+@flindex T1.etx
+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
+@samp{7t} if the only difference from Computer Modern is that the
+ligatures and the @samp{lslash} and @samp{Lslash} characters are
+different, since it's impossible to access or change the ligature table
+from @TeX{}. Standard PostScript fonts don't have an @samp{lslash}
+character the way Computer Modern does, but they do have the
+@samp{Lslash} and @samp{lslash} characters themselves, so the usual
+@TeX{} @code{\lslash} and @code{\Lslash} macros can be made to work via
+ligatures. See the file @file{T1.etx} file in the @code{fontinst}
+distribution for details.
+
+@cindex encodings, unspecified
+@cindex Afm2tfm encoding
+@cindex LaserJet 4 fonts
+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 @samp{ptmr} for @samp{Times-Roman}; they use the Dvips
+encoding (@pxref{dvips}), which is close to (but not the same
+as) the @TeX{} text encoding (as in Computer Modern Roman). Similarly,
+the TFM files distributed with Dvilj(k) for the builtin LaserJet 4 fonts
+have names like @samp{cunm}, since these fonts, while compatible with
+@TeX{} text, contain many additional characters.
+
+@item 9
+These items are needed only because @samp{x} (and possibly @samp{j})
+followed by a two-character regular variant makes some names too long.
+That is, @samp{9t} is equivalent in meaning to @samp{x7t}, and @samp{9d}
+is equivalent to @samp{jx7t}. (This may not be true for all
+@samp{9@var{x}} encodings, though.)
+
+@item k
+@itemx z
+@cindex scripts
+@cindex Greek fonts
+@cindex Cyrillic fonts
+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 @ref{Introduction}.
+
+@item m
+@itemx v
+@itemx y
+@cindex math variants
+These math-related variants remain for the sake of typeface-specific
+math encodings, e.g., Lucida. Fonts that use the Computer Modern math
+encodings should use @samp{7m} (@pxref{texmital}), @samp{7v}
+(@pxref{texmext}), and @samp{7y} (@pxref{texmsym}).
+
+@item n
+@cindex informal variant
+@cindex schoolbook variant
+@cindex Stone Informal
+This is used for several different (but very rare) variants: only the
+Stone typeface has an ``informal'' variant, and only a few Monotype
+fonts have a ``schoolbook'' variant, with different `a', `g', and `y'
+shapes.
+
+@item r
+Included only if no other variants, including encodings, apply, and
+either the width (@pxref{Widths}) is not @samp{r} or a design size is
+present. I.e., @samp{r} is only used as a placeholder. When the normal
+version of the typeface is sans serif (e.g., Helvetica), @samp{r} should
+be used when necessary, not @samp{s}. Use @samp{s} only when the
+typeface family has both serif and sans serif variants.
+
+@item s
+@itemx t
+@cindex typewriter variant
+@cindex sans variant
+@cindex Mittelbach, Frank
+Mittelbach in @cite{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 @samp{LucidaSans} (@pxref{Typefaces}) and a few others are
+exceptions, to avoid too-long names.
+
+@item x
+@itemx 8x
+@itemx 9?
+@cindex expert encoding
+@cindex expertised font
+@samp{8x} indicates a font in the @samp{Expert} encoding itself.
+@samp{x} indicates an @dfn{expertised} font, i.e., a composite (virtual)
+font that includes characters from an @samp{8x} font. And in fact an
+@samp{x@var{ee}} sequence is replaced by @samp{9@var{e}}, to save
+characters.
+@end table
+
+@flindex variant.map
+Fontname 1 assignments are shown in brackets in the following table,
+from the file @file{variant.map}. It is organized alphabetically by
+abbreviation. Each line consists of an abbreviation and either any
+parts of a PostScript @samp{FontName} which use that abbreviation or the
+PostScript @samp{Encoding} name.
+
+@example
+@include variant.map
+@end example
+
+
+@node Widths
+@section Widths
+
+@cindex widths
+@cindex compression
+@cindex expansion
+
+The @dfn{width} of a font specifies the compression or expansion of the
+font. Arranged from narrowest to widest (more or less):
+
+@display
+ultra compressed, extra condensed, compressed, condensed, narrow
+regular
+extended, expanded, wide
+@end display
+
+@cindex automatic expansion
+@cindex character scaling, automatic
+Expansion or compression of fonts is sometimes done automatically (as by
+the PostScript @code{scale} operator), and sometimes done by humans. In
+the latter case, the human will also presumably choose a font name which
+includes `Extended' or `Expanded' or `Condensed' or `Narrow' or whatever
+according to their own preferences; the abbreviation can follow along.
+When creating a new synthetically expanded or compressed font for use
+with @TeX{}, e.g., with Afm2tfm or @code{fontinst}, use @samp{n} and
+@samp{e}.
+
+@flindex width.map
+Here is the table, from the file @file{width.map}. It is organized
+alphabetically by abbreviation. Each line consists of an abbreviation
+and any parts of a PostScript @samp{FontName} which use that
+abbreviation.
+
+@example
+@include width.map
+@end example
+
+
+@node Long names
+@chapter Long names
+
+@cindex 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.
+
+@menu
+* Name mapping file:: Aliases for fonts.
+* Long naming scheme:: A way to use more than 8 alphanumerics.
+@end menu
+
+
+@node Name mapping file
+@section A fontname mapping file
+
+@cindex fontname mapping file
+@cindex mapping file
+
+At the moment, most implementations of @TeX{} look up a TFM file (as
+part of the @code{\font} command), by searching for a file with the name
+given by the user (possibly in any of series of directories). But if we
+also looked TFM names up in @emph{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.
+
+@flindex texfonts.map
+In version 5.851d of Web2c, I implemented this mapping file. Each file
+@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
+@code{%} 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.
+
+@cindex Knuth, Donald E.
+Incidentally, Professor Knuth has approved this as a legitimate
+``system-dependent'' extension; a @TeX{} with such a feature can still
+be called ``@TeX{}''.
+
+
+@node Long naming scheme
+@section A naming scheme for long names
+
+@cindex long naming scheme
+
+@cindex X Window System font 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.
+
+@example
+@var{supplier}-@var{family}-@var{weight}-@var{variants}-@var{width}-@var{encoding}--@var{size}
+@end example
+
+@var{supplier} is the usual @code{Adobe}, @code{Autologic}, etc., as
+well as @code{unknown} or @code{bizarre}---this last meaning the rest of
+the name is nonstandard. If the @var{supplier} is missing, i.e., the
+name starts with a @code{-}, ``public domain'' is assumed. For fonts
+made by individuals, the initials of the designer would probably make a
+good @var{supplier}.
+
+@var{family} is @code{ComputerModern} or @code{Times} or whatever.
+
+Everything else is optional. The @code{--} before the @var{size} lets
+one specify a name with, say, a weight and variants, but then skip the
+@var{width} and @var{encoding}, but still be able to
+give a size.
+
+@var{weight} and @var{width} are as described earlier.
+
+If there is more than one variant, they are separated with some
+character other than @samp{-}, say @samp{=}:
+@example
+B+H-Lucida-Bold-Sans=Typewriter--10
+@end example
+
+@findex font_coding_scheme
+@var{encoding} is what Metafont calls the
+@code{font_coding_scheme}---the layout of the characters in the font.
+For example, @samp{Cork} or @samp{ISOLatin1} or @samp{AdobeAlternate}.
+
+@cindex category codes
+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):
+@samp{Times-Roman}.
+
+
+@node Font name lists
+@appendix Font name lists
+
+These sections contain a list of fonts from various suppliers together
+with the corresponding names.
+
+@menu
+* Standard PostScript fonts:: The standard 35 PostScript fonts.
+* Adobe fonts::
+* Apple fonts::
+* Bitstream fonts::
+* DTC fonts::
+* ITC fonts::
+* Linotype fonts::
+* Monotype fonts::
+* URW fonts::
+@end menu
+
+
+@node Standard PostScript fonts
+@section Standard PostScript fonts
+
+@cindex 35 standard PostScript fonts
+@cindex standard PostScript fonts
+@cindex PostScript fonts, standard
+
+Abbreviated names for the 35 standard PostScript fonts. An encoding
+variant, such as @samp{8a} for the Adobe @samp{StandardEncoding}, is
+omitted.
+
+@table @file
+@item pagk
+ @samp{AvantGarde-Book}
+@item pagko
+ @samp{AvantGarde-BookOblique}
+@item pagd
+ @samp{AvantGarde-Demi}
+@item pagdo
+ @samp{AvantGarde-DemiOblique}
+@item pbkd
+ @samp{Bookman-Demi}
+@item pbkdi
+ @samp{Bookman-DemiItalic}
+@item pbkl
+ @samp{Bookman-Light}
+@item pbkli
+ @samp{Bookman-LightItalic}
+@item pcrb
+ @samp{Courier-Bold}
+@item pcrbo
+ @samp{Courier-BoldOblique}
+@item pcrr
+ @samp{Courier}
+@item pcrro
+ @samp{Courier-Oblique}
+@item phvb
+ @samp{Helvetica-Bold}
+@item phvbo
+ @samp{Helvetica-BoldOblique}
+@item phvbrn
+ @samp{Helvetica-NarrowBold}
+@item phvbon
+ @samp{Helvetica-NarrowBoldOblique}
+@item phvr
+ @samp{Helvetica}
+@item phvro
+ @samp{Helvetica-Oblique}
+@item phvrrn
+ @samp{Helvetica-Narrow}
+@item phvron
+ @samp{Helvetica-NarrowOblique}
+@item pncb
+ @samp{NewCenturySchlbk-Bold}
+@item pncbi
+ @samp{NewCenturySchlbk-BoldItalic}
+@item pncri
+ @samp{NewCenturySchlbk-Italic}
+@item pncr
+ @samp{NewCenturySchlbk-Roman}
+@item pplb
+ @samp{Palatino-Bold}
+@item pplbi
+ @samp{Palatino-BoldItalic}
+@item pplri
+ @samp{Palatino-Italic}
+@item pplr
+ @samp{Palatino-Roman}
+@item psyr
+ @samp{Symbol}
+@item ptmb
+ @samp{Times-Bold}
+@item ptmbi
+ @samp{Times-BoldItalic}
+@item ptmri
+ @samp{Times-Italic}
+@item ptmr
+ @samp{Times-Roman}
+@item pzcmi
+ @samp{ZapfChancery-MediumItalic}
+@item pzdr
+ @samp{ZapfDingbats}
+@end table
+
+
+@node Adobe fonts
+@section Adobe fonts
+
+@flindex adobe.map
+The @file{adobe.map} file has abbreviations for Adobe fonts.
+
+@example
+@include adobe.map
+@end example
+
+
+@node Apple fonts
+@section Apple fonts
+
+@flindex apple.map
+The @file{apple.map} file has abbreviations for Apple fonts.
+
+@example
+@include apple.map
+@end example
+
+
+@node Bitstream fonts
+@section Bitstream fonts
+
+@flindex bitstrea.map
+The @file{bitstrea.map} file has abbreviations for Bitstream fonts.
+
+@example
+@include bitstrea.map
+@end example
+
+
+@node DTC fonts
+@section DTC fonts
+
+@flindex dtc.map
+The @file{dtc.map} file has abbreviations for DTC (Digital Typeface
+Corporation) fonts.
+
+@example
+@include dtc.map
+@end example
+
+
+@node ITC fonts
+@section ITC fonts
+
+@flindex itc.map
+The @file{itc.map} file has abbreviations for ITC (International
+Typeface Corporation) fonts.
+
+@example
+@include itc.map
+@end example
+
+
+@node Linotype fonts
+@section Linotype fonts
+
+@flindex linotype.map
+The @file{linotype.map} file has abbreviations for Linotype fonts.
+
+@example
+@include linotype.map
+@end example
+
+
+@node Monotype fonts
+@section Monotype fonts
+
+@flindex monotype.map
+The @file{monotype.map} file has abbreviations for Monotype fonts.
+
+@example
+@iftex
+@ifclear html
+@global@hfuzz@maxdimen
+@end ifclear
+@end iftex
+@include monotype.map
+@iftex
+@ifclear html
+@global@hfuzz1pt
+@end ifclear
+@end iftex
+@end example
+
+
+@node URW fonts
+@section URW fonts
+
+@cindex URW fonts
+@cindex Ertner, Vincent
+
+Information graciously supplied through URW, via Vincent Ertner: Each
+URW font has an assigned font number. The last character describes
+the size or purpose of the font, as the design of the font is
+optimized accordingly:
+
+@table @code
+@item X000000E
+Extreme: 8@dmn{pt} and smaller
+
+@item X000000T
+Text: between 8 and 18@dmn{pt}
+
+@item X000000D
+Display: 18@dmn{pt} and larger
+
+@item X000000P
+Poster: 48@dmn{pt} and larger
+
+@item X000000M
+Monospaced / Typewriter
+
+@item X000000L
+LaserWriter / PostScript / Adobe compatible
+
+@item X000000I
+Intellifont PCL (5) compatible
+
+@end table
+@noindent An @samp{F} identifier is not known.
+
+@flindex urw.map
+The @file{urw.map} file has abbreviations for URW fonts.
+
+@example
+@include urw.map
+@end example
+
+
+@node Encodings
+@appendix Encodings
+
+@cindex PostScript encoding vectors
+@cindex encoding vectors
+
+The following sections define various encodings as PostScript encoding
+vectors. These files can be installed in the Dvips header directory and
+then used in @file{psfonts.map} to change font encodings of downloadable
+or builtin fonts (@pxref{psfonts.map,,, dvips, Dvips}).
+
+You can also specify these @file{.enc} files to Afm2tfm when building a
+font (@pxref{Changing font encodings,,, dvips, Dvips}).
+
+For a discussion of @TeX{} font encodings in general, and defining new
+ones for use with @command{fontinst} in particular, see
+@uref{http://www.ctan.org/tex-archive/fonts/utilities/fontinst/doc/encspecs}.
+
+Naming specific characters is a tangled and difficult area. Here are
+some links to character tables for Unicode, Adobe, and WGL4, for your
+researching pleasure (thanks to Boguslaw Jackowski for the list):
+
+@itemize @bullet
+@item @uref{http://www.unicode.org/Public/UNIDATA/UnicodeData.txt}
+@item @uref{http://www.unicode.org/Public/UNIDATA/NamesList.txt}
+@item @uref{http://partners.adobe.com/asn/tech/type/corporateuse-old.txt}
+@item @uref{http://partners.adobe.com/asn/tech/type/aglfn13.txt}
+@item @uref{http://partners.adobe.com/asn/tech/type/unicodegn.jsp}
+@item @uref{http://www.microsoft.com/OpenType/otspec/WGL4.htm}
+@end itemize
+
+@menu
+* 8a:: Adobe standard.
+* 8r:: TeX base.
+* cork:: Cork (aka EC, TeX Latin 1, tex256).
+* dvips:: Dvips.
+* t5:: Vietnamese, from vntex.
+* qx:: QX, from GUST.
+* texmext:: TeX math extension.
+* texmsym:: TeX math symbol.
+* texmital:: TeX math italic.
+* texnansi:: From Y&Y.
+* texnansx:: From Y&Y.
+* xl2:: OT1 + ISO Latin 2 (extended).
+* xt2:: Typewriter version of xl2.
+@end menu
+
+
+@node 8a
+@section @samp{8a.enc}: Adobe standard encoding
+
+@flindex 8a.enc
+@cindex Adobe standard encoding
+@cindex encodings, Adobe standard
+
+@verbatiminclude 8a.enc
+
+
+@node 8r
+@section @samp{8r.enc}: @TeX{} base encoding
+
+@flindex 8r.enc
+@cindex @TeX{} base encoding
+@cindex base encoding, for @TeX{}
+@cindex encodings, @TeX{} base
+@cindex Windows ANSI
+@cindex Lucida Bright
+
+@verbatiminclude 8r.enc
+
+@node cork
+@section @samp{cork.enc}: Cork encoding
+
+@flindex cork.enc
+@cindex Cork encoding
+@cindex EC encoding
+@cindex @TeX{} Latin 1 encoding
+@cindex encodings, Cork
+@cindex encodings, EC
+@cindex encodings, @TeX{} Latin 1
+
+@verbatiminclude cork.enc
+
+
+@node dvips
+@section @samp{dvips.enc}: Dvips encoding
+
+@flindex dvips.enc
+@cindex Dvips encoding
+@cindex encoding, Dvips
+
+@verbatiminclude dvips.enc
+
+
+@node t5
+@section @samp{t5.enc}: T5 encoding
+
+@flindex t5.enc
+@cindex T5 encoding
+@cindex Vietnamese encoding
+@cindex encoding, T5
+
+@verbatiminclude t5.enc
+
+
+@node qx
+@section @samp{qx.enc}
+
+@flindex qx.enc
+@cindex encodings, qx
+@cindex qx encoding
+
+From GUST.
+
+@verbatiminclude qx.txt
+@verbatiminclude qx.enc
+
+
+@node texmext
+@section @samp{texmext.enc}: @TeX{} math extension encoding
+
+@flindex texmext.enc
+@cindex @TeX{} math extension encoding
+@cindex math extension, @TeX{} encoding
+@cindex extension, @TeX{} math encoding
+@cindex encodings, @TeX{} math symbol
+
+@verbatiminclude texmext.enc
+
+
+@node texmsym
+@section @samp{texmsym.enc}: @TeX{} math symbol encoding
+
+@flindex texmsym.enc
+@cindex @TeX{} math symbol encoding
+@cindex math symbol, @TeX{} encoding
+@cindex symbol, @TeX{} math encoding
+@cindex encodings, @TeX{} math symbol
+
+@verbatiminclude texmsym.enc
+
+
+@node texmital
+@section @samp{texmital.enc}: @TeX{} math italic encoding
+
+@flindex texmital.enc
+@cindex @TeX{} math italic encoding
+@cindex math italic, @TeX{} encoding
+@cindex italic, @TeX{} math encoding
+@cindex encodings, @TeX{} math italic
+
+@verbatiminclude texmital.enc
+
+
+@node texnansi
+@section @samp{texnansi.enc}
+
+@flindex texnansi.enc
+@cindex encodings, texnansi
+@cindex texnansi encoding
+
+From Y&Y.
+
+@verbatiminclude texnansi.enc
+
+
+@node texnansx
+@section @samp{texnansx.enc}
+
+@flindex texnansx.enc
+@cindex encodings, texnansx
+@cindex texnansx encoding
+
+From Y&Y. @samp{texnansi} without repeats.
+
+@verbatiminclude texnansx.enc
+
+
+@node xl2
+@section @samp{xl2.enc}: OT1 + ISO Latin 2 extended
+
+@flindex xl2.enc
+@cindex ISO Latin 2 extended, @TeX{} encoding
+
+@verbatiminclude xl2.enc
+
+
+@node xt2
+@section @samp{xt2.enc}: typewriter OT1 + ISO Latin 2 extended
+
+@flindex xt2.enc
+@cindex ISO Latin 2 extended and typewriter, @TeX{} encoding
+
+@verbatiminclude xt2.enc
+
+
+@node Font legalities
+@appendix Font legalities
+
+@cindex legalisms
+@cindex typeface design protection
+@cindex copyright on fonts
+@cindex font copyrighting
+@cindex patenting of fonts
+
+@cindex Bigelow, Charles
+@cindex Holmes, Kris
+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
+@emph{useful} and @emph{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. This was originally written in the early 1990's; these days,
+the situation is probably different, due to widespread adoption of
+software patents, among other things, but I lack specific information
+to include.
+
+@table @asis
+
+@cindex United States, font design protection law
+@cindex Lucida, protection of
+@cindex Stone, protection of
+@item 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.
+
+@cindex Germany, font design protection law
+@cindex Renner, Paul
+@cindex Futura
+@item 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 Renner (designer of Futura) won a suit against
+the Bauer foundry for arbitrarily discontinuing a portion of their
+royalties.
+
+@cindex England, font design protection law
+@cindex Times Roman, protection of
+@cindex Morison, Stanley
+@item 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 @emph{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 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.
+
+@cindex France, font design protection law
+@cindex romain du roi
+@cindex Grandjean, Philippe
+@item 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.
+
+@end table
+
+@cindex Vienna treaty
+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.
+
+
+@node General index
+@unnumbered General index
+
+@printindex cp
+
+
+@bye