summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorG. Branden Robinson <g.branden.robinson@gmail.com>2023-05-17 15:43:24 -0500
committerG. Branden Robinson <g.branden.robinson@gmail.com>2023-05-17 17:25:28 -0500
commita2b4c1382bde523ce2fe522d17f289809be60c86 (patch)
tree660267da09f44d45bfd240ad404f6cde0b13f54b
parentd40f92de58edcc4c185a6c1399e05b420c528b82 (diff)
downloadgroff-git-a2b4c1382bde523ce2fe522d17f289809be60c86.tar.gz
groff_mm(7): Fix content, style, and markup nits.
Content: * Document that AF can end a TL-initiated title as AU can. * Describe AF's behavior when specified multiple times. * Add cross references in AF, macro descriptions. * Clarify that AT interacts with letters. * Cross-reference LI and LE macros in all list-beginning macro descriptions. * Drop explicit documentation of how some macros handle empty arguments are handled when this information is presented in a table; these already list "none", and the introduction to the "Macros" section explains how to explicitly pass empty macro arguments. * When discussing "compatibility reasons", identify what we're trying to be compatible with (DWB mm). * Stop reporting values of string defaults in macro descriptions; these are properly documented in the "Strings" section. * Begin more macro descriptions with meaningful imperative statements. Stop bending into pretzel shapes trying to make these expansions of an abbreviation that the macro name encodes. * Stop associating `FC` with MT memoranda; they don't use it. (The internal macro `let@mt-closing` appears to be misleadingly named.) * Explain what the second argument to `FD` does. * Drop synopses of hook macros in favor of their descriptions in the in the macros that call them. (Except for EOP and TP, which demand further consideration before recasting because they are called by traps, which aren't otherwise described.) * Drop example from `IND` macro description; it communicated nothing that isn't said as well in prose. * Document `Rf` string. * Document `Ref` register and its use by the IND macro. Style: * Format macro names without leading dot. * Recast descriptions of macros 1C, AF, AL, AT, AU, AV, AVL, BL, BS, BVL, COVER, COVEND, DF, DL, DS, FC, FD, FE, FS, H, HY, HZ, IA, IE, IND, INDP, INITI, LB, LC, LE, LI, LO, LT, MULB, ND, nP, NS, PGFORM, PGNH, RL, RS, SM, TL, VL, WA, and WE; and Verbnm string. * Fix comma splice (BE). * Parallelize wording, particularly when macros or diversions are used to collect input. * Stop further indenting tables and code displays in macro descriptions. Aligning them with the paragraphs suffices. * Set "none" in italics when presenting tables of parameter meanings. * In tables, use sentences more and fragments less. * Use more idiomatic English. * Fix fractured wording (mine, I think) in EQ description. * More consistently capitalize table column headings when they aren't metasyntactic variables. * Fix subject/verb agreement in Le/Lf/Lt/Lx register description. Markup: * Use \~ instead of \space in macro synopses. * Use \c and font alternation macros instead of \f in macro synopses. * Use tbl(1) more idiomatically when presenting lists of strings available to EOP and TP macros. * Adjust dead-tree pagination with `br` and `ne` requests.
-rw-r--r--contrib/mm/groff_mm.7.man1320
1 files changed, 754 insertions, 566 deletions
diff --git a/contrib/mm/groff_mm.7.man b/contrib/mm/groff_mm.7.man
index b39931842..7cda01b09 100644
--- a/contrib/mm/groff_mm.7.man
+++ b/contrib/mm/groff_mm.7.man
@@ -597,7 +597,7 @@ to the table of contents with
which is either\~0 or in the range 1 to\~7.
.
See also
-.BR .H .
+.BR H .
.
This undocumented DWB
.I mm
@@ -608,12 +608,13 @@ to enable customized tables of contents.
.
.TP
.BR 1C\~ [ 1 ]
-Begin one-column formatting after breaking the page.
+Format page text in one column.
+.
+The page is broken.
.
.RB A\~ 1
-argument suppresses the page break,
-but if a footnote is pending,
-it may be overprinted.
+argument suppresses this break;
+its use may cause body text and a pending footnote to overprint.
.
See
.BR 2C ,
@@ -644,19 +645,35 @@ See
.BR AS .
.
.
+.\" In DWB mm, the mnemonic for `AF` was "alternate first-page format",
+.\" and was described in the context of the `A` and `E` registers and
+.\" `}Z` and `]S` strings, none of which we support.
.TP
-.BI AF\ \fR[\fP name-of-firm \fR]\fP
-Author's firm, should be called before
-.BR AU ,
-see also
-.BR \%COVER .
+.BR AF \~[\c
+.IR firm-name ]
+Specify firm associated with the document.
+.
+At most one can be declared;
+the firm name is used by memorandum types and available to cover sheets.
+.
+.B AF
+terminates a document title started with
+.BR TL ,
+and can be called without an argument for that purpose.
+.
+See
+.B MT
+and
+.BR COVER .
.
.
.TP
-.BI AL\~ \fR[\fPtype\~\fR[\fPtext-indent\~ \fR[\fP1\fR]]]\fP
-Start an auto-incrementing list.
+.BR AL \~[\c
+.IR type \~[ text-indent \~[\c
+.BR 1 ]]]
+Begin an auto-incrementing numbered list.
.
-Items are numbered beginning with one.
+Item numbers start at one.
.
The
.I type
@@ -671,16 +688,13 @@ An explicitly empty
.I type
also indicates the default.
.
+A
.I text-indent
-sets the indentation in ens,
-overriding register
+argument overrides register
.BR Li .
.
-If a third argument,
-conventionally
-.BR 1 ,
-is given,
-the blank line that normally precedes each list item is suppressed.
+A third argument suppresses the blank line that normally precedes each
+list item.
.
Use
.B LI
@@ -833,19 +847,32 @@ The default is \[lq]ABSTRACT\[rq].
.TP
.BI AT\~ title\c
\~[.\|.\|.]
-Author's title(s).
+Specify author's title(s).
.
If present,
.B AT
must appear just after the corresponding author's
.BR AU .
.
-Each title shows up on a separate output line after the name in the
-signature block and in the
+Each
+.I title
+occupies an output line beneath the author's name in the signature block
+used by
+.B LT
+letters
+(see
+.BR SG )
+and in
+.B MT
+memoranda.
+.
+The
.B ms
-cover sheet style.
+cover sheet style also uses it.
.
.
+.br
+.ne 7v
.TP
.BR AU \~\c
.RI [ name\~\c
@@ -860,20 +887,23 @@ cover sheet style.
Specify author.
.
.B AU
-terminates a document title being collected with
+terminates a document title started with
.BR TL ,
-and can be called without arguments for that sole purpose.
+and can be called without arguments for that purpose.
.
-Author information is used by cover sheets and predefined memorandum
-types
-.RB ( MT ).
+Author information is used by cover sheets,
+.B MT
+memoranda,
+and
+.BR SG .
.
-It can contain initials,
+Further arguments comprise
+initials,
location,
department,
telephone extension,
room number or name,
-and up to three additional arguments.
+and up to three additional items.
.
Repeat
.B AU
@@ -888,25 +918,37 @@ instead to identify the author for documents employing
.
.
.TP
-.BI AV\ \fR[\fPname\ \fR[\fP1\fR]]\fP
-Approval signature.
+.BR AV \~[\c
+.IR name \~[\c
+.BR 1 ]]
+Format approval lines for a handwritten signature and date.
.
-Generates an approval line with place for signature and date.
+Two horizontal rules are drawn,
+with the specified
+.I name
+and the text of the string
+.B Letdate
+beneath them.
.
-The text \[lq]APPROVED:\[rq] can be changed with the string
-.BR Letapp ;
-it is replaced with an empty line if there is a second argument.
+Above these rules,
+the text in the string
+.B Letapp
+is formatted;
+a second argument replaces this text with a blank line.
.
-The text \[lq]Date\[rq] can be changed with the string
-.BR Letdate .
+See
+.BR LT .
.
.
.\" XXX: AVL is misnamed; it should have been called SGL or similar.
.TP
-.BI AVL\ \fR[\fPname\fR]\fP
-Letter signature.
-.
-Generates a line with place for signature.
+.BR AVL \~[\c
+.IR name ]
+As
+.BR AV ,
+but the date,
+date rule,
+and approval notations are omitted.
.
.
.TP
@@ -945,7 +987,7 @@ This is a GNU extension.
.
.TP
.B BE
-End bottom block, see
+End bottom block; see
.BR BS .
.
.
@@ -962,19 +1004,26 @@ without space between the arguments.
.
.
.TP
-.BI BL\ \fR[\fPtext-indent\ \fR[\fP1\fR]]\fP
-Start bullet list.
+.BR BL \~[\c
+.IR text-indent \~[\c
+.BR 1 ]]
+Begin bulleted list.
.
-Initializes a list with a bullet and a space in the beginning of each
-list item (see
-.BR LI ).
+Items are prefixed with a bullet and a space.
.
+A
.I text-indent
-sets the indentation in ens,
-overriding register
+argument overrides register
.BR Pi .
.
-A third argument prohibits printing of a blank line before each item.
+A second argument suppresses blank lines between items.
+.
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
.
.
.TP
@@ -991,41 +1040,51 @@ without space between the arguments.
.
.TP
.B BS
-Bottom block start.
+Begin bottom block.
.
-Begins the definition of a text block which is printed at the bottom
-of each page.
+Input is collected until
+.B BE
+is called,
+and output between the footnote area and footer of each page.
.
-The block ends with
-.BR BE .
.
+.\" XXX: Couldn't this have been done with an extra parameter to `VL`?
.TP
-.BI BVL\ "text-indent \fR[\fPmark-indent\ " \fR[\fP1\fR]]\fP
-Start of broken variable-item list.
+.BR BVL \~[\c
+.IR text-indent \~[ mark-indent \~[\c
+.BR 1 ]]]
+Begin broken variable-item list.
.
-Broken variable-item list has no fixed mark,
-it assumes that every
-.B LI
-has a mark instead.
+Each item is expected to supply its own mark.
.
-The text always begins at the next line after the mark.
+The line is always broken after the mark;
+contrast
+.BR VL .
.
.I text-indent
-sets the indentation to the text, and
+sets the indentation of the text,
+and
.I mark-indent
-the distance from the current indentation to the mark.
+the distance from the current list indentation to the mark.
+.
+A third argument suppresses the blank line that normally precedes each
+list item.
.
-A third argument prohibits printing of a blank line before each item.
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
.
.
.TP
.BR \%COVER \~\c \" space in roman; we must use 2-font macro with \c
.RI [ style ]
-Begin a cover sheet description.
+Begin a cover page description.
.
-It is important that
.B \%COVER
-appear before any of the body text
+must appear before the body text
(or main matter)
of a document.
.
@@ -1037,25 +1096,31 @@ and load it with the
.B mso
request.
.
-Therefore it is possible to create unlimited types of cover sheets.
-.
The default
.I style
is
.BR ms ;
-it structures a cover sheet to resemble that used by the
+the
+.I ms.cov
+file prepares a cover page resembling those of the
.I ms
package.
.
-.B \%COVER
-requires a
+A
+.I .cov
+file must define a
.B \%COVEND
-at the end of the cover description.
+macro,
+which a document must call at the end of the cover description.
.
-Always use the following ordering of the cover sheet macros.
+Use cover description macros in the following order;
+only
+.B TL
+and
+.B AU
+are required.
.
.
-.RS
.IP
.EX
\&.COVER
@@ -1067,22 +1132,11 @@ Always use the following ordering of the cover sheet macros.
\&.AE
\&.COVEND
.EE
-.RE
-.
-.
-.IP
-Only
-.B .TL
-and
-.B .AU
-are required.
.
.
.TP
.B COVEND
-End the cover description and output the cover page.
-.
-This macro is defined in the cover sheet macro file.
+End the cover description.
.
.
.TP
@@ -1097,58 +1151,63 @@ or
.
.TP
.BR DF\~ [\c
-.IR format \~[ fill \~[ rindent ]]]
+.IR format \~[ fill \~[ right-indentation ]]]
Begin floating display.
.
-A floating display is saved in a queue and is printed in the order
-entered.
+A floating display is saved in a queue and output in the order entered.
.
-The arguments
-.I format,
-.I fill,
-and
-.I rindent
-are handled as in
+Arguments are handled as in
.BR DS .
.
Floating displays cannot be nested.
.
-Floating display output is controlled by the registers
+Placement of floating displays is controlled by the registers
.B De
and
.BR Df .
.
.
.TP
-.BI DL\ \fR[\fPtext-indent\ "\fR[\fP\fB1\fP \fR[\fP\fB1\fP\fR]]]\fP"
-Dash list start.
+.BR DL \~[\c
+.IR text-indent \~[\c
+.BR 1 ]]
+Begin dashed list.
.
-Begins a list where each item is printed after a dash.
+Items are prefixed with an em dash and a space.
.
+A
.I text-indent
-sets the indentation in ens,
-overriding register
+argument overrides register
.BR Pi .
.
-A second argument prevents an empty line between each list item.
+A second argument suppresses blank lines between items.
.
-See
-.BR LI .
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
.
-A third argument prohibits printing of a blank line before each item.
.
.TP
-.BI DS\ "\fR[\fPformat \fR[\fPfill \fR[\fPrindent\fR]]]\fP"
-Static display start.
+.BR DS \~[\c
+.IR format \~[\c
+.IR fill \~[\c
+.IR right-indentation ]]]
+Begin static display.
.
-Begins collection of text until
-.BR DE .
+Input until
+.B DE
+is called is collected into a display.
.
-The text is printed together on the same page, unless it is longer
-than the height of the page.
+The display is output on a single page unless it is taller than the
+height of the page.
.
.B DS
-can be nested arbitrarily.
+can be nested
+(contrast with
+.BR DF ).
.
.
.IP
@@ -1157,13 +1216,11 @@ tab(@);
Lf(BI) Lb
L Lx.
format@Effect
-\[dq]\[dq]@No indentation.
-none@No indentation.
-L@No indentation.
+\f[I]none\f[]@Do not indent the display.
+L@Do not indent the display.
I@T{
Indent text by
-.B \[rs]n[Si]
-ens.
+.BR \[rs]n[Si] .
T}
C@Center each line.
CB@Center the whole display as a block.
@@ -1182,7 +1239,8 @@ and \[lq]CB\[rq] can also be specified as \[lq]0\[rq],
and
\[lq]3\[rq],
respectively,
-for compatibility reasons.
+for compatibility with
+.RI DWB\~ mm.
.
.
.IP
@@ -1191,27 +1249,34 @@ tab(@);
Lf(BI) Lb
L Lx.
fill@Effect
-\[dq]\[dq]@Line-filling turned off.
-none@Line-filling turned off.
-N@Line-filling turned off.
-F@Line-filling turned on.
+\f[I]none\f[]@Disable filling.
+N@Disable filling.
+F@Enable filling.
.TE
.
.
.IP
\[lq]N\[rq] and \[lq]F\[rq] can also be specified as \[lq]0\[rq] and
\[lq]1\[rq],
-respectively.
+respectively,
+for compatibility with
+.RI DWB\~ mm.
+.
.
.IP
-By default, an empty line is printed before and after the display.
+A third argument
+reduces the line length by
+.I right-indentation.
.
-Setting register
-.B Ds
-to\~0 prevents this.
.
-.I rindent
-shortens the line length by that amount.
+.IP
+.I mm
+normally
+places blank lines before and after the display.
+.
+Set register
+.B Ds
+to\~0 to suppress these.
.
.
.TP
@@ -1349,17 +1414,19 @@ without any trap active.
See
.BR TP .
.
+.
.IP
-.B Strings available to EOP
-.RS
.TS
tab(@);
-l l.
-EOPf@argument of \fBPF\fP
-EOPef@argument of \fBEF\fP
-EOPof@argument of \fBOF\fP
+Cb S
+Lb L.
+Strings available to EOP
+_
+EOPf@argument to \fBPF\fP
+EOPef@argument to \fBEF\fP
+EOPof@argument to \fBOF\fP
.TE
-.RE
+.
.
.TP
.BI EPIC\ "\fR[\fP\fB\-L\fP\fR]\fP width height \fR[\fPname\fR]\fP"
@@ -1404,7 +1471,7 @@ and not to produce output.
.
If present,
.I label
-appears at the aligned to the right and
+appears aligned to the right and
centered vertically within the display;
see register
.BR Eq .
@@ -1454,32 +1521,38 @@ as a heading.
.
.
.TP
-.BI FC\ \fR[\fPclosing\fR]\fP
-Print \[lq]Yours very truly,\[rq]
-as a formal closing of a letter or memorandum.
-.
-The argument replaces the default string.
+.BR FC \~[\c
+.IR closing-text ]
+Output the string
+.BR Letfc ,
+or the specified
+.I closing-text,
+as the formal closing of a letter.
.
-The default is stored in the string
-.BR Letfc .
.
.TP
-.BI FD\ \fR[\fParg\ \fR[\fP1\fR]]\fP
-Footnote default format.
+.BR FD \~[\c
+.IR arg \~[\c
+.BR 1 ]]
+Configure display of footnotes.
.
-Controls the hyphenation (hyphen),
-adjustment to the right margin (adjust),
-and indentation of footnote text (indent).
+The first argument encodes enablement of
+automatic hyphenation,
+adjustment to the right margin,
+indentation of footnote text,
+and left- vs.\& right-alignment of the footnote label within the space
+allocated for it.
.
-It can also change the label justification (ljust).
.
-.RS
+.br
+.ne 5v
.IP
+.\" XXX: We can fit one more row using "nokeep" vs. not using it.
.TS
-tab(@);
-lb lb lb lb lb
-l l l l l.
-arg@hyphen@adjust@indent@ljust
+tab(@) nokeep;
+Lf(BI) Lb Lb Lb Lb
+L L L L L.
+arg@Hyphenate?@Adjust?@Indent?@Label alignment
0@no@yes@yes@left
1@yes@yes@yes@left
2@no@no@yes@left
@@ -1493,19 +1566,33 @@ arg@hyphen@adjust@indent@ljust
10@no@no@yes@right
11@yes@no@yes@right
.TE
-.RE
+.
.
.IP
-An argument greater than or equal to 11 is considered as value\~0.
+An
+.I arg
+greater than 11 is treated
+.RB as\~ 0 .
.
-The default for
-.I mm
-is 10.
+.IR mm 's
+default
+.RB is\~ 0 .
+.
+.
+.IP
+If a second argument,
+conventionally
+.BR 1 ,
+is given,
+footnote numbering is reset when a first-level heading is encountered.
+.
+See
+.BR FS .
.
.
.TP
.B FE
-Footnote end;
+End footnote;
see
.BR FS .
.
@@ -1547,9 +1634,9 @@ as a heading.
.TP
.BR FS \~[\c
.IR label ]
-Footnote start.
+Start footnote.
.
-Text until
+Input until
.B FE
is called is collected into a footnote.
.
@@ -1679,12 +1766,17 @@ Set a numbered section heading at
.IR level .
.
.I mm
-produces numbered headings in the form
+produces numbered
+.I "heading marks"
+of the form
.IR a . b . c .\|.\|.,
with up to fourteen levels of nesting.
.
-The numbering of each level increases automatically and is
-reset to zero when a more significant level is specified.
+Each level's number increases automatically with each
+.B H
+call and is reset to zero when a more significant
+.I level
+is specified.
.
.RB \[lq] 1 \[rq]\~is
the most significant or coarsest division of the document.
@@ -1938,7 +2030,7 @@ calls
.B HY
after determing the header typeface and size.
.
-It might be used to change indentation.
+It could be used to change indentation.
.
.
.TP
@@ -1953,7 +2045,7 @@ or
.B HU
returns.
.
-It might be used to change the page header to include a section heading.
+It could be used to change the page header to include a section heading.
.\" XXX: ...but only for the _next_ page, not the current one. See
.\" Savannah #62825.
.RE
@@ -1998,17 +2090,6 @@ it is treated as a numbered heading of the level stored in
.
.
.TP
-.B HX
-.TQ
-.B HY
-.TQ
-.B HZ
-See
-.B H
-for descriptions of these user-definable hooks.
-.
-.
-.TP
.BR I \~\c \" space in roman; we must use 2-font macro with \c
.RI [ italic-text\~\c
.RI [ previous-font-text ]]\~.\|.\|.
@@ -2024,13 +2105,22 @@ switch font to italic style.
.
.
.TP
-.BI IA\ "\fR[\fPaddressee-name \fR[\fPtitle\fR]]\fP"
-Begin specification of the addressee and addressee's address in
-letter style.
+.BR IA \~[\c
+.IR recipient-name \~[\c
+.IR title ]]
+Specify the inside address in a letter.
+.
+Input is collected into the inside address until
+.B IE
+is called,
+and then output.
+.
+You can specify multiple recipients with empty
+.BR IA / IE
+pairs;
+only the last address is used.
.
-Several names can be specified with empty
-.BR IA / IE -pairs,
-but only one address.
+The arguments give each recipient a name and title.
.
See
.BR LT .
@@ -2050,86 +2140,75 @@ without space between the arguments.
.
.TP
.B IE
-End the address specification after
+End the inside address begun with
.BR IA .
.
.
.TP
-.BI IND\ "arg1 \fR[\fParg2 \fR[.\|.\|.]]\fP"
-Write a line in the index file selected by
+.BI IND\~ argument\~\c
+\&.\|.\|.
+If the Boolean register
+.B Ref
+is true,
+write an index entry as a specially prepared
+.I roff
+comment to the standard error stream.
+.
+The entry is arranged as configured by the most recent
.B INITI
-with all arguments and the page number or header mark separated by tabs.
+call.
.
-.RS
-.IP
-.B Examples
+Each
+.I argument
+is separated from its predecessor by a tab character.
.
-.IP
-arg1\[rs]tpage number
-.br
-arg1\[rs]targ2\[rs]tpage number
-.br
-arg1\[rs]theader mark
-.br
-arg1\[rs]tpage number\[rs]theader mark
-.RE
.
.TP
.B INDP
-Print the index by running the command specified by the string
-.BR Indcmd ,
-which has
-.RB \[lq] sort\~\-t\[rs]t \[rq]
-as the default value.
+Output the index set up by
+.B INITI
+and populated by
+.B IND
+calls
+by running the command specified in the
+.B Indcmd
+string.
.
-.B INDP
-reads the output from the command to form the index,
-by default in two columns (this can be changed by defining
-.BR TYIND ).
+The index is preceded by a centered header interpolating the string
+.BR INDEX .
.
-The index is printed with the string
-.B Index
-as header;
-the default is \[lq]INDEX\[rq].
+The output of
+.B Indcmd
+is set in two columns;
+afterwards,
+single-column output is selected again.
.
-One-column processing is reactivated after the list.
.
-.B INDP
-calls the user-defined macros
-.BR TXIND ,
-.BR TYIND ,
-and
-.B TZIND
-if defined.
+.IP
+You can define macros to customize the foregoing behavior.
.
+.B INDP
+calls
.B TXIND
-is called before printing the string \[lq]INDEX\[rq],
+before the header,
.B TYIND
-is called instead of printing \[lq]INDEX\[rq],
+.I instead
+of writing the header,
and
.B TZIND
-is called after the printing and should take care of restoring to
-normal operation again.
+after formatting the index to return to the prevailing page layout.
.
.
.TP
-.BI INITI\ "type filename \fR[\fPmacro\fR]\fP"
-Initialize the new index system and set the filename to collect index
-lines in with
-.BR IND .
+.BI INITI\~ "location-type file-name\~"\c
+.RI [ macro ]
+Initialize
+.IR "groff mm" 's
+indexing system.
.
Argument
-.I type
-selects the type of index: page number, header marks or both.
-.
-The default is page numbers.
-.
-.IP
-It is also possible to create a macro that is responsible
-for formatting each row;
-just add the name of the macro as a third argument.
-.
-The macro is then called with the index as argument(s).
+.I location-type
+selects how the location of each index entry is reported.
.
.
.IP
@@ -2137,16 +2216,22 @@ The macro is then called with the index as argument(s).
tab(@);
Lf(BI) Lb
L Lx.
-type@entry format
-N@Page numbers
-H@Header marks
-B@T{
-Both page numbers and header marks,
-separated with a tab character.
-T}
+location-type@Entry format
+N@page number
+H@heading mark
+B@page number, tab character, heading mark
.TE
.
.
+.IP
+If
+.I macro
+is specified,
+it is called for each index entry
+with the arguments given to
+.BR IND .
+.
+.
.TP
.BI INITR\~ id
Initialize the cross reference macros.
@@ -2214,49 +2299,53 @@ this is also the default.
.
.
.TP
-.BI LB\ "text-indent mark-indent pad type \fR[\fPmark \fR[\fPLI-space \fR[\fPLB-space\fR]]]\fP"
-List-begin macro.
-.
-This is the common macro used for all lists.
+.BI LB\~ "text-indent mark-indent pad type"\~\c
+.RI [ mark \~[ pre-item-space \~[ pre-list-space ]]]
+Begin list.
.
-.I text-indent
-is the number of spaces to indent the text from the current indentation.
-.
-.IP
-.I pad
+The macros
+.BR AL ,
+.BR BL ,
+.BR BVL ,
+.BR DL ,
+.BR ML ,
+.BR RL ,
and
-.I mark-indent
-control where to put the mark.
+.B VL
+call
+.B LB
+in various ways;
+they are simpler to use and may be preferred if they suit the desired
+purpose.
.
-The mark is placed within the mark area, and
-.I mark-indent
-sets the number of spaces before this area.
.
-By default it is\~0.
+.IP
+The nesting level of lists is tracked by
+.I mm;
+the outermost level is\~0.
.
-The mark area ends where the text begins.
+The text of each list item is indented by
+.I text-indent;
+the default is taken from the
+.B Li
+register
+(in ens).
.
-The start of the text is still controlled by
-.IR text-indent .
+Each item's mark is indented by
+.I mark-indent;
+the default is
+.BR 0n .
.
-.IP
-The mark is left-justified within the mark area if
-.I pad
-is\~0.
+The mark is normally left-aligned.
.
If
.I pad
-is greater than\~0,
+is greater than zero,
.I mark-indent
-is ignored,
-and the mark is placed
+is overridden such that
.I pad
-spaces before the text.
-.
-This right-justifies the mark.
+ens of space follow the mark.
.
-.
-.IP
.I type
selects one of six possible ways to display the mark.
.
@@ -2279,242 +2368,265 @@ type@Output for a mark \[lq]x\[rq]
.IP
If
.I type
-is\~0 the list either has a hanging indentation or,
-if argument
+is\~0 and
.I mark
-is given,
-the string
+is unspecified,
+the items are set with a hanging indent.
+.
+Otherwise,
.I mark
-as a mark.
+is interpreted as a string defining the mark.
.
-.IP
If
.I type
-is greater than\~0 automatic numbering occurs,
-using Arabic numerals if
+is greater than zero,
+items are automatically numbered;
.I mark
-is empty.
+is interpreted as a register format.
.
-.I mark
-can then be any of \[lq]1\[rq],
-\[lq]A\[rq],
-\[lq]a\[rq],
-\[lq]I\[rq],
-or \[lq]i\[rq].
+The default
+.I type
+.RB is\~ 0 .
.
.
.IP
-Every item in the list gets
-.I LI-space
-number of blank lines before them.
-.
-Default is\~1.
+The last two arguments manage vertical space.
+.
+Unless a list's nesting level is greater than the value of register
+.BR Ls ,
+its items are preceded by
+.I pre-item-space
+multiplied by the register
+.BR Lsp ;
+the default
+.RB is\~ 1 .
.
-.IP
.B LB
-itself prints
-.I LB-space
-blank lines.
+precedes the list by
+.I pre-list-space
+multiplied by the register
+.BR Lsp ;
+the default
+.RB is\~ 0 .
.
-Default is\~0.
.
.TP
-.BI LC\ \fR[\fPlist-level\fR]\fP
-List-status clear.
+.BR LC \~[\c
+.IR list-level ]
+Clear list state.
.
-Terminates all current active lists down to
-.IR list-level ,
-or\~0 if no argument is given.
+Active lists are terminated as if with
+.BR LE ,
+either all
+(the default)
+or only those from the current level down to
+.I list-level
+if specified.
.
-This is used by\~\c
.B H
-to clear any active list.
+calls
+.B LC
+automatically.
.
.
.TP
.BR LE \~[ 1 ]
-List end.
+End list.
.
The current list is terminated.
.
-If an argument
-.B 1
-is present,
+An argument
+.RB of\~ 1
+causes
vertical space in the amount of register
.B Lsp
-follows.
+to follow the list.
.
.
.TP
-.BI LI\ \fR[\fPmark\ \fR[\fP1\fR|\fP2\fR]]\fP
-List item preceding every item in a list.
+.BR LI \~[\c
+.IR mark \~[ item-mark-mode ]]
+Begin a list item.
.
-Without argument,
+Input is collected into a list item until the current list is terminated
+or
.B LI
-prints the mark determined by the current list type.
+is called again.
.
-By giving
-.B LI
-one argument, it uses that as the mark instead.
+By default,
+the item's text is preceded by any mark configured by the current list.
.
-Two arguments to
-.B LI
-makes
+If only
.I mark
-a prefix to the current mark.
-.
-There is no separating space between the prefix and the mark if the
-second argument is \[lq]2\[rq] instead of \[lq]1\[rq].
+is specified,
+it replaces the configured mark.
.
-This behaviour can also be achieved by setting register
-.B Limsp
-to zero.
-.
-A zero length
+When a second argument is supplied,
.I mark
-makes a hanging indentation instead.
+is prefixed to the configured mark;
+an
+.I item-mark-mode
+value of\~1 places an unbreakable space after
+.I mark,
+while
+a value of\~2 does not
+(rendering the two adjacent).
.
-.IP
-A list item is preceded by vertical space unless its nesting level is
-greater than the value of register
-.BR Ls .
+Also see register
+.BR Limsp .
.
-The amount of space is determined by the register
-.B Lsp
-and an argument to
-.BR LB .
-.
-.
-.IP
-The
-.B Li
-register configures the indentation amount in ens.
-.
-.
-.IP
-All lists begin with a list initialization macro,
-.BR LB .
-.
-There are, however, seven predefined list types to make lists easier
-to use.
.
-They all call
-.B LB
-with different default values.
-.
-.RS
-.IP
-.TS
-tab(@);
-l l.
-\fBAL\fP@Automatically Incremented List
-\fBML\fP@Marked List
-\fBVL\fP@Variable-Item List
-\fBBL\fP@Bullet List
-\fBDL\fP@Dash List
-\fBRL\fP@Reference List
-\fBBVL\fP@Broken Variable List.
-.TE
-.RE
+.TP
+.BI LO\~ option\~\c
+.RI [ value ]
+Specify letter options;
+see
+.BR LT .
.
+Standard options are as follows.
.
-.TP
-.BI LO\ "type \fR[\fParg\fR]\fP"
-Specify options in letter (see
-.BR .LT ).
+See
+.B IA
+regarding the inside address and string
+.B DT
+regarding the date.
.
-This is a list of the standard options:
.
-.RS
.IP
.TS
tab(@);
-l lx.
+Lf(BI) Lb
+L Lx.
+option@Effect
AT@T{
-Attention.
-Prints \[lq]ATTENTION:\[rq] and the argument below the inside address.
-See also string
-.BR LetAT .
+Attention;
+put contents of string
+.B LetAT
+and
+.I value
+left-aligned after the inside address.
T}
CN@T{
-Confidential notation.
-Prints \[lq]CONFIDENTIAL\[rq] on the second line below the date line.
-.
-Any argument replaces \[lq]CONFIDENTIAL\[rq].
-.
-See also string
-.BR LetCN .
+Confidential;
+put
+.I value,
+or contents of string
+.BR LetCN ,
+left-aligned after the date.
T}
RN@T{
-Reference notation.
-Prints \[lq]In reference to:\[rq] and the argument two lines below the
-date line.
-.
-See also string
-.BR LetRN .
+Reference;
+put contents of string
+.B LetRN
+and
+.I value
+after the confidental notation
+(if any)
+and the date,
+aligned with the latter.
T}
SA@T{
-Salutation.
-Prints \[rq]To Whom It May Concern:\[rq] or the argument if it was
-present.
-.
-The salutation is printed two lines below the inside address.
-See also string
-.BR LetSA .
+Salutation;
+put
+.I value,
+or contents of string
+.BR LetSA ,
+left-aligned after the inside address
+and the confidental notation
+(if any).
T}
SJ@T{
-Subject line.
-Prints the argument as subject prefixed with \[lq]SUBJECT:\[rq]
-two lines below the inside address,
-except in letter type \[lq]SP\[rq],
-where the subject is printed in all-capital without any prefix.
-See also string
-.BR LetSJ .
+Subject;
+put contents of string
+.B LetSJ
+and
+.I value
+left-aligned after the inside address
+and the attention and salutation notations
+(if any).
+.
+In letter type \[lq]SP\[rq],
+.B LetSJ
+is ignored and
+.I value
+is set in full capitals.
T}
.TE
-.RE
.
.
-.TP
-.BI LT\ \fR[\fIarg\/\fR]\fI
-Format a letter in one of four different styles depending
-on the argument.
+.br
+.ne 5v
+.TP
+.BR LT \~[\c
+.IR style ]
+Format a letter in the designated
+.I style,
+defaulting to
+.B BL
+(see below).
+.
+A letter begins with the writer's address
+.RB ( WA / WE ),
+followed by the date
+.RB ( ND ),
+the inside address
+.RB ( IA / IE ),
+the body of the letter
+.RB ( P
+and other general-purpose
+.I mm
+macros),
+the formal closing
+.RB ( FC ),
+the signature
+.RB ( SG ),
+and notations
+.RB ( NS / NE ).
+.
+Any of these may be omitted.
+.
+Letter options specified with
+.B LO
+add further annotations,
+which are extensible;
+see section \[lq]Internals\[rq] below.
.
-Also see section \[lq]Internals\[rq] below.
.
-.RS
.IP
.TS
tab(@);
-lb lb
-l lx.
-Arg@Style
+Lf(BI) Lb
+Lb Lx.
+style@Description
BL@T{
-Blocked.
-Date line, return address, writer's address and closing
-begins at the center of the line.
+Blocked:
+the writer's address,
+date,
+formal closing,
+and signature are indented to the center of the line.
.
-All other lines begin at the left margin.
+Everything else is left-aligned.
T}
SB@T{
-Semi-blocked.
-Same as blocked,
-except that the first line in every paragraph is indented five spaces.
+Semi-blocked:
+as
+.BR BL ,
+but the first line of each paragraph is indented by
+.BR 5n .
+.\" XXX: 5m or 5n?
T}
FB@T{
-Full-blocked.
-All lines begin at the left margin.
+Fully blocked:
+everything begins at the left margin.
T}
SP@T{
-Simplified.
-As full-blocked,
-but the salutation is replaced by a fully-capitalized subject,
-any formal closing is omitted,
-and the author's signature is presented on a single line in full
-capitals.
+Simplified:
+as
+.BR FB ,
+but a formal closing is omitted,
+and the signature is set in full capitals.
T}
.TE
-.RE
.
.
.TP
@@ -2652,9 +2764,10 @@ Begin alternative multi-column mode.
All column widths must be specified,
as must the amount of space between each column pair.
.
-The default unit for the width and space arguments is \[lq]n\[rq].
+The arguments' default scaling unit is
+.BR n .
.
-.B .MULB
+.B MULB
uses a diversion and operates in a separate environment.
.
.
@@ -2681,14 +2794,15 @@ Contrast with
.
.
.TP
-.BI ND\ new-date
-New date.
-.
-Overrides the current date.
+.BR ND \~[\c
+.IR arg ]
+Set the document's date.
.
-Date is not printed if
-.I new-date
-is an empty string.
+.I mm
+does not interpret
+.IR arg ;
+it can be a revision identifier
+(or empty).
.
.
.TP
@@ -2700,35 +2814,50 @@ filling is enabled.
.
.TP
.BI nP\ \fR[\fPtype\fR]\fP
-Print numbered paragraph with header level two.
+Begin a numbered paragraph at heading level two.
.
See
-.BR .P .
+.BR P .
.
.
-.TP
-.BI NS\ \fR[\fParg\ \fR[\fP1\fR]]\fP
-Collect notations of the type specified by
-.I arg
+.br
+.ne 6v
+.TP
+.BR NS \~[\c
+.IR code \~[\c
+.BR 1 ]]
+Declare notations,
+typically for letters or memoranda,
+of the type specified by
+.IR code .
+.
+The text corresponding to
+.I code
+is output,
+and filling is disabled
until
.B NE
-is called;
-filling is disabled.
+is called.
+.
+Typically,
+a list of names or attachments lies within
+.BR NS / NE .
+.
+If
+.I code
+is absent or does not match one of the values listed below,
+each line of notations is formatted as
+.RI "\[lq]Copy (" line ") to\[rq]."
.
If a second argument,
conventionally
.BR 1 ,
is given,
-then the argument becomes the entire notation and
+.I code
+becomes the entire notation and
.B NE
is not necessary.
.
-If
-.I arg
-does not match one of the predefined types listed below,
-the notations are prefixed with
-.RI "\[lq]Copy (" arg ") to\[rq]."
-.
In
.IR "groff mm" ,
you can set up further notations to be recognized by
@@ -2740,14 +2869,13 @@ and
below.
.
.
-.RS
.IP
.TS
tab(@);
-l l.
-\fBArg@Notation\fP
-\fInone\/\fP@Copy To
-\[dq]\[dq]@Copy To
+Lf(BI) Lb
+Lb L.
+code@Notation
+\f[I]none\f[]@Copy To
1@Copy To (with att.\&) to
2@Copy To (without att.\&) to
3@Att.
@@ -2763,7 +2891,6 @@ l l.
13@Complete Memorandum to
14@CC
.TE
-.RE
.
.
.TP
@@ -2850,8 +2977,7 @@ and is\~1 by default (one blank line).
.BI PGFORM\ "\fR[\fPlinelength \fR[\fPpagelength \fR[\fPpageoffset\ " \fR[\fP1\fR]]]]\fP
Set line length, page length, and/or page offset.
.
-This macro can be used for special formatting,
-like letter heads and other.
+This macro can be used for letterheads and similar.
.
It is normally the first macro call in a file,
though it is not necessary.
@@ -2873,12 +2999,10 @@ line length, page length, and page offset instead.)
.
.TP
.B PGNH
-No header is printed on the next page.
-.
-Used to get rid of the header in letters or other special texts.
+Suppress header on the next page.
.
-This macro must be used before any text to inhibit the page header
-on the first page.
+This macro must be called before any macros that produce output to
+affect the layout of the first page.
.
.
.TP
@@ -3009,14 +3133,6 @@ Picture start; see
.
.
.TP
-.B PX
-Page header hook.
-.
-This macro is called just after the printing of the page header in
-no-space mode.
-.
-.
-.TP
.B PY
Picture end with flyback.
.
@@ -3098,14 +3214,26 @@ without space between the arguments.
.
.TP
.BI RL\ \fR[\fPtext-indent \fR[\fP1\fR]]\fP
-Reference list start.
+Begin reference list.
.
-Begins a list where each item is preceded with an automatically
-incremented number between square brackets.
+Each item is preceded by an automatically incremented number between
+square brackets;
+compare
+.BR AL .
.
.I text-indent
changes the default indentation.
.
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
+.
+A third argument suppresses the blank line that normally precedes each
+list item.
+.
.
.TP
.BR RP \~\c \" space in roman; we must use 2-font macro with \c
@@ -3147,27 +3275,37 @@ The string
contains the reference page caption.
.
.
+.br
+.ne 5v
.TP
-.BI RS\ \fR[\fPstring-name\fR]\fP
+.BR RS \~[\c
+.IR string-name ]
Begin an automatically numbered reference definition.
.
-Put the string
-.B \[rs]*(Rf
+By default,
+references are automatically numbered starting at 1;
+the number is available in register
+.BR :R .
+.
+Interpolate the string
+.B Rf
where the reference mark should be and write the reference between
.BR RS / RF
-at next new line after the reference mark.
+on an input line after the reference mark.
.
-The reference number is stored in register
-.BR :R .
.
-If
+.IP
+If the
.I string-name
-is given, a string with that name is defined and contains the current
+argument is given,
+.I "groff ms"
+also defines a string with that identifier containing the current
reference mark.
.
-The string can be referenced as
+This string can interpolated as
.BI \[rs]*[ string-name ]
-later in the text.
+subsequently.
+.
.
.TP
.BI S\ "\fR[\fPsize \fR[\fPspacing\fR]]\fP"
@@ -3229,7 +3367,7 @@ is defined.
.
.I string
is retrieved with
-.BR .GETST .
+.BR GETST .
.
See
.BR INITR .
@@ -3245,13 +3383,13 @@ first or last author.
.
The reference data is the location, department, and initials specified
with
-.BR .AU .
+.BR AU .
.
It is printed at the first author if the second argument is given,
otherwise at the last.
.
No reference data is printed if the author(s) is specified through
-.BR .WA / .WE .
+.BR WA / WE .
.
See section \[lq]Internals\[rq] below.
.
@@ -3276,23 +3414,22 @@ blank except for any headers and footers,
are printed.
.
.
+.br
+.ne 4v \" XXX: 3v should suffice
.TP
-.BI SM\ "string1 \fR[\fPstring2 \fR[\fPstring3\fR]]\fP"
-Make a string smaller.
-.
-If
-.I string2
-is given,
-.I string1
-is made smaller and
-.I string2
-stays at normal size,
-concatenated with
-.IR string1 .
+.BI SM\~ text\~\c
+.RI [ post ]
+.TQ
+.BI SM\~ "pre text post"
+Format
+.I text
+at a smaller type size,
+joined with any specified
+.I pre
+and
+.I post
+at normal size.
.
-With three arguments, everything is concatenated, but only
-.I string2
-is made smaller.
.
.TP
.BI SP\ \fR[\fPlines\fR]\fP
@@ -3505,11 +3642,14 @@ Argument \[lq]N\[rq] isn't implemented yet.
.BR TL \~[\c
.IR charging-case-number \~[\c
.IR filing-case-number ]]
-Begin collecting document title.
+Begin document title.
.
-Text up to the next
+Input is collected into the title until
+.B AF
+or
.B AU
-call is included in the title.
+is called,
+and output as directed by the cover page.
.
.I charging-case-number
and
@@ -3543,17 +3683,19 @@ Line length is preserved, though.
See
.BR EOP .
.
+.
.IP
-.B strings available to TP
-.RS
.TS
tab(@);
-l l.
-TPh@argument of \fBPH\fP
-TPeh@argument of \fBEH\fP
-TPoh@argument of \fBOH\fP
+Cb S
+Lb L.
+Strings available to TP
+_
+TPh@argument to \fBPH\fP
+TPeh@argument to \fBEH\fP
+TPoh@argument to \fBOH\fP
.TE
-.RE
+.
.
.TP
.B TS \fR[\fPH\fR]\fP
@@ -3573,14 +3715,6 @@ that the table has a header.
See
.BR TH .
.
-.TP
-.B TX
-.TQ
-.B TY
-See
-.B TC
-for descriptions of these user-definable hooks.
-.
.
.TP
.BR VERBON \~\c \" space in roman; we must use 2-font macro with \c
@@ -3633,19 +3767,35 @@ End verbatim display.
.
.
.TP
-.BI VL\ "text-indent \fR[\fPmark-indent\ " \fR[\fP1\fR]]\fP
-Variable-item list.
+.BR VL \~[\c
+.IR text-indent \~[ mark-indent \~[\c
+.BR 1 ]]]
+Begin variable-item list.
.
-It has no fixed mark, it assumes that every
-.B LI
-has a mark instead.
+Each item is expected to supply its own mark.
+.
+If the mark is wider than
+.I mark-indent,
+one space separates it from subsequent text;
+contrast
+.BR BVL .
.
.I text-indent
-sets the indent to the text, and
+sets the indentation of the text,
+and
.I mark-indent
-the distance from the current indentation to the mark.
+the distance from the current list indentation to the mark.
+.
+A third argument suppresses the blank line that normally precedes each
+list item.
+.
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
.
-A third argument prohibits printing of a blank line before each item.
.
.TP
.BI "VM \fR[\fP\-T\fR] [\fP" "top \fR[\fPbottom\fR]]\fP"
@@ -3686,12 +3836,22 @@ to increase user control of page layout.
.
.
.TP
-.BI WA\ "\fR[\fPwriter-name \fR[\fPtitle\fR]]\fP"
-Begin specification of the writer and writer's address.
+.BR WA \~[\c
+.IR sender-name \~[\c
+.IR title ]]
+Specify the writer's address in a letter.
.
-Several names can be specified with empty
+Input is collected into the writer's address until
+.B WA
+is called,
+and then output.
+.
+You can specify multiple senders with empty
.BR WA / WE
-pairs, but only one address.
+pairs;
+only the last address is used.
+.
+The arguments give each sender a name and title.
.
.
.TP
@@ -3739,7 +3899,7 @@ T}
.
.TP
.B WE
-End the address specification after
+End the writer's address begun with
.BR WA .
.
.
@@ -4064,6 +4224,23 @@ page \[rs]\[rs]n[Qrfp].\[rq]
.
.
.TP
+.B Rf
+interpolates an automatically numbered reference mark;
+the number is used by the next
+.B RS
+call.
+.
+In
+.I troff
+mode,
+the marker is superscripted;
+in
+.I nroff
+mode,
+it is surrounded by square brackets.
+.
+.
+.TP
.B Rp
\[lq]REFERENCES\[rq]
.
@@ -4087,7 +4264,6 @@ Empty outside of
Useful in user-defined macros like
.BR .TP .
.
-.RS
.IP
.TS
tab(@);
@@ -4101,7 +4277,6 @@ ec@List of equations
ex@List of exhibits
ap@Appendix
.TE
-.RE
.
.
.TP
@@ -4113,13 +4288,13 @@ the trade mark sign.
.
.TP
.B Verbnm
-Argument to
-.B .nm
-in the
-.B .VERBON
+supplies argument(s) to the
+.B nm
+request employed by the
+.B VERBON
macro.
.
-Default is\~1.
+The default is\~\[lq]1\[rq].
.
.
.br
@@ -4603,7 +4778,7 @@ output device.
.B Lt
.TQ
.B Lx
-configures the report of lists of equation,
+configure the report of lists of equation,
figure,
table,
and exhibit captions,
@@ -4899,6 +5074,19 @@ T}
.TE
.
.
+.TP
+.B Ref
+is used internally to control
+.MR mmroff 1 's
+two-pass approach to index and reference management;
+see
+.B INITI
+and
+.B RS
+(Boolean-valued;
+.BR 0 ).
+.
+.
.\" XXX: Why is this not named `Rpej`?
.TP
.B Rpe
@@ -5030,7 +5218,7 @@ It is therefore possible to define other letter types,
either in the territory-specific macro file,
or as local additions.
.
-.B .LT
+.B LT
sets the registers
.B Pt
and
@@ -5043,7 +5231,7 @@ The following strings and macros must be defined for a new letter type.
.TP
.BI let@init_ type
This macro is called directly by
-.BR .LT .
+.BR LT .
.
It is supposed to initialize registers and other stuff.
.
@@ -5060,7 +5248,7 @@ otherwise it is called for all pages.
.TP
.BI let@sg_ type\~\c
.IR "name title n is-surname\~" [ SG-arg\~ .\|.\|.]
-.B .SG
+.B SG
calls this macro only for letters;
memoranda have their own processing.
.
@@ -5068,7 +5256,7 @@ memoranda have their own processing.
and
.I title
are specified through
-.BR .WA / .WE .
+.BR WA / WE .
.
.IR n \~is
the index of the
@@ -5079,19 +5267,19 @@ and
is true for the last name.
.
Further
-.B .SG
+.B SG
arguments are appended to the signature line.
.
.
.TP
.BI let@fc_ "type closing"
This macro is called by
-.BR .FC ,
+.BR FC ,
and has the formal closing as the argument.
.
.
.LP
-.B .LO
+.B LO
is implemented as a general option-macro.
.
It demands that a string named
@@ -5100,7 +5288,7 @@ is defined, where
.I type
is the letter type.
.
-.B .LO
+.B LO
then assigns the argument to the string
.BI let*lo- type\fR.\fP
.