In digital typography, a font is a collection of characters in a
specific typeface that a device can render as glyphs at a desired
size.72 A roff
formatter can change typefaces at any
point in the text. The basic faces are a set of styles combining
upright and slanted shapes with normal and heavy stroke weights:
‘R’, ‘I’, ‘B’, and ‘BI’—these stand for
roman, italic, bold, and
bold-italic. For linguistic text, GNU troff
groups
typefaces into families containing each of these
styles.73 A text font is thus often a family
combined with a style, but it need not be: consider the ps
and
pdf
devices’ ZCMI
(Zapf Chancery Medium italic)—often,
no other style of Zapf Chancery Medium is provided. On typesetting
devices, at least one special font is available, comprising
unstyled glyphs for mathematical operators and other purposes.
Like AT&T troff
, GNU troff
does not itself load
or manipulate a digital font file;74 instead it
works with a font description file that characterizes it,
including its glyph repertoire and the metrics (dimensions) of
each glyph.75 This
information permits the formatter to accurately place glyphs with
respect to each other. Before using a font description, the formatter
associates it with a mounting position, a place in an ordered list
of available typefaces.
So that a document need not be strongly coupled to a specific font
family, in GNU troff
an output device can associate a style in
the abstract sense with a mounting position. Thus the default family
can be combined with a style dynamically, producing a resolved font
name.
Fonts often have trademarked names, and even Free Software fonts can
require renaming upon modification. groff
maintains a
convention that a device’s serif font family is given the name ‘T’
(“Times”), its sans-serif family ‘H’ (“Helvetica”), and its
monospaced family ‘C’ (“Courier”). Historical inertia has driven
groff
’s font identifiers to short uppercase abbreviations of font
names, as with ‘TR’, ‘TI’, ‘TB’, ‘TBI’, and a
special font ‘S’.
The default family used with abstract styles can be changed at any time; initially, it is ‘T’. Typically, abstract styles are arranged in the first four mounting positions in the order shown above. The default mounting position, and therefore style, is always ‘1’ (‘R’). By issuing appropriate formatter instructions, you can override these defaults before your document writes its first glyph.
Terminal output devices cannot change font families and lack special fonts. They support style changes by overstriking, or by altering ISO 6429/ECMA-48 graphic renditions (character cell attributes).