summaryrefslogtreecommitdiff
path: root/tmac
diff options
context:
space:
mode:
authorwlemb <wlemb>2000-05-22 06:21:49 +0000
committerwlemb <wlemb>2000-05-22 06:21:49 +0000
commit086d69cc31f1615c03ddd475241eeed7e5dea4bb (patch)
treef469a96f90bccaf78a7a4a08fa07e76ee5dad796 /tmac
parent8b39e1cf736d1c8fc197f37ab1617a4debe0fa99 (diff)
downloadgroff-086d69cc31f1615c03ddd475241eeed7e5dea4bb.tar.gz
* 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. * man/roff.man, tmac/groff_tmac.man: Updates (with corrections by WL).
Diffstat (limited to 'tmac')
-rw-r--r--tmac/groff_man.man15
-rwxr-xr-xtmac/groff_tmac.man234
-rwxr-xr-xtmac/tmac.an593
3 files changed, 483 insertions, 359 deletions
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