To accommodate the wide variety of fonts available, GNU troff
distinguishes font families and font styles. A resolved
font name is the catenation of a font family and a style. Selecting an
abstract style causes GNU troff
to combine it with the default
font family.
You can thus compose a document using abstract styles exclusively for its body or running text, selecting a specific family only for titles or examples, for instance, and change the default family on the command line (recall Options).
Fonts for the devices ps
, pdf
, dvi
, lj4
,
lbp
, and the X11 devices support this mechanism. By default,
GNU troff
uses the Times family with the four styles ‘R’,
‘I’, ‘B’, and ‘BI’.
.fam
[family] ¶\n[.fam]
¶\F
f
¶\F(
fm
¶\F[
family]
¶Set the default font family, used in combination with abstract styles to
construct a resolved font name, to family (one-character
name f, two-character name fm). If no argument is
given, GNU troff
selects the previous font family; if there none,
is it falls back to the device’s default76 or its own (‘T’).
The \F
escape sequence works similarly. In disanalogy to
\f
, ‘\FP’ makes ‘P’ the default family. Use
‘\F[]’ to select the previous default family. The default font
family is available in the read-only string-valued register .fam
;
it is associated with the environment (see Environments).
spam, \" startup defaults are T (Times) R (roman) .fam H \" make Helvetica the default family spam, \" family H + style R = HR .ft B \" family H + style B = HB spam, .ft CR \" Courier roman (default family not changed) spam, .ft \" back to Helvetica bold spam, .fam T \" make Times the default family spam, \" family T + style B = TB .ft AR \" font AR (not a style) baked beans, .ft R \" family T + style R = TR and spam.
\F
doesn’t produce an input token in GNU troff
. As a
consequence, it can be used in requests like mc
(which expects
a single character as an argument) to change the font family on the fly.
.mc \F[P]x\F[]
.sty
n style ¶\n[.sty]
¶Associate an abstract style style with mounting
position n, which must be a non-negative integer. If the
requests cs
, bd
, tkf
, uf
, or fspecial
are applied to an abstract style, they are instead applied to the member
of the current family corresponding to that style.
The default family can be set with the -f option (see Options). The styles
command in the DESC file controls
which font positions (if any) are initially associated with abstract
styles rather than fonts.
Caution: The style argument is not validated. Errors may occur later, when the formatter attempts to construct a resolved font name, or format a character for output.
.nr BarPos \n[.fp] .sty \n[.fp] Bar .fam Foo .ft \n[BarPos] .tm .f=\n[.f] A error→ error: no font family named 'Foo' exists error→ .f=41 error→ error: cannot format glyph: no current font
When an abstract style has been selected, the read-only string-valued register ‘.sty’ interpolates its name; this datum is associated with the environment (see Environments). Otherwise, ‘.sty’ interpolates nothing.