summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorwl <wl>2008-09-25 07:48:15 +0000
committerwl <wl>2008-09-25 07:48:15 +0000
commit43928579e1522d46f846cc2932ce94487be06e46 (patch)
tree09b7a1bd15fb03b429b42a2dad21df3d2021edef /doc
parent9e1d5c23e2598ec3263467ef52b2b30757e5f291 (diff)
downloadgroff-43928579e1522d46f846cc2932ce94487be06e46.tar.gz
Formatting.
Diffstat (limited to 'doc')
-rw-r--r--doc/groff.texinfo4664
1 files changed, 2289 insertions, 2375 deletions
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 017ea32e..6a201c36 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -35,13 +35,12 @@ Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being `A GNU Manual,''
-and with the Back-Cover Texts as in (a) below. A copy of the
-license is included in the section entitled `GNU Free Documentation
-License.''
+and with the Back-Cover Texts as in (a) below. A copy of the license is
+included in the section entitled `GNU Free Documentation License.''
-(a) The FSF's Back-Cover Text is: ``You have the freedom to
-copy and modify this GNU manual. Buying copies from the FSF
-supports it in developing GNU and promoting software freedom.''
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual. Buying copies from the FSF supports it in
+developing GNU and promoting software freedom.''
@end quotation
@end copying
@@ -79,9 +78,9 @@ supports it in developing GNU and promoting software freedom.''
@c To assure correct HTML translation, some ugly hacks are necessary.
@c While processing a @def... request, the HTML translator looks at the
-@c next line to decide whether to start indentation, and if the line starts
-@c with @def... (e.g. @deffnx), indentation is started. We must therefore
-@c ensure that a @def... is seen, during macro expansion.
+@c next line to decide whether to start indentation, and if the line
+@c starts with @def... (e.g. @deffnx), indentation is started. We must
+@c therefore ensure that a @def... is seen, during macro expansion.
@c
@c The following macros have to be used:
@c
@@ -353,7 +352,8 @@ supports it in developing GNU and promoting software freedom.''
@c
@c A value defined with @set is embedded into three group levels if
@c called with @value, so we need seven \aftergroup to put \le outside
-@c of the groups -- this is necessary to get proper mathematical spacing.
+@c of the groups -- this is necessary to get proper mathematical
+@c spacing.
@tex
\gdef\LEmacro{\aftergroup\aftergroup\aftergroup\aftergroup
@@ -433,6 +433,7 @@ supports it in developing GNU and promoting software freedom.''
@c We map some latin-1 characters to corresponding texinfo macros.
+@c Newer versions of texinfo.tex have similar code included already.
@tex
\global\catcode`^^e4\active % ä
@@ -473,7 +474,7 @@ supports it in developing GNU and promoting software freedom.''
@title groff
@subtitle The GNU implementation of @code{troff}
@subtitle Edition 1.19.3
-@subtitle Spring 2008
+@subtitle Autumn 2008
@author by Trent A.@tie{}Fisher
@author and Werner Lemberg (@email{bug-groff@@gnu.org})
@@ -525,9 +526,10 @@ supports it in developing GNU and promoting software freedom.''
@chapter Introduction
@cindex introduction
-GNU @code{troff} (or @code{groff}) is a system for typesetting documents.
-@code{troff} is very flexible and has been used extensively for some thirty
-years. It is well entrenched in the @acronym{UNIX} community.
+GNU @code{troff} (or @code{groff}) is a system for typesetting
+documents. @code{troff} is very flexible and has been used extensively
+for some thirty years. It is well entrenched in the @acronym{UNIX}
+community.
@menu
* What Is groff?::
@@ -575,8 +577,8 @@ very portable.
@code{troff} is firmly entrenched in all @acronym{UNIX} systems.
@item
-It is difficult to have a wide range of capabilities within the confines of
-a GUI/window system.
+It is difficult to have a wide range of capabilities within the confines
+of a GUI/window system.
@item
It is more difficult to make global changes to a document.
@@ -599,14 +601,14 @@ impossible to accomplish complex actions.'' --Doug Gwyn (22/Jun/91 in
@cindex @code{rf}, the program
@code{troff} can trace its origins back to a formatting program called
@code{RUNOFF}, written by Jerry E.@: Saltzer, which ran on MIT's
-@acronym{CTSS} (@emph{Compatible Time Sharing System}) operating system in
-the mid-sixties. The name came from the use of the phrase ``run off a
-document'', meaning to print it out. Bob Morris ported it to the 635
+@acronym{CTSS} (@emph{Compatible Time Sharing System}) operating system
+in the mid-sixties. The name came from the use of the phrase ``run off
+a document'', meaning to print it out. Bob Morris ported it to the 635
architecture and called the program @code{roff} (an abbreviation of
@code{runoff}). It was rewritten as @code{rf} for the @w{PDP-7} (before
-having @acronym{UNIX}), and at the same time (1969), Doug McIllroy rewrote
-an extended and simplified version of @code{roff} in the @acronym{BCPL}
-programming language.
+having @acronym{UNIX}), and at the same time (1969), Doug McIllroy
+rewrote an extended and simplified version of @code{roff} in the
+@acronym{BCPL} programming language.
@cindex @code{roff}, the program
The first version of @acronym{UNIX} was developed on a @w{PDP-7} which
@@ -639,8 +641,8 @@ Since there are several things which cannot be done easily in
transform certain parts of a document into @code{troff}, which made a
very natural use of pipes in @acronym{UNIX}.
-The @code{eqn} preprocessor allowed mathematical formulæ to be
-specified in a much simpler and more intuitive manner. @code{tbl} is a
+The @code{eqn} preprocessor allowed mathematical formulæ to be specified
+in a much simpler and more intuitive manner. @code{tbl} is a
preprocessor for formatting tables. The @code{refer} preprocessor (and
the similar program, @code{bib}) processes citations in a document
according to a bibliographic database.
@@ -657,11 +659,11 @@ from a previous one.
@pindex ditroff
@cindex @code{ditroff}, the program
So, Brian Kernighan took on the task of rewriting @code{troff}. The
-newly rewritten version produced device independent code which was
-very easy for postprocessors to read and translate to the appropriate
-printer codes. Also, this new version of @code{troff} (called
-@code{ditroff} for ``device independent @code{troff}'') had several
-extensions, which included drawing functions.
+newly rewritten version produced device independent code which was very
+easy for postprocessors to read and translate to the appropriate printer
+codes. Also, this new version of @code{troff} (called @code{ditroff}
+for ``device independent @code{troff}'') had several extensions, which
+included drawing functions.
Due to the additional abilities of the new version of @code{troff},
several new preprocessors appeared. The @code{pic} preprocessor
@@ -671,8 +673,8 @@ preprocessor did the same, although via a much different paradigm. The
other preprocessors, produced @code{pic} code.
James Clark began work on a GNU implementation of @code{ditroff} in
-early@tie{}1989. The first version, @code{groff}@tie{}0.3.1, was released
-June@tie{}1990. @code{groff} included:
+early@tie{}1989. The first version, @code{groff}@tie{}0.3.1, was
+released June@tie{}1990. @code{groff} included:
@itemize @bullet
@item
@@ -703,10 +705,10 @@ document (@code{grog}).
It was declared a stable (i.e.@: non-beta) package with the release of
version@tie{}1.04 around November@tie{}1991.
-Beginning in@tie{}1999, @code{groff} has new maintainers (the package was
-an orphan for a few years). As a result, new features and programs like
-@code{grn}, a preprocessor for gremlin images, and an output device to
-produce @acronym{HTML} and @acronym{XHTML} have been added.
+Beginning in@tie{}1999, @code{groff} has new maintainers (the package
+was an orphan for a few years). As a result, new features and programs
+like @code{grn}, a preprocessor for gremlin images, and an output device
+to produce @acronym{HTML} and @acronym{XHTML} have been added.
@c =====================================================================
@@ -792,9 +794,9 @@ Since @code{groff} provides such low-level facilities, it can be quite
difficult to use by itself. However, @code{groff} provides a
@dfn{macro} facility to specify how certain routine operations
(e.g.@tie{}starting paragraphs, printing headers and footers, etc.)@:
-should be done. These macros can be collected together into a @dfn{macro
-package}. There are a number of macro packages available; the most
-common (and the ones described in this manual) are @file{man},
+should be done. These macros can be collected together into a
+@dfn{macro package}. There are a number of macro packages available;
+the most common (and the ones described in this manual) are @file{man},
@file{mdoc}, @file{me}, @file{ms}, and @file{mm}.
@@ -842,12 +844,12 @@ mathematical pictures (@code{ideal}) and chemical structures
@cindex output devices
@cindex devices for output
-@code{groff} actually produces device independent code which may be
-fed into a postprocessor to produce output for a particular device.
-Currently, @code{groff} has postprocessors for @sc{PostScript}
-devices, character terminals, X@tie{}Windows (for previewing), @TeX{}
-DVI format, HP LaserJet@tie{}4 and Canon LBP printers (which use
-@acronym{CAPSL}), @acronym{HTML}, and @acronym{XHTML}.
+@code{groff} actually produces device independent code which may be fed
+into a postprocessor to produce output for a particular device.
+Currently, @code{groff} has postprocessors for @sc{PostScript} devices,
+character terminals, X@tie{}Windows (for previewing), @TeX{} DVI format,
+HP LaserJet@tie{}4 and Canon LBP printers (which use @acronym{CAPSL}),
+@acronym{HTML}, and @acronym{XHTML}.
@c =====================================================================
@@ -892,8 +894,8 @@ replaced by @samp{roff}.
In this document, we consequently say @samp{gtroff} when talking about
the GNU @code{troff} program. All other implementations of @code{troff}
-are called @acronym{AT&T} @code{troff} which is the common origin of
-all @code{troff} derivates (with more or less compatible changes).
+are called @acronym{AT&T} @code{troff} which is the common origin of all
+@code{troff} derivates (with more or less compatible changes).
Similarly, we say @samp{gpic}, @samp{geqn}, etc.
@menu
@@ -959,9 +961,10 @@ gtroff [ -abcivzCERU ] [ -w@var{name} ] [ -W@var{name} ] [ -d@var{cs} ]
Obviously, many of the options to @code{groff} are actually passed on to
@code{gtroff}.
-Options without an argument can be grouped behind a single@tie{}@option{-}.
-A filename of@tie{}@file{-} denotes the standard input. It is possible to
-have whitespace between an option and its parameter.
+Options without an argument can be grouped behind a
+single@tie{}@option{-}. A filename of@tie{}@file{-} denotes the
+standard input. It is possible to have whitespace between an option and
+its parameter.
The @code{grog} command can be used to guess the correct @code{groff}
command to format a file.
@@ -1010,8 +1013,9 @@ accessible via @code{groff}. This option prevents the loading of the
Make programs run by @code{groff} print out their version number.
@item -V
-Print the pipeline on @code{stdout} instead of executing it. If specified
-more than once, print the pipeline on @code{stderr} and execute it.
+Print the pipeline on @code{stdout} instead of executing it. If
+specified more than once, print the pipeline on @code{stderr} and
+execute it.
@item -z
Suppress output from @code{gtroff}. Only error messages are printed.
@@ -1033,9 +1037,9 @@ ignored.
@item -L@var{arg}
Pass @var{arg} to the spooler. Each argument should be passed with a
-separate @option{-L} option. Note that @code{groff} does not prepend
-a @samp{-} to @var{arg} before passing it to the postprocessor.
-If the @code{print} keyword in the device description file is missing,
+separate @option{-L} option. Note that @code{groff} does not prepend a
+@samp{-} to @var{arg} before passing it to the postprocessor. If the
+@code{print} keyword in the device description file is missing,
@option{-L} is ignored.
@item -T@var{dev}
@@ -1109,7 +1113,7 @@ printers).
@cindex @code{grohtml}, the program
@item html
@itemx xhtml
-To produce @acronym{HTML} and @acronym{XHTML} output, respectively.
+To produce @acronym{HTML} and @acronym{XHTML} output, respectively.
Note that this driver consists of two parts, a preprocessor
(@code{pre-grohtml}) and a postprocessor (@code{post-grohtml}).
@end table
@@ -1118,8 +1122,8 @@ Note that this driver consists of two parts, a preprocessor
@cindex output device usage number register (@code{.T})
The predefined @code{gtroff} string register @code{.T} contains the
current output device; the read-only number register @code{.T} is set
-to@tie{}1 if this option is used (which is always true if @code{groff} is
-used to call @code{gtroff}). @xref{Built-in Registers}.
+to@tie{}1 if this option is used (which is always true if @code{groff}
+is used to call @code{gtroff}). @xref{Built-in Registers}.
The postprocessor to be used for a device is specified by the
@code{postpro} command in the device description file. (@xref{Font
@@ -1199,10 +1203,10 @@ list of incompatibilities between @code{groff} and @acronym{AT&T}
@item -d@var{c}@var{s}
@itemx -d@var{name}=@var{s}
-Define @var{c} or @var{name} to be a string@tie{}@var{s}. @var{c}@tie{}must
-be a one-letter name; @var{name} can be of arbitrary length. All string
-assignments happen before loading any macro file (including the start-up
-file).
+Define @var{c} or @var{name} to be a string@tie{}@var{s}.
+@var{c}@tie{}must be a one-letter name; @var{name} can be of arbitrary
+length. All string assignments happen before loading any macro file
+(including the start-up file).
@item -f@var{fam}
Use @var{fam} as the default font family. @xref{Font Families}.
@@ -1218,11 +1222,12 @@ Number the first page @var{num}.
@item -o@var{list}
@cindex print current page register (@code{.P})
Output only pages in @var{list}, which is a comma-separated list of page
-ranges; @samp{@var{n}} means print page@tie{}@var{n}, @samp{@var{m}-@var{n}}
-means print every page between @var{m} and@tie{}@var{n}, @samp{-@var{n}}
-means print every page up to@tie{}@var{n}, @samp{@var{n}-} means print every
-page beginning with@tie{}@var{n}. @code{gtroff} exits after printing the
-last page in the list. All the ranges are inclusive on both ends.
+ranges; @samp{@var{n}} means print page@tie{}@var{n},
+@samp{@var{m}-@var{n}} means print every page between @var{m}
+and@tie{}@var{n}, @samp{-@var{n}} means print every page up
+to@tie{}@var{n}, @samp{@var{n}-} means print every page beginning
+with@tie{}@var{n}. @code{gtroff} exits after printing the last page in
+the list. All the ranges are inclusive on both ends.
Within @code{gtroff}, this information can be extracted with the
@samp{.P} register. @xref{Built-in Registers}.
@@ -1233,11 +1238,11 @@ chapter.
@item -r@var{c}@var{n}
@itemx -r@var{name}=@var{n}
-Set number register@tie{}@var{c} or @var{name} to the value@tie{}@var{n}.
-@var{c}@tie{}must be a one-letter name; @var{name} can be of arbitrary
-length. @var{n}@tie{}can be any @code{gtroff} numeric expression. All
-register assignments happen before loading any macro file (including
-the start-up file).
+Set number register@tie{}@var{c} or @var{name} to the
+value@tie{}@var{n}. @var{c}@tie{}must be a one-letter name; @var{name}
+can be of arbitrary length. @var{n}@tie{}can be any @code{gtroff}
+numeric expression. All register assignments happen before loading any
+macro file (including the start-up file).
@item -F@var{dir}
Search @file{@var{dir}} for subdirectories @file{dev@var{name}}
@@ -1268,9 +1273,10 @@ it also implies @code{groff}'s @option{-s} option.
@w{@code{\X'ps: import}} and @w{@code{\X'ps: file}} escapes.
@end itemize
-The current directory is always searched first. This option may be specified
-more than once; the directories are searched in the order specified. No
-directory search is performed for files specified using an absolute path.
+The current directory is always searched first. This option may be
+specified more than once; the directories are searched in the order
+specified. No directory search is performed for files specified using
+an absolute path.
@end table
@@ -1289,15 +1295,16 @@ not within @code{gtroff}) which can modify the behavior of @code{groff}.
@tindex GROFF_COMMAND_PREFIX@r{, environment variable}
@cindex command prefix
@cindex prefix, for commands
-If this is set to@tie{}@var{X}, then @code{groff} runs @code{@var{X}troff}
-instead of @code{gtroff}. This also applies to @code{tbl}, @code{pic},
-@code{eqn}, @code{grn}, @code{refer}, and @code{soelim}. It does not
-apply to @code{grops}, @code{grodvi}, @code{grotty}, @code{pre-grohtml},
-@code{post-grohtml}, @code{grolj4}, and @code{gxditview}.
+If this is set to@tie{}@var{X}, then @code{groff} runs
+@code{@var{X}troff} instead of @code{gtroff}. This also applies to
+@code{tbl}, @code{pic}, @code{eqn}, @code{grn}, @code{refer}, and
+@code{soelim}. It does not apply to @code{grops}, @code{grodvi},
+@code{grotty}, @code{pre-grohtml}, @code{post-grohtml}, @code{grolj4},
+and @code{gxditview}.
-The default command prefix is determined during the installation process.
-If a non-GNU troff system is found, prefix @samp{g} is used, none
-otherwise.
+The default command prefix is determined during the installation
+process. If a non-GNU troff system is found, prefix @samp{g} is used,
+none otherwise.
@item GROFF_TMAC_PATH
@tindex GROFF_TMAC_PATH@r{, environment variable}
@@ -1368,8 +1375,7 @@ The directories specified with @code{gtroff}'s or @code{groff}'s
@item
@tindex GROFF_TMAC_PATH@r{, environment variable}
-The directories given in the @env{GROFF_TMAC_PATH} environment
-variable.
+The directories given in the @env{GROFF_TMAC_PATH} environment variable.
@item
@cindex safer mode
@@ -1401,9 +1407,9 @@ directory, and the main tmac directory; the default locations are
@endExample
@noindent
-assuming that the version of @code{groff} is 1.18.2, and the installation
-prefix was @file{/usr/local}. It is possible to fine-tune those
-directories during the installation process.
+assuming that the version of @code{groff} is 1.18.2, and the
+installation prefix was @file{/usr/local}. It is possible to fine-tune
+those directories during the installation process.
@end itemize
@@ -1430,8 +1436,8 @@ are @samp{TR}, @samp{TB}, @samp{TI}, and @samp{TBI}.
All font files are kept in the @dfn{font directories} which constitute
the @dfn{font path}. The file search functions always append the
directory @code{dev}@var{name}, where @var{name} is the name of the
-output device. Assuming, say, DVI output, and @file{/foo/bar} as a
-font directory, the font files for @code{grodvi} must be in
+output device. Assuming, say, DVI output, and @file{/foo/bar} as a font
+directory, the font files for @code{grodvi} must be in
@file{/foo/bar/devdvi}.
The elements of the search path for font files are (in that order):
@@ -1444,8 +1450,7 @@ preprocessors also have this option.
@item
@tindex GROFF_FONT_PATH@r{, environment variable}
-The directories given in the @env{GROFF_FONT_PATH} environment
-variable.
+The directories given in the @env{GROFF_FONT_PATH} environment variable.
@item
@cindex site-specific directory
@@ -1459,9 +1464,9 @@ locations are
@endExample
@noindent
-assuming that the version of @code{groff} is 1.18.2, and the installation
-prefix was @file{/usr/local}. It is possible to fine-tune those
-directories during the installation process.
+assuming that the version of @code{groff} is 1.18.2, and the
+installation prefix was @file{/usr/local}. It is possible to fine-tune
+those directories during the installation process.
@end itemize
@@ -1579,12 +1584,13 @@ generates one or more of the options @option{-e}, @option{-man},
@option{-mdoc-old}, @option{-p}, @option{-R}, @option{-g}, @option{-G},
@option{-s}, and @option{-t}.
-A special file name@tie{}@file{-} refers to the standard input. Specifying
-no files also means to read the standard input. Any specified options
-are included in the printed command. No space is allowed between
-options and their arguments. The only options recognized are
-@option{-C} (which is also passed on) to enable compatibility mode, and
-@option{-v} to print the version number and exit.
+A special file name@tie{}@file{-} refers to the standard input.
+Specifying no files also means to read the standard input. Any
+specified options are included in the printed command. No space is
+allowed between options and their arguments. The only options
+recognized are @option{-C} (which is also passed on) to enable
+compatibility mode, and @option{-v} to print the version number and
+exit.
For example,
@@ -1739,14 +1745,12 @@ can occur where not wanted, such as ``@w{mother- in}-law''.
@cindex spacing
@code{gtroff} double-spaces output text automatically if you use the
request @w{@samp{.ls 2}}. Reactivate single-spaced mode by typing
-@w{@samp{.ls 1}}.@footnote{If you need finer granularity of the
-vertical space, use the @code{pvs} request (@pxref{Changing Type
-Sizes}).}
+@w{@samp{.ls 1}}.@footnote{If you need finer granularity of the vertical
+space, use the @code{pvs} request (@pxref{Changing Type Sizes}).}
-A number of requests allow to change the way the output looks,
-sometimes called the @dfn{layout} of the output page. Most of these
-requests adjust the placing of @dfn{whitespace} (blank lines or
-spaces).
+A number of requests allow to change the way the output looks, sometimes
+called the @dfn{layout} of the output page. Most of these requests
+adjust the placing of @dfn{whitespace} (blank lines or spaces).
@cindex new page (@code{bp})
The @code{bp} request starts a new page, causing a line break.
@@ -1833,12 +1837,12 @@ the following categories.
@subsection Paragraphs
@cindex paragraphs
-One of the most common and most used capability is starting a
-paragraph. There are a number of different types of paragraphs, any
-of which can be initiated with macros supplied by the macro package.
-Normally, paragraphs start with a blank line and the first line
-indented, like the text in this manual. There are also block style
-paragraphs, which omit the indentation:
+One of the most common and most used capability is starting a paragraph.
+There are a number of different types of paragraphs, any of which can be
+initiated with macros supplied by the macro package. Normally,
+paragraphs start with a blank line and the first line indented, like the
+text in this manual. There are also block style paragraphs, which omit
+the indentation:
@Example
Some men look at constitutions with sanctimonious
@@ -1889,12 +1893,12 @@ supply macros for starting chapters and appendices.
@subsection Headers and Footers
Every macro package gives some way to manipulate the @dfn{headers} and
-@dfn{footers} (also called @dfn{titles}) on each page. This is text
-put at the top and bottom of each page, respectively, which contain
-data like the current page number, the current chapter title, and so
-on. Its appearance is not affected by the running text. Some packages
-allow for different ones on the even and odd pages (for material printed
-in a book form).
+@dfn{footers} (also called @dfn{titles}) on each page. This is text put
+at the top and bottom of each page, respectively, which contain data
+like the current page number, the current chapter title, and so on. Its
+appearance is not affected by the running text. Some packages allow for
+different ones on the even and odd pages (for material printed in a book
+form).
The titles are called @dfn{three-part titles}, that is, there is a
left-justified part, a centered part, and a right-justified part. An
@@ -1915,9 +1919,9 @@ other details about the appearance of the printed pages.
@subsection Displays
@cindex displays
-@dfn{Displays} are sections of text to be set off from the body of
-the paper. Major quotes, tables, and figures are types of displays, as
-are all the examples used in this document.
+@dfn{Displays} are sections of text to be set off from the body of the
+paper. Major quotes, tables, and figures are types of displays, as are
+all the examples used in this document.
@cindex quotes, major
@cindex major quotes
@@ -1938,9 +1942,9 @@ not.
@cindex keep, floating
@cindex floating keep
-@dfn{Floating keeps} move relative to the text. Hence, they are good for
-things which are referred to by name, such as ``See figure@tie{}3''. A
-floating keep appears at the bottom of the current page if it fits;
+@dfn{Floating keeps} move relative to the text. Hence, they are good
+for things which are referred to by name, such as ``See figure@tie{}3''.
+A floating keep appears at the bottom of the current page if it fits;
otherwise, it appears at the top of the next page. Meanwhile, the
surrounding text `flows' around the keep, thus leaving no blank areas.
@@ -2038,9 +2042,9 @@ extend their functionality.
For example, all macro packages mark tables (which are processed with
@code{gtbl}) by placing them between @code{TS} and @code{TE} macros.
-The @file{ms} macro package has an option, @samp{.TS@tie{}H}, that prints
-a caption at the top of a new page (when the table is too long to fit on
-a single page).
+The @file{ms} macro package has an option, @samp{.TS@tie{}H}, that
+prints a caption at the top of a new page (when the table is too long to
+fit on a single page).
@c ---------------------------------------------------------------------
@@ -2064,15 +2068,16 @@ to changing the appearance of section headers.
This chapter documents the main macro packages that come with
@code{groff}.
-Different main macro packages can't be used at the same time; for example
+Different main macro packages can't be used at the same time; for
+example
@Example
groff -m man foo.man -m ms bar.doc
@endExample
@noindent
-doesn't work. Note that option arguments are processed before non-option
-arguments; the above (failing) sample is thus reordered to
+doesn't work. Note that option arguments are processed before
+non-option arguments; the above (failing) sample is thus reordered to
@Example
groff -m man -m ms foo.man bar.doc
@@ -2132,8 +2137,8 @@ It is possible to use @samp{-man} instead of @w{@samp{-m man}}.
@table @code
@item -rcR=1
This option (the default if a TTY output device is used) creates a
-single, very long page instead of multiple pages. Use @code{-rcR=0}
-to disable it.
+single, very long page instead of multiple pages. Use @code{-rcR=0} to
+disable it.
@item -rC1
If more than one manual page is given on the command line, number the
@@ -2150,37 +2155,36 @@ relative to the bottom. The default is @minus{}0.5@dmn{i}.
@item -rHY=@var{flags}
Set hyphenation flags. Possible values are 1@tie{}to hyphenate without
-restrictions, 2@tie{}to not hyphenate the last word on a page,
-4@tie{}to not hyphenate the last two characters of a word, and
-8@tie{}to not hyphenate the first two characters of a word. These
-values are additive; the default is@tie{}14.
+restrictions, 2@tie{}to not hyphenate the last word on a page, 4@tie{}to
+not hyphenate the last two characters of a word, and 8@tie{}to not
+hyphenate the first two characters of a word. These values are
+additive; the default is@tie{}14.
@item -rIN=@var{length}
-Set the body text indentation to @var{length}.
-If not specified, the indentation defaults to 7@dmn{n}
-(7@tie{}characters) in nroff mode and 7.2@dmn{n} otherwise.
-For nroff, this value should always be an integer multiple of unit @samp{n}
-to get consistent indentation.
+Set the body text indentation to @var{length}. If not specified, the
+indentation defaults to 7@dmn{n} (7@tie{}characters) in nroff mode and
+7.2@dmn{n} otherwise. For nroff, this value should always be an integer
+multiple of unit @samp{n} to get consistent indentation.
@item -rLL=@var{length}
-Set line length to @var{length}. If not specified, the line length
-is set to respect any value set by a prior @samp{ll} request (which
-@emph{must} be in effect when the @samp{TH} macro is invoked), if
-this differs from the built-in default for the formatter; otherwise it
-defaults to 78@dmn{n} in nroff mode (this is 78 characters per
-line) and 6.5@dmn{i} in troff mode.@footnote{Note that the use of
-a @samp{.ll @var{length}} request to initialize the line length, prior
-to use of the @samp{TH} macro, is supported for backward compatibility
-with some versions of the @code{man} program. @emph{Always} use the
-@option{-rLL=@var{length}} option, or an equivalent @samp{.nr LL @var{length}}
-request, in preference to such a @samp{.ll @var{length}} request.
-In particular, note that in nroff mode, the request @samp{.ll 65n},
-(with any @var{length} expression which evaluates equal to 65@dmn{n},
-i.e., the formatter's default line length in nroff mode), does @emph{not}
-set the line length to 65@dmn{n} (it is adjusted to the @code{man}
-macro package's default setting of 78@dmn{n}), whereas the use of the
-@option{-rLL=65n} option, or the @samp{.nr LL 65n}
-request @emph{does} establish a line length of 65@dmn{n}.}
+Set line length to @var{length}. If not specified, the line length is
+set to respect any value set by a prior @samp{ll} request (which
+@emph{must} be in effect when the @samp{TH} macro is invoked), if this
+differs from the built-in default for the formatter; otherwise it
+defaults to 78@dmn{n} in nroff mode (this is 78 characters per line) and
+6.5@dmn{i} in troff mode.@footnote{Note that the use of a @samp{.ll
+@var{length}} request to initialize the line length, prior to use of the
+@samp{TH} macro, is supported for backward compatibility with some
+versions of the @code{man} program. @emph{Always} use the
+@option{-rLL=@var{length}} option, or an equivalent @samp{.nr LL
+@var{length}} request, in preference to such a @samp{.ll @var{length}}
+request. In particular, note that in nroff mode, the request @samp{.ll
+65n}, (with any @var{length} expression which evaluates equal to
+65@dmn{n}, i.e., the formatter's default line length in nroff mode),
+does @emph{not} set the line length to 65@dmn{n} (it is adjusted to the
+@code{man} macro package's default setting of 78@dmn{n}), whereas the
+use of the @option{-rLL=65n} option, or the @samp{.nr LL 65n} request
+@emph{does} establish a line length of 65@dmn{n}.}
@item -rLT=@var{length}
Set title length to @var{length}. If not specified, the title length
@@ -2194,8 +2198,8 @@ Use @var{xx} (which can be 10, 11, or@tie{}12@dmn{pt}) as the base
document font size instead of the default value of@tie{}10@dmn{pt}.
@item -rSN=@var{length}
-Set the indentation for sub-subheadings to @var{length}.
-If not specified, the indentation defaults to 3@dmn{n}.
+Set the indentation for sub-subheadings to @var{length}. If not
+specified, the indentation defaults to 3@dmn{n}.
@item -rX@var{nnn}
After page @var{nnn}, number pages as @var{nnn}a, @var{nnn}b,
@@ -2219,8 +2223,8 @@ package.
@Defmac {TH, title section [@Var{extra1} [@Var{extra2} [@Var{extra3}]]], man}
Set the title of the man page to @var{title} and the section to
@var{section}, which must have a value between 1 and@tie{}8. The value
-of @var{section} may also have a string appended, e.g.@: @samp{.pm},
-to indicate a specific subsection of the man pages.
+of @var{section} may also have a string appended, e.g.@: @samp{.pm}, to
+indicate a specific subsection of the man pages.
Both @var{title} and @var{section} are positioned at the left and right
in the header line (with @var{section} in parentheses immediately
@@ -2233,35 +2237,35 @@ header line.
For @acronym{HTML} and @acronym{XHTML} output, headers and footers are
completely suppressed.
-Additionally, this macro starts a new page; the new line number is@tie{}1
-again (except if the @option{-rC1} option is given on the command line)
--- this feature is intended only for formatting multiple man pages; a
-single man page should contain exactly one @code{TH} macro at the
-beginning of the file.
+Additionally, this macro starts a new page; the new line number
+is@tie{}1 again (except if the @option{-rC1} option is given on the
+command line) -- this feature is intended only for formatting multiple
+man pages; a single man page should contain exactly one @code{TH} macro
+at the beginning of the file.
@endDefmac
@Defmac {SH, [@Var{heading}], man}
Set up an unnumbered section heading sticking out to the left. Prints
out all the text following @code{SH} up to the end of the line (or the
-text in the next line if there is no argument to @code{SH}) in bold
-face (or the font specified by the string @code{HF}), one size larger than
-the base document size. Additionally, the left margin and the indentation
-for the following text is reset to its default value.
+text in the next line if there is no argument to @code{SH}) in bold face
+(or the font specified by the string @code{HF}), one size larger than
+the base document size. Additionally, the left margin and the
+indentation for the following text is reset to its default value.
@endDefmac
@Defmac {SS, [@Var{heading}], man}
Set up an unnumbered (sub)section heading. Prints out all the text
following @code{SS} up to the end of the line (or the text in the next
line if there is no argument to @code{SS}) in bold face (or the font
-specified by the string @code{HF}), at the same size as the base document
-size. Additionally, the left margin and the indentation for the
-following text is reset to its default value.
+specified by the string @code{HF}), at the same size as the base
+document size. Additionally, the left margin and the indentation for
+the following text is reset to its default value.
@endDefmac
@Defmac {TP, [@Var{nnn}], man}
Set up an indented paragraph with label. The indentation is set to
-@var{nnn} if that argument is supplied (the default unit is @samp{n}
-if omitted), otherwise it is set to the previous indentation value
+@var{nnn} if that argument is supplied (the default unit is @samp{n} if
+omitted), otherwise it is set to the previous indentation value
specified with @code{TP}, @code{IP}, or @code{HP} (or to the default
value if none of them have been used yet).
@@ -2269,34 +2273,34 @@ The first line of text following this macro is interpreted as a string
to be printed flush-left, as it is appropriate for a label. It is not
interpreted as part of a paragraph, so there is no attempt to fill the
first line with text from the following input lines. Nevertheless, if
-the label is not as wide as the indentation the paragraph starts
-at the same line (but indented), continuing on the following lines.
-If the label is wider than the indentation the descriptive part
-of the paragraph begins on the line following the label, entirely
-indented. Note that neither font shape nor font size of the label is
-set to a default value; on the other hand, the rest of the text has
-default font settings.
+the label is not as wide as the indentation the paragraph starts at the
+same line (but indented), continuing on the following lines. If the
+label is wider than the indentation the descriptive part of the
+paragraph begins on the line following the label, entirely indented.
+Note that neither font shape nor font size of the label is set to a
+default value; on the other hand, the rest of the text has default font
+settings.
@endDefmac
@DefmacList {LP, , man}
@DefmacItem {PP, , man}
@DefmacListEnd {P, , man}
-These macros are mutual aliases. Any of them causes a line break at
-the current position, followed by a vertical space downwards by the
-amount specified by the @code{PD} macro. The font size and shape are
-reset to the default value (10@dmn{pt} roman if no @option{-rS} option
-is given on the command line). Finally, the current left margin and the
+These macros are mutual aliases. Any of them causes a line break at the
+current position, followed by a vertical space downwards by the amount
+specified by the @code{PD} macro. The font size and shape are reset to
+the default value (10@dmn{pt} roman if no @option{-rS} option is given
+on the command line). Finally, the current left margin and the
indentation is restored.
@endDefmac
@Defmac {IP, [@Var{designator} [@Var{nnn}]], man}
Set up an indented paragraph, using @var{designator} as a tag to mark
-its beginning. The indentation is set to @var{nnn} if that argument
-is supplied (default unit is @samp{n}), otherwise it is set to the
-previous indentation value specified with @code{TP}, @code{IP}, or
-@code{HP} (or the default value if none of them have been used yet).
-Font size and face of the paragraph (but not the designator) are reset
-to their default values.
+its beginning. The indentation is set to @var{nnn} if that argument is
+supplied (default unit is @samp{n}), otherwise it is set to the previous
+indentation value specified with @code{TP}, @code{IP}, or @code{HP} (or
+the default value if none of them have been used yet). Font size and
+face of the paragraph (but not the designator) are reset to their
+default values.
To start an indented paragraph with a particular indentation but without
a designator, use @samp{""} (two double quotes) as the first argument of
@@ -2316,9 +2320,9 @@ For example, to start a paragraph with bullets as the designator and
Set up a paragraph with hanging left indentation. The indentation is
set to @var{nnn} if that argument is supplied (default unit is
@samp{n}), otherwise it is set to the previous indentation value
-specified with @code{TP}, @code{IP}, or @code{HP} (or the default
-value if non of them have been used yet). Font size and face are reset
-to their default values.
+specified with @code{TP}, @code{IP}, or @code{HP} (or the default value
+if non of them have been used yet). Font size and face are reset to
+their default values.
@endDefmac
@Defmac {RS, [@Var{nnn}], man}
@@ -2326,18 +2330,18 @@ to their default values.
@cindex @code{man} macros, moving left margin
Move the left margin to the right by the value @var{nnn} if specified
(default unit is @samp{n}); otherwise it is set to the previous
-indentation value specified with @code{TP}, @code{IP}, or @code{HP}
-(or to the default value if none of them have been used yet). The
+indentation value specified with @code{TP}, @code{IP}, or @code{HP} (or
+to the default value if none of them have been used yet). The
indentation value is then set to the default.
Calls to the @code{RS} macro can be nested.
@endDefmac
@Defmac {RE, [@Var{nnn}], man}
-Move the left margin back to level @var{nnn}, restoring the previous left
-margin. If no argument is given, it moves one level back. The first
-level (i.e., no call to @code{RS} yet) has number@tie{}1, and each call
-to @code{RS} increases the level by@tie{}1.
+Move the left margin back to level @var{nnn}, restoring the previous
+left margin. If no argument is given, it moves one level back. The
+first level (i.e., no call to @code{RS} yet) has number@tie{}1, and each
+call to @code{RS} increases the level by@tie{}1.
@endDefmac
@cindex line breaks, with vertical space [@code{man}]
@@ -2355,8 +2359,8 @@ vertical space.
@cindex default indentation, resetting [@code{man}]
@cindex indentaion, resetting to default [@code{man}]
@cindex @code{man} macros, resetting default indentation
-Finally, the macros @code{SH}, @code{SS}, @code{LP} (@code{PP}, @code{P}),
-and @code{RS} reset the indentation to its default value.
+Finally, the macros @code{SH}, @code{SS}, @code{LP} (@code{PP},
+@code{P}), and @code{RS} reset the indentation to its default value.
@c ---------------------------------------------------------------------
@@ -2365,9 +2369,9 @@ and @code{RS} reset the indentation to its default value.
@cindex font selection [@code{man}]
@cindex @code{man} macros, how to set fonts
-The standard font is roman; the default text size is 10@tie{}point.
-If command line option @option{-rS=@var{n}} is given, use
-@var{n}@dmn{pt} as the default text size.
+The standard font is roman; the default text size is 10@tie{}point. If
+command line option @option{-rS=@var{n}} is given, use @var{n}@dmn{pt}
+as the default text size.
@Defmac {SM, [@Var{text}], man}
Set the text on the same line or the text on the next line in a font
@@ -2400,13 +2404,13 @@ between the arguments.
@endDefmac
@Defmac {RI, text, man}
-Set its arguments alternately in roman and italic, without a space between
-the arguments.
+Set its arguments alternately in roman and italic, without a space
+between the arguments.
@endDefmac
@Defmac {IR, text, man}
-Set its arguments alternately in italic and roman, without a space between
-the arguments.
+Set its arguments alternately in italic and roman, without a space
+between the arguments.
@endDefmac
@Defmac {BR, text, man}
@@ -2455,22 +2459,21 @@ the tab positions have been changed.
@cindex empty space before a paragraph [@code{man}]
@cindex @code{man} macros, empty space before a paragraph
Adjust the empty space before a new paragraph (or section). The
-optional argument gives the amount of space (default unit is
-@samp{v}); without parameter, the value is reset to its default value
-(1@tie{}line in nroff mode, 0.4@dmn{v}@tie{}otherwise).
+optional argument gives the amount of space (default unit is @samp{v});
+without parameter, the value is reset to its default value (1@tie{}line
+in nroff mode, 0.4@dmn{v}@tie{}otherwise).
This affects the macros @code{SH}, @code{SS}, @code{TP}, @code{LP} (as
well as @code{PP} and @code{P}), @code{IP}, and @code{HP}.
@endDefmac
-The following two macros are included for
-BSD compatibility.
+The following two macros are included for BSD compatibility.
@Defmac {AT, [@Var{system} [@Var{release}]], man}
@cindex @code{man}macros, BSD compatibility
-Alter the footer for use with @acronym{AT&T} manpages.
-This command exists only for compatibility; don't use it.
-The first argument @var{system} can be:
+Alter the footer for use with @acronym{AT&T} manpages. This command
+exists only for compatibility; don't use it. The first argument
+@var{system} can be:
@table @code
@item 3
@@ -2489,9 +2492,8 @@ release number (such as ``System V Release 3'').
@Defmac {UC, [@Var{version}], man}
@cindex @code{man}macros, BSD compatibility
-Alters the footer for use with @acronym{BSD} manpages.
-This command exists only for compatibility; don't use it.
-The argument can be:
+Alters the footer for use with @acronym{BSD} manpages. This command
+exists only for compatibility; don't use it. The argument can be:
@table @code
@item 3
@@ -2575,31 +2577,27 @@ and automatically call the right preprocessor(s).
@subsection Optional @file{man} extensions
@pindex man.local
-Use the file @file{man.local} for local extensions
-to the @code{man} macros or for style changes.
+Use the file @file{man.local} for local extensions to the @code{man}
+macros or for style changes.
@unnumberedsubsubsec Custom headers and footers
@cindex @code{man} macros, custom headers and footers
-In groff versions 1.18.2 and later, you can specify custom
-headers and footers by redefining the following macros in
-@file{man.local}.
+In groff versions 1.18.2 and later, you can specify custom headers and
+footers by redefining the following macros in @file{man.local}.
@Defmac {PT, , man}
-Control the content of the headers.
-Normally, the header prints the command name
-and section number on either side, and the
-optional fifth argument to @code{TH} in the center.
+Control the content of the headers. Normally, the header prints the
+command name and section number on either side, and the optional fifth
+argument to @code{TH} in the center.
@endDefmac
@Defmac {BT, , man}
-Control the content of the footers.
-Normally, the footer prints the page number
-and the third and fourth arguments to @code{TH}.
+Control the content of the footers. Normally, the footer prints the
+page number and the third and fourth arguments to @code{TH}.
-Use the @code{FT} number register to specify the
-footer position.
-The default is @minus{}0.5@dmn{i}.
+Use the @code{FT} number register to specify the footer position. The
+default is @minus{}0.5@dmn{i}.
@endDefmac
@unnumberedsubsubsec Ultrix-specific man macros
@@ -2607,12 +2605,10 @@ The default is @minus{}0.5@dmn{i}.
@cindex @code{man} macros, Ultrix-specific
@pindex man.ultrix
-The @code{groff} source distribution includes
-a file named @file{man.ultrix}, containing
-macros compatible with the Ultrix variant of
-@code{man}.
-Copy this file into @file{man.local} (or use the @code{mso} request to
-load it) to enable the following macros.
+The @code{groff} source distribution includes a file named
+@file{man.ultrix}, containing macros compatible with the Ultrix variant
+of @code{man}. Copy this file into @file{man.local} (or use the
+@code{mso} request to load it) to enable the following macros.
@Defmac {CT, @Var{key}, man}
Print @samp{<CTRL/@var{key}>}.
@@ -2631,10 +2627,8 @@ End a non-filled display started with @code{Ds}.
@endDefmac
@Defmac {EX, [@Var{indent}], man}
-Begins a non-filled display
-using the constant width (Courier) typeface.
-Use the optional @var{indent} argument to
-indent the display.
+Begin a non-filled display using the constant width (Courier) typeface.
+Use the optional @var{indent} argument to indent the display.
@endDefmac
@Defmac {EE, , man}
@@ -2642,24 +2636,21 @@ End a non-filled display started with @code{EX}.
@endDefmac
@Defmac {G, [@Var{text}], man}
-Sets @var{text} in Helvetica.
-If no text is present on the line where
-the macro is called, then the text of the
-next line appears in Helvetica.
+Set @var{text} in Helvetica. If no text is present on the line where
+the macro is called, then the text of the next line appears in
+Helvetica.
@endDefmac
@Defmac {GL, [@Var{text}], man}
-Sets @var{text} in Helvetica Oblique.
-If no text is present on the line where
-the macro is called, then the text of the
-next line appears in Helvetica Oblique.
+Set @var{text} in Helvetica Oblique. If no text is present on the line
+where the macro is called, then the text of the next line appears in
+Helvetica Oblique.
@endDefmac
@Defmac {HB, [@Var{text}], man}
-Sets @var{text} in Helvetica Bold.
-If no text is present on the line where
-the macro is called, then all text up to
-the next @code{HB} appears in Helvetica Bold.
+Set @var{text} in Helvetica Bold. If no text is present on the line
+where the macro is called, then all text up to the next @code{HB}
+appears in Helvetica Bold.
@endDefmac
@Defmac {TB, [@Var{text}], man}
@@ -2667,20 +2658,16 @@ Identical to @code{HB}.
@endDefmac
@Defmac {MS, @Var{title} @Var{sect} [@Var{punct}], man}
-Set a manpage reference in Ultrix format.
-The @var{title} is in Courier instead of italic.
-Optional punctuation follows the section number without
-an intervening space.
+Set a manpage reference in Ultrix format. The @var{title} is in Courier
+instead of italic. Optional punctuation follows the section number
+without an intervening space.
@endDefmac
@Defmac {NT, [@code{C}] [@Var{title}], man}
-Begin a note.
-Print the optional @Var{title}, or the word ``Note'',
-centered on the page.
-Text following the macro makes up the body of the note,
-and is indented on both sides.
-If the first argument is @code{C}, the body of the
-note is printed centered (the second argument replaces
+Begin a note. Print the optional @Var{title}, or the word ``Note'',
+centered on the page. Text following the macro makes up the body of the
+note, and is indented on both sides. If the first argument is @code{C},
+the body of the note is printed centered (the second argument replaces
the word ``Note'' if specified).
@endDefmac
@@ -2689,14 +2676,13 @@ End a note begun with @code{NT}.
@endDefmac
@Defmac {PN, @Var{path} [@Var{punct}], man}
-Set the path name in constant width (Courier),
-followed by optional punctuation.
+Set the path name in constant width (Courier), followed by optional
+punctuation.
@endDefmac
@Defmac {Pn, [@Var{punct}] @Var{path} [@Var{punct}], man}
-When called with two arguments, identical to @code{PN}.
-When called with three arguments,
-set the second argument in constant width (Courier),
+If called with two arguments, identical to @code{PN}. If called with
+three arguments, set the second argument in constant width (Courier),
bracketed by the first and third arguments in the current font.
@endDefmac
@@ -2709,9 +2695,8 @@ Print the string @samp{<RETURN>}.
@endDefmac
@Defmac {VS, [@code{4}], man}
-Start printing a change bar in the margin if
-the number @code{4} is specified.
-Otherwise, this macro does nothing.
+Start printing a change bar in the margin if the number@tie{}@code{4} is
+specified. Otherwise, this macro does nothing.
@endDefmac
@Defmac {VE, , man}
@@ -2720,10 +2705,9 @@ End printing the change bar begun by @code{VS}.
@unnumberedsubsubsec Simple example
-The following example @file{man.local} file
-alters the @code{SH} macro to add some extra
-vertical space before printing the heading.
-Headings are printed in Helvetica Bold.
+The following example @file{man.local} file alters the @code{SH} macro
+to add some extra vertical space before printing the heading. Headings
+are printed in Helvetica Bold.
@Example
.\" Make the heading fonts Helvetica
@@ -2737,6 +2721,7 @@ Headings are printed in Helvetica Bold.
..
@endExample
+
@c =====================================================================
@node mdoc, ms, man, Macro Packages
@@ -2757,8 +2742,8 @@ at the command line).
The @file{-ms} macros are suitable for reports, letters, books, user
manuals, and so forth. The package provides macros for cover pages,
-section headings, paragraphs, lists, footnotes, pagination, and a
-table of contents.
+section headings, paragraphs, lists, footnotes, pagination, and a table
+of contents.
@menu
* ms Intro::
@@ -2778,14 +2763,14 @@ table of contents.
The original @file{-ms} macros were included with @acronym{AT&T}
@code{troff} as well as the @file{man} macros. While the @file{man}
-package is intended for brief documents that can be read on-line as
-well as printed, the @file{ms} macros are suitable for longer
-documents that are meant to be printed rather than read on-line.
+package is intended for brief documents that can be read on-line as well
+as printed, the @file{ms} macros are suitable for longer documents that
+are meant to be printed rather than read on-line.
The @file{ms} macro package included with @code{groff} is a complete,
-bottom-up re-implementation. Several macros (specific to
-@acronym{AT&T} or Berkeley) are not included, while several new
-commands are. @xref{Differences from AT&T ms}, for more information.
+bottom-up re-implementation. Several macros (specific to @acronym{AT&T}
+or Berkeley) are not included, while several new commands are.
+@xref{Differences from AT&T ms}, for more information.
@c ---------------------------------------------------------------------
@@ -2807,8 +2792,8 @@ If you invoke the @code{RP} (report) macro on the first line of the
document, @code{groff} prints the cover page information on its own
page; otherwise it prints the information on the first page with your
document text immediately following. Other document formats found in
-@acronym{AT&T} @code{troff} are specific to @acronym{AT&T} or
-Berkeley, and are not supported in @code{groff}.
+@acronym{AT&T} @code{troff} are specific to @acronym{AT&T} or Berkeley,
+and are not supported in @code{groff}.
@item Format and layout
By setting number registers, you can change your document's type (font
@@ -2816,28 +2801,28 @@ and size), margins, spacing, headers and footers, and footnotes.
@xref{ms Document Control Registers}, for more details.
@item Cover page
-A cover page consists of a title, the author's name and institution,
-an abstract, and the date.@footnote{Actually, only the title is
-required.} @xref{ms Cover Page Macros}, for more details.
+A cover page consists of a title, the author's name and institution, an
+abstract, and the date.@footnote{Actually, only the title is required.}
+@xref{ms Cover Page Macros}, for more details.
@item Body
Following the cover page is your document. You can use the @file{ms}
macros to write reports, letters, books, and so forth. The package is
-designed for structured documents, consisting of paragraphs
-interspersed with headings and augmented by lists, footnotes, tables,
-and other common constructs. @xref{ms Body Text}, for more details.
+designed for structured documents, consisting of paragraphs interspersed
+with headings and augmented by lists, footnotes, tables, and other
+common constructs. @xref{ms Body Text}, for more details.
@item Table of contents
Longer documents usually include a table of contents, which you can
-invoke by placing the @code{TC} macro at the end of your document.
-The @file{ms} macros have minimal indexing facilities, consisting of
-the @code{IX} macro, which prints an entry on standard error.
-Printing the table of contents at the end is necessary since
-@code{groff} is a single-pass text formatter, thus it cannot determine
-the page number of each section until that section has actually been
-set and printed. Since @file{ms} output is intended for hardcopy, you
-can manually relocate the pages containing the table of contents
-between the cover page and the body text after printing.
+invoke by placing the @code{TC} macro at the end of your document. The
+@file{ms} macros have minimal indexing facilities, consisting of the
+@code{IX} macro, which prints an entry on standard error. Printing the
+table of contents at the end is necessary since @code{groff} is a
+single-pass text formatter, thus it cannot determine the page number of
+each section until that section has actually been set and printed.
+Since @file{ms} output is intended for hardcopy, you can manually
+relocate the pages containing the table of contents between the cover
+page and the body text after printing.
@end table
@c ---------------------------------------------------------------------
@@ -2848,10 +2833,9 @@ between the cover page and the body text after printing.
The following is a list of document control number registers. For the
sake of consistency, set registers related to margins at the beginning
-of your document, or just after the @code{RP} macro. You can set
-other registers later in your document, but you should keep them
-together at the beginning to make them easy to find and edit as
-necessary.
+of your document, or just after the @code{RP} macro. You can set other
+registers later in your document, but you should keep them together at
+the beginning to make them easy to find and edit as necessary.
@unnumberedsubsubsec Margin Settings
@@ -2901,9 +2885,9 @@ Default: 1@dmn{i}.
@unnumberedsubsubsec Text Settings
@Defmpreg {PS, ms}
-Defines the point size of the body text. If the value is larger than
-or equal to 1000, divide it by 1000 to get a fractional point size.
-For example, @samp{.nr PS 10250} sets the document's point size to
+Defines the point size of the body text. If the value is larger than or
+equal to 1000, divide it by 1000 to get a fractional point size. For
+example, @samp{.nr PS 10250} sets the document's point size to
10.25@dmn{p}.
Effective: next paragraph.
@@ -2923,12 +2907,11 @@ Default: 12@dmn{p}.
@endDefmpreg
@Defmpreg {PSINCR, ms}
-Defines an increment in point size, which is applied to section
-headings at nesting levels below the value specified in @code{GROWPS}.
-The value of @code{PSINCR} should be specified in points, with the
-@dmn{p} scaling factor, and may include a fractional component; for
-example, @w{@samp{.nr PSINCR 1.5p}} sets a point size increment of
-1.5@dmn{p}.
+Defines an increment in point size, which is applied to section headings
+at nesting levels below the value specified in @code{GROWPS}. The value
+of @code{PSINCR} should be specified in points, with the @dmn{p} scaling
+factor, and may include a fractional component; for example,
+@w{@samp{.nr PSINCR 1.5p}} sets a point size increment of 1.5@dmn{p}.
Effective: next section heading.
@@ -2938,11 +2921,11 @@ Default: 1@dmn{p}.
@Defmpreg {GROWPS, ms}
Defines the heading level below which the point size increment set by
@code{PSINCR} becomes effective. Section headings at and above the
-level specified by @code{GROWPS} are printed at the point size set
-by @code{PS}; for each level below the value of @code{GROWPS}, the
-point size is increased in steps equal to the value of
-@code{PSINCR}. Setting @code{GROWPS} to any value less than@tie{}2
-disables the incremental heading size feature.
+level specified by @code{GROWPS} are printed at the point size set by
+@code{PS}; for each level below the value of @code{GROWPS}, the point
+size is increased in steps equal to the value of @code{PSINCR}. Setting
+@code{GROWPS} to any value less than@tie{}2 disables the incremental
+heading size feature.
Effective: next section heading.
@@ -2951,8 +2934,8 @@ Default: 0.
@Defmpreg {HY, ms}
Defines the hyphenation level. @code{HY} sets safely the value of the
-low-level @code{hy} register. Setting the value of @code{HY}
-to@tie{}0 is equivalent to using the @code{nh} request.
+low-level @code{hy} register. Setting the value of @code{HY} to@tie{}0
+is equivalent to using the @code{nh} request.
Effective: next paragraph.
@@ -2996,11 +2979,11 @@ Default: 5@dmn{n}.
@Defmpreg {PORPHANS, ms}
Defines the minimum number of initial lines of any paragraph which
-should be kept together, to avoid orphan lines at the bottom of a
-page. If a new paragraph is started close to the bottom of a page,
-and there is insufficient space to accommodate @code{PORPHANS} lines
-before an automatic page break, then the page break is forced,
-before the start of the paragraph.
+should be kept together, to avoid orphan lines at the bottom of a page.
+If a new paragraph is started close to the bottom of a page, and there
+is insufficient space to accommodate @code{PORPHANS} lines before an
+automatic page break, then the page break is forced, before the start of
+the paragraph.
Effective: next paragraph.
@@ -3010,11 +2993,11 @@ Default: 1.
@Defmpreg {HORPHANS, ms}
Defines the minimum number of lines of the following paragraph which
should be kept together with any section heading introduced by the
-@code{NH} or @code{SH} macros. If a section heading is placed close
-to the bottom of a page, and there is insufficient space to
-accommodate both the heading and at least @code{HORPHANS} lines of the
-following paragraph, before an automatic page break, then the page
-break is forced before the heading.
+@code{NH} or @code{SH} macros. If a section heading is placed close to
+the bottom of a page, and there is insufficient space to accommodate
+both the heading and at least @code{HORPHANS} lines of the following
+paragraph, before an automatic page break, then the page break is forced
+before the heading.
Effective: next paragraph.
@@ -3105,14 +3088,13 @@ Default: 2@dmn{n}.
@cindex @code{ms} macros, cover page
@cindex cover page macros, [@code{ms}]
-Use the following macros to create a cover page for your document in
-the order shown.
+Use the following macros to create a cover page for your document in the
+order shown.
@Defmac {RP, [@code{no}], ms}
Specifies the report format for your document. The report format
-creates a separate cover page. The default action (no @code{RP}
-macro) is to print a subset of the cover page on page@tie{}1 of your
-document.
+creates a separate cover page. The default action (no @code{RP} macro)
+is to print a subset of the cover page on page@tie{}1 of your document.
If you use the word @code{no} as an optional argument, @code{groff}
prints a title page but does not repeat any of the title page
@@ -3138,8 +3120,8 @@ the default for @code{troff}.
@endDefmac
@Defmac {TL, , ms}
-Specifies the document title. @code{groff} collects text following
-the @code{TL} macro into the title, until reaching the author name or
+Specifies the document title. @code{groff} collects text following the
+@code{TL} macro into the title, until reaching the author name or
abstract.
@endDefmac
@@ -3219,8 +3201,8 @@ user demand.
@subsection Body text
@cindex @code{ms} macros, body text
-This section describes macros used to mark up the body of your
-document. Examples include paragraphs, sections, and other groups.
+This section describes macros used to mark up the body of your document.
+Examples include paragraphs, sections, and other groups.
@menu
* Paragraphs in ms::
@@ -3305,17 +3287,17 @@ printing of orphan lines at the bottom of any page.
@subsubsection Headings
@cindex @code{ms} macros, headings
-Use headings to create a hierarchical structure for your document.
-The @file{ms} macros print headings in @strong{bold}, using the same
-font family and point size as the body text.
+Use headings to create a hierarchical structure for your document. The
+@file{ms} macros print headings in @strong{bold}, using the same font
+family and point size as the body text.
The following describes the heading macros:
@DefmacList {NH, @Var{curr-level}, ms}
@DefmacListEnd {NH, @t{S} @Var{level0} @dots{}, ms}
-Numbered heading. The argument is either a numeric argument to
-indicate the level of the heading, or the letter@tie{}@code{S}
-followed by numeric arguments to set the heading level explicitly.
+Numbered heading. The argument is either a numeric argument to indicate
+the level of the heading, or the letter@tie{}@code{S} followed by
+numeric arguments to set the heading level explicitly.
If you specify heading levels out of sequence, such as invoking
@samp{.NH 3} after @samp{.NH 1}, @code{groff} prints a warning on
@@ -3329,9 +3311,9 @@ After invocation of @code{NH}, the assigned section number is made
available in the strings @code{SN-DOT} (as it appears in a printed
section heading with default formatting, followed by a terminating
period), and @code{SN-NO-DOT} (with the terminating period omitted).
-The string @code{SN} is also defined, as an alias for @code{SN-DOT};
-if preferred, you may redefine it as an alias for @code{SN-NO-DOT},
-by including the initialization
+The string @code{SN} is also defined, as an alias for @code{SN-DOT}; if
+preferred, you may redefine it as an alias for @code{SN-NO-DOT}, by
+including the initialization
@Example
.als SN SN-NO-DOT
@endExample
@@ -3341,11 +3323,10 @@ at any time @strong{before} you would like the change to take effect.
@endDefstr
@Defstr {SN-STYLE, ms}
-You may control the style used to print section numbers, within
-numbered section headings, by defining an appropriate alias for the
-string @code{SN-STYLE}. The default style, in which the printed
-section number is followed by a terminating period, is obtained
-by defining the alias
+You may control the style used to print section numbers, within numbered
+section headings, by defining an appropriate alias for the string
+@code{SN-STYLE}. The default style, in which the printed section number
+is followed by a terminating period, is obtained by defining the alias
@Example
.als SN-STYLE SN-DOT
@endExample
@@ -3358,8 +3339,8 @@ appearing in numbered section headings, you may define the alias
@endExample
@noindent
-Any such change in section numbering style becomes effective from
-the next use of @code{.NH}, following redefinition of the alias for
+Any such change in section numbering style becomes effective from the
+next use of @code{.NH}, following redefinition of the alias for
@code{SN-STYLE}.
@endDefstr
@@ -3367,12 +3348,12 @@ the next use of @code{.NH}, following redefinition of the alias for
Unnumbered subheading.
The optional @var{match-level} argument is a GNU extension. It is a
-number indicating the level of the heading, in a manner analogous to
-the @var{curr-level} argument to @code{.NH}. Its purpose is to match
-the point size, at which the heading is printed, to the size of a
-numbered heading at the same level, when the @code{GROWPS} and
-@code{PSINCR} heading size adjustment mechanism is in effect.
-@xref{ms Document Control Registers}.
+number indicating the level of the heading, in a manner analogous to the
+@var{curr-level} argument to @code{.NH}. Its purpose is to match the
+point size, at which the heading is printed, to the size of a numbered
+heading at the same level, when the @code{GROWPS} and @code{PSINCR}
+heading size adjustment mechanism is in effect. @xref{ms Document
+Control Registers}.
@endDefmac
The @code{HORPHANS} register (@pxref{ms Document Control Registers})
@@ -3390,12 +3371,12 @@ The @file{ms} macros provide a variety of methods to highlight or
emphasize text:
@Defmac {B, [@Var{txt} [@Var{post} [@Var{pre}]]], ms}
-Sets its first argument in @strong{bold type}. If you specify a
-second argument, @code{groff} prints it in the previous font after the
-bold text, with no intervening space (this allows you to set
-punctuation after the highlighted text without highlighting the
-punctuation). Similarly, it prints the third argument (if any) in the
-previous font @strong{before} the first argument. For example,
+Sets its first argument in @strong{bold type}. If you specify a second
+argument, @code{groff} prints it in the previous font after the bold
+text, with no intervening space (this allows you to set punctuation
+after the highlighted text without highlighting the punctuation).
+Similarly, it prints the third argument (if any) in the previous font
+@strong{before} the first argument. For example,
@Example
.B foo ) (
@@ -3473,10 +3454,9 @@ superscript.
The @code{IP} macro handles duties for all lists.
@Defmac {IP, [@Var{marker} [@Var{width}]], ms}
-The @var{marker} is usually a bullet glyph (@code{\[bu]}) for
-unordered lists, a number (or auto-incrementing number register) for
-numbered lists, or a word or phrase for indented (glossary-style)
-lists.
+The @var{marker} is usually a bullet glyph (@code{\[bu]}) for unordered
+lists, a number (or auto-incrementing number register) for numbered
+lists, or a word or phrase for indented (glossary-style) lists.
The @var{width} specifies the indentation for the body of each list
item; its default unit is @samp{n}. Once specified, the indentation
@@ -3575,10 +3555,10 @@ money
In the last example, the @code{IP} macro places the definition on the
same line as the term if it has enough space; otherwise, it breaks to
-the next line and starts the definition below the term. This may or
-may not be the effect you want, especially if some of the definitions
-break and some do not. The following examples show two possible ways
-to force a break.
+the next line and starts the definition below the term. This may or may
+not be the effect you want, especially if some of the definitions break
+and some do not. The following examples show two possible ways to force
+a break.
The first workaround uses the @code{br} request to force a break after
printing the term or label.
@@ -3597,9 +3577,9 @@ Gotta pay for those lawyers and guns!
@endExample
The second workaround uses the @code{\p} escape to force the break.
-Note the space following the escape; this is important. If you omit
-the space, @code{groff} prints the first word on the same line as the
-term or label (if it fits) @strong{then} breaks the line.
+Note the space following the escape; this is important. If you omit the
+space, @code{groff} prints the first word on the same line as the term
+or label (if it fits) @strong{then} breaks the line.
@Example
@cartouche
@@ -3656,15 +3636,15 @@ o Guns
@node Indentation values in ms, Tabstops in ms, Lists in ms, ms Body Text
@subsubsection Indentation values
-In many situations, you may need to indentation a section of text
-while still wrapping and filling. @xref{Lists in ms}, for an example
-of nested lists.
+In many situations, you may need to indentation a section of text while
+still wrapping and filling. @xref{Lists in ms}, for an example of
+nested lists.
@DefmacList {RS, , ms}
@DefmacListEnd {RE, , ms}
-These macros begin and end an indented section. The @code{PI}
-register controls the amount of indentation, allowing the indented
-text to line up under hanging and indented paragraphs.
+These macros begin and end an indented section. The @code{PI} register
+controls the amount of indentation, allowing the indented text to line
+up under hanging and indented paragraphs.
@endDefmac
@xref{ms Displays and Keeps}, for macros to indentation and turn off
@@ -3675,13 +3655,13 @@ filling.
@node Tabstops in ms, ms Displays and Keeps, Indentation values in ms, ms Body Text
@subsubsection Tab Stops
-Use the @code{ta} request to define tab stops as needed. @xref{Tabs
-and Fields}.
+Use the @code{ta} request to define tab stops as needed. @xref{Tabs and
+Fields}.
-@Defmac{TA, , ms}
+@Defmac {TA, , ms}
Use this macro to reset the tab stops to the default for @file{ms}
-(every 5n). You can redefine the @code{TA} macro to create a
-different set of default tab stops.
+(every 5n). You can redefine the @code{TA} macro to create a different
+set of default tab stops.
@endDefmac
@c ---------------------------------------------------------------------
@@ -3696,9 +3676,9 @@ different set of default tab stops.
Use displays to show text-based examples or figures (such as code
listings).
-Displays turn off filling, so lines of code are displayed as-is
-without inserting @code{br} requests in between each line. Displays
-can be @dfn{kept} on a single page, or allowed to break across pages.
+Displays turn off filling, so lines of code are displayed as-is without
+inserting @code{br} requests in between each line. Displays can be
+@dfn{kept} on a single page, or allowed to break across pages.
@DefmacList {DS, @t{L}, ms}
@DefmacItem {LD, , ms}
@@ -3712,21 +3692,20 @@ ends the display.
@DefmacList {DS, @t{I}, ms}
@DefmacItem {ID, , ms}
@DefmacListEnd {DE, , ms}
-Indents the display as defined by the @code{DI} register. The
-@samp{.DS I} call generates a page break, if necessary, to keep the
-entire display on one page. The @code{ID} macro allows the display to
-break across pages. The @code{DE} macro ends the display.
+Indents the display as defined by the @code{DI} register. The @samp{.DS
+I} call generates a page break, if necessary, to keep the entire display
+on one page. The @code{ID} macro allows the display to break across
+pages. The @code{DE} macro ends the display.
@endDefmac
@DefmacList {DS, @t{B}, ms}
@DefmacItem {BD, , ms}
@DefmacListEnd {DE, , ms}
-Sets a block-centered display: the entire display is left-justified,
-but indented so that the longest line in the display is centered on
-the page. The @samp{.DS B} call generates a page break, if necessary,
-to keep the entire display on one page. The @code{BD} macro allows
-the display to break across pages. The @code{DE} macro ends the
-display.
+Sets a block-centered display: the entire display is left-justified, but
+indented so that the longest line in the display is centered on the
+page. The @samp{.DS B} call generates a page break, if necessary, to
+keep the entire display on one page. The @code{BD} macro allows the
+display to break across pages. The @code{DE} macro ends the display.
@endDefmac
@DefmacList {DS, @t{C}, ms}
@@ -3742,9 +3721,9 @@ break across pages. The @code{DE} macro ends the display.
@DefmacItem {RD, , ms}
@DefmacListEnd {DE, , ms}
Right-justifies each line in the display. The @samp{.DS R} call
-generates a page break, if necessary, to keep the entire display on
-one page. The @code{RD} macro allows the display to break across
-pages. The @code{DE} macro ends the display.
+generates a page break, if necessary, to keep the entire display on one
+page. The @code{RD} macro allows the display to break across pages.
+The @code{DE} macro ends the display.
@endDefmac
@DefmacList {Ds, , ms}
@@ -3752,10 +3731,10 @@ pages. The @code{DE} macro ends the display.
These two macros were formerly provided as aliases for @code{DS} and
@code{DE}, respectively. They have been removed, and should no longer
be used. The original implementations of @code{DS} and @code{DE} are
-retained, and should be used instead. X11 documents which actually
-use @code{Ds} and @code{De} always load a specific macro file from the
-X11 distribution (@file{macros.t}) which provides proper definitions
-for the two macros.
+retained, and should be used instead. X11 documents which actually use
+@code{Ds} and @code{De} always load a specific macro file from the X11
+distribution (@file{macros.t}) which provides proper definitions for the
+two macros.
@endDefmac
On occasion, you may want to @dfn{keep} other text together on a page.
@@ -3766,34 +3745,33 @@ macros for this purpose.
@DefmacList {KS, , ms}
@DefmacListEnd {KE, , ms}
-The @code{KS} macro begins a block of text to be kept on a single
-page, and the @code{KE} macro ends the block.
+The @code{KS} macro begins a block of text to be kept on a single page,
+and the @code{KE} macro ends the block.
@endDefmac
@DefmacList {KF, , ms}
@DefmacListEnd {KE, , ms}
Specifies a @dfn{floating keep}; if the keep cannot fit on the current
page, @code{groff} holds the contents of the keep and allows text
-following the keep (in the source file) to fill in the remainder of
-the current page. When the page breaks, whether by an explicit
-@code{bp} request or by reaching the end of the page, @code{groff}
-prints the floating keep at the top of the new page. This is useful
-for printing large graphics or tables that do not need to appear
-exactly where specified.
+following the keep (in the source file) to fill in the remainder of the
+current page. When the page breaks, whether by an explicit @code{bp}
+request or by reaching the end of the page, @code{groff} prints the
+floating keep at the top of the new page. This is useful for printing
+large graphics or tables that do not need to appear exactly where
+specified.
@endDefmac
-You can also use the @code{ne} request to force a page break if there
-is not enough vertical space remaining on the page.
+You can also use the @code{ne} request to force a page break if there is
+not enough vertical space remaining on the page.
-Use the following macros to draw a box around a section of text (such
-as a display).
+Use the following macros to draw a box around a section of text (such as
+a display).
@DefmacList {B1, , ms}
@DefmacListEnd {B2, , ms}
Marks the beginning and ending of text that is to have a box drawn
-around it. The @code{B1} macro begins the box; the @code{B2} macro
-ends it. Text in the box is automatically placed in a diversion
-(keep).
+around it. The @code{B1} macro begins the box; the @code{B2} macro ends
+it. Text in the box is automatically placed in a diversion (keep).
@endDefmac
@c ---------------------------------------------------------------------
@@ -3815,23 +3793,23 @@ The @file{ms} macros support the standard @code{groff} preprocessors:
@pindex pic
@pindex eqn
@pindex refer
-You mark text meant for preprocessors by enclosing it
-in pairs of tags as follows.
+You mark text meant for preprocessors by enclosing it in pairs of tags
+as follows.
@DefmacList {TS, [@code{H}], ms}
@DefmacListEnd {TE, , ms}
Denotes a table, to be processed by the @code{tbl} preprocessor. The
optional argument@tie{}@code{H} to @code{TS} instructs @code{groff} to
-create a running header with the information up to the @code{TH}
-macro. @code{groff} prints the header at the beginning of the table;
-if the table runs onto another page, @code{groff} prints the header on
-the next page as well.
+create a running header with the information up to the @code{TH} macro.
+@code{groff} prints the header at the beginning of the table; if the
+table runs onto another page, @code{groff} prints the header on the next
+page as well.
@endDefmac
@DefmacList {PS, , ms}
@DefmacListEnd {PE, , ms}
-Denotes a graphic, to be processed by the @code{pic} preprocessor.
-You can create a @code{pic} file by hand, using the @acronym{AT&T}
+Denotes a graphic, to be processed by the @code{pic} preprocessor. You
+can create a @code{pic} file by hand, using the @acronym{AT&T}
@code{pic} manual available on the Web as a reference, or by using a
graphics program such as @code{xfig}.
@endDefmac
@@ -3890,8 +3868,8 @@ l | l .
@cindex footnotes [@code{ms}]
The @file{ms} macro package has a flexible footnote system. You can
-specify either numbered footnotes or symbolic footnotes (that is,
-using a marker such as a dagger symbol).
+specify either numbered footnotes or symbolic footnotes (that is, using
+a marker such as a dagger symbol).
@Defstr {*, ms}
Specifies the location of a numbered footnote marker in the text.
@@ -3901,14 +3879,13 @@ Specifies the location of a numbered footnote marker in the text.
@DefmacListEnd {FE, , ms}
Specifies the text of the footnote. The default action is to create a
numbered footnote; you can create a symbolic footnote by specifying a
-@dfn{mark} glyph (such as @code{\[dg]} for the dagger glyph) in the
-body text and as an argument to the @code{FS} macro, followed by the
-text of the footnote and the @code{FE} macro.
+@dfn{mark} glyph (such as @code{\[dg]} for the dagger glyph) in the body
+text and as an argument to the @code{FS} macro, followed by the text of
+the footnote and the @code{FE} macro.
@endDefmac
-You can control how @code{groff} prints footnote numbers by changing
-the value of the @code{FF} register. @xref{ms Document Control
-Registers}.
+You can control how @code{groff} prints footnote numbers by changing the
+value of the @code{FF} register. @xref{ms Document Control Registers}.
@cindex footnotes, and keeps [@code{ms}]
@cindex keeps, and footnotes [@code{ms}]
@@ -3928,9 +3905,9 @@ the same order as the corresponding occurrences of @code{\**}.
@cindex @code{ms} macros, page layout
@cindex page layout [@code{ms}]
-The default output from the @file{ms} macros provides a minimalist
-page layout: it prints a single column, with the page number centered
-at the top of each page. It prints no footers.
+The default output from the @file{ms} macros provides a minimalist page
+layout: it prints a single column, with the page number centered at the
+top of each page. It prints no footers.
You can change the layout by setting the proper number registers and
strings.
@@ -3975,26 +3952,25 @@ odd pages, use the following macros:
@DefmacItem {OF, @t{'}@Var{left}@t{'}@Var{center}@t{'}@Var{right}@t{'}, ms}
@DefmacListEnd {EF, @t{'}@Var{left}@t{'}@Var{center}@t{'}@Var{right}@t{'}, ms}
The @code{OH} and @code{EH} macros define headers for the odd and even
-pages; the @code{OF} and @code{EF} macros define footers for the odd
-and even pages. This is more flexible than defining the individual
-strings.
+pages; the @code{OF} and @code{EF} macros define footers for the odd and
+even pages. This is more flexible than defining the individual strings.
You can replace the quote (@code{'}) marks with any character not
appearing in the header or footer text.
@endDefmac
-To specify custom header and footer processing,
-redefine the following macros:
+To specify custom header and footer processing, redefine the following
+macros:
@DefmacList {PT,, ms}
@DefmacItem {HD,, ms}
@DefmacListEnd {BT,, ms}
-The @code{PT} macro defines a custom header;
-the @code{BT} macro defines a custom footer. These macros must
-handle odd/even/first page differences if necessary.
+The @code{PT} macro defines a custom header; the @code{BT} macro defines
+a custom footer. These macros must handle odd/even/first page
+differences if necessary.
-The @code{HD} macro defines additional header processing
-to take place after executing the @code{PT} macro.
+The @code{HD} macro defines additional header processing to take place
+after executing the @code{PT} macro.
@endDefmac
@c ---------------------------------------------------------------------
@@ -4003,8 +3979,8 @@ to take place after executing the @code{PT} macro.
@subsubsection Margins
@cindex @code{ms} macros, margins
-You control margins using a set of number registers. @xref{ms
-Document Control Registers}, for details.
+You control margins using a set of number registers. @xref{ms Document
+Control Registers}, for details.
@c ---------------------------------------------------------------------
@@ -4013,11 +3989,11 @@ Document Control Registers}, for details.
@cindex @code{ms} macros, multiple columns
@cindex multiple columns [@code{ms}]
-The @file{ms} macros can set text in as many columns as do
-reasonably fit on the page. The following macros are available; all
-of them force a page break if a multi-column mode is already set.
-However, if the current mode is single-column, starting a multi-column
-mode does @emph{not} force a page break.
+The @file{ms} macros can set text in as many columns as do reasonably
+fit on the page. The following macros are available; all of them force
+a page break if a multi-column mode is already set. However, if the
+current mode is single-column, starting a multi-column mode does
+@emph{not} force a page break.
@Defmac {1C, , ms}
Single-column mode.
@@ -4028,10 +4004,10 @@ Two-column mode.
@endDefmac
@Defmac {MC, [@Var{width} [@Var{gutter}]], ms}
-Multi-column mode. If you specify no arguments, it is equivalent to
-the @code{2C} macro. Otherwise, @var{width} is the width of each
-column and @var{gutter} is the space between columns. The
-@code{MINGW} number register controls the default gutter width.
+Multi-column mode. If you specify no arguments, it is equivalent to the
+@code{2C} macro. Otherwise, @var{width} is the width of each column and
+@var{gutter} is the space between columns. The @code{MINGW} number
+register controls the default gutter width.
@endDefmac
@c ---------------------------------------------------------------------
@@ -4050,10 +4026,10 @@ those headings wrapped in @code{XS} and @code{XE} macros.
@DefmacItem {XA, [@Var{page}], ms}
@DefmacListEnd {XE, , ms}
These macros define a table of contents or an individual entry in the
-table of contents, depending on their use. The macros are very
-simple; they cannot indent a heading based on its level. The easiest
-way to work around this is to add tabs to the table of contents
-string. The following is an example:
+table of contents, depending on their use. The macros are very simple;
+they cannot indent a heading based on its level. The easiest way to
+work around this is to add tabs to the table of contents string. The
+following is an example:
@Example
@cartouche
@@ -4076,9 +4052,9 @@ Methodology
@endExample
You can manually create a table of contents by beginning with the
-@code{XS} macro for the first entry, specifying the page number for
-that entry as the argument to @code{XS}. Add subsequent entries using
-the @code{XA} macro, specifying the page number for that entry as the
+@code{XS} macro for the first entry, specifying the page number for that
+entry as the argument to @code{XS}. Add subsequent entries using the
+@code{XA} macro, specifying the page number for that entry as the
argument to @code{XA}. The following is an example:
@Example
@@ -4102,17 +4078,17 @@ place this macro at the end of the file, since @code{groff} is a
single-pass formatter and can only print what has been collected up to
the point that the @code{TC} macro appears.
-The optional argument @code{no} suppresses printing the title
-specified by the string register @code{TOC}.
+The optional argument @code{no} suppresses printing the title specified
+by the string register @code{TOC}.
@endDefmac
-@Defmac{PX, [@code{no}], ms}
+@Defmac {PX, [@code{no}], ms}
Prints the table of contents on a new page, using the current page
-numbering sequence. Use this macro to print a manually-generated
-table of contents at the beginning of your document.
+numbering sequence. Use this macro to print a manually-generated table
+of contents at the beginning of your document.
-The optional argument @code{no} suppresses printing the title
-specified by the string register @code{TOC}.
+The optional argument @code{no} suppresses printing the title specified
+by the string register @code{TOC}.
@endDefmac
The @cite{Groff and Friends HOWTO} includes a @code{sed} script that
@@ -4134,9 +4110,9 @@ deal of time in the long run if you use @file{ms} regularly.
@cindex special characters [@code{ms}]
@cindex strings [@code{ms}]
-The @file{ms} macros provide the following predefined strings. You
-can change the string definitions to help in creating documents in
-languages other than English.
+The @file{ms} macros provide the following predefined strings. You can
+change the string definitions to help in creating documents in languages
+other than English.
@Defstr {REFERENCES, ms}
Contains the string printed at the beginning of the references
@@ -4169,8 +4145,7 @@ Prints the full name of the month in dates. The default is
@endDefstr
The following special characters are available@footnote{For an
-explanation what special characters are see @ref{Special
-Characters}.}:
+explanation what special characters are see @ref{Special Characters}.}:
@Defstr {-, ms}
Prints an em dash.
@@ -4185,9 +4160,8 @@ Prints typographer's quotes in troff, and plain quotes in nroff.
Improved accent marks are available in the @file{ms} macros.
@Defmac {AM, , ms}
-Specify this macro at the beginning of your document to enable
-extended accent marks and special characters. This is a Berkeley
-extension.
+Specify this macro at the beginning of your document to enable extended
+accent marks and special characters. This is a Berkeley extension.
To use the accent marks, place them @strong{after} the character being
accented.
@@ -4299,23 +4273,23 @@ Uppercase Æ ligature.
@cindex @code{ms} macros, differences from @acronym{AT&T}
@cindex @acronym{AT&T} @code{troff}, @code{ms} macro package differences
-This section lists the (minor) differences between the @code{groff
--ms} macros and @acronym{AT&T} @code{troff -ms} macros.
+This section lists the (minor) differences between the @code{groff -ms}
+macros and @acronym{AT&T} @code{troff -ms} macros.
@itemize @bullet
@item
The internals of @code{groff -ms} differ from the internals of
@acronym{AT&T} @code{troff -ms}. Documents that depend upon
-implementation details of @acronym{AT&T} @code{troff -ms} may not
-format properly with @code{groff -ms}.
+implementation details of @acronym{AT&T} @code{troff -ms} may not format
+properly with @code{groff -ms}.
@item
The general error-handling policy of @code{groff -ms} is to detect and
report errors, rather than silently to ignore them.
@item
-@code{groff -ms} does not work in compatibility mode (this is, with
-the @option{-C} option).
+@code{groff -ms} does not work in compatibility mode (this is, with the
+@option{-C} option).
@item
There is no special support for typewriter-like devices.
@@ -4328,52 +4302,53 @@ Multiple line spacing is not supported. Use a larger vertical spacing
instead.
@item
-Some @acronym{UNIX} @code{ms} documentation says that the @code{CW}
-and @code{GW} number registers can be used to control the column width
-and gutter width, respectively. These number registers are not used in
+Some @acronym{UNIX} @code{ms} documentation says that the @code{CW} and
+@code{GW} number registers can be used to control the column width and
+gutter width, respectively. These number registers are not used in
@code{groff -ms}.
@item
-Macros that cause a reset (paragraphs, headings, etc.@:) may change
-the indentation. Macros that change the indentation do not increment
-or decrement the indentation, but rather set it absolutely. This can
-cause problems for documents that define additional macros of their
-own. The solution is to use not the @code{in} request but instead the
-@code{RS} and @code{RE} macros.
+Macros that cause a reset (paragraphs, headings, etc.@:) may change the
+indentation. Macros that change the indentation do not increment or
+decrement the indentation, but rather set it absolutely. This can cause
+problems for documents that define additional macros of their own. The
+solution is to use not the @code{in} request but instead the @code{RS}
+and @code{RE} macros.
@item
To make @code{groff -ms} use the default page offset (which also
specifies the left margin), the @code{PO} register must stay undefined
until the first @file{-ms} macro is evaluated. This implies that
-@code{PO} should not be used early in the document, unless it is
-changed also: Remember that accessing an undefined register
-automatically defines it.
+@code{PO} should not be used early in the document, unless it is changed
+also: Remember that accessing an undefined register automatically
+defines it.
@end itemize
@Defmpreg {GS, ms}
This number register is set to@tie{}1 by the @code{groff -ms} macros,
but it is not used by the @code{AT&T} @code{troff -ms} macros.
Documents that need to determine whether they are being formatted with
-@code{AT&T} @code{troff -ms} or @code{groff -ms} should use this
-number register.
+@code{AT&T} @code{troff -ms} or @code{groff -ms} should use this number
+register.
@endDefmpreg
-Emulations of a few ancient Bell Labs macros can be re-enabled by calling
-the otherwise undocumented @code{SC} section-header macro. Calling @code{SC}
-enables @code{UC} for marking up a product or application name, and the pair
-@code{P1}/@code{P2} for surrounding code example displays.
+Emulations of a few ancient Bell Labs macros can be re-enabled by
+calling the otherwise undocumented @code{SC} section-header macro.
+Calling @code{SC} enables @code{UC} for marking up a product or
+application name, and the pair @code{P1}/@code{P2} for surrounding code
+example displays.
-These are not enabled by default because (a)@tie{}they were not documented,
-in the original @code{ms} manual, and (b)@tie{}the @code{P1} and @code{UC}
-macros collide with different macros with the same names in the
-Berkeley version of @code{ms}.
+These are not enabled by default because (a)@tie{}they were not
+documented, in the original @code{ms} manual, and (b)@tie{}the @code{P1}
+and @code{UC} macros collide with different macros with the same names
+in the Berkeley version of @code{ms}.
-These @code{groff} emulations are sufficient to give back the
-1976 Kernighan@tie{}& Cherry paper @cite{Typsetting Mathematics -- User's
-Guide} its section headings, and restore some text that had gone
-missing as arguments of undefined macros. No warranty express or
-implied is given as to how well the typographic details these produce
-match the original Bell Labs macros.
+These @code{groff} emulations are sufficient to give back the 1976
+Kernighan@tie{}& Cherry paper @cite{Typsetting Mathematics -- User's
+Guide} its section headings, and restore some text that had gone missing
+as arguments of undefined macros. No warranty express or implied is
+given as to how well the typographic details these produce match the
+original Bell Labs macros.
@menu
* Missing ms Macros::
@@ -4422,19 +4397,18 @@ A cover sheet macro
@node Additional ms Macros, , Missing ms Macros, Differences from AT&T ms
@subsubsection @code{groff} macros not appearing in @acronym{AT&T} @code{troff}
-The @code{groff -ms} macros have a few minor extensions
-compared to the @acronym{AT&T} @code{troff -ms} macros.
+The @code{groff -ms} macros have a few minor extensions compared to the
+@acronym{AT&T} @code{troff -ms} macros.
@Defmac {AM, , ms}
-Improved accent marks.
-@xref{ms Strings and Special Characters}, for details.
+Improved accent marks. @xref{ms Strings and Special Characters}, for
+details.
@endDefmac
@Defmac {DS, @t{I}, ms}
-Indented display.
-The default behavior of @acronym{AT&T} @code{troff -ms}
-was to indent; the @code{groff} default prints displays
-flush left with the body text.
+Indented display. The default behavior of @acronym{AT&T} @code{troff
+-ms} was to indent; the @code{groff} default prints displays flush left
+with the body text.
@endDefmac
@Defmac {CW, , ms}
@@ -4442,24 +4416,22 @@ Print text in @code{constant width} (Courier) font.
@endDefmac
@Defmac {IX, , ms}
-Indexing term (printed on standard error).
-You can write a script to capture and process an index
-generated in this manner.
+Indexing term (printed on standard error). You can write a script to
+capture and process an index generated in this manner.
@endDefmac
The following additional number registers
appear in @code{groff -ms}:
@Defmpreg {MINGW, ms}
-Specifies a minimum space
-between columns (for multi-column output); this takes the
-place of the @code{GW} register that was documented but apparently
-not implemented in @acronym{AT&T} @code{troff}.
+Specifies a minimum space between columns (for multi-column output);
+this takes the place of the @code{GW} register that was documented but
+apparently not implemented in @acronym{AT&T} @code{troff}.
@endDefmpreg
-Several new string registers are available as well.
-You can change these to handle (for example) the local language.
-@xref{ms Strings and Special Characters}, for details.
+Several new string registers are available as well. You can change
+these to handle (for example) the local language. @xref{ms Strings and
+Special Characters}, for details.
@c ---------------------------------------------------------------------
@@ -4481,8 +4453,8 @@ Names used only within one module are of the form
@var{module}@code{*}@var{name}.
@item
-Names used outside the module in which they are defined are of the
-form @var{module}@code{@@}@var{name}.
+Names used outside the module in which they are defined are of the form
+@var{module}@code{@@}@var{name}.
@item
Names associated with a particular environment are of the form
@@ -4501,8 +4473,7 @@ Thus the groff ms macros reserve the following names:
@itemize @bullet
@item
-Names containing the characters @code{*}, @code{@@},
-and@tie{}@code{:}.
+Names containing the characters @code{*}, @code{@@}, and@tie{}@code{:}.
@item
Names containing only uppercase letters and digits.
@@ -4517,8 +4488,8 @@ Names containing only uppercase letters and digits.
@c XXX documentation
@c XXX this is a placeholder until we get stuff knocked into shape
-See the @file{meintro.me} and @file{meref.me} documents in
-groff's @file{doc} directory.
+See the @file{meintro.me} and @file{meref.me} documents in groff's
+@file{doc} directory.
@c =====================================================================
@@ -4529,8 +4500,9 @@ groff's @file{doc} directory.
@c XXX documentation
@c XXX this is a placeholder until we get stuff knocked into shape
-See the @cite{groff_mm(7)} man page (type @command{man groff_mm} at
-the command line).
+See the @cite{groff_mm(7)} man page (type @command{man groff_mm} at the
+command line).
+
@c =====================================================================
@@ -4632,12 +4604,12 @@ as many of them together on one output line as it can. This is known as
@cindex spaces, leading and trailing
@cindex extra spaces
@cindex trailing spaces
-Once @code{gtroff} has a @dfn{filled} line, it tries to @dfn{adjust}
-it. This means it widens the spacing between words until the text
-reaches the right margin (in the default adjustment mode). Extra spaces
-between words are preserved, but spaces at the end of lines are ignored.
-Spaces at the front of a line cause a @dfn{break} (breaks are
-explained in @ref{Implicit Line Breaks}).
+Once @code{gtroff} has a @dfn{filled} line, it tries to @dfn{adjust} it.
+This means it widens the spacing between words until the text reaches
+the right margin (in the default adjustment mode). Extra spaces between
+words are preserved, but spaces at the end of lines are ignored. Spaces
+at the front of a line cause a @dfn{break} (breaks are explained in
+@ref{Implicit Line Breaks}).
@xref{Manipulating Filling and Adjusting}.
@@ -4649,14 +4621,13 @@ explained in @ref{Implicit Line Breaks}).
Since the odds are not great for finding a set of words, for every
output line, which fit nicely on a line without inserting excessive
-amounts of space between words, @code{gtroff} hyphenates words so
-that it can justify lines without inserting too much space between
-words. It uses an internal hyphenation algorithm (a simplified version
-of the algorithm used within @TeX{}) to indicate which words can be
-hyphenated and how to do so. When a word is hyphenated, the first part
-of the word is added to the current filled line being output (with
-an attached hyphen), and the other portion is added to the next
-line to be filled.
+amounts of space between words, @code{gtroff} hyphenates words so that
+it can justify lines without inserting too much space between words. It
+uses an internal hyphenation algorithm (a simplified version of the
+algorithm used within @TeX{}) to indicate which words can be hyphenated
+and how to do so. When a word is hyphenated, the first part of the word
+is added to the current filled line being output (with an attached
+hyphen), and the other portion is added to the next line to be filled.
@xref{Manipulating Hyphenation}.
@@ -4723,8 +4694,8 @@ However, it can often be deceptive as the appearance (and width) of the
text on a terminal and the results from @code{gtroff} can vary greatly.
Also, a possible sticking point is that lines beginning with tab
-characters are still filled, again producing unexpected results.
-For example, the following input
+characters are still filled, again producing unexpected results. For
+example, the following input
@multitable {12345678} {12345678} {12345678} {12345678}
@item
@@ -4754,28 +4725,26 @@ produces
@cindex line break
An important concept in @code{gtroff} is the @dfn{break}. When a break
-occurs, @code{gtroff} outputs the partially filled line
-(unjustified), and resumes collecting and filling text on the next output
-line.
+occurs, @code{gtroff} outputs the partially filled line (unjustified),
+and resumes collecting and filling text on the next output line.
@cindex blank line
@cindex empty line
@cindex line, blank
@cindex blank line macro (@code{blm})
-There are several ways to cause a break in @code{gtroff}. A blank
-line not only causes a break, but it also outputs a one-line vertical
-space (effectively a blank line). Note that this behaviour can be
-modified with the blank line macro request @code{blm}.
-@xref{Blank Line Traps}.
+There are several ways to cause a break in @code{gtroff}. A blank line
+not only causes a break, but it also outputs a one-line vertical space
+(effectively a blank line). Note that this behaviour can be modified
+with the blank line macro request @code{blm}. @xref{Blank Line Traps}.
@cindex fill mode
@cindex mode, fill
-A line that begins with a space causes a break and the space is
-output at the beginning of the next line. Note that this space isn't
-adjusted, even in fill mode.
+A line that begins with a space causes a break and the space is output
+at the beginning of the next line. Note that this space isn't adjusted,
+even in fill mode.
-The end of file also causes a break -- otherwise the last line of
-the document may vanish!
+The end of file also causes a break -- otherwise the last line of the
+document may vanish!
Certain requests also cause breaks, implicitly or explicitly. This is
discussed in @ref{Manipulating Filling and Adjusting}.
@@ -4794,9 +4763,9 @@ paragraphs. These are some conventions commonly used when typing
@itemize @bullet
@item
-Break lines after punctuation, particularly at the end of a sentence
-and in other logical places. Keep separate phrases on lines by
-themselves, as entire phrases are often added or deleted when editing.
+Break lines after punctuation, particularly at the end of a sentence and
+in other logical places. Keep separate phrases on lines by themselves,
+as entire phrases are often added or deleted when editing.
@item
Try to keep lines less than 40-60@tie{}characters, to allow space for
@@ -4972,10 +4941,9 @@ Fractions. Value is 65536.
@xref{Colors}, for usage.
@end table
-The other measurements understood by @code{gtroff} depend on
-settings currently in effect in @code{gtroff}. These are very useful
-for specifying measurements which should look proper with any size of
-text.
+The other measurements understood by @code{gtroff} depend on settings
+currently in effect in @code{gtroff}. These are very useful for
+specifying measurements which should look proper with any size of text.
@table @code
@item m
@@ -5041,9 +5009,9 @@ equals@tie{}10@dmn{p} (thus 1@dmn{m} equals@tie{}33@dmn{u}). The value
parenthesis is simply ignored.
@cindex measurements, specifying safely
-Thus, the safest way to specify measurements is to always
-attach a scaling indicator. If you want to multiply or divide by a
-certain scalar value, use @samp{u} as the unit for that value.
+Thus, the safest way to specify measurements is to always attach a
+scaling indicator. If you want to multiply or divide by a certain
+scalar value, use @samp{u} as the unit for that value.
@c =====================================================================
@@ -5131,9 +5099,9 @@ The register@tie{}@code{z} now contains@tie{}5.
@item
@cindex scaling operator
@cindex operator, scaling
-Scaling: @code{(@var{c};@var{e})}. Evaluate@tie{}@var{e} using@tie{}@var{c}
-as the default scaling indicator. If @var{c} is missing, ignore scaling
-indicators in the evaluation of@tie{}@var{e}.
+Scaling: @code{(@var{c};@var{e})}. Evaluate@tie{}@var{e}
+using@tie{}@var{c} as the default scaling indicator. If @var{c} is
+missing, ignore scaling indicators in the evaluation of@tie{}@var{e}.
@end itemize
@cindex parentheses
@@ -5144,9 +5112,9 @@ indicators in the evaluation of@tie{}@var{e}.
Parentheses may be used as in any other language. However, in
@code{gtroff} they are necessary to ensure order of evaluation.
@code{gtroff} has no operator precedence; expressions are evaluated left
-to right. This means that @code{gtroff} evaluates @samp{3+5*4} as if it were
-parenthesized like @samp{(3+5)*4}, not as @samp{3+(5*4)}, as might be
-expected.
+to right. This means that @code{gtroff} evaluates @samp{3+5*4} as if it
+were parenthesized like @samp{(3+5)*4}, not as @samp{3+(5*4)}, as might
+be expected.
@cindex @code{+}, and page motion
@cindex @code{-}, and page motion
@@ -5192,8 +5160,8 @@ Here, leading plus and minus signs indicate increments and decrements.
@Defesc {\\B, ', anything, '}
@cindex numeric expression, valid
@cindex valid numeric expression
-Return@tie{}1 if @var{anything} is a valid numeric expression;
-or@tie{}0 if @var{anything} is empty or not a valid numeric expression.
+Return@tie{}1 if @var{anything} is a valid numeric expression; or@tie{}0
+if @var{anything} is empty or not a valid numeric expression.
@endDefesc
@cindex space characters, in expressions
@@ -5249,9 +5217,9 @@ Currently, some of these reserved codepoints are used internally, thus
making it non-trivial to extend @code{gtroff} to cover Unicode or other
character sets and encodings which use characters of these ranges.
-Note that invalid characters are removed before parsing; an
-identifier @code{foo}, followed by an invalid character, followed by
-@code{bar} is treated as @code{foobar}.
+Note that invalid characters are removed before parsing; an identifier
+@code{foo}, followed by an invalid character, followed by @code{bar} is
+treated as @code{foobar}.
@end itemize
For example, any of the following is valid.
@@ -5276,11 +5244,11 @@ accesses the glyph @samp{foo}, followed by @samp{]}, whereas
@cindex @code{[}, macro names starting with, and @code{refer}
@cindex @code{]}, macro names starting with, and @code{refer}
@cindex macro names, starting with @code{[} or @code{]}, and @code{refer}
-To avoid problems with the @code{refer} preprocessor, macro names
-should not start with @samp{[} or @samp{]}. Due to backwards
-compatibility, everything after @samp{.[} and @samp{.]} is handled as
-a special argument to @code{refer}. For example, @samp{.[foo} makes
-@code{refer} to start a reference, using @samp{foo} as a parameter.
+To avoid problems with the @code{refer} preprocessor, macro names should
+not start with @samp{[} or @samp{]}. Due to backwards compatibility,
+everything after @samp{.[} and @samp{.]} is handled as a special
+argument to @code{refer}. For example, @samp{.[foo} makes @code{refer}
+to start a reference, using @samp{foo} as a parameter.
@Defesc {\\A, ', ident, '}
Test whether an identifier @var{ident} is valid in @code{gtroff}. It
@@ -5321,18 +5289,17 @@ in brackets.
@cindex undefined identifiers
@cindex identifiers, undefined
Unlike many other programming languages, undefined identifiers are
-silently ignored or expanded to nothing.
-When @code{gtroff} finds an undefined identifier, it emits a
-warning, doing the following:
+silently ignored or expanded to nothing. When @code{gtroff} finds an
+undefined identifier, it emits a warning, doing the following:
@itemize @bullet
@item
-If the identifier is a string, macro, or diversion,
-@code{gtroff} defines it as empty.
+If the identifier is a string, macro, or diversion, @code{gtroff}
+defines it as empty.
@item
-If the identifier is a number register, @code{gtroff}
-defines it with a value of@tie{}0.
+If the identifier is a number register, @code{gtroff} defines it with a
+value of@tie{}0.
@end itemize
@xref{Warnings}., @ref{Interpolating Registers}, and @ref{Strings}.
@@ -5355,9 +5322,8 @@ bar
@noindent
As can be seen in the previous example, @code{gtroff} reuses the
-identifier @samp{xxx}, changing it from a macro to a diversion.
-No warning is emitted! The contents of the first macro definition is
-lost.
+identifier @samp{xxx}, changing it from a macro to a diversion. No
+warning is emitted! The contents of the first macro definition is lost.
@xref{Interpolating Registers}, and @ref{Strings}.
@@ -5376,10 +5342,10 @@ implicit line breaking. In order to gain further functionality,
The first is a @dfn{request} which takes up an entire line, and does
some large-scale operation (e.g.@: break lines, start new pages).
-The other is an @dfn{escape} which can be usually embedded anywhere
-in the text; most requests can accept it even as an argument.
-Escapes generally do more minor operations like sub- and superscripts,
-print a symbol, etc.
+The other is an @dfn{escape} which can be usually embedded anywhere in
+the text; most requests can accept it even as an argument. Escapes
+generally do more minor operations like sub- and superscripts, print a
+symbol, etc.
@menu
* Requests::
@@ -5409,9 +5375,9 @@ arguments (@emph{no} tabs here).
@cindex structuring source code of documents or macro packages
@cindex documents, structuring the source code
@cindex macro packages, structuring the source code
-Since a control character followed by whitespace only is ignored, it
-is common practice to use this feature for structuring the source code
-of documents or macro packages.
+Since a control character followed by whitespace only is ignored, it is
+common practice to use this feature for structuring the source code of
+documents or macro packages.
@Example
.de foo
@@ -5426,8 +5392,8 @@ of documents or macro packages.
@cindex blank line
@cindex blank line macro (@code{blm})
-Another possibility is to use the blank line macro request @code{blm}
-by assigning an empty macro to it.
+Another possibility is to use the blank line macro request @code{blm} by
+assigning an empty macro to it.
@Example
.de do-nothing
@@ -5547,10 +5513,11 @@ There are two possibilities to get a double quote reliably.
@itemize @bullet
@item
-Enclose the whole argument with double quotes and use two consecutive double
-quotes to represent a single one. This traditional solution has the
-disadvantage that double quotes don't survive argument expansion again if
-called in compatibility mode (using the @option{-C} option of @code{groff}):
+Enclose the whole argument with double quotes and use two consecutive
+double quotes to represent a single one. This traditional solution has
+the disadvantage that double quotes don't survive argument expansion
+again if called in compatibility mode (using the @option{-C} option of
+@code{groff}):
@Example
.de xx
@@ -5579,11 +5546,11 @@ since @code{gtroff} preserves the input level.
@item
Use the double quote glyph @code{\(dq}. This works with and without
-compatibility mode enabled since @code{gtroff} doesn't convert @code{\(dq}
-back to a double quote input character.
+compatibility mode enabled since @code{gtroff} doesn't convert
+@code{\(dq} back to a double quote input character.
-Not that this method won't work with @acronym{UNIX} @code{troff} in general
-since the glyph `dq' isn't defined normally.
+Not that this method won't work with @acronym{UNIX} @code{troff} in
+general since the glyph `dq' isn't defined normally.
@end itemize
@cindex @code{ds} request, and double quotes
@@ -5716,8 +5683,8 @@ delimiters: @code{\%}, @w{@samp{\ }}, @code{\|}, @code{\^}, @code{\@{},
@code{\@}}, @code{\'}, @code{\`}, @code{\-}, @code{\_}, @code{\!},
@code{\?}, @code{\)}, @code{\/}, @code{\,}, @code{\&}, @code{\:},
@code{\~}, @code{\0}, @code{\a}, @code{\c}, @code{\d}, @code{\e},
-@code{\E}, @code{\p}, @code{\r}, @code{\t}, and @code{\u}.
-Again, don't use these if possible.
+@code{\E}, @code{\p}, @code{\r}, @code{\t}, and @code{\u}. Again, don't
+use these if possible.
@cindex @code{\A}, allowed delimiters
@cindex @code{\B}, allowed delimiters
@@ -5739,8 +5706,8 @@ escapes: @code{\A}, @code{\B}, @code{\Z}, @code{\C}, and @code{\w}.
@cindex @code{\v}, allowed delimiters
@cindex @code{\x}, allowed delimiters
Finally, the escapes @code{\D}, @code{\h}, @code{\H}, @code{\l},
-@code{\L}, @code{\N}, @code{\R}, @code{\s}, @code{\S}, @code{\v},
-and @code{\x} can't use the following characters as delimiters:
+@code{\L}, @code{\N}, @code{\R}, @code{\s}, @code{\S}, @code{\v}, and
+@code{\x} can't use the following characters as delimiters:
@itemize @bullet
@item
@@ -5798,21 +5765,21 @@ The space, tab, and newline characters.
@cindex @code{\c}, used as delimiter
@cindex @code{\e}, used as delimiter
@cindex @code{\p}, used as delimiter
-All escape sequences except @code{\%}, @code{\:}, @code{\@{}, @code{\@}},
-@code{\'}, @code{\`}, @code{\-}, @code{\_}, @code{\!}, @code{\/},
-@code{\c}, @code{\e}, and @code{\p}.
+All escape sequences except @code{\%}, @code{\:}, @code{\@{},
+@code{\@}}, @code{\'}, @code{\`}, @code{\-}, @code{\_}, @code{\!},
+@code{\/}, @code{\c}, @code{\e}, and @code{\p}.
@end itemize
@cindex printing backslash (@code{\\}, @code{\e}, @code{\E}, @code{\[rs]})
@cindex backslash, printing (@code{\\}, @code{\e}, @code{\E}, @code{\[rs]})
-To have a backslash (actually, the current escape character) appear in the
-output several escapes are defined: @code{\\}, @code{\e} or @code{\E}.
-These are very similar, and only differ with respect to being used in
-macros or diversions. @xref{Character Translations}, for an exact
-description of those escapes.
+To have a backslash (actually, the current escape character) appear in
+the output several escapes are defined: @code{\\}, @code{\e} or
+@code{\E}. These are very similar, and only differ with respect to
+being used in macros or diversions. @xref{Character Translations}, for
+an exact description of those escapes.
-@xref{Implementation Differences}, @ref{Copy-in Mode}, and @ref{Diversions},
-@ref{Identifiers}, for more information.
+@xref{Implementation Differences}, @ref{Copy-in Mode}, and
+@ref{Diversions}, @ref{Identifiers}, for more information.
@menu
* Comments::
@@ -5834,10 +5801,10 @@ interfering with the appearance of the final output.
@cindex @code{ds}, @code{ds1} requests, and comments
@cindex @code{as}, @code{as1} requests, and comments
-If the escape is to the right of some text or a request, that portion
-of the line is ignored, but the space leading up to it is noticed by
-@code{gtroff}. This only affects the @code{ds} and @code{as}
-request and its variants.
+If the escape is to the right of some text or a request, that portion of
+the line is ignored, but the space leading up to it is noticed by
+@code{gtroff}. This only affects the @code{ds} and @code{as} request
+and its variants.
@cindex tabs, before comments
@cindex comments, lining up with tabs
@@ -5847,8 +5814,8 @@ request and macro arguments.
@cindex undefined request
@cindex request, undefined
-A comment on a line by itself is treated as a blank line, because
-after eliminating the comment, that is all that remains:
+A comment on a line by itself is treated as a blank line, because after
+eliminating the comment, that is all that remains:
@Example
Test
@@ -5925,8 +5892,7 @@ text text text@dots{} More text text text@dots{}
@endExample
@noindent
-Note that the commented-out block of text does not
-cause a break.
+Note that the commented-out block of text does not cause a break.
@cindex @code{ig} request, and copy-in mode
@cindex copy-in mode, and @code{ig} request
@@ -5965,13 +5931,13 @@ details of formatting parameters.
@cindex setting registers (@code{nr}, @code{\R})
@cindex registers, setting (@code{nr}, @code{\R})
-Define or set registers using the @code{nr} request or the
-@code{\R} escape.
+Define or set registers using the @code{nr} request or the @code{\R}
+escape.
@DefreqList {nr, ident value}
@DefescListEnd {\\R, ', ident value, '}
-Set number register @var{ident} to @var{value}. If @var{ident}
-doesn't exist, @code{gtroff} creates it.
+Set number register @var{ident} to @var{value}. If @var{ident} doesn't
+exist, @code{gtroff} creates it.
The argument to @code{\R} usually has to be enclosed in quotes.
@xref{Escapes}, for details on parameter delimiting characters.
@@ -6060,8 +6026,8 @@ Rename number register @var{ident1} to @var{ident2}. If either
@cindex register, creating alias (@code{aln})
Create an alias @var{ident1} for a number register @var{ident2}. The
new name and the old name are exactly equivalent. If @var{ident1} is
-undefined, a warning of type @samp{reg} is generated, and the request
-is ignored. @xref{Debugging}, for information about warnings.
+undefined, a warning of type @samp{reg} is generated, and the request is
+ignored. @xref{Debugging}, for information about warnings.
@endDefreq
@c ---------------------------------------------------------------------
@@ -6081,10 +6047,10 @@ Numeric registers can be accessed via the @code{\n} escape.
@cindex indirect assignments
@cindex assignments, indirect
Interpolate number register with name @var{ident} (one-character
-name@tie{}@var{i}, two-character name @var{id}). This means that the value
-of the register is expanded in-place while @code{gtroff} is parsing the
-input line. Nested assignments (also called indirect assignments) are
-possible.
+name@tie{}@var{i}, two-character name @var{id}). This means that the
+value of the register is expanded in-place while @code{gtroff} is
+parsing the input line. Nested assignments (also called indirect
+assignments) are possible.
@Example
.nr a 5
@@ -6112,19 +6078,19 @@ possible.
@cindex auto-increment
@cindex increment, automatic
-Number registers can also be auto-incremented and auto-decremented.
-The increment or decrement value can be specified with a third
-argument to the @code{nr} request or @code{\R} escape.
+Number registers can also be auto-incremented and auto-decremented. The
+increment or decrement value can be specified with a third argument to
+the @code{nr} request or @code{\R} escape.
@Defreq {nr, ident value incr}
@cindex @code{\R}, difference to @code{nr}
Set number register @var{ident} to @var{value}; the increment for
-auto-incrementing is set to @var{incr}. Note that the @code{\R}
-escape doesn't support this notation.
+auto-incrementing is set to @var{incr}. Note that the @code{\R} escape
+doesn't support this notation.
@endDefreq
-To activate auto-incrementing, the escape @code{\n} has a special
-syntax form.
+To activate auto-incrementing, the escape @code{\n} has a special syntax
+form.
@DefescList {\\n, +, i, }
@DefescItem {\\n, -, i, }
@@ -6136,11 +6102,11 @@ syntax form.
@DefescItem {\\n, @Lbrack{}-, ident, @Rbrack{}}
@DefescItem {\\n, +@Lbrack{}, ident, @Rbrack{}}
@DefescListEnd {\\n, -@Lbrack{}, ident, @Rbrack{}}
-Before interpolating, increment or decrement @var{ident}
-(one-character name@tie{}@var{i}, two-character name @var{id}) by the
-auto-increment value as specified with the @code{nr} request (or the
-@code{\R} escape). If no auto-increment value has been specified,
-these syntax forms are identical to @code{\n}.
+Before interpolating, increment or decrement @var{ident} (one-character
+name@tie{}@var{i}, two-character name @var{id}) by the auto-increment
+value as specified with the @code{nr} request (or the @code{\R} escape).
+If no auto-increment value has been specified, these syntax forms are
+identical to @code{\n}.
@endDefesc
For example,
@@ -6181,16 +6147,16 @@ To change the increment value without changing the value of a register
@cindex assigning formats (@code{af})
@cindex formats, assigning (@code{af})
-When a register is used, it is always textually replaced (or interpolated)
-with a representation of that number. This output format can be
-changed to a variety of formats (numbers, Roman numerals, etc.). This
-is done using the @code{af} request.
+When a register is used, it is always textually replaced (or
+interpolated) with a representation of that number. This output format
+can be changed to a variety of formats (numbers, Roman numerals, etc.).
+This is done using the @code{af} request.
@Defreq {af, ident format}
Change the output format of a number register. The first argument
@var{ident} is the name of the number register to be changed, and the
-second argument @var{format} is the output format. The following
-output formats are available:
+second argument @var{format} is the output format. The following output
+formats are available:
@table @code
@item 1
@@ -6265,9 +6231,9 @@ then apply the @code{af} request to this other register.
@cindex register, format (@code{\g})
Return the current format of the specified register @var{ident}
(one-character name@tie{}@var{i}, two-character name @var{id}). For
-example, @samp{\ga} after the previous example would produce the
-string @samp{000}. If the register hasn't been defined yet, nothing
-is returned.
+example, @samp{\ga} after the previous example would produce the string
+@samp{000}. If the register hasn't been defined yet, nothing is
+returned.
@endDefesc
@c ---------------------------------------------------------------------
@@ -6301,9 +6267,8 @@ Horizontal resolution in basic units.
@cindex unsafe mode
@cindex mode, unsafe
If @code{gtroff} is called with the @option{-U} command line option to
-activate unsafe mode, the number register @code{.U} is set to@tie{}1, and
-to zero otherwise.
-@xref{Groff Options}.
+activate unsafe mode, the number register @code{.U} is set to@tie{}1,
+and to zero otherwise. @xref{Groff Options}.
@item \n[.V]
@cindex vertical resolution register (@code{.V})
@@ -6317,8 +6282,8 @@ Vertical resolution in basic units.
@cindex current time, seconds (@code{seconds})
@vindex seconds
The number of seconds after the minute, normally in the range@tie{}0
-to@tie{}59, but can be up to@tie{}61 to allow for leap seconds. Initialized
-at start-up of @code{gtroff}.
+to@tie{}59, but can be up to@tie{}61 to allow for leap seconds.
+Initialized at start-up of @code{gtroff}.
@item \n[minutes]
@cindex minutes, current time (@code{minutes})
@@ -6363,9 +6328,9 @@ The current year.
@item \n[yr]
@vindex yr
The current year minus@tie{}1900. Unfortunately, the documentation of
-@acronym{UNIX} Version@tie{}7's @code{troff} had a year@tie{}2000 bug: It
-incorrectly claimed that @code{yr} contains the last two digits of the
-year. That claim has never been true of either @acronym{AT&T}
+@acronym{UNIX} Version@tie{}7's @code{troff} had a year@tie{}2000 bug:
+It incorrectly claimed that @code{yr} contains the last two digits of
+the year. That claim has never been true of either @acronym{AT&T}
@code{troff} or GNU @code{troff}. Old @code{troff} input that looks
like this:
@@ -6412,15 +6377,15 @@ request to activate line numbering.
@vindex .x
@cindex major version number register (@code{.x})
@cindex version number, major, register (@code{.x})
-The major version number. For example, if the version number
-is 1.03 then @code{.x} contains@tie{}@samp{1}.
+The major version number. For example, if the version number is 1.03
+then @code{.x} contains@tie{}@samp{1}.
@item \n[.y]
@vindex .y
@cindex minor version number register (@code{.y})
@cindex version number, minor, register (@code{.y})
-The minor version number. For example, if the version number
-is 1.03 then @code{.y} contains@tie{}@samp{03}.
+The minor version number. For example, if the version number is 1.03
+then @code{.y} contains@tie{}@samp{03}.
@item \n[.Y]
@vindex .Y
@@ -6498,17 +6463,17 @@ string register defined by @code{gtroff}.
@cindex @code{ti} request, causing implicit linebreak
@cindex @code{trf} request, causing implicit linebreak
Various ways of causing @dfn{breaks} were given in @ref{Implicit Line
-Breaks}. The @code{br} request likewise causes a break. Several
-other requests also cause breaks, but implicitly. These are
-@code{bp}, @code{ce}, @code{cf}, @code{fi}, @code{fl}, @code{in},
-@code{nf}, @code{rj}, @code{sp}, @code{ti}, and @code{trf}.
+Breaks}. The @code{br} request likewise causes a break. Several other
+requests also cause breaks, but implicitly. These are @code{bp},
+@code{ce}, @code{cf}, @code{fi}, @code{fl}, @code{in}, @code{nf},
+@code{rj}, @code{sp}, @code{ti}, and @code{trf}.
@Defreq {br, }
Break the current line, i.e., the input collected so far is emitted
without adjustment.
-If the no-break control character is used, @code{gtroff} suppresses
-the break:
+If the no-break control character is used, @code{gtroff} suppresses the
+break:
@Example
a
@@ -6554,8 +6519,8 @@ See @ref{Line Control}, for interaction with the @code{\c} escape.
@DefregListEnd {.j}
Set adjusting mode.
-Activation and deactivation of adjusting is done implicitly with
-calls to the @code{fi} or @code{nf} requests.
+Activation and deactivation of adjusting is done implicitly with calls
+to the @code{fi} or @code{nf} requests.
@var{mode} can have one of the following values:
@@ -6580,8 +6545,8 @@ only centers text without filling.
Justify to both margins. This is the default used by @code{gtroff}.
@end table
-Finally, @var{mode} can be the numeric argument returned by the @code{.j}
-register.
+Finally, @var{mode} can be the numeric argument returned by the
+@code{.j} register.
With no argument, @code{gtroff} adjusts lines in the same way it did
before adjusting was deactivated (with a call to @code{na}, for
@@ -6629,18 +6594,18 @@ have, for example); instead, @code{gtroff} fills and adjusts a paragraph
line by line:
@Example
- This is an uninteresting sentence.
- This is an uninteresting sentence.\p
- This is an uninteresting sentence.
+This is an uninteresting sentence.
+This is an uninteresting sentence.\p
+This is an uninteresting sentence.
@endExample
@noindent
is formatted as
@Example
- This is an uninteresting sentence. This is an
- uninteresting sentence.
- This is an uninteresting sentence.
+This is an uninteresting sentence. This is an
+uninteresting sentence.
+This is an uninteresting sentence.
@endExample
@endDefreq
@@ -6654,24 +6619,23 @@ is formatted as
@cindex size of sentence space register (@code{.sss})
@cindex space between sentences register (@code{.sss})
Change the size of a space between words. It takes its units as one
-twelfth of the space width parameter for the current font.
-Initially both the @var{word_space_size} and @var{sentence_space_size}
+twelfth of the space width parameter for the current font. Initially
+both the @var{word_space_size} and @var{sentence_space_size}
are@tie{}12. In fill mode, the values specify the minimum distance.
@cindex fill mode
@cindex mode, fill
-If two arguments are given to the @code{ss} request, the second
-argument sets the sentence space size. If the second argument is not
-given, sentence space size is set to @var{word_space_size}. The
-sentence space size is used in two circumstances: If the end of a
-sentence occurs at the end of a line in fill mode, then both an
-inter-word space and a sentence space are added; if two spaces follow
-the end of a sentence in the middle of a line, then the second space
-is a sentence space. If a second argument is never given to the
-@code{ss} request, the behaviour of @acronym{UNIX} @code{troff} is the
-same as that exhibited by GNU @code{troff}. In GNU @code{troff}, as
-in @acronym{UNIX} @code{troff}, a sentence should always be followed
-by either a newline or two spaces.
+If two arguments are given to the @code{ss} request, the second argument
+sets the sentence space size. If the second argument is not given,
+sentence space size is set to @var{word_space_size}. The sentence space
+size is used in two circumstances: If the end of a sentence occurs at
+the end of a line in fill mode, then both an inter-word space and a
+sentence space are added; if two spaces follow the end of a sentence in
+the middle of a line, then the second space is a sentence space. If a
+second argument is never given to the @code{ss} request, the behaviour
+of @acronym{UNIX} @code{troff} is the same as that exhibited by GNU
+@code{troff}. In GNU @code{troff}, as in @acronym{UNIX} @code{troff}, a
+sentence should always be followed by either a newline or two spaces.
The read-only number registers @code{.ss} and @code{.sss} hold the
values of the parameters set by the first and second arguments of the
@@ -6682,7 +6646,8 @@ environment (@pxref{Environments}).
Contrary to @acronym{AT&T} @code{troff}, this request is @emph{not}
ignored if a TTY output device is used; the given values are then
-rounded down to a multiple of@tie{}12 (@pxref{Implementation Differences}).
+rounded down to a multiple of@tie{}12 (@pxref{Implementation
+Differences}).
The request is ignored if there is no parameter.
@@ -6719,14 +6684,12 @@ Note that the @code{\h} escape produces unbreakable space.
@DefregListEnd {.ce}
@cindex centering lines (@code{ce})
@cindex lines, centering (@code{ce})
-Center text. While the @w{@samp{.ad c}} request also centers text,
-it fills the text as well. @code{ce} does not fill the
-text it affects. This request causes a break. The number of lines
-still to be centered is associated with the current environment
-(@pxref{Environments}).
+Center text. While the @w{@samp{.ad c}} request also centers text, it
+fills the text as well. @code{ce} does not fill the text it affects.
+This request causes a break. The number of lines still to be centered
+is associated with the current environment (@pxref{Environments}).
-The following example demonstrates the differences.
-Here the input:
+The following example demonstrates the differences. Here the input:
@Example
.ll 4i
@@ -6761,10 +6724,10 @@ The basic length for centering text is the line length (as set with the
@code{ll} request) minus the indentation (as set with the @code{in}
request). Temporary indentation is ignored.
-As can be seen in the previous example, it is a common idiom to turn
-on centering for a large number of lines, and to turn off centering
-after text to be centered. This is useful for any request which takes
-a number of lines as an argument.
+As can be seen in the previous example, it is a common idiom to turn on
+centering for a large number of lines, and to turn off centering after
+text to be centered. This is useful for any request which takes a
+number of lines as an argument.
The @code{.ce} read-only number register contains the number of lines
remaining to be centered, as set by the @code{ce} request.
@@ -6776,9 +6739,9 @@ remaining to be centered, as set by the @code{ce} request.
@cindex text, justifying (@code{rj})
@cindex right-justifying (@code{rj})
Justify unfilled text to the right margin. Arguments are identical to
-the @code{ce} request. The @code{.rj} read-only number register is
-the number of lines to be right-justified as set by the @code{rj}
-request. This request causes a break. The number of lines still to be
+the @code{ce} request. The @code{.rj} read-only number register is the
+number of lines to be right-justified as set by the @code{rj} request.
+This request causes a break. The number of lines still to be
right-justified is associated with the current environment
(@pxref{Environments}).
@endDefreq
@@ -6791,7 +6754,6 @@ right-justified is associated with the current environment
@cindex manipulating hyphenation
@cindex hyphenation, manipulating
-
Here a description of requests which influence hyphenation.
@DefreqList {hy, [@Var{mode}]}
@@ -6815,8 +6777,8 @@ Do not hyphenate the first two characters of a word.
@end table
Values in the previous table are additive. For example, the
-value@tie{}12 causes @code{gtroff} to neither hyphenate the last
-two nor the first two characters of a word.
+value@tie{}12 causes @code{gtroff} to neither hyphenate the last two nor
+the first two characters of a word.
@cindex hyphenation restrictions register (@code{.hy})
The current hyphenation restrictions can be found in the read-only
@@ -6827,9 +6789,8 @@ The hyphenation mode is associated with the current environment
@endDefreq
@Defreq {nh, }
-Disable hyphenation (i.e., set the hyphenation mode to zero). Note
-that the hyphenation mode of the last call to @code{hy} is not
-remembered.
+Disable hyphenation (i.e., set the hyphenation mode to zero). Note that
+the hyphenation mode of the last call to @code{hy} is not remembered.
The hyphenation mode is associated with the current environment
(@pxref{Environments}).
@@ -6843,13 +6804,13 @@ The hyphenation mode is associated with the current environment
@cindex consecutive hyphenated lines (@code{hlm})
@cindex lines, consecutive hyphenated (@code{hlm})
@cindex hyphenated lines, consecutive (@code{hlm})
-Set the maximum number of consecutive hyphenated lines to @var{nnn}.
-If this number is negative, there is no maximum. The default value
+Set the maximum number of consecutive hyphenated lines to @var{nnn}. If
+this number is negative, there is no maximum. The default value
is@tie{}@minus{}1 if @var{nnn} is omitted. This value is associated
-with the current environment (@pxref{Environments}). Only lines
-output from a given environment count towards the maximum associated
-with that environment. Hyphens resulting from @code{\%} are counted;
-explicit hyphens are not.
+with the current environment (@pxref{Environments}). Only lines output
+from a given environment count towards the maximum associated with that
+environment. Hyphens resulting from @code{\%} are counted; explicit
+hyphens are not.
The current setting of @code{hlm} is available in the @code{.hlm}
read-only number register. Also the number of immediately preceding
@@ -6873,8 +6834,8 @@ documentation for the @code{hcode} request below for more information).
In addition, this request can be used more than once.
Hyphenation exceptions specified with the @code{hw} request are
-associated with the current hyphenation language; it causes an error
-if there is no current hyphenation language.
+associated with the current hyphenation language; it causes an error if
+there is no current hyphenation language.
This request is ignored if there is no parameter.
@@ -6904,8 +6865,8 @@ only affects that one occurrence of the word; to change the
hyphenation of a word for the entire document, use the @code{hw}
request.
-The @code{\:} escape inserts a zero-width break point
-(that is, the word breaks but without adding a hyphen).
+The @code{\:} escape inserts a zero-width break point (that is, the word
+breaks but without adding a hyphen).
@Example
... check the /var/log/\:httpd/\:access_log file ...
@@ -6916,9 +6877,9 @@ The @code{\:} escape inserts a zero-width break point
@cindex @code{\%}, following @code{\X} or @code{\Y}
Note that @code{\X} and @code{\Y} start a word, that is, the @code{\%}
escape in (say) @w{@samp{\X'...'\%foobar}} and
-@w{@samp{\Y'...'\%foobar}} no longer prevents hyphenation but inserts
-a hyphenation point at the beginning of @samp{foobar}; most likely
-this isn't what you want to do.
+@w{@samp{\Y'...'\%foobar}} no longer prevents hyphenation but inserts a
+hyphenation point at the beginning of @samp{foobar}; most likely this
+isn't what you want to do.
@endDefesc
@Defreq {hc, [@Var{char}]}
@@ -6940,30 +6901,30 @@ Read in a file of hyphenation patterns. This file is searched for in
the same way as @file{@var{name}.tmac} (or @file{tmac.@var{name}}) is
searched for if the @option{-m@var{name}} option is specified.
-It should have the same format as (simple) @TeX{} patterns files.
-More specifically, the following scanning rules are implemented.
+It should have the same format as (simple) @TeX{} patterns files. More
+specifically, the following scanning rules are implemented.
@itemize @bullet
@item
-A percent sign starts a comment (up to the end of the line)
-even if preceded by a backslash.
+A percent sign starts a comment (up to the end of the line) even if
+preceded by a backslash.
@item
No support for `digraphs' like @code{\$}.
@item
-@code{^^@var{xx}} (@var{x} is 0-9 or a-f) and @code{^^@var{x}} (character
-code of @var{x} in the range 0-127) are recognized; other use of @code{^}
-causes an error.
+@code{^^@var{xx}} (@var{x} is 0-9 or a-f) and @code{^^@var{x}}
+(character code of @var{x} in the range 0-127) are recognized; other use
+of @code{^} causes an error.
@item
No macro expansion.
@item
@code{hpf} checks for the expression @code{\patterns@{@dots{}@}}
-(possibly with whitespace before and after the braces).
-Everything between the braces is taken as hyphenation patterns.
-Consequently, @code{@{} and @code{@}} are not allowed in patterns.
+(possibly with whitespace before and after the braces). Everything
+between the braces is taken as hyphenation patterns. Consequently,
+@code{@{} and @code{@}} are not allowed in patterns.
@item
Similarly, @code{\hyphenation@{@dots{}@}} gives a list of hyphenation
@@ -6973,9 +6934,9 @@ exceptions.
@code{\endinput} is recognized also.
@item
-For backwards compatibility, if @code{\patterns} is missing,
-the whole file is treated as a list of hyphenation patterns
-(only recognizing the @code{%} character as the start of a comment).
+For backwards compatibility, if @code{\patterns} is missing, the whole
+file is treated as a list of hyphenation patterns (only recognizing the
+@code{%} character as the start of a comment).
@end itemize
If no @code{hpf} request is specified (either in the document or in a
@@ -6985,11 +6946,12 @@ The @code{hpfa} request appends a file of patterns to the current list.
The @code{hpfcode} request defines mapping values for character codes in
hyphenation patterns. @code{hpf} or @code{hpfa} then apply the mapping
-(after reading the patterns) before replacing or appending them to
-the current list of patterns. Its arguments are pairs of character codes
--- integers from 0 to@tie{}255. The request maps character code@tie{}@var{a}
-to code@tie{}@var{b}, code@tie{}@var{c} to code@tie{}@var{d}, and so on. You
-can use character codes which would be invalid otherwise.
+(after reading the patterns) before replacing or appending them to the
+current list of patterns. Its arguments are pairs of character codes --
+integers from 0 to@tie{}255. The request maps character
+code@tie{}@var{a} to code@tie{}@var{b}, code@tie{}@var{c} to
+code@tie{}@var{d}, and so on. You can use character codes which would
+be invalid otherwise.
@pindex troffrc
@pindex troffrc-end
@@ -7012,9 +6974,8 @@ language.
@cindex hyphenation code (@code{hcode})
@cindex code, hyphenation (@code{hcode})
Set the hyphenation code of character @var{c1} to @var{code1}, that of
-@var{c2} to @var{code2}, etc. A hyphenation code must be a single
-input character (not a special character) other than a digit or a
-space.
+@var{c2} to @var{code2}, etc. A hyphenation code must be a single input
+character (not a special character) other than a digit or a space.
To make hyphenation work, hyphenation codes must be set up. At
start-up, groff only assigns hyphenation codes to the letters
@@ -7038,12 +6999,11 @@ for German):
@endExample
Without those assignments, groff treats German words like
-@w{`Kindergärten'} (the plural form of `kindergarten') as two
-substrings @w{`kinderg'} and @w{`rten'} because the hyphenation code
-of the umlaut@tie{}a is zero by default. There is a German
-hyphenation pattern which covers @w{`kinder'}, so groff finds the
-hyphenation `kin-der'. The other two hyphenation points
-(`kin-der-gär-ten') are missed.
+@w{`Kindergärten'} (the plural form of `kindergarten') as two substrings
+@w{`kinderg'} and @w{`rten'} because the hyphenation code of the
+umlaut@tie{}a is zero by default. There is a German hyphenation pattern
+which covers @w{`kinder'}, so groff finds the hyphenation `kin-der'.
+The other two hyphenation points (`kin-der-gär-ten') are missed.
This request is ignored if it has no parameter.
@endDefreq
@@ -7054,15 +7014,15 @@ This request is ignored if it has no parameter.
@cindex margin for hyphenation (@code{hym})
@cindex @code{ad} request, and hyphenation margin
Set the (right) hyphenation margin to @var{length}. If the current
-adjustment mode is not @samp{b} or @samp{n}, the line is not
-hyphenated if it is shorter than @var{length}. Without an argument,
-the hyphenation margin is reset to its default value, which is@tie{}0.
-The default scaling indicator for this request is @samp{m}. The
-hyphenation margin is associated with the current environment
+adjustment mode is not @samp{b} or @samp{n}, the line is not hyphenated
+if it is shorter than @var{length}. Without an argument, the
+hyphenation margin is reset to its default value, which is@tie{}0. The
+default scaling indicator for this request is @samp{m}. The hyphenation
+margin is associated with the current environment
(@pxref{Environments}).
-A negative argument resets the hyphenation margin to zero, emitting
-a warning of type @samp{range}.
+A negative argument resets the hyphenation margin to zero, emitting a
+warning of type @samp{range}.
@cindex hyphenation margin register (@code{.hym})
The current hyphenation margin is available in the @code{.hym} read-only
@@ -7074,13 +7034,12 @@ number register.
@cindex hyphenation space (@code{hys})
@cindex @code{ad} request, and hyphenation space
Set the hyphenation space to @var{hyphenation_space}. If the current
-adjustment mode is @samp{b} or @samp{n}, don't hyphenate the line
-if it can be justified by adding no more than @var{hyphenation_space}
-extra space to each word space. Without argument, the hyphenation
-space is set to its default value, which is@tie{}0. The default
-scaling indicator for this request is @samp{m}. The hyphenation
-space is associated with the current environment
-(@pxref{Environments}).
+adjustment mode is @samp{b} or @samp{n}, don't hyphenate the line if it
+can be justified by adding no more than @var{hyphenation_space} extra
+space to each word space. Without argument, the hyphenation space is
+set to its default value, which is@tie{}0. The default scaling
+indicator for this request is @samp{m}. The hyphenation space is
+associated with the current environment (@pxref{Environments}).
A negative argument resets the hyphenation space to zero, emitting a
warning of type @samp{range}.
@@ -7102,12 +7061,12 @@ hyphen character} is a misnomer since it is an output glyph.} If the
argument is omitted, the soft hyphen character is set to the default
glyph @code{\(hy} (this is the start-up value of @code{gtroff} also).
The soft hyphen character is the glyph that is inserted when a word is
-hyphenated at a line break. If the soft hyphen character does not
-exist in the font of the character immediately preceding a potential
-break point, then the line is not broken at that point. Neither
-definitions (specified with the @code{char} request) nor translations
-(specified with the @code{tr} request) are considered when finding the
-soft hyphen character.
+hyphenated at a line break. If the soft hyphen character does not exist
+in the font of the character immediately preceding a potential break
+point, then the line is not broken at that point. Neither definitions
+(specified with the @code{char} request) nor translations (specified
+with the @code{tr} request) are considered when finding the soft hyphen
+character.
@endDefreq
@DefreqList {hla, language}
@@ -7119,8 +7078,8 @@ soft hyphen character.
Set the current hyphenation language to the string @var{language}.
Hyphenation exceptions specified with the @code{hw} request and
hyphenation patterns specified with the @code{hpf} and @code{hpfa}
-requests are both associated with the current hyphenation language.
-The @code{hla} request is usually invoked by the @file{troffrc} or the
+requests are both associated with the current hyphenation language. The
+@code{hla} request is usually invoked by the @file{troffrc} or the
@file{troffrc-end} files; @file{troffrc} sets the default language to
@samp{us}.
@@ -7145,16 +7104,16 @@ read-only number register @samp{.hla}.
@Defreq {sp, [@Var{distance}]}
Space downwards @var{distance}. With no argument it advances
-1@tie{}line. A negative argument causes @code{gtroff} to move up the page
-the specified distance. If the argument is preceded by a @samp{|}
+1@tie{}line. A negative argument causes @code{gtroff} to move up the
+page the specified distance. If the argument is preceded by a @samp{|}
then @code{gtroff} moves that distance from the top of the page. This
request causes a line break, and that adds the current line spacing to
the space you have just specified. The default scaling indicator is
@samp{v}.
-For convenience you may wish to use the following macros to set the height
-of the next line at a given distance from the top or the bottom of the
-page:
+For convenience you may wish to use the following macros to set the
+height of the next line at a given distance from the top or the bottom
+of the page:
@Example
.de y-from-top-down
@@ -7167,11 +7126,11 @@ page:
@endExample
@noindent
-A call to @samp{.y-from-bot-up 10c} means that the bottom of the next line
-will be at 10@dmn{cm} from the paper edge at the bottom.
+A call to @samp{.y-from-bot-up 10c} means that the bottom of the next
+line will be at 10@dmn{cm} from the paper edge at the bottom.
-If a vertical trap is sprung during execution of @code{sp}, the amount of
-vertical space after the trap is discarded. For example, this
+If a vertical trap is sprung during execution of @code{sp}, the amount
+of vertical space after the trap is discarded. For example, this
@Example
.de xxx
@@ -7218,9 +7177,9 @@ To protect @code{sp} against vertical traps, use the @code{vpt} request:
@DefreqList {ls, [@Var{nnn}]}
@DefregListEnd {.L}
@cindex double-spacing (@code{ls})
-Output @w{@var{nnn}@minus{}1} blank lines after each line of text.
-With no argument, @code{gtroff} uses the previous value before the
-last @code{ls} call.
+Output @w{@var{nnn}@minus{}1} blank lines after each line of text. With
+no argument, @code{gtroff} uses the previous value before the last
+@code{ls} call.
@Example
.ls 2 \" This causes double-spaced output
@@ -7236,13 +7195,13 @@ The read-only number register @code{.L} contains the current line
spacing setting.
@endDefreq
-@xref{Changing Type Sizes}, for the requests @code{vs} and @code{pvs}
-as alternatives to @code{ls}.
+@xref{Changing Type Sizes}, for the requests @code{vs} and @code{pvs} as
+alternatives to @code{ls}.
@DefescList {\\x, ', spacing, '}
@DefregListEnd {.a}
-Sometimes, extra vertical spacing is only needed occasionally, e.g.@:
-to allow space for a tall construct (like an equation). The @code{\x}
+Sometimes, extra vertical spacing is only needed occasionally, e.g.@: to
+allow space for a tall construct (like an equation). The @code{\x}
escape does this. The escape is given a numerical argument, usually
enclosed in quotes (like @samp{\x'3p'}); the default scaling indicator
is @samp{v}. If this number is positive extra vertical space is
@@ -7293,18 +7252,18 @@ This is a test with the \b escape.
@cindex mode, no-space (@code{ns})
@cindex blank lines, disabling
@cindex lines, blank, disabling
-Enable @dfn{no-space mode}. In this mode, spacing (either via
-@code{sp} or via blank lines) is disabled. The @code{bp} request to
-advance to the next page is also disabled, except if it is accompanied
-by a page number (see @ref{Page Control}, for more information). This
-mode ends when actual text is output or the @code{rs} request is
-encountered which ends no-space mode. The read-only number register
-@code{.ns} is set to@tie{}1 as long as no-space mode is active.
+Enable @dfn{no-space mode}. In this mode, spacing (either via @code{sp}
+or via blank lines) is disabled. The @code{bp} request to advance to
+the next page is also disabled, except if it is accompanied by a page
+number (see @ref{Page Control}, for more information). This mode ends
+when actual text is output or the @code{rs} request is encountered which
+ends no-space mode. The read-only number register @code{.ns} is set
+to@tie{}1 as long as no-space mode is active.
-This request is useful for macros that conditionally
-insert vertical space before the text starts
-(for example, a paragraph macro could insert some space
-except when it is the first paragraph after a section header).
+This request is useful for macros that conditionally insert vertical
+space before the text starts (for example, a paragraph macro could
+insert some space except when it is the first paragraph after a section
+header).
@endDefreq
@@ -7334,21 +7293,20 @@ This escape is a non-interpreted tab character. In copy mode
@DefregListEnd {.tabs}
Change tab stop positions. This request takes a series of tab
specifiers as arguments (optionally divided into two groups with the
-letter @samp{T}) which indicate where each tab stop is to be
-(overriding any previous settings).
+letter @samp{T}) which indicate where each tab stop is to be (overriding
+any previous settings).
Tab stops can be specified absolutely, i.e., as the distance from the
-left margin. For example, the following sets 6@tie{}tab stops every
-one inch.
+left margin. For example, the following sets 6@tie{}tab stops every one
+inch.
@Example
.ta 1i 2i 3i 4i 5i 6i
@endExample
-Tab stops can also be specified using a leading @samp{+}
-which means that the specified tab stop is set relative to
-the previous tab stop. For example, the following is equivalent to the
-previous example.
+Tab stops can also be specified using a leading @samp{+} which means
+that the specified tab stop is set relative to the previous tab stop.
+For example, the following is equivalent to the previous example.
@Example
.ta 1i +1i +1i +1i +1i +1i
@@ -7399,9 +7357,9 @@ can be neither stretched nor squeezed. For example,
@endExample
@noindent
-creates a single line which is a bit longer than 10@tie{}inches (a string
-is used to show exactly where the tab characters are). Now consider the
-following:
+creates a single line which is a bit longer than 10@tie{}inches (a
+string is used to show exactly where the tab characters are). Now
+consider the following:
@Example
.ds bar a\tb b\tc
@@ -7485,10 +7443,9 @@ register @code{.S} for the same purpose.
Normally @code{gtroff} fills the space to the next tab stop with
whitespace. This can be changed with the @code{tc} request. With no
argument @code{gtroff} reverts to using whitespace, which is the
-default. The value of this @dfn{tab repetition character} is
-associated with the current environment
-(@pxref{Environments}).@footnote{@dfn{Tab repetition character} is a
-misnomer since it is an output glyph.}
+default. The value of this @dfn{tab repetition character} is associated
+with the current environment (@pxref{Environments}).@footnote{@dfn{Tab
+repetition character} is a misnomer since it is an output glyph.}
@endDefreq
@DefreqList {linetabs, n}
@@ -7496,10 +7453,10 @@ misnomer since it is an output glyph.}
@cindex tab, line-tabs mode
@cindex line-tabs mode
@cindex mode, line-tabs
-If @var{n} is missing or not zero, enable @dfn{line-tabs} mode,
-or disable it otherwise (the default).
-In line-tabs mode, @code{gtroff} computes tab distances
-relative to the (current) output line instead of the input line.
+If @var{n} is missing or not zero, enable @dfn{line-tabs} mode, or
+disable it otherwise (the default). In line-tabs mode, @code{gtroff}
+computes tab distances relative to the (current) output line instead of
+the input line.
For example, the following code:
@@ -7527,8 +7484,8 @@ in line-tabs mode, the same code outputs
a b c
@endExample
-Line-tabs mode is associated with the current environment.
-The read-only register @code{.linetabs} is set to@tie{}1 if in line-tabs
+Line-tabs mode is associated with the current environment. The
+read-only register @code{.linetabs} is set to@tie{}1 if in line-tabs
mode, and 0 in normal mode.
@endDefreq
@@ -7544,16 +7501,16 @@ mode, and 0 in normal mode.
@cindex leaders
Sometimes it may may be desirable to use the @code{tc} request to fill a
-particular tab stop with a given glyph (for example dots in a table
-of contents), but also normal tab stops on the rest of the line. For
-this @code{gtroff} provides an alternate tab mechanism, called
-@dfn{leaders} which does just that.
+particular tab stop with a given glyph (for example dots in a table of
+contents), but also normal tab stops on the rest of the line. For this
+@code{gtroff} provides an alternate tab mechanism, called @dfn{leaders}
+which does just that.
@cindex leader character
A leader character (character code@tie{}1) behaves similarly to a tab
character: It moves to the next tab stop. The only difference is that
-for this movement, the fill glyph defaults to a period character and
-not to space.
+for this movement, the fill glyph defaults to a period character and not
+to space.
@Defesc {\\a, , , }
@cindex leader character, non-interpreted (@code{\a})
@@ -7574,8 +7531,8 @@ Declare the @dfn{leader repetition character}.@footnote{@dfn{Leader
repetition character} is a misnomer since it is an output glyph.}
Without an argument, leaders act the same as tabs (i.e., using
whitespace for filling). @code{gtroff}'s start-up value is a dot
-(@samp{.}). The value of the leader repetition character is
-associated with the current environment (@pxref{Environments}).
+(@samp{.}). The value of the leader repetition character is associated
+with the current environment (@pxref{Environments}).
@endDefreq
@cindex table of contents
@@ -7674,8 +7631,8 @@ character is associated with the current environment
@endDefreq
@Defreq {c2, [@Var{c}]}
-Set the no-break control character to@tie{}@var{c}. With no argument the
-default control character @samp{'} is restored. The value of the
+Set the no-break control character to@tie{}@var{c}. With no argument
+the default control character @samp{'} is restored. The value of the
no-break control character is associated with the current environment
(@pxref{Environments}).
@endDefreq
@@ -7685,9 +7642,8 @@ no-break control character is associated with the current environment
@Defreq {eo, }
@cindex disabling @code{\} (@code{eo})
@cindex @code{\}, disabling (@code{eo})
-Disable the escape mechanism completely. After executing this
-request, the backslash character @samp{\} no longer starts an escape
-sequence.
+Disable the escape mechanism completely. After executing this request,
+the backslash character @samp{\} no longer starts an escape sequence.
This request can be very helpful in writing macros since it is not
necessary then to double the escape character. Here an example:
@@ -7714,27 +7670,25 @@ necessary then to double the escape character. Here an example:
@cindex escape character, changing (@code{ec})
@cindex character, escape, changing (@code{ec})
Set the escape character to@tie{}@var{c}. With no argument the default
-escape character @samp{\} is restored. It can be also used to
-re-enable the escape mechanism after an @code{eo} request.
+escape character @samp{\} is restored. It can be also used to re-enable
+the escape mechanism after an @code{eo} request.
-Note that changing the escape character globally likely breaks
-macro packages since @code{gtroff} has no mechanism to `intern' macros,
-i.e., to convert a macro definition into an internal form which is
-independent of its representation (@TeX{} has this mechanism).
-If a macro is called, it is executed literally.
+Note that changing the escape character globally likely breaks macro
+packages since @code{gtroff} has no mechanism to `intern' macros, i.e.,
+to convert a macro definition into an internal form which is independent
+of its representation (@TeX{} has this mechanism). If a macro is
+called, it is executed literally.
@endDefreq
@DefreqList {ecs, }
@DefreqListEnd {ecr, }
-The @code{ecs} request saves the current escape character
-in an internal register.
-Use this request in combination with the @code{ec} request to
+The @code{ecs} request saves the current escape character in an internal
+register. Use this request in combination with the @code{ec} request to
temporarily change the escape character.
-The @code{ecr} request restores the escape character
-saved with @code{ecs}.
-Without a previous call to @code{ecs}, this request
-sets the escape character to @code{\}.
+The @code{ecr} request restores the escape character saved with
+@code{ecs}. Without a previous call to @code{ecs}, this request sets
+the escape character to @code{\}.
@endDefreq
@DefescList {\\\\, , , }
@@ -7754,15 +7708,14 @@ emitted.
@cindex @code{\E}, and copy-in mode
@cindex copy-in mode, and @code{\E}
@cindex mode, copy-in, and @code{\E}
-As a consequence, only at top-level or in a diversion a backslash glyph is
-printed; in copy-in mode, it expands to a single backslash which then
+As a consequence, only at top-level or in a diversion a backslash glyph
+is printed; in copy-in mode, it expands to a single backslash which then
combines with the following character to an escape sequence.
The @code{\E} escape differs from @code{\e} by printing an escape
-character that is not interpreted in copy mode.
-Use this to define strings with escapes that work
-when used in copy mode (for example, as a macro argument).
-The following example defines strings to begin and end
+character that is not interpreted in copy mode. Use this to define
+strings with escapes that work when used in copy mode (for example, as a
+macro argument). The following example defines strings to begin and end
a superscript:
@Example
@@ -7770,8 +7723,8 @@ a superscript:
.ds @} \s0\v'.3m'
@endExample
-Another example to demonstrate the differences between the various escape
-sequences, using a strange escape character, @samp{-}.
+Another example to demonstrate the differences between the various
+escape sequences, using a strange escape character, @samp{-}.
@Example
.ec -
@@ -7803,9 +7756,9 @@ only @code{\E} yields the expected result:
@endDefesc
@Defesc {\\., , , }
-Similar to @code{\\}, the sequence @code{\.} isn't a real escape sequence.
-As before, a warning message is suppressed if the escape character is
-followed by a dot, and the dot itself is printed.
+Similar to @code{\\}, the sequence @code{\.} isn't a real escape
+sequence. As before, a warning message is suppressed if the escape
+character is followed by a dot, and the dot itself is printed.
@Example
.de foo
@@ -7838,9 +7791,8 @@ Translate character @var{a} to glyph@tie{}@var{b}, character @var{c} to
glyph@tie{}@var{d}, etc. If there is an odd number of arguments, the
last one is translated to an unstretchable space (@w{@samp{\ }}).
-The @code{trin} request is identical to @code{tr},
-but when you unformat a diversion with @code{asciify}
-it ignores the translation.
+The @code{trin} request is identical to @code{tr}, but when you unformat
+a diversion with @code{asciify} it ignores the translation.
@xref{Diversions}, for details about the @code{asciify} request.
Some notes:
@@ -7898,7 +7850,8 @@ set with the @code{shc} request.
@item
@cindex @code{\&}, and translations
The pair @samp{@var{c}\&} (this is an arbitrary character@tie{}@var{c}
-followed by the zero width space character) maps this character to nothing.
+followed by the zero width space character) maps this character to
+nothing.
@Example
.tr a\&
@@ -7921,29 +7874,29 @@ character/glyph pair as an argument of @code{tr}. Additionally, it is
not possible to map the space character to any other glyph; requests
like @w{@samp{.tr aa x}} undo @w{@samp{.tr aa \&}} instead.
-If justification is active, lines are justified in spite of the
-`empty' space character (but there is no minimal distance, i.e.@: the
-space character, between words).
+If justification is active, lines are justified in spite of the `empty'
+space character (but there is no minimal distance, i.e.@: the space
+character, between words).
@item
-After an output glyph has been constructed (this happens at the
-moment immediately before the glyph is appended to an output
-glyph list, either by direct output, in a macro, diversion, or
-string), it is no longer affected by @code{tr}.
+After an output glyph has been constructed (this happens at the moment
+immediately before the glyph is appended to an output glyph list, either
+by direct output, in a macro, diversion, or string), it is no longer
+affected by @code{tr}.
@item
-Translating character to glyphs where one of them or both are
-undefined is possible also; @code{tr} does not check whether the
-entities in its argument do exist.
+Translating character to glyphs where one of them or both are undefined
+is possible also; @code{tr} does not check whether the entities in its
+argument do exist.
@xref{Gtroff Internals}.
@item
-@code{troff} no longer has a hard-coded dependency on @w{Latin-1};
-all @code{char@var{XXX}} entities have been removed from the font
+@code{troff} no longer has a hard-coded dependency on @w{Latin-1}; all
+@code{char@var{XXX}} entities have been removed from the font
description files. This has a notable consequence which shows up in
-warnings like @code{can't find character with input code @var{XXX}}
-if the @code{tr} request isn't handled properly.
+warnings like @code{can't find character with input code @var{XXX}} if
+the @code{tr} request isn't handled properly.
Consider the following translation:
@@ -7953,10 +7906,10 @@ Consider the following translation:
@noindent
This maps input character @code{é} onto glyph @code{É}, which is
-identical to glyph @code{char201}. But this glyph intentionally
-doesn't exist! Instead, @code{\[char201]} is treated as an input
-character entity and is by default mapped onto @code{\['E]}, and
-@code{gtroff} doesn't handle translations of translations.
+identical to glyph @code{char201}. But this glyph intentionally doesn't
+exist! Instead, @code{\[char201]} is treated as an input character
+entity and is by default mapped onto @code{\['E]}, and @code{gtroff}
+doesn't handle translations of translations.
The right way to write the above translation is
@@ -7976,9 +7929,8 @@ Without an argument, the @code{tr} request is ignored.
@Defreq {trnt, @Var{a}@Var{b}@Var{c}@Var{d}@dots{}}
@cindex @code{\!}, and @code{trnt}
@code{trnt} is the same as the @code{tr} request except that the
-translations do not apply to text that is transparently throughput
-into a diversion with @code{\!}. @xref{Diversions}, for more
-information.
+translations do not apply to text that is transparently throughput into
+a diversion with @code{\!}. @xref{Diversions}, for more information.
For example,
@@ -8007,46 +7959,45 @@ instead of @code{tr} it prints @samp{a}.
Originally, @code{nroff} and @code{troff} were two separate programs,
the former for TTY output, the latter for everything else. With GNU
-@code{troff}, both programs are merged into one executable, sending
-its output to a device driver (@code{grotty} for TTY devices,
-@code{grops} for @sc{PostScript}, etc.) which interprets the
-intermediate output of @code{gtroff}. For @acronym{UNIX} @code{troff}
-it makes sense to talk about @dfn{Nroff mode} and @dfn{Troff mode}
-since the differences are hardcoded. For GNU @code{troff}, this
-distinction is not appropriate because @code{gtroff} simply takes the
-information given in the font files for a particular device without
-handling requests specially if a TTY output device is used.
+@code{troff}, both programs are merged into one executable, sending its
+output to a device driver (@code{grotty} for TTY devices, @code{grops}
+for @sc{PostScript}, etc.)@: which interprets the intermediate output of
+@code{gtroff}. For @acronym{UNIX} @code{troff} it makes sense to talk
+about @dfn{Nroff mode} and @dfn{Troff mode} since the differences are
+hardcoded. For GNU @code{troff}, this distinction is not appropriate
+because @code{gtroff} simply takes the information given in the font
+files for a particular device without handling requests specially if a
+TTY output device is used.
Usually, a macro package can be used with all output devices.
Nevertheless, it is sometimes necessary to make a distinction between
-TTY and non-TTY devices: @code{gtroff} provides two built-in
-conditions @samp{n} and @samp{t} for the @code{if}, @code{ie}, and
-@code{while} requests to decide whether @code{gtroff} shall behave
-like @code{nroff} or like @code{troff}.
+TTY and non-TTY devices: @code{gtroff} provides two built-in conditions
+@samp{n} and @samp{t} for the @code{if}, @code{ie}, and @code{while}
+requests to decide whether @code{gtroff} shall behave like @code{nroff}
+or like @code{troff}.
@Defreq {troff, }
@pindex troffrc
@pindex troffrc-end
Make the @samp{t} built-in condition true (and the @samp{n} built-in
-condition false) for @code{if}, @code{ie}, and @code{while}
-conditional requests. This is the default if @code{gtroff}
-(@emph{not} @code{groff}) is started with the @option{-R} switch to
-avoid loading of the start-up files @file{troffrc} and
-@file{troffrc-end}. Without @option{-R}, @code{gtroff} stays in troff
-mode if the output device is not a TTY (e.g.@: `ps').
+condition false) for @code{if}, @code{ie}, and @code{while} conditional
+requests. This is the default if @code{gtroff} (@emph{not}
+@code{groff}) is started with the @option{-R} switch to avoid loading of
+the start-up files @file{troffrc} and @file{troffrc-end}. Without
+@option{-R}, @code{gtroff} stays in troff mode if the output device is
+not a TTY (e.g.@: `ps').
@endDefreq
@Defreq {nroff, }
@pindex tty.tmac
Make the @samp{n} built-in condition true (and the @samp{t} built-in
-condition false) for @code{if}, @code{ie}, and @code{while}
-conditional requests. This is the default if @code{gtroff} uses a TTY
-output device; the code for switching to nroff mode is in the file
+condition false) for @code{if}, @code{ie}, and @code{while} conditional
+requests. This is the default if @code{gtroff} uses a TTY output
+device; the code for switching to nroff mode is in the file
@file{tty.tmac} which is loaded by the start-up file @code{troffrc}.
@endDefreq
-@xref{Conditionals and Loops}, for more details on built-in
-conditions.
+@xref{Conditionals and Loops}, for more details on built-in conditions.
@c =====================================================================
@@ -8063,13 +8014,13 @@ placing a line of output onto the page. They are labeled with the
request which manipulates each dimension.
@Example
- -->| in |<--
- |<-----------ll------------>|
- +----+----+----------------------+----+
- | : : : |
- +----+----+----------------------+----+
- -->| po |<--
- |<--------paper width---------------->|
+ -->| in |<--
+ |<-----------ll------------>|
+ +----+----+----------------------+----+
+ | : : : |
+ +----+----+----------------------+----+
+-->| po |<--
+ |<--------paper width---------------->|
@endExample
@noindent
@@ -8136,9 +8087,9 @@ the current value by @var{offset}). Note that this request does not
cause a break, so changing the page offset in the middle of text being
filled may not yield the expected result. The initial value is
1@dmn{i}. For TTY output devices, it is set to 0 in the startup file
-@file{troffrc}; the default scaling indicator is @samp{m} (and
-not @samp{v} as incorrectly documented in the original
-@acronym{UNIX} troff manual).
+@file{troffrc}; the default scaling indicator is @samp{m} (and not
+@samp{v} as incorrectly documented in the original @acronym{UNIX} troff
+manual).
The current page offset can be found in the read-only number register
@samp{.o}.
@@ -8163,9 +8114,9 @@ the previous value before the last call to @code{po}.
@DefreqItem {in, @t{+}@Var{indent}}
@DefreqItem {in, @t{-}@Var{indent}}
@DefregListEnd {.i}
-Set indentation to @var{indent} (or increment or decrement the
-current value by @var{indent}). This request causes a break.
-Initially, there is no indentation.
+Set indentation to @var{indent} (or increment or decrement the current
+value by @var{indent}). This request causes a break. Initially, there
+is no indentation.
If @code{in} is called without an argument, the indentation is reset to
the previous value before the last call to @code{in}. The default
@@ -8178,9 +8129,9 @@ If a negative indentation value is specified (which is not allowed),
@code{gtroff} emits a warning of type @samp{range} and sets the
indentation to zero.
-The effect of @code{in} is delayed until a partially collected line
-(if it exists) is output. A temporary indentation value is reset to
-zero also.
+The effect of @code{in} is delayed until a partially collected line (if
+it exists) is output. A temporary indentation value is reset to zero
+also.
The current indentation (as set by @code{in}) can be found in the
read-only number register @samp{.i}.
@@ -8195,8 +8146,8 @@ increment or decrement value is specified, adjust the temporary
indentation relative to the value set by the @code{in} request.
This request causes a break; its value is associated with the current
-environment (@pxref{Environments}). The default scaling indicator
-is @samp{m}. A call of @code{ti} without an argument is ignored.
+environment (@pxref{Environments}). The default scaling indicator is
+@samp{m}. A call of @code{ti} without an argument is ignored.
If the total indentation value is negative (which is not allowed),
@code{gtroff} emits a warning of type @samp{range} and sets the
@@ -8223,8 +8174,8 @@ indentation value or a temporary indentation value is active.
Set the line length to @var{length} (or increment or decrement the
current value by @var{length}). Initially, the line length is set to
6.5@dmn{i}. The effect of @code{ll} is delayed until a partially
-collected line (if it exists) is output. The default scaling
-indicator is @samp{m}.
+collected line (if it exists) is output. The default scaling indicator
+is @samp{m}.
If @code{ll} is called without an argument, the line length is reset to
the previous value before the last call to @code{ll}. If a negative
@@ -8274,8 +8225,8 @@ This is a test.
This is a test.
@endExample
-The main usage of this feature is to define macros which act exactly
-at the place where called.
+The main usage of this feature is to define macros which act exactly at
+the place where called.
@Example
.\" A simple macro to underline a word
@@ -8286,9 +8237,9 @@ at the place where called.
@noindent
In the above example, @samp{|0} specifies a negative distance from the
-current position (at the end of the just emitted argument @code{\$1}) back
-to the beginning of the input line. Thus, the @samp{\l} escape draws a
-line from right to left.
+current position (at the end of the just emitted argument @code{\$1})
+back to the beginning of the input line. Thus, the @samp{\l} escape
+draws a line from right to left.
@cindex input line continuation (@code{\})
@cindex line, input, continuation (@code{\})
@@ -8303,9 +8254,9 @@ continuation; the latter is also called @dfn{interrupting} a line.
@DefescList {\\@key{RET}, , ,}
@DefescItem {\\c, , ,}
-@DefregListEnd{.int}
-Continue a line. @code{\@key{RET}} (this is a backslash at the end
-of a line immediately followed by a newline) works on the input level,
+@DefregListEnd {.int}
+Continue a line. @code{\@key{RET}} (this is a backslash at the end of a
+line immediately followed by a newline) works on the input level,
suppressing the effects of the following newline in the input.
@Example
@@ -8331,8 +8282,8 @@ The visual results depend on whether no-fill mode is active.
@cindex no-fill mode, and @code{\c}
@cindex mode, no-fill, and @code{\c}
If no-fill mode is active (using the @code{nf} request), the next input
-text line after @code{\c} is handled as a continuation of the same
-input text line.
+text line after @code{\c} is handled as a continuation of the same input
+text line.
@Example
.nf
@@ -8360,11 +8311,12 @@ Note that an intervening control line which causes a break is stronger
than @code{\c}, flushing out the current partial line in the usual way.
@cindex interrupted line register (@code{.int})
-The @code{.int} register contains a positive value
-if the last output line was interrupted with @code{\c}; this is
-associated with the current environment (@pxref{Environments}).
+The @code{.int} register contains a positive value if the last output
+line was interrupted with @code{\c}; this is associated with the current
+environment (@pxref{Environments}).
@endDefesc
+
@c =====================================================================
@node Page Layout, Page Control, Line Control, gtroff Reference
@@ -8381,9 +8333,9 @@ page layout.
@DefregListEnd {.p}
@cindex page length (@code{pl})
@cindex length of page (@code{pl})
-Set the @dfn{page length} to @var{length} (or increment or decrement
-the current value by @var{length}). This is the length of the
-physical output page. The default scaling indicator is @samp{v}.
+Set the @dfn{page length} to @var{length} (or increment or decrement the
+current value by @var{length}). This is the length of the physical
+output page. The default scaling indicator is @samp{v}.
@cindex page length register (@code{.p})
The current setting can be found in the read-only number register
@@ -8415,9 +8367,9 @@ and bottom titles (or headers and footers).
@cindex title line (@code{tl})
@cindex three-part title (@code{tl})
@cindex page number character (@code{%})
-Print a @dfn{title line}. It consists of three parts: a left
-justified portion, a centered portion, and a right justified portion.
-The argument separator @samp{'} can be replaced with any character not
+Print a @dfn{title line}. It consists of three parts: a left justified
+portion, a centered portion, and a right justified portion. The
+argument separator @samp{'} can be replaced with any character not
occurring in the title line. The @samp{%} character is replaced with
the current page number. This character can be changed with the
@code{pc} request (see below).
@@ -8453,14 +8405,14 @@ right justfied parts are empty.
@cindex length of title line (@code{lt})
@cindex title line, length (@code{lt})
@cindex title line length register (@code{.lt})
-The title line is printed using its own line length, which is
-specified (or incremented or decremented) with the @code{lt} request.
-Initially, the title line length is set to 6.5@dmn{i}. If a negative
-line length is specified (which is not allowed), @code{gtroff} emits a
-warning of type @samp{range} and sets the title line length to zero.
-The default scaling indicator is @samp{m}. If @code{lt} is called
-without an argument, the title length is reset to the previous value
-before the last call to @code{lt}.
+The title line is printed using its own line length, which is specified
+(or incremented or decremented) with the @code{lt} request. Initially,
+the title line length is set to 6.5@dmn{i}. If a negative line length
+is specified (which is not allowed), @code{gtroff} emits a warning of
+type @samp{range} and sets the title line length to zero. The default
+scaling indicator is @samp{m}. If @code{lt} is called without an
+argument, the title length is reset to the previous value before the
+last call to @code{lt}.
The current setting of this is available in the @code{.lt} read-only
number register; it is associated with the current environment
@@ -8508,11 +8460,11 @@ Note that this doesn't affect the number register@tie{}@code{%}.
@cindex new page (@code{bp})
@cindex page, new (@code{bp})
Stop processing the current page and move to the next page. This
-request causes a break. It can also take an argument to set
-(increase, decrease) the page number of the next page (which actually
-becomes the current page after @code{bp} has finished). The
-difference between @code{bp} and @code{pn} is that @code{pn} does not
-cause a break or actually eject a page. @xref{Page Layout}.
+request causes a break. It can also take an argument to set (increase,
+decrease) the page number of the next page (which actually becomes the
+current page after @code{bp} has finished). The difference between
+@code{bp} and @code{pn} is that @code{pn} does not cause a break or
+actually eject a page. @xref{Page Layout}.
@Example
.de newpage \" define macro
@@ -8544,10 +8496,10 @@ active. @xref{Page Location Traps}.
It is often necessary to force a certain amount of space before a new
page occurs. This is most useful to make sure that there is not a
single @dfn{orphan} line left at the bottom of a page. The @code{ne}
-request ensures that there is a certain distance, specified by the
-first argument, before the next page is triggered (see @ref{Traps},
-for further information). The default scaling indicator for @code{ne}
-is @samp{v}; the default value of @var{space} is@tie{}1@dmn{v} if no
+request ensures that there is a certain distance, specified by the first
+argument, before the next page is triggered (see @ref{Traps}, for
+further information). The default scaling indicator for @code{ne} is
+@samp{v}; the default value of @var{space} is@tie{}1@dmn{v} if no
argument is given.
For example, to make sure that no fewer than 2@tie{}lines get orphaned,
@@ -8558,26 +8510,25 @@ do the following before each paragraph:
text text text
@endExample
-@code{ne} then automatically causes a page break if there is space
-for one line only.
+@code{ne} then automatically causes a page break if there is space for
+one line only.
@endDefreq
@DefreqList {sv, [@Var{space}]}
@DefreqListEnd {os, }
@cindex @code{ne} request, comparison with @code{sv}
-@code{sv} is similar to the @code{ne} request; it reserves the
-specified amount of vertical space. If the desired amount of space
-exists before the next trap (or the bottom page boundary if no trap is
-set), the space is output immediately (ignoring a partially filled line
-which stays untouched). If there is not enough space, it is stored for
-later output via the @code{os} request. The default value is@tie{}1@dmn{v}
-if no argument is given; the default scaling indicator is @samp{v}.
+@code{sv} is similar to the @code{ne} request; it reserves the specified
+amount of vertical space. If the desired amount of space exists before
+the next trap (or the bottom page boundary if no trap is set), the space
+is output immediately (ignoring a partially filled line which stays
+untouched). If there is not enough space, it is stored for later output
+via the @code{os} request. The default value is@tie{}1@dmn{v} if no
+argument is given; the default scaling indicator is @samp{v}.
@cindex @code{sv} request, and no-space mode
@cindex @code{os} request, and no-space mode
Both @code{sv} and @code{os} ignore no-space mode. While the @code{sv}
-request allows negative values for @var{space}, @code{os} ignores
-them.
+request allows negative values for @var{space}, @code{os} ignores them.
@endDefreq
@Defreg {nl}
@@ -8631,6 +8582,7 @@ one.
registers.
@endDefreg
+
@c =====================================================================
@node Fonts and Symbols, Sizes, Page Control, gtroff Reference
@@ -8708,10 +8660,9 @@ and sausage.
eggs, bacon, \fBspam\fP and sausage.
@endExample
-Note that @code{\f} doesn't produce an input token in @code{gtroff}.
-As a consequence, it can be used in requests like @code{mc} (which
-expects a single character as an argument) to change the font on
-the fly:
+Note that @code{\f} doesn't produce an input token in @code{gtroff}. As
+a consequence, it can be used in requests like @code{mc} (which expects
+a single character as an argument) to change the font on the fly:
@Example
.mc \f[I]x\f[]
@@ -8719,8 +8670,8 @@ the fly:
The current style name is available in the read-only number register
@samp{.sty} (this is a string-valued register); if the current font
-isn't a style, the empty string is returned. It is associated with
-the current environment.
+isn't a style, the empty string is returned. It is associated with the
+current environment.
@xref{Font Positions}, for an alternative syntax.
@endDefreq
@@ -8741,12 +8692,12 @@ the current environment.
@cindex @code{ie} request, and font translations
@cindex @code{while} request, and font translations
Translate font@tie{}@var{f} to font@tie{}@var{g}. Whenever a font
-named@tie{}@var{f} is referred to in a @code{\f} escape sequence,
-in the @code{F} and @code{S} conditional operators, or in the
-@code{ft}, @code{ul}, @code{bd}, @code{cs}, @code{tkf},
-@code{special}, @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.
+named@tie{}@var{f} is referred to in a @code{\f} escape sequence, in the
+@code{F} and @code{S} conditional operators, or in the @code{ft},
+@code{ul}, @code{bd}, @code{cs}, @code{tkf}, @code{special},
+@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.
Note that it is not possible to chain font translations. Example:
@@ -8768,10 +8719,11 @@ Note that it is not possible to chain font translations. Example:
@cindex optical size of a font
@cindex font, optical size
@cindex size, optical, of a font
-Set magnification of font@tie{}@var{f} to factor @var{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 @code{CR} is magnified by 10% (the zoom factor is thus 1.1).
+Set magnification of font@tie{}@var{f} to factor @var{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 @code{CR} is magnified by 10% (the zoom factor is
+thus 1.1).
@Example
.fam P
@@ -8780,17 +8732,18 @@ font @code{CR} is magnified by 10% (the zoom factor is thus 1.1).
Palatino and \f[CR]Courier\f[]
@endExample
-A missing or zero value of @var{zoom} is the same as a value of 1000, which
-means no magnification. @var{f}@tie{}must be a real font name, not a style.
+A missing or zero value of @var{zoom} is the same as a value of 1000,
+which means no magnification. @var{f}@tie{}must be a real font name,
+not a style.
-Note that the magnification of a font is completely transparent to 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.
+Note that the magnification of a font is completely transparent to
+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 number
-register @samp{.zoom}, in multiples of 1/1000th. It returns zero if there
-is no magnification.
+register @samp{.zoom}, in multiples of 1/1000th. It returns zero if
+there is no magnification.
@endDefreq
@c ---------------------------------------------------------------------
@@ -8812,8 +8765,8 @@ the current family.
@cindex fonts, PostScript
Currently, fonts for the devices @option{-Tps}, @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}.
+mechanism. By default, @code{gtroff} uses the Times family with the
+four styles @samp{R}, @samp{I}, @samp{B}, and @samp{BI}.
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}).
@@ -8827,15 +8780,14 @@ different font family on the command line (@pxref{Groff Options}).
@cindex changing font family (@code{fam}, @code{\F})
@cindex font family, changing (@code{fam}, @code{\F})
Switch font family to @var{family} (one-character name@tie{}@var{f},
-two-character name @var{fm}). If no argument is given, switch
-back to the previous font family. Use @code{\F[]} to do this with the
-escape. Note that @code{\FP} doesn't work; it selects font family
-@samp{P} instead.
-
-The value at start-up is @samp{T}.
-The current font family is available in the read-only number register
-@samp{.fam} (this is a string-valued register); it is associated with
-the current environment.
+two-character name @var{fm}). If no argument is given, switch back to
+the previous font family. Use @code{\F[]} to do this with the escape.
+Note that @code{\FP} doesn't work; it selects font family @samp{P}
+instead.
+
+The value at start-up is @samp{T}. The current font family is available
+in the read-only number register @samp{.fam} (this is a string-valued
+register); it is associated with the current environment.
@Example
spam,
@@ -8851,20 +8803,18 @@ baked beans,
and spam.
@endExample
-Note that @code{\F} doesn't produce an input token in @code{gtroff}.
-As a consequence, it can be used in requests like @code{mc} (which
-expects a single character as an argument) to change the font family on
-the fly:
+Note that @code{\F} doesn't produce an input token in @code{gtroff}. As
+a consequence, it can be used in requests like @code{mc} (which expects
+a single character as an argument) to change the font family on the fly:
@Example
.mc \F[P]x\F[]
@endExample
-The @samp{.fn} register contains the current @dfn{real font name}
-of the current font.
-This is a string-valued register.
-If the current font is a style, the value of @code{\n[.fn]}
-is the proper concatenation of family and style name.
+The @samp{.fn} register contains the current @dfn{real font name} of the
+current font. This is a string-valued register. If the current font is
+a style, the value of @code{\n[.fn]} is the proper concatenation of
+family and style name.
@endDefreq
@Defreq {sty, n style}
@@ -8876,28 +8826,27 @@ is the proper concatenation of family and style name.
@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
-which 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.
+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 which 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 value.
@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
-@sc{PostScript} fonts
+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 @sc{PostScript}
+fonts
@Example
styles R I B BI
@@ -8914,8 +8863,8 @@ is equivalent to
@endExample
@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.
+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 @sc{PostScript} font
@code{FooBar} from the font family @code{Foo}:
@@ -8927,9 +8876,9 @@ In the following example, we want to access the @sc{PostScript} font
@endExample
@noindent
-The default font position at start-up is@tie{}1; for the
-@sc{PostScript} device, this is associated with style @samp{R}, so
-@code{gtroff} tries to open @code{FooR}.
+The default font position at start-up is@tie{}1; for the @sc{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:
@@ -8962,9 +8911,9 @@ on which various fonts are mounted.
@cindex font, mounting (@code{fp})
Mount font @var{font} at position @var{pos} (which must be a
non-negative integer). This numeric position can then be referred to
-with font changing commands. When @code{gtroff} starts it is using
-font position@tie{}1 (which must exist; position@tie{}0 is unused
-usually at start-up).
+with font changing commands. When @code{gtroff} starts it is using font
+position@tie{}1 (which must exist; position@tie{}0 is unused usually at
+start-up).
@cindex font position register (@code{.f})
The current font in use, as a font position, is available in the
@@ -8990,11 +8939,11 @@ like so:
@pindex DESC@r{, and font mounting}
Fonts not listed in the @file{DESC} file are automatically mounted on
-the next available font position when they are referenced. If a font
-is to be mounted explicitly with the @code{fp} request on an unused
-font position, it should be mounted on the first unused font position,
-which can be found in the @code{.fp} register. Although @code{gtroff}
-does not enforce this strictly, it is not allowed to mount a font at a
+the next available font position when they are referenced. If a font is
+to be mounted explicitly with the @code{fp} request on an unused font
+position, it should be mounted on the first unused font position, which
+can be found in the @code{.fp} register. Although @code{gtroff} does
+not enforce this strictly, it is not allowed to mount a font at a
position whose number is much greater (approx.@: 1000 positions) than
that of any currently used position.
@@ -9003,8 +8952,8 @@ gives the external name of the font, which is used for finding the font
description file. The second argument gives the internal name of the
font which is used to refer to the font in @code{gtroff} after it has
been mounted. If there is no third argument then the internal name is
-used as the external name. This feature makes it possible to use
-fonts with long names in compatibility mode.
+used as the external name. This feature makes it possible to use fonts
+with long names in compatibility mode.
@endDefreq
Both the @code{ft} request and the @code{\f} escape have alternative
@@ -9029,8 +8978,8 @@ non-negative integer.
If @var{nnn} is associated with a style (as set with the @code{sty}
request or with the @code{styles} command in the @file{DESC} file), use
it within the current font family (as set with the @code{fam} request,
-the @code{\F} escape, or with the @code{family} command in the @file{DESC}
-file).
+the @code{\F} escape, or with the @code{family} command in the
+@file{DESC} file).
@Example
this is font 1
@@ -9056,14 +9005,14 @@ this is font 1 again
@cindex glyph
@cindex character
@cindex ligature
-A @dfn{glyph} is a graphical representation of a @dfn{character}.
-While a character is an abstract entity containing semantic
-information, a glyph is something which can be actually seen on screen
-or paper. It is possible that a character has multiple glyph
-representation forms (for example, the character `A' can be either
-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').
+A @dfn{glyph} is a graphical representation of a @dfn{character}. While
+a character is an abstract entity containing semantic information, a
+glyph is something which can be actually seen on screen or paper. It is
+possible that a character has multiple glyph representation forms (for
+example, the character `A' can be either 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').
@cindex symbol
@cindex special fonts
@@ -9071,17 +9020,16 @@ sometimes more than one character maps to a single glyph (this is a
@pindex DESC
@cindex @code{special} request, and glyph search order
@cindex @code{fspecial} request, and glyph search order
-A @dfn{symbol} is simply a named glyph. Within @code{gtroff}, all
-glyph names of a particular font are defined in its font file. If the
-user requests a glyph not available in this font, @code{gtroff} looks
-up an ordered list of @dfn{special fonts}. By default, the
-@sc{PostScript} output device supports the two special fonts @samp{SS}
-(slanted symbols) and @samp{S} (symbols) (the former is looked up
-before the latter). Other output devices use different names for
-special fonts. Fonts mounted with the @code{fonts} keyword in the
-@file{DESC} file are globally available. To install additional
-special fonts locally (i.e.@: for a particular font), use the
-@code{fspecial} request.
+A @dfn{symbol} is simply a named glyph. Within @code{gtroff}, all glyph
+names of a particular font are defined in its font file. If the user
+requests a glyph not available in this font, @code{gtroff} looks up an
+ordered list of @dfn{special fonts}. By default, the @sc{PostScript}
+output device supports the two special fonts @samp{SS} (slanted symbols)
+and @samp{S} (symbols) (the former is looked up before the latter).
+Other output devices use different names for special fonts. Fonts
+mounted with the @code{fonts} keyword in the @file{DESC} file are
+globally available. To install additional special fonts locally (i.e.@:
+for a particular font), use the @code{fspecial} request.
Here the exact rules how @code{gtroff} searches a given symbol:
@@ -9097,9 +9045,9 @@ Check the current font.
If the symbol has been defined with the @code{fchar} request, use it.
@item
-Check whether the current font has a font-specific list of special fonts;
-test all fonts in the order of appearance in the last @code{fspecial}
-call if appropriate.
+Check whether the current font has a font-specific list of special
+fonts; test all fonts in the order of appearance in the last
+@code{fspecial} call if appropriate.
@item
If the symbol has been defined with the @code{fschar} request for the
@@ -9114,10 +9062,10 @@ If the symbol has been defined with the @code{schar} request, use it.
@item
As a last resort, consult all fonts loaded up to now for special fonts
-and check them, starting with the lowest font number. Note that this can
-sometimes lead to surprising results since the @code{fonts} line in the
-@file{DESC} file often contains empty positions which are filled later
-on. For example, consider the following:
+and check them, starting with the lowest font number. Note that this
+can sometimes lead to surprising results since the @code{fonts} line in
+the @file{DESC} file often contains empty positions which are filled
+later on. For example, consider the following:
@Example
fonts 3 0 0 FOO
@@ -9125,8 +9073,8 @@ fonts 3 0 0 FOO
@noindent
This mounts font @code{foo} at font position@tie{}3. We assume that
-@code{FOO} is a special font, containing glyph @code{foo},
-and that no font has been loaded yet. The line
+@code{FOO} is a special font, containing glyph @code{foo}, and that no
+font has been loaded yet. The line
@Example
.fspecial BAR BAZ
@@ -9135,18 +9083,18 @@ and that no font has been loaded yet. The line
@noindent
makes font @code{BAZ} special only if font @code{BAR} is active. We
further assume that @code{BAZ} is really a special font, i.e., the font
-description file contains the @code{special} keyword, and that it
-also contains glyph @code{foo} with a special shape fitting to font
-@code{BAR}. After executing @code{fspecial}, font @code{BAR} is loaded at
-font position@tie{}1, and @code{BAZ} at position@tie{}2.
-
-We now switch to a new font @code{XXX}, trying to access glyph @code{foo}
-which is assumed to be missing. There are neither font-specific special
-fonts for @code{XXX} nor any other fonts made special with the
-@code{special} request, so @code{gtroff} starts the search for special
-fonts in the list of already mounted fonts, with increasing font
-positions. Consequently, it finds @code{BAZ} before @code{FOO} even for
-@code{XXX} which is not the intended behaviour.
+description file contains the @code{special} keyword, and that it also
+contains glyph @code{foo} with a special shape fitting to font
+@code{BAR}. After executing @code{fspecial}, font @code{BAR} is loaded
+at font position@tie{}1, and @code{BAZ} at position@tie{}2.
+
+We now switch to a new font @code{XXX}, trying to access glyph
+@code{foo} which is assumed to be missing. There are neither
+font-specific special fonts for @code{XXX} nor any other fonts made
+special with the @code{special} request, so @code{gtroff} starts the
+search for special fonts in the list of already mounted fonts, with
+increasing font positions. Consequently, it finds @code{BAZ} before
+@code{FOO} even for @code{XXX} which is not the intended behaviour.
@end itemize
@xref{Font Files}, and @ref{Special Fonts}, for more details.
@@ -9164,9 +9112,9 @@ man -Tdvi groff_char > groff_char.dvi
@noindent
for a list using the default DVI fonts (not all versions of the
-@code{man} program support the @option{-T} option). If you want to
-use an additional macro package to change the used fonts, @code{groff}
-must be called directly:
+@code{man} program support the @option{-T} option). If you want to use
+an additional macro package to change the used fonts, @code{groff} must
+be called directly:
@Example
groff -Tdvi -mec -man groff_char.7 > groff_char.dvi
@@ -9179,8 +9127,8 @@ groff -Tdvi -mec -man groff_char.7 > groff_char.dvi
@cindex adobe glyph list (AGL)
@cindex AGL (adobe glyph list)
Glyph names not listed in groff_char(7) are derived algorithmically,
-using a simplified version of the Adobe Glyph List (AGL) algorithm
-which is described in
+using a simplified version of the Adobe Glyph List (AGL) algorithm which
+is described in
@uref{http://partners.adobe.com@//public@//developer@//opentype@//index_glyph.html}.
The (frozen) set of glyph names which can't be derived algorithmically
is called @dfn{groff glyph list (GGL)}.
@@ -9304,8 +9252,8 @@ have to define @code{u0041_0328}.
Typeset the glyph named @var{xxx}.@footnote{@code{\C} is actually a
misnomer since it accesses an output glyph.} Normally it is more
convenient to use @code{\[@var{xxx}]}, but @code{\C} has the advantage
-that it is compatible with newer versions of @acronym{AT&T}
-@code{troff} and is available in compatibility mode.
+that it is compatible with newer versions of @acronym{AT&T} @code{troff}
+and is available in compatibility mode.
@endDefesc
@Defreq {composite, from to}
@@ -9326,13 +9274,13 @@ A set of default mappings for many accents can be found in the file
@cindex @code{char} request, used with @code{\N}
@cindex Unicode
Typeset the glyph with code@tie{}@var{n} in the current font
-(@code{n}@tie{}is @strong{not} the input character code). The
-number @var{n}@tie{}can be any non-negative decimal integer. Most devices
-only have glyphs with codes between 0 and@tie{}255; the Unicode
-output device uses codes in the range 0--65535. If the current
-font does not contain a glyph with that code, special fonts are
-@emph{not} searched. The @code{\N} escape sequence can be
-conveniently used in conjunction with the @code{char} request:
+(@code{n}@tie{}is @strong{not} the input character code). The number
+@var{n}@tie{}can be any non-negative decimal integer. Most devices only
+have glyphs with codes between 0 and@tie{}255; the Unicode output device
+uses codes in the range 0--65535. If the current font does not contain
+a glyph with that code, special fonts are @emph{not} searched. The
+@code{\N} escape sequence can be conveniently used in conjunction with
+the @code{char} request:
@Example
.char \[phone] \f[ZD]\N'37'
@@ -9344,9 +9292,8 @@ conveniently used in conjunction with the @code{char} request:
@cindex glyphs, unnamed
The code of each glyph is given in the fourth column in the font
description file after the @code{charset} command. It is possible to
-include unnamed glyphs in the font description file by using a
-name of @samp{---}; the @code{\N} escape sequence is the only way to
-use these.
+include unnamed glyphs in the font description file by using a name of
+@samp{---}; the @code{\N} escape sequence is the only way to use these.
No kerning is applied to glyphs accessed with @code{\N}.
@endDefesc
@@ -9354,9 +9301,9 @@ No kerning is applied to glyphs accessed with @code{\N}.
Some escape sequences directly map onto special glyphs.
@Defesc {\\', , , }
-This is a backslash followed by the apostrophe character, @acronym{ASCII}
-character @code{0x27} (@acronym{EBCDIC} character @code{0x7D}). The same
-as @code{\[aa]}, the acute accent.
+This is a backslash followed by the apostrophe character,
+@acronym{ASCII} character @code{0x27} (@acronym{EBCDIC} character
+@code{0x7D}). The same as @code{\[aa]}, the acute accent.
@endDefesc
@Defesc {\\`, , , }
@@ -9378,15 +9325,15 @@ This is the same as @code{\[ul]}, the underline character.
@cindex character properties (@code{cflags})
@cindex properties of glyphs (@code{cflags})
@cindex properties of characters (@code{cflags})
-Input characters and symbols have certain properties associated
-with it.@footnote{Note that the output glyphs themselves don't have
-such properties. For @code{gtroff}, a glyph is a numbered box with
-a given width, depth, and height, nothing else. All manipulations
-with the @code{cflags} request work on the input level.} These
-properties can be modified with the @code{cflags} request. The
-first argument is the sum of the desired flags and the remaining
-arguments are the characters or symbols to have those properties.
-It is possible to omit the spaces between the characters or symbols.
+Input characters and symbols have certain properties associated with
+it.@footnote{Note that the output glyphs themselves don't have such
+properties. For @code{gtroff}, a glyph is a numbered box with a given
+width, depth, and height, nothing else. All manipulations with the
+@code{cflags} request work on the input level.} These properties can be
+modified with the @code{cflags} request. The first argument is the sum
+of the desired flags and the remaining arguments are the characters or
+symbols to have those properties. It is possible to omit the spaces
+between the characters or symbols.
@table @code
@item 1
@@ -9398,19 +9345,19 @@ property).
@item 2
@cindex hyphenating characters
@cindex characters, hyphenation
-Lines can be broken before the character (initially no characters have this
-property). This only works if both the characters before and after have
-non-zero hyphenation codes (as set with the @code{hcode} request). Use
-value@tie{}64 to override this behaviour.
+Lines can be broken before the character (initially no characters have
+this property). This only works if both the characters before and after
+have non-zero hyphenation codes (as set with the @code{hcode} request).
+Use value@tie{}64 to override this behaviour.
@item 4
@cindex @code{hy} glyph, and @code{cflags}
@cindex @code{em} glyph, and @code{cflags}
-Lines can be broken after the character (initially the character @samp{-}
-and the symbols @samp{\[hy]} and @samp{\[em]} have this property). This
-only works if both the characters before and after have non-zero hyphenation
-codes (as set with the @code{hcode} request). Use value@tie{}64 to override
-this behaviour.
+Lines can be broken after the character (initially the character
+@samp{-} and the symbols @samp{\[hy]} and @samp{\[em]} have this
+property). This only works if both the characters before and after have
+non-zero hyphenation codes (as set with the @code{hcode} request). Use
+value@tie{}64 to override this behaviour.
@item 8
@cindex overlapping characters
@@ -9420,14 +9367,15 @@ this behaviour.
@cindex @code{ru} glyph, and @code{cflags}
@cindex @code{radicalex} glyph, and @code{cflags}
@cindex @code{sqrtex} glyph, and @code{cflags}
-The character overlaps horizontally if used as a horizontal line building
-element. Initially the symbols @samp{\[ul]}, @samp{\[rn]}, @samp{\[ru]},
-@samp{\[radicalex]}, and @samp{\[sqrtex]} have this property.
+The character overlaps horizontally if used as a horizontal line
+building element. Initially the symbols @samp{\[ul]}, @samp{\[rn]},
+@samp{\[ru]}, @samp{\[radicalex]}, and @samp{\[sqrtex]} have this
+property.
@item 16
@cindex @code{br} glyph, and @code{cflags}
-The character overlaps vertically if used as vertical line building element.
-Initially symbol @samp{\[br]} has this property.
+The character overlaps vertically if used as vertical line building
+element. Initially symbol @samp{\[br]} has this property.
@item 32
@cindex transparent characters
@@ -9441,27 +9389,26 @@ Initially symbol @samp{\[br]} has this property.
@cindex @code{rq} glyph, at end of sentence
An end-of-sentence character followed by any number of characters with
this property is treated as the end of a sentence if followed by a
-newline or two spaces; in other words the character is
-@dfn{transparent} for the purposes of end-of-sentence recognition --
-this is the same as having a zero space factor in @TeX{} (initially
-characters @samp{"')]*} and the symbols @samp{\[dg]} and @samp{\[rq]} have
-this property).
+newline or two spaces; in other words the character is @dfn{transparent}
+for the purposes of end-of-sentence recognition -- this is the same as
+having a zero space factor in @TeX{} (initially characters @samp{"')]*}
+and the symbols @samp{\[dg]} and @samp{\[rq]} have this property).
@item 64
-Ignore hyphenation code values of the surrounding characters. Use this in
-combination with values 2 and@tie{}4 (initially no characters have this
-property). For example, if you need an automatic break point after the
-hyphen in number ranges like `3000-5000', insert
+Ignore hyphenation code values of the surrounding characters. Use this
+in combination with values 2 and@tie{}4 (initially no characters have
+this property). For example, if you need an automatic break point after
+the hyphen in number ranges like `3000-5000', insert
@Example
.cflags 68 -
@endExample
@noindent
-into your document. Note, however, that this can lead to bad layout if done
-without thinking; in most situations, a better solution instead of changing
-the @code{cflags} value is to insert @code{\:} right after the hyphen at the
-places which really need a break point.
+into your document. Note, however, that this can lead to bad layout if
+done without thinking; in most situations, a better solution instead of
+changing the @code{cflags} value is to insert @code{\:} right after the
+hyphen at the places which really need a break point.
@end table
@endDefreq
@@ -9500,18 +9447,18 @@ processed. Any emboldening, constant spacing or track kerning is
applied to this object rather than to individual characters in
@var{string}.
-A glyph defined by these requests can be used just
-like a normal glyph provided by the output device. In particular,
-other characters can be translated to it with the @code{tr} or
-@code{trin} requests; it can be made the leader character by the
-@code{lc} request; repeated patterns can be drawn with the glyph
-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.
+A glyph defined by these requests can be used just like a normal glyph
+provided by the output device. In particular, other characters can be
+translated to it with the @code{tr} or @code{trin} requests; it can be
+made the leader character by the @code{lc} request; repeated patterns
+can be drawn with the glyph 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 @code{g} within
-the glyph'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.
@@ -9528,24 +9475,24 @@ X
@result{} Z
@endExample
-The @code{fchar} request defines a fallback glyph:
-@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.
+The @code{fchar} request defines a fallback glyph: @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.
-@code{fschar} defines a fallback glyph for font@tie{}@var{f}: @code{gtroff}
-checks for glyphs defined with @code{fschar} after the list of fonts
-declared as font-specific special fonts with the @code{fspecial} request,
-but before the list of fonts declared as global special fonts with the
-@code{special} request.
+@code{fschar} defines a fallback glyph for font@tie{}@var{f}:
+@code{gtroff} checks for glyphs defined with @code{fschar} after the
+list of fonts declared as font-specific special fonts with the
+@code{fspecial} request, but before the list of fonts declared as global
+special fonts with the @code{special} request.
Finally, the @code{schar} request defines a global fallback glyph:
@code{gtroff} checks for glyphs defined with @code{schar} after the list
-of fonts declared as global special fonts with the @code{special} request,
-but before the already mounted special fonts.
+of fonts declared as global special fonts with the @code{special}
+request, but before the already mounted special fonts.
-@xref{Using Symbols}, for a detailed description of the glyph
-searching mechanism in @code{gtroff}.
+@xref{Using Symbols}, for a detailed description of the glyph searching
+mechanism in @code{gtroff}.
@endDefreq
@DefreqList {rchar, c1 c2 @dots{}}
@@ -9554,8 +9501,8 @@ searching mechanism in @code{gtroff}.
@cindex glyph, removing definition (@code{rchar}, @code{rfschar})
@cindex fallback glyph, removing definition (@code{rchar}, @code{rfschar})
Remove the definitions of glyphs @var{c1}, @var{c2},@tie{}@enddots{}
-This undoes the effect of a @code{char}, @code{fchar}, or
-@code{schar} request.
+This undoes the effect of a @code{char}, @code{fchar}, or @code{schar}
+request.
It is possible to omit the whitespace between arguments.
@@ -9572,9 +9519,9 @@ The request @code{rfschar} removes glyph definitions defined with
@cindex special fonts
@cindex fonts, special
-Special fonts are those that @code{gtroff} searches
-when it cannot find the requested glyph in the current font.
-The Symbol font is usually a special font.
+Special fonts are those that @code{gtroff} searches 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
fonts. @xref{Using Symbols}, for a detailed description of the glyph
@@ -9596,8 +9543,8 @@ Previous calls to @code{special} or @code{fspecial} are overwritten;
without arguments, the particular list of special fonts is set to empty.
Special fonts are searched in the order they appear as arguments.
-All fonts which appear in a call to @code{special} or @code{fspecial} are
-loaded.
+All fonts which appear in a call to @code{special} or @code{fspecial}
+are loaded.
@xref{Using Symbols}, for the exact search order of glyphs.
@endDefreq
@@ -9610,10 +9557,10 @@ loaded.
@cindex fonts, artificial
There are a number of requests and escapes for artificially creating
-fonts. These are largely vestiges of the days when output devices
-did not have a wide variety of fonts, and when @code{nroff} and
-@code{troff} were separate programs. Most of them are no longer
-necessary in GNU @code{troff}. Nevertheless, they are supported.
+fonts. These are largely vestiges of the days when output devices did
+not have a wide variety of fonts, and when @code{nroff} and @code{troff}
+were separate programs. Most of them are no longer necessary in GNU
+@code{troff}. Nevertheless, they are supported.
@DefescList {\\H, ', height, '}
@DefescItem {\\H, ', @t{+}height, '}
@@ -9631,16 +9578,15 @@ set by @code{\H}.
Currently, only the @option{-Tps} device supports this feature.
-Note that @code{\H} doesn't produce an input token in @code{gtroff}.
-As a consequence, it can be used in requests like @code{mc} (which
-expects a single character as an argument) to change the font on
-the fly:
+Note that @code{\H} doesn't produce an input token in @code{gtroff}. As
+a consequence, it can be used in requests like @code{mc} (which expects
+a single character as an argument) to change the font on the fly:
@Example
.mc \H'+5z'x\H'0'
@endExample
-In compatibility mode, @code{gtroff} behaves differently: If an
+In compatibility mode, @code{gtroff} behaves differently: If an
increment or decrement is used, it is always taken relative to the
current point size and not relative to the previously selected font
height. Thus,
@@ -9651,8 +9597,8 @@ height. Thus,
@endExample
@noindent
-prints the word @samp{test} twice with the same font height (five
-points larger than the current font size).
+prints the word @samp{test} twice with the same font height (five points
+larger than the current font size).
@endDefesc
@DefescList {\\S, ', slant, '}
@@ -9660,18 +9606,17 @@ points larger than the current font size).
@cindex changing the font slant (@code{\S})
@cindex font slant, changing (@code{\S})
@cindex slant, font, changing (@code{\S})
-Slant the current font by @var{slant} degrees. Positive values slant
-to the right. Only integer values are possible.
+Slant the current font by @var{slant} degrees. Positive values slant to
+the right. Only integer values are possible.
The read-only number register @code{.slant} contains the font slant as
set by @code{\S}.
Currently, only the @option{-Tps} device supports this feature.
-Note that @code{\S} doesn't produce an input token in @code{gtroff}.
-As a consequence, it can be used in requests like @code{mc} (which
-expects a single character as an argument) to change the font on
-the fly:
+Note that @code{\S} doesn't produce an input token in @code{gtroff}. As
+a consequence, it can be used in requests like @code{mc} (which expects
+a single character as an argument) to change the font on the fly:
@Example
.mc \S'20'x\S'0'
@@ -9694,8 +9639,8 @@ input lines, even if they produce some output like @code{tl}. Lines
inserted by macros (e.g.@: invoked by a trap) do count.
At the beginning of @code{ul}, the current font is stored and the
-underline font is activated. Within the span of a @code{ul} request,
-it is possible to change fonts, but after the last line affected by
+underline font is activated. Within the span of a @code{ul} request, it
+is possible to change fonts, but after the last line affected by
@code{ul} the saved font is restored.
This number of lines still to be underlined is associated with the
@@ -9730,8 +9675,8 @@ 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 glyph twice,
-slightly offset.
+Artificially create a bold font by printing each glyph twice, slightly
+offset.
Two syntax forms are available.
@@ -9754,11 +9699,11 @@ special font is active; in the @code{bd} request, its default unit is
@cindex embolding of special fonts
@cindex special fonts, emboldening
@item
-Imitate a bold form conditionally. Embolden @var{font1} by
-@var{offset} only if font @var{font2} is the current font. This
-command can be issued repeatedly to set up different emboldening
-values for different current fonts. If the second argument is
-missing, emboldening is turned off for this particular current font.
+Imitate a bold form conditionally. Embolden @var{font1} by @var{offset}
+only if font @var{font2} is the current font. This command can be
+issued repeatedly to set up different emboldening values for different
+current fonts. If the second argument is missing, emboldening is turned
+off for this particular current font.
This affects special fonts only (either set up with the @code{special}
command in font files or with the @code{fspecial} request).
@@ -9771,11 +9716,11 @@ command in font files or with the @code{fspecial} request).
@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 glyph space mode is deactivated.
+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 glyph space mode is deactivated.
Default scaling indicator for @var{em-size} is @samp{z}; @var{width} is
an integer.
@@ -9800,19 +9745,20 @@ supported `ff', `ffi', and `ffl' ligatures. Advanced typesetters or
`expert' fonts may include ligatures for `ft' and `ct', although GNU
@code{troff} does not support these (yet).
-Only the current font is checked for ligatures and kerns; neither special
-fonts nor entities defined with the @code{char} request (and its siblings)
-are taken into account.
+Only the current font is checked for ligatures and kerns; neither
+special fonts nor entities defined with the @code{char} request (and its
+siblings) are taken into account.
@DefreqList {lg, [@Var{flag}]}
@DefregListEnd {.lg}
@cindex activating ligatures (@code{lg})
@cindex ligatures, activating (@code{lg})
@cindex ligatures enabled register (@code{.lg})
-Switch the ligature mechanism on or off; if the parameter is non-zero
-or missing, ligatures are enabled, otherwise disabled. Default is on.
-The current ligature mode can be found in the read-only number register
-@code{.lg} (set to 1 or@tie{}2 if ligatures are enabled, 0@tie{}otherwise).
+Switch the ligature mechanism on or off; if the parameter is non-zero or
+missing, ligatures are enabled, otherwise disabled. Default is on. The
+current ligature mode can be found in the read-only number register
+@code{.lg} (set to 1 or@tie{}2 if ligatures are enabled,
+0@tie{}otherwise).
Setting the ligature mode to@tie{}2 enables the two-character ligatures
(fi, fl, and ff) and disables the three-character ligatures (ffi and
@@ -9820,14 +9766,14 @@ ffl).
@endDefreq
@dfn{Pairwise kerning} is another subtle typesetting mechanism that
-modifies the distance between a glyph pair to improve readability.
-In most cases (but not always) the distance is decreased.
+modifies the distance between a glyph pair to improve readability. In
+most cases (but not always) the distance is decreased.
@iftex
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 iftex
-Typewriter-like fonts and fonts for terminals where all glyphs
-have the same width don't use kerning.
+Typewriter-like fonts and fonts for terminals where all glyphs have the
+same width don't use kerning.
@DefreqList {kern, [@Var{flag}]}
@DefregListEnd {.kern}
@@ -9843,19 +9789,19 @@ register @code{.kern} is set to@tie{}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,
-glyphs from that font are kerned. Kerning between two glyphs
-can be inhibited by placing @code{\&} between them: @samp{V\&A}.
+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}.
@endDefreq
@cindex track kerning
@cindex kerning, track
-@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
-typography if the reader notices the effect.
+@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 typography if
+the reader notices the effect.
@Defreq {tkf, f s1 n1 s2 n2}
@cindex activating track kerning (@code{tkf})
@@ -9878,8 +9824,8 @@ length by the same amount to compensate it.
@endDefreq
Sometimes, when typesetting letters of different fonts, more or less
-space at such boundaries are needed. There are two escapes to help
-with this.
+space at such boundaries are needed. There are two escapes to help with
+this.
@Defesc {\\/, , , }
@cindex italic correction (@code{\/})
@@ -9888,15 +9834,14 @@ with this.
@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@tie{}@code{f} is immediately followed by a roman right
-parenthesis, then in many fonts the top right portion of the@tie{}@code{f}
-overlaps the top left of the right parenthesis. Use this escape
-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}.
+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@tie{}@code{f} is immediately
+followed by a roman right parenthesis, then in many fonts the top right
+portion of the@tie{}@code{f} overlaps the top left of the right
+parenthesis. Use this escape 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
@c can't use @Example...@endExample here
@@ -9917,13 +9862,12 @@ space is also called @dfn{italic correction}.
@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.
+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.
@iftex
@c can't use @Example...@endExample here
@@ -9939,8 +9883,8 @@ q\,\f[I]f
@endDefesc
@Defesc {\\&, , , }
-Insert a zero-width character, which is invisible. Its intended use
-is to stop interaction of a character with its surrounding.
+Insert a zero-width character, which is invisible. Its intended use is
+to stop interaction of a character with its surrounding.
@itemize @bullet
@item
@@ -9957,8 +9901,8 @@ Test.
@endExample
@item
-It prevents interpretation of a control character at the beginning of
-an input line.
+It prevents interpretation of a control character at the beginning of an
+input line.
@Example
.Test
@@ -9990,8 +9934,8 @@ request (@pxref{Character Translations}).
@Defesc {\\), , , }
This escape is similar to @code{\&} except that it behaves like a
-character declared with the @code{cflags} request to be transparent
-for the purposes of an end-of-sentence character.
+character declared with the @code{cflags} request to be transparent for
+the purposes of an end-of-sentence character.
Its main usage is in macro definitions to protect against arguments
starting with a control character.
@@ -10026,21 +9970,20 @@ This is a test.
@cindex size of type
@cindex vertical spacing
@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 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
-`Courier' can't be used together at 10@dmn{pt}; to get acceptable
-output, the size of `Helvetica' has to be reduced by one point, and
-the size of `Courier' must be increased by one point.} @dfn{Vertical
-spacing} is the amount of space @code{gtroff} allows for a line of
-text; normally, this is about 20%@tie{}larger than the current type
-size. Ratios smaller than this can result in hard-to-read text;
-larger than this, it spreads the text out more vertically (useful for
-term papers). By default, @code{gtroff} uses 10@tie{}point type on
-12@tie{}point spacing.
+@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 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 `Courier' can't be used
+together at 10@dmn{pt}; to get acceptable output, the size of
+`Helvetica' has to be reduced by one point, and the size of `Courier'
+must be increased by one point.} @dfn{Vertical spacing} is the amount
+of space @code{gtroff} allows for a line of text; normally, this is
+about 20%@tie{}larger than the current type size. Ratios smaller than
+this can result in hard-to-read text; larger than this, it spreads the
+text out more vertically (useful for term papers). By default,
+@code{gtroff} uses 10@tie{}point type on 12@tie{}point spacing.
@cindex leading
The difference between type size and vertical spacing is known, by
@@ -10066,17 +10009,17 @@ typesetters, as @dfn{leading} (this is pronounced `ledding').
@cindex point sizes, changing (@code{ps}, @code{\s})
Use the @code{ps} request or the @code{\s} escape to change (increase,
decrease) the type size (in points). Specify @var{size} as either an
-absolute point size, or as a relative change from the current size.
-The size@tie{}0, or no argument, goes back to the previous size.
+absolute point size, or as a relative change from the current size. The
+size@tie{}0, or no argument, goes back to the previous size.
-Default scaling indicator of @code{size} is @samp{z}. If @code{size}
-is zero or negative, it is set to 1@dmn{u}.
+Default scaling indicator of @code{size} is @samp{z}. If @code{size} is
+zero or negative, it is set to 1@dmn{u}.
@cindex type size registers (@code{.s}, @code{.ps})
@cindex point size registers (@code{.s}, @code{.ps})
-The read-only number register @code{.s} returns the point size in
-points as a decimal fraction. This is a string. To get the point
-size in scaled points, use the @code{.ps} register instead.
+The read-only number register @code{.s} returns the point size in points
+as a decimal fraction. This is a string. To get the point size in
+scaled points, use the @code{.ps} register instead.
@code{.s} is associated with the current environment
(@pxref{Environments}).
@@ -10116,36 +10059,32 @@ Increase or decrease the point size by @var{nn}@tie{}points. @var{nn}
must be exactly two digits.
@end table
-Note that @code{\s} doesn't produce an input token in @code{gtroff}.
-As a consequence, it can be used in requests like @code{mc} (which
-expects a single character as an argument) to change the font on
-the fly:
+Note that @code{\s} doesn't produce an input token in @code{gtroff}. As
+a consequence, it can be used in requests like @code{mc} (which expects
+a single character as an argument) to change the font on the fly:
@Example
.mc \s[20]x\s[0]
@endExample
-@xref{Fractional Type Sizes}, for yet another syntactical form of
-using the @code{\s} escape.
+@xref{Fractional Type Sizes}, for yet another syntactical form of using
+the @code{\s} escape.
@endDefreq
@Defreq {sizes, s1 s2 @dots{} sn [0]}
Some devices may only have certain permissible sizes, in which case
-@code{gtroff} rounds to the nearest permissible size.
-The @file{DESC} file specifies which sizes are permissible for the device.
+@code{gtroff} rounds to the nearest permissible size. The @file{DESC}
+file specifies which sizes are permissible for the device.
-Use the @code{sizes} request to change the permissible sizes
-for the current output device.
-Arguments are in scaled points;
-the @code{sizescale} line in the
-@file{DESC} file for the output device
-provides the scaling factor.
-For example, if the scaling factor is 1000,
-then the value 12000 is 12@tie{}points.
+Use the @code{sizes} request to change the permissible sizes for the
+current output device. Arguments are in scaled points; the
+@code{sizescale} line in the @file{DESC} file for the output device
+provides the scaling factor. For example, if the scaling factor is
+1000, then the value 12000 is 12@tie{}points.
-Each argument can be a single point size (such as @samp{12000}),
-or a range of sizes (such as @samp{4000-72000}).
-You can optionally end the list with a zero.
+Each argument can be a single point size (such as @samp{12000}), or a
+range of sizes (such as @samp{4000-72000}). You can optionally end the
+list with a zero.
@endDefreq
@DefreqList {vs, [@Var{space}]}
@@ -10176,8 +10115,8 @@ spacing; it is associated with the current environment
@endDefreq
@cindex vertical line spacing, effective value
-The effective vertical line spacing consists of four components. Breaking
-a line causes the following actions (in the given order).
+The effective vertical line spacing consists of four components.
+Breaking a line causes the following actions (in the given order).
@itemize @bullet
@item
@@ -10188,8 +10127,8 @@ space}. This is the minimum value of all @code{\x} escapes with a
negative argument in the current output line.
@item
-Move the current point vertically by the vertical line spacing as set with
-the @code{vs} request.
+Move the current point vertically by the vertical line spacing as set
+with the @code{vs} request.
@item
Output the current line.
@@ -10204,14 +10143,14 @@ positive argument in the line which has just been output.
@item
@cindex post-vertical line spacing
@cindex line spacing, post-vertical (@code{pvs})
-Move the current point vertically by the @dfn{post-vertical line spacing}
-as set with the @code{pvs} request.
+Move the current point vertically by the @dfn{post-vertical line
+spacing} as set with the @code{pvs} request.
@end itemize
@cindex double-spacing (@code{vs}, @code{pvs})
It is usually better to use @code{vs} or @code{pvs} instead of @code{ls}
-to produce double-spaced documents: @code{vs} and @code{pvs} have a finer
-granularity for the inserted vertical space compared to @code{ls};
+to produce double-spaced documents: @code{vs} and @code{pvs} have a
+finer granularity for the inserted vertical space compared to @code{ls};
furthermore, certain preprocessors assume single-spacing.
@xref{Manipulating Spacing}, for more details on the @code{\x} escape
@@ -10224,11 +10163,11 @@ and the @code{ls} request.
@cindex @code{ls} request, alternative to (@code{pvs})
@cindex post-vertical line spacing, changing (@code{pvs})
@cindex post-vertical line spacing register (@code{.pvs})
-Change (increase, decrease) the post-vertical spacing by
-@var{space}. The default scaling indicator is @samp{p}.
+Change (increase, decrease) the post-vertical spacing by @var{space}.
+The default scaling indicator is @samp{p}.
-If @code{pvs} is called without an argument, the post-vertical spacing is
-reset to the previous value before the last call to @code{pvs}.
+If @code{pvs} is called without an argument, the post-vertical spacing
+is reset to the previous value before the last call to @code{pvs}.
@code{gtroff} creates a warning of type @samp{range} if @var{space} is
zero or negative; the vertical spacing is then set to zero.
@@ -10257,18 +10196,18 @@ post-vertical spacing; it is associated with the current environment
@cindex @code{tkf} request, with fractional type sizes
@cindex @code{\H}, with fractional type sizes
@cindex @code{\s}, with fractional type sizes
-A @dfn{scaled point} is equal to @math{1/@var{sizescale}} points,
-where @var{sizescale} is specified in the @file{DESC} file (1@tie{}by
-default). There is a new scale indicator @samp{z} which has the
-effect of multiplying by @var{sizescale}. Requests and escape
-sequences in @code{gtroff} interpret arguments that represent a point
-size as being in units of scaled points, but they evaluate each such
-argument using a default scale indicator of @samp{z}. Arguments
-treated in this way are the argument to the @code{ps} request, the
-third argument to the @code{cs} request, the second and fourth
-arguments to the @code{tkf} request, the argument to the @code{\H}
-escape sequence, and those variants of the @code{\s} escape sequence
-that take a numeric expression as their argument (see below).
+A @dfn{scaled point} is equal to @math{1/@var{sizescale}} points, where
+@var{sizescale} is specified in the @file{DESC} file (1@tie{}by
+default). There is a new scale indicator @samp{z} which has the effect
+of multiplying by @var{sizescale}. Requests and escape sequences in
+@code{gtroff} interpret arguments that represent a point size as being
+in units of scaled points, but they evaluate each such argument using a
+default scale indicator of @samp{z}. Arguments treated in this way are
+the argument to the @code{ps} request, the third argument to the
+@code{cs} request, the second and fourth arguments to the @code{tkf}
+request, the argument to the @code{\H} escape sequence, and those
+variants of the @code{\s} escape sequence that take a numeric expression
+as their argument (see below).
For example, suppose @var{sizescale} is@tie{}1000; then a scaled point
is equivalent to a millipoint; the request @w{@samp{.ps 10.25}} is
@@ -10276,12 +10215,11 @@ equivalent to @w{@samp{.ps 10.25z}} and thus sets the point size to
10250@tie{}scaled points, which is equal to 10.25@tie{}points.
@code{gtroff} disallows the use of the @samp{z} scale indicator in
-instances where it would make no sense, such as a numeric
-expression whose default scale indicator was neither @samp{u} nor
-@samp{z}. Similarly it would make
-no sense to use a scaling indicator other than @samp{z} or @samp{u} in a
-numeric expression whose default scale indicator was @samp{z}, and so
-@code{gtroff} disallows this as well.
+instances where it would make no sense, such as a numeric expression
+whose default scale indicator was neither @samp{u} nor @samp{z}.
+Similarly it would make no sense to use a scaling indicator other than
+@samp{z} or @samp{u} in a numeric expression whose default scale
+indicator was @samp{z}, and so @code{gtroff} disallows this as well.
There is also new scale indicator @samp{s} which multiplies by the
number of units in a scaled point. So, for example, @samp{\n[.ps]s} is
@@ -10302,15 +10240,15 @@ A read-only number register returning the point size in scaled points.
@cindex @code{.ps} register, in comparison with @code{.psr}
@cindex @code{.s} register, in comparison with @code{.sr}
The last-requested point size in scaled points is contained in the
-@code{.psr} read-only number register. The last requested point size
-in points as a decimal fraction can be found in @code{.sr}. This is a
+@code{.psr} read-only number register. The last requested point size in
+points as a decimal fraction can be found in @code{.sr}. This is a
string-valued read-only number register.
-Note that the requested point sizes are device-independent, whereas
-the values returned by the @code{.ps} and @code{.s} registers are not.
-For example, if a point size of 11@dmn{pt} is requested, and a
-@code{sizes} request (or a @code{sizescale} line in a @file{DESC} file)
-specifies 10.95@dmn{pt} instead, this value is actually used.
+Note that the requested point sizes are device-independent, whereas the
+values returned by the @code{.ps} and @code{.s} registers are not. For
+example, if a point size of 11@dmn{pt} is requested, and a @code{sizes}
+request (or a @code{sizescale} line in a @file{DESC} file) specifies
+10.95@dmn{pt} instead, this value is actually used.
Both registers are associated with the current environment
(@pxref{Environments}).
@@ -10322,8 +10260,8 @@ fractional type sizes:
@table @code
@item \s[@var{n}]
@itemx \s'@var{n}'
-Set the point size to @var{n}@tie{}scaled points; @var{n}@tie{}is a numeric
-expression with a default scale indicator of @samp{z}.
+Set the point size to @var{n}@tie{}scaled points; @var{n}@tie{}is a
+numeric expression with a default scale indicator of @samp{z}.
@item \s[+@var{n}]
@itemx \s[-@var{n}]
@@ -10364,8 +10302,8 @@ even this is a read-write string variable).
@cindex arguments, of strings
Define and access a string variable @var{name} (one-character
name@tie{}@var{n}, two-character name @var{nm}). If @var{name} already
-exists, @code{ds} overwrites the previous definition. Only the syntax form
-using brackets can take arguments which are handled identically to
+exists, @code{ds} overwrites the previous definition. Only the syntax
+form using brackets can take arguments which are handled identically to
macro arguments; the single exception is that a closing bracket as an
argument must be enclosed in double quotes. @xref{Request and Macro
Arguments}, and @ref{Parameters}.
@@ -10413,9 +10351,9 @@ escape adjacent with the end of the string.
@cindex leading spaces with @code{ds}
@cindex spaces with @code{ds}
@cindex @code{ds} request, and leading spaces
-To produce leading space the string can be started with a double
-quote. No trailing quote is needed; in fact, any trailing quote is
-included in your string.
+To produce leading space the string can be started with a double quote.
+No trailing quote is needed; in fact, any trailing quote is included in
+your string.
@Example
.ds sign " Yours in a white wine sauce,
@@ -10426,8 +10364,8 @@ included in your string.
@cindex newline character, in strings, escaping
@cindex escaping newline characters, in strings
Strings are not limited to a single line of text. A string can span
-several lines by escaping the newlines with a backslash. The
-resulting string is stored @emph{without} the newlines.
+several lines by escaping the newlines with a backslash. The resulting
+string is stored @emph{without} the newlines.
@Example
.ds foo lots and lots \
@@ -10439,10 +10377,10 @@ It is not possible to have real newlines in a string. To put a single
double quote character into a string, use two consecutive double quote
characters.
-The @code{ds1} request turns off compatibility mode
-while interpreting a string. To be more precise, a @dfn{compatibility
-save} input token is inserted at the beginning of the string, and a
-@dfn{compatibility restore} input token at the end.
+The @code{ds1} request turns off compatibility mode while interpreting a
+string. To be more precise, a @dfn{compatibility save} input token is
+inserted at the beginning of the string, and a @dfn{compatibility
+restore} input token at the end.
@Example
.nr xxx 12345
@@ -10483,8 +10421,8 @@ This is
Diversions and boxes can be also called with string syntax.
-Another consequence is that you can copy one-line diversions or boxes
-to a string.
+Another consequence is that you can copy one-line diversions or boxes to
+a string.
@Example
.di xxx
@@ -10497,12 +10435,12 @@ a \fItest\fR
@endExample
@noindent
-As the previous example shows, it is possible to store formatted
-output in strings. The @code{\c} escape prevents the insertion of an
+As the previous example shows, it is possible to store formatted output
+in strings. The @code{\c} escape prevents the insertion of an
additional blank line in the output.
-Copying diversions longer than a single output line produces
-unexpected results.
+Copying diversions longer than a single output line produces unexpected
+results.
@Example
.di xxx
@@ -10516,12 +10454,12 @@ test
@result{} test This is a funny.
@endExample
-Usually, it is not predictable whether a diversion contains one or
-more output lines, so this mechanism should be avoided. With
-@acronym{UNIX} @code{troff}, this was the only solution to strip off a
-final newline from a diversion. Another disadvantage is that the
-spaces in the copied string are already formatted, making them
-unstretchable. This can cause ugly results.
+Usually, it is not predictable whether a diversion contains one or more
+output lines, so this mechanism should be avoided. With @acronym{UNIX}
+@code{troff}, this was the only solution to strip off a final newline
+from a diversion. Another disadvantage is that the spaces in the copied
+string are already formatted, making them unstretchable. This can cause
+ugly results.
@cindex stripping final newline in diversions
@cindex diversion, stripping final newline
@@ -10530,10 +10468,9 @@ unstretchable. This can cause ugly results.
@cindex horizontal space, unformatting
@cindex space, horizontal, unformatting
@cindex unformatting horizontal space
-A clean solution to this problem is available in GNU @code{troff},
-using the requests @code{chop} to remove the final newline of a
-diversion, and @code{unformat} to make the horizontal spaces
-stretchable again.
+A clean solution to this problem is available in GNU @code{troff}, using
+the requests @code{chop} to remove the final newline of a diversion, and
+@code{unformat} to make the horizontal spaces stretchable again.
@Example
.box xxx
@@ -10575,13 +10512,13 @@ requests.
@Defreq {substring, str n1 [@Var{n2}]}
@cindex substring (@code{substring})
-Replace the string named @var{str} with the substring
-defined by the indices @var{n1} and@tie{}@var{n2}. The first character
-in the string has index@tie{}0. If @var{n2} is omitted, it is taken to
-be equal to the string's length. If the index value @var{n1} or
-@var{n2} is negative, it is counted from the end of the
-string, going backwards: The last character has index@tie{}@minus{}1, the
-character before the last character has index@tie{}@minus{}2, etc.
+Replace the string named @var{str} with the substring defined by the
+indices @var{n1} and@tie{}@var{n2}. The first character in the string
+has index@tie{}0. If @var{n2} is omitted, it is taken to be equal to
+the string's length. If the index value @var{n1} or @var{n2} is
+negative, it is counted from the end of the string, going backwards: The
+last character has index@tie{}@minus{}1, the character before the last
+character has index@tie{}@minus{}2, etc.
@Example
.ds xxx abcdefgh
@@ -10646,17 +10583,17 @@ treats subsequent invocations as if the object had never been defined.
@cindex diversion, creating alias (@code{als})
Create an alias named @var{new} for the request, string, macro, or
diversion object named @var{old}. The new name and the old name are
-exactly equivalent (it is similar to a hard rather than a soft
-link). If @var{old} is undefined, @code{gtroff} generates a warning of
-type @samp{mac} and ignores the request.
+exactly equivalent (it is similar to a hard rather than a soft link). If
+@var{old} is undefined, @code{gtroff} generates a warning of type
+@samp{mac} and ignores the request.
@endDefreq
@Defreq {chop, xx}
Remove (chop) the last character from the macro, string, or diversion
-named @var{xx}. This is useful for removing the newline from the end
-of diversions that are to be interpolated as strings. This command
-can be used repeatedly; see @ref{Gtroff Internals}, for details on
-nodes inserted additionally by @code{gtroff}.
+named @var{xx}. This is useful for removing the newline from the end of
+diversions that are to be interpolated as strings. This command can be
+used repeatedly; see @ref{Gtroff Internals}, for details on nodes
+inserted additionally by @code{gtroff}.
@endDefreq
@xref{Identifiers}, and @ref{Comments}.
@@ -10683,8 +10620,8 @@ nodes inserted additionally by @code{gtroff}.
@cindex @code{if} request, operators to use with
@cindex @code{ie} request, operators to use with
@cindex @code{while} request, operators to use with
-In @code{if}, @code{ie}, and @code{while} requests, there are several more
-operators available:
+In @code{if}, @code{ie}, and @code{while} requests, there are several
+more operators available:
@table @code
@item e
@@ -10707,11 +10644,11 @@ Always false. This condition is for compatibility with other
@code{troff} versions only (identifying a @code{-Tversatec} device).
@item '@var{xxx}'@var{yyy}'
-True if the output produced by @var{xxx} is equal to the output
-produced by @var{yyy}. Other characters can be used in place of the
-single quotes; the same set of delimiters as for the @code{\D} escape
-is used (@pxref{Escapes}). @code{gtroff} formats @var{xxx} and @var{yyy}
-in separate environments; after the comparison the resulting data is
+True if the output produced by @var{xxx} is equal to the output produced
+by @var{yyy}. Other characters can be used in place of the single
+quotes; the same set of delimiters as for the @code{\D} escape is used
+(@pxref{Escapes}). @code{gtroff} formats @var{xxx} and @var{yyy} in
+separate environments; after the comparison the resulting data is
discarded.
@Example
@@ -10725,18 +10662,17 @@ false
@noindent
The resulting motions, glyph 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{|} glyph with the same point size and
-at the same location on the page, so the strings are equal. If
-@samp{.ft@tie{}I} had been added before the @samp{.ie}, the result
-would be ``false'' because (the first) @samp{|} produces an italic
-@samp{|} rather than a roman one.
+@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{|} glyph with the same point size and at the
+same location on the page, so the strings are equal. If
+@samp{.ft@tie{}I} had been added before the @samp{.ie}, the result would
+be ``false'' because (the first) @samp{|} produces an italic @samp{|}
+rather than a roman one.
@cindex string comparison
@cindex comparison of strings
-To compare strings without processing, surround the data with
-@code{\?}.
+To compare strings without processing, surround the data with @code{\?}.
@Example
.ie "\?|\?"\?\fR|\fP\?" \
@@ -10776,26 +10712,27 @@ True if there is a color named @var{xxx}.
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{\N'@var{xxx}'}, @code{\(@var{gg}} or @code{\[@var{ggg}]});
-the condition is also true if @var{g} has been defined by the @code{char}
-request.
+character (@code{\N'@var{xxx}'}, @code{\(@var{gg}} or
+@code{\[@var{ggg}]}); the condition is also true if @var{g} has been
+defined by the @code{char} request.
@item F @var{font}
-True if a font named @var{font} exists. @var{font} is handled as if it was
-opened with the @code{ft} request (this is, font translation and styles are
-applied), without actually mounting it.
+True if a font named @var{font} exists. @var{font} is handled as if it
+was opened with the @code{ft} request (this is, font translation and
+styles are applied), without actually mounting it.
This test doesn't load the complete font but only its header to verify
its validity.
@item S @var{style}
-True if style @var{style} has been registered. Font translation is applied.
+True if style @var{style} has been registered. Font translation is
+applied.
@end table
Note that these operators can't be combined with other operators like
@samp{:} or @samp{&}; only a leading @samp{!} (without whitespace
-between the exclamation mark and the operator) can be used to negate
-the result.
+between the exclamation mark and the operator) can be used to negate the
+result.
@Example
.nr xxx 1
@@ -10848,15 +10785,14 @@ by itself (except that leading spaces are swallowed).
@endExample
@endDefreq
-@Defreq{nop, anything}
-Executes @var{anything}.
-This is similar to @code{.if@tie{}1}.
+@Defreq {nop, anything}
+Executes @var{anything}. This is similar to @code{.if@tie{}1}.
@endDefreq
@DefreqList {ie, expr anything}
@DefreqListEnd {el, anything}
-Use the @code{ie} and @code{el} requests to write an if-then-else.
-The first request is the `if' part and the latter is the `else' part.
+Use the @code{ie} and @code{el} requests to write an if-then-else. The
+first request is the `if' part and the latter is the `else' part.
@Example
.ie n .ls 2 \" double-spacing in nroff
@@ -10930,11 +10866,11 @@ Some remarks.
@itemize @bullet
@item
The body of a @code{while} request is treated like the body of a
-@code{de} request: @code{gtroff} temporarily stores it in a macro
-which is deleted after the loop has been exited. It can considerably
-slow down a macro if the body of the @code{while} request (within the
-macro) is large. Each time the macro is executed, the @code{while}
-body is parsed and stored again as a temporary macro.
+@code{de} request: @code{gtroff} temporarily stores it in a macro which
+is deleted after the loop has been exited. It can considerably slow
+down a macro if the body of the @code{while} request (within the macro)
+is large. Each time the macro is executed, the @code{while} body is
+parsed and stored again as a temporary macro.
@Example
.de xxx
@@ -10990,8 +10926,8 @@ The closing brace of a @code{while} body must end a line.
@cindex @code{while} request, confusing with @code{br}
@cindex @code{break} request, in a @code{while} loop
@cindex @code{continue} request, in a @code{while} loop
-Break out of a @code{while} loop. Be sure not to confuse this with
-the @code{br} request (causing a line break).
+Break out of a @code{while} loop. Be sure not to confuse this with the
+@code{br} request (causing a line break).
@endDefreq
@Defreq {continue, }
@@ -11009,8 +10945,8 @@ restarting the next iteration.
@cindex writing macros
@cindex macros, writing
-A @dfn{macro} is a collection of text and embedded commands which can
-be invoked multiple times. Use macros to define common operations.
+A @dfn{macro} is a collection of text and embedded commands which can be
+invoked multiple times. Use macros to define common operations.
@DefreqList {de, name [@Var{end}]}
@DefreqItem {de1, name [@Var{end}]}
@@ -11018,8 +10954,8 @@ be invoked multiple times. Use macros to define common operations.
@DefreqListEnd {dei1, name [@Var{end}]}
Define a new macro named @var{name}. @code{gtroff} copies subsequent
lines (starting with the next one) into an internal buffer until it
-encounters the line @samp{..} (two dots). The optional second
-argument to @code{de} changes this to a macro to @samp{.@var{end}}.
+encounters the line @samp{..} (two dots). The optional second argument
+to @code{de} changes this to a macro to @samp{.@var{end}}.
There can be whitespace after the first dot in the line containing the
ending token (either @samp{.} or macro @samp{@var{end}}). Don't insert
@@ -11051,8 +10987,8 @@ inserts some vertical space. It could be used to separate paragraphs.
@endExample
The following example defines a macro within another. Remember that
-expansion must be protected twice; once for reading the macro and
-once for executing.
+expansion must be protected twice; once for reading the macro and once
+for executing.
@Example
\# a dummy macro to avoid a warning
@@ -11072,12 +11008,12 @@ once for executing.
@noindent
Since @code{\f} has no expansion, it isn't necessary to protect its
-backslash. Had we defined another macro within @code{bar} which takes
-a parameter, eight backslashes would be necessary before @samp{$1}.
+backslash. Had we defined another macro within @code{bar} which takes a
+parameter, eight backslashes would be necessary before @samp{$1}.
-The @code{de1} request turns off compatibility mode
-while executing the macro. On entry, the current compatibility mode
-is saved and restored at exit.
+The @code{de1} request turns off compatibility mode while executing the
+macro. On entry, the current compatibility mode is saved and restored
+at exit.
@Example
.nr xxx 12345
@@ -11098,9 +11034,9 @@ The value of xxx ix \\n[xxx].
@result{} The value of xxx ix 12345.
@endExample
-The @code{dei} request defines a macro indirectly.
-That is, it expands strings whose names
-are @var{name} or @var{end} before performing the append.
+The @code{dei} request defines a macro indirectly. That is, it expands
+strings whose names are @var{name} or @var{end} before performing the
+append.
This:
@@ -11120,15 +11056,16 @@ is equivalent to:
The @code{dei1} request is similar to @code{dei} but with compatibility
mode switched off during execution of the defined macro.
-If compatibility mode is on, @code{de} (and @code{dei}) behave similar to
-@code{de1} (and @code{dei1}): A `compatibility save' token is inserted at
-the beginning, and a `compatibility restore' token at the end, with
-compatibility mode switched on during execution. @xref{Gtroff Internals},
-for more information on switching compatibility mode on and off in a
-single document.
+If compatibility mode is on, @code{de} (and @code{dei}) behave similar
+to @code{de1} (and @code{dei1}): A `compatibility save' token is
+inserted at the beginning, and a `compatibility restore' token at the
+end, with compatibility mode switched on during execution. @xref{Gtroff
+Internals}, for more information on switching compatibility mode on and
+off in a single document.
@pindex trace.tmac
-Using @file{trace.tmac}, you can trace calls to @code{de} and @code{de1}.
+Using @file{trace.tmac}, you can trace calls to @code{de} and
+@code{de1}.
Note that macro identifiers are shared with identifiers for strings and
diversions.
@@ -11151,30 +11088,30 @@ existing macro like this:
..
@endExample
-The @code{am1} request turns off compatibility mode
-while executing the appended macro piece. To be more precise, a
-@dfn{compatibility save} input token is inserted at the beginning of
-the appended code, and a @dfn{compatibility restore} input token at
-the end.
+The @code{am1} request turns off compatibility mode while executing the
+appended macro piece. To be more precise, a @dfn{compatibility save}
+input token is inserted at the beginning of the appended code, and a
+@dfn{compatibility restore} input token at the end.
-The @code{ami} request appends indirectly,
-meaning that @code{gtroff} expands strings whose names
-are @var{name} or @var{end} before performing the append.
+The @code{ami} request appends indirectly, meaning that @code{gtroff}
+expands strings whose names are @var{name} or @var{end} before
+performing the append.
The @code{ami1} request is similar to @code{ami} but compatibility mode
is switched off during execution of the defined macro.
@pindex trace.tmac
-Using @file{trace.tmac}, you can trace calls to @code{am} and @code{am1}.
+Using @file{trace.tmac}, you can trace calls to @code{am} and
+@code{am1}.
@endDefreq
@xref{Strings}, for the @code{als} request to rename a macro.
-The @code{de}, @code{am}, @code{di}, @code{da}, @code{ds}, and
-@code{as} requests (together with its variants) only create a new object
-if the name of the macro, diversion or string diversion is currently
-undefined or if it is defined to be a request; normally they modify the
-value of an existing object.
+The @code{de}, @code{am}, @code{di}, @code{da}, @code{ds}, and @code{as}
+requests (together with its variants) only create a new object if the
+name of the macro, diversion or string diversion is currently undefined
+or if it is defined to be a request; normally they modify the value of
+an existing object.
@Defreq {return, [@Var{anything}]}
Exit a macro, immediately returning to the caller.
@@ -11205,11 +11142,10 @@ macro one level higher. This is used to define a wrapper macro for
@cindex \@key{RET}, when reading text for a macro
When @code{gtroff} reads in the text for a macro, string, or diversion,
it copies the text (including request lines, but excluding escapes) into
-an internal buffer. Escapes are converted into an internal form,
-except for @code{\n}, @code{\$}, @code{\*}, @code{\\} and
-@code{\@key{RET}} which are evaluated and inserted into the text where
-the escape was located. This is known as @dfn{copy-in} mode or
-@dfn{copy} mode.
+an internal buffer. Escapes are converted into an internal form, except
+for @code{\n}, @code{\$}, @code{\*}, @code{\\} and @code{\@key{RET}}
+which are evaluated and inserted into the text where the escape was
+located. This is known as @dfn{copy-in} mode or @dfn{copy} mode.
What this means is that you can specify when these escapes are to be
evaluated (either at copy-in time or at the time of use) by insulating
@@ -11239,8 +11175,8 @@ escapes.
@Defreg {.$}
@cindex number of arguments register (@code{.$})
-The number of arguments passed to a macro or string. This is a read-only
-number register.
+The number of arguments passed to a macro or string. This is a
+read-only number register.
Note that the @code{shift} request can change its value.
@endDefreg
@@ -11256,20 +11192,20 @@ escapes:
@cindex macro, arguments (@code{\$})
@cindex arguments, macro (@code{\$})
Retrieve the @var{n}@dmn{th}, @var{nn}@dmn{th} or @var{nnn}@dmn{th}
-argument. As usual, the first form only accepts a single number
-(larger than zero), the second a two-digit number (larger or equal
-to@tie{}10), and the third any positive integer value (larger
-than zero). Macros and strings can have an unlimited number of arguments.
-Note that due to copy-in mode, use two backslashes on these in actual use
-to prevent interpolation until the macro is actually invoked.
+argument. As usual, the first form only accepts a single number (larger
+than zero), the second a two-digit number (larger or equal to@tie{}10),
+and the third any positive integer value (larger than zero). Macros and
+strings can have an unlimited number of arguments. Note that due to
+copy-in mode, use two backslashes on these in actual use to prevent
+interpolation until the macro is actually invoked.
@endDefesc
@Defreq {shift, [@Var{n}]}
-Shift the arguments 1@tie{}position, or as
-many positions as specified by its argument. After executing this
-request, argument@tie{}@var{i} becomes argument @math{@var{i}-@var{n}};
-arguments 1 to@tie{}@var{n} are no longer available. Shifting by
-negative amounts is currently undefined.
+Shift the arguments 1@tie{}position, or as many positions as specified
+by its argument. After executing this request, argument@tie{}@var{i}
+becomes argument @math{@var{i}-@var{n}}; arguments 1 to@tie{}@var{n} are
+no longer available. Shifting by negative amounts is currently
+undefined.
The register @code{.$} is adjusted accordingly.
@endDefreq
@@ -11278,11 +11214,11 @@ The register @code{.$} is adjusted accordingly.
@DefescListEnd {\\$@@, , , }
In some cases it is convenient to use all of the arguments at once (for
example, to pass the arguments along to another macro). The @code{\$*}
-escape concatenates all the arguments separated by spaces. A
-similar escape is @code{\$@@}, which concatenates all the
-arguments with each surrounded by double quotes, and separated by
-spaces. If not in compatibility mode, the input level of double quotes
-is preserved (see @ref{Request and Macro Arguments}).
+escape concatenates all the arguments separated by spaces. A similar
+escape is @code{\$@@}, which concatenates all the arguments with each
+surrounded by double quotes, and separated by spaces. If not in
+compatibility mode, the input level of double quotes is preserved (see
+@ref{Request and Macro Arguments}).
@endDefesc
@Defesc {\\$^, , , }
@@ -11305,15 +11241,15 @@ Handle the parameters of a macro as if they were an argument to the
@result{} $^=`" This is a "test"'
@endExample
-This escape is useful mainly for macro packages like @file{trace.tmac} which
-redefines some requests and macros for debugging purposes.
+This escape is useful mainly for macro packages like @file{trace.tmac}
+which redefines some requests and macros for debugging purposes.
@endDefesc
@Defesc {\\$0, , , }
@cindex macro name register (@code{\$0})
@cindex @code{als} request, and @code{\$0}
-The name used to invoke the current macro.
-The @code{als} request can make a macro have more than one name.
+The name used to invoke the current macro. The @code{als} request can
+make a macro have more than one name.
@Example
.de generic-macro
@@ -11353,15 +11289,15 @@ vertical motion, @code{sp}.
@cindex location, vertical, page, returning to marked (@code{rt})
@cindex vertical page location, returning to marked (@code{rt})
The request @code{mk} can be used to mark a location on a page, for
-movement to later. This request takes a register name as an argument
-in which to store the current page location. With no argument it
-stores the location in an internal register. The results of this can
-be used later by the @code{rt} or the @code{sp} request (or the
-@code{\v} escape).
-
-The @code{rt} request returns @emph{upwards} to the location marked
-with the last @code{mk} request. If used with an argument, return to
-a position which distance from the top of the page is @var{dist} (no
+movement to later. This request takes a register name as an argument in
+which to store the current page location. With no argument it stores
+the location in an internal register. The results of this can be used
+later by the @code{rt} or the @code{sp} request (or the @code{\v}
+escape).
+
+The @code{rt} request returns @emph{upwards} to the location marked with
+the last @code{mk} request. If used with an argument, return to a
+position which distance from the top of the page is @var{dist} (no
previous call to @code{mk} is necessary in this case). Default scaling
indicator is @samp{v}.
@@ -11433,16 +11369,16 @@ The following escapes give fine control of movements about the page.
@cindex vertical motion (@code{\v})
@cindex motion, vertical (@code{\v})
Move vertically, usually from the current location on the page (if no
-absolute position operator @samp{|} is used). The
-argument@tie{}@var{e} specifies the distance to move; positive is
-downwards and negative upwards. The default scaling indicator for this
-escape is @samp{v}. Beware, however, that @code{gtroff} continues text
-processing at the point where the motion ends, so you should always
-balance motions to avoid interference with text processing.
-
-@code{\v} doesn't trigger a trap. This can be quite useful; for example,
-consider a page bottom trap macro which prints a marker in the margin to
-indicate continuation of a footnote or something similar.
+absolute position operator @samp{|} is used). The argument@tie{}@var{e}
+specifies the distance to move; positive is downwards and negative
+upwards. The default scaling indicator for this escape is @samp{v}.
+Beware, however, that @code{gtroff} continues text processing at the
+point where the motion ends, so you should always balance motions to
+avoid interference with text processing.
+
+@code{\v} doesn't trigger a trap. This can be quite useful; for
+example, consider a page bottom trap macro which prints a marker in the
+margin to indicate continuation of a footnote or something similar.
@endDefesc
There are some special-case escapes for vertical motion.
@@ -11484,8 +11420,8 @@ space. (Note: This is a backslash followed by a space.)
@endDefesc
@Defesc {\\~, , , }
-An unbreakable space that stretches like a normal inter-word space
-when a line is adjusted.
+An unbreakable space that stretches like a normal inter-word space when
+a line is adjusted.
@endDefesc
@Defesc {\\|, , , }
@@ -11527,9 +11463,9 @@ The following string sets the @TeX{} logo:
@DefregItem {ssc}
@DefregListEnd {skw}
@cindex width escape (@code{\w})
-Return the width of the specified @var{text} in basic units.
-This allows horizontal movement based on the width of some
-arbitrary text (e.g.@: given as an argument to a macro).
+Return the width of the specified @var{text} in basic units. This
+allows horizontal movement based on the width of some arbitrary text
+(e.g.@: given as an argument to a macro).
@Example
The length of the string `abc' is \w'abc'u.
@@ -11544,14 +11480,14 @@ After use, @code{\w} sets several registers:
@table @code
@item st
@itemx sb
-The highest and lowest point of the baseline, respectively, in @var{text}.
+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 glyphs. With other words, this gives the
-highest and lowest point of @var{text}. Values below the baseline are
-negative.
+heights and depths of glyphs. With other words, this gives the highest
+and lowest point of @var{text}. Values below the baseline are negative.
@item ct
Defines the kinds of glyphs occurring in @var{text}:
@@ -11589,8 +11525,8 @@ over that glyph.
@cindex input line position, horizontal, saving (@code{\k})
@cindex position, horizontal input line, saving (@code{\k})
@cindex line, input, horizontal position, saving (@code{\k})
-Store the current horizontal position in the @emph{input} line in
-number register with name @var{position} (one-character name@tie{}@var{p},
+Store the current horizontal position in the @emph{input} line in number
+register with name @var{position} (one-character name@tie{}@var{p},
two-character name @var{ps}). Use this, for example, to return to the
beginning of a string for highlighting or other decoration.
@endDefesc
@@ -11615,16 +11551,16 @@ position (relative to the current indentation).
@Defesc {\\o, ', abc, '}
@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 glyphs.
+Overstrike glyphs @var{a}, @var{b}, @var{c}, @dots{}; the glyphs are
+centered, and the resulting spacing is the largest width of the affected
+glyphs.
@endDefesc
@Defesc {\\z, , g, , }
@cindex zero-width printing (@code{\z}, @code{\Z})
@cindex printing, zero-width (@code{\z}, @code{\Z})
-Print glyph @var{g} with zero width, i.e., without spacing. Use
-this to overstrike glyphs left-aligned.
+Print glyph @var{g} with zero width, i.e., without spacing. Use this to
+overstrike glyphs left-aligned.
@endDefesc
@Defesc {\\Z, ', anything, '}
@@ -11677,16 +11613,16 @@ values are handled differently: The line starts at the current location
and draws to the left, but the current location doesn't move.
@var{l} can also be specified absolutely (i.e.@: with a leading
-@samp{|}) which draws back to the beginning of the input line.
-Default scaling indicator is @samp{m}.
+@samp{|}) which draws back to the beginning of the input line. Default
+scaling indicator is @samp{m}.
@cindex underscore glyph (@code{\[ru]})
@cindex glyph, underscore (@code{\[ru]})
@cindex line drawing glyph
@cindex glyph, for line drawing
The optional second parameter@tie{}@var{g} is a glyph to draw the line
-with. If this second argument is not specified, @code{gtroff} uses
-the underscore glyph, @code{\[ru]}.
+with. If this second argument is not specified, @code{gtroff} uses the
+underscore glyph, @code{\[ru]}.
@cindex zero width space character (@code{\&})
@cindex character, zero width space (@code{\&})
@@ -11707,8 +11643,8 @@ Here a small useful example:
Note that this works by outputting a box rule (a vertical line), then
the text given as an argument and then another box rule. Finally, the
line drawing escapes both draw from the current location to the
-beginning of the @emph{input} line -- this works because the line
-length is negative, not moving the current point.
+beginning of the @emph{input} line -- this works because the line length
+is negative, not moving the current point.
@endDefesc
@DefescList {\\L, ', l, '}
@@ -11720,12 +11656,12 @@ length is negative, not moving the current point.
@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 glyph is the box rule
-glyph, @code{\[br]}. As with the vertical motion escapes, text
-processing blindly continues where the line ends.
+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 glyph is the box rule glyph, @code{\[br]}. As with
+the vertical motion escapes, text processing blindly continues where the
+line ends.
@Example
This is a \L'3v'test.
@@ -11743,10 +11679,10 @@ This is a
@endDefesc
@Defesc {\\D, ', command arg @dots{}, '}
-The @code{\D} escape provides a variety of drawing functions.
-Note that on character devices, only vertical and horizontal lines are
-supported within @code{grotty}; other devices may only support a subset
-of the available drawing functions.
+The @code{\D} escape provides a variety of drawing functions. Note that
+on character devices, only vertical and horizontal lines are supported
+within @code{grotty}; other devices may only support a subset of the
+available drawing functions.
The default scaling indicator for all subcommands of @code{\D} is
@samp{m} for horizontal distances and @samp{v} for vertical ones.
@@ -11762,8 +11698,9 @@ Draw a line from the current location to the relative point specified by
(@var{dx},@var{dy}), where positive values mean down and right,
respectively. The end point of the line is the new current location.
-The following example is a macro for creating a box around a text string;
-for simplicity, the box margin is taken as a fixed value, 0.2@dmn{m}.
+The following example is a macro for creating a box around a text
+string; for simplicity, the box margin is taken as a fixed value,
+0.2@dmn{m}.
@Example
.de BOX
@@ -11789,24 +11726,24 @@ containing the largest height and depth of the whole string.
@item \D'c @var{d}'
@cindex circle, drawing (@w{@code{\D'c @dots{}'}})
@cindex drawing a circle (@w{@code{\D'c @dots{}'}})
-Draw a circle with a diameter of@tie{}@var{d} with the leftmost point at the
-current position. After drawing, the current location is positioned at the
-rightmost point of the circle.
+Draw a circle with a diameter of@tie{}@var{d} with the leftmost point at
+the current position. After drawing, the current location is positioned
+at the rightmost point of the circle.
@item \D'C @var{d}'
@cindex circle, solid, drawing (@w{@code{\D'C @dots{}'}})
@cindex drawing a solid circle (@w{@code{\D'C @dots{}'}})
@cindex solid circle, drawing (@w{@code{\D'C @dots{}'}})
-Draw a solid circle with the same parameters and behaviour as an outlined
-circle. No outline is drawn.
+Draw a solid circle with the same parameters and behaviour as an
+outlined circle. No outline is drawn.
@item \D'e @var{x} @var{y}'
@cindex drawing an ellipse (@w{@code{\D'e @dots{}'}})
@cindex ellipse, drawing (@w{@code{\D'e @dots{}'}})
Draw an ellipse with a horizontal diameter of @var{x} and a vertical
diameter of @var{y} with the leftmost point at the current position.
-After drawing, the current location is positioned at the rightmost point of
-the ellipse.
+After drawing, the current location is positioned at the rightmost point
+of the ellipse.
@item \D'E @var{x} @var{y}'
@cindex ellipse, solid, drawing (@w{@code{\D'E @dots{}'}})
@@ -11822,44 +11759,44 @@ Draw an arc clockwise from the current location through the two
specified relative locations (@var{dx1},@var{dy1}) and
(@var{dx2},@var{dy2}). The coordinates of the first point are relative
to the current position, and the coordinates of the second point are
-relative to the first point. After drawing, the current position is moved
-to the final point of the arc.
+relative to the first point. After drawing, the current position is
+moved to the final point of the arc.
@item \D'~ @var{dx1} @var{dy1} @var{dx2} @var{dy2} @dots{}'
@cindex drawing a spline (@w{@code{\D'~ @dots{}'}})
@cindex spline, drawing (@w{@code{\D'~ @dots{}'}})
Draw a spline from the current location to the relative point
-(@var{dx1},@var{dy1}) and then to (@var{dx2},@var{dy2}), and so on.
-The current position is moved to the terminal point of the drawn curve.
+(@var{dx1},@var{dy1}) and then to (@var{dx2},@var{dy2}), and so on. The
+current position is moved to the terminal point of the drawn curve.
@item \D'f @var{n}'
@cindex gray shading (@w{@code{\D'f @dots{}'}})
@cindex shading filled objects (@w{@code{\D'f @dots{}'}})
-Set the shade of gray to be used for filling solid objects to@tie{}@var{n};
-@var{n}@tie{}must be an integer between 0 and@tie{}1000, where 0
-corresponds solid white and 1000 to solid black, and values in between
-correspond to intermediate shades of gray. This applies only to solid
-circles, solid ellipses, and solid polygons. By default, a level of
-1000 is used.
+Set the shade of gray to be used for filling solid objects
+to@tie{}@var{n}; @var{n}@tie{}must be an integer between 0
+and@tie{}1000, where 0 corresponds solid white and 1000 to solid black,
+and values in between correspond to intermediate shades of gray. This
+applies only to solid circles, solid ellipses, and solid polygons. By
+default, a level of 1000 is used.
Despite of being silly, the current point is moved horizontally to the
right by@tie{}@var{n}.
@cindex @w{@code{\D'f @dots{}'}} and horizontal resolution
-Don't use this command! It has the serious drawback that it is
-always rounded to the next integer multiple of the horizontal resolution
-(the value of the @code{hor} keyword in the @file{DESC} file). Use
-@code{\M} (@pxref{Colors}) or @w{@code{\D'Fg @dots{}'}} instead.
+Don't use this command! It has the serious drawback that it is always
+rounded to the next integer multiple of the horizontal resolution (the
+value of the @code{hor} keyword in the @file{DESC} file). Use @code{\M}
+(@pxref{Colors}) or @w{@code{\D'Fg @dots{}'}} instead.
@item \D'p @var{dx1} @var{dy1} @var{dx2} @var{dy2} @dots{}'
@cindex drawing a polygon (@w{@code{\D'p @dots{}'}})
@cindex polygon, drawing (@w{@code{\D'p @dots{}'}})
Draw a polygon from the current location to the relative position
-(@var{dx1},@var{dy1}) and then to (@var{dx2},@var{dy2}) and so on.
-When the specified data points are exhausted, a line is drawn back
-to the starting point. The current position is changed by adding the
-sum of all arguments with odd index to the actual horizontal position and
-the even ones to the vertical position.
+(@var{dx1},@var{dy1}) and then to (@var{dx2},@var{dy2}) and so on. When
+the specified data points are exhausted, a line is drawn back to the
+starting point. The current position is changed by adding the sum of
+all arguments with odd index to the actual horizontal position and the
+even ones to the vertical position.
@item \D'P @var{dx1} @var{dy1} @var{dx2} @var{dy2} @dots{}'
@cindex polygon, solid, drawing (@w{@code{\D'P @dots{}'}})
@@ -11891,11 +11828,11 @@ text completely.
@endExample
If you want a filled polygon which has exactly the same size as an
-unfilled one, you must draw both an unfilled and a filled polygon.
-A filled polygon is always smaller than an unfilled one because the
-latter uses straight lines with a given line thickness to connect
-the polygon's corners, while the former simply fills the area
-defined by the coordinates.
+unfilled one, you must draw both an unfilled and a filled polygon. A
+filled polygon is always smaller than an unfilled one because the latter
+uses straight lines with a given line thickness to connect the polygon's
+corners, while the former simply fills the area defined by the
+coordinates.
@Example
\h'1i'\v'1i'\
@@ -11907,12 +11844,11 @@ defined by the coordinates.
\Z'\D'P 3 3 -6 0''
@endExample
-
@item \D't @var{n}'
@cindex line thickness (@w{@code{\D't @dots{}'}})
@cindex thickness of lines (@w{@code{\D't @dots{}'}})
-Set the current line thickness to @var{n}@tie{}machine units. A value of
-zero selects the smallest available line thickness. A negative value
+Set the current line thickness to @var{n}@tie{}machine units. A value
+of zero selects the smallest available line thickness. A negative value
makes the line thickness proportional to the current point size (this is
the default behaviour of @acronym{AT&T} @code{troff}).
@@ -11946,8 +11882,8 @@ Examples:
@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.
+@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:
@@ -11957,16 +11893,16 @@ Here an example how to create a large opening brace:
@cindex @code{\b}, limitations
@cindex limitations of @code{\b} escape
-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 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.
-
-@xref{Manipulating Spacing}, how to adjust the vertical spacing with
-the @code{\x} escape.
+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 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.
+
+@xref{Manipulating Spacing}, how to adjust the vertical spacing with the
+@code{\x} escape.
@endDefesc
@@ -11976,18 +11912,18 @@ the @code{\x} escape.
@section Traps
@cindex traps
-@dfn{Traps} are locations, which, when reached, call a specified
-macro. These traps can occur at a given location on the page, at a
-given location in the current diversion, at a blank line,
-after a certain number of input lines, or at the end of input.
+@dfn{Traps} are locations, which, when reached, call a specified macro.
+These traps can occur at a given location on the page, at a given
+location in the current diversion, at a blank line, after a certain
+number of input lines, or at the end of input.
@cindex planting a trap
@cindex trap, planting
Setting a trap is also called @dfn{planting}.
@cindex trap, springing
@cindex springing a trap
-It is also said that a trap is @dfn{sprung} if the associated macro
-is executed.
+It is also said that a trap is @dfn{sprung} if the associated macro is
+executed.
@menu
* Page Location Traps::
@@ -12004,9 +11940,9 @@ is executed.
@cindex page location traps
@cindex traps, page location
-@dfn{Page location traps} perform an action when @code{gtroff}
-reaches or passes a certain vertical location on the page. Page
-location traps have a variety of purposes, including:
+@dfn{Page location traps} perform an action when @code{gtroff} reaches
+or passes a certain vertical location on the page. Page location traps
+have a variety of purposes, including:
@itemize
@item
@@ -12042,16 +11978,15 @@ relative to the bottom of the page. Default scaling indicator is
@samp{v}; values of @var{dist} are always rounded to be multiples of the
vertical resolution (as given in register @code{.V}).
-@var{macro} is the name of the macro to execute when the
-trap is sprung. If @var{macro} is missing, remove the first trap
-(if any) at @var{dist}.
+@var{macro} is the name of the macro to execute when the trap is sprung.
+If @var{macro} is missing, remove the first trap (if any) at @var{dist}.
@cindex page headers
@cindex page footers
@cindex headers
@cindex footers
-The following is a simple example of how many macro packages
-set headers and footers.
+The following is a simple example of how many macro packages set headers
+and footers.
@Example
.de hd \" Page header
@@ -12087,12 +12022,12 @@ not converted to an absolute vertical position:
@result{} xx -240
@endExample
-It is possible to have more than one trap at the same location; to do so,
-the traps must be defined at different locations, then moved together with
-the @code{ch} request; otherwise the second trap would replace the first
-one. Earlier defined traps hide later defined traps if moved to the same
-position (the many empty lines caused by the @code{bp} request are omitted
-in the following example):
+It is possible to have more than one trap at the same location; to do
+so, the traps must be defined at different locations, then moved
+together with the @code{ch} request; otherwise the second trap would
+replace the first one. Earlier defined traps hide later defined traps
+if moved to the same position (the many empty lines caused by the
+@code{bp} request are omitted in the following example):
@Example
.de a
@@ -12131,23 +12066,23 @@ A read-only number register holding the distance to the next trap.
If there are no traps between the current position and the bottom of the
page, it contains the distance to the page bottom. In a diversion, the
-distance to the page bottom is infinite (the returned value is the biggest
-integer which can be represented in @code{groff}) if there are no diversion
-traps.
+distance to the page bottom is infinite (the returned value is the
+biggest integer which can be represented in @code{groff}) if there are
+no diversion traps.
@endDefreg
@Defreq {ch, macro [@Var{dist}]}
@cindex changing trap location (@code{ch})
@cindex trap, changing location (@code{ch})
-Change the location of a trap.
-The first argument is the name of the macro to be invoked at
-the trap, and the second argument is the new location for the trap
-(note that the parameters are specified in opposite order as in the
-@code{wh} request). This is useful for building up footnotes in a
-diversion to allow more space at the bottom of the page for them.
+Change the location of a trap. The first argument is the name of the
+macro to be invoked at the trap, and the second argument is the new
+location for the trap (note that the parameters are specified in
+opposite order as in the @code{wh} request). This is useful for
+building up footnotes in a diversion to allow more space at the bottom
+of the page for them.
-Default scaling indicator for @var{dist} is @samp{v}. If @var{dist}
-is missing, the trap is removed.
+Default scaling indicator for @var{dist} is @samp{v}. If @var{dist} is
+missing, the trap is removed.
@c XXX
@@ -12164,8 +12099,8 @@ that was needed in the last @code{ne} request that caused a trap to be
sprung. Useful in conjunction with the @code{.trunc} register.
@xref{Page Control}, for more information.
-Since the @code{.ne} register is only set by traps it doesn't make
-much sense to use it outside of trap macros.
+Since the @code{.ne} register is only set by traps it doesn't make much
+sense to use it outside of trap macros.
@endDefreg
@Defreg {.trunc}
@@ -12190,8 +12125,8 @@ much sense to use it outside of trap macros.
A read-only register which is set to@tie{}1 while a page is ejected with
the @code{bp} request (or by the end of input).
-Outside of traps this register is always zero. In the following example,
-only the second call to@tie{}@code{x} is caused by @code{bp}.
+Outside of traps this register is always zero. In the following
+example, only the second call to@tie{}@code{x} is caused by @code{bp}.
@Example
.de x
@@ -12214,13 +12149,13 @@ Another line.
@cindex diversions, and traps
@cindex traps, and diversions
-An important fact to consider while designing macros is that diversions and
-traps do not interact normally. For example, if a trap invokes a header
-macro (while outputting a diversion) which tries to change the font on the
-current page, the effect is not visible before the diversion has
-completely been printed (except for input protected with @code{\!} or
-@code{\?}) since the data in the diversion is already formatted. In most
-cases, this is not the expected behaviour.
+An important fact to consider while designing macros is that diversions
+and traps do not interact normally. For example, if a trap invokes a
+header macro (while outputting a diversion) which tries to change the
+font on the current page, the effect is not visible before the diversion
+has completely been printed (except for input protected with @code{\!}
+or @code{\?}) since the data in the diversion is already formatted. In
+most cases, this is not the expected behaviour.
@c ---------------------------------------------------------------------
@@ -12234,11 +12169,10 @@ cases, this is not the expected behaviour.
@cindex setting diversion trap (@code{dt})
@cindex diversion trap, setting (@code{dt})
@cindex trap, diversion, setting (@code{dt})
-Set a trap @emph{within} a diversion.
-@var{dist} is the location of the trap
-(identical to the @code{wh} request; default scaling indicator is
-@samp{v}) and @var{macro} is the name of the macro to be invoked.
-If called without arguments, the diversion trap is removed.
+Set a trap @emph{within} a diversion. @var{dist} is the location of the
+trap (identical to the @code{wh} request; default scaling indicator is
+@samp{v}) and @var{macro} is the name of the macro to be invoked. If
+called without arguments, the diversion trap is removed.
Note that there exists only a single diversion trap.
@@ -12258,13 +12192,12 @@ The number register @code{.t} still works within diversions.
@cindex setting input line trap (@code{it})
@cindex input line trap, setting (@code{it})
@cindex trap, input line, setting (@code{it})
-Set an input line trap.
-@var{n}@tie{}is the number of lines of input which may be read before
-springing the trap, @var{macro} is the macro to be invoked.
-Request lines are not counted as input lines.
+Set an input line trap. @var{n}@tie{}is the number of lines of input
+which may be read before springing the trap, @var{macro} is the macro to
+be invoked. Request lines are not counted as input lines.
-For example, one possible use is to have a macro which prints the
-next @var{n}@tie{}lines in a bold font.
+For example, one possible use is to have a macro which prints the next
+@var{n}@tie{}lines in a bold font.
@Example
.de B
@@ -12281,9 +12214,8 @@ next @var{n}@tie{}lines in a bold font.
@cindex interrupted lines and input line traps (@code{itc})
@cindex traps, input line, and interrupted lines (@code{itc})
@cindex lines, interrupted, and input line traps (@code{itc})
-The @code{itc} request is identical
-except that an interrupted text line (ending with @code{\c})
-is not counted as a separate line.
+The @code{itc} request is identical except that an interrupted text line
+(ending with @code{\c}) is not counted as a separate line.
Both requests are associated with the current environment
(@pxref{Environments}); switching to another environment disables the
@@ -12300,9 +12232,8 @@ of already processed lines.
@Defreq {blm, macro}
@cindex blank line macro (@code{blm})
-Set a blank line trap.
-@code{gtroff} executes @var{macro} when it encounters a blank line in
-the input file.
+Set a blank line trap. @code{gtroff} executes @var{macro} when it
+encounters a blank line in the input file.
@endDefreq
@c ---------------------------------------------------------------------
@@ -12318,8 +12249,8 @@ the input file.
@cindex trap, end-of-input, setting (@code{em})
@cindex end-of-input macro (@code{em})
@cindex macro, end-of-input (@code{em})
-Set a trap at the end of input. @var{macro} is executed after the
-last line of the input file has been processed.
+Set a trap at the end of input. @var{macro} is executed after the last
+line of the input file has been processed.
For example, if the document had to have a section at the bottom of the
last page for someone to approve it, the @code{em} request could be
@@ -12368,9 +12299,9 @@ output device).
@cindex diversion, ending (@code{di})
@cindex appending to a diversion (@code{da})
@cindex diversion, appending (@code{da})
-Begin a diversion. Like the @code{de}
-request, it takes an argument of a macro name to divert subsequent text
-into. The @code{da} macro appends to an existing diversion.
+Begin a diversion. Like the @code{de} request, it takes an argument of
+a macro name to divert subsequent text into. The @code{da} macro
+appends to an existing diversion.
@code{di} or @code{da} without an argument ends the diversion.
@@ -12382,10 +12313,9 @@ inclusion of the current partially-filled line.
@DefreqList {box, macro}
@DefreqListEnd {boxa, macro}
-Begin (or appends to) a diversion like the
-@code{di} and @code{da} requests.
-The difference is that @code{box} and @code{boxa}
-do not include a partially-filled line in the diversion.
+Begin (or append to) a diversion like the @code{di} and @code{da}
+requests. The difference is that @code{box} and @code{boxa} do not
+include a partially-filled line in the diversion.
Compare this:
@@ -12519,16 +12449,15 @@ been already stored in a macro are not taken into account.
@DefescListEnd {\\?, , anything, \\?}
@cindex transparent output (@code{\!}, @code{\?})
@cindex output, transparent (@code{\!}, @code{\?})
-Prevent requests, macros, and escapes from being
-interpreted when read into a diversion. Both escapes take the given text
-and @dfn{transparently} embed it into the diversion. This is useful for
+Prevent requests, macros, and escapes from being interpreted when read
+into a diversion. Both escapes take the given text and
+@dfn{transparently} embed it into the diversion. This is useful for
macros which shouldn't be invoked until the diverted text is actually
output.
-The @code{\!} escape transparently embeds text up to
-and including the end of the line.
-The @code{\?} escape transparently embeds text until the next
-occurrence of the @code{\?} escape. Example:
+The @code{\!} escape transparently embeds text up to and including the
+end of the line. The @code{\?} escape transparently embeds text until
+the next occurrence of the @code{\?} escape. Example:
@Example
\?@var{anything}\?
@@ -12590,11 +12519,11 @@ at all; its argument is simply ignored.
@Defreq {output, string}
Emit @var{string} directly to the @code{gtroff} intermediate output
(subject to copy mode interpretation); this is similar to @code{\!} used
-at the top level. An initial double quote in @var{string} is stripped off
-to allow initial blanks.
+at the top level. An initial double quote in @var{string} is stripped
+off to allow initial blanks.
-This request can't be used before the first page has started -- if you get
-an error, simply insert @code{.br} before the @code{output} request.
+This request can't be used before the first page has started -- if you
+get an error, simply insert @code{.br} before the @code{output} request.
Without argument, @code{output} is ignored.
@@ -12607,12 +12536,12 @@ the output device, filtering out @var{string} again.
@cindex unformatting diversions (@code{asciify})
@cindex diversion, unformatting (@code{asciify})
@cindex @code{trin} request, and @code{asciify}
-@dfn{Unformat} the diversion specified by @var{div}
-in such a way that @acronym{ASCII} characters, characters translated with
-the @code{trin} request, space characters, and some escape sequences that
-were formatted and diverted are treated like ordinary input
-characters when the diversion is reread. It can be also used for gross
-hacks; for example, the following sets register@tie{}@code{n} to@tie{}1.
+@dfn{Unformat} the diversion specified by @var{div} in such a way that
+@acronym{ASCII} characters, characters translated with the @code{trin}
+request, space characters, and some escape sequences that were formatted
+and diverted are treated like ordinary input characters when the
+diversion is reread. It can be also used for gross hacks; for example,
+the following sets register@tie{}@code{n} to@tie{}1.
@Example
.tr @@.
@@ -12629,11 +12558,10 @@ hacks; for example, the following sets register@tie{}@code{n} to@tie{}1.
@endDefreq
@Defreq {unformat, div}
-Like @code{asciify}, unformat the specified diversion.
-However, @code{unformat} only unformats spaces and tabs
-between words.
-Unformatted tabs are treated as input tokens,
-and spaces are stretchable again.
+Like @code{asciify}, unformat the specified diversion. However,
+@code{unformat} only unformats spaces and tabs between words.
+Unformatted tabs are treated as input tokens, and spaces are stretchable
+again.
The vertical size of lines is not preserved; glyph information (font,
font size, space width, etc.)@: is retained.
@@ -12649,28 +12577,28 @@ font size, space width, etc.)@: is retained.
It happens frequently that some text should be printed in a certain
format regardless of what may be in effect at the time, for example, in
a trap invoked macro to print headers and footers. To solve this
-@code{gtroff} processes text in @dfn{environments}. An
-environment contains most of the parameters that control text
-processing. It is possible to switch amongst these environments; by
-default @code{gtroff} processes text in environment@tie{}0. The
-following is the information kept in an environment.
+@code{gtroff} processes text in @dfn{environments}. An environment
+contains most of the parameters that control text processing. It is
+possible to switch amongst these environments; by default @code{gtroff}
+processes text in environment@tie{}0. The following is the information
+kept in an environment.
@itemize @bullet
@item
-font parameters (size, family, style, glyph height and slant, space
-and sentence space size)
+font parameters (size, family, style, glyph height and slant, space and
+sentence space size)
@item
-page parameters (line length, title length, vertical spacing,
-line spacing, indentation, line numbering, centering, right-justifying,
+page parameters (line length, title length, vertical spacing, line
+spacing, indentation, line numbering, centering, right-justifying,
underlining, hyphenation data)
@item
fill and adjust mode
@item
-tab stops, tab and leader characters, escape character,
-no-break and hyphen indicators, margin character data
+tab stops, tab and leader characters, escape character, no-break and
+hyphen indicators, margin character data
@item
partially collected lines
@@ -12702,8 +12630,8 @@ Note that a call to @code{ev} (with argument) pushes the previously
active environment onto a stack. If, say, environments @samp{foo},
@samp{bar}, and @samp{zap} are called (in that order), the first
@code{ev} request without parameter switches back to environment
-@samp{bar} (which is popped off the stack), and a second call
-switches back to environment @samp{foo}.
+@samp{bar} (which is popped off the stack), and a second call switches
+back to environment @samp{foo}.
Here is an example:
@@ -12738,8 +12666,8 @@ Partially filled lines.
The status whether the previous line was interrupted.
@item
-The number of lines still to center, or to right-justify, or to underline
-(with or without underlined spaces); they are set to zero.
+The number of lines still to center, or to right-justify, or to
+underline (with or without underlined spaces); they are set to zero.
@item
The status whether a temporary indentation is active.
@@ -12748,8 +12676,8 @@ The status whether a temporary indentation is active.
Input traps and its associated data.
@item
-Line numbering mode is disabled; it can be reactivated with
-@w{@samp{.nm +0}}.
+Line numbering mode is disabled; it can be reactivated with @w{@samp{.nm
++0}}.
@item
The number of consecutive hyphenated lines (set to zero).
@@ -12767,19 +12695,18 @@ The number of consecutive hyphenated lines (set to zero).
@cindex skew, of last glyph (@code{.csk})
@cindex last glyph, dimensions (@code{.w}, @code{.cht}, @code{.cdp}, @code{.csk})
@cindex glyph, last, dimensions (@code{.w}, @code{.cht}, @code{.cdp}, @code{.csk})
-The @code{\n[.w]} register contains the
-width of the last glyph added to the current environment.
+The @code{\n[.w]} register contains the width of the last glyph added to
+the current environment.
-The @code{\n[.cht]} register contains the
-height of the last glyph added to the current environment.
+The @code{\n[.cht]} register contains the height of the last glyph added
+to the current environment.
-The @code{\n[.cdp]} register contains the
-depth of the last glyph added to the current environment.
-It is positive for glyphs extending below the baseline.
+The @code{\n[.cdp]} register contains the depth of the last glyph added
+to the current environment. It is positive for glyphs extending below
+the baseline.
-The @code{\n[.csk]} register contains the
-@dfn{skew} (how far to the right of the glyph's center
-that @code{gtroff} should place an accent)
+The @code{\n[.csk]} register contains the @dfn{skew} (how far to the
+right of the glyph's center that @code{gtroff} should place an accent)
of the last glyph added to the current environment.
@endDefreg
@@ -12788,8 +12715,8 @@ of the last glyph added to the current environment.
@cindex line length, previous (@code{.n})
@cindex length of previous line (@code{.n})
@cindex previous line length (@code{.n})
-The @code{\n[.n]} register contains the
-length of the previous output line in the current environment.
+The @code{\n[.n]} register contains the length of the previous output
+line in the current environment.
@endDefreg
@@ -12805,9 +12732,10 @@ Disable or enable output depending on the value of @var{num}:
@table @samp
@item \O0
-Disable any glyphs from being emitted to the device driver, provided that
-the escape occurs at the outer level (see @code{\O[3]} and @code{\O[4]}).
-Motion is not suppressed so effectively @code{\O[0]} means @emph{pen up}.
+Disable any glyphs from being emitted to the device driver, provided
+that the escape occurs at the outer level (see @code{\O[3]} and
+@code{\O[4]}). Motion is not suppressed so effectively @code{\O[0]}
+means @emph{pen up}.
@item \O1
Enable output of glyphs, provided that the escape occurs at the outer
@@ -12849,9 +12777,8 @@ The current level is contained within the read-only register @code{.O}.
@xref{Built-in Registers}.
@item \O4
-End a nesting level.
-The current level is contained within the read-only register @code{.O}.
-@xref{Built-in Registers}.
+End a nesting level. The current level is contained within the
+read-only register @code{.O}. @xref{Built-in Registers}.
@item \O[5@var{P}@var{filename}]
This escape is @code{grohtml} specific. Provided that this escape
@@ -12863,6 +12790,7 @@ production of the next inline image.
@end table
@endDefesc
+
@c =====================================================================
@node Colors, I/O, Suppressing output, gtroff Reference
@@ -12871,21 +12799,21 @@ production of the next inline image.
@DefreqList {color, [@Var{n}]}
@DefregListEnd {.color}
-If @var{n} is missing or non-zero, activate colors (this is the default);
-otherwise, turn it off.
+If @var{n} is missing or non-zero, activate colors (this is the
+default); otherwise, turn it off.
-The read-only number register @code{.color} is@tie{}1 if colors are active,
-0@tie{}otherwise.
+The read-only number register @code{.color} is@tie{}1 if colors are
+active, 0@tie{}otherwise.
-Internally, @code{color} sets a global flag; it does not produce a token.
-Similar to the @code{cp} request, you should use it at the beginning of
-your document to control color output.
+Internally, @code{color} sets a global flag; it does not produce a
+token. Similar to the @code{cp} request, you should use it at the
+beginning of your document to control color output.
Colors can be also turned off with the @option{-c} command line option.
@endDefreq
@Defreq {defcolor, ident scheme color_components}
-Define color with name @var{ident}. @var{scheme} can be one of the
+Define color with name @var{ident}. @var{scheme} can be one of the
following values: @code{rgb} (three components), @code{cmy} (three
components), @code{cmyk} (four components), and @code{gray} or
@code{grey} (one component).
@@ -12904,9 +12832,10 @@ default color for @code{\m} and @code{\M} is not identical.
@cindex @code{f} unit, and colors
@cindex unit, @code{f}, and colors
-A new scaling indicator@tie{}@code{f} has been introduced which multiplies
-its value by 65536; this makes it convenient to specify color components
-as fractions in the range 0 to@tie{}1 (1f equals 65536u). Example:
+A new scaling indicator@tie{}@code{f} has been introduced which
+multiplies its value by 65536; this makes it convenient to specify color
+components as fractions in the range 0 to@tie{}1 (1f equals 65536u).
+Example:
@Example
.defcolor darkgreen rgb 0.1f 0.5f 0.2f
@@ -12951,10 +12880,9 @@ string-valued number register @samp{.m}.
The drawing color is associated with the current environment
(@pxref{Environments}).
-Note that @code{\m} doesn't produce an input token in @code{gtroff}.
-As a consequence, it can be used in requests like @code{mc} (which
-expects a single character as an argument) to change the color on
-the fly:
+Note that @code{\m} doesn't produce an input token in @code{gtroff}. As
+a consequence, it can be used in requests like @code{mc} (which expects
+a single character as an argument) to change the color on the fly:
@Example
.mc \m[red]x\m[]
@@ -12975,8 +12903,8 @@ A red ellipse can be created with the following code:
\M[red]\h'0.5i'\D'E 2i 1i'\M[]
@endExample
-The escape @code{\M[]} returns to the previous fill color, as does a call to
-@code{fcolor} without an argument.
+The escape @code{\M[]} returns to the previous fill color, as does a
+call to @code{fcolor} without an argument.
@cindex background color name register (@code{.M})
@cindex name, background color, register (@code{.M})
@@ -13008,14 +12936,14 @@ Note that @code{\M} doesn't produce an input token in @code{gtroff}.
@Defreq {so, file}
@cindex including a file (@code{so})
@cindex file, inclusion (@code{so})
-Read in the specified @var{file} and
-includes it in place of the @code{so} request. This is quite useful for
-large documents, e.g.@: keeping each chapter in a separate file.
-@xref{gsoelim}, for more information.
-
-Since @code{gtroff} replaces the @code{so} request with the contents
-of @code{file}, it makes a difference whether the data is terminated with
-a newline or not: Assuming that file @file{xxx} contains the word
+Read in the specified @var{file} and includes it in place of the
+@code{so} request. This is quite useful for large documents, e.g.@:
+keeping each chapter in a separate file. @xref{gsoelim}, for more
+information.
+
+Since @code{gtroff} replaces the @code{so} request with the contents of
+@code{file}, it makes a difference whether the data is terminated with a
+newline or not: Assuming that file @file{xxx} contains the word
@samp{foo} without a final newline, this
@Example
@@ -13027,32 +12955,32 @@ bar
@noindent
yields @samp{This is foobar}.
-The search path for @var{file} can be controlled with the @option{-I} command
-line option.
+The search path for @var{file} can be controlled with the @option{-I}
+command line option.
@endDefreq
@Defreq {pso, command}
-Read the standard output from the specified @var{command}
-and includes it in place of the @code{pso} request.
+Read the standard output from the specified @var{command} and includes
+it in place of the @code{pso} request.
@cindex safer mode
@cindex mode, safer
@cindex unsafe mode
@cindex mode, unsafe
-This request causes an error if used in safer mode (which is the default).
-Use @code{groff}'s or @code{troff}'s @option{-U} option to activate unsafe
-mode.
+This request causes an error if used in safer mode (which is the
+default). Use @code{groff}'s or @code{troff}'s @option{-U} option to
+activate unsafe mode.
The comment regarding a final newline for the @code{so} request is valid
for @code{pso} also.
@endDefreq
@Defreq {mso, file}
-Identical to the @code{so} request except that @code{gtroff} searches for
-the specified @var{file} in the same directories as macro files for the
-the @option{-m} command line option. If the file name to be included
-has the form @file{@var{name}.tmac} and it isn't found, @code{mso} tries
-to include @file{tmac.@var{name}} and vice versa.
+Identical to the @code{so} request except that @code{gtroff} searches
+for the specified @var{file} in the same directories as macro files for
+the the @option{-m} command line option. If the file name to be
+included has the form @file{@var{name}.tmac} and it isn't found,
+@code{mso} tries to include @file{tmac.@var{name}} and vice versa.
@endDefreq
@DefreqList {trf, file}
@@ -13065,8 +12993,8 @@ to include @file{tmac.@var{name}} and vice versa.
@cindex @code{trf} request, and copy-in mode
@cindex copy-in mode, and @code{trf} request
@cindex mode, copy-in, and @code{trf} request
-Transparently output the contents of @var{file}. Each line is output
-as if it were preceded by @code{\!}; however, the lines are @emph{not}
+Transparently output the contents of @var{file}. Each line is output as
+if it were preceded by @code{\!}; however, the lines are @emph{not}
subject to copy mode interpretation. If the file does not end with a
newline, then a newline is added (@code{trf} only). For example, to
define a macro@tie{}@code{x} containing the contents of
@@ -13081,24 +13009,24 @@ file@tie{}@file{f}, use
@endExample
@noindent
-The calls to @code{ev} prevent that the current partial input line becomes
-part of the diversion.
+The calls to @code{ev} prevent that the current partial input line
+becomes part of the diversion.
-Both @code{trf} and @code{cf}, when used in a diversion,
-embeds an object in the diversion which, when reread, causes the
-contents of @var{file} to be transparently copied through to the
-output. In @acronym{UNIX} @code{troff}, the contents of @var{file}
-is immediately copied through to the output regardless of whether there
-is a current diversion; this behaviour is so anomalous that it must be
-considered a bug.
+Both @code{trf} and @code{cf}, when used in a diversion, embeds an
+object in the diversion which, when reread, causes the contents of
+@var{file} to be transparently copied through to the output. In
+@acronym{UNIX} @code{troff}, the contents of @var{file} is immediately
+copied through to the output regardless of whether there is a current
+diversion; this behaviour is so anomalous that it must be considered a
+bug.
@cindex @code{trf} request, and invalid characters
@cindex characters, invalid for @code{trf} request
@cindex invalid characters for @code{trf} request
-While @code{cf} copies the contents of @var{file} completely unprocessed,
-@code{trf} disallows characters such as NUL that are not valid
-@code{gtroff} input characters (@pxref{Identifiers}).
+While @code{cf} copies the contents of @var{file} completely
+unprocessed, @code{trf} disallows characters such as NUL that are not
+valid @code{gtroff} input characters (@pxref{Identifiers}).
For @code{cf}, within a diversion, `completely unprocessed' means that
each line of a file to be inserted is handled as if it were preceded by
@@ -13111,18 +13039,16 @@ Both requests cause a line break.
@cindex processing next file (@code{nx})
@cindex file, processing next (@code{nx})
@cindex next file, processing (@code{nx})
-Force @code{gtroff} to continue processing of
-the file specified as an argument. If no argument is given, immediately
-jump to the end of file.
+Force @code{gtroff} to continue processing of the file specified as an
+argument. If no argument is given, immediately jump to the end of file.
@endDefreq
@Defreq {rd, [@Var{prompt} [@Var{arg1} @Var{arg2} @dots{}]]}
@cindex reading from standard input (@code{rd})
@cindex standard input, reading from (@code{rd})
@cindex input, standard, reading from (@code{rd})
-Read from standard input, and include what is read as though it
-were part of the input file. Text is read until a blank line
-is encountered.
+Read from standard input, and include what is read as though it were
+part of the input file. Text is read until a blank line is encountered.
If standard input is a TTY input device (keyboard), write @var{prompt}
to standard error, followed by a colon (or send BEL for a beep if no
@@ -13144,10 +13070,9 @@ This is bar.
@cindex form letters
@cindex letters, form
-Using the @code{nx} and @code{rd} requests,
-it is easy to set up form letters. The form
-letter template is constructed like this, putting the following lines
-into a file called @file{repeat.let}:
+Using the @code{nx} and @code{rd} requests, it is easy to set up form
+letters. The form letter template is constructed like this, putting the
+following lines into a file called @file{repeat.let}:
@Example
.ce
@@ -13166,9 +13091,9 @@ Body of letter.
@cindex @code{ex} request, used with @code{nx} and @code{rd}
@noindent
When this is run, a file containing the following lines should be
-redirected in. Note that requests included in this file are executed
-as though they were part of the form letter. The last block of input
-is the @code{ex} request which tells @code{groff} to stop processing. If
+redirected in. Note that requests included in this file are executed as
+though they were part of the form letter. The last block of input is
+the @code{ex} request which tells @code{groff} to stop processing. If
this was not there, @code{groff} would not know when to stop.
@Example
@@ -13188,19 +13113,20 @@ Dear Mr. Adollar,
@endExample
@Defreq {pi, pipe}
-Pipe the output of @code{gtroff} to the shell command(s)
-specified by @var{pipe}. This request must occur before
-@code{gtroff} has a chance to print anything.
+Pipe the output of @code{gtroff} to the shell command(s) specified by
+@var{pipe}. This request must occur before @code{gtroff} has a chance
+to print anything.
@cindex safer mode
@cindex mode, safer
@cindex unsafe mode
@cindex mode, unsafe
@code{pi} causes an error if used in safer mode (which is the default).
-Use @code{groff}'s or @code{troff}'s @option{-U} option to activate unsafe
-mode.
+Use @code{groff}'s or @code{troff}'s @option{-U} option to activate
+unsafe mode.
-Multiple calls to @code{pi} are allowed, acting as a chain. For example,
+Multiple calls to @code{pi} are allowed, acting as a chain. For
+example,
@Example
.pi foo
@@ -13226,12 +13152,12 @@ saved anyplace, so it is up to the user to do so.
@cindex mode, safer
@cindex unsafe mode
@cindex mode, unsafe
-This request causes an error if used in safer mode (which is the default).
-Use @code{groff}'s or @code{troff}'s @option{-U} option to activate unsafe
-mode.
+This request causes an error if used in safer mode (which is the
+default). Use @code{groff}'s or @code{troff}'s @option{-U} option to
+activate unsafe mode.
-For example, the following code fragment introduces the current time into a
-document:
+For example, the following code fragment introduces the current time
+into a document:
@cindex time, current
@cindex current time
@@ -13273,8 +13199,8 @@ of the @code{system()} function executed by the last @code{sy} request.
@cindex file, opening (@code{open})
@cindex appending to a file (@code{opena})
@cindex file, appending to (@code{opena})
-Open the specified @var{file} for writing and
-associates the specified @var{stream} with it.
+Open the specified @var{file} for writing and associates the specified
+@var{stream} with it.
The @code{opena} request is like @code{open}, but if the file exists,
append to it instead of truncating it.
@@ -13284,8 +13210,8 @@ append to it instead of truncating it.
@cindex unsafe mode
@cindex mode, unsafe
Both @code{open} and @code{opena} cause an error if used in safer mode
-(which is the default). Use @code{groff}'s or @code{troff}'s @option{-U}
-option to activate unsafe mode.
+(which is the default). Use @code{groff}'s or @code{troff}'s
+@option{-U} option to activate unsafe mode.
@endDefreq
@DefreqList {write, stream data}
@@ -13298,20 +13224,20 @@ option to activate unsafe mode.
@cindex mode, copy-in, and @code{writec} request
@cindex writing to file (@code{write}, @code{writec})
@cindex file, writing to (@code{write}, @code{writec})
-Write to the file associated with the specified @var{stream}.
-The stream must previously have
-been the subject of an open request. The remainder of the line is
-interpreted as the @code{ds} request reads its second argument: A
-leading @samp{"} is stripped, and it is read in copy-in mode.
+Write to the file associated with the specified @var{stream}. The
+stream must previously have been the subject of an open request. The
+remainder of the line is interpreted as the @code{ds} request reads its
+second argument: A leading @samp{"} is stripped, and it is read in
+copy-in mode.
-The @code{writec} request is like @code{write}, but only
-@code{write} appends a newline to the data.
+The @code{writec} request is like @code{write}, but only @code{write}
+appends a newline to the data.
@endDefreq
@Defreq {writem, stream xx}
@cindex @code{asciify} request, and @code{writem}
-Write the contents of the macro or string @var{xx}
-to the file associated with the specified @var{stream}.
+Write the contents of the macro or string @var{xx} to the file
+associated with the specified @var{stream}.
@cindex @code{writem} request, and copy-in mode
@cindex copy-in mode, and @code{writem} request
@@ -13325,9 +13251,8 @@ means a loss of information.
@Defreq {close, stream}
@cindex closing file (@code{close})
@cindex file, closing (@code{close})
-Close the specified @var{stream};
-the stream is no longer an acceptable argument to the
-@code{write} request.
+Close the specified @var{stream}; the stream is no longer an acceptable
+argument to the @code{write} request.
Here a simple macro to write an index entry.
@@ -13350,10 +13275,10 @@ Here a simple macro to write an index entry.
@cindex @code{\V}, and copy-in mode
@cindex copy-in mode, and @code{\V}
@cindex mode, copy-in, and @code{\V}
-Interpolate the contents of the specified environment variable
-@var{env} (one-character name@tie{}@var{e}, two-character name @var{ev})
-as returned by the function @code{getenv}. @code{\V} is interpreted
-in copy-in mode.
+Interpolate the contents of the specified environment variable @var{env}
+(one-character name@tie{}@var{e}, two-character name @var{ev}) as
+returned by the function @code{getenv}. @code{\V} is interpreted in
+copy-in mode.
@endDefesc
@@ -13370,8 +13295,8 @@ postprocessor. This is particularly useful for embedding
@DefreqList {device, xxx}
@DefescListEnd {\\X, ', xxx, '}
-Embeds its argument into the @code{gtroff}
-output preceded with @w{@samp{x X}}.
+Embeds its argument into the @code{gtroff} output preceded with
+@w{@samp{x X}}.
@cindex @code{\&}, in @code{\X}
@cindex @code{\)}, in @code{\X}
@@ -13397,10 +13322,12 @@ argument in copy mode (@pxref{Copy-in Mode}).
@pindex DESC@r{, and @code{use_charnames_in_special}}
@cindex @code{\X}, and special characters
If the @samp{use_charnames_in_special} keyword is set in the @file{DESC}
-file, special characters no longer cause an error; they are simply output
-verbatim. Additionally, the backslash is represented as @code{\\}.
+file, special characters no longer cause an error; they are simply
+output verbatim. Additionally, the backslash is represented as
+@code{\\}.
-@samp{use_charnames_in_special} is currently used by @code{grohtml} only.
+@samp{use_charnames_in_special} is currently used by @code{grohtml}
+only.
@endDefesc
@DefreqList {devicem, xx}
@@ -13410,12 +13337,12 @@ verbatim. Additionally, the backslash is represented as @code{\\}.
This is approximately equivalent to @samp{\X'\*[@var{name}]'}
(one-character name@tie{}@var{n}, two-character name @var{nm}).
However, the contents of the string or macro @var{name} are not
-interpreted; also it is permitted for @var{name} to have been defined
-as a macro and thus contain newlines (it is not permitted for the
-argument to @code{\X} to contain newlines). The inclusion of
-newlines requires an extension to the @acronym{UNIX} @code{troff}
-output format, and confuses drivers that do not know about this
-extension (@pxref{Device Control Commands}).
+interpreted; also it is permitted for @var{name} to have been defined as
+a macro and thus contain newlines (it is not permitted for the argument
+to @code{\X} to contain newlines). The inclusion of newlines requires
+an extension to the @acronym{UNIX} @code{troff} output format, and
+confuses drivers that do not know about this extension (@pxref{Device
+Control Commands}).
@endDefesc
@xref{Output Devices}.
@@ -13433,37 +13360,36 @@ categorized elsewhere in this manual.
@cindex printing line numbers (@code{nm})
@cindex line numbers, printing (@code{nm})
@cindex numbers, line, printing (@code{nm})
-Print line numbers.
-@var{start} is the line number of the @emph{next}
-output line. @var{inc} indicates which line numbers are printed.
-For example, the value@tie{}5 means to emit only line numbers which
-are multiples of@tie{}5; this defaults to@tie{}1. @var{space} is the
-space to be left between the number and the text; this defaults to
-one digit space. The fourth argument is the indentation of the line
-numbers, defaulting to zero. Both @var{space} and @var{indent} are
-given as multiples of digit spaces; they can be negative also.
-Without any arguments, line numbers are turned off.
+Print line numbers. @var{start} is the line number of the @emph{next}
+output line. @var{inc} indicates which line numbers are printed. For
+example, the value@tie{}5 means to emit only line numbers which are
+multiples of@tie{}5; this defaults to@tie{}1. @var{space} is the space
+to be left between the number and the text; this defaults to one digit
+space. The fourth argument is the indentation of the line numbers,
+defaulting to zero. Both @var{space} and @var{indent} are given as
+multiples of digit spaces; they can be negative also. Without any
+arguments, line numbers are turned off.
@code{gtroff} reserves three digit spaces for the line number (which is
printed right-justified) plus the amount given by @var{indent}; the
output lines are concatenated to the line numbers, separated by
-@var{space}, and @emph{without} reducing the line length. Depending
-on the value of the horizontal page offset (as set with the
-@code{po} request), line numbers which are longer than the reserved
-space stick out to the left, or the whole line is moved to the right.
+@var{space}, and @emph{without} reducing the line length. Depending on
+the value of the horizontal page offset (as set with the @code{po}
+request), line numbers which are longer than the reserved space stick
+out to the left, or the whole line is moved to the right.
Parameters corresponding to missing arguments are not changed; any
non-digit argument (to be more precise, any argument starting with a
character valid as a delimiter for identifiers) is also treated as
missing.
-If line numbering has been disabled with a call to @code{nm} without
-an argument, it can be reactivated with @samp{.nm +0}, using the
-previously active line numbering parameters.
+If line numbering has been disabled with a call to @code{nm} without an
+argument, it can be reactivated with @samp{.nm +0}, using the previously
+active line numbering parameters.
The parameters of @code{nm} are associated with the current environment
-(@pxref{Environments}). The current output line number is available
-in the number register @code{ln}.
+(@pxref{Environments}). The current output line number is available in
+the number register @code{ln}.
@Example
.po 1m
@@ -13499,8 +13425,8 @@ And here the result:
@endDefreq
@Defreq {nn, [@Var{skip}]}
-Temporarily turn off line numbering. The argument is the number
-of lines not to be numbered; this defaults to@tie{}1.
+Temporarily turn off line numbering. The argument is the number of
+lines not to be numbered; this defaults to@tie{}1.
@endDefreq
@Defreq {mc, glyph [@Var{dist}]}
@@ -13508,15 +13434,14 @@ of lines not to be numbered; this defaults to@tie{}1.
@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
-the text length plus @var{dist}), the margin character is directly
-appended to the lines.
+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 the text length plus
+@var{dist}), the margin character is directly appended to the lines.
-With no arguments the margin character is turned off.
-If this occurs before a break, no margin character is printed.
+With no arguments the margin character is turned off. If this occurs
+before a break, no margin character is printed.
For compatibility with @acronym{AT&T} @code{troff}, a call to @code{mc}
to set the margin character can't be undone immediately; at least one
@@ -13586,19 +13511,17 @@ But we can fake it with `\&'. |
@DefregListEnd {ury}
@cindex PostScript, bounding box
@cindex bounding box
-Retrieve the bounding box of the PostScript image
-found in @var{filename}.
-The file must conform to
-Adobe's @dfn{Document Structuring Conventions} (DSC);
-the command searches for a @code{%%BoundingBox} comment
-and extracts the bounding box values into the number registers
-@code{llx}, @code{lly}, @code{urx}, and @code{ury}.
-If an error occurs (for example, @code{psbb} cannot find
-the @code{%%BoundingBox} comment),
-it sets the four number registers to zero.
-
-The search path for @var{filename} can be controlled with the @option{-I}
-command line option.
+Retrieve the bounding box of the PostScript image found in
+@var{filename}. The file must conform to Adobe's @dfn{Document
+Structuring Conventions} (DSC); the command searches for a
+@code{%%BoundingBox} comment and extracts the bounding box values into
+the number registers @code{llx}, @code{lly}, @code{urx}, and @code{ury}.
+If an error occurs (for example, @code{psbb} cannot find the
+@code{%%BoundingBox} comment), it sets the four number registers to
+zero.
+
+The search path for @var{filename} can be controlled with the
+@option{-I} command line option.
@endDefreq
@@ -13613,32 +13536,32 @@ command line option.
@cindex node, output
@code{gtroff} processes input in three steps. One or more input
characters are converted to an @dfn{input token}.@footnote{Except the
-escapes @code{\f}, @code{\F}, @code{\H}, @code{\m}, @code{\M}, @code{\R},
-@code{\s}, and @code{\S} which are processed immediately if not in
-copy-in mode.} Then, one or more input tokens are converted to an
-@dfn{output node}. Finally, output nodes are converted to the
+escapes @code{\f}, @code{\F}, @code{\H}, @code{\m}, @code{\M},
+@code{\R}, @code{\s}, and @code{\S} which are processed immediately if
+not in copy-in mode.} Then, one or more input tokens are converted to
+an @dfn{output node}. Finally, output nodes are converted to the
intermediate output language understood by all output devices.
-Actually, before step one happens, @code{gtroff} converts certain
-escape sequences into reserved input characters (not accessible by
-the user); such reserved characters are used for other internal
-processing also -- this is the very reason why not all characters
-are valid input. @xref{Identifiers}, for more on this topic.
+Actually, before step one happens, @code{gtroff} converts certain escape
+sequences into reserved input characters (not accessible by the user);
+such reserved characters are used for other internal processing also --
+this is the very reason why not all characters are valid input.
+@xref{Identifiers}, for more on this topic.
For example, the input string @samp{fi\[:u]} is converted into a
character token @samp{f}, a character token @samp{i}, and a special
token @samp{:u} (representing u@tie{}umlaut). Later on, the character
tokens @samp{f} and @samp{i} are merged to a single output node
-representing the ligature glyph @samp{fi} (provided the current font
-has a glyph for this ligature); the same happens with @samp{:u}. All
-output glyph nodes are `processed' which means that they are invariably
-associated with a given font, font size, advance width, etc. During
-the formatting process, @code{gtroff} itself adds various nodes to
-control the data flow.
+representing the ligature glyph @samp{fi} (provided the current font has
+a glyph for this ligature); the same happens with @samp{:u}. All output
+glyph nodes are `processed' which means that they are invariably
+associated with a given font, font size, advance width, etc. During the
+formatting process, @code{gtroff} itself adds various nodes to control
+the data flow.
-Macros, diversions, and strings collect elements in two chained lists:
-a list of input tokens which have been passed unprocessed, and a list
-of output nodes. Consider the following the diversion.
+Macros, diversions, and strings collect elements in two chained lists: a
+list of input tokens which have been passed unprocessed, and a list of
+output nodes. Consider the following the diversion.
@Example
.di xxx
@@ -13669,9 +13592,9 @@ It contains these elements.
@cindex @code{\v}, internal representation
@noindent
Elements 1, 7, and@tie{}8 are inserted by @code{gtroff}; the latter two
-(which are always present) specify the vertical extent of the last
-line, possibly modified by @code{\x}. The @code{br} request finishes
-the current partial line, inserting a newline input token which is
+(which are always present) specify the vertical extent of the last line,
+possibly modified by @code{\x}. The @code{br} request finishes the
+current partial line, inserting a newline input token which is
subsequently converted to a space when the diversion is reread. Note
that the word space node has a fixed width which isn't stretchable
anymore. To convert horizontal space nodes back to input tokens, use
@@ -13680,18 +13603,18 @@ the @code{unformat} request.
Macros only contain elements in the token list (and the node list is
empty); diversions and strings can contain elements in both lists.
-Note that the @code{chop} request simply reduces the number of elements in a
-macro, string, or diversion by one. Exceptions are @dfn{compatibility save}
-and @dfn{compatibility ignore} input tokens which are ignored. The
-@code{substring} request also ignores those input tokens.
+Note that the @code{chop} request simply reduces the number of elements
+in a macro, string, or diversion by one. Exceptions are
+@dfn{compatibility save} and @dfn{compatibility ignore} input tokens
+which are ignored. The @code{substring} request also ignores those
+input tokens.
-Some requests like @code{tr} or @code{cflags} work on glyph
-identifiers only; this means that the associated glyph can be changed
-without destroying this association. This can be very helpful for
-substituting glyphs. In the following example, we assume that
-glyph @samp{foo} isn't available by default, so we provide a
-substitution using the @code{fchar} request and map it to input
-character @samp{x}.
+Some requests like @code{tr} or @code{cflags} work on glyph identifiers
+only; this means that the associated glyph can be changed without
+destroying this association. This can be very helpful for substituting
+glyphs. In the following example, we assume that glyph @samp{foo} isn't
+available by default, so we provide a substitution using the
+@code{fchar} request and map it to input character @samp{x}.
@Example
.fchar \[foo] foo
@@ -13699,8 +13622,8 @@ character @samp{x}.
@endExample
@noindent
-Now let us assume that we install an additional special font
-@samp{bar} which has glyph @samp{foo}.
+Now let us assume that we install an additional special font @samp{bar}
+which has glyph @samp{foo}.
@Example
.special bar
@@ -13708,10 +13631,10 @@ Now let us assume that we install an additional special font
@endExample
@noindent
-Since glyphs defined with @code{fchar} are searched before glyphs
-in special fonts, we must call @code{rchar} to remove the definition
-of the fallback glyph. Anyway, the translation is still active;
-@samp{x} now maps to the real glyph @samp{foo}.
+Since glyphs defined with @code{fchar} are searched before glyphs in
+special fonts, we must call @code{rchar} to remove the definition of the
+fallback glyph. Anyway, the translation is still active; @samp{x} now
+maps to the real glyph @samp{foo}.
@cindex compatibility mode, and parameters
@cindex mode, compatibility, and parameters
@@ -13778,8 +13701,8 @@ Note that other @code{troff} implementations (including the original
@DefreqListEnd {tmc, string}
@cindex printing to stderr (@code{tm}, @code{tm1}, @code{tmc})
@cindex stderr, printing to (@code{tm}, @code{tm1}, @code{tmc})
-Send @var{string} to the standard error output;
-this is very useful for printing debugging messages among other things.
+Send @var{string} to the standard error output; this is very useful for
+printing debugging messages among other things.
@cindex @code{tm} request, and copy-in mode
@cindex copy-in mode, and @code{tm} request
@@ -13796,22 +13719,22 @@ The @code{tm} request ignores leading spaces of @var{string}; @code{tm1}
handles its argument similar to the @code{ds} request: a leading double
quote in @var{string} is stripped to allow initial blanks.
-The @code{tmc} request is similar to @code{tm1} but does
-not append a newline (as is done in @code{tm} and @code{tm1}).
+The @code{tmc} request is similar to @code{tm1} but does not append a
+newline (as is done in @code{tm} and @code{tm1}).
@endDefreq
@Defreq {ab, [@Var{string}]}
@cindex aborting (@code{ab})
-Similar to the @code{tm} request, except that
-it causes @code{gtroff} to stop processing. With no argument it
-prints @samp{User Abort.} to standard error.
+Similar to the @code{tm} request, except that it causes @code{gtroff} to
+stop processing. With no argument it prints @samp{User Abort.} to
+standard error.
@endDefreq
@Defreq {ex, }
@cindex @code{ex} request, use in debugging
@cindex exiting (@code{ex})
-The @code{ex} request also causes @code{gtroff} to stop processing;
-see also @ref{I/O}.
+The @code{ex} request also causes @code{gtroff} to stop processing; see
+also @ref{I/O}.
@endDefreq
When doing something involved it is useful to leave the debugging
@@ -13844,29 +13767,29 @@ defined environments (both named and numbered) on @code{stderr}.
@cindex symbol table, dumping (@code{pm})
Print the entire symbol table on @code{stderr}. Names of all defined
macros, strings, and diversions are print together with their size in
-bytes. Since @code{gtroff} sometimes adds nodes by itself, the
-returned size can be larger than expected.
+bytes. Since @code{gtroff} sometimes adds nodes by itself, the returned
+size can be larger than expected.
This request differs from @acronym{UNIX} @code{troff}: @code{gtroff}
-reports the sizes of diversions, ignores an additional argument to
-print only the total of the sizes, and the size isn't returned in
-blocks of 128 characters.
+reports the sizes of diversions, ignores an additional argument to print
+only the total of the sizes, and the size isn't returned in blocks of
+128 characters.
@endDefreq
@Defreq {pnr, }
@cindex dumping number registers (@code{pnr})
@cindex number registers, dumping (@code{pnr})
-Print the names and contents of all
-currently defined number registers on @code{stderr}.
+Print the names and contents of all currently defined number registers
+on @code{stderr}.
@endDefreq
@Defreq {ptr, }
@cindex dumping traps (@code{ptr})
@cindex traps, dumping (@code{ptr})
-Print the names and positions of all traps
-(not including input line traps and diversion traps) on @code{stderr}.
-Empty slots in the page trap list are printed as well, because they can
-affect the priority of subsequently planted traps.
+Print the names and positions of all traps (not including input line
+traps and diversion traps) on @code{stderr}. Empty slots in the page
+trap list are printed as well, because they can affect the priority of
+subsequently planted traps.
@endDefreq
@Defreq {fl, }
@@ -13874,11 +13797,11 @@ affect the priority of subsequently planted traps.
@cindex output, flush (@code{fl})
@cindex interactive use of @code{gtroff}
@cindex @code{gtroff}, interactive use
-Instruct @code{gtroff} to flush its output immediately. The intent
-is for interactive use, but this behaviour is currently not
-implemented in @code{gtroff}. Contrary to @acronym{UNIX} @code{troff},
-TTY output is sent to a device driver also (@code{grotty}), making it
-non-trivial to communicate interactively.
+Instruct @code{gtroff} to flush its output immediately. The intent is
+for interactive use, but this behaviour is currently not implemented in
+@code{gtroff}. Contrary to @acronym{UNIX} @code{troff}, TTY output is
+sent to a device driver also (@code{grotty}), making it non-trivial to
+communicate interactively.
This request causes a line break.
@endDefreq
@@ -13916,28 +13839,27 @@ this request on each error and warning.
@Defreg {slimit}
@cindex input stack, setting limit
-Use the @code{slimit} number register
-to set the maximum number of objects on the input stack.
-If @code{slimit} is less than or equal to@tie{}0,
-there is no limit set.
-With no limit, a buggy recursive macro can exhaust virtual memory.
+Use the @code{slimit} number register to set the maximum number of
+objects on the input stack. If @code{slimit} is less than or equal
+to@tie{}0, there is no limit set. With no limit, a buggy recursive
+macro can exhaust virtual memory.
The default value is 1000; this is a compile-time constant.
@endDefreg
@Defreq {warnscale, si}
-Set the scaling indicator used in warnings to @var{si}. Valid values for
-@var{si} are @samp{u}, @samp{i}, @samp{c}, @samp{p}, and @samp{P}. At
-startup, it is set to @samp{i}.
+Set the scaling indicator used in warnings to @var{si}. Valid values
+for @var{si} are @samp{u}, @samp{i}, @samp{c}, @samp{p}, and @samp{P}.
+At startup, it is set to @samp{i}.
@endDefreq
@Defreq {spreadwarn, [@Var{limit}]}
Make @code{gtroff} emit a warning if the additional space inserted for
each space between words in an output line is larger or equal to
-@var{limit}. A negative value is changed to zero; no argument toggles the
-warning on and off without changing @var{limit}. The default scaling
-indicator is @samp{m}. At startup, @code{spreadwarn} is deactivated, and
-@var{limit} is set to 3@dmn{m}.
+@var{limit}. A negative value is changed to zero; no argument toggles
+the warning on and off without changing @var{limit}. The default
+scaling indicator is @samp{m}. At startup, @code{spreadwarn} is
+deactivated, and @var{limit} is set to 3@dmn{m}.
For example,
@@ -14049,8 +13971,8 @@ current diversion.
@cindex @code{\*}, and warnings
Use of undefined strings, macros and diversions. When an undefined
string, macro, or diversion is used, that string is automatically
-defined as empty. So, in most cases, at most one warning is given
-for each name.
+defined as empty. So, in most cases, at most one warning is given for
+each name.
@item reg
@itemx 1024
@@ -14092,9 +14014,9 @@ Unrecognized escape sequences. When an unrecognized escape sequence
Missing space between a request or macro and its argument. This warning
is given when an undefined name longer than two characters is
encountered, and the first two characters of the name make a defined
-name. The request or macro is not invoked. When this warning is
-given, no macro is automatically defined. This is enabled by default.
-This warning never occurs in compatibility mode.
+name. The request or macro is not invoked. When this warning is given,
+no macro is automatically defined. This is enabled by default. This
+warning never occurs in compatibility mode.
@item font
@itemx 131072
@@ -14145,13 +14067,13 @@ interprets
@cindex @code{\n}, incompatibilities with @acronym{AT&T} @code{troff}
@noindent
as defining a string @samp{ab} with contents @samp{cd}. Normally, GNU
-@code{troff} interprets this as a call of a macro named
-@code{dsabcd}. Also @acronym{UNIX} @code{troff} interprets
-@code{\*[} or @code{\n[} as references to a string or number register
-called @samp{[}. In GNU @code{troff}, however, this is normally
-interpreted as the start of a long name. In compatibility mode GNU
-@code{troff} interprets long names in the traditional way
-(which means that they are not recognized as names).
+@code{troff} interprets this as a call of a macro named @code{dsabcd}.
+Also @acronym{UNIX} @code{troff} interprets @code{\*[} or @code{\n[} as
+references to a string or number register called @samp{[}. In GNU
+@code{troff}, however, this is normally interpreted as the start of a
+long name. In compatibility mode GNU @code{troff} interprets long names
+in the traditional way (which means that they are not recognized as
+names).
@DefreqList {cp, [@Var{n}]}
@DefreqItem {do, cmd}
@@ -14159,28 +14081,27 @@ interpreted as the start of a long name. In compatibility mode GNU
If @var{n} is missing or non-zero, turn on compatibility mode;
otherwise, turn it off.
-The read-only number register @code{.C} is@tie{}1 if compatibility mode is
-on, 0@tie{}otherwise.
+The read-only number register @code{.C} is@tie{}1 if compatibility mode
+is on, 0@tie{}otherwise.
-Compatibility mode can be also turned on with the @option{-C} command line
-option.
+Compatibility mode can be also turned on with the @option{-C} command
+line option.
-The @code{do} request turns off compatibility mode
-while executing its arguments as a @code{gtroff} command. However, it
-does not turn off compatibility mode while processing the macro itself.
-To do that, use the @code{de1} request (or manipulate the @code{.C}
-register manually). @xref{Writing Macros}.
+The @code{do} request turns off compatibility mode while executing its
+arguments as a @code{gtroff} command. However, it does not turn off
+compatibility mode while processing the macro itself. To do that, use
+the @code{de1} request (or manipulate the @code{.C} register manually).
+@xref{Writing Macros}.
@Example
.do fam T
@endExample
@noindent
-executes the @code{fam} request when compatibility mode
-is enabled.
+executes the @code{fam} request when compatibility mode is enabled.
-@code{gtroff} restores the previous compatibility setting
-before interpreting any files sourced by the @var{cmd}.
+@code{gtroff} restores the previous compatibility setting before
+interpreting any files sourced by the @var{cmd}.
@endDefreq
@cindex input level in delimited arguments
@@ -14270,18 +14191,17 @@ Sizes}, for more information.
@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 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 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 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,
+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 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 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,
@Example
.di x
@@ -14299,8 +14219,8 @@ constructed might have had. For example,
@cindex transparent output, incompatibilities with @acronym{AT&T} @code{troff}
@cindex output, transparent, incompatibilities with @acronym{AT&T} @code{troff}
@noindent
-prints @samp{\\} in GNU @code{troff}; each pair of input backslashes
-is turned into one output backslash and the resulting output backslashes
+prints @samp{\\} in GNU @code{troff}; each pair of input backslashes is
+turned into one output backslash and the resulting output backslashes
are not interpreted as escape characters when they are reread.
@acronym{UNIX} @code{troff} would interpret them as escape characters
when they were reread and would end up printing one @samp{\}. The
@@ -14311,9 +14231,9 @@ diversion; it also works in both GNU @code{troff} and @acronym{UNIX}
@code{troff}.@footnote{To be completely independent of the current
escape character, use @code{\(rs} which represents a reverse solidus
(backslash) glyph.} To store, for some reason, an escape sequence in a
-diversion that is interpreted when the diversion is reread, either
-use the traditional @code{\!} transparent output facility, or, if this
-is unsuitable, the new @code{\?} escape sequence.
+diversion that is 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}, and @ref{Gtroff Internals}, for more information.
@@ -14560,10 +14480,11 @@ is available as an extra package from the following address:
@c character. Literally, this is printing an underline character, then
@c moving back one character position, and printing the actual character
@c at the same position as the underline character (similar to a
-@c typewriter). Usually, a modern terminal can't interpret this (and the
-@c original Teletype machines for which this sequence was appropriate are
-@c no longer in use). You need a pager program like @code{less} which
-@c translates this into ISO 6429 SGR sequences to control terminals.
+@c typewriter). Usually, a modern terminal can't interpret this (and
+@c the original Teletype machines for which this sequence was
+@c appropriate are no longer in use). You need a pager program like
+@c @code{less} which translates this into ISO 6429 SGR sequences to
+@c control terminals.
@c =====================================================================
@@ -14697,9 +14618,9 @@ is available as an extra package from the following address:
@DefmpregList {ps4html, grohtml}
@DefstrListEnd {www-image-template, grohtml}
The registers @code{ps4html} and @code{www-image-template} are defined
-by the @code{pre-grohtml} preprocessor. @code{pre-grohtml} reads in
-the @code{troff} input, marks up the inline equations and passes the
-result firstly to
+by the @code{pre-grohtml} preprocessor. @code{pre-grohtml} reads in the
+@code{troff} input, marks up the inline equations and passes the result
+firstly to
@Example
troff -Tps -rps4html=1 -dwww-image-template=@var{template}
@@ -14723,8 +14644,8 @@ troff -Txhtml
The PostScript device is used to create all the image files (for
@option{-Thtml}; if @option{-Txhtml} is used, all equations are passed
to @code{geqn} to produce @acronym{MathML}, and the register
-@code{ps4html} enables the macro sets to ignore floating keeps,
-footers, and headings.
+@code{ps4html} enables the macro sets to ignore floating keeps, footers,
+and headings.
The register @code{www-image-template} is set to the user specified
template name or the default name.
@@ -14780,15 +14701,15 @@ following two sections describe their format.
@cindex output, @code{gtroff}
This section describes the intermediate output format of GNU
-@code{troff}. This output is produced by a run of @code{gtroff}
-before it is fed into a device postprocessor program.
+@code{troff}. This output is produced by a run of @code{gtroff} before
+it is fed into a device postprocessor program.
As @code{groff} is a wrapper program around @code{gtroff} that
automatically calls a postprocessor, this output does not show up
-normally. This is why it is called @dfn{intermediate}.
-@code{groff} provides the option @option{-Z} to inhibit postprocessing,
-such that the produced intermediate output is sent to standard output
-just like calling @code{gtroff} manually.
+normally. This is why it is called @dfn{intermediate}. @code{groff}
+provides the option @option{-Z} to inhibit postprocessing, such that the
+produced intermediate output is sent to standard output just like
+calling @code{gtroff} manually.
@cindex troff output
@cindex output, troff
@@ -14799,12 +14720,12 @@ Here, the term @dfn{troff output} describes what is output by
that is accepted by the parser that prepares this output for the
postprocessors. This parser is smarter on whitespace and implements
obsolete elements for compatibility, otherwise both formats are the
-same.@footnote{The parser and postprocessor for intermediate output
-can be found in the file@*
+same.@footnote{The parser and postprocessor for intermediate output can
+be found in the file@*
@file{@var{groff-source-dir}/src/libs/libdriver/input.cpp}.}
-The main purpose of the intermediate output concept is to facilitate
-the development of postprocessors by providing a common programming
+The main purpose of the intermediate output concept is to facilitate the
+development of postprocessors by providing a common programming
interface for all devices. It has a language of its own that is
completely different from the @code{gtroff} language. While the
@code{gtroff} language is a high-level programming language for text
@@ -14832,11 +14753,11 @@ used any longer by @code{gtroff}.
During the run of @code{gtroff}, the input data is cracked down to the
information on what has to be printed at what position on the intended
device. So the language of the intermediate output format can be quite
-small. Its only elements are commands with and without arguments.
-In this section, the term @dfn{command} always refers to the intermediate
-output language, and never to the @code{gtroff} language used for document
-formatting. There are commands for positioning and text writing, for drawing, and
-for device controlling.
+small. Its only elements are commands with and without arguments. In
+this section, the term @dfn{command} always refers to the intermediate
+output language, and never to the @code{gtroff} language used for
+document formatting. There are commands for positioning and text
+writing, for drawing, and for device controlling.
@menu
* Separation::
@@ -14847,12 +14768,12 @@ for device controlling.
@node Separation, Argument Units, Language Concepts, Language Concepts
@subsubsection Separation
-@acronym{AT&T} @code{troff} output has strange requirements on whitespace.
-The @code{gtroff} output parser, however, is smart about whitespace by
-making it maximally optional. The whitespace characters, i.e., the
-tab, space, and newline characters, always have a syntactical meaning.
-They are never printable because spacing within the output is always
-done by positioning commands.
+@acronym{AT&T} @code{troff} output has strange requirements on
+whitespace. The @code{gtroff} output parser, however, is smart about
+whitespace by making it maximally optional. The whitespace characters,
+i.e., the tab, space, and newline characters, always have a syntactical
+meaning. They are never printable because spacing within the output is
+always done by positioning commands.
Any sequence of space or tab characters is treated as a single
@dfn{syntactical space}. It separates commands and arguments, but is
@@ -14862,52 +14783,52 @@ variable-length command names, arguments, argument lists, or command
clusters meet. Commands and arguments with a known, fixed length need
not be separated by syntactical space.
-A line break is a syntactical element, too. Every command argument can be
-followed by whitespace, a comment, or a newline character. Thus a
+A line break is a syntactical element, too. Every command argument can
+be followed by whitespace, a comment, or a newline character. Thus a
@dfn{syntactical line break} is defined to consist of optional
syntactical space that is optionally followed by a comment, and a
newline character.
-The normal commands, those for positioning and text, consist of a
-single letter taking a fixed number of arguments. For historical reasons,
-the parser allows to stack such commands on the same line, but
-fortunately, in @code{gtroff}'s intermediate output, every command with
-at least one argument is followed by a line break, thus providing
-excellent readability.
-
-The other commands -- those for drawing and device controlling --
-have a more complicated structure; some recognize long command names,
-and some take a variable number of arguments. So all @samp{D} and
-@samp{x} commands were designed to request a syntactical line break
-after their last argument. Only one command, @w{@samp{x X}},
-has an argument that can stretch over several lines; all other
-commands must have all of their arguments on the same line as the
-command, i.e., the arguments may not be split by a line break.
-
-Empty lines (these are lines containing only space and/or a comment), can
-occur everywhere. They are just ignored.
+The normal commands, those for positioning and text, consist of a single
+letter taking a fixed number of arguments. For historical reasons, the
+parser allows to stack such commands on the same line, but fortunately,
+in @code{gtroff}'s intermediate output, every command with at least one
+argument is followed by a line break, thus providing excellent
+readability.
+
+The other commands -- those for drawing and device controlling -- have a
+more complicated structure; some recognize long command names, and some
+take a variable number of arguments. So all @samp{D} and @samp{x}
+commands were designed to request a syntactical line break after their
+last argument. Only one command, @w{@samp{x X}}, has an argument that
+can stretch over several lines; all other commands must have all of
+their arguments on the same line as the command, i.e., the arguments may
+not be split by a line break.
+
+Empty lines (these are lines containing only space and/or a comment),
+can occur everywhere. They are just ignored.
@node Argument Units, Document Parts, Separation, Language Concepts
@subsubsection Argument Units
Some commands take integer arguments that are assumed to represent
-values in a measurement unit, but the letter for the corresponding
-scale indicator is not written with the output command arguments.
-Most commands assume the scale indicator @samp{u}, the basic unit of
-the device, some use @samp{z}, the scaled point unit of the device,
-while others, such as the color commands, expect plain integers.
+values in a measurement unit, but the letter for the corresponding scale
+indicator is not written with the output command arguments. Most
+commands assume the scale indicator @samp{u}, the basic unit of the
+device, some use @samp{z}, the scaled point unit of the device, while
+others, such as the color commands, expect plain integers.
Note that single characters can have the eighth bit set, as can the
names of fonts and special characters. The names of characters and
-fonts can be of arbitrary length. A character that is to be printed
-is always in the current font.
+fonts can be of arbitrary length. A character that is to be printed is
+always in the current font.
-A string argument is always terminated by the next whitespace
-character (space, tab, or newline); an embedded @samp{#} character is
-regarded as part of the argument, not as the beginning of a comment
-command. An integer argument is already terminated by the next
-non-digit character, which then is regarded as the first character of
-the next argument or command.
+A string argument is always terminated by the next whitespace character
+(space, tab, or newline); an embedded @samp{#} character is regarded as
+part of the argument, not as the beginning of a comment command. An
+integer argument is already terminated by the next non-digit character,
+which then is regarded as the first character of the next argument or
+command.
@node Document Parts, , Argument Units, Language Concepts
@subsubsection Document Parts
@@ -14915,9 +14836,9 @@ the next argument or command.
A correct intermediate output document consists of two parts, the
@dfn{prologue} and the @dfn{body}.
-The task of the prologue is to set the general device parameters
-using three exactly specified commands. @code{gtroff}'s prologue
-is guaranteed to consist of the following three lines (in that order):
+The task of the prologue is to set the general device parameters using
+three exactly specified commands. @code{gtroff}'s prologue is
+guaranteed to consist of the following three lines (in that order):
@Example
x T @var{device}
@@ -14928,21 +14849,20 @@ x init
@noindent
with the arguments set as outlined in @ref{Device Control Commands}.
Note that the parser for the intermediate output format is able to
-swallow additional whitespace and comments as well even in the
-prologue.
+swallow additional whitespace and comments as well even in the prologue.
The body is the main section for processing the document data.
-Syntactically, it is a sequence of any commands different from the
-ones used in the prologue. Processing is terminated as soon as the
-first @w{@samp{x stop}} command is encountered; the last line of any
+Syntactically, it is a sequence of any commands different from the ones
+used in the prologue. Processing is terminated as soon as the first
+@w{@samp{x stop}} command is encountered; the last line of any
@code{gtroff} intermediate output always contains such a command.
Semantically, the body is page oriented. A new page is started by a
-@samp{p} command. Positioning, writing, and drawing commands are
-always done within the current page, so they cannot occur before the
-first @samp{p} command. Absolute positioning (by the @samp{H} and
-@samp{V} commands) is done relative to the current page; all other
-positioning is done relative to the current location within this page.
+@samp{p} command. Positioning, writing, and drawing commands are always
+done within the current page, so they cannot occur before the first
+@samp{p} command. Absolute positioning (by the @samp{H} and @samp{V}
+commands) is done relative to the current page; all other positioning is
+done relative to the current location within this page.
@c ---------------------------------------------------------------------
@@ -14965,8 +14885,8 @@ This section describes all intermediate output commands, both from
@table @code
@item #@var{anything}@angles{end of line}
-A comment. Ignore any characters from the @samp{#} character up to
-the next newline character.
+A comment. Ignore any characters from the @samp{#} character up to the
+next newline character.
This command is the only possibility for commenting in the intermediate
output. Each comment can be preceded by arbitrary syntactical space;
@@ -14977,15 +14897,15 @@ every command can be terminated by a comment.
@subsubsection Simple Commands
The commands in this subsection have a command code consisting of a
-single character, taking a fixed number of arguments. Most of them
-are commands for positioning and text writing. These commands are
-smart about whitespace. Optionally, syntactical space can be inserted
-before, after, and between the command letter and its arguments.
-All of these commands are stackable, i.e., they can be preceded by
-other simple commands or followed by arbitrary other commands on the
-same line. A separating syntactical space is only necessary when two
-integer arguments would clash or if the preceding argument ends with a
-string argument.
+single character, taking a fixed number of arguments. Most of them are
+commands for positioning and text writing. These commands are smart
+about whitespace. Optionally, syntactical space can be inserted before,
+after, and between the command letter and its arguments. All of these
+commands are stackable, i.e., they can be preceded by other simple
+commands or followed by arbitrary other commands on the same line. A
+separating syntactical space is only necessary when two integer
+arguments would clash or if the preceding argument ends with a string
+argument.
@table @code
@ignore
@@ -15008,24 +14928,24 @@ stack as the actual device configuration data.
@end ignore
@item C @var{xxx}@angles{whitespace}
-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.
+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{g}
-Print glyph@tie{}@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.
+Print glyph@tie{}@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@tie{}@var{n} (a non-negative integer).
@item H @var{n}
Move right to the absolute vertical position@tie{}@var{n} (a
-non-negative integer in basic units @samp{u} relative to left edge
-of current page.
+non-negative integer in basic units @samp{u} relative to left edge of
+current page.
@item h @var{n}
Move @var{n} (a non-negative integer) basic units @samp{u} horizontally
@@ -15036,11 +14956,11 @@ values for @var{n} also, but @code{gtroff} doesn't use this.
Set the color for text (glyphs), line drawing, and the outline of
graphic objects using different color schemes; the analoguous command
for the filling color of graphic objects is @samp{DF}. The color
-components are specified as integer arguments between 0 and 65536.
-The number of color components and their meaning vary for the
-different color schemes. These commands are generated by
-@code{gtroff}'s escape sequence @code{\m}. No position changing.
-These commands are a @code{gtroff} extension.
+components are specified as integer arguments between 0 and 65536. The
+number of color components and their meaning vary for the different
+color schemes. These commands are generated by @code{gtroff}'s escape
+sequence @code{\m}. No position changing. These commands are a
+@code{gtroff} extension.
@table @code
@item mc @var{cyan} @var{magenta} @var{yellow}
@@ -15048,16 +14968,16 @@ Set color using the CMY color scheme, having the 3@tie{}color components
@var{cyan}, @var{magenta}, and @var{yellow}.
@item md
-Set color to the default color value (black in most cases).
-No component arguments.
+Set color to the default color value (black in most cases). No
+component arguments.
@item mg @var{gray}
-Set color to the shade of gray given by the argument, an integer
-between 0 (black) and 65536 (white).
+Set color to the shade of gray given by the argument, an integer between
+0 (black) and 65536 (white).
@item mk @var{cyan} @var{magenta} @var{yellow} @var{black}
-Set color using the CMYK color scheme, having the 4@tie{}color components
-@var{cyan}, @var{magenta}, @var{yellow}, and @var{black}.
+Set color using the CMYK color scheme, having the 4@tie{}color
+components @var{cyan}, @var{magenta}, @var{yellow}, and @var{black}.
@item mr @var{red} @var{green} @var{blue}
Set color using the RGB color scheme, having the 3@tie{}color components
@@ -15069,20 +14989,20 @@ Print glyph with index@tie{}@var{n} (a non-negative integer) of the
current font. This command is a @code{gtroff} extension.
@item n @var{b} @var{a}
-Inform the device about a line break, but no positioning is done by
-this command. In @acronym{AT&T} @code{troff}, the integer arguments
-@var{b} and@tie{}@var{a} informed about the space before and after the
-current line to make the intermediate output more human readable
-without performing any action. In @code{groff}, they are just ignored, but
-they must be provided for compatibility reasons.
+Inform the device about a line break, but no positioning is done by this
+command. In @acronym{AT&T} @code{troff}, the integer arguments @var{b}
+and@tie{}@var{a} informed about the space before and after the current
+line to make the intermediate output more human readable without
+performing any action. In @code{groff}, they are just ignored, but they
+must be provided for compatibility reasons.
@item p @var{n}
Begin a new page in the outprint. The page number is set
to@tie{}@var{n}. This page is completely independent of pages formerly
processed even if those have the same page number. The vertical
position on the outprint is automatically set to@tie{}0. All
-positioning, writing, and drawing is always done relative to a page,
-so a @samp{p} command must be issued before any of these commands.
+positioning, writing, and drawing is always done relative to a page, so
+a @samp{p} command must be issued before any of these commands.
@item s @var{n}
Set point size to @var{n}@tie{}scaled points (this is unit @samp{z}).
@@ -15092,32 +15012,30 @@ Set point size to @var{n}@tie{}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} 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 glyph should be printed at the current
-position, the current horizontal position should then be increased by
-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 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}).
+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 glyph should be printed at the current position,
+the current horizontal position should then be increased by 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 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 glyph, the current
-horizontal position is increased by the sum of the width of that
-glyph and@tie{}@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}).
+Print word with track kerning. This is the same as the @samp{t} command
+except that after printing each glyph, the current horizontal position
+is increased by the sum of the width of that glyph and@tie{}@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}).
@item V @var{n}
-Move down to the absolute vertical position@tie{}@var{n} (a
-non-negative integer in basic units @samp{u}) relative to upper edge
-of current page.
+Move down to the absolute vertical position@tie{}@var{n} (a non-negative
+integer in basic units @samp{u}) relative to upper edge of current page.
@item v @var{n}
Move @var{n}@tie{}basic units @samp{u} down (@var{n} is a non-negative
@@ -15125,51 +15043,49 @@ integer). The original @acronym{UNIX} troff manual allows negative
values for @var{n} also, but @code{gtroff} doesn't use this.
@item w
-Informs about a paddable white space to increase readability.
-The spacing itself must be performed explicitly by a move command.
+Informs about a paddable white space to increase readability. The
+spacing itself must be performed explicitly by a move command.
@end table
@node Graphics Commands, Device Control Commands, Simple Commands, Command Reference
@subsubsection Graphics Commands
-Each graphics or drawing command in the intermediate output starts
-with the letter @samp{D}, followed by one or two characters that
-specify a subcommand; this is followed by a fixed or variable number
-of integer arguments that are separated by a single space character.
-A @samp{D} command may not be followed by another command on the same line
-(apart from a comment), so each @samp{D} command is terminated by a
-syntactical line break.
+Each graphics or drawing command in the intermediate output starts with
+the letter @samp{D}, followed by one or two characters that specify a
+subcommand; this is followed by a fixed or variable number of integer
+arguments that are separated by a single space character. A @samp{D}
+command may not be followed by another command on the same line (apart
+from a comment), so each @samp{D} command is terminated by a syntactical
+line break.
@code{gtroff} output follows the classical spacing rules (no space
-between command and subcommand, all arguments are preceded by a
-single space character), but the parser allows optional space between
-the command letters and makes the space before the first argument
-optional. As usual, each space can be any sequence of tab and space
-characters.
-
-Some graphics commands can take a variable number of arguments.
-In this case, they are integers representing a size measured in basic
-units @samp{u}. The arguments called @var{h1}, @var{h2}, @dots{},
-@var{hn} stand for horizontal distances where positive means right,
-negative left. The arguments called @var{v1}, @var{v2}, @dots{},
-@var{vn} stand for vertical distances where positive means down,
-negative up. All these distances are offsets relative to the current
-location.
+between command and subcommand, all arguments are preceded by a single
+space character), but the parser allows optional space between the
+command letters and makes the space before the first argument optional.
+As usual, each space can be any sequence of tab and space characters.
+
+Some graphics commands can take a variable number of arguments. In this
+case, they are integers representing a size measured in basic units
+@samp{u}. The arguments called @var{h1}, @var{h2}, @dots{}, @var{hn}
+stand for horizontal distances where positive means right, negative
+left. The arguments called @var{v1}, @var{v2}, @dots{}, @var{vn} stand
+for vertical distances where positive means down, negative up. All
+these distances are offsets relative to the current location.
Each graphics command directly corresponds to a similar @code{gtroff}
@code{\D} escape sequence. @xref{Drawing Requests}.
-Unknown @samp{D} commands are assumed to be device-specific.
-Its arguments are parsed as strings; the whole information is then
-sent to the postprocessor.
+Unknown @samp{D} commands are assumed to be device-specific. Its
+arguments are parsed as strings; the whole information is then sent to
+the postprocessor.
-In the following command reference, the syntax element
-@angles{line break} means a syntactical line break as defined above.
+In the following command reference, the syntax element @angles{line
+break} means a syntactical line break as defined above.
@table @code
@item D~ @var{h1} @var{v1} @var{h2} @var{v2} @dots{} @var{hn} @var{vn}@angles{line break}
-Draw B-spline from current position to offset (@var{h1},@var{v1}),
-then to offset (@var{h2},@var{v2}), if given, etc.@: up to
+Draw B-spline from current position to offset (@var{h1},@var{v1}), then
+to offset (@var{h2},@var{v2}), if given, etc.@: up to
(@var{hn},@var{vn}). This command takes a variable number of argument
pairs; the current position is moved to the terminal point of the drawn
curve.
@@ -15197,26 +15113,26 @@ current position to the rightmost point of the circle.
@item DE @var{h} @var{v}@angles{line break}
Draw a solid ellipse in the current fill color with a horizontal
diameter of@tie{}@var{h} and a vertical diameter of@tie{}@var{v} (both
-integers in basic units @samp{u}) with the leftmost point at the
-current position; then move to the rightmost point of the ellipse.
-This command is a @code{gtroff} extension.
+integers in basic units @samp{u}) with the leftmost point at the current
+position; then move to the rightmost point of the ellipse. This command
+is a @code{gtroff} extension.
@item De @var{h} @var{v}@angles{line break}
-Draw an outlined ellipse with a horizontal diameter of@tie{}@var{h}
-and a vertical diameter of@tie{}@var{v} (both integers in basic units
-@samp{u}) with the leftmost point at current position; then move to
-the rightmost point of the ellipse.
+Draw an outlined ellipse with a horizontal diameter of@tie{}@var{h} and
+a vertical diameter of@tie{}@var{v} (both integers in basic units
+@samp{u}) with the leftmost point at current position; then move to the
+rightmost point of the ellipse.
@item DF @var{color-scheme} @r{[}@var{component} @dots{}@r{]}@angles{line break}
-Set fill color for solid drawing objects using different color
-schemes; the analoguous command for setting the color of text, line
-graphics, and the outline of graphic objects is @samp{m}.
-The color components are specified as integer arguments between 0 and
-65536. The number of color components and their meaning vary for the
-different color schemes. These commands are generated by @code{gtroff}'s
-escape sequences @w{@code{\D'F @dots{}'}} and @code{\M} (with no other
-corresponding graphics commands). No position changing. This command
-is a @code{gtroff} extension.
+Set fill color for solid drawing objects using different color schemes;
+the analoguous command for setting the color of text, line graphics, and
+the outline of graphic objects is @samp{m}. The color components are
+specified as integer arguments between 0 and 65536. The number of color
+components and their meaning vary for the different color schemes.
+These commands are generated by @code{gtroff}'s escape sequences
+@w{@code{\D'F @dots{}'}} and @code{\M} (with no other corresponding
+graphics commands). No position changing. This command is a
+@code{gtroff} extension.
@table @code
@item DFc @var{cyan} @var{magenta} @var{yellow}@angles{line break}
@@ -15234,12 +15150,13 @@ the argument, an integer between 0 (black) and 65536 (white).
@item DFk @var{cyan} @var{magenta} @var{yellow} @var{black}@angles{line break}
Set fill color for solid drawing objects using the CMYK color scheme,
-having the 4@tie{}color components @var{cyan}, @var{magenta}, @var{yellow},
-and @var{black}.
+having the 4@tie{}color components @var{cyan}, @var{magenta},
+@var{yellow}, and @var{black}.
@item DFr @var{red} @var{green} @var{blue}@angles{line break}
Set fill color for solid drawing objects using the RGB color scheme,
-having the 3@tie{}color components @var{red}, @var{green}, and @var{blue}.
+having the 3@tie{}color components @var{red}, @var{green}, and
+@var{blue}.
@end table
@item Df @var{n}@angles{line break}
@@ -15250,13 +15167,13 @@ to 32767.
@item @math{0 @LE{} @var{n} @LE{} 1000}
Set the color for filling solid drawing objects to a shade of gray,
where 0 corresponds to solid white, 1000 (the default) to solid black,
-and values in between to intermediate shades of gray; this is
-obsoleted by command @samp{DFg}.
+and values in between to intermediate shades of gray; this is obsoleted
+by command @samp{DFg}.
@item @math{@var{n} < 0} or @math{@var{n} > 1000}
-Set the filling color to the color that is currently being used for
-the text and the outline, see command @samp{m}. For example, the
-command sequence
+Set the filling color to the color that is currently being used for the
+text and the outline, see command @samp{m}. For example, the command
+sequence
@Example
mg 0 0 65536
@@ -15271,18 +15188,18 @@ sets all colors to blue.
No position changing. This command is a @code{gtroff} extension.
@item Dl @var{h} @var{v}@angles{line break}
-Draw line from current position to offset (@var{h},@var{v}) (integers
-in basic units @samp{u}); then set current position to the end of the
-drawn line.
+Draw line from current position to offset (@var{h},@var{v}) (integers in
+basic units @samp{u}); then set current position to the end of the drawn
+line.
@item Dp @var{h1} @var{v1} @var{h2} @var{v2} @dots{} @var{hn} @var{vn}@angles{line break}
Draw a polygon line from current position to offset (@var{h1},@var{v1}),
from there to offset (@var{h2},@var{v2}), etc.@: up to offset
-(@var{hn},@var{vn}), and from there back to the starting position.
-For historical reasons, the position is changed by adding the sum of
-all arguments with odd index to the actual horizontal position and the
-even ones to the vertical position. Although this doesn't make sense
-it is kept for compatibility.
+(@var{hn},@var{vn}), and from there back to the starting position. For
+historical reasons, the position is changed by adding the sum of all
+arguments with odd index to the actual horizontal position and the even
+ones to the vertical position. Although this doesn't make sense it is
+kept for compatibility.
@ignore
As the polygon is closed, the end of drawing is the starting point, so
the position doesn't change.
@@ -15302,9 +15219,9 @@ This command is a @code{gtroff} extension.
Set the current line thickness to@tie{}@var{n} (an integer in basic
units @samp{u}) if @math{@var{n}>0}; if @math{@var{n}=0} select the
smallest available line thickness; if @math{@var{n}<0} set the line
-thickness proportional to the point size (this is the default before
-the first @samp{Dt} command was specified). For historical reasons,
-the horizontal position is changed by adding the argument to the actual
+thickness proportional to the point size (this is the default before the
+first @samp{Dt} command was specified). For historical reasons, the
+horizontal position is changed by adding the argument to the actual
horizontal position, while the vertical position is not changed.
Although this doesn't make sense it is kept for compatibility.
@ignore
@@ -15316,20 +15233,20 @@ This command is a @code{gtroff} extension.
@node Device Control Commands, Obsolete Command, Graphics Commands, Command Reference
@subsubsection Device Control Commands
-Each device control command starts with the letter @samp{x},
-followed by a space character (optional or arbitrary space or tab in
-@code{gtroff}) and a subcommand letter or word; each argument (if any)
-must be preceded by a syntactical space. All @samp{x} commands are
-terminated by a syntactical line break; no device control command can
-be followed by another command on the same line (except a comment).
+Each device control command starts with the letter @samp{x}, followed by
+a space character (optional or arbitrary space or tab in @code{gtroff})
+and a subcommand letter or word; each argument (if any) must be preceded
+by a syntactical space. All @samp{x} commands are terminated by a
+syntactical line break; no device control command can be followed by
+another command on the same line (except a comment).
The subcommand is basically a single letter, but to increase
-readability, it can be written as a word, i.e., an arbitrary sequence
-of characters terminated by the next tab, space, or newline character.
-All characters of the subcommand word but the first are simply ignored.
-For example, @code{gtroff} outputs the initialization command
-@w{@samp{x i}} as @w{@samp{x init}} and the resolution command
-@w{@samp{x r}} as @w{@samp{x res}}.
+readability, it can be written as a word, i.e., an arbitrary sequence of
+characters terminated by the next tab, space, or newline character. All
+characters of the subcommand word but the first are simply ignored. For
+example, @code{gtroff} outputs the initialization command @w{@samp{x i}}
+as @w{@samp{x init}} and the resolution command @w{@samp{x r}} as
+@w{@samp{x res}}.
In the following, the syntax element @angles{line break} means a
syntactical line break (@pxref{Separation}).
@@ -15340,8 +15257,8 @@ The @samp{F} stands for @var{Filename}.
Use @var{name} as the intended name for the current file in error
reports. This is useful for remembering the original file name when
-@code{gtroff} uses an internal piping mechanism. The input file is
-not changed by this command. This command is a @code{gtroff} extension.
+@code{gtroff} uses an internal piping mechanism. The input file is not
+changed by this command. This command is a @code{gtroff} extension.
@item xf @var{n} @var{s}@angles{line break}
The @samp{f} stands for @var{font}.
@@ -15352,9 +15269,9 @@ named@tie{}@var{s} (a text word). @xref{Font Positions}.
@item xH @var{n}@angles{line break}
The @samp{H} stands for @var{Height}.
-Set glyph height to@tie{}@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}.
+Set glyph height to@tie{}@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}.
@item xi@angles{line break}
The @samp{i} stands for @var{init}.
@@ -15375,8 +15292,8 @@ The @samp{r} stands for @var{resolution}.
Resolution is@tie{}@var{n}, while @var{h} is the minimal horizontal
motion, and @var{v} the minimal vertical motion possible with this
-device; all arguments are positive integers in basic units @samp{u}
-per inch. This is the second command of the prologue.
+device; all arguments are positive integers in basic units @samp{u} per
+inch. This is the second command of the prologue.
@item xS @var{n}@angles{line break}
The @samp{S} stands for @var{Slant}.
@@ -15392,15 +15309,15 @@ command of any intermediate troff output.
@item xt@angles{line break}
The @samp{t} stands for @var{trailer}.
-Generate trailer information, if any. In @var{gtroff}, this is
-actually just ignored.
+Generate trailer information, if any. In @var{gtroff}, this is actually
+just ignored.
@item xT @var{xxx}@angles{line break}
The @samp{T} stands for @var{Typesetter}.
-Set name of device to word @var{xxx}, a sequence of characters ended
-by the next white space character. The possible device names coincide
-with those from the @code{groff} @option{-T} option. This is the first
+Set name of device to word @var{xxx}, a sequence of characters ended by
+the next white space character. The possible device names coincide with
+those from the @code{groff} @option{-T} option. This is the first
command of the prologue.
@item xu @var{n}@angles{line break}
@@ -15416,22 +15333,22 @@ The @samp{x} stands for @var{X-escape}.
Send string @var{anything} uninterpreted to the device. If the line
following this command starts with a @samp{+} character this line is
-interpreted as a continuation line in the following sense. The
-@samp{+} is ignored, but a newline character is sent instead to the
-device, the rest of the line is sent uninterpreted. The same applies
-to all following lines until the first character of a line is not a
-@samp{+} character. This command is generated by the @code{gtroff}
-escape sequence @code{\X}. The line-continuing feature is a
-@code{gtroff} extension.
+interpreted as a continuation line in the following sense. The @samp{+}
+is ignored, but a newline character is sent instead to the device, the
+rest of the line is sent uninterpreted. The same applies to all
+following lines until the first character of a line is not a @samp{+}
+character. This command is generated by the @code{gtroff} escape
+sequence @code{\X}. The line-continuing feature is a @code{gtroff}
+extension.
@end table
@node Obsolete Command, , Device Control Commands, Command Reference
@subsubsection Obsolete Command
-In @acronym{AT&T} @code{troff} output, the writing of a single
-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@tie{}digits and a character.
+In @acronym{AT&T} @code{troff} output, the writing of a single 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@tie{}digits and a character.
@table @asis
@item @var{dd}@var{g}
@@ -15440,18 +15357,17 @@ then print glyph@tie{}@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
-same line ends with an argument of variable length a separating space
-is obligatory. In @acronym{AT&T} @code{troff}, large clusters of these
-and other commands are used, mostly without spaces; this made such output
+same line ends with an argument of variable length a separating space is
+obligatory. In @acronym{AT&T} @code{troff}, large clusters of these and
+other commands are used, mostly without spaces; this made such output
almost unreadable.
@end table
For modern high-resolution devices, this command does not make sense
-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
-functionality.
+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 functionality.
@c ---------------------------------------------------------------------
@@ -15459,14 +15375,14 @@ functionality.
@subsection Intermediate Output Examples
This section presents the intermediate output generated from the same
-input for three different devices. The input is the sentence
-@samp{hell world} fed into @code{gtroff} on the command line.
+input for three different devices. The input is the sentence @samp{hell
+world} fed into @code{gtroff} on the command line.
@table @asis
@item High-resolution device @code{ps}
-This is the standard output of @code{gtroff} if no @option{-T} option
-is given.
+This is the standard output of @code{gtroff} if no @option{-T} option is
+given.
@example
@group
@@ -15496,15 +15412,15 @@ x stop
@end example
@noindent
-This output can be fed into @code{grops} to get its representation as
-a PostScript file.
+This output can be fed into @code{grops} to get its representation as a
+PostScript file.
@item Low-resolution device @code{latin1}
This is similar to the high-resolution device except that the
positioning is done at a minor scale. Some comments (lines starting
-with @samp{#}) were added for clarification; they were not generated
-by the formatter.
+with @samp{#}) were added for clarification; they were not generated by
+the formatter.
@example
@group
@@ -15574,8 +15490,8 @@ x stop
@end example
@noindent
-This output can be fed into @code{xditview} or @code{gxditview}
-for displaying in@tie{}X.
+This output can be fed into @code{xditview} or @code{gxditview} for
+displaying in@tie{}X.
Due to the obsolete jump-and-write command, the text clusters in the
@acronym{AT&T} @code{troff} output are almost unreadable.
@@ -15586,10 +15502,10 @@ Due to the obsolete jump-and-write command, the text clusters in the
@node Output Language Compatibility, , Intermediate Output Examples, gtroff Output
@subsection Output Language Compatibility
-The intermediate output language of @acronym{AT&T} @code{troff}
-was first documented in the @acronym{UNIX} troff manual, with later
-additions documented in @cite{A Typesetter-indenpendent TROFF},
-written by Brian Kernighan.
+The intermediate output language of @acronym{AT&T} @code{troff} was
+first documented in the @acronym{UNIX} troff manual, with later
+additions documented in @cite{A Typesetter-indenpendent TROFF}, written
+by Brian Kernighan.
The @code{gtroff} intermediate output format is compatible with this
specification except for the following features.
@@ -15601,28 +15517,28 @@ The classical quasi device independence is not yet implemented.
@item
The old hardware was very different from what we use today. So the
@code{groff} devices are also fundamentally different from the ones in
-@acronym{AT&T} @code{troff}. For example, the @acronym{AT&T}
-PostScript device is called @code{post} and has a resolution of only
-720 units per inch, suitable for printers 20 years ago, while
-@code{groff}'s @code{ps} device has a resolution of
-72000 units per inch. Maybe, by implementing some rescaling
-mechanism similar to the classical quasi device independence,
-@code{groff} could emulate @acronym{AT&T}'s @code{post} device.
+@acronym{AT&T} @code{troff}. For example, the @acronym{AT&T} PostScript
+device is called @code{post} and has a resolution of only 720 units per
+inch, suitable for printers 20 years ago, while @code{groff}'s @code{ps}
+device has a resolution of 72000 units per inch. Maybe, by implementing
+some rescaling mechanism similar to the classical quasi device
+independence, @code{groff} could emulate @acronym{AT&T}'s @code{post}
+device.
@item
-The B-spline command @samp{D~} is correctly handled by the
-intermediate output parser, but the drawing routines aren't
-implemented in some of the postprocessor programs.
+The B-spline command @samp{D~} is correctly handled by the intermediate
+output parser, but the drawing routines aren't implemented in some of
+the postprocessor programs.
@item
The argument of the commands @samp{s} and @w{@samp{x H}} has the
implicit unit scaled point @samp{z} in @code{gtroff}, while
@acronym{AT&T} @code{troff} has point (@samp{p}). This isn't an
-incompatibility but a compatible extension, for both units coincide
-for all devices without a @code{sizescale} parameter in the @file{DESC}
+incompatibility but a compatible extension, for both units coincide for
+all devices without a @code{sizescale} parameter in the @file{DESC}
file, including all postprocessors from @acronym{AT&T} and
-@code{groff}'s text devices. The few @code{groff} devices with
-a @code{sizescale} parameter either do not exist for @acronym{AT&T}
+@code{groff}'s text devices. The few @code{groff} devices with a
+@code{sizescale} parameter either do not exist for @acronym{AT&T}
@code{troff}, have a different name, or seem to have a different
resolution. So conflicts are very unlikely.
@@ -15633,13 +15549,13 @@ feature it is kept for compatibility reasons.
@ignore
Temporarily, there existed some confusion on the positioning after the
-@samp{D} commands that are groff extensions. This has been clarified
-by establishing the classical rule for all @code{groff} drawing commands:
+@samp{D} commands that are groff extensions. This has been clarified by
+establishing the classical rule for all @code{groff} drawing commands:
@itemize
@item
-The position after a graphic object has been drawn is at its end;
-for circles and ellipses, the `end' is at the right side.
+The position after a graphic object has been drawn is at its end; for
+circles and ellipses, the `end' is at the right side.
@item
From this, the positionings specified for the drawing commands above
@@ -15683,8 +15599,8 @@ called@tie{}@file{@var{f}}.
The @file{DESC} file can contain the following types of line. Except
for the @code{charset} keyword which must comes last (if at all), the
-order of the lines is not important. Later entries in the file, however,
-override previous values.
+order of the lines is not important. Later entries in the file,
+however, override previous values.
@table @code
@item charset
@@ -15731,17 +15647,19 @@ Select a paper size. Valid values for @var{string} are the ISO paper
types @code{A0}-@code{A7}, @code{B0}-@code{B7}, @code{C0}-@code{C7},
@code{D0}-@code{D7}, @code{DL}, and the US paper types @code{letter},
@code{legal}, @code{tabloid}, @code{ledger}, @code{statement},
-@code{executive}, @code{com10}, and @code{monarch}. Case is not significant
-for @var{string} if it holds predefined paper types. Alternatively,
-@var{string} can be a file name (e.g.@: @file{/etc/papersize}); if the file
-can be opened, @code{groff} reads the first line and tests for the above
-paper sizes. Finally, @var{string} can be a custom paper size in the format
+@code{executive}, @code{com10}, and @code{monarch}. Case is not
+significant for @var{string} if it holds predefined paper types.
+Alternatively, @var{string} can be a file name (e.g.@:
+@file{/etc/papersize}); if the file can be opened, @code{groff} reads
+the first line and tests for the above paper sizes. Finally,
+@var{string} can be a custom paper size in the format
@code{@var{length},@var{width}} (no spaces before and after the comma).
-Both @var{length} and @var{width} must have a unit appended; valid values
-are @samp{i} for inches, @samp{C} for centimeters, @samp{p} for points, and
-@samp{P} for picas. Example: @code{12c,235p}. An argument which starts
-with a digit is always treated as a custom paper format. @code{papersize}
-sets both the vertical and horizontal dimension of the output medium.
+Both @var{length} and @var{width} must have a unit appended; valid
+values are @samp{i} for inches, @samp{C} for centimeters, @samp{p} for
+points, and @samp{P} for picas. Example: @code{12c,235p}. An argument
+which starts with a digit is always treated as a custom paper format.
+@code{papersize} sets both the vertical and horizontal dimension of the
+output medium.
More than one argument can be specified; @code{groff} scans from left to
right and uses the first valid paper specification.
@@ -15754,8 +15672,8 @@ Deprecated. Use @code{papersize} instead.
@item pass_filenames
@kindex pass_filenames
-Tell @code{gtroff} to emit the name of the source file currently
-being processed. This is achieved by the intermediate output command
+Tell @code{gtroff} to emit the name of the source file currently being
+processed. This is achieved by the intermediate output command
@samp{F}. Currently, this is only used by the @code{grohtml} output
device.
@@ -15768,8 +15686,8 @@ postpro grodvi
@endExample
@noindent
-in the file @file{devdvi/DESC} makes @code{groff} call @code{grodvi}
-if option @option{-Tdvi} is given (and @option{-Z} isn't used).
+in the file @file{devdvi/DESC} makes @code{groff} call @code{grodvi} if
+option @option{-Tdvi} is given (and @option{-Z} isn't used).
@item prepro @var{program}
@kindex prepro
@@ -15778,8 +15696,8 @@ by @code{groff} with option @option{-Thtml} or @option{-Txhtml} only.
@item print @var{program}
@kindex print
-Use @var{program} as a spooler program for printing. If omitted,
-the @option{-l} and @option{-L} options of @code{groff} are ignored.
+Use @var{program} as a spooler program for printing. If omitted, the
+@option{-l} and @option{-L} options of @code{groff} are ignored.
@item res @var{n}
@kindex res
@@ -15796,10 +15714,10 @@ This means that the device has fonts at @var{s1}, @var{s2}, @dots{}
@item sizescale @var{n}
@kindex sizescale
-The scale factor for point sizes. By default this has a value of@tie{}1.
-One scaled point is equal to one point/@var{n}. The arguments to the
-@code{unitwidth} and @code{sizes} commands are given in scaled points.
-@xref{Fractional Type Sizes}, for more information.
+The scale factor for point sizes. By default this has a value
+of@tie{}1. One scaled point is equal to one point/@var{n}. The
+arguments to the @code{unitwidth} and @code{sizes} commands are given in
+scaled points. @xref{Fractional Type Sizes}, for more information.
@item styles @var{S1} @var{S2} @dots{} @var{Sm}
@kindex styles
@@ -15817,15 +15735,13 @@ Indicate that the output device supports the complete Unicode
repertoire. Useful only for devices which produce @emph{character
entities} instead of glyphs.
-If @code{unicode} is present, no @code{charset} section is required
-in the font description files since the Unicode handling built into
-@code{groff} is used. However, if there are entries in a
-@code{charset} section, they either override the default mappings for
-those particular characters or add new mappings (normally for composite
-characters).
+If @code{unicode} is present, no @code{charset} section is required in
+the font description files since the Unicode handling built into
+@code{groff} is used. However, if there are entries in a @code{charset}
+section, they either override the default mappings for those particular
+characters or add new mappings (normally for composite characters).
-This is used for @option{-Tutf8}, @option{-Thtml}, and
-@option{-Txhtml}.
+This is used for @option{-Tutf8}, @option{-Thtml}, and @option{-Txhtml}.
@item unitwidth @var{n}
@kindex unitwidth
@@ -15839,8 +15755,8 @@ Needed for the @code{grohtml} device.
@item use_charnames_in_special
@kindex use_charnames_in_special
This command indicates that @code{gtroff} should encode special
-characters inside special commands. Currently, this is only used
-by the @code{grohtml} output device. @xref{Postprocessor Access}.
+characters inside special commands. Currently, this is only used by the
+@code{grohtml} output device. @xref{Postprocessor Access}.
@item vert @var{n}
@kindex vert
@@ -15872,8 +15788,8 @@ but completely ignored: @code{spare1}, @code{spare2},
@cindex format of font description files
A @dfn{font file}, also (and probably better) called a @dfn{font
-description file}, has two sections. The first section is a sequence
-of lines each containing a sequence of blank delimited words; the first
+description file}, has two sections. The first section is a sequence of
+lines each containing a sequence of blank delimited words; the first
word in the line is a key, and subsequent words give a value for that
key.
@@ -15888,16 +15804,16 @@ The normal width of a space is@tie{}@var{n}.
@item slant @var{n}
@kindex slant
-The glyphs of the font have a slant of @var{n}@tie{}degrees.
-(Positive means forward.)
+The glyphs of the font have a slant of @var{n}@tie{}degrees. (Positive
+means forward.)
@item ligatures @var{lig1} @var{lig2} @dots{} @var{lign} [0]
@kindex ligatures
Glyphs @var{lig1}, @var{lig2}, @dots{}, @var{lign} are ligatures;
possible ligatures are @samp{ff}, @samp{fi}, @samp{fl}, @samp{ffi} and
@samp{ffl}. For backwards compatibility, the list of ligatures may be
-terminated with a@tie{}0. The list of ligatures may not extend over more
-than one line.
+terminated with a@tie{}0. The list of ligatures may not extend over
+more than one line.
@item special
@cindex special fonts
@@ -15919,20 +15835,19 @@ character and extend to the end of a line.
The second section contains one or two subsections. It must contain a
@code{charset} subsection and it may also contain a @code{kernpairs}
-subsection. These subsections can appear in any order. Each
-subsection starts with a word on a line by itself.
+subsection. These subsections can appear in any order. Each subsection
+starts with a word on a line by itself.
@kindex charset
The word @code{charset} starts the character set
-subsection.@footnote{This keyword is misnamed since it starts a list
-of ordered glyphs, not characters.} The @code{charset} line is
-followed by a sequence of lines. Each line gives information for one
-glyph. A line comprises a number of fields separated by blanks or
-tabs. The format is
+subsection.@footnote{This keyword is misnamed since it starts a list of
+ordered glyphs, not characters.} The @code{charset} line is followed by
+a sequence of lines. Each line gives information for one glyph. A line
+comprises a number of fields separated by blanks or tabs. The format is
@quotation
-@var{name} @var{metrics} @var{type} @var{code}
-[@var{entity-name}] [@code{--} @var{comment}]
+@var{name} @var{metrics} @var{type} @var{code} [@var{entity-name}]
+[@code{--} @var{comment}]
@end quotation
@cindex 8-bit input
@@ -15945,32 +15860,31 @@ 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}; for example, the @code{char} request
-should be called @code{glyph} since it defines an output entity.}:
-If @var{name} is a single character@tie{}@var{c} then it corresponds
-to the @code{gtroff} input character@tie{}@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{\[-]}.
+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@tie{}@var{c} then it corresponds to the
+@code{gtroff} input character@tie{}@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
a convention that the entity name @samp{char@var{n}} is equivalent to
the single input character whose code is@tie{}@var{n}. For example,
@samp{char163} would be equivalent to the character with code@tie{}163
-which is the pounds sterling sign in the ISO@tie{}@w{Latin-1} character set.
-You shouldn't use @samp{char@var{n}} entities in font description files
-since they are related to input, not output. Otherwise, you get
-hard-coded connections between input and output encoding which
-prevents use of different (input) character sets.
+which is the pounds sterling sign in the ISO@tie{}@w{Latin-1} character
+set. You shouldn't use @samp{char@var{n}} entities in font description
+files since they are related to input, not output. Otherwise, you get
+hard-coded connections between input and output encoding which prevents
+use of different (input) character sets.
-The name @samp{---} is special and indicates that the glyph is
-unnamed; such glyphs can only be used by means of the @code{\N}
-escape sequence in @code{gtroff}.
+The name @samp{---} is special and indicates that the glyph is unnamed;
+such glyphs can only be used by means of the @code{\N} escape sequence
+in @code{gtroff}.
The @var{type} field gives the glyph type:
@@ -15986,19 +15900,19 @@ the glyph has both an ascender and a descender, for example, @samp{(}.
@end table
The @var{code} field gives the code which the postprocessor uses to
-print the glyph. The glyph can also be input to @code{gtroff}
-using this code by means of the @code{\N} escape sequence. @var{code}
-can be any integer. If it starts with @samp{0} it is interpreted as
-octal; if it starts with @samp{0x} or @samp{0X} it is interpreted as
-hexadecimal. Note, however, that the @code{\N} escape sequence only
-accepts a decimal integer.
-
-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 @code{grohtml} device driver can encode its
-character set. For example, the glyph @samp{\[Po]} is
-represented as @samp{&pound;} in @acronym{HTML} 4.0.
+print the glyph. The glyph can also be input to @code{gtroff} using
+this code by means of the @code{\N} escape sequence. @var{code} can be
+any integer. If it starts with @samp{0} it is interpreted as octal; if
+it starts with @samp{0x} or @samp{0X} it is interpreted as hexadecimal.
+Note, however, that the @code{\N} escape sequence only accepts a decimal
+integer.
+
+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
+@code{grohtml} device driver can encode its character set. For example,
+the glyph @samp{\[Po]} is represented as @samp{&pound;} in
+@acronym{HTML} 4.0.
Anything on the line after the @var{entity-name} field resp.@: after
@samp{--} is ignored.
@@ -16019,11 +15933,11 @@ assumed to be@tie{}0. The subfields are all decimal integers. Since
there is no associated binary format, these values are not required to
fit into a variable of type @samp{char} as they are in @code{ditroff}.
The @var{width} subfield gives the width of the glyph. The @var{height}
-subfield gives the height of the glyph (upwards is positive); if a
-glyph does not extend above the baseline, it should be given a zero
-height, rather than a negative height. The @var{depth} subfield gives
-the depth of the glyph, that is, the distance from the baseline to the
-lowest point below the baseline to which the glyph extends (downwards is
+subfield gives the height of the glyph (upwards is positive); if a glyph
+does not extend above the baseline, it should be given a zero height,
+rather than a negative height. The @var{depth} subfield gives the depth
+of the glyph, that is, the distance from the baseline to the lowest
+point below the baseline to which the glyph extends (downwards is
positive); if a glyph does not extend below the baseline, it should be
given a zero depth, rather than a negative depth. The
@var{italic-correction} subfield gives the amount of space that should
@@ -16032,8 +15946,8 @@ glyph from a roman font. The @var{left-italic-correction} subfield
gives the amount of space that should be added before the glyph when it
is immediately to be preceded by a glyph from a roman font. The
@var{subscript-correction} gives the amount of space that should be
-added after a glyph before adding a subscript. This should be less
-than the italic correction.
+added after a glyph before adding a subscript. This should be less than
+the italic correction.
A line in the @code{charset} section can also have the format
@@ -16054,9 +15968,9 @@ sequence of lines of the form:
@endExample
@noindent
-This means that when glyph @var{c1} appears next to glyph @var{c2}
-the space between them should be increased by@tie{}@var{n}. Most
-entries in the kernpairs section have a negative value for@tie{}@var{n}.
+This means that when glyph @var{c1} appears next to glyph @var{c2} the
+space between them should be increased by@tie{}@var{n}. Most entries in
+the kernpairs section have a negative value for@tie{}@var{n}.
@@ -16132,8 +16046,8 @@ brackets.
A register name@tie{}@code{x} consisting of exactly one character can be
accessed as @samp{\nx}. A register name @code{xx} consisting of exactly
-two characters can be accessed as @samp{\n(xx}. Register names @code{xxx}
-of any length can be accessed as @samp{\n[xxx]}.
+two characters can be accessed as @samp{\n(xx}. Register names
+@code{xxx} of any length can be accessed as @samp{\n[xxx]}.
@printindex vr