summaryrefslogtreecommitdiff
path: root/doc/groff.texinfo
diff options
context:
space:
mode:
Diffstat (limited to 'doc/groff.texinfo')
-rw-r--r--doc/groff.texinfo352
1 files changed, 178 insertions, 174 deletions
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 26f5b310..69a3a5da 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -7827,12 +7827,6 @@ written in a roman or an italic font, yielding two different glyphs);
sometimes more than one character maps to a single glyph (this is a
@dfn{ligature} -- the most common is `fi').
-@c XXX
-
-Please note that currently the distinction between glyphs and
-characters in this reference is not clearly carried out. This will be
-improved eventually in the next revision.
-
@cindex symbol
@cindex special fonts
@kindex fonts
@@ -8045,8 +8039,8 @@ property).
@end table
@endDefreq
-@DefreqList {char, c [@Var{string}]}
-@DefreqListEnd {fchar, c [@Var{string}]}
+@DefreqList {char, g [@Var{string}]}
+@DefreqListEnd {fchar, g [@Var{string}]}
@cindex defining character (@code{char})
@cindex character, defining (@code{char})
@cindex creating new characters (@code{char})
@@ -8054,19 +8048,20 @@ property).
@cindex symbol, defining (@code{char})
@cindex defining glyph (@code{char})
@cindex glyph, defining (@code{char})
-@cindex escape character, while defining character
-@cindex character, escape, while defining character
-@cindex @code{tr} request, and character definitions
-@cindex @code{cp} request, and character definitions
-@cindex @code{rc} request, and character definitions
-@cindex @code{lc} request, and character definitions
-@cindex @code{\l}, and character definitions
-@cindex @code{\L}, and character definitions
-@cindex @code{\&}, and character definitions
-@cindex @code{\e}, and character definitions
-@cindex @code{hcode} request, and character definitions
-Define a new glyph@w{ }@var{c} to be @var{string} (which can be
-empty). Every time glyph@w{ }@var{c} needs to be printed,
+@cindex escape character, while defining glyph
+@cindex character, escape, while defining glyph
+@cindex @code{tr} request, and glyph definitions
+@cindex @code{cp} request, and glyph definitions
+@cindex @code{rc} request, and glyph definitions
+@cindex @code{lc} request, and glyph definitions
+@cindex @code{\l}, and glyph definitions
+@cindex @code{\L}, and glyph definitions
+@cindex @code{\&}, and glyph definitions
+@cindex @code{\e}, and glyph definitions
+@cindex @code{hcode} request, and glyph definitions
+Define a new glyph@w{ }@var{g} to be @var{string} (which can be
+empty).@footnote{@code{char} is a misnomer since an output glyph is
+defined.} Every time glyph@w{ }@var{g} needs to be printed,
@var{string} is processed in a temporary environment and the result is
wrapped up into a single object. Compatibility mode is turned off and
the escape character is set to @samp{\} while @var{string} is being
@@ -8083,9 +8078,9 @@ using the @code{\l} and @code{\L} escape sequences; words containing
the glyph can be hyphenated correctly if the @code{hcode} request
is used to give the glyph's symbol a hyphenation code.
-There is a special anti-recursion
-feature: Use of symbol within the symbol's definition is handled
-like normal characters and symbols not defined with @code{char}.
+There is a special anti-recursion feature: Use of @code{g} within
+the glyph's definition is handled like normal characters and symbols
+not defined with @code{char}.
Note that the @code{tr} and @code{trin} requests take precedence if
@code{char} accesses the same symbol.
@@ -8103,15 +8098,15 @@ X
@endExample
The @code{fchar} request defines a fallback glyph:
-@code{gtroff} only checks for characters defined with @code{fchar}
+@code{gtroff} only checks for glyphs defined with @code{fchar}
if it cannot find the glyph in the current font.
@code{gtroff} carries out this test before checking special fonts.
@endDefreq
@Defreq {rchar, c1 c2 @dots{}}
-@cindex removing character definition (@code{rchar})
-@cindex character, removing definition (@code{rchar})
-Remove the definitions of characters @var{c1}, @var{c2},@w{
+@cindex removing glyph definition (@code{rchar})
+@cindex glyph, removing definition (@code{rchar})
+Remove the definitions of glyphs @var{c1}, @var{c2},@w{
}@enddots{} This undoes the effect of a @code{char} or @code{fchar}
request.
@@ -8128,7 +8123,7 @@ It is possible to omit the whitespace between arguments.
@cindex fonts, special
Special fonts are those that @code{gtroff} searches
-when it cannot find the requested character in the current font.
+when it cannot find the requested glyph in the current font.
The Symbol font is usually a special font.
@code{gtroff} provides the following two requests to add more special
@@ -8273,7 +8268,7 @@ a non-negative font position or the name of a font.
@DefregListEnd {.b}
@cindex imitating bold face (@code{bd})
@cindex bold face, imitating (@code{bd})
-Artificially create a bold font by printing each character twice,
+Artificially create a bold font by printing each glyph twice,
slightly offset.
Two syntax forms are available.
@@ -8282,7 +8277,7 @@ Two syntax forms are available.
@item
Imitate a bold font unconditionally. The first argument specifies the
font to embolden, and the second is the number of basic units, minus
-one, by which the two characters is offset. If the second argument is
+one, by which the two glyphs are offset. If the second argument is
missing, emboldening is turned off.
@var{font} can be either a non-negative font position or the name of a
@@ -8309,16 +8304,16 @@ command in font files or with the @code{fspecial} request).
@endDefreq
@Defreq {cs, font [@Var{width} [@Var{em-size}]]}
-@cindex constant character space mode (@code{cs})
-@cindex mode for constant character space (@code{cs})
-@cindex character, constant space
-@cindex @code{ps} request, and constant character space mode
-Switch to and from constant character space mode. If activated, the
-width of every character is @math{@var{width}/36} ems. The em size is
+@cindex constant glyph space mode (@code{cs})
+@cindex mode for constant glyph space (@code{cs})
+@cindex glyph, constant space
+@cindex @code{ps} request, and constant glyph space mode
+Switch to and from @dfn{constant glyph space mode}. If activated, the
+width of every glyph is @math{@var{width}/36} ems. The em size is
given absolutely by @var{em-size}; if this argument is missing, the em
value is taken from the current font size (as set with the @code{ps}
request) when the font is effectively in use. Without second and
-third argument, constant character space mode is deactivated.
+third argument, constant glyph space mode is deactivated.
Default scaling indicator for @var{em-size} is @samp{z}; @var{width} is
an integer.
@@ -8331,11 +8326,11 @@ an integer.
@cindex ligatures and kerning
@cindex kerning and ligatures
-Ligatures are groups of characters that are run together. For
-example, the letters `f' and `i' can form a ligature `fi' as in the
-word `file'. This produces a cleaner look (albeit subtle) to the
-printed output. Usually, ligatures are not available in fonts for TTY
-output devices.
+Ligatures are groups of characters that are run together, i.e, producing
+a single glyph. For example, the letters `f' and `i' can form a
+ligature `fi' as in the word `file'. This produces a cleaner look
+(albeit subtle) to the printed output. Usually, ligatures are not
+available in fonts for TTY output devices.
Most @sc{PostScript} fonts support the fi and fl ligatures. The C/A/T
typesetter that was the target of @acronym{AT&T} @code{troff} also
@@ -8359,13 +8354,13 @@ ffl).
@endDefreq
@dfn{Pairwise kerning} is another subtle typesetting mechanism that
-modifies the distance between a character pair to improve readability.
+modifies the distance between a glyph pair to improve readability.
In most cases (but not always) the distance is decreased.
@ifnotinfo
For example, compare the combination of the letters `V' and `A'. With
kerning, `VA' is printed. Without kerning it appears as `V@w{}A'.
@end ifnotinfo
-Typewriter-like fonts and fonts for terminals where all characters
+Typewriter-like fonts and fonts for terminals where all glyphs
have the same width don't use kerning.
@DefreqList {kern, [@Var{flag}]}
@@ -8382,7 +8377,7 @@ register @code{.kern} is set to@w{ }1 if pairwise kerning is enabled,
@cindex character, zero width space (@code{\&})
@cindex space character, zero width (@code{\&})
If the font description file contains pairwise kerning information,
-characters from that font are kerned. Kerning between two characters
+glyphs from that font are kerned. Kerning between two glyphs
can be inhibited by placing @code{\&} between them: @samp{V\&A}.
@xref{Font File Format}.
@@ -8390,7 +8385,7 @@ can be inhibited by placing @code{\&} between them: @samp{V\&A}.
@cindex track kerning
@cindex kerning, track
-@dfn{Track kerning} expands or reduces the space between characters.
+@dfn{Track kerning} expands or reduces the space between glyphs.
This can be handy, for example, if you need to squeeze a long word
onto a single line or spread some text to fill a narrow column. It
must be used with great care since it is usually considered bad
@@ -8400,7 +8395,7 @@ typography if the reader notices the effect.
@cindex activating track kerning (@code{tkf})
@cindex track kerning, activating (@code{tkf})
Enable track kerning for font@w{ }@var{f}. If the current font is@w{
-}@var{f} the width of every character is increased by an amount
+}@var{f} the width of every glyph is increased by an amount
between @var{n1} and @var{n2} (@var{n1}, @var{n2} can be negative); if
the current point size is less than or equal to @var{s1} the width is
increased by @var{n1}; if it is greater than or equal to @var{s2} the
@@ -8411,7 +8406,7 @@ width is a linear function of the point size.
The default scaling indicator is @samp{z} for @var{s1} and @var{s2},
@samp{p} for @var{n1} and @var{n2}.
-Note that the track kerning amount is added even to the rightmost character
+Note that the track kerning amount is added even to the rightmost glyph
in a line; for large values it is thus recommended to increase the line
length by the same amount to compensate it.
@endDefreq
@@ -8423,17 +8418,18 @@ with this.
@Defesc {\\/, , , }
@cindex italic correction (@code{\/})
@cindex correction, italic (@code{\/})
-@cindex correction between italic and roman character (@code{\/}, @code{\,})
-@cindex roman character, correction after italic character (@code{\/})
-@cindex italic character, correction before roman character (@code{\/})
-Increase the width of the preceding character so that the spacing
-between that character and the following character is correct if the
-following character is a roman character. For example, if an
+@cindex correction between italic and roman glyph (@code{\/}, @code{\,})
+@cindex roman glyph, correction after italic glyph (@code{\/})
+@cindex italic glyph, correction before roman glyph (@code{\/})
+@cindex glyph, italic correction (@code{\/})
+Increase the width of the preceding glyph so that the spacing
+between that glyph and the following glyph is correct if the
+following glyph is a roman glyph. For example, if an
italic@w{ }@code{f} is immediately followed by a roman right
parenthesis, then in many fonts the top right portion of the@w{ }@code{f}
overlaps the top left of the right parenthesis. Use this escape
-sequence whenever an italic character is immediately followed by a
-roman character without any intervening space. This small amount of
+sequence whenever an italic glyph is immediately followed by a
+roman glyph without any intervening space. This small amount of
space is also called @dfn{italic correction}.
@iftex
@@ -8451,13 +8447,14 @@ space is also called @dfn{italic correction}.
@Defesc {\\\,, , , }
@cindex left italic correction (@code{\,})
@cindex correction, left italic (@code{\,})
-@cindex roman character, correction before italic character (@code{\,})
-@cindex italic character, correction after roman character (@code{\,})
-Modify the spacing of the following character so that the spacing
-between that character and the preceding character is correct if the
-preceding character is a roman character. Use this escape sequence
-whenever a roman character is immediately followed by an italic
-character without any intervening space. In analogy to above, this
+@cindex glyph, left italic correction (@code{\,})
+@cindex roman glyph, correction before italic glyph (@code{\,})
+@cindex italic glyph, correction after roman glyph (@code{\,})
+Modify the spacing of the following glyph so that the spacing
+between that glyph and the preceding glyph is correct if the
+preceding glyph is a roman glyph. Use this escape sequence
+whenever a roman glyph is immediately followed by an italic
+glyph without any intervening space. In analogy to above, this
space could be called @dfn{left italic correction}, but this term
isn't used widely.
@@ -8503,7 +8500,7 @@ an input line.
@endExample
@item
-It prevents kerning between two characters.
+It prevents kerning between two glyphs.
@ifnotinfo
@example
@@ -8562,7 +8559,7 @@ This is a test.
@cindex spacing, vertical
@code{gtroff} uses two dimensions with each line of text, type size
and vertical spacing. The @dfn{type size} is approximately the height
-of the tallest character.@footnote{This is usually the parenthesis.
+of the tallest glyph.@footnote{This is usually the parenthesis.
Note that in most cases the real dimensions of the glyphs in a font
are @emph{not} related to its type size! For example, the standard
@sc{PostScript} font families `Times Roman', `Helvetica', and
@@ -9239,7 +9236,7 @@ The resulting motions, character sizes, and fonts have to
match,@footnote{The created output nodes must be identical.
@xref{Gtroff Internals}.} and not the individual motion, size, and
font requests. In the previous example, @samp{|} and @samp{\fR|\fP}
-both result in a roman @samp{|} character with the same point size and
+both result in a roman @samp{|} glyph with the same point size and
at the same location on the page, so the strings are equal. If
@samp{.ft@w{ }I} had been added before the @samp{.ie}, the result
would be ``false'' because (the first) @samp{|} produces an italic
@@ -9254,11 +9251,12 @@ True if there is a string, macro, diversion, or request named @var{xxx}.
@item m @var{xxx}
True if there is a color named @var{xxx}.
-@item c @var{ch}
-True if there is a character @var{ch} available; @var{ch} is either an
-@acronym{ASCII} character or a special character (@code{\(@var{ch}} or
-@code{\[@var{ch}]}); the condition is also true if @var{ch} has been
-defined by the @code{char} request.
+@item c @var{g}
+True if there is a glyph @var{g} available@footnote{The name of this
+conditional operator is a misnomer since it tests names of output
+glyphs.}; @var{g} is either an @acronym{ASCII} character or a special
+character (@code{\(@var{gg}} or @code{\[@var{ggg}]}); the condition
+is also true if @var{g} has been defined by the @code{char} request.
@end table
Note that these operators can't be combined with other operators like
@@ -9937,34 +9935,34 @@ The highest and lowest point of the baseline, respectively, in @var{text}.
@item rst
@itemx rsb
Like the @code{st} and @code{sb} registers, but takes account of the
-heights and depths of characters. With other words, this gives the
+heights and depths of glyphs. With other words, this gives the
highest and lowest point of @var{text}.
@item ct
-Defines the kinds of characters occurring in @var{text}:
+Defines the kinds of glyphs occurring in @var{text}:
@table @asis
@item 0
-only short characters, no descenders or tall characters.
+only short glyphs, no descenders or tall glyphs.
@item 1
at least one descender.
@item 2
-at least one tall character.
+at least one tall glyph.
@item 3
-at least one each of a descender and a tall character.
+at least one each of a descender and a tall glyph.
@end table
@item ssc
The amount of horizontal space (possibly negative) that should be added
-to the last character before a subscript.
+to the last glyph before a subscript.
@item skw
-How far to right of the center of the last character in the @code{\w}
+How far to right of the center of the last glyph in the @code{\w}
argument, the center of an accent from a roman font should be placed
-over that character.
+over that glyph.
@end table
@endDefesc
@@ -10000,18 +9998,18 @@ position.
@endDefreg
@Defesc {\\o, ', @Var{a}@Var{b}@Var{c}, '}
-@cindex overstriking characters (@code{\o})
-@cindex characters, overstriking (@code{\o})
-Overstrike characters @var{a}, @var{b}, @var{c}, @dots{}; the characters
+@cindex overstriking glyphs (@code{\o})
+@cindex glyphs, overstriking (@code{\o})
+Overstrike glyphs @var{a}, @var{b}, @var{c}, @dots{}; the glyphs
are centered, and the resulting spacing is the largest width of the
-affected characters.
+affected glyphs.
@endDefesc
-@Defesc {\\z, , c, , }
+@Defesc {\\z, , g, , }
@cindex zero-width printing (@code{\z}, @code{\Z})
@cindex printing, zero-width (@code{\z}, @code{\Z})
-Print character @var{c} with zero width, i.e., without spacing. Use
-this to overstrike characters left-aligned.
+Print glyph @var{g} with zero width, i.e., without spacing. Use
+this to overstrike glyphs left-aligned.
@endDefesc
@Defesc {\\Z, ', anything, '}
@@ -10053,7 +10051,7 @@ information.
All drawing is done via escapes.
@DefescList {\\l, ', @Var{l}, '}
-@DefescListEnd {\\l, ', @Var{l}@Var{c}, '}
+@DefescListEnd {\\l, ', @Var{l}@Var{g}, '}
@cindex drawing horizontal lines (@code{\l})
@cindex horizontal line, drawing (@code{\l})
@cindex line, horizontal, drawing (@code{\l})
@@ -10067,19 +10065,20 @@ and draws to the left, but the current location doesn't move.
@samp{|}) which draws back to the beginning of the input line.
Default scaling indicator is @samp{m}.
-@cindex underscore character (@code{\[ru]})
-@cindex character, underscore (@code{\[ru]})
-@cindex line drawing character
-@cindex character, for line drawing
-The optional second parameter@w{ }@var{c} is a character to draw the line
+@cindex underscore glyph (@code{\[ru]})
+@cindex glyph, underscore (@code{\[ru]})
+@cindex line drawing glyph
+@cindex glyph, for line drawing
+The optional second parameter@w{ }@var{g} is a glyph to draw the line
with. If this second argument is not specified, @code{gtroff} uses
-the underscore character, @code{\[ru]}.
+the underscore glyph, @code{\[ru]}.
@cindex zero width space character (@code{\&})
@cindex character, zero width space (@code{\&})
@cindex space character, zero width (@code{\&})
To separate the two arguments (to prevent @code{gtroff} from
-interpreting a drawing character as a scaling indicator) use @code{\&}.
+interpreting a drawing glyph as a scaling indicator if the glyph is
+represented by a single character) use @code{\&}.
Here a small useful example:
@@ -10098,19 +10097,19 @@ length is negative, not moving the current point.
@endDefesc
@DefescList {\\L, ', @Var{l}, '}
-@DefescListEnd {\\L, ', @Var{l}@Var{c}, '}
+@DefescListEnd {\\L, ', @Var{l}@Var{g}, '}
@cindex drawing vertical lines (@code{\L})
@cindex vertical line drawing (@code{\L})
@cindex line, vertical, drawing (@code{\L})
-@cindex line drawing character
-@cindex character for line drawing
-@cindex box rule character (@code{\[br]})
-@cindex character, box rule (@code{\[br]})
+@cindex line drawing glyph
+@cindex glyph for line drawing
+@cindex box rule glyph (@code{\[br]})
+@cindex glyph, box rule (@code{\[br]})
Draw vertical lines. Its parameters are
similar to the @code{\l} escape, except that the default scaling
indicator is @samp{v}. The movement is downwards for positive values,
-and upwards for negative values. The default character is the box rule
-character, @code{\[br]}. As with the vertical motion escapes, text
+and upwards for negative values. The default glyph is the box rule
+glyph, @code{\[br]}. As with the vertical motion escapes, text
processing blindly continues where the line ends.
@Example
@@ -10271,10 +10270,10 @@ the default behaviour of @acronym{AT&T} @code{troff}).
@xref{Graphics Commands}.
@Defesc {\\b, ', string, '}
-@cindex pile, character (@code{\b})
-@cindex character pile (@code{\b})
-@cindex stacking characters (@code{\b})
-@dfn{Pile} a sequence of characters vertically, and center it vertically
+@cindex pile, glyph (@code{\b})
+@cindex glyph pile (@code{\b})
+@cindex stacking glyphs (@code{\b})
+@dfn{Pile} a sequence of glyphs vertically, and center it vertically
on the current line. Use it to build large brackets and braces.
Here an example how to create a large opening brace:
@@ -10285,10 +10284,10 @@ Here an example how to create a large opening brace:
@cindex @code{\b}, limitations
@cindex limitations of @code{\b} escape
-The first character is on the top, the last character in the argument is
-at the bottom. Note that @code{gtroff} separates the characters
+The first glyph is on the top, the last glyph in @var{string} is
+at the bottom. Note that @code{gtroff} separates the glyphs
vertically by 1@dmn{m}, and the whole object is centered 0.5@dmn{m}
-above the current baseline; the largest character width is used as the
+above the current baseline; the largest glyph width is used as the
width for the whole object. This rather unflexible positioning
algorithm doesn't work with @option{-Tdvi} since the bracket pieces vary
in height for this device. Instead, use the @code{eqn} preprocessor.
@@ -10865,7 +10864,7 @@ following is the information kept in an environment.
@itemize @bullet
@item
-font parameters (size, family, style, character height and slant, space
+font parameters (size, family, style, glyph height and slant, space
and sentence space size)
@item
@@ -10967,19 +10966,19 @@ The number of consecutive hyphenated lines (set to zero).
@DefregList {.cht}
@DefregItem {.cdp}
@DefregListEnd {.csk}
-@cindex environment, last character
+@cindex environment, last glyph
The @code{\n[.cht]} register contains the
maximum extent (above the baseline)
-of the last character added to the current environment.
+of the last glyph added to the current environment.
The @code{\n[.cdp]} register contains the
maximum extent (below the baseline)
-of the last character added to the current environment.
+of the last glyph added to the current environment.
The @code{\n[.csk]} register contains the
-@dfn{skew} (how far to the right of the character's center
+@dfn{skew} (how far to the right of the glyph's center
that @code{gtroff} shold place an accent)
-of the last character added to the current environment.
+of the last glyph added to the current environment.
@endDefreg
@@ -11577,11 +11576,12 @@ Temporarily turn off line numbering. The argument is the number
of lines not to be numbered; this defaults to@w{ }1.
@endDefreq
-@Defreq {mc, char [@Var{dist}]}
-@cindex margin character (@code{mc})
-@cindex character, for margins (@code{mc})
-Print margin character to the right of the text.
-The first argument is the character to be
+@Defreq {mc, glyph [@Var{dist}]}
+@cindex margin glyph (@code{mc})
+@cindex glyph, for margins (@code{mc})
+Print a @dfn{margin character} to the right of the
+text.@footnote{@dfn{Margin character} is a misnomer since it is an
+output glyph.} The first argument is the glyph to be
printed. The second argument is the distance away from the right
margin. If missing, the previously set value is used; default is
10@dmn{pt}). For text lines that are too long (that is, longer than
@@ -11933,7 +11933,7 @@ of the numbers associated with each warning that is to be enabled; all
other warnings are disabled. The number associated with each warning is
listed below. For example, @w{@code{.warn 0}} disables all warnings,
and @w{@code{.warn 1}} disables all warnings except that about missing
-characters. If no argument is given, all warnings are enabled.
+glyphs. If no argument is given, all warnings are enabled.
The read-only number register @code{.warn} contains the current warning
level.
@@ -11957,7 +11957,9 @@ the @option{-w} and @option{-W} options; the number is used by the
@table @samp
@item char
@itemx 1
-Non-existent characters. This is enabled by default.
+Non-existent glyphs.@footnote{@code{char} is a misnomer since it reports
+missing glyphs -- there aren't missing input characters, only invalid
+ones.} This is enabled by default.
@item number
@itemx 2
@@ -12226,20 +12228,21 @@ Sizes}, for more information.
@cindex @code{cs} request, incompatibilities with @acronym{AT&T} @code{troff}
@cindex @code{tr} request, incompatibilities with @acronym{AT&T} @code{troff}
@cindex @code{fp} request, incompatibilities with @acronym{AT&T} @code{troff}
-@cindex input and output characters, compatibility with @acronym{AT&T} @code{troff}
-@cindex output characters, compatibility with @acronym{AT&T} @code{troff}
-@cindex characters, input and output, compatibility with @acronym{AT&T} @code{troff}
+@cindex input characters and output glyphs, compatibility with @acronym{AT&T} @code{troff}
+@cindex output glyphs, and input characters,compatibility with @acronym{AT&T} @code{troff}
+@cindex characters, input, and output glyphs, compatibility with @acronym{AT&T} @code{troff}
+@cindex glyphs, output, and input characters, compatibility with @acronym{AT&T} @code{troff}
In GNU @code{troff} there is a fundamental difference between
-unformatted, input characters, and formatted, output characters.
-Everything that affects how an output character is output is stored
-with the character; once an output character has been constructed it is
+(unformatted) input characters and (formatted) output glyphs.
+Everything that affects how a glyph is output is stored
+with the glyph node; once a glyph node has been constructed it is
unaffected by any subsequent requests that are executed, including
@code{bd}, @code{cs}, @code{tkf}, @code{tr}, or @code{fp} requests.
-Normally output characters are constructed from input characters at the
-moment immediately before the character is added to the current output
+Normally glyphs are constructed from input characters at the
+moment immediately before the glyph is added to the current output
line. Macros, diversions and strings are all, in fact, the same type of
-object; they contain lists of input characters and output characters in
-any combination. An output character does not behave like an input
+object; they contain lists of input characters and glyph nodes in
+any combination. A glyph node does not behave like an input
character for the purposes of macro processing; it does not inherit any
of the special properties that the input character from which it was
constructed might have had. For example,
@@ -12276,7 +12279,7 @@ diversion that will be interpreted when the diversion is reread, either
use the traditional @code{\!} transparent output facility, or, if this
is unsuitable, the new @code{\?} escape sequence.
-@xref{Diversions}, for more information.
+@xref{Diversions}, and @ref{Gtroff Internals}, for more information.
@@ -12714,7 +12717,8 @@ template name or the default name.
@cindex file formats
@cindex formats, file
-@c XXX
+All files read and written by @code{gtroff} are text files. The
+following two sections describe their format.
@menu
* gtroff Output::
@@ -12958,16 +12962,16 @@ stack as the actual device configuration data.
@end ignore
@item C @var{xxx}@angles{whitespace}
-Print a special groff character named @var{xxx}. The trailing
-syntactical space or line break is necessary to allow character names
-of arbitrary length. The character is printed at the current print
-position; the character's size is read from the font file. The print
+Print a special character named @var{xxx}. The trailing
+syntactical space or line break is necessary to allow glyph names
+of arbitrary length. The glyph is printed at the current print
+position; the glyph's size is read from the font file. The print
position is not changed.
-@item c @var{c}
-Print character@w{ }@var{c} at the current print position; the
-character's size is read from the font file. The print position is
-not changed.
+@item c @var{g}
+Print glyph@w{ }@var{g} at the current print position;@footnote{@samp{c}
+is actually a misnomer since it outputs a glyph.} the glyph's size is
+read from the font file. The print position is not changed.
@item f @var{n}
Set font to font number@w{ }@var{n} (a non-negative integer).
@@ -13016,7 +13020,7 @@ Set color using the RGB color scheme, having the 3@w{ }color components
@end table
@item N @var{n}
-Print character with index@w{ }@var{n} (a non-negative integer) of the
+Print glyph with index@w{ }@var{n} (a non-negative integer) of the
current font. This command is a @code{gtroff} extension.
@item n @var{b} @var{a}
@@ -13042,24 +13046,25 @@ Set point size to @var{n}@w{ }scaled points (this is unit @samp{z}).
@item t @var{xxx}@angles{whitespace}
@itemx t @var{xxx} @var{dummy-arg}@angles{whitespace}
-Print a word, i.e., a sequence of characters @var{xxx} terminated by
+Print a word, i.e., a sequence of characters @var{xxx} representing
+output glyphs which names are single characters, terminated by
a space character or a line break; an optional second integer argument
is ignored (this allows the formatter to generate an even number of
-arguments). The first character should be printed at the current
+arguments). The first glyph should be printed at the current
position, the current horizontal position should then be increased by
-the width of the first character, and so on for each character.
-The widths of the characters are read from the font file, scaled for the
+the width of the first glyph, and so on for each glyph.
+The widths of the glyphs are read from the font file, scaled for the
current point size, and rounded to a multiple of the horizontal
resolution. Special characters cannot be printed using this command
-(use the @samp{C} command for named characters). This command is a
+(use the @samp{C} command for special characters). This command is a
@code{gtroff} extension; it is only used for devices whose @file{DESC}
file contains the @code{tcommand} keyword (@pxref{DESC File Format}).
@item u @var{n} @var{xxx}@angles{whitespace}
Print word with track kerning. This is the same as the @samp{t}
-command except that after printing each character, the current
+command except that after printing each glyph, the current
horizontal position is increased by the sum of the width of that
-character and@w{ }@var{n} (an integer in basic units @samp{u}).
+glyph and@w{ }@var{n} (an integer in basic units @samp{u}).
This command is a @code{gtroff} extension; it is only used for devices
whose @file{DESC} file contains the @code{tcommand} keyword
(@pxref{DESC File Format}).
@@ -13307,7 +13312,7 @@ named@w{ }@var{s} (a text word). @xref{Font Positions}.
@item xH @var{n}@angles{line break}
The @samp{H} stands for @var{Height}.
-Set character height to@w{ }@var{n} (a positive integer in scaled
+Set glyph height to@w{ }@var{n} (a positive integer in scaled
points @samp{z}). @acronym{AT&T} @code{troff} uses the unit points
(@samp{p}) instead. @xref{Output Language Compatibility}.
@@ -13384,15 +13389,15 @@ escape sequence @code{\X}. The line-continuing feature is a
@node Obsolete Command, , Device Control Commands, Command Reference
@subsubsection Obsolete Command
In @acronym{AT&T} @code{troff} output, the writing of a single
-character is mostly done by a very strange command that combines a
-horizontal move and the printing of a character. It doesn't have a
-command code, but is represented by a 3-character argument consisting
-of exactly 2@w{ }digits and a character.
+glyph is mostly done by a very strange command that combines a
+horizontal move and a single character giving the glyph name. It
+doesn't have a command code, but is represented by a 3-character
+argument consisting of exactly 2@w{ }digits and a character.
@table @asis
-@item @var{dd}@var{c}
+@item @var{dd}@var{g}
Move right @var{dd} (exactly two decimal digits) basic units @samp{u},
-then print character@w{ }@var{c}.
+then print glyph@w{ }@var{g} (represented as a single character).
In @code{gtroff}, arbitrary syntactical space around and within this
command is allowed to be added. Only when a preceding command on the
@@ -13404,7 +13409,7 @@ almost unreadable.
@end table
For modern high-resolution devices, this command does not make sense
-because the width of the characters can become much larger than two
+because the width of the glyphs can become much larger than two
decimal digits. In @code{gtroff}, this is only used for the devices
@code{X75}, @code{X75-12}, @code{X100}, and @code{X100-12}. For other
devices, the commands @samp{t} and @samp{u} provide a better
@@ -13715,7 +13720,7 @@ The default font family is @var{fam}.
@item use_charnames_in_special
@kindex use_charnames_in_special
-This command indicates that @code{gtroff} should encode named
+This command indicates that @code{gtroff} should encode special
characters inside special commands. Currently, this is only used
by the @acronym{HTML} output device. @xref{Postprocessor Access}.
@@ -13833,18 +13838,17 @@ tabs. The format is
@noindent
@var{name} identifies the glyph name@footnote{The distinction between
input, characters, and output, glyphs, is not clearly separated in the
-terminology of @code{groff} (and this manual isn't precise either
-currently); for example, the @code{char} request should be called
-@code{glyph} since it defines an output entity.}: If @var{name} is a
-single character@w{ }@var{c} then it corresponds to the @code{gtroff}
-input character@w{ }@var{c}; if it is of the form @samp{\@var{c}}
-where @var{c} is a single character, then it corresponds to the
-special character @code{\[@var{c}]}; otherwise it corresponds to the
-groff input character @samp{\[@var{name}]}. If it is exactly two
-characters @var{xx} it can be entered as @samp{\(@var{xx}}. Note
-that single-letter special characters can't be accessed as
-@samp{\@var{c}}; the only exception is @samp{\-} which is identical
-to @code{\[-]}.
+terminology of @code{groff}; for example, the @code{char} request
+should be called @code{glyph} since it defines an output entity.}:
+If @var{name} is a single character@w{ }@var{c} then it corresponds
+to the @code{gtroff} input character@w{ }@var{c}; if it is of the form
+@samp{\@var{c}} where @var{c} is a single character, then it
+corresponds to the special character @code{\[@var{c}]}; otherwise it
+corresponds to the special character @samp{\[@var{name}]}. If it
+is exactly two characters @var{xx} it can be entered as
+@samp{\(@var{xx}}. Note that single-letter special characters can't
+be accessed as @samp{\@var{c}}; the only exception is @samp{\-} which
+is identical to @code{\[-]}.
@code{gtroff} supports 8-bit input characters; however some utilities
have difficulties with eight-bit characters. For this reason, there is
@@ -13885,7 +13889,7 @@ The @var{entity-name} field gives an @acronym{ASCII} string
identifying the glyph which the postprocessor uses to print the
@code{gtroff} glyph @var{name}. This field is optional and has been
introduced so that the @acronym{HTML} device driver can encode its
-character set. For example, the character @samp{\[Po]} is
+character set. For example, the glyph @samp{\[Po]} is
represented as @samp{£} in @acronym{HTML} 4.0.
Anything on the line after the @var{entity-name} field resp.@: after
@@ -13942,7 +13946,7 @@ sequence of lines of the form:
@endExample
@noindent
-This means that when glyph @var{c1} appears next to character @var{c2}
+This means that when glyph @var{c1} appears next to glyph @var{c2}
the space between them should be increased by@w{ }@var{n}. Most
entries in the kernpairs section have a negative value for@w{ }@var{n}.
@@ -13993,7 +13997,7 @@ Requests appear without the leading control character (normally either
@appendix Escape Index
Any escape sequence @code{\@var{X}} with @var{X} not in the list below
-emits a warning, printing character @var{X}.
+emits a warning, printing glyph @var{X}.
@printindex es