
Font Attributes
The commands to change font attributes are illustrated by the following example:
\fontencoding{T1}
\fontfamily{garamond}
\fontseries{m}
\fontshape{it}
\fontsize{12}{15}
\selectfont
This series of commands set the current font to medium weight italic
garamond 12pt type with 15pt leading in the T1 encoding scheme,
and the Default Font Attributes Encoding Vectors When a user requests a new encoding ENC, LaTeX looks for the file
ENCenc.def, where it expects the encoding vector to be defined.
You can read more about encoding vectors in the LaTeX companion, but
initially you will likely want to use the standard T1 vector;
the file T1enc.def should be a part of any LaTeX2e
distribution, but for your convience we have also provided a link.
Obviously, for a particular character to be accessable in TeX, it must
appear in the encoding vector. The authors of the T1 standard chose
to include a wide variety of symbols and characters which are used
to typeset many languages; they may not, however, have included every
character defined in your particular font: yen and copyright symbols, for
example, are commonly included in postscript fonts, but do not appear in
the T1 encoding. Conversely, the T1 encoding may include characters not
present in your particular font: most postscript fonts, for example, do
not include the ff ligature, which occupies position 27 in the T1 encoding.
The absence from your font of a character defined in T1 is not usually a
problem; as long as you do not use that character, no difficulties will
arise (if you do use a character in your document which is undefined
in your font, it will simply appear as a blank space when viewed or printed).
Conversely, the absence from the T1 encoding of characters which do exist in
your font is a problem, inasmuch as you want to employ these characters.
In that case you must define an encoding which includes all the characters you
want. The encoding defined in LY1enc.def, used
by Y&Y TeX systems, allows access to all the characters in a standard Adobe
roman font.
Mapping schemes To prepare a font family in which the typical LaTeX document
can be typeset, you will need to map at least the medium-normal (m-n),
medium-italic (m-it), and boldextended-normal (bx-n) series-shape
combinations to extant font metrics, in order to set the body text,
emphasized text, and section headings, respectively. Some other fonts
that documents might request include: medium-smallcaps (m-sc) and
medium-slanted (m-sl).
Family style files When setting up such a style file, you might also want to
include declarations of accompanying
\selectfont command causes
LaTeX to look in its mapping scheme for a metric corresponding to these
attributes. It is not possible to give an exhaustive set of the
possible values of each attribute, as new possibilities can be introduced
as new families of fonts are added.
The visual appearence of a document is determined largely by
which font attribute set is used for the body text, and which are
requested by \section{}, \emph{},
\texttt{}, and other such commands.
In LaTeX2e, all such commands set font attributes to the values stored
in certain variables and the user may change the look of a document by
changing the values of these variables. These variables and their
default values are listed below:
variable value activated by
\encodingdefault OT1 \normalfont, \textnormal{}
\familydefault \rmdefault \normalfont, \textnormal{}
\rmdefault cmr \rmfamily, \textrm{}
\ttdefault cmtt \ttfamily, \texttt{}
\sfdefault cmss \sffamily, \textsf{}
\seriesdefault m \normalfont, \textnormal{}
\mddefault m \mdseries, \textmd{}
\bfdefault bx \bfseries, \textbf{}
\shapedefault n \normalfont, \textnormal{}
\updefault n \upshape, \textup{}
\itdefault it \itshape, \textit{}
\scdefault sc \scshape, \textsc{}
\sldefault sl \slshape, \textsl{}
\normalfont command (essentially) executes
the command sequence:
The values of these attribute variables may be changed using
\fontencoding{\encodingdefault}
\fontfamily{\familydefault}
\fontseries{\seriesdefault}
\fontshape{\shapedefault}
\selectfont
\renewcommand, for example
\renewcommand{\familydefault}{\sfdefault}
causes the entire document to be set in the default sans serif font.
Changes to these defaults should be made in the document preamble or in a
package.
An encoding vector is a set of instructions to LaTeX detailing how
particular symbols are to be constructed. For example, the T1
encoding vector file T1enc.def contains the following commands, among
many others:
which declare that a T1 encoding vector exists, that, when
this encoding vector is in effect, the \DeclareFontEncoding{T1}{}{}
\DeclareTextAccent{\'}{T1}{1}
\DeclareTextSymbol{\ae}{T1}{230}
\DeclareTextComposite{\"}{T1}{a}{228}
\'{x} command
should superimpose character 1 (accent acute) over the character x,
that \ae should produce character 230 (the æ ligature),
and that \"a should produce character 228 (the umlaut ä).
Notice that an encoding vector implicitly associates a number with each
character. The correspondence between characters and numbers used by
TeX need not correspond with the correspondence defined by your platform
or in your font; don't worry about that, yet.
Once a the relevent encoding vector is defined, you will want to
set up a scheme which maps font attribute sets to font metrics. For
example, the file T1garamond.fd contains the commands
which declare the existence of the garamond family with T1 encoding,
and say that, when a T1 garamond medium normal font is requested,
LaTeX should use the garrm.tfm metric scaled to the appropriate
size, while the italic-shape font request used in our earlier
example should call up the garit.tfm metric file. When a user requests
an unknown font family FAMILY with encoding ENC, LaTeX look for the
file ENCFAMILY.fd, where it expects to find a mapping scheme defined.
You can read in more detail about font family decleration commands
in the LaTeX Companion.
\DeclareFontFamily{T1}{garamond}{}
\DeclareFontShape{T1}{garamond}{m}{n}{ <-> garrm }{}
\DeclareFontShape{T1}{garamond}{m}{it}{ <-> garit }{}
Most of the time, when you prepare a font family for use with
LaTeX, you will want to prepare a short file containing commands
like
Call it garamond.sty and place it in a directory searched by TeX so
that users can call call it up simply by issuing the
command \renewcommand{\encodingdefault}{T1}
\renewcommand{\rmdefault}{garamond}\usepackage{garamond} in the document prologue,
and have the entire document set in garamond without further ado.
\sffamily and
\ttfamily fonts which are visually compatible with
your \rmdefault font.
Back to the table of contents, or...
...on to the chapter on obtaining TeX font metrics