summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog22
-rw-r--r--INSTALL5
-rw-r--r--NEWS6
-rw-r--r--doc/groff.texinfo43
-rw-r--r--man/groff.man217
-rw-r--r--man/roff.man344
-rw-r--r--src/preproc/tbl/main.cc3
-rw-r--r--tmac/groff_man.man15
-rwxr-xr-xtmac/groff_tmac.man234
-rwxr-xr-xtmac/tmac.an593
10 files changed, 844 insertions, 638 deletions
diff --git a/ChangeLog b/ChangeLog
index e60be845..e51551cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2000-05-21 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.an: Added a new command line option `-rSxx' (`xx' can be
+ 10, 11, or 12) to support output with 11pt and 12pt base font sizes.
+ `.SS' now produces a heading with a smaller size than `.SH'.
+ Completely formatted.
+ * doc/groff.texinfo, tmac/groff_man.man, NEWS: Document it.
+
+ * man/groff.man: Improved table appearance. Use of `eo' request
+ to reduce number of doubled backslashes in macro definitions.
+ Replacing `\e' with `\(rs'. Other minor fixes.
+
+ * src/preproc/tbl/main.cc: Insert HTML table end tag before `lf'
+ to have correct line number.
+
+ * INSTALL: Small improvement.
+
+2000-05-20 Bernd Warken <bwarken@mayn.de>
+
+ * man/roff.man, tmac/groff_tmac.man: Updates (with corrections by
+ WL).
+
2000-05-19 Bernd Warken <bwarken@mayn.de>
* man/groff.man: Complete update (with a lot of corrections by WL).
diff --git a/INSTALL b/INSTALL
index 3818263c..2cc25232 100644
--- a/INSTALL
+++ b/INSTALL
@@ -24,8 +24,9 @@ the build directory when the script is run. For example, you could do
./test-groff -man -Tascii src/roff/groff/groff.n | less
-If you want to install gxditview (an X11 previewer), follow the
-instructions in the INSTALL file in the xditview directory.
+If you want to compile and install gxditview (an X11 previewer),
+follow the instructions in the INSTALL file in the src/xditview
+subdirectory.
To get PostScript versions of the documentation resp. reference files
for the `me' macros and the `pic' preprocessor, simply say `make' in
diff --git a/NEWS b/NEWS
index fcd6a898..7d84bd56 100644
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,10 @@ installed).
Troff
-----
+A new command line option to the `man' macros is available: `-rSxx' (with
+`xx' either 10, 11, or 12) to set the base document font size to `xx'
+points. Additionally, `.SH' now produces larger headings than `.SS'.
+
To solve a problem with the .PSPIC macro which needs the `-U' switch of
troff to access an external program (psbb), a new request .psbb is now
available to get the bounding box of a PostScript image file. The values
@@ -157,7 +161,7 @@ A port to win32 (for use with Microsoft Visual C++ 6.0) is now part of the
distribution. It has been contributed by Blake McBride
<blake@florida-software.com>.
-More information about programs, macros, documentation, etc. which is
+More information about programs, macros, documentation, etc., which is
related to groff has been collected in the file `MORE.STUFF'.
VERSION 1.13, 1.14, 1.15
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 4d115b85..fed335af 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -688,13 +688,13 @@ impossible to accomplish complex actions.'' --Doug Gwyn (22/Jun/91 in
@cindex @code{rf}
@code{troff} can trace its origins back to a formatting program called
@code{runoff}, written by J.@w{ }E.@w{ }Saltzer, which ran on MIT's CTSS
-system. This name came from the common phrase of the time ``I'll run
-off a document.'' Bob Morris ported it to the 635 architecture and
-called the program @code{roff} (an abbreviation of @code{runoff}). It
-has then been rewritten as @code{rf} for the 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.
+operating system in the mid-sixties. This name came from the common
+phrase of the time ``I'll run off a document.'' Bob Morris ported it to
+the 635 architecture and called the program @code{roff} (an abbreviation
+of @code{runoff}). It has then been rewritten as @code{rf} for the
+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.
@cindex @code{roff}
The first version of @acronym{UNIX} was developed on a PDP-7 which was
@@ -1856,8 +1856,8 @@ The command line format for using the @file{man} macros with
@c XXX document @TMAC_AN_PREFIX@
@example
-groff -m man [ -rC1 ] [ -rD1 ] [ -rP @var{nnn} ] [ -rX @var{nnn} ]
- [ @var{files}@dots{} ]
+groff -m man [ -rC1 ] [ -rD1 ] [ -rP@var{nnn} ] [ -rS@var{xx} ]
+ [ -rX@var{nnn} ] [ @var{files}@dots{} ]
@end example
It is possible to use @samp{-man} instead of @w{@samp{-m man}}.
@@ -1871,10 +1871,14 @@ pages continuously, rather than starting each at@w{ }1.
Double-sided printing. Footers for even and odd pages are formatted
differently.
-@item -rP @var{nnn}
+@item -rP@var{nnn}
Enumeration of pages will start with @var{nnn} rather than with@w{ }1.
-@item -rX @var{nnn}
+@item -rS@var{xx}
+Use @var{xx} (which can be 10, 11, or@w{ }12@dmn{pt}) as the base
+document font size instead of the default value of@w{ }10@dmn{pt}.
+
+@item -rX@var{nnn}
After page @var{nnn}, number pages as @var{nnn}a, @var{nnn}b,
@var{nnn}c, etc. For example, the option @option{-rX2} will produce the
following page numbers: 1, 2, 2a, 2b, 2c, etc.
@@ -1919,16 +1923,16 @@ beginning of the file.
Sets 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 (resp.@:
the text in the next line if there is no argument to @code{SH}) in bold
-face, at a default size of 9@w{ }point. Additionally, the left margin
-for the following text is reset to its default value.
+face, one size larger than the base document size. Additionally, the
+left margin for the following text is reset to its default value.
@end_Defmac
@maindex SS
@Defmac{SS, [@var{heading}]}
Sets up an unnumbered section heading. Prints out all the text
following @code{SS} up to the end of the line (resp.@: the text in the
-next line if there is no argument to @code{SS}) in bold face, at a
-default size of 10@w{ }point. Additionally, the left margin for the
+next line if there is no argument to @code{SS}) in bold face, at the sam
+size as the base document size. Additionally, the left margin for the
following text is reset to its default value.
@end_Defmac
@@ -4973,15 +4977,16 @@ Note that this only specifies the size of the page, not the top and
bottom margins. Those are not set by groff directly. @xref{Traps}, for
further information on how to do this.
-@c XXX negative .pl values
-
+Negative @code{pl} values are possible also, but not very useful: No
+trap is sprung, and each line is output on a single page (thus
+suppressing all vertical spacing).
@end_Deffn
@cindex headers
@cindex footers
@cindex titles
@code{gtroff} provides several operations which help in setting up top
-and bottom titles (or headers and footers)
+and bottom titles (or headers and footers).
@cindex title line
@cindex three-part title
@@ -6197,7 +6202,7 @@ name.
This would be called as
@example
-.vl $Id: groff.texinfo,v 1.37 2000/05/19 05:05:38 wlemb Exp $
+.vl $Id: groff.texinfo,v 1.38 2000/05/22 06:21:49 wlemb Exp $
@end example
@xref{Request Arguments}.
diff --git a/man/groff.man b/man/groff.man
index f1b03cca..8f78d66e 100644
--- a/man/groff.man
+++ b/man/groff.man
@@ -30,254 +30,262 @@ FDL in the main directory of the groff source package.
. ftr CB B
.\}
.
-.\" text lines in macro definitions or bracketed sections \{...\}
+.\" a comment macro which does nothing
+.de c
+..
+.
+.\" a tab string
+.ds t "\t
+.
+.eo
+.
+.c text lines in macro definitions or bracketed sections \{...\}
.de text
-. if 1 \&\\$*\&
+. if 1 \&\$*\&
..
.
.de option
-. ds @tmp@ \f(CB\\$1\fP
+. ds @tmp@ \f(CB\$1\fP
. shift 1
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.als shellcommand option
.
-.\" --------- characters ---------
-.
-.\" print a single quote when documenting code, not in C-fonts
-.ds q \(fm
+.c --------- characters ---------
.
.de character
-. ds @tmp@ \f(CB\\$1\fP
+. ds @tmp@ \f(CB\$1\fP
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de 'char
-. ds @tmp@ `\f(CB\\$1\fP'
+. ds @tmp@ \(oq\f(CB\$1\fP\(cq
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de ''char
-. ds @tmp@ \(dq\f(CB\\$1\fP\(dq
+. ds @tmp@ \(lq\f(CB\$1\fP\(rq
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
-.\" --------- requests ---------
+.c --------- requests ---------
.
-.\" request synopsis
+.c request synopsis
.de REQ
-. ds @tmp@ \&\\$1
+. ds @tmp@ \&\$1
. shift 1
-. IP "\f(CB\&\\*[@tmp@] \fP\f(CI\&\\$*\fP" 10n
+. IP "\f(CB\&\*[@tmp@] \fP\f(CI\&\$*\fP" 10n
. rm @tmp@
..
.
.de request
-. ds @tmp@ \f(CB\\$1\fP
+. ds @tmp@ \f(CB\$1\fP
. shift 1
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
-.\" --------- macro or function arguments ---------
+.c --------- macro or function arguments ---------
.
.de argument
-. ds @tmp@ \f(CI\\$1\fP
+. ds @tmp@ \f(CI\$1\fP
. shift 1
-. while (\\n[.$] >= 2) \{\
-. as @tmp@ \/\f(CR\\$1\fP\f(CI\,\\$2\fP
+. while (\n[.$] >= 2) \{\
+. as @tmp@ \/\f(CR\$1\fP\f(CI\,\$2\fP
. shift 2
. \}
-. if \\n[.$] .as @tmp@ \/\f(CR\\$1\fP
-. text \\*[@tmp@]
+. if \n[.$] .as @tmp@ \/\f(CR\$1\fP
+. text \*[@tmp@]
. rm @tmp@
..
.
-.\" argument followed by a numerical expression
+.c argument followed by a numerical expression
.de argterm
-. ds @tmp@ \f(CI\\$1\fP\|\f(CR\\$2\fP
+. ds @tmp@ \f(CI\$1\fP\|\f(CR\$2\fP
. shift 2
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
-.\" --------- numerical elements ---------
+.c --------- numerical elements ---------
.
.de number
-. ds @tmp@ \f(CR\\$1\fP
+. ds @tmp@ \f(CR\$1\fP
. shift 1
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de prefixednumber
-. ds @tmp@ \&\\$1\ \f(CR\\$2\fP
+. ds @tmp@ \&\$1\ \f(CR\$2\fP
. shift 2
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.als scaleindicator request
.
.de scalednumber
-. ds @tmp@ \f(CR\\$1\fP\f(CB\\$2\fP
+. ds @tmp@ \f(CR\$1\fP\f(CB\$2\fP
. shift 2
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de operator
-. ds @tmp@ `\f(CB\\$1\fP'
+. ds @tmp@ \(oq\f(CB\$1\fP\(cq
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
-.\" --------- escape sequences ---------
+.c --------- escape sequences ---------
.
.de esc[arg]
-. ds @tmp@ \f(CB\(rs\\$1[\fP\f(CI\\$2\fP\f(CB]\fP
+. ds @tmp@ \f(CB\(rs\$1[\fP\f(CI\$2\fP\f(CB]\fP
. shift 2
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de esc(arg
-. ds @tmp@ \f(CB\(rs\\$1(\fP\f(CI\\$2\fP
+. ds @tmp@ \f(CB\(rs\$1(\fP\f(CI\$2\fP
. shift 2
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de escarg
-. ds @tmp@ \f(CB\(rs\\$1\fP\f(CI\\$2\fP
+. ds @tmp@ \f(CB\(rs\$1\fP\f(CI\$2\fP
. shift 2
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de esc[]
-. ds @tmp@ \f(CB\(rs[\fP\f(CI\\$1\fP\f(CB]\fP
+. ds @tmp@ \f(CB\(rs[\fP\f(CI\$1\fP\f(CB]\fP
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de esc(
-. ds @tmp@ \f(CB\(rs(\fP\f(CI\\$1\fP
+. ds @tmp@ \f(CB\(rs(\fP\f(CI\$1\fP
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de esc
-. ds @tmp@ \f(CB\(rs\\$1\fP
+. ds @tmp@ \f(CB\(rs\$1\fP
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de (esc
-. ds @tmp@ \f(CB\(rs(\\$1\fP
+. ds @tmp@ \f(CB\(rs(\$1\fP
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
.de [esc]
-. ds @tmp@ \f(CB\(rs[\\$1]\fP
+. ds @tmp@ \f(CB\(rs[\$1]\fP
. shift
-. text \\*[@tmp@]\\$*
+. text \*[@tmp@]\$*
. rm @tmp@
..
.
-.\" escape sequence synopsis
+.c escape sequence synopsis
.de ESC
-. ds @tmp@ \&\\$1
+. ds @tmp@ \&\$1
. shift 1
-. IP "\f(CB\e\&\\*[@tmp@]\fP\f(CI\&\\$*\fP"
+. IP "\f(CB\(rs\&\*[@tmp@]\fP\f(CI\&\$*\fP"
. rm @tmp@
..
.
-.\" synopsis for escape sequences with a long name
+.c synopsis for escape sequences with a long name
.de ESC[]
-. ds @arg1@ \&\\$1
-. ds @arg2@ \&\\$2
+. ds @arg1@ \&\$1
+. ds @arg2@ \&\$2
. shift 2
-. IP "\f(CB\e\&\\*[@arg1@][\fP\f(CI\&\\*[@arg2@]\fP\f(CB]\&\\$*\fP"
+. IP "\f(CB\(rs\&\*[@arg1@][\fP\f(CI\&\*[@arg2@]\fP\f(CB]\&\$*\fP"
. rm @arg1@
. rm @arg2@
..
.
-.\" synopsis escape sequence with quoted argument
+.c synopsis escape sequence with quoted argument
. de ESCq
-. ds @tmp@ \&\\$1
+. ds @tmp@ \&\$1
. shift 1
-. IP "\f(CB\e\&\\*[@tmp@]\(cq\fP\f(CI\h'-0.2m'\\$*\/\fP\f(CB\(cq\fP"
+. IP "\f(CB\(rs\&\*[@tmp@]\(cq\fP\f(CI\h'-0.2m'\$*\/\fP\f(CB\(cq\fP"
. rm @tmp@
..
.
-.\" synopsis for 2-escapes (special characters)
+.c synopsis for 2-escapes (special characters)
.de ESc
-. ds @tmp@ \\$1
+. ds @tmp@ \$1
. TP 14n
-. text \f(CB\e(\&\\*[@tmp@]\ \ \ \fP\fR\\(\\*[@tmp@]\fP
+. text \f(CB\(rs(\&\*[@tmp@]\ \ \ \fP\fR\(\*[@tmp@]\fP
. shift 1
-. text \\$*.
+. text \$*.
. rm @tmp@
..
.
-.\" Greek characters
+.c Greek characters
.de GREEK
-. ds OLDT@BS \\n[.tabs]
+. ds OLDT@BS \n[.tabs]
. br
. ie t \{\
. ta 7n 10n 30n T 7n 10n
-\&\f(CB\e(*\\$1\fP\t\fI\\(*\\$1\fP\t\\$2\t\
-\&\f(CB\e(*\\$3\fP\t\fI\\(*\\$3\fP\t\\$4
+\&\f(CB\(rs(*\$1\fP\*t\fI\(*\$1\fP\*t\$2\*t\
+\&\f(CB\(rs(*\$3\fP\*t\fI\(*\$3\fP\*t\$4
. \}
. el \{\
. ta 7n 30n T 7n
-\&\f(CB\e(*\\$1\fP\t\\$2\t\
-\&\f(CB\e(*\\$3\fP\t\\$4
+\&\f(CB\(rs(*\$1\fP\*t\$2\*t\
+\&\f(CB\(rs(*\$3\fP\*t\$4
. \}
-. ta \\*[OLDT@BS]
+. ta \*[OLDT@BS]
. rm OLDT@BS
..
.
-.\" --------- registers ---------
+.c --------- registers ---------
.
-.\" synopsis for registers
+.c synopsis for registers
.de REG
. TP 10n
-. text \&\f(CR\en[\fP\f(CB\\$1\fP\f(CR]\fP
+. text \&\f(CR\(rsn[\fP\f(CB\$1\fP\f(CR]\fP
. shift 1
-.if \\n[.$] \&\\$*
+.if \n[.$] \&\$*
..
.
.als register request
.
-.\" --------- warnings ---------
+.c --------- warnings ---------
.
.als warning request
.
-.\" description of warnings
+.c description of warnings
.de Warning
. ne (2v + 1)
. TP 12n
-. text \f(CB\\$1\fP
-. text \f(CI\\$2\fP
+. text \f(CB\$1\fP
+. text \f(CI\$2\fP
. br
..
.
+.ec
+.
.\" --------------------------------------------------------------------
.\" Title
.\" --------------------------------------------------------------------
@@ -621,13 +629,12 @@ By default, numerical values do not have a scale indicator, i.e., they are
normal numbers.
.LP
The roff language defines the following scale indicators.
-.RS
.LP
.na
.nh
.TS
-tab (@);
-LfCB L.
+center, tab(@);
+LfCB Lw(4i).
c@Centimeter
i@Inch
P@Pica\ \(eq\ 1/6\ inch
@@ -644,7 +651,6 @@ scaled point\ \(eq\ 1/\f(CIsizescale\fR of a point (defined in
font \fIDESC\fP file)
T}
.TE
-.RE
.LP
.ad
.hy
@@ -680,13 +686,12 @@ and
Moreover,
.I groff
added the following operators for numerical expressions:
-.RS
.LP
.na
.nh
.TS
-tab (@);
-LfCB L.
+center, tab(@);
+LfCB Lw(4i).
e1\f(CB>?\fPe2@The maximum of \f(CIe1\fP and \f(CIe2\fP.
e1\f(CB<?\fPe2@The minimum of \f(CIe1\fP and \f(CIe2\fP.
\f(CB(\fPc\f(CB;\fPe\f(CB)@T{
@@ -694,7 +699,6 @@ Evaluate \f(CIe\fP using \f(CIc\fP as the default scaling
indicator.
T}
.TE
-.RE
.LP
.ad
.hy
@@ -711,19 +715,18 @@ and the
.request .while
requests.
The following table characterizes the different types of conditions.
-.RS
.LP
.na
.nh
.TS
-tab (@);
-LfCB L.
+center, tab(@);
+LfCB Lw(4i).
\f(CIN\fP@T{
A numerical expression \f(CIN\fP yields true if its value
is\ \f(CR>0\fP.
T}
!\f(CIN\fP@T{
-True if the value of \f(CIN\fP is\ \f(CR<=0\fP.
+True if the value of \f(CIN\fP is\ \f(CR\(<=0\fP.
T}
\&'\f(CIs1\fP'\f(CIs2\fP'@T{
True if string\ \f(CIs1\fP is identical to string\ \f(CIs2\fP.
@@ -746,7 +749,6 @@ True if there is a register named \f(CIreg\fP.
T}
t@Formatter is \fBtroff\fR.
.TE
-.RE
.LP
.ad
.hy
@@ -773,13 +775,12 @@ Refer to the groff info file for all details.
In the following request specifications, most argument names were chosen
to be descriptive.
Only the following denotations need clarification.
-.RS
.LP
.na
.nh
.TS
-tab (@);
-LfCI L.
+center, tab(@);
+LfCI Lw(4i).
c@denotes a single character.
font@T{
a font either specified as a font name or a font number.
@@ -798,7 +799,6 @@ T}
has three meanings depending on its sign, described below.
T}
.TE
-.RE
.LP
.ad
.hy
@@ -1606,7 +1606,7 @@ Temporary indent next line (default scaling indicator\ \c
Enable track kerning for
.argument font .
.
-.REQ .tl \f(CB\*q\fPleft\f(CB\*q\fPcenter\f(CB\*q\fPright\f(CB\*q\fP
+.REQ .tl \f(CB\(cq\fPleft\f(CB\(cq\fPcenter\f(CB\(cq\fPright\f(CB\(cq\fP
Three-part title.
.
.REQ .trf filename
@@ -1705,6 +1705,7 @@ CfCB | CfCB | CfCB.
preprocessor@start macro@ end macro
=
eqn@.PS@.PE
+grap@.G1@.G2
grn@.GS@.GE
pic@.PS@.PE
refer@.R1@.R2
@@ -1731,7 +1732,7 @@ a variable name) by a pair of brackets
.esc[] name
and constant arguments (number expressions and characters) by apostrophes
(ASCII 0x27) like
-.IR \*qconstant\*q .
+.IR \(cqconstant\(cq .
.LP
There are abbreviations for short names.
Two character escape names can be specified by an opening parenthesis like
@@ -1815,7 +1816,7 @@ Macro argument with number
.argument nexp ,
where
.argument nexp
-is a numerical expression evaluating to an integer >=1.
+is a numerical expression evaluating to an integer \(>=1.
.
.ESC $*
In a macro, the concatenation of all the arguments separated by spaces.
@@ -1832,7 +1833,7 @@ escape character in copy mode.
For a printable backslash, use
.esc e .
.
-.ESC \*q
+.ESC \(cq
The acute accent \(aa; same as
.esc( aa .
Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
@@ -2565,8 +2566,8 @@ customizing a document.
.REG nl Vertical position of last printed text base-line.
.REG slimit
If greater than 0, the maximum number of objects on the input stack.
-If <=0 there is no limit, i.e., recursion can continue until virtual memory
-is exhausted.
+If \(<=0 there is no limit, i.e., recursion can continue until virtual
+memory is exhausted.
.REG systat
The return value of the
.I system()
@@ -2668,7 +2669,7 @@ All warnings.
.PD
.LP
.TS
-tab (@), box, expand;
+tab(@), box, expand;
c c c | c c c | c c c
R RI CB | R RI CB | R RI CB.
Bit@Code@Warning@Bit@Code@Warning@Bit@Code@Warning
diff --git a/man/roff.man b/man/roff.man
index 0af435e2..83f6802a 100644
--- a/man/roff.man
+++ b/man/roff.man
@@ -7,35 +7,79 @@ This file is part of groff, the GNU roff type-setting system.
Copyright (C) 2000 Free Software Foundation, Inc.
written by Bernd Warken <bwarken@mayn.de>
-Last update: 28 Apr 2000
+Last update: 17 May 2000
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 the
-Invariant Sections being AUTHOR, with no Front-Cover Texts, and with no
-Back-Cover Texts.
+Invariant Sections being this .ig-section and AUTHOR, with no
+Front-Cover Texts, and with no Back-Cover Texts.
A copy of the Free Documentation License is included as a file called
-fdl.txt in the main directory of the groff source package.
+FDL in the main directory of the groff source package.
..
.
.\" --------------------------------------------------------------------
.\" Setup
.\" --------------------------------------------------------------------
.
+.if n \{\
+. mso tmac.tty-char
+. ftr CR R
+. ftr CI I
+. ftr CB B
+.\}
+.
+.\" text lines in macro definitions or bracketed sections \{...\}
+.de text
+. if 1 \&\\$*\&
+..
+.
.de BIR
.ie (\\n[.$] < 3) \
. BI $@
.el \{\
-. ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
+. ds @tmp@ \fB\\$1\fP\fI\\$2\fP
. shift 2
-\\*[@tmp@]\\fR\\$*\\fP
+. text \\*[@tmp@]\fR\\$*\fP
. rm @tmp@
.\}
..
.
-.ds dquote \&"
-.ds dquote \&"\" make Emacs happy
+.de option
+. ds @tmp@ \f(CB\\$1\fP
+. shift 1
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
+.
+.de 'char
+. ds @tmp@ `\f(CB\\$1\fP'
+. shift
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
+.
+.de esc
+. ds @tmp@ \f(CB\e\\$1\fP
+. shift
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
+.
+.de argname
+. ds @tmp@ \f(CI\\$1\fP
+. shift 1
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
+.
+.de prefixednumber
+. ds @tmp@ \&\\$1\ \f(CR\\$2\fP
+. shift 2
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
.
.\" --------------------------------------------------------------------
.\" Title
@@ -54,51 +98,43 @@ names like
.IR groff ,
etc.
.LP
-The
-.I roff
-type-setting system consists of a formatting language, macro packages,
-preprocessors, postprocessors for output devices, user front-end
-programs, and conversion tools.
+The roff type-setting system consists of a formatting language, macro
+packages, preprocessors, postprocessors for output devices, user
+front-end programs, and conversion tools.
.LP
-The most common
-.I roff
-system today is the free software implementation
+The most common roff system today is the free software implementation
.I groff
-(from "GNU\ roff").
-The pre-groff implementations are referred to as "classical" (dating
+(from `GNU\ roff').
+The pre-groff implementations are referred to as `classical' (dating
back as long as 1973).
.LP
.I groff
is backward-compatible to its classical ancestors, but has many
extensions, and is still evolving.
-As it is available for almost every computer systems it is the de-facto
-.I roff
-standard today.
+As it is available for almost every computer system it is the de-facto
+roff standard today.
.LP
-In spite of its age,
-.I roff
-is in wide use today, e.g., the manual pages on UNIX systems
-.RI ( man
-.IR pages )
-are written in
-.IR roff .
-Its output for text devices is still unmatched, and its graphical output
-has the same quality as the other free type-setting programs and is
-better than some of the commercial systems.
+In spite of its age, roff is in wide use today, e.g., the manual pages
+on UNIX systems
+.RI ( man-pages )
+are written in roff.
+The roff output for text devices is still unmatched, and its graphical
+output has the same quality as the other free type-setting programs and
+is better than some of the commercial systems.
.LP
This document gives only an overview and provides pointers to further
documentation.
-This document is not maintained and might be out of date.
-For the real documentation refer to the
-.I groff
-info file.
-It contains more detailed, actual and concise information.
+
+This document is not maintained and might be out of date. For the real
+documentation refer to the groff info file that contains the detailed,
+actual and concise reference information.
.\" --------------------------------------------------------------------
.SH "FORMATTING LANGUAGE"
.\" --------------------------------------------------------------------
There are three terms that refer to the language of the
.I roff
-system. The term
+system.
+The term
.I troff language
is used when the classical aspects of
.I roff
@@ -114,50 +150,54 @@ is the groff info file. The manual page
.BR groff (@MAN7EXT@)
gives a short description of all predefined language elements.
.LP
-.I roff
-documents are normal text files decorated by formatting elements.
-It is very easy to write high-quality documents by using one of the macro
-packages.
-These are like high-level programming languages, while the bare
-.I roff
+Documents using roff are normal text files decorated by formatting
+elements.
+It is very easy to write high-quality documents by using one of the
+macro packages.
+These are like high-level programming languages, while the bare roff
language compares to a low-level language like C or assembler.
.LP
-The
-.I roff
-language is a full programming language providing low-level requests,
-definition of macros, escape sequences, string variables, number or size
-registers, and C-like flow controls.
-In the 1980s, it was even possible to write the common utilities for system
-administration by only using
-.IR troff .
+The roff language is a full programming language providing low-level
+requests, definition of macros, escape sequences, string variables,
+number or size registers, and C-like flow controls.
+.ig /
+In the 1980s, it was even possible to write the common utilities for
+system administration by only using troff.
There were contests on writing the most unreadable program fake by
-exclusively using
-.IR troff .
+exclusively using troff.
Because of security impacts, these dangerous features were removed in
.IR groff .
+./
.LP
Some clarification on the language elements seems to be wanted.
Requests are basic formatting commands defined by programming languages
like C, C++, etc., whereas macros are formatting commands that are
-written in the
-.I roff
-language.
+written in the roff language.
A document writer will not note any difference in usage for requests or
-macros, both are written on a line on their own starting with a dot `.'.
+macros, both are written on a line on their own starting with a dot
+.'char . .
But the user may define her own macros if desired.
.LP
-Escape sequences are in-line elements starting with a backslash `\e'.
+Escape sequences are in-line elements starting with a backslash
+.'char \e .
They are used to implement various features, including the insertion of
-non-ASCII characters with \fB\e(\fP, the content of strings with
-\fB\e*\fP and register variables with \fB\en\fP, font changes with
-\fB\ef\fP, in-line comments with \fB\e\*[dquote]\fP, the escaping of
-special characters used in the
-.I roff
-language like \fB\e\e\fP, and many other features.
+non-ASCII characters with
+.esc ( ,
+the content of strings with
+.esc *
+and register variables with
+.esc n ,
+font changes with
+.esc f ,
+in-line comments with
+.esc \(dq ,
+the escaping of special control characters like
+.esc \e ,
+and many other features.
.\" --------------------------------------------------------------------
.SH FORMATTERS
.\" --------------------------------------------------------------------
-Formatters are the front-end programs that analize a groff document and
+Formatters are the front-end programs that analyze a groff document and
translate it into a form that is suitable for a special device.
The traditional
.I roff
@@ -169,97 +209,100 @@ for graphical devices.
.LP
These programs still exist in the
.I groff
-implementation, but usually they are accessed thru a program called
+implementation, but usually they are accessed through a program called
.BR groff .
This combined and extended the old functionality into a single program.
It has many command-line options, most of them herited from
.BR troff .
To ease the option jungle, the user-friendly utility
.B grog
-(from "groff guess") was created.
+(from `groff guess') was created.
It tries to guess from the document which arguments should be used and
displays a suitable command line.
Though not being perfect, it is a good starting point.
.\" --------------------------------------------------------------------
.SH PREPROCESSORS
.\" --------------------------------------------------------------------
-There are 4 classical preprocessors that are still available in
-.IR groff :
+The classical preprocessors that are still available in groff.
+.RS
+.LP
+.PD 0
+.TP
.I eqn
-for including mathematical equations,
+for including mathematical equations.
+.TP
+.I grap
+for constructing graphical elements (this preprocessor doesn't come with
+groff; it is an extra package).
+.TP
+.I grn
+for including gremlin pictures.
+.TP
.I pic
-for creating diagrams,
-.I tbl
-for rectangular tables, and
+for creating diagrams.
+.TP
+.I refer
+for bibliographic references.
+.TP
.I soelim
-for including other roff files into a document.
-There were many more preprocessors available in industrial roff
-implementations.
-By the time, some of these will be available in groff as well, e.g., grap
-has been actually developed.
-.LP
-Each of these preprocessors defines a language that is translated into
-roff code when run through the preprocessor program.
-So parts written in these languages may be included within a roff document.
-Such an enhanced document is run thru one or more corresponding
+for including other roff files.
+.TP
+.I tbl
+for rectangular tables.
+.PD
+.RE
+.LP
+Each of these preprocessors defines its own language that is translated
+into roff code when run through the preprocessor program.
+So parts written in these languages may be included within a roff
+document.
+Such an enhanced document is run through one or more corresponding
preprocessors before it is fed into the actual formatter.
-.L
-The preprocessors programs are called
-.BR eqn ,
-.BR pic ,
-.BR tbl ,
-and
-.B soelim
-respectively
-They extract and transform the document parts determined for them.
.LP
-The preprocessor programs can be used within a UNIX pipeline like
+The preprocessor programs extract and transform the document parts
+determined for them.
+They can be called either in a UNIX pipeline with their program name or
+automatically with a groff option.
.LP
-.RS
-.B cat
-.I file
-.B | tbl | groff ...
-.RE
+.TS
+center, box, tab (@);
+C | C
+CfCB | CfCB.
+preprocessor@groff option
+=
+eqn@\-e
+grap@\-G
+grn@\-g
+pic@\-p
+refer@\-R
+tbl@\-r
+soelim@\-s
+.TE
.LP
-Alternatively, each one can be activated by a single character option when
-calling
-.BR groff .
-.LP
-The option letters are easy to remember, classical
-.B troff
-as well as
-.B groff
-use the first character of the preprocessor, i.e.,
-.BR -e ,
-.BR -p ,
-.BR -t ,
-and
-.B -s
-resp.
+.
.\" --------------------------------------------------------------------
.SH "MACRO PACKAGES"
.\" --------------------------------------------------------------------
Macro packages are collections of macros that are suitable to format a
special kind of documents in a convenient way.
-This greatly eases the usage of
-.IR roff .
+This greatly eases the usage of roff.
The macro definitions of a package are kept in a file called
-.I tmac.<name>
+.BI tmac. name
where
-.I <name>
-is the internal
-.I roff
-name for this package.
+.I name
+is the internal roff name for this package.
All tmac files are stored in a single or few directories at standard
positions.
.LP
A macro package that is used in a document is specified by the command line
option
-.B -m
+.option \-m
for the formatter like
-.BI "troff\ -m "\ name
+.option "troff\ \-m"
+.argname name
or
-.BIR "troff\ -m" name .
+.option "groff\ \-m"
+.argname name .
General details on the naming of macro packages and their placement is
found in
.BR tmac (@MAN5EXT@).
@@ -275,18 +318,18 @@ for manual pages and
and
.I mm
for books, articles, and letters.
-Besides these collections,
-.I groff
-provides an increasing multitude of new macro packages for various
-applications, for example integration of or conversion into other file
-formats.
+Besides these collections, groff provides an increasing number of new
+macro packages for various applications, for example integration of or
+conversion into other file formats.
.\" --------------------------------------------------------------------
.SH "FILE NAME EXTENSIONS"
.\" --------------------------------------------------------------------
Manual pages (man-pages) take the section number as a file name
extension, e.g., the filename for this document is
.IR roff.7 ,
-i.e., it is kept in section\ 7 of the man-pages.
+i.e., it is kept in
+.prefixednumber section 7
+of the man-pages.
.LP
The classical macro packages take the package name as an extension, e.g.
.IB file. me
@@ -304,6 +347,7 @@ for
.I pic
files,
etc.
+.ig
.LP
But there is no general naming scheme for roff documents, though
.IB file. roff
@@ -322,6 +366,7 @@ This process is not well documented, so here an example
where
.B lesspipe
is either a system supplied command or a shell script of your own.
+..
.\" --------------------------------------------------------------------
.SH EDITING
.\" --------------------------------------------------------------------
@@ -337,6 +382,7 @@ in all flavors of the Emacs editor.
.B GROFF_TMAC_PATH
A colon separated list of directories in which to search for
macro files, see
+.BR tmac (@MAN5EXT@).
.TP
.SM
.B GROFF_TYPESETTER
@@ -349,7 +395,7 @@ A colon separated list of directories in which to search for the
directory.
.B troff
will search in directories given in the
-.B \-F
+.option \-F
option before these, and in standard directories
.RB ( .:/usr/local/share/groff/font:/usr/lib/font )
after these.
@@ -360,22 +406,22 @@ By default,
.I groff
installs all of its library files in a directory tree under
.IR /usr/local/share/groff .
-This location might vary for different systems systems.
+This location might vary for different systems.
In the following, this directory is referred to as
-.BR GROFF_DIR .
+.IR <groff_dir> .
.LP
.TP
-.B GROFF_DIR/tmac/troffrc
-Initialization file
+.IB <groff_dir> /tmac/troffrc
+Initialization file for troff.
.TP
-.BI GROFF_DIR/tmac/tmac. name
-Macro files
+.IB <groff_dir> /tmac/tmac. name
+Macro files.
.TP
-.BI GROFF_DIR/font/dev name /DESC
+.IB <groff_dir> /font/dev name /DESC
Device description file for device
.IR name .
.TP
-.BI GROFF_DIR/font/dev name / F
+.IB <groff_dir> /font/dev name / F
Font file for font
.I F
of device
@@ -389,14 +435,16 @@ temporarily.
.\" --------------------------------------------------------------------
.SH AUTHOR
.\" --------------------------------------------------------------------
-This document was written by Bernd Warken <bwarken@mayn.de> and is part
-of the GNU roff distribution.
-.LP
-It is distributed under the terms of the GFDL (GNU Free Documentation
-License) version 1.1 or later.
-You should have received a copy of the GFDL on your system, it is also
-available on-line under
-.IR <http://www.gnu.org/copyright/fdl.html> .
+This document is part of groff, the GNU roff distribution. It was
+written by Bernd Warken <bwarken@mayn.de>.
+.LP
+It is distributed under the terms of the FDL (GNU Free Documentation
+License) version 1.1 or later. You should have received a copy of the
+FDL on your system, it is also available on-line under
+.RS
+.LP
+.IR <http://www.gnu.org/copyleft/fdl.html> .
+.RE
.\" --------------------------------------------------------------------
.SH "SEE ALSO"
.\" --------------------------------------------------------------------
@@ -449,7 +497,7 @@ The man pages for macro packages include
and
.BR groff_msafer (@MAN7EXT@).
.LP
-The following utils are available:
+The following utilities are available:
.BR addftinfo (@MAN1EXT@),
.BR afmtodif (@MAN1EXT@),
.BR hpftodit (@MAN1EXT@),
@@ -479,5 +527,5 @@ documents are still available on-line.
Especially informative are the original Bell Labs proceedings for the old,
free UNIX 7 found at
.I http://cm.bell-labs.com/cm/cs/cstr.html
-and the Collection of Richard S. Stevens at
+and the collection of the late Richard S. Stevens at
.IR http://www.kohala.com/start/troff/ .
diff --git a/src/preproc/tbl/main.cc b/src/preproc/tbl/main.cc
index 8a559e8d..5ff69e89 100644
--- a/src/preproc/tbl/main.cc
+++ b/src/preproc/tbl/main.cc
@@ -234,9 +234,10 @@ void process_input_file(FILE *fp)
{
table_input input(fp);
process_table(input);
+ if (input.ended())
+ printf(".if '\\*(.T'html' \\X(table-end(\n");
set_troff_location(current_filename, current_lineno);
if (input.ended()) {
- printf(".if '\\*(.T'html' \\X(table-end(\n");
fputs(".TE", stdout);
while ((c = getc(fp)) != '\n') {
if (c == EOF) {
diff --git a/tmac/groff_man.man b/tmac/groff_man.man
index 7a3068e7..14bd3b0c 100644
--- a/tmac/groff_man.man
+++ b/tmac/groff_man.man
@@ -68,8 +68,15 @@ Enumeration of pages will start with
.I nnn
rather than with\ 1.
.TP
+.BI \-rS xx
+Base document font size is
+.I xx
+points
+.RI ( xx
+can be 10, 11, or\ 12) rather than 10\ points.
+.TP
.BI \-rX nnn
-After page
+After page\ \c
.IR nnn ,
number pages as
.IR nnn a,
@@ -130,18 +137,18 @@ Prints out all the text following
up to the end of the line (resp. the text in the next line if there is no
argument to
.BR SH )
-in bold face, at a default size of 9\ point.
+in bold face, one size larger than the base document size.
Additionally, the left margin for the following text is reset to its default
value.
.TP
.BI ".SS [" "text for a heading" ]
-Sets up an unnumbered section heading.
+Sets up an secondary, unnumbered section heading.
Prints out all the text following
.B SS
up to the end of the line (resp. the text in the next line if there is no
argument to
.BR SS )
-in bold face, at a default size of 10\ point.
+in bold face, at the same size as the base document size.
Additionally, the left margin for the following text is reset to its default
value.
.TP
diff --git a/tmac/groff_tmac.man b/tmac/groff_tmac.man
index 8f29bc58..9e1f8e05 100755
--- a/tmac/groff_tmac.man
+++ b/tmac/groff_tmac.man
@@ -1,40 +1,80 @@
.\" -*- nroff -*-
-.ig
-groff_tmac.man
+.ig /
+groff_tmac.5
-This is part of groff, the GNU roff type-setting system.
+This file is part of groff, the GNU roff type-setting system.
Copyright (C) 2000 Free Software Foundation, Inc.
written by Bernd Warken <bwarken@mayn.de>
+Last update: 17 May 2000
+
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 the
-Invariant Sections being "LICENSE TEXT", "AUTHOR", and this unprinted
-preface you are reading now, with no Front-Cover Texts, and with no
-Back-Cover Texts.
+Invariant Sections being this .ig-section and AUTHOR, with no
+Front-Cover Texts, and with no Back-Cover Texts.
A copy of the Free Documentation License is included as a file called
-fdl.txt in the main directory of the groff source package.
-..
+FDL in the main directory of the groff source package.
+./
.
.\" --------------------------------------------------------------------
.\" Setup
.\" --------------------------------------------------------------------
.
+.if n \{\
+. mso tmac.tty-char
+. ftr CR R
+. ftr CI I
+. ftr CB B
+.\}
+.
+.\" text lines in macro definitions or bracketed sections \{...\}
+.de text
+. if 1 \&\\$*\&
+..
+.
.de BIR
. ie (\\n[.$] < 3) \
. BI $@
. el \{\
-. ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
+. ds @tmp@ \fB\\$1\fP\fI\\$2\fP
. shift 2
-\\*[@tmp@]\\fR\\$*\\fP
+. text \\*[@tmp@]\fR\\$*\fP
. rm @tmp@
. \}
..
.
-.ds dquote \&"
-.ds dquote \&"\" make Emacs happy
+.de 'char
+. ds @tmp@ `\f(CB\\$1\fP'
+. shift
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
+.
+.de option
+. ds @tmp@ \f(CB\\$1\fP
+. shift 1
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
+.
+.als shellcommand option
+.
+.de argument
+. ds @tmp@ \f(CI\\$1\fP
+. shift 1
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
+.
+.de request
+. ds @tmp@ \f(CB\\$1\fP
+. shift 1
+. text \\*[@tmp@]\\$*
+. rm @tmp@
+..
.
.\" --------------------------------------------------------------------
.\" Title
@@ -63,20 +103,21 @@ directories.
.\" --------------------------------------------------------------------
.SH NAMING
.\" --------------------------------------------------------------------
-In classical
-.I roff
-systems, there was a funny naming scheme. If the name of a macro
-package started with `m' this letter was omitted, e.g., the macro package
-for the man pages
+In classical roff systems, there was a funny naming scheme.
+If the name of a macro package started with
+.'char m
+this letter was omitted, e.g., the macro package for the man pages
.I man
was called
.I an
and its macro file
.IR tmac.an .
.LP
-By a similar reasoning, macro packages that did not start with an `m'
-were often referred to by adding an `m', e.g., the package corresponding
-to
+By a similar reasoning, macro packages that did not start with an
+.'char m
+were often referred to by adding an
+.'char m ,
+ e.g., the package corresponding to
.I tmac.doc
was called
.I mdoc
@@ -89,8 +130,10 @@ because the command-line for activating it reads
Actual versions of
.BR groff (@MAN1EXT@)
provide both naming schemes for the inflicted macro packages, with and
-without the leading `m'. So in
-.I groff
+without the leading
+.'char m .
+So in
+.IR groff ,
the
.I man
macro package may be specified as
@@ -112,23 +155,22 @@ directories.
For example, a file called
.BI tmac. anything
determines a macro package named
-.I anything
-or
-.IR manything .
+.IR anything .
.LP
In
.IR groff ,
most macro packages are described in man pages called
.BR groff_<name> (@MAN7EXT@),
with a leading
-.I m
+.'char m
for the classical packages.
.\" --------------------------------------------------------------------
.SH INCLUSION
.\" --------------------------------------------------------------------
There are several ways to use a macro package in documents. At
run-time, the groff option
-.BI \-m name
+.option \-m \ \c
+.argument name
makes the definitions in the macro file
.BI tmac. name
available as described in the section
@@ -136,31 +178,32 @@ available as described in the section
.LP
It is also possible to include the macro file into the document by using
the groff requests
-.B .so
+.request .so
or
-.BR .mso .
+.request .mso .
For
-.B .so
-the full filename of the macro file must be specified including the
-directory where it is kept. If the macro file is stored in one of the
-tmac directories it is more convenient to use
-.BR .mso
+.request .so
+the full filename of the macro file must be specified \(em including the
+directory where it is kept.
+If the macro file is stored in one of the tmac directories it is more
+convenient to use
+.request .mso
instead because it additionally searches the tmac path for the filename.
.LP
Note that in order to resolve the
-.B .so
+.request .so
and
-.B .mso
+.request .mso
requests the roff preprocessor
-.B soelim
+.shellcommand soelim
must be called. This can be done either directly by a pipeline on the
command line or by using the
-.B \-s
+.option \-s
option of
-.BR groff .
+.shellcommand groff .
.LP
You can also supply the letter
-.B s
+.'char s
in the preprocessor word as described in section
.BR CONVENTION .
.LP
@@ -172,39 +215,33 @@ and is used in some document called
At run-time, the formatter call for this is
.RS
.LP
-.B groff
-.BI \-m macros
-.I docu.roff
+.ft CR
+.shellcommand "groff\ \-m"
+.argument macros
+.argument docu.roff
+.ft P
.RE
.LP
To include the macro file directly in the document either
.RS
-.LP
-.nf
-\&\.\e\*[dquote] s
+.ft CR
\&\.mso tmac.macros
-... text
-.fi
+.ft P
.RE
-.LP
-or
+is used or
.RS
-.LP
-.nf
-\&\.\e\*[dquote] s
+.ft CR
\&\.so /usr/share/groff/tmac/tmac.macros
-... text
-.fi
+.ft P
.RE
.LP
-is used.
-.LP
In both cases, the formatter is called with
+.ft CR
.RS
-.LP
-.B groff\ \-s
-.I docu.roff
+groff\ \-s docu.roff
.RE
+.ft P
+.
.\" --------------------------------------------------------------------
.SH CONVENTION
.\" --------------------------------------------------------------------
@@ -220,31 +257,29 @@ comment characters and a blank) constitutes the
.BR word .
That means that the letters of this word are interpreted as
abbreviations for those preprocessor commands that should be run
-when formatting the document. Mostly, only the 4 letters
-.BR e ,
-.BR p ,
-.BR s ,
-and
-.BR t
-are recognized which stand for the classical preprocessors
-.BR eqn ,
-.BR pic ,
-.BR tbl ,
-and
-.B soelim
-resp., see
-.BR roff (@MAN7EXT@).
+when formatting the document. Mostly, only the letters corresponding to
+the options for the preprocessors are recognized,
+.'char e ,
+.'char G ,
+.'char g ,
+.'char p ,
+.'char R ,
+.'char s , and
+.'char t
+(see
+.BR roff (@MAN7EXT@)).
.LP
-Besides being a good reminder for the user, some formatters are even
-able to automatically start the preprocessors specified in the
-preprocessor word, but do not bet on this.
+Besides being a good reminder for the user, some formatters (like the
+.BR man (1)
+program) are even able to automatically start the preprocessors
+specified in the preprocessor word, but do not bet on this.
.\" --------------------------------------------------------------------
.SH "WRITING A MACRO FILE"
.\" --------------------------------------------------------------------
Writing a groff macro file is easy. Design a set of macros, strings,
registers, etc. Store them in a single file. Documents that use the
macros include this macro file with the
-.B .so
+.request .so
request as described in the
.B INCLUSION
section.
@@ -254,9 +289,9 @@ To use the tmac functionality, call the macro file
and put it in some directory of the tmac path, cf. section
.BR FILES .
Then documents can include it with the
-.B .mso
+.request .mso
request or the
-.B groff -m
+.shellcommand "groff\ \-m"
option as described in the
.B INCLUSION
section.
@@ -269,26 +304,26 @@ source directory.
Some general guidelines might be helpful in writing macros.
.IP \(bu 2m
Double all functional backslashes,
-.RB ` \e '
+.'char \e
->
-.RB ` \e\e '.
+.'char \e\e .
.IP \(bu 2m
All printable backslashes must be written as
-.RB ` \ee '.
+.'char \ee .
.IP \(bu 2m
Escape all dots,
-.RB ` . '
+.'char .
->
-.RB ` \e. '.
+.'char \e. .
.IP \(bu 2m
Make ample use of the non-printable character
-.RB ` \e& '
+.'char \e&
in text parts, esp. before
-.RB ` \e '
+.'char \e
and at the beginning of a line, but not before a delayed command.
.IP \(bu 2m
Use the character
-.RB ` @ '
+.'char @
in temporary variable names.
.IP \(bu 2m
Test your macros for text and graphical devices, e.g.,
@@ -300,9 +335,7 @@ and
.\" --------------------------------------------------------------------
All macro names that want to use the tmac mechanism must be named
according to the form
-.RS
.BIR tmac. name .
-.RE
.LP
The macro files are kept in the
.B tmac
@@ -341,15 +374,21 @@ temporarily.
.\" --------------------------------------------------------------------
.SH AUTHOR
.\" --------------------------------------------------------------------
-This document is copyrighted by the Free Software Foundation, was
-written by Bernd Warken <bwarken@mayn.de> and may be distributed under
-the GNU Free Document License (FDL).
+This document is part of groff, the GNU roff distribution. It was
+written by Bernd Warken <bwarken@mayn.de>.
+.LP
+It is distributed under the terms of the FDL (GNU Free Documentation
+License) version 1.1 or later. You should have received a copy of the
+FDL on your system, it is also available on-line under
+.RS
+.LP
+.IR <http://www.gnu.org/copyleft/fdl.html> .
+.RE
.\" --------------------------------------------------------------------
.SH "SEE ALSO"
.\" --------------------------------------------------------------------
The authoritative source of information for all details of the groff
-system is the
-.I groff
+system is the groff
.BR info (1)
file.
.LP
@@ -377,6 +416,5 @@ and the formatters in
.BR troff (@MAN1EXT@).
.LP
The Filesystem Hierarchy Standard (FHS) is available at
-.B http://www.pathname.com/fhs/
-and the Free Document License at
-.BR http://www.gnu.org/copyleft/ .
+.BR http://www.pathname.com/fhs/ .
+
diff --git a/tmac/tmac.an b/tmac/tmac.an
index efd271eb..7d1224d3 100755
--- a/tmac/tmac.an
+++ b/tmac/tmac.an
@@ -1,350 +1,429 @@
-.\"Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
-.\" Written by James Clark (jjc@jclark.com)
+.\" Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
+.\" Written by James Clark (jjc@jclark.com)
.\"
-.\"This file is part of groff.
+.\" This file is part of groff.
.\"
-.\"groff is free software; you can redistribute it and/or modify it under
-.\"the terms of the GNU General Public License as published by the Free
-.\"Software Foundation; either version 2, or (at your option) any later
-.\"version.
+.\" groff is free software; you can redistribute it and/or modify it under
+.\" the terms of the GNU General Public License as published by the Free
+.\" Software Foundation; either version 2, or (at your option) any later
+.\" version.
.\"
-.\"groff is distributed in the hope that it will be useful, but WITHOUT ANY
-.\"WARRANTY; without even the implied warranty of MERCHANTABILITY or
-.\"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-.\"for more details.
+.\" groff is distributed in the hope that it will be useful, but WITHOUT ANY
+.\" WARRANTY; without even the implied warranty of MERCHANTABILITY or
+.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+.\" for more details.
.\"
-.\"You should have received a copy of the GNU General Public License along
-.\"with groff; see the file COPYING. If not, write to the Free Software
-.\"Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.\" You should have received a copy of the GNU General Public License along
+.\" with groff; see the file COPYING. If not, write to the Free Software
+.\" Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\"
-.\" -rC1 => number pages continuously, rather than start each at 1
-.\" -rD1 => double-sided printing, ie different odd and even page footers
-.\" -rPnnn => number first page nnn
-.\" -rXnnn => number pages after nnn as nnna, nnnb, nnnc, ...
+.\" -rC1 => number pages continuously, rather than start each at 1
+.\" -rD1 => double-sided printing, ie different odd and even page footers
+.\" -rPnnn => number first page nnn
+.\" -rSxx => use size `xx'pt (either 10, 11, or 12) for document rather
+.\" than the default size of 10pt
+.\" -rXnnn => number pages after nnn as nnna, nnnb, nnnc, ...
.\"
.\" The file man.local is loaded at the end. Put local additions there.
.\" If you need to add things to TH, use `.am TH'.
.\"
+.
.if !\n(.g .ab These man macros work only with groff.
+.
.nr _C \n(.C
.cp 0
+.
.if !rD .nr D 0
.if !rC .nr C 0
+.if !rS .nr S 10
.if rP .pn 0\nP
+.
.de set-an-margin
. nr an-margin \\n[IN]
..
+.
.\" .TH title section extra1 extra2 extra3
.de TH
-.cp 0
-.de an-init \" We have to do it like this to get multiple man pages right.
-.ds an-title "\\$1
-.ds an-section "\\$2
-.ds an-extra1 "\\$3
-.ie \\n[.$]>3 .ds an-extra2 "\\$4
-.el .ds an-extra2 \"Sun Release 4.0
-.ie \\n[.$]>4 .ds an-extra3 "\\$5
-.el .ds an-extra3 \"System Programmer's Manual
-.ds an-init
+. cp 0
+.
+. de an-init \" We have to do it like this to get multiple man pages right.
+. ds an-title "\\$1
+. ds an-section "\\$2
+. ds an-extra1 "\\$3
+. ie \\n[.$]>3 .ds an-extra2 "\\$4
+. el .ds an-extra2 \"Sun Release 4.0
+. ie \\n[.$]>4 .ds an-extra3 "\\$5
+. el .ds an-extra3 \"System Programmer's Manual
+. ds an-init
\\..
-.DT
-.ie '\*(.T'html' \{\
-. nr IN 1.2i
-.\}
-.el \{\
-. nr IN 7.2n
-.\}
-.nr LL 6.5i
-.PD
-.nr PS 10 \" normal point-size
-.nr SN 3n \" the indentation of sub-sub-headings relative to sub-headings
-.nr an-level 1
-.set-an-margin
-.nr an-prevailing-indent \\n[IN]
-.nr an-tag-sep 1n
-.nr an-no-space-flag 0
-.nr an-break-flag 0
-.nr an-div? 0
-.wh 0 an-header
-.wh -1i an-footer
-.wh -.5i an-p-footer
-.if \\n[nl]>0 \{\
-. ie \\nC .bp \\n%+1
-. el .bp 1
-.\}
+.
+. DT
+.
+.\" use sizes similar to LaTeX
+. ie (\\nS == 11) \{\
+. nr PS 10.95z
+. nr PS-SS 10.95z
+. nr PS-SH 12z
+. nr VS 13.6p
+. \}
+. el \{\
+. ie (\\nS == 12) \{\
+. nr PS 12z
+. nr PS-SS 12z
+. nr PS-SH 14.4z
+. nr VS 14.5p
+. \}
+. el \{\
+. nr PS 10z \" default point size
+. nr PS-SS 10z
+. nr PS-SH 10.95z
+. nr VS 12p
+. \}
+. \}
+.
+. ps \\n[PS]u
+. vs \\n[VS]u
+.
+. ie '\*(.T'html' .nr IN 1.2i
+. el .nr IN 7.2n
+. nr LL 6.5i
+. PD
+. nr SN 3n \" the indentation of sub-sub-headings relative to sub-headings
+. nr an-level 1
+. set-an-margin
+. nr an-prevailing-indent \\n[IN]
+. nr an-tag-sep 1n
+.
+. nr an-no-space-flag 0
+. nr an-break-flag 0
+. nr an-div? 0
+.
+. wh 0 an-header
+. wh -1i an-footer
+. wh -.5i an-p-footer
+.
+. if (\\n[nl] > 0) \{\
+. ie \\nC .bp (\\n% + 1)
+. el .bp 1
+. \}
..
+.
.de DT
-.ta T .5i \" This sets tabs every .5 inches
+. ta T .5i \" This sets tabs every .5 inches
..
+.
.de PD
-.ie \\n[.$] .nr PD (v;\\$1)
-.el .nr PD .4v>?\n[.V]
+. ie \\n[.$] .nr PD (v;\\$1)
+. el .nr PD (.4v >? \n[.V])
..
+.
.de an-header
-.an-init
-.ev 1
-.ie '\*(.T'html' \{\
-. tl ''''
-.\}
-.el \{\
-. sp .5i
-. tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])'
-. sp |1i
-.\}
-.ev
-.ns
+. an-init
+. ev 1
+. ps \\n[PS]u
+. vs \\n[VS]u
+. ie '\*(.T'html' \
+. tl ''''
+. el \{\
+. sp .5i
+. tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])'
+. sp |1i
+. \}
+. ev
+. ns
..
+.
.de an-footer
-'bp
+' bp
..
+.
.af an-page-letter a
+.
.de an-p-footer
-.ev 1
-.ie '\*(.T'html' \{\
-. ds an-page-string "
-. ds an-extra1 "
-. ds an-extra2 "
-.\}
-.el .ds an-page-string \\n%
-.if rX \{\
-. if \\n%>\\nX \{\
-. nr an-page-letter \\n%-\\nX
-. ds an-page-string \\nX\\n[an-page-letter]
-.\}\}
-.ie \\nD \{\
-. if o .tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
-. if e .tl '\\*[an-page-string]'\\*[an-extra1]'\\*[an-extra2]'
-.\}
-.el .tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
-.if '\*(.T'html' \{\
-. tl ''''
-.\}
-.ev
+. ev 1
+. ps \\n[PS]u
+. vs \\n[VS]u
+. ie '\*(.T'html' \{\
+. ds an-page-string "
+. ds an-extra1 "
+. ds an-extra2 "
+. \}
+. el \
+. ds an-page-string \\n%
+. if rX \{\
+. if (\\n% > \\nX) \{\
+. nr an-page-letter (\\n% - \\nX)
+. ds an-page-string \\nX\\n[an-page-letter]
+. \}
+. \}
+. ie '\*(.T'html' \
+. tl ''''
+. el \{\
+. ie \\nD \{\
+. if o .tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
+. if e .tl '\\*[an-page-string]'\\*[an-extra1]'\\*[an-extra2]'
+. \}
+. el \
+. tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]'
+. \}
+. ev
..
+.
.de SH
-.sp \\n[PD]u
-.nr an-level 1
-.set-an-margin
-.nr an-prevailing-indent \\n[IN]
-.fi
-.in \\n[an-margin]u
-.ti 0
-.it 1 an-trap
-.nr an-no-space-flag 1
-.nr an-break-flag 1
-.ps \\n[PS]-1
-.ft B
-.ne 2v+1u
-.if \\n[.$] \&\\$*
+. sp \\n[PD]u
+. nr an-level 1
+. set-an-margin
+. nr an-prevailing-indent \\n[IN]
+. fi
+. in \\n[an-margin]u
+. ti 0
+. it 1 an-trap
+. nr an-no-space-flag 1
+. nr an-break-flag 1
+. ps \\n[PS-SH]u
+. ft B
+. ne (2v + 1u)
+. if \\n[.$] \&\\$*
..
+.
.de SS
-.sp \\n[PD]u
-.nr an-level 1
-.set-an-margin
-.nr an-prevailing-indent \\n[IN]
-.fi
-.in \\n[IN]u
-.ti \\n[SN]u
-.it 1 an-trap
-.nr an-no-space-flag 1
-.nr an-break-flag 1
-.ps \\n[PS]
-.ft B
-.ne 2v+1u
-.if \\n[.$] \&\\$*
+. sp \\n[PD]u
+. nr an-level 1
+. set-an-margin
+. nr an-prevailing-indent \\n[IN]
+. fi
+. in \\n[IN]u
+. ti \\n[SN]u
+. it 1 an-trap
+. nr an-no-space-flag 1
+. nr an-break-flag 1
+. ps \\n[PS-SS]u
+. ft B
+. ne (2v + 1u)
+. if \\n[.$] \&\\$*
..
+.
.de B
-.it 1 an-trap
-.ft B
-.if \\n[.$] \&\\$*
+. it 1 an-trap
+. ft B
+. if \\n[.$] \&\\$*
..
+.
.de I
-.it 1 an-trap
-.ft I
-.if \\n[.$] \&\\$*
+. it 1 an-trap
+. ft I
+. if \\n[.$] \&\\$*
..
+.
.de SM
-.it 1 an-trap
-.ps -1
-.if \\n[.$] \&\\$*
+. it 1 an-trap
+. ps -1
+. if \\n[.$] \&\\$*
..
+.
.de SB
-.it 1 an-trap
-.ps -1
-.ft B
-.if \\n[.$] \&\\$*
+. it 1 an-trap
+. ps -1
+. ft B
+. if \\n[.$] \&\\$*
..
+.
.de TP
-.sp \\n[PD]u
-.if \\n[.$] .nr an-prevailing-indent (n;\\$1)
-.it 1 an-trap
-.if !\\n[an-div?] .di an-div
-.in 0
-.nr an-div? 1
+. sp \\n[PD]u
+. if \\n[.$] .nr an-prevailing-indent (n;\\$1)
+. it 1 an-trap
+. if !\\n[an-div?] .di an-div
+. in 0
+. nr an-div? 1
..
+.
.de an-trap
-.ft R
-.ps \\n[PS]
-.if \\n[an-break-flag] \{\
-. br
-. nr an-break-flag 0
-.\}
-.if \\n[an-no-space-flag] \{\
-. ns
-. nr an-no-space-flag 0
-.\}
-.if \\n[an-div?] .an-do-tag
+. ft R
+. ps \\n[PS]u
+. vs \\n[VS]u
+. if \\n[an-break-flag] \{\
+. br
+. nr an-break-flag 0
+. \}
+. if \\n[an-no-space-flag] \{\
+. ns
+. nr an-no-space-flag 0
+. \}
+. if \\n[an-div?] .an-do-tag
..
+.
.de an-do-tag
-.nr an-div? 0
-.br
-.di
-.ie \\n[dl]+\\n[an-tag-sep]>\\n[an-prevailing-indent] \{\
-. in \\n[an-margin]u
-. ne 2v+1u
-. an-div
-. br
-. in \\n[an-margin]u+\\n[an-prevailing-indent]u
-.\}
-.el \{\
-. in \\n[an-margin]u+\\n[an-prevailing-indent]u
-. ti -\\n[an-prevailing-indent]u
-. chop an-div
-. ne 1v+1u
+. nr an-div? 0
+. br
+. di
+. ie (\\n[dl] + \\n[an-tag-sep] > \\n[an-prevailing-indent]) \{\
+. in \\n[an-margin]u
+. ne (2v + 1u)
+. an-div
+. br
+. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
+. \}
+. el \{\
+. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
+. ti -\\n[an-prevailing-indent]u
+. chop an-div
+. ne (1v + 1u)
\\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c
-.\}
+. \}
..
+.
.de LP
-.br
-.sp \\n[PD]u
-.ps \\n[PS]
-.ft R
-.in \\n[an-margin]u
-.nr an-prevailing-indent \\n[IN]
+. br
+. sp \\n[PD]u
+. ps \\n[PS]u
+. vs \\n[VS]u
+. ft R
+. in \\n[an-margin]u
+. nr an-prevailing-indent \\n[IN]
..
+.
.als PP LP
.als P LP
+.
.de IP
-.ie !\\n[.$] \{\
-. ps \\n[PS]
-. ft R
-. sp \\n[PD]u
-. ne 1v+1u
-. in \\n[an-margin]u+\\n[an-prevailing-indent]u
-.\}
-.el \{\
-. ie \\n[.$]-1 .TP "\\$2"
-. el .TP
+. ie !\\n[.$] \{\
+. ps \\n[PS]u
+. vs \\n[VS]u
+. ft R
+. sp \\n[PD]u
+. ne (1v + 1u)
+. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
+. \}
+. el \{\
+. ie (\\n[.$] - 1) .TP "\\$2"
+. el .TP
\&\\$1
-.\}
+. \}
..
+.
.de HP
-.ps \\n[PS]
-.ft R
-.sp \\n[PD]u
-.ne 1v+1u
-.if \\n[.$] .nr an-prevailing-indent (n;\\$1)
-.in \\n[an-margin]u+\\n[an-prevailing-indent]u
-.ti \\n[an-margin]u
+. ps \\n[PS]u
+. vs \\n[VS]u
+. ft R
+. sp \\n[PD]u
+. ne (1v + 1u)
+. if \\n[.$] .nr an-prevailing-indent (n;\\$1)
+. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
+. ti \\n[an-margin]u
..
+.
.ds an-empty \" this is referenced to avoid looping on eg .RB ( \\ )
+.
.de RI
-.if \\n[.$] \{\
-. ds an-result \&\\$1
-. shift
-. while \\n[.$]>=2 \{\
-. as an-result \,\fI\\$1\fR\/\\$2\\*[an-empty]
-. shift 2
-. \}
-. if \\n[.$] .as an-result \,\fI\\$1\fR
+. if \\n[.$] \{\
+. ds an-result \&\\$1
+. shift
+. while (\\n[.$] >= 2) \{\
+. as an-result \,\fI\\$1\fR\/\\$2\\*[an-empty]
+. shift 2
+. \}
+. if \\n[.$] .as an-result \,\fI\\$1\fR
\\*[an-result]
-.\}
+. \}
..
+.
.de IR
-.if \\n[.$] \{\
-. ds an-result \&\fI\\$1\fR
-. shift
-. while \\n[.$]>=2 \{\
-. as an-result \/\\$1\fI\,\\$2\fR
-. shift 2
-. \}
-. if \\n[.$] .as an-result \/\\$1
+. if \\n[.$] \{\
+. ds an-result \&\fI\\$1\fR
+. shift
+. while (\\n[.$] >= 2) \{\
+. as an-result \/\\$1\fI\,\\$2\fR
+. shift 2
+. \}
+. if \\n[.$] .as an-result \/\\$1
\\*[an-result]
-.\}
+. \}
..
+.
.de IB
-.if \\n[.$] \{\
-. ds an-result \&\fI\\$1
-. shift
-. while \\n[.$]>=2 \{\
-. as an-result \/\\fB\\$1\fI\,\\$2\\*[an-empty]
-. shift 2
-. \}
-. if \\n[.$] .as an-result \/\\fB\\$1
+. if \\n[.$] \{\
+. ds an-result \&\fI\\$1
+. shift
+. while (\\n[.$] >= 2) \{\
+. as an-result \/\fB\\$1\fI\,\\$2\\*[an-empty]
+. shift 2
+. \}
+. if \\n[.$] .as an-result \/\fB\\$1
\\*[an-result]
-. ft R
-.\}
+. ft R
+. \}
..
+.
.de BI
-.if \\n[.$] \{\
-. ds an-result \&\fB\\$1
-. shift
-. while \\n[.$]>=2 \{\
-. as an-result \,\fI\\$1\fB\/\\$2\\*[an-empty]
-. shift 2
-. \}
-. if \\n[.$] .as an-result \,\fI\\$1
+. if \\n[.$] \{\
+. ds an-result \&\fB\\$1
+. shift
+. while (\\n[.$] >= 2) \{\
+. as an-result \,\fI\\$1\fB\/\\$2\\*[an-empty]
+. shift 2
+. \}
+. if \\n[.$] .as an-result \,\fI\\$1
\\*[an-result]
-. ft R
-.\}
+. ft R
+. \}
..
+.
.de RB
-.ds an-result \&
-.while \\n[.$]>=2 \{\
-. as an-result \fR\\$1\fB\\$2\\*[an-empty]
-. shift 2
-.\}
-.if \\n[.$] .as an-result \fR\\$1
+. ds an-result \&
+. while (\\n[.$] >= 2) \{\
+. as an-result \fR\\$1\fB\\$2\\*[an-empty]
+. shift 2
+. \}
+. if \\n[.$] .as an-result \fR\\$1
\\*[an-result]
-.ft R
+. ft R
..
+.
.de BR
-.ds an-result \&
-.while \\n[.$]>=2 \{\
-. as an-result \fB\\$1\fR\\$2\\*[an-empty]
-. shift 2
-.\}
-.if \\n[.$] .as an-result \fB\\$1
+. ds an-result \&
+. while (\\n[.$] >= 2) \{\
+. as an-result \fB\\$1\fR\\$2\\*[an-empty]
+. shift 2
+. \}
+. if \\n[.$] .as an-result \fB\\$1
\\*[an-result]
-.ft R
+. ft R
..
+.
.de RS
-.br
-.nr an-saved-margin\\n[an-level] \\n[an-margin]
-.nr an-saved-prevailing-indent\\n[an-level] \\n[an-prevailing-indent]
-.ie \\n[.$] .nr an-margin +(n;\\$1)
-.el .nr an-margin +\\n[an-prevailing-indent]
-.in \\n[an-margin]u
-.nr an-prevailing-indent \\n[IN]
-.nr an-level +1
+. br
+. nr an-saved-margin\\n[an-level] \\n[an-margin]
+. nr an-saved-prevailing-indent\\n[an-level] \\n[an-prevailing-indent]
+. ie \\n[.$] .nr an-margin +(n;\\$1)
+. el .nr an-margin +\\n[an-prevailing-indent]
+. in \\n[an-margin]u
+. nr an-prevailing-indent \\n[IN]
+. nr an-level +1
..
+.
.de RE
-.br
-.ie \\n[.$] .nr an-level (;\\$1)<?\\n[an-level]
-.el .nr an-level -1
-.nr an-level 1>?\\n[an-level]
-.nr an-margin \\n[an-saved-margin\\n[an-level]]
-.nr an-prevailing-indent \\n[an-saved-prevailing-indent\\n[an-level]]
-.in \\n[an-margin]u
+. br
+. ie \\n[.$] .nr an-level ((;\\$1) <? \\n[an-level])
+. el .nr an-level -1
+. nr an-level (1 >? \\n[an-level])
+. nr an-margin \\n[an-saved-margin\\n[an-level]]
+. nr an-prevailing-indent \\n[an-saved-prevailing-indent\\n[an-level]]
+. in \\n[an-margin]u
..
+.
.ds S \s[\\n[PS]]
.ie c\[rg] .ds R \[rg]
-.el .ds R (Reg.)
+.el .ds R (Reg.)
.ie c\[tm] .ds Tm \[tm]
-.el .ds Tm (TM)
+.el .ds Tm (TM)
.ds lq \(lq
.ds rq \(rq
+.
.hy 14
+.
.\" Load local modifications.
.mso man.local
+.
.cp \n(_C
+.
+.\" end of tmac.an