File: groff.info, Node: Font Families, Next: Font Positions, Prev: Selecting Fonts, Up: Using Fonts 5.19.2 Font Families -------------------- 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 *note Groff 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'. -- Request: .fam [family] -- Register: \n[.fam] -- Escape sequence: \Ff -- Escape sequence: \F(fm -- Escape sequence: \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 default(1) (*note Font Families-Footnote-1::) 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 (*note 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[] -- Request: .sty n style -- Register: \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 (*note Groff 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 (*note Environments::). Otherwise, '.sty' interpolates nothing.