Selecting Fonts (The GNU Troff Manual)

#### 5.19.1 Selecting Fonts

We use font to refer to any of several means of identifying a font: by mounting position (‘`3`’), by abstract style (‘`B`’), or by its identifier (‘`TB`’).

Request: `.ft` [font] ¶
Escape sequence: `\f`f`` ¶
Escape sequence: `\f(`fn`` ¶
Escape sequence: `\f[`font`]` ¶
Register: `\n[.fn]` ¶

  The `ft` request selects the typeface font. If the argument is absent or ‘`P`’, it selects the previously chosen font. If font is a non-negative integer, it is interpreted as mounting position; the font mounted there is selected. If that position refers to an abstract style, it is combined with the default family (see `fam` and `\F` below) to make a resolved font name. If the mounting position is not a style and no font is mounted there, GNU `troff` emits a warning in category ‘`font`’ and ignores the request.

  If font matches a style name, it is combined with the current family to make a resolved font name. Otherwise, font is assumed to already be a resolved font name.

  The resolved font name is subject to translation (see request `ftr` below). Next, the (possibly translated) font name’s mounting position is looked up; if not mounted, font is sought on the file system as a font description file and, if located, automatically mounted at the next available position (see register `.fp` below). If the font was mounted using an identifier different from its font description file name (see request `fp` below), that file name is then looked up. If a font description file for the resolved font name is not found, GNU `troff` emits a warning in category ‘`font`’ and ignores the request.

  The `\f` escape sequence is similar, using one-character name (or mounting position) f, two-character name fn, or a name font of arbitrary length. ‘`\f[]`’ selects the previous font. The syntax form ‘`\fP`’ is supported for backward compatibility, and ‘`\f[P]`’ for consistency.

      eggs, bacon,
      .ft I
      spam,
      .ft
      and sausage.
      .br
      eggs, bacon, \fIspam,\fP and sausage.
          ⇒ eggs, bacon, spam, and sausage
          ⇒ eggs, bacon, spam, and sausage

  The current and previously selected fonts are properties of the environment (see Environments).

  The read-only string-valued register `.fn` contains the resolved font name of the selected font.

  `\f` doesn’t produce an input token in GNU `troff`; it thus can be used in requests that expect a single-character argument. We can assign a font to a margin character as follows (see Miscellaneous).

      .mc \f[I]x\f[]

Request: `.ftr` f [g] ¶

  Translate font f to font g. Whenever a font named f is referred to in a `\f` escape sequence, in the `F` and `S` conditional operators, or in the `ft`, `ul`, `bd`, `cs`, `tkf`, `special`, `fspecial`, `fp`, or `sty` requests, font g is used. If g is missing or equal to f the translation is undone.

  Font translations cannot be chained.

      .ftr XXX TR
      .ftr XXX YYY
      .ft XXX
          error→ warning: can't find font 'XXX'

Request: `.fzoom` f [zoom] ¶
Register: `\n[.zoom]` ¶

  Set magnification of font f to factor zoom, which must be a non-negative integer multiple of 1/1000th. This request is useful to adjust the optical size of a font in relation to the others. In the example below, font `CR` is magnified by 10% (the zoom factor is thus 1.1).

      .fam P
      .fzoom CR 1100
      .ps 12
      Palatino and \f[CR]Courier\f[]

  A missing or zero value of zoom is the same as a value of 1000, which means no magnification. f must be a resolved font name, not an abstract style.

  The magnification of a font is completely transparent to GNU `troff`; a change of the zoom factor doesn’t cause any effect except that the dimensions of glyphs, (word) spaces, kerns, etc., of the affected font are adjusted accordingly.

  The zoom factor of the current font is available in the read-only register ‘`.zoom`’, in multiples of 1/1000th. It returns zero if there is no magnification.