groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 06/06: [docs]: Continue revising font discussion.


From: G. Branden Robinson
Subject: [groff] 06/06: [docs]: Continue revising font discussion.
Date: Thu, 1 Jun 2023 19:02:29 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit 9e52384a1ec6eb9a08c346155400ceb5e83e861b
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Thu Jun 1 17:22:50 2023 -0500

    [docs]: Continue revising font discussion.
    
    * Drop "font" from term "mounting position" when context is clear.  We
      have no other kinds of mounting position.
    * Add concept index entries for "abstract font style" and its
      permutations.
    * Drop stale concept entries regarding PostScript fonts.
    * Use term "abstract style" more consistently.
    * Say "default family", not "current family", because the family of the
      (currently) selected font can be different from the default family.
    * Clarify that font selection, when not by mounting position or abstract
      style, is of a font _identifier_, since there is a mechanism (the
      three argument form of the `fp` request) for decoupling font
      identifiers from font description file names.
    * Reduce forward references when introductory material in the section
      has prepared the reader for a concept.
    * Move explanation of restrictions on valid font identifiers from `ft`
      request to `fp`.
    * Expand motivation of font family feature.
    * Recast description of `fam` request and `.fam` register.
    * Revise example of family and abstract style usage to explain more in
      comments and exhibit more behavior.
    * Recast description of `sty` request and `.sty` register.  Warn user
      that its second argument is not validation and show how this can go
      wrong.
    * Recast description of `fp` request and `.fp` register.  Fix example
      (it was incorrect).
    * Reduce some repetition.
    * Adjust dead-tree pagination.
    * Mark more nodes as reviewed for correct glyph usage in our Texinfo
      manual.
    * Annotate potential future documentary reforms, and missing validation
      procedures in the formatter.
---
 doc/groff.texi  | 339 ++++++++++++++++++++++++++------------------------------
 man/groff.7.man | 116 +++++++++++--------
 2 files changed, 223 insertions(+), 232 deletions(-)

diff --git a/doc/groff.texi b/doc/groff.texi
index 225269bd2..ca206613e 100644
--- a/doc/groff.texi
+++ b/doc/groff.texi
@@ -10085,9 +10085,6 @@ one.
 @code{.d} registers.
 @endDefreg
 
-@codequotebacktick off
-@codequoteundirected off
-
 
 @c =====================================================================
 
@@ -10130,9 +10127,9 @@ operators and other purposes.
 @cindex file, font description
 @cindex font metrics
 @cindex metrics, font
-@cindex font mounting position
-@cindex mounting position, font
-@cindex position, font mounting
+@cindex mounting position
+@cindex mounting position
+@cindex position, mounting
 Like @acronym{AT&T} @code{troff}, GNU @code{troff} does not itself load
 or manipulate a digital font file;@footnote{Historically, the fonts
 @code{troff}s dealt with were not Free Software or, as with the Graphic
@@ -10143,11 +10140,15 @@ each glyph.@footnote{@xref{Font Description File 
Format}.}  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 @dfn{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 @code{troff} an output device can
-associate a style in the abstract sense with a mounting position.  Thus
-the current family can be combined with a style dynamically, producing a
-@dfn{resolved font name}.
+of available typefaces.
+@cindex abstract font style
+@cindex font style, abstract
+@cindex style, font, abstract
+So that a document need not be strongly coupled to a specific font
+family, in GNU @code{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 @dfn{resolved font
+name}.
 
 Fonts often have trademarked names, and even Free Software fonts can
 require renaming upon modification.  @code{groff} maintains a
@@ -10158,13 +10159,12 @@ monospaced family @samp{C} (``Courier'').  Historical 
inertia has driven
 names, as with @samp{TR}, @samp{TI}, @samp{TB}, @samp{TBI}, and a
 special font @samp{S}.
 
-Each typesetting output device configures a default
-family;@footnote{@xref{DESC File Format}.} for those provided by
-@code{groff}, this is always @samp{T}.  Conventionally, the styles are
-arranged in the first four mounting positions in the order shown above.
-The default mounting position, and therefore style, is always @samp{1}
-(@samp{R}).  By issuing appropriate formatter instructions, you can
-override these defaults before your document writes its first glyph.
+The default family used with abstract styles can be changed at any time;
+initially, it is @samp{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 @samp{1} (@samp{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
@@ -10192,8 +10192,8 @@ attributes).
 @cindex font, selection
 
 We use @dfn{font} to refer to any of several means of identifying a
-font: by mounting position (@samp{3}), by style (@samp{B}), or by its
-font description file name (@samp{TB}).
+font: by mounting position (@samp{3}), by abstract style (@samp{B}), or
+by its identifier (@samp{TB}).
 
 @DefreqList {ft, [@Var{font}]}
 @DefescItemx {\\f, , f, }
@@ -10215,12 +10215,11 @@ The @code{ft} request selects the typeface 
@var{font}.  If the argument
 is absent or @samp{P}, it selects the previously chosen font.  If
 @var{font} is a non-negative integer, it is interpreted as mounting
 position; the font mounted there is selected.  If that position refers
-to a style, as set with the @code{sty} request or with the @code{styles}
-command in the output device's @file{DESC} file, it is combined with the
-current family (see @code{fam} and @code{\F} below) to make a resolved
-font name.  If the mounting position is not a style and no font is
-mounted there, GNU @code{troff} emits a warning in category @samp{font}
-and ignores the request.
+to an abstract style, it is combined with the default family (see
+@code{fam} and @code{\F} below) to make a resolved font name.  If the
+mounting position is not a style and no font is mounted there, GNU
+@code{troff} emits a warning in category @samp{font} and ignores the
+request.
 
 If @var{font} matches a style name, it is combined with the current
 family to make a resolved font name.  Otherwise, @var{font} is assumed
@@ -10229,21 +10228,17 @@ to already be a resolved font name.
 @cindex automatic font mounting
 @cindex font mounting, automatic
 @cindex mounting, font, automatic
-The resolved font name is subject to translation (see request
-@code{ftr} below).  Next, the (possibly translated) font name's mounting
-position is looked up; if not mounted, @var{font} is sought on the file
-system as a font description file and, if located, automatically mounted
-at the next available position (see register @code{.fp} below).  If a
-font description file for the resolved font name is not found, GNU
+The resolved font name is subject to translation (see request @code{ftr}
+below).  Next, the (possibly translated) font name's mounting position
+is looked up; if not mounted, @var{font} is sought on the file system as
+a font description file and, if located, automatically mounted at the
+next available position (see register @code{.fp} below).  If the font
+was mounted using an identifier different from its font description file
+name (see request @code{fp} below), that file name is then looked up.
+If a font description file for the resolved font name is not found, GNU
 @code{troff} emits a warning in category @samp{font} and ignores the
 request.
 
-It is not possible to switch to a font with the name @samp{DESC}.
-@c XXX: TODO: Catch this earlier and throw an error for it.
-@c XXX: This identifier could be used as a style name, but no one's
-@c exercised this freedom in 30+ years, and we should consider
-@c prohibiting it.  --GBR
-
 The @code{\f} escape sequence is similar, using one-character name (or
 mounting position) @var{f}, two-character name @var{fn}, or a name
 @var{font} of arbitrary length.
@@ -10301,6 +10296,8 @@ named@tie{}@var{f} is referred to in a @code{\f} escape 
sequence, in the
 @code{fspecial}, @code{fp}, or @code{sty} requests, font@tie{}@var{g} is
 used.  If @var{g} is missing or equal to@tie{}@var{f} the translation is
 undone.
+@c XXX: Do font translations work on mounting positions?  Abstract
+@c styles?
 
 Font translations cannot be chained.
 
@@ -10312,6 +10309,7 @@ Font translations cannot be chained.
 @endExample
 @endDefreq
 
+@c TODO: Move `fzoom` to "Artificial Fonts"?
 @DefreqList {fzoom, f [@Var{zoom}]}
 @DefregListEndx {.zoom}
 @cindex magnification of a font (@code{fzoom})
@@ -10358,21 +10356,21 @@ there is no magnification.
 @cindex font styles
 @cindex styles, font
 
-Due to the variety of fonts available, @code{gtroff} has added the
-concept of @dfn{font families} and @dfn{font styles}.  The fonts are
-specified as the concatenation of the font family and style.  Specifying
-a font without the family part causes @code{gtroff} to use that style of
-the current family.
+To accommodate the wide variety of fonts available, GNU @code{troff}
+distinguishes @dfn{font families} and @dfn{font styles}.  A resolved
+font name is the catenation of a font family and a style.  Selecting an
+abstract style causes GNU @code{troff} to combine it with the default
+font family.
 
-@cindex PostScript fonts
-@cindex fonts, PostScript
-Currently, fonts for the devices @option{-Tps}, @option{-Tpdf},
-@option{-Tdvi}, @option{-Tlj4}, @option{-Tlbp}, and the X11 fonts are
-set up to this mechanism.  By default, @code{gtroff} uses the Times
-family with the four styles @samp{R}, @samp{I}, @samp{B}, and @samp{BI}.
+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 @ref{Groff Options}).
 
-This way, it is possible to use the basic four fonts and to select a
-different font family on the command line (@pxref{Groff Options}).
+Fonts for the devices @code{ps}, @code{pdf}, @code{dvi}, @code{lj4},
+@code{lbp}, and the X11 devices support this mechanism.  By default,
+GNU @code{troff} uses the Times family with the four styles @samp{R},
+@samp{I}, @samp{B}, and @samp{BI}.
 
 @DefreqList {fam, [@Var{family}]}
 @DefregItemx {.fam}
@@ -10381,27 +10379,34 @@ different font family on the command line 
(@pxref{Groff Options}).
 @DefescListEnd {\\F, [, family, ]}
 @cindex changing font family (@code{fam}, @code{\F})
 @cindex font family, changing (@code{fam}, @code{\F})
-Set the font family to @var{family} (one-character name@tie{}@var{f},
-two-character name @var{fm}).  If no argument is given, switch to the
-previous font family, or the default family if there is none.  Use
-@samp{\F[]} to do this with an escape sequence; @samp{\FP} selects font
-family @samp{P} instead.  The initial font family is @samp{T} (Times),
-but can be overridden by the output device description file---@xref{DESC
-File Format}.  The current font family is available in the read-only
-string-valued register @code{.fam}; it is associated with the
-environment (@pxref{Environments}).
+Set the default font family, used in combination with abstract styles to
+construct a resolved font name, to @var{family} (one-character
+name@tie{}@var{f}, two-character name @var{fm}).  If no argument is
+given, GNU @code{troff} selects the previous font family; if there none,
+is it falls back to the device's default@footnote{@xref{DESC File
+Format}.} or its own (@samp{T}).
+
+The @code{\F} escape sequence works similarly.  In disanalogy to
+@code{\f}, @samp{\FP} makes @samp{P} the default family.  Use
+@samp{\F[]} to select the previous default family.  The default font
+family is available in the read-only string-valued register @code{.fam};
+it is associated with the environment (@pxref{Environments}).
 
 @Example
+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,
-.fam H    \" helvetica family
-spam,     \" used font is family H + style R = HR
-.ft B     \" family H + style B = font HB
+.ft       \" back to Helvetica bold
 spam,
-.fam T    \" times family
-spam,     \" used font is family T + style B = TB
+.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 = font TR
+.ft R     \" family T + style R = TR
 and spam.
 @endExample
 
@@ -10414,133 +10419,125 @@ a single character as an argument) to change the 
font family on the fly.
 @endExample
 @endDefreq
 
+@need 1000
 @DefreqList {sty, n style}
 @DefregListEndx {.sty}
-@cindex changing font style (@code{sty})
-@cindex font style, changing (@code{sty})
+@cindex setting up an abstract font style (@code{sty})
+@cindex abstract font style, setting up (@code{sty})
+@cindex font style, abstract, setting up (@code{sty})
+@cindex style, font, abstract, setting up (@code{sty})
 @cindex @code{cs} request, and font styles
 @cindex @code{bd} request, and font styles
 @cindex @code{tkf} request, and font styles
 @cindex @code{uf} request, and font styles
 @cindex @code{fspecial} request, and font styles
-Associate @var{style} with font position@tie{}@var{n}.  A font position
-can be associated either with a font or with a style.  The current font
-is the index of a font position and so is also either a font or a style.
-If it is a style, the font that is actually used is the font whose name
-is the concatenation of the name of the current family and the name of
-the current style.  For example, if the current font is@tie{}1 and font
-position@tie{}1 is associated with style @samp{R} and the current font
-family is @samp{T}, then font @samp{TR} is used.  If the current font is
-not a style, then the current family is ignored.  If the requests
-@code{cs}, @code{bd}, @code{tkf}, @code{uf}, or @code{fspecial} are
-applied to a style, they are instead applied to the member of the
-current family corresponding to that style.
-
-@var{n}@tie{}must be a non-negative integer.
+Associate an abstract style @var{style} with mounting
+position@tie{}@var{n}, which must be a non-negative integer.  If the
+requests @code{cs}, @code{bd}, @code{tkf}, @code{uf}, or @code{fspecial}
+are applied to an abstract style, they are instead applied to the member
+of the current family corresponding to that style.
 
 @pindex DESC
 @kindex styles
 The default family can be set with the @option{-f} option (@pxref{Groff
 Options}).  The @code{styles} command in the @file{DESC} file controls
-which font positions (if any) are initially associated with styles
-rather than fonts.  For example, the default setting for PostScript
-fonts
-
-@Example
-styles R I B BI
-@endExample
-
-@noindent
-is equivalent to
-
-@Example
-.sty 1 R
-.sty 2 I
-.sty 3 B
-.sty 4 BI
-@endExample
+which font positions (if any) are initially associated with abstract
+styles rather than fonts.
 
-@code{fam} and @code{\F} always check whether the current font position
-is valid; this can give surprising results if the current font position
-is associated with a style.
-
-In the following example, we want to access the PostScript font
-@code{FooBar} from the font family @code{Foo}:
+@strong{Caution:@:} The @var{style} argument is not validated.
+@c XXX: This would be a really good thing to fix.
+Errors may occur later, when the formatter attempts to construct a
+resolved font name, or format a character for output.
 
 @Example
+.nr BarPos \n[.fp]
 .sty \n[.fp] Bar
 .fam Foo
-    @error{} warning: can't find font 'FooR'
-@endExample
-
-@noindent
-The default font position at startup is@tie{}1; for the PostScript
-device, this is associated with style @samp{R}, so @code{gtroff} tries
-to open @code{FooR}.
-
-A solution to this problem is to use a dummy font like the following:
-
-@Example
-.fp 0 dummy TR    \" set up dummy font at position 0
-.sty \n[.fp] Bar  \" register style `Bar'
-.ft 0             \" switch to font at position 0
-.fam Foo          \" activate family `Foo'
-.ft Bar           \" switch to font `FooBar'
+.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
 @endExample
 
-@xref{Font Positions}.
-
-The style name of the selected font is available in the read-only
-string-valued register @samp{.sty}; it is associated with the
-environment (@pxref{Environments}).  If the current font is unstyled,
-@samp{.sty} interpolates nothing.
+When an abstract style has been selected, the read-only string-valued
+register @samp{.sty} interpolates its name; this datum is associated
+with the environment (@pxref{Environments}).  Otherwise, @samp{.sty}
+interpolates nothing.
 @endDefreq
 
 @c ---------------------------------------------------------------------
 
-@codequotebacktick on
-@codequoteundirected on
-
 @node Font Positions, Using Symbols, Font Families, Using Fonts
 @subsection Font Positions
 @cindex font positions
 @cindex positions, font
 
-To support typeface indirection through styles, and for compatibility
-with @acronym{AT&T} @code{troff}, the formatter maintains a list of font
-@dfn{positions} at which fonts required by a document are @dfn{mounted}.
-An output device's description file @file{DESC} typically configures a
-set of pre-mounted fonts; see @ref{Device and Font Description Files}.
-A font need not be explicitly mounted before it is selected; GNU
-@code{troff} will search @env{GROFF_FONT_PATH} for it by name and mount
-it at the first free mounting position on demand.
+To support typeface indirection through abstract styles, and for
+compatibility with @acronym{AT&T} @code{troff}, the formatter maintains
+a list of font @dfn{positions} at which fonts required by a document are
+@dfn{mounted}.  An output device's description file @file{DESC}
+typically configures a set of pre-mounted fonts; see @ref{Device and
+Font Description Files}.  A font need not be explicitly mounted before
+it is selected; GNU @code{troff} will search @env{GROFF_FONT_PATH} for
+it by name and mount it at the first free mounting position on demand.
 
-@DefreqList {fp, pos font [@Var{external-name}]}
+@need 500
+@DefreqList {fp, pos id [@Var{font-description-file-name}]}
 @DefregItemx {.f}
 @DefregListEndx {.fp}
-@cindex mounting font (@code{fp})
+@cindex mounting a font (@code{fp})
 @cindex font, mounting (@code{fp})
-Mount the font named @var{font} at position @var{pos}, a non-negative
-integer.  This numeric index can then be referred to with font selection
-instructions.  When the formatter starts up, it reads the output
+Mount a font under the name @var{id} at mounting position @var{pos}, a
+non-negative integer.  When the formatter starts up, it reads the output
 device's description to mount an initial set of faces, and selects font
 position@tie{}1.  Position@tie{}0 is unused by default.  Unless the
-@var{external-name} argument is given, the name @var{font} should be
-that of a font description file stored in a directory corresponding to
-the selected output device.
+@var{font-description-file-name} argument is given, @var{id} should be
+the name of a font description file stored in a directory corresponding
+to the selected output device.  GNU @code{troff} does not traverse
+directories to locate the font description file.
+
+@c The third argument was a late revision to device-independent troff.
+@c It wasn't in the "Unix 4.0" version of CSTR #54 (January 1981), which
+@c featured Kernighan's device-independent rewrite, but appeared by the
+@c time of its 1992 revision.
+@cindex font aliasing with third argument to @code{fp} request
+@cindex aliasing fonts with third argument to @code{fp} request
+The optional third argument enables font names to be aliased, which can
+be necessary in compatibility mode since AT&T @code{troff} syntax
+affords no means of identifying fonts with names longer than two
+characters, like @samp{TBI} or @samp{ZCMI}, in a font selection escape
+sequence.  @xref{Compatibility Mode}.  You can also alias fonts on
+mounting for convenience or abstraction.  (See below regarding the
+@code{.fp} register.)
+
+@Example
+.fp \n[.fp] SC ZCMI
+Send a \f(SChand-written\fP thank-you note.
+.fp \n[.fp] Emph TI
+.fp \n[.fp] Strong TB
+Are \f[Emph]these names\f[] \f[Strong]comfortable\f[]?
+@endExample
+
+@samp{DESC} and non-negative integers are not usable as font
+identifiers.
+@c XXX: TODO: Catch the DESC case earlier and throw an error for it.
+@c XXX: This identifier could be used as a style name, but no one's
+@c exercised this freedom in 30+ years, and we should consider
+@c prohibiting it.  --GBR
 
 @cindex font position register (@code{.f})
-The position of the currently selected font (or style) is available in
-the read-only register @samp{.f}.  It is associated with the environment
-(@pxref{Environments}).
+The position of the currently selected font (or abstract style) is
+available in the read-only register @samp{.f}.  It is associated with
+the environment (@pxref{Environments}).
 
 The value of @code{.f} can be copied to another register to save the
-current font or style for later recall.
+selected font for later recall.
 
 @Example
 .nr saved-font \n[.f]
-.ft B
-@r{@dots{}} text text text @r{@dots{}}
+@r{@dots{} @i{text involving many font changes} @dots{}}
 .ft \n[saved-font]
 @endExample
 
@@ -10549,39 +10546,15 @@ The index of the next (non-zero) free font position 
is available in the
 read-only register @samp{.fp}.
 @cindex @file{DESC} file, and font mounting
 Fonts not listed in the @file{DESC} file are automatically mounted at
-position @samp{\n[.fp]} when selected.  When mounting a font at a
-position explicitly with the @code{fp} request, this same practice
-should be followed, although GNU @code{troff} does not enforce this
-strictly.
-
-If there is no third argument, the font description is sought in the
-file system under the name @var{font}.
-
-@c The third argument was a late revision to device-independent troff.
-@c It wasn't in the "Unix 4.0" version of CSTR #54 (January 1981), which
-@c featured Kernighan's device-independent rewrite, but appeared by the
-@c time of its 1992 revision.
-The optional third argument @var{external-name} is the name of a font
-description file in the operating environment.  GNU @code{troff} refuses
-to traverse directories to locate the font description.  The second
-argument @var{font} is then the internal name of the font, which
-identifies it to GNU @code{troff} once it has been mounted.  This
-feature enables font names to be aliased, which can be necessary in
-compatibility mode since AT&T @code{troff} syntax affords no means of
-identifying fonts with names longer than two characters, like @samp{TBI}
-or @samp{ZCMI}, in a font selection escape sequence.
-@xref{Compatibility Mode}.  You can also alias fonts on mounting for
-convenience or abstraction.
-
-@Example
-.ft SC ZCMI \" "script" font
-Send a \f(SChand-written\fP thank-you note.
-.ft Emph I
-.ft Strong B
-Are \f[Emph]these names\f[] \f[Strong]comfortable\f[]?
-@endExample
+position @samp{\n[.fp]} when selected with the @code{ft} request or
+@code{\f} escape sequence.  When mounting a font at a position
+explicitly with the @code{fp} request, this same practice should be
+followed, although GNU @code{troff} does not enforce this strictly.
 @endDefreq
 
+@codequotebacktick off
+@codequoteundirected off
+
 @c ---------------------------------------------------------------------
 
 @node Using Symbols, Character Classes, Font Positions, Using Fonts
diff --git a/man/groff.7.man b/man/groff.7.man
index b55dbfa92..fd4cc57a4 100644
--- a/man/groff.7.man
+++ b/man/groff.7.man
@@ -3059,11 +3059,11 @@ Exit with successful status.
 .
 .TPx
 .REQ .fam
-Return to previous font family.
+Set default font family to previous value.
 .
 .TPx
 .REQ .fam "name"
-Set the current font family to
+Set default font family to
 .IR name .
 .
 .TPx
@@ -3116,20 +3116,20 @@ Sets
 Flush output buffer.
 .
 .TPx
-.REQ .fp "n font"
-Mount
-.I font
-at position
-.IR n .
+.REQ .fp "pos id"
+Mount font with font description file name
+.I id
+at non-negative
+.RI position\~ n .
 .
 .TPx
-.REQ .fp "n internal external"
-Mount font with description file
-.I external
-under the name
-.I internal
-at position
-.IR n .
+.REQ .fp "pos id font-description-file-name"
+Mount font with
+.I font-description-file-name
+as name
+.I id
+at non-negative
+.RI position\~ n .
 .
 .TPx
 .REQ .fschar "f c anything"
@@ -3158,7 +3158,10 @@ are special.
 .
 .TPx
 .REQ .ft
-Select previous style or font;
+.TQ
+.REQ ".ft P"
+Select previous font mounting position
+(abstract style or font);
 same as
 .esc f[]
 or
@@ -3166,14 +3169,20 @@ or
 .
 .TPx
 .REQ .ft "font"
-Select style,
-font name,
-or mounting position
-.IR font ;
+Select typeface
+.I font,
+which can be a
+mounting position,
+abstract style,
+or font name;
 same as
 .esc[] f font
 escape sequence.
 .
+.I font
+cannot be
+.BR P .
+.
 .TPx
 .REQ .ftr "font1 font2"
 Translate
@@ -4129,7 +4138,7 @@ with its uppercase version.
 .
 .TPx
 .REQ .sty "n style"
-Associate
+Associate abstract
 .I style
 with font position
 .IR n .
@@ -4839,57 +4848,67 @@ As
 .esc e ,
 but not interpreted in copy mode.
 .
+.TP
+.ESC fP
+Select previous font mounting position
+(abstract style or font);
+same as
+.RB \[lq] .ft \[rq]
+or
+.RB \[lq] .ft\~P \[rq].
 .
 .TP
 .ESC f F
-Change to font or style with one-character name or one-digit
+Select font mounting position,
+abstract style,
+or font with one-character name or one-digit
 .RI position\~ F .
 .
-.
-.TP
-.ESC fP
-Switch to previous font or style.
-.
+.IR F \~cannot
+be
+.BR P .
 .
 .TP
 .ESC f( ft
-Change to font with two-character name or two-digit
+Select font mounting position,
+abstract style,
+or font with two-character name or two-digit
 .RI position\~ ft .
 .
-.
 .TP
 .ESC[] f font
-Change to font with arbitrarily long name or position
+Select font mounting position,
+abstract style,
+or font with arbitrarily long name or position
 .IR font .
 .
+.I font
+cannot be
+.BR P .
 .
 .TP
 .ESC[] f ""
-Switch to previous font or style.
-.
+Select previous font mounting position
+(abstract style or font).
 .
 .TP
 .ESC F f
-Change to font family with one-character
+Set default font family to that with one-character
 .RI name\~ f .
 .
-.
 .TP
 .ESC F( fm
-Change to font family with two-character
+Set default font family to that with two-character
 .RI name\~ fm .
 .
-.
 .TP
 .ESC[] F fam
-Change to font family with arbitrarily long name
+Set default font family to that with arbitrarily long name
 .IR fam .
 .
-.
 .TP
 .ESC[] F ""
-Switch to previous font family.
-.
+Set default font family to previous value.
 .
 .TP
 .ESC g r
@@ -5689,7 +5708,7 @@ see
 .
 .TP
 .REG .fam
-Name of font family (string-valued).
+Name of default font family (string-valued).
 .
 .TP
 .REG .fn
@@ -5951,7 +5970,7 @@ of the selected font.
 .
 .TP
 .REG .sty
-Font style (string-valued);
+Selected abstract style (string-valued);
 see
 .request .ft
 and
@@ -6381,7 +6400,7 @@ in GNU
 an output device can associate a style in the abstract sense with a
 mounting position.
 .
-Thus the current family can be combined with a style dynamically,
+Thus the default family can be combined with a style dynamically,
 producing a
 .I "resolved font name."
 .
@@ -6416,14 +6435,13 @@ and a special font
 .
 .
 .P
-Each typesetting output device configures a default family;
-for those provided by
-.I groff,
-this is always
-.BR T .
+The default family used with abstract styles can be changed at any time;
+initially,
+it
+.RB is\~ T .
 .
-Conventionally,
-the styles are arranged in the first four mounting positions in the
+Typically,
+abstract styles are arranged in the first four mounting positions in the
 order shown above.
 .
 The default mounting position,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]