summaryrefslogtreecommitdiffstats
path: root/contrib/mm/groff_mm.7.man
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
commitd318611dd6f23fcfedd50e9b9e24620b102ba96a (patch)
tree8b9eef82ca40fdd5a8deeabf07572074c236095d /contrib/mm/groff_mm.7.man
parentInitial commit. (diff)
downloadgroff-d318611dd6f23fcfedd50e9b9e24620b102ba96a.tar.xz
groff-d318611dd6f23fcfedd50e9b9e24620b102ba96a.zip
Adding upstream version 1.23.0.upstream/1.23.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--contrib/mm/groff_mm.7.man5428
1 files changed, 5428 insertions, 0 deletions
diff --git a/contrib/mm/groff_mm.7.man b/contrib/mm/groff_mm.7.man
new file mode 100644
index 0000000..4f94191
--- /dev/null
+++ b/contrib/mm/groff_mm.7.man
@@ -0,0 +1,5428 @@
+'\" t
+.TH groff_mm @MAN7EXT@ "@MDATE@" "groff @VERSION@"
+.SH Name
+groff_mm \- memorandum macros for GNU
+.I roff
+.
+.
+.\" ====================================================================
+.\" Legal Terms
+.\" ====================================================================
+.\"
+.\" Copyright (C) 1989-2023 Free Software Foundation, Inc.
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of
+.\" this manual under the conditions for verbatim copying, provided that
+.\" the entire resulting derived work is distributed under the terms of
+.\" a permission notice identical to this one.
+.\"
+.\" Permission is granted to copy and distribute translations of this
+.\" manual into another language, under the above conditions for
+.\" modified versions, except that this permission notice may be
+.\" included in translations approved by the Free Software Foundation
+.\" instead of in the original English.
+.
+.
+.\" Save and disable compatibility mode (for, e.g., Solaris 10/11).
+.do nr *groff_groff_mm_7_man_C \n[.cp]
+.cp 0
+.
+.\" Define fallback for groff 1.23's MR macro if the system lacks it.
+.nr do-fallback 0
+.if !\n(.f .nr do-fallback 1 \" mandoc
+.if \n(.g .if !d MR .nr do-fallback 1 \" older groff
+.if !\n(.g .nr do-fallback 1 \" non-groff *roff
+.if \n[do-fallback] \{\
+. de MR
+. ie \\n(.$=1 \
+. I \%\\$1
+. el \
+. IR \%\\$1 (\\$2)\\$3
+. .
+.\}
+.rr do-fallback
+.
+.
+.\" ====================================================================
+.SH Synopsis
+.\" ====================================================================
+.
+.SY "groff \-m@TMAC_M_PREFIX@m"
+.RI [ option\~ .\|.\|.\&]
+.RI [ file\~ .\|.\|.]
+.
+.SY "groff \-m m@TMAC_M_PREFIX@m"
+.RI [ option\~ .\|.\|.\&]
+.RI [ file\~ .\|.\|.]
+.YS
+.
+.
+.\" ====================================================================
+.SH Description
+.\" ====================================================================
+.
+The GNU implementation of the
+.I mm
+macro package is part of the
+.I groff
+document formatting system.
+.
+The
+.I mm
+package is suitable for the composition of
+letters,
+memoranda,
+reports,
+and books.
+.
+.
+.P
+Call an
+.I mm
+macro at the beginning of a document to initialize the package.
+.
+A simple
+.I mm
+document might use only
+.B P
+for paragraphing.
+.
+Set numbered and unnumbered section headings with
+.B H
+and
+.BR HU ,
+respectively.
+.
+Change the style of the typeface with
+.BR B ,
+.BR I ,
+and
+.BR R ;
+you can alternate styles with
+.BR BI ,
+.BR BR ,
+.BR IB ,
+.BR IR ,
+.BR RB ,
+and
+.BR RI .
+.
+Several nestable list types are available via
+.BR AL ,
+.BR BL ,
+.BR BVL ,
+.BR DL ,
+.BR ML ,
+.BR RL ,
+and
+.BR VL ;
+each of these begins a list,
+to which
+.B LI
+adds an item and
+.B LE
+ends the (nested) list.
+.
+Customized list arrangements are supported by
+.BR LB .
+.
+.B DS
+and
+.B DF
+start static and floating displays,
+respectively;
+either is terminated with
+.BR DE .
+.
+.
+.P
+.I groff mm
+is intended to be compatible with the
+.I mm
+implementation found in the AT&T Documenter's Workbench (DWB),
+with the following limitations.
+.
+.
+.IP \[bu] 2n
+Omitted features include
+the logo and company name strings,
+.B }Z
+and
+.BR ]S ,
+respectively;
+the encoded company site location addresses recognized as the third
+argument to the
+.B AU
+macro;
+the
+.B Pv
+(\[lq]private\[rq] heading)
+register;
+and the
+.B OK
+(other keywords),
+and
+.B PM
+(proprietary markings)
+macros.
+.
+.
+.IP \[bu] 2n
+The
+.B CS
+(output cover sheet)
+macro is implemented only for memorandum type 4.
+.
+.
+.IP \[bu]
+The
+.I grap
+preprocessor is not explicitly supported;
+no
+.B G1
+and
+.B G2
+macros
+are defined.
+.
+.
+.IP \[bu]
+The registers
+.BR A ,
+.BR C ,
+.BR E ,
+.BR T ,
+and
+.BR U ,
+typically set from the
+.I troff \" generic
+or
+.I nroff \" generic
+command lines with DWB
+.IR mm ,
+are not recognized.
+.
+.
+.IP \[bu]
+When setting the registers
+.B L
+or
+.B W
+from the command line,
+use an explicit scaling unit to avoid surprises.
+.
+.
+.IP \[bu]
+DWB
+.IR mm 's
+.B nP
+macro indented the second line of a paragraph to align it with the start
+of the text of the first
+(after the paragraph number);
+.IR "groff mm" 's
+does not.
+.
+.
+.IP \[bu]
+Cut marks are not supported.
+.
+.
+.P
+DWB
+.I mm
+supported only seven levels of heading.
+.
+As a compatible extension,
+.I groff mm
+supports fourteen,
+introducing new registers
+.B H8
+through
+.BR H14 ,
+and affecting the interpretation of the
+.B HF
+and
+.B HP
+strings.
+.
+.
+.P
+Macro,
+register,
+and string descriptions in this page frequently mention each other;
+most cross references are to macros.
+.
+Where a register or string is referenced,
+its type is explicitly identified.
+.
+.IR mm 's
+macro names are usually in full capitals;
+registers and strings tend to have mixed-case names.
+.
+.
+.\" ====================================================================
+.SS "Document styles"
+.\" ====================================================================
+.
+.I groff mm
+offers three different frameworks for document organization.
+.
+.BR \%COVER /\: \%COVEND
+is a flexible means of preparing any document requiring a cover page.
+.
+.BR LT / LO
+aids preparation of typical Anglophone correspondence
+(business letters,
+for example).
+.
+The
+.B MT
+memorandum type mechanism implements a group of formal styles
+historically used by AT&T Bell Laboratories.
+.
+Your document can select at most one of these approaches;
+when used,
+each disables the others.
+.
+.
+.\" ====================================================================
+.SS Localization
+.\" ====================================================================
+.
+.I groff mm
+is designed to be easily localized.
+.
+For languages other than English,
+strings that can appear in output are collected in the file
+.IR @MACRODIR@/\: xx \:.tmac ,
+where
+.I xx
+is an ISO\~639 two-letter language identifier.
+.
+Localization packages should be loaded after
+.IR mm ;
+for example,
+you might format a Swedish
+.I mm
+document with the command
+.RB \[lq] "groff \-mm \-msv" \[rq].
+.
+.
+.P
+This package can also be localized by site or territory;
+for example,
+.I @MACRODIR@/\:@TMAC_M_PREFIX@mse\:.tmac
+illustrates how to adapt the output to a national standard using its ISO
+3166 territory code.
+.
+Such a package can define a string that causes a macro file
+.IR @MACRODIR@/\:mm/\:\% territory _locale
+to be loaded at package initialization.
+.
+If this mechanism is not used,
+.I @MACRODIR@/\:mm/\:\%locale
+is loaded instead.
+.
+No diagnostic is produced if these files do not exist.
+.
+.
+.\" ====================================================================
+.SS "Registers and strings"
+.\" ====================================================================
+.
+Much
+.I mm
+behavior can be configured by registers and strings.
+.
+A register is assigned with the
+.B nr
+request.
+.
+.
+.RS
+.P
+.B .nr
+.I ident
+.RB [ \[+-] ]\c
+.I n
+.RI [ i ]
+.RE
+.
+.
+.P
+.I ident
+is the name of the register,
+and
+.IR n \~is
+the value to be assigned.
+.
+.IR n \~can
+be prefixed with a plus or minus sign if incrementation or
+decrementation (respectively) of the register's existing value
+.RI by\~ n
+is desired.
+.
+If assignment of a (possibly) negative
+.IR n \~is
+required,
+further prefix it with a zero or enclose it in parentheses.
+.
+If
+.IR i \~is
+specified,
+the register is automatically modified
+.RI by \~i
+prior to interpolation if a plus or minus sign is included in the escape
+sequence as follows.
+.
+.
+.RS
+.P
+.B \[rs]n\c
+.RB [ \[+-] ]\c
+.BI [ ident ]
+.RE
+.
+.
+.P
+.IR i \~can
+be negative;
+it combines algebraically with the sign in the interpolation escape
+sequence.
+.
+.
+.P
+Strings are defined with the
+.B ds
+request.
+.
+.
+.RS
+.P
+.B .ds
+.I ident contents
+.RE
+.
+.
+.P
+.I contents
+consumes everything up to the end of the line,
+including trailing spaces.
+.
+It is a good practice to end
+.I contents
+with a comment escape sequence
+.RB ( \[rs]\[dq] )
+so that extraneous spaces do not intrude during document maintenance.
+.
+To include leading spaces in
+.IR contents ,
+prefix it with a double quote.
+.
+Strings are interpolated with the
+.B \[rs]*
+escape sequence.
+.
+.
+.RS
+.P
+.B \[rs]*\c
+.BI [ ident ]
+.RE
+.
+.
+.P
+Register and string name spaces are distinct,
+but strings and macros share a name space.
+.
+Defining a string with the same name as an
+.I mm
+macro is not supported and may cause incorrect rendering,
+the emission of diagnostic messages,
+and an error exit status from
+.IR @g@troff .
+.
+.
+.\" ====================================================================
+.SS "Register format"
+.\" ====================================================================
+.
+A register is interpolated using Arabic numerals if no other format has
+been assigned to it.
+.
+Assign a format to a register with the
+.B af
+request.
+.
+.
+.RS
+.LP
+.BI .af\~ "R c"
+.RE
+.
+.
+.LP
+.IR R \~is
+the name of the register,
+and
+.IR c \~is
+the format.
+.
+If
+.IR c \~is
+a sequence of Arabic numerals,
+their quantity defines a zero-padded minimum width for the interpolated
+register value.
+.
+.
+.RS
+.LP
+.TS
+tab(@);
+lb lb
+l l.
+Form@Sequence
+1@0, 1, 2, 3, .\|.\|., 10, .\|.\|.
+001@000, 001, 002, 003, .\|.\|., 1000, .\|.\|.
+i@0, i, ii, iii, iv, .\|.\|.
+I@0, I, II, III, IV, .\|.\|.
+a@0, a, b, c, .\|.\|., z, aa, ab, .\|.\|.
+A@0, A, B, C, .\|.\|., Z, AA, AB, .\|.\|.
+.TE
+.RE
+.
+.
+.\" ====================================================================
+.SS Fonts
+.\" ====================================================================
+.
+In
+.IR "groff mm" ,
+the fonts
+(or rather,
+font styles)
+.BR R \~(roman),
+.BR I \~(italic),
+and
+.BR B \~(bold)
+are mounted at font positions
+.BR 1 ,
+.BR 2 ,
+.RB and\~ 3 ,
+respectively.
+.
+Internally,
+font positions are used for backward compatibility.
+.
+From a practical point of view,
+it doesn't make a big difference\[em]a different font family can still
+be selected by invoking
+.IR groff 's
+.B fam
+request or using its
+.B \-f
+command-line option.
+.
+On the other hand,
+if you want to replace just,
+for example,
+.RB font\~ I
+with Zapf Chancery Medium italic
+(available on
+.IR groff 's
+.B pdf
+and
+.B ps
+output devices),
+you have to use the
+.B fp
+request,
+replacing the font at position\~2 with
+.RB \[lq] .fp\~2\~ZCMI \[rq]).
+.
+Because the cover sheet,
+memorandum type,
+and
+.MR @g@refer @MAN1EXT@
+integration macros explicitly request fonts named
+.BR B ,
+.BR I ,
+and
+.BR R ,
+you will also need to remap these font names with the
+.B ftr
+request,
+for instance with
+.RB \[lq] .ftr\~I\~ZCMI \[rq].
+.
+.
+.\" ====================================================================
+.SH Macros
+.\" ====================================================================
+.
+An explicitly empty argument may be specified with a pair of double
+quotes;
+to call a macro
+.B XX
+with an empty second argument but non-empty first and third ones,
+you could input the following.
+.
+.
+.P
+.RS
+.EX
+\&.XX foo \[dq]\[dq] baz
+.EE
+.RE
+.
+.
+.P
+Macro names longer than two characters are GNU extensions;
+some shorter names were not part of DWB
+.IR mm 's
+published interface but are documented aspects of
+.I groff mm.
+.
+.
+.TP
+.BI )E\ "level text"
+Add heading text
+.I text
+to the table of contents with
+.IR level ,
+which is either\~0 or in the range 1 to\~7.
+.
+See also
+.BR H .
+.
+This undocumented DWB
+.I mm
+macro is exposed by
+.I groff mm
+to enable customized tables of contents.
+.
+.
+.TP
+.BR 1C\~ [ 1 ]
+Format page text in one column.
+.
+The page is broken.
+.
+.RB A\~ 1
+argument suppresses this break;
+its use may cause body text and a pending footnote to overprint.
+.
+See
+.BR 2C ,
+.BR MC ,
+and
+.BR NCOL .
+.
+.
+.TP
+.B 2C
+Begin two-column formatting.
+.
+This is a special case of
+.BR MC .
+.
+See
+.B 1C
+and
+.BR NCOL .
+.
+.
+.TP
+.B AE
+Abstract end;
+stop collecting abstract text.
+.
+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
+.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
+.BR AL \~[\c
+.IR type \~[ text-indent \~[\c
+.BR 1 ]]]
+Begin an auto-incrementing numbered list.
+.
+Item numbers start at one.
+.
+The
+.I type
+argument assigns the register format
+(see above)
+of the list item enumerators.
+.
+The default
+.RB is\~ 1 .
+.
+An explicitly empty
+.I type
+also indicates the default.
+.
+A
+.I text-indent
+argument overrides register
+.BR Li .
+.
+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.
+.
+.
+.TP
+.BR APP \~\c
+.RI [ id\~ [ title ]]
+Begin an appendix.
+.
+If the identifier
+.I id
+is omitted,
+it is incremented
+(or initialized,
+if necessary).
+.
+The register format used for
+.I id
+is \[lq]A\[rq].
+.
+The page is broken.
+.
+The register
+.B Aph
+determines whether an appendix heading is then formatted.
+.
+This heading uses the string
+.B App
+followed by
+.IR id .
+.
+Appendices appear in any table of contents
+(see
+.BR TC ).
+.
+The string
+.B Apptxt
+is set to
+.I title
+if the latter is present,
+and made empty otherwise.
+.
+.
+.TP
+.BI APPSK\~ "id n" \~\c
+.RI [ title ]
+As
+.BR APP ,
+but increment the page number by
+.IR n .
+.
+Use this macro to \[lq]skip pages\[rq] when diagrams or other materials
+not formatted by
+.I @g@troff
+are included in appendices.
+.
+.
+.TP
+.BR AS\~ [\c
+.IR placement \~[ indentation ]]
+Abstract start;
+begin collecting abstract.
+.
+Input up to the next
+.B AE
+call is included in the abstract.
+.
+.I placement
+influences the location of the abstract on the cover sheet of a
+memorandum
+(see
+.BR MT ).
+.
+.BR \%COVER ,
+by contrast,
+ignores
+.I placement
+by default,
+but can be customized to interpret it.
+.
+.
+.IP
+.TS
+tab(@);
+lf(BI) lb
+l lx.
+placement@Effect
+0@T{
+The abstract appears on page\~1 and cover sheet if the document is a
+\[lq]released paper\[rq] memorandum
+.RB (\[lq] ".MT 4" \[rq]);
+otherwise,
+it appears on page\~1 without a cover sheet.
+T}
+1@T{
+The abstract appears only on the cover sheet
+.RB (\[lq] ".MT 4" \[rq]
+only).
+T}
+.\" XXX: This does not appear to be implemented.
+.\"2@T{
+.\"The abstract is printed only on the cover sheet (if not
+.\".BR ".MT 4" )
+.\".
+.\"The cover sheet is printed without a need for \fBCS\fP.
+.\"T}
+.TE
+.
+.
+.IP
+An abstract does not appear at all in external letters
+.RB (\[lq] ".MT 5" \[rq]).
+.
+.RI A\~ placement
+of
+.B 2
+was supported by DWB
+.I mm
+but is not by
+.IR "groff mm" .
+.
+.
+.IP
+A second argument increases the indentation by
+.I indentation
+and reduces the line length by twice this amount.
+.
+A scaling unit of ens is assumed.
+.
+The default is\~0.
+.
+.
+.\" XXX: Do we need a macro for this? Why is it not a string like App
+.\" or Licon? It is usefully localizable.
+.TP
+.BR AST \~\c
+.RI [ caption ]
+Set the caption above the abstract to
+.IR caption ,
+or clear it if there is no argument.
+.
+The default is \[lq]ABSTRACT\[rq].
+.
+.
+.TP
+.BI AT\~ title\c
+\~.\|.\|.
+Specify author's title(s).
+.
+If present,
+.B AT
+must appear just after the corresponding author's
+.BR AU .
+.
+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 also uses it.
+.
+.
+.br
+.ne 7v
+.TP
+.BR AU \~\c
+.RI [ name\~\c
+.RI [ initials\~\c
+.RI [ loc\~\c
+.RI [ dept\~\c
+.RI [ ext\~\c
+.RI [ room\~\c
+.RI [ arg1\~\c
+.RI [ arg2\~\c
+.RI [ arg3 ]]]]]]]]]
+Specify author.
+.
+.B AU
+terminates a document title started with
+.BR TL ,
+and can be called without arguments for that purpose.
+.
+Author information is used by cover sheets,
+.B MT
+memoranda,
+and
+.BR SG .
+.
+Further arguments comprise
+initials,
+location,
+department,
+telephone extension,
+room number or name,
+and up to three additional items.
+.
+Repeat
+.B AU
+to identify multiple authors.
+.
+.
+.IP
+Use
+.BR WA / WE
+instead to identify the author for documents employing
+.BR LT .
+.
+.
+.TP
+.BR AV \~[\c
+.IR name \~[\c
+.BR 1 ]]
+Format approval lines for a handwritten signature and date.
+.
+Two horizontal rules are drawn,
+with the specified
+.I name
+and the text of the string
+.B Letdate
+beneath them.
+.
+Above these rules,
+the text in the string
+.B Letapp
+is formatted;
+a second argument replaces this text with a blank line.
+.
+See
+.BR LT .
+.
+.
+.\" XXX: AVL is misnamed; it should have been called SGL or similar.
+.TP
+.BR AVL \~[\c
+.IR name ]
+As
+.BR AV ,
+but the date,
+date rule,
+and approval notation
+.B Letapp
+are omitted.
+.
+.
+.TP
+.BR B \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ bold-text\~\c
+.RI [ previous-font-text ]]\~.\|.\|.
+Join
+.I bold-text
+in boldface with
+.I previous-font-text
+in the previous font,
+without space between the arguments.
+.
+If no arguments,
+switch font to bold style.
+.
+.
+.TP
+.B B1
+Begin boxed,
+kept display.
+.
+The text is indented one character,
+and the right margin is one character shorter.
+.
+This is a GNU extension.
+.
+.
+.TP
+.B B2
+End boxed,
+kept display.
+.
+This is a GNU extension.
+.
+.
+.TP
+.B BE
+End bottom block; see
+.BR BS .
+.
+.
+.TP
+.BR BI \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ bold-text\~\c
+.RI [ italic-text ]]\~.\|.\|.
+Join
+.I bold-text
+in boldface with
+.I italic-text
+in italics,
+without space between the arguments.
+.
+.
+.TP
+.BR BL \~[\c
+.IR text-indent \~[\c
+.BR 1 ]]
+Begin bulleted list.
+.
+Items are prefixed with a bullet and a space.
+.
+A
+.I text-indent
+argument overrides register
+.BR Pi .
+.
+A second argument suppresses blank lines between items.
+.
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
+.
+.
+.TP
+.BR BR \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ bold-text\~\c
+.RI [ roman-text ]]\~.\|.\|.
+Join
+.I bold-text
+in boldface with
+.I roman-text
+in roman style,
+without space between the arguments.
+.
+.
+.TP
+.B BS
+Begin bottom block.
+.
+Input is collected until
+.B BE
+is called,
+and output between the footnote area and footer of each page.
+.
+.
+.\" XXX: Couldn't this have been done with an extra parameter to `VL`?
+.\" Or a register influencing VL behavior?
+.TP
+.BR BVL \~[\c
+.IR text-indent \~[ mark-indent \~[\c
+.BR 1 ]]]
+Begin broken variable-item
+(or \[lq]tagged\[rq])
+list.
+.
+Each item is expected to supply its own mark.
+.
+The line is always broken after the mark;
+contrast
+.BR VL .
+.
+.I text-indent
+sets the indentation of the text,
+and
+.I mark-indent
+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.
+.
+.
+.TP
+.BR \%COVER \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ style ]
+Begin a cover page description.
+.
+.B \%COVER
+must appear before the body text
+(or main matter)
+of a document.
+.
+The argument
+.I style
+is used to construct the file name
+.IR @TMAC_MDIR@/\: style \:.cov
+and load it with the
+.B mso
+request.
+.
+The default
+.I style
+is
+.BR ms ;
+the
+.I ms.cov
+file prepares a cover page resembling those of the
+.I ms
+package.
+.
+A
+.I .cov
+file must define a
+.B \%COVEND
+macro,
+which a document must call at the end of the cover description.
+.
+Use cover description macros in the following order;
+only
+.B TL
+and
+.B AU
+are required.
+.
+.
+.IP
+.EX
+\&.COVER
+\&.TL
+\&.AF
+\&.AU
+\&.AT
+\&.AS
+.ne 2v
+\&.AE
+\&.COVEND
+.EE
+.
+.
+.TP
+.B COVEND
+End the cover description.
+.
+.
+.TP
+.B DE
+End static or floating display begun with
+.B DS
+or
+.BR DF .
+.
+.
+.TP
+.BR DF\~ [\c
+.IR format \~[ fill \~[ right-indentation ]]]
+Begin floating display.
+.
+A floating display is saved in a queue and output in the order entered.
+.
+Arguments are handled as in
+.BR DS .
+.
+Floating displays cannot be nested.
+.
+Placement of floating displays is controlled by the registers
+.B De
+and
+.BR Df .
+.
+.
+.TP
+.BR DL \~[\c
+.IR text-indent \~[\c
+.BR 1 ]]
+Begin dashed list.
+.
+Items are prefixed with an em dash and a space.
+.
+A
+.I text-indent
+argument overrides register
+.BR Pi .
+.
+A second argument suppresses blank lines between items.
+.
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
+.
+.
+.TP
+.BR DS \~[\c
+.IR format \~[\c
+.IR fill \~[\c
+.IR right-indentation ]]]
+Begin static display.
+.
+Input until
+.B DE
+is called is collected into a display.
+.
+The display is output on a single page unless it is taller than the
+height of the page.
+.
+.B DS
+can be nested
+(contrast with
+.BR DF ).
+.
+.
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+L Lx.
+format@Effect
+\f[I]none\f[]@Do not indent the display.
+L@Do not indent the display.
+I@T{
+Indent text by
+.BR \[rs]n[Si] .
+T}
+C@Center each line.
+CB@Center the whole display as a block.
+R@Right-adjust the lines.
+RB@Right-adjust the whole display as a block.
+.TE
+.
+.
+.IP
+The values \[lq]L\[rq],
+\[lq]I\[rq],
+\[lq]C\[rq],
+and \[lq]CB\[rq] can also be specified as \[lq]0\[rq],
+\[lq]1\[rq],
+\[lq]2\[rq],
+and
+\[lq]3\[rq],
+respectively,
+for compatibility with
+.RI DWB\~ mm.
+.
+.
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+L Lx.
+fill@Effect
+\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,
+for compatibility with
+.RI DWB\~ mm.
+.
+.
+.IP
+A third argument
+reduces the line length by
+.I right-indentation.
+.
+.
+.IP
+.I mm
+normally
+places blank lines before and after the display.
+.
+Set register
+.B Ds
+to\~0 to suppress these.
+.
+.
+.TP
+.BR EC \~\c
+.RI [ title \~[ override \~[ flag \~[ refname ]]]]
+Caption an equation.
+.
+The caption consists of the string
+.B Liec
+followed by an automatically incrementing counter stored in the register
+.BR Ec ,
+punctuation configured by the register
+.BR Of ,
+then
+.I title
+(if any).
+.
+Use the
+.B af
+request to configure
+.BR Ec 's
+number format.
+.
+.I override
+and
+.I flag
+alter the equation number as follows.
+.
+Omitting
+.I flag
+and specifying
+.B 0
+in its place are equivalent.
+.
+.
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+L Lx.
+flag@Effect
+0@T{
+Prefix number with
+.IR override .
+T}
+1@T{
+Suffix number with
+.IR override .
+T}
+2@T{
+Replace number with
+.IR override .
+T}
+.TE
+.
+.
+.IP
+Equation captions are centered irrespective of the alignment of any
+enclosing display.
+.
+.
+.IP
+.I refname
+stores the equation number using
+.BR SETR ;
+it can be retreived with
+.RB \[lq] .GETST
+.IR refname \[rq].
+.
+This argument is a GNU extension.
+.
+.
+.IP
+Captioned equations are listed in a table of contents
+(see
+.BR TC )
+if the Boolean register
+.B Le
+is true.
+.
+Such a list uses the string
+.B Le
+as a heading.
+.
+.
+.TP
+.BR EF\~ [ \[dq]\|\[aq]\c
+.IB left \[aq] center \[aq] right \[aq]\|\[dq]\c
+]
+Define the even-page footer,
+which is formatted just above the normal page footer on even-numbered
+pages.
+.
+See
+.BR PF .
+.
+.B EF
+defines the string
+.BR EOPef .
+.
+.
+.TP
+.BR EH\~ [ \[dq]\|\[aq]\c
+.IB left \[aq] center \[aq] right \[aq]\|\[dq]\c
+]
+Define the even-page header,
+which is formatted just below the normal page header on even-numbered
+pages.
+.
+See
+.BR PH .
+.
+.B EH
+defines the string
+.BR TPeh .
+.
+.
+.TP
+.B EN
+End equation input preprocessed by
+.MR @g@eqn @MAN1EXT@ ;
+see
+.BR EQ .
+.
+.
+.TP
+.B EOP
+If defined,
+this macro is called in lieu of normal page footer layout.
+.
+Headers and footers are formatted in a separate environment.
+.
+See
+.BR TP .
+.
+.
+.IP
+.TS
+tab(@);
+Cb S
+Lb L.
+Strings available to EOP
+_
+EOPf@argument to \fBPF\fP
+EOPef@argument to \fBEF\fP
+EOPof@argument to \fBOF\fP
+.TE
+.
+.
+.TP
+.BI EPIC\ "\fR[\fP\fB\-L\fP\fR]\fP width height \fR[\fPname\fR]\fP"
+Draw a box with the given
+.I width
+and
+.IR height .
+.
+It also prints the text
+.I name
+or a default string if
+.I name
+is not specified.
+.
+This is used to include external pictures;
+just give the size of the picture.
+.
+.B \-L
+left-aligns the picture;
+the default is to center.
+.
+See
+.BR PIC .
+.
+.
+.TP
+.BR EQ \~[\c
+.IR label ]
+Start equation input preprocessed by
+.MR @g@eqn @MAN1EXT@ .
+.
+.B EQ
+and
+.B EN
+macro calls bracket an equation region.
+.
+Such regions must be contained in displays
+.RB ( DS / DE ),
+except when the region is used only to configure
+.I @g@eqn
+and not to produce output.
+.
+If present,
+.I label
+appears aligned to the right and
+centered vertically within the display;
+see register
+.BR Eq .
+.
+.
+If multiple
+.I eqn \" generic
+regions occur within a display,
+only the last
+.I label
+(if any)
+is used.
+.
+.
+.TP
+.BR EX \~\c
+.RI [ title \~[ override \~[ flag \~[ refname ]]]]
+Caption an exhibit.
+.
+Arguments are handled analogously to
+.BR EC .
+.
+The register
+.B Ex
+is the exhibit counter.
+.
+The string
+.B Liex
+precedes the exhibit number and any
+.I title.
+.
+Exhibit captions are centered irrespective of the alignment of any
+enclosing display.
+.
+.
+.IP
+Captioned exhibits are listed in a table of contents
+(see
+.BR TC )
+if the Boolean register
+.B Lx
+is true.
+.
+Such a list uses the string
+.B Lx
+as a heading.
+.
+.
+.TP
+.BR FC \~[\c
+.IR closing-text ]
+Output the string
+.BR Letfc ,
+or the specified
+.I closing-text,
+as the formal closing of a letter.
+.
+.
+.TP
+.BR FD \~[\c
+.IR arg \~[\c
+.BR 1 ]]
+Configure display of footnotes.
+.
+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.
+.
+.
+.br
+.ne 5v
+.IP
+.\" XXX: We can fit one more row using "nokeep" vs. not using it.
+.TS
+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
+3@yes@no@yes@left
+4@no@yes@no@left
+5@yes@yes@no@left
+6@no@no@no@left
+7@yes@no@no@left
+8@no@yes@yes@right
+9@yes@yes@yes@right
+10@no@no@yes@right
+11@yes@no@yes@right
+.TE
+.
+.
+.IP
+An
+.I arg
+greater than 11 is treated
+.RB as\~ 0 .
+.
+.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
+End footnote;
+see
+.BR FS .
+.
+.
+.TP
+.BR FG \~\c
+.RI [ title \~[ override \~[ flag \~[ refname ]]]]
+Caption a figure.
+.
+Arguments are handled analogously to
+.BR EC .
+.
+The register
+.B Fg
+is the figure counter.
+.
+The string
+.B Lifg
+precedes the figure number and any
+.I title.
+.
+Figure captions are centered irrespective of the alignment of any
+enclosing display.
+.
+.
+.IP
+Captioned figures are listed in a table of contents
+(see
+.BR TC )
+if the Boolean register
+.B Lf
+is true.
+.
+Such a list uses the string
+.B Lf
+as a heading.
+.
+.
+.TP
+.BR FS \~[\c
+.IR label ]
+Start footnote.
+.
+Input until
+.B FE
+is called is collected into a footnote.
+.
+By default,
+footnotes are automatically numbered starting at 1;
+the number is available in register
+.B :p
+and,
+with a trailing period,
+in
+.RB string\~ F .
+.
+This string precedes the footnote text at the bottom of the column or
+page.
+.
+Footnotes are vertically separated by the product of
+.RB registers\~ Fs
+and
+.BR Lsp .
+.
+In
+.IR "groff mm" ,
+footnotes may be used in displays.
+.
+.
+.IP
+A
+.I label
+argument replaces the contents of the string
+.BR F ;
+it need not be numeric.
+.
+In this event,
+the footnote marker in the body text must be explicitly written.
+.
+.
+.TP
+.BI GETHN\ "refname \fR[\fPvarname\fR]\fP"
+Include the heading number where the corresponding
+.RB \[lq] .SETR
+.IR refname \[rq]
+was placed.
+.
+This is displayed as \[lq]X.X.X.\[rq] in pass\~1.
+.
+See
+.BR INITR .
+.
+If
+.I varname
+is used,
+.B GETHN
+sets the string
+.I varname
+to the heading number.
+.
+.TP
+.BI GETPN\ "refname \fR[\fPvarname\fR]\fP"
+Include the page number where the corresponding
+.RB \[lq] .SETR
+.IR refname \[rq]
+was placed.
+.
+This is displayed as \[lq]9999\[rq] in pass\~1.
+.
+See
+.BR INITR .
+.
+If
+.I varname
+is used,
+.B GETPN
+sets the string
+.I varname
+to the page number.
+.
+.TP
+.BI GETR\ refname
+Combine
+.B GETHN
+and
+.B GETPN
+with the text \[lq]chapter\[rq] and \[lq],\~page\[rq].
+.
+The string
+.B Qrf
+contains the text for the cross reference:
+.
+.RS
+.IP
+\&.ds Qrf See chapter \[rs]\[rs]*[Qrfh], page \[rs]\[rs]*[Qrfp].
+.RE
+.
+.IP
+.B Qrf
+may be changed to support other languages.
+.
+Strings
+.B Qrfh
+and
+.B Qrfp
+are set by
+.B GETR
+and contain the page and heading number,
+respectively.
+.
+.TP
+.BI GETST\ "refname \fR[\fPvarname\fR]\fP"
+Include the string saved with the second argument to
+.BR .SETR .
+.
+This is a dummy string in pass\~1.
+.
+If
+.I varname
+is used,
+.B GETST
+sets it to the saved string.
+.
+See
+.BR INITR .
+.
+.
+.TP
+.BI H\~ level\~\c
+.RI [ title \~[ suffix ]]
+Set a numbered section heading at
+.IR level .
+.
+.I mm
+produces numbered
+.I "heading marks"
+of the form
+.IR a . b . c .\|.\|.,
+with up to fourteen levels of nesting.
+.
+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.
+.
+Text after an
+.B H
+call is formatted as a paragraph;
+calling
+.B P
+is unnecessary.
+.
+.
+.IP
+.I title
+specifies an optional title;
+it must be double-quoted if it contains spaces.
+.
+.I mm
+appends
+.I suffix
+to
+.I title
+in the body of the document,
+but omits it from any table of contents
+(see
+.BR TC ).
+.
+This facility can be used to annotate the heading title with a footnote.
+.
+.I suffix
+should not interpolate
+.RB the\~ F
+string;
+specify a footnote mark explicitly.
+.
+See
+.BR FS .
+.
+.
+.IP
+Heading behavior is highly configurable.
+.
+Several registers set a
+.I threshold,
+where heading levels at or below the threshold value are handled in one
+way,
+and those above it another.
+.
+For example,
+a heading level within the threshold of register
+.B Cl
+is included in the table of contents
+(see
+.BR TC ).
+.
+.
+.IP
+.I Heading layout.
+.
+Register
+.B Ej
+sets a threshold for page breaking (ejection) prior to a heading.
+.
+If not preceded by a page break,
+a heading level below the threshold in register
+.B Hps
+is preceded by the amount of vertical space in register
+.BR Hps1 ,
+and by the amount in
+.B Hps2
+otherwise.
+.
+The
+.B Hb
+register sets a threshold below which a break occurs after the heading,
+and register
+.B Hs
+sets a threshold below which vertical space follows it.
+.
+If the heading level is not less than both of these,
+a
+.I run-in heading
+is produced;
+paragraph text follows on the same output line.
+.
+Otherwise,
+register
+.B Hi
+configures the indentation of text after headings.
+.
+Threshold register
+.B Hc
+enables the centering of headings;
+a heading level below both of the
+.B Hb
+and
+.B Hc
+thresholds is centered.
+.
+.
+.IP
+.I Heading typeface and size.
+.
+The fonts used for heading numbers and titles at each level are
+configured by the
+.B HF
+string.
+.
+The string
+.B HP
+likewise assigns a type size to each heading level.
+.
+.\" XXX: Why not an "Hvs" string?
+The vertical spacing used by headings may be controlled by
+the user-definable macros
+.B HX
+and/or
+.BR HZ .
+.
+.
+.IP
+.I Heading number format.
+.
+Registers named
+.B H1
+through
+.B H14
+store counters for each heading level.
+.
+Their values are printed using Arabic numerals by default;
+see
+.BR HM .
+.
+The heading levels are catenated with dots for formatting;
+to typeset only the deepest,
+set the
+.B Ht
+register.
+.
+Heading numbers are not suffixed with a trailing dot except when only
+the first level is output;
+to omit a dot in this case as well,
+clear the
+.B H1dot
+register.
+.
+.
+.IP
+.I Customizing heading behavior.
+.
+.I mm
+calls
+.I hook
+macros to enable further customization of headings.
+.
+(DWB
+.I mm
+called these \[lq]exits\[rq].)
+.
+They can be used to change the heading's
+.I mark
+(the numbered portion before any heading title),
+its vertical spacing,
+and its vertical space requirements
+(for instance,
+to require a minimum quantity of subsequent output lines).
+.
+Define hook macros in expectation of the following parameters.
+.
+The argument
+.I declared-level
+is the
+.I level
+argument to
+.BR H ,
+.RB or\~ 0
+for unnumbered headings (see
+.BR HU ).
+.
+.I actual-level
+is the same as
+.I declared-level
+for numbered headings,
+and the value of
+.RB register\~ Hu
+for unnumbered headings.
+.
+.I title
+is the corresponding argument to
+.B H
+or
+.BR HU .
+.
+.
+.RS
+.TP
+.BI HX\~ "declared-level actual-level title"
+.I mm
+calls
+.B HX
+before setting the heading.
+.
+Your definition may alter
+.BR }0 ,
+.BR }2 ,
+and
+.BR ;3 .
+.
+.
+.\" XXX: These names are ugly and of no obvious meaning. Make
+.\" documented aliases for them.
+.RS
+.TP
+.BR }0\~ (string)
+contains the heading mark plus two spaces if
+.I declared-level
+is non-zero,
+and otherwise is empty.
+.
+.
+.TP
+.BR ;0\~ (register)
+encodes a position for the text after the heading.
+.
+0\~means that the heading is to be run in,
+1\~means that a break is to occur before the text,
+and 2\~means that vertical space is to separate heading and text.
+.
+.
+.TP
+.BR }2\~ (string)
+is the suffix that separates a run-in heading from the text.
+.
+It contains two spaces if register
+.B ;0
+is\~0,
+and otherwise is empty.
+.
+.
+.TP
+.BR ;3\~ (register)
+contains the vertical space required for the heading to be typeset.
+.
+If that amount is not available,
+the page is broken prior to the heading.
+.
+The default is
+.BR 2v .
+.RE
+.
+.
+.TP
+.BI HY\~ "declared-level actual-level title"
+.I mm
+calls
+.B HY
+after determing the heading typeface and size.
+.
+It could be used to change indentation.
+.
+.
+.TP
+.BI HZ\~ "declared-level actual-level title"
+.I mm
+calls
+.B HZ
+after formatting the heading,
+just before
+.B H
+or
+.B HU
+returns.
+.
+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
+.
+.
+.TP
+.BI HC\ \fR[\fPhyphenation-character\fR]\fP
+Set hyphenation character.
+.
+Default value is \[lq]\[rs]%\[rq].
+.
+Resets to the default if called without argument.
+.
+Hyphenation can be turned off by setting register
+.B Hy
+to\~0 at the beginning of the file.
+.
+.
+.TP
+.BI HM\ "\fR[\fParg1 \fR[\fParg2 \fR[.\|.\|.\& [\fParg14\fR]]]]\fP"
+Set the heading mark style.
+.
+Each argument assigns the specified register format
+(see above)
+to the corresponding heading level.
+.
+The default
+.RB is\~ 1
+for all levels.
+.
+An explicitly empty argument also indicates the default.
+.
+.
+.TP
+.BI HU\~ heading-text
+Set an unnumbered section heading.
+.
+Except for a heading number,
+it is treated as a numbered heading of the level stored in
+.RB register\~ Hu ;
+.RB see\~ H .
+.
+.
+.TP
+.BR I \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ italic-text\~\c
+.RI [ previous-font-text ]]\~.\|.\|.
+Join
+.I italic-text
+in italics with
+.I previous-font-text
+in the previous font,
+without space between the arguments.
+.
+If no arguments,
+switch font to italic style.
+.
+.
+.TP
+.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.
+.
+The arguments give each recipient a name and title.
+.
+See
+.BR LT .
+.
+.
+.TP
+.BR IB \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ italic-text\~\c
+.RI [ bold-text ]]\~.\|.\|.
+Join
+.I italic-text
+in italics with
+.I bold-text
+in boldface,
+without space between the arguments.
+.
+.
+.TP
+.B IE
+End the inside address begun with
+.BR IA .
+.
+.
+.TP
+.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,
+with each
+.I argument
+separated from its predecessor by a tab character.
+.
+The entry's location information is arranged as configured by the most
+recent
+.B INITI
+call.
+.
+.
+.TP
+.B INDP
+Output the index set up by
+.B INITI
+and populated by
+.B IND
+calls.
+.
+By default,
+.B INDP
+calls
+.B SK
+and writes a centered caption interpolating the string
+.BR Index .
+.
+It then disables filling and calls
+.BR 2C ;
+afterward,
+it restores filling and calls
+.BR 1C .
+.
+.
+.IP
+Define macros to customize this behavior.
+.
+.B INDP
+calls
+.B TXIND
+before the caption,
+.B TYIND
+.I instead
+of writing the caption,
+and
+.B TZIND
+after formatting the index.
+.
+.
+.TP
+.BI INITI\~ "location-type file-name\~"\c
+.RI [ macro ]
+Initialize
+.IR "groff mm" 's
+indexing system.
+.
+Argument
+.I location-type
+selects how the location of each index entry is reported.
+.
+.I file-name
+populates an internal string used later by
+.BR INDP .
+.
+.
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+L Lx.
+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.
+.
+Cross references are written to the standard error stream,
+which should be redirected into a file named
+.RI id .qrf .
+.
+.MR mmroff @MAN1EXT@
+handles this and the two formatting passes it requires.
+.\".
+.\"This program exists because
+.\".MR groff @MAN1EXT@
+.\"by default deactivates the unsafe operations that are required by
+.\".BR INITR .
+.
+The first pass identifies cross references,
+and the second one includes them.
+.\"
+.\".B INITR
+.\"can be used several times,
+.\"but it is only the first occurrence of
+.\".B INITR
+.\"that is active.
+.
+.
+.IP
+See
+.BR SETR ,
+.BR GETPN ,
+and
+.BR GETHN .
+.
+.
+.TP
+.BR IR \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ italic-text\~\c
+.RI [ roman-text ]]\~.\|.\|.
+Join
+.I italic-text
+in italics with
+.I roman-text
+in roman style,
+without space between the arguments.
+.
+.
+.TP
+.BR ISODATE\~ [ 0 ]
+Use ISO\~8601 format for the date string
+.B DT
+used by some cover sheet and memorandum types;
+that is,
+.IR YYYY - MM - DD .
+.
+Must be called before
+.B ND
+to be effective.
+.
+If given an argument
+.RB of\~ 0,
+the traditional date format for the
+.I groff
+locale is used;
+this is also the default.
+.
+.
+.TP
+.BI LB\~ "text-indent mark-indent pad type"\~\c
+.RI [ mark \~[ pre-item-space \~[ pre-list-space ]]]
+Begin list.
+.
+The macros
+.BR AL ,
+.BR BL ,
+.BR BVL ,
+.BR DL ,
+.BR ML ,
+.BR RL ,
+and
+.B VL
+call
+.B LB
+in various ways;
+they are simpler to use and may be preferred if they suit the desired
+purpose.
+.
+.
+.br
+.ne 5v
+.IP
+The nesting level of lists is tracked by
+.I mm;
+the outermost level is\~0.
+.
+The text of each list item is indented by
+.I text-indent;
+the default is taken from the
+.B Li
+register
+(in ens).
+.
+Each item's mark is indented by
+.I mark-indent;
+the default is
+.BR 0n .
+.
+The mark is normally left-aligned.
+.
+If
+.I pad
+is greater than zero,
+.I mark-indent
+is overridden such that
+.I pad
+ens of space follow the mark.
+.
+.I type
+selects one of six possible ways to display the mark.
+.
+.
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+L L.
+type@Output for a mark \[lq]x\[rq]
+1@x.
+2@x)
+3@(x)
+4@[x]
+5@<x>
+6@{x}
+.TE
+.
+.
+.IP
+If
+.I type
+is\~0 and
+.I mark
+is unspecified,
+the items are set with a hanging indent.
+.
+Otherwise,
+.I mark
+is interpreted as a string defining the mark.
+.
+If
+.I type
+is greater than zero,
+items are automatically numbered;
+.I mark
+is interpreted as a register format.
+.
+The default
+.I type
+.RB is\~ 0 .
+.
+.
+.IP
+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 .
+.
+.B LB
+precedes the list by
+.I pre-list-space
+multiplied by the register
+.BR Lsp ;
+the default
+.RB is\~ 0 .
+.
+.
+.TP
+.BR LC \~[\c
+.IR list-level ]
+Clear list state.
+.
+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.
+.
+.B H
+calls
+.B LC
+automatically.
+.
+.
+.TP
+.BR LE \~[ 1 ]
+End list.
+.
+The current list is terminated.
+.
+An argument
+.RB of\~ 1
+causes
+vertical space in the amount of register
+.B Lsp
+to follow the list.
+.
+.
+.TP
+.BR LI \~[\c
+.IR mark \~[ item-mark-mode ]]
+Begin a list item.
+.
+Input is collected into a list item until the current list is terminated
+or
+.B LI
+is called again.
+.
+By default,
+the item's text is preceded by any mark configured by the current list.
+.
+If only
+.I mark
+is specified,
+it replaces the configured mark.
+.
+A second argument
+prefixes
+.I mark
+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).
+.
+Also see register
+.BR Limsp .
+.
+.
+.TP
+.BI LO\~ option\~\c
+.RI [ value ]
+Specify letter options;
+see
+.BR LT .
+.
+Standard options are as follows.
+.
+See
+.B IA
+regarding the inside address and string
+.B DT
+regarding the date.
+.
+.
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+L Lx.
+option@Effect
+AT@T{
+Attention;
+put contents of string
+.B LetAT
+and
+.I value
+left-aligned after the inside address.
+T}
+CN@T{
+Confidential;
+put
+.I value,
+or contents of string
+.BR LetCN ,
+left-aligned after the date.
+T}
+RN@T{
+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;
+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;
+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
+.
+.
+.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.
+.
+.
+.br
+.ne 6v
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+Lb Lx.
+style@Description
+BL@T{
+Blocked:
+the writer's address,
+date,
+formal closing,
+and signature are indented to the center of the line.
+.
+Everything else is left-aligned.
+T}
+SB@T{
+Semi-blocked:
+as
+.BR BL ,
+but the first line of each paragraph is indented by
+.BR 5m .
+.\" XXX: https://savannah.gnu.org/bugs/?64315
+T}
+FB@T{
+Fully blocked:
+everything begins at the left margin.
+T}
+SP@T{
+Simplified:
+as
+.BR FB ,
+but a formal closing is omitted,
+and the signature is set in full capitals.
+T}
+.TE
+.
+.
+.TP
+.BI MC\~ column-width\~\c
+.RI [ gutter-width ]
+Begin multi-column layout.
+.
+.I groff mm
+creates as many columns of
+.I column-width
+as the line length will permit.
+.
+.I gutter-width
+is the interior spacing between columns.
+.
+It defaults to
+.IR column-width /15.
+.
+.B 1C
+returns to single-column layout.
+.
+.B MC
+is a GNU extension.
+.
+See
+.B MULB
+for an alternative.
+.
+.
+.TP
+.BI ML\~ "mark \fR[\fPtext-indent\~" \fR[\fP1\fR]]\fP
+Start a list with the
+.I mark
+argument preceding each list item.
+.
+.I text-indent
+overrides the default indentation of the list items set by register
+.BR Li .
+.
+If a third argument,
+conventionally
+.BR 1 ,
+is given,
+the blank line that normally precedes each list item is suppressed.
+.
+Use
+.B LI
+to declare list items,
+and
+.B LE
+to end the list.
+.
+.
+.TP
+.BR MT \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ type \~[ addressee ]]
+Select memorandum type.
+.
+These correspond to formats used by AT&T Bell Laboratories,
+where the
+.I mm
+package was initially developed,
+affecting the document layout.
+.
+Some of these included a cover page with a caption categorizing the
+document.
+.
+.I groff mm
+uses
+.I type
+to construct the file name
+.IR @TMAC_MDIR@/\:\% type \:.MT
+and load it with the
+.B mso
+request.
+.
+Memorandum types 0 to\~5 are supported;
+any other value of
+.I type
+is mapped to type\~6.
+.
+If
+.I type
+is omitted,
+.B 0
+is implied.
+.
+.I addressee
+sets a string analogous to one used by AT&T cover sheet macros that are
+not implemented in
+.IR "groff mm" .
+.
+.
+.IP
+.TS
+tab(@);
+Lf(BI) Lb
+L L.
+type@Description
+0@normal memorandum; no caption
+1@captioned \[lq]MEMORANDUM FOR FILE\[rq]
+2@captioned \[lq]PROGRAMMER'S NOTES\[rq]
+3@captioned \[lq]ENGINEER'S NOTES\[rq]
+4@released paper
+5@external letter
+.TE
+.
+.
+.IP
+See
+.B \%COVER
+for a more flexible cover sheet mechanism.
+.
+.
+.TP
+.BI MOVE\ "y-pos \fR[\fPx-pos \fR[\fPline-length\fR]]\fP"
+Move to a position, setting page offset to
+.IR x-pos .
+.
+If
+.I line-length
+is not given, the difference between current and new page offset is
+used.
+.
+Use
+.B PGFORM
+without arguments to return to normal.
+.
+.
+.TP
+.BR MULB \~\c \" space in roman; we must use 2-font macro with \c
+.IR "cw1 space1\~" [ "cw2 space2" "] .\|.\|.\~" cwn
+Begin alternative multi-column mode.
+.
+All column widths must be specified,
+as must the amount of space between each column pair.
+.
+The arguments' default scaling unit is
+.BR n .
+.
+.B MULB
+uses a diversion and operates in a separate environment.
+.
+.
+.TP
+.B MULN
+Begin next column in alternative column mode.
+.
+.
+.TP
+.B MULE
+End alternative multi-column mode and emit the columns.
+.
+.
+.TP
+.B NCOL
+Move to the start of the next column
+(only when using
+.B 2C
+or
+.BR MC ).
+.
+Contrast with
+.BR MULN .
+.
+.
+.TP
+.BR ND \~[\c
+.IR arg ]
+Set the document's date.
+.
+.I mm
+does not interpret
+.IR arg ;
+it can be a revision identifier
+(or empty).
+.
+.
+.TP
+.B NE
+End notation begun with
+.BR NS ;
+filling is enabled.
+.
+.
+.TP
+.BI nP\ \fR[\fPtype\fR]\fP
+Begin a numbered paragraph at heading level two.
+.
+See
+.BR P .
+.
+.
+.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.
+.
+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 under the
+.B Letns
+string description below,
+each line of notations is formatted as
+.RI "\[lq]Copy (" line ") to\[rq]."
+.
+If a second argument,
+conventionally
+.BR 1 ,
+is given,
+.I code
+becomes the entire notation and
+.B NE
+is not necessary.
+.
+In
+.IR "groff mm" ,
+you can set up further notations to be recognized by
+.BR NS ;
+see the strings
+.B Letns
+and
+.B Letnsdef
+below.
+.
+.
+.TP
+.BR OF\~ [ \[dq]\|\[aq]\c
+.IB left \[aq] center \[aq] right \[aq]\|\[dq]\c
+]
+Define the odd-page footer,
+which is formatted just above the normal page footer on odd-numbered
+pages.
+.
+See
+.BR PF .
+.
+.B OF
+defines the string
+.BR EOPof .
+.
+.
+.TP
+.BR OH\~ [ \[dq]\|\[aq]\c
+.IB left \[aq] center \[aq] right \[aq]\|\[dq]\c
+]
+Define the odd-page header,
+which is formatted just below the normal page header on odd-numbered
+pages.
+.
+See
+.BR PH .
+.
+.B OH
+defines the string
+.BR TPoh .
+.
+.
+.TP
+.B OP
+Make sure that the following text is printed at the top of an
+odd-numbered page.
+.
+Does not output an empty page if currently at the top of an odd page.
+.
+.
+.br
+.ne 4v
+.TP
+.BR P \~[\c
+.IR type ]
+Begin new paragraph.
+.
+If
+.I type
+is missing or\~ 0,
+.BR P \~sets
+the paragraph fully left\-aligned.
+.
+A
+.I type
+of\~1
+idents the first line by
+.B \[rs][Pi]
+ens.
+.
+Set the register
+.B Pt
+to select a default paragraph indentation style.
+.
+The register
+.B Ps
+controls the vertical spacing between paragraphs.
+.
+.
+.TP
+.B PE
+Picture end;
+see
+.MR @g@pic @MAN1EXT@ .
+.
+.
+.TP
+.BR PF\~ [ \[dq]\|\[aq]\c
+.IB left \[aq] center \[aq] right \[aq]\|\[dq]\c
+]
+Define the page footer.
+.
+The footer is formatted at the bottom of each page;
+the argument is otherwise as described in
+.BR PH .
+.
+.B PF
+defines the string
+.BR EOPf .
+.
+See
+.BR EF ,
+.BR OF ,
+and
+.BR EOP .
+.
+.TP
+.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 letterheads and similar.
+.
+It is normally the first macro call in a file,
+though it is not necessary.
+.
+.B PGFORM
+can be used without arguments to reset everything after a
+.B MOVE
+call.
+.
+A line break is done unless the fourth argument is given.
+.
+This can be used to avoid the page number on the first page
+while setting new width and length.
+.
+(It seems as if this macro sometimes doesn't work too well.
+.
+Use the command-line arguments to change
+line length, page length, and page offset instead.)
+.
+.TP
+.B PGNH
+Suppress header on the next page.
+.
+This macro must be called before any macros that produce output to
+affect the layout of the first page.
+.
+.
+.TP
+.BR PH\~ [ \[dq]\|\[aq]\c
+.IB left \[aq] center \[aq] right \[aq]\|\[dq]\c
+]
+.RS
+Define the page header,
+formatted at the top of each page,
+as the argument,
+where
+.IR left ,
+.IR center ,
+and
+.I right
+are aligned to the respective locations on the line.
+.
+A
+.RB \[lq] % \[rq]
+character in
+.I arg
+is replaced by the page number.
+.
+If the argument is absent,
+no page header is set.
+.
+The default page header is
+.
+.RS
+.EX
+\[dq]\[aq]\[aq]\- % \-\[aq]\[aq]\[dq]
+.EE
+.RE
+.
+which centers the page number between hyphens and formats nothing at the
+upper left and right.
+.
+Header macros call
+.B PX
+(if defined)
+after formatting the header.
+.
+.B PH
+defines the string
+.BR TPh .
+.
+See
+.BR EH ,
+.BR OH ,
+and
+.BR TP .
+.RE
+.
+.
+.TP
+.BR PIC \~\c
+.RB [ \-B ]\~\c
+.RB [ \-C |\c
+.BI \-I\~ n\c
+.RB | \-L \c
+.RB | \-R ]\~\c
+.IR file \~[ width \~[ height ]]
+Include PostScript document
+.IR file .
+.
+The optional
+.B \-B
+argument draws a box around the picture.
+.
+The optional
+.BR \-L ,
+.BR \-C ,
+.BR \-R ,
+and
+.BI \-I\~ n
+arguments align the picture or indent it by
+.I n
+(assuming a scaling unit of
+.BR m ).
+.
+By default,
+the picture is left-aligned.
+.
+Optional
+.I width
+and
+.I height
+arguments resize the picture.
+.
+Use of this macro requires two-pass processing;
+see
+.B INITR
+and
+.MR mmroff @MAN1EXT@ .
+.
+.
+.TP
+.B PS
+Picture start; see
+.MR @g@pic @MAN1EXT@ .
+.
+.
+.TP
+.B PY
+Picture end with flyback.
+.
+Ends a
+.MR @g@pic @MAN1EXT@
+picture,
+returning the vertical position to where it was prior to the picture.
+.
+This is a GNU extension.
+.
+.
+.TP
+.BR R \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ roman-text\~\c
+.RI [ previous-font-text ]]\~.\|.\|.
+Join
+.I roman-text
+in roman style with
+.I previous-font-text
+in the previous font,
+without space between the arguments.
+.
+If no arguments,
+switch font to roman style.
+.
+.
+.TP
+.BR RB \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ roman-text\~\c
+.RI [ bold-text ]]\~.\|.\|.
+Join
+.I roman-text
+in roman style with
+.I bold-text
+in boldface,
+without space between the arguments.
+.
+.
+.TP
+.BI RD\ "\fR[\fPprompt \fR[\fPdiversion \fR[\fPstring\fR]]]\fP"
+Read from standard input to diversion and/or string.
+.
+The text is saved in a diversion named
+.IR diversion .
+.
+Recall the text by writing the name of the diversion after a dot
+on an empty line.
+.
+A string is also defined if
+.I string
+is given.
+.
+.I Diversion
+and/or
+.I prompt
+can be empty (\[dq]\[dq]).
+.
+.TP
+.B RF
+Reference end.
+.
+Ends a reference definition and returns to normal processing.
+.
+See
+.BR RS .
+.
+.
+.TP
+.BR RI \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ roman-text\~\c
+.RI [ italic-text ]]\~.\|.\|.
+Join
+.I roman-text
+in roman style with
+.I italic-text
+in italics,
+without space between the arguments.
+.
+.
+.TP
+.BR RL \~[\c
+.IR text-indent \~[\c
+.BR 1 ]]
+Begin reference list.
+.
+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 second argument,
+conventionally
+.BR 1 ,
+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
+.RI [ suppress-counter-reset \~[ page-ejection-policy ]]
+Format a reference page,
+listing items accumulated within
+.BR RS / RF
+pairs.
+.
+The reference counter is reset unless the first argument
+.RB is\~ 1 .
+.
+Normally,
+page breaks occur before and after the references are output;
+the register
+.B Rpe
+configures this behavior,
+and a second argument overrides its value.
+.
+.B TC
+calls
+.B RP
+automatically if references have accumulated.
+.
+.
+.IP
+References are list items,
+and thus are vertically separated
+(see
+.BR LB ).
+.
+Setting register
+.B Ls
+.RB to\~ 0
+suppresses this spacing.
+.
+The string
+.B Rp
+contains the reference page caption.
+.
+.
+.br
+.ne 5v
+.TP
+.BR RS \~[\c
+.IR reference-string ]
+Begin an automatically numbered reference definition.
+.
+By default,
+references are 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
+on an input line after the reference mark.
+.
+If
+.I reference-string
+is specified,
+.I "groff ms"
+also stores the reference mark in a string of that name,
+which can be interpolated as
+.BI \[rs]*[ reference-string ]
+subsequently.
+.
+.
+.TP
+.BR S \~[\c
+.IR type-size \~[ vertical-spacing ]]
+Set type size and vertical spacing.
+.
+Each argument is a
+.I groff
+measurement,
+using an appropriate scaling unit and an optional
+.B +
+or
+.B \-
+prefix to increment or decrement the current value.
+.
+An argument of
+.B P
+restores the previous value,
+.B C
+indicates the current value,
+and
+.B D
+requests the default.
+.
+An empty or omitted argument is treated as
+.BR P .
+.
+.
+.TP
+.BR SA \~\c
+.RI [ mode ]
+Set or restore the default enablement of adjustment.
+.
+Specify
+.B 0
+or
+.B 1
+as
+.I mode
+to set a document's default explicitly;
+.B 1
+is assumed by
+.IR mm .
+.
+Adjustment can be temporarily suspended with the
+.B na
+request.
+.
+When the
+.B H
+or
+.B HU
+macros are used to format a heading,
+or when
+.B SA
+is called without a
+.I mode
+argument,
+the default adjustment is restored.
+.
+.
+.TP
+.BI SETR\ "refname \fR[\fPstring\fR]\fP"
+Remember the current heading and page numbers as
+.IR refname .
+.
+Saves
+.I string
+if
+.I string
+is defined.
+.
+.I string
+is retrieved with
+.BR GETST .
+.
+See
+.BR INITR .
+.
+.TP
+.BI SG\ \fR[\fParg\ \fR[\fP1\fR]]\fP
+Signature line.
+.
+Prints the authors name(s) after the formal closing.
+.
+The argument is appended to the reference data, printed at either the
+first or last author.
+.
+The reference data is the location, department, and initials specified
+with
+.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 .
+.
+See section \[lq]Internals\[rq] below.
+.
+.
+.TP
+.BR SK \~\c
+.RI [ n ]
+Skip
+.I n
+pages.
+.
+If
+.I n
+is\~0 or omitted,
+the page is broken unless the drawing position is already at the top of
+a page.
+.
+Otherwise,
+.I n
+pages,
+blank except for any headers and footers,
+are printed.
+.
+.
+.br
+.ne 4v \" XXX: 3v should suffice
+.TP
+.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.
+.
+.
+.TP
+.BI SP\ \fR[\fPlines\fR]\fP
+Space vertically.
+.
+.I lines
+can have any scaling factor,
+like \[lq]3i\[rq] or \[lq]8v\[rq].
+.
+Several
+.B SP
+calls in a line only produces the maximum number of lines, not the sum.
+.
+.B SP
+is ignored also until the first text line in a page.
+.
+Add
+.B \[rs]&
+before a call to
+.B SP
+to avoid this.
+.
+.
+.TP
+.B TAB
+Reset tab stops to every 5\~ens.
+.
+.
+.br
+.ne 4v
+.TP
+.BR TB \~\c
+.RI [ title \~[ override \~[ flag \~[ refname ]]]]
+Caption a table.
+.
+Arguments are handled analogously to
+.BR EC .
+.
+The register
+.B Tb
+is the table counter.
+.
+The string
+.B Litb
+precedes the table number and any
+.I title.
+.
+Table captions are centered irrespective of the alignment of any
+enclosing display.
+.
+.
+.IP
+Captioned tables are listed in a table of contents
+(see
+.BR TC )
+if the Boolean register
+.B Lt
+is true.
+.
+Such a list uses the string
+.B Lt
+as a heading.
+.
+.
+.TP
+.BR TC \~\c
+.RI [ slevel\~\c
+.RI [ spacing\~\c
+.RI [ tlevel\~\c
+.RI [ tab\~\c
+.RI [ h1\~\c
+.RI [ h2\~\c
+.RI [ h3\~\c
+.RI [ h4\~\c
+.RI [ h5 ]]]]]]]]]
+Output table of contents.
+.
+This macro is normally the last called in the document.
+.
+It flushes any pending displays and,
+if any references are pending
+(see
+.BR RS ),
+calls
+.BR RP .
+.
+It then begins a new page with the contents caption,
+stored in the string
+.BR Licon ,
+centered at the top.
+.
+The entries follow after three vees of space.
+.
+Each entry is a
+saved section
+(number and)
+heading title
+(see the
+.B Cl
+register),
+along with its associated page number.
+.
+By default,
+an entry is indented by an amount corresponding to its heading level
+and the maximum heading length encountered at that heading level;
+if defined,
+the string
+.B Ci
+overrides these indentations.
+.
+Entries at heading levels up to and including
+.I slevel
+are preceded by
+.I spacing
+vees of space.
+.
+Entries at heading levels up to and including
+.I tlevel
+are followed by a leader and a right-aligned page number.
+.
+If the Boolean-valued
+.I tab
+argument is true,
+the leader is replaced with horizontal motion in the same amount.
+.
+For entries above heading level
+.IR tlevel ,
+the page number follows the heading text after a word space.
+.
+Each argument
+.IR h1 .\|.\|. h5
+appears in order on its own line,
+centered,
+above the contents caption.
+.
+Page numbering restarts at 1,
+in register format \[lq]i\[rq].
+.
+If the
+.B Oc
+register is true,
+numbering of these pages is suppressed.
+.
+.
+.IP
+If
+.B TC
+is called with at most four arguments,
+it calls the user-defined macro
+.B TX
+(if defined)
+prior to formatting the contents caption,
+and
+.B TY
+(if defined)
+.I instead
+of formatting the contents caption.
+.
+.
+.IP
+Analogous handling of lists of figures,
+tables,
+equations,
+and exhibits is achieved by defining
+.BI TX xx
+and
+.BI TY xx
+macros,
+where
+.I xx
+is \[lq]FG\[rq],
+\[lq]TB\[rq],
+\[lq]EC\[rq],
+or \[lq]EX\[rq],
+respectively.
+.
+Similarly,
+the strings
+.BR Lifg ,
+.BR Litb ,
+.BR Liex ,
+and
+.B Liec
+determine captions for their respective lists.
+.
+.
+.TP
+.B TE
+Table end.
+.
+See
+.BR TS .
+.
+.TP
+.B TH
+End table heading.
+.
+It is repeated after page breaks within a table.
+.
+See
+.BR TS .
+.
+The
+.B N
+argument supported by DWB
+.I mm
+is not implemented by
+.I "groff mm."
+.
+.
+.TP
+.BR TL \~[\c
+.IR charging-case-number \~[\c
+.IR filing-case-number ]]
+Begin document title.
+.
+Input is collected into the title until
+.B AF
+or
+.B AU
+is called,
+and output as directed by the cover page.
+.
+.I charging-case-number
+and
+.I filing-case-number
+are saved for use in memorandum types 0 and 5.
+.
+See
+.BR MT .
+.
+.
+.TP
+.BI TM\~ number\c
+\~.\|.\|.
+Declare technical memorandum number(s) used by
+.BR MT .
+.
+.
+.br
+.ne 6v
+.TP
+.B TP
+If defined,
+this macro is called in lieu of normal page header layout.
+.
+Headers and footers are formatted in a separate environment.
+.
+See
+.BR EOP .
+.
+.
+.IP
+.TS
+tab(@);
+Cb S
+Lb L.
+Strings available to TP
+_
+TPh@argument to \fBPH\fP
+TPeh@argument to \fBEH\fP
+TPoh@argument to \fBOH\fP
+.TE
+.
+.
+.TP
+.B TS \fR[\fPH\fR]\fP
+Table start.
+.
+Argument \[lq]H\[rq] tells
+.I mm
+that the table has a heading.
+.
+See
+.BR TE ,
+.BR TH ,
+and
+.MR @g@tbl @MAN1EXT@ .
+.
+.
+.TP
+.BR VERBON \~\c \" space in roman; we must use 2-font macro with \c
+.RI [ format \~[ type-size \~[ font ]]]
+Begin verbatim display,
+where characters have equal width.
+.
+.I format
+controls several parameters.
+.
+Add up the values of desired features;
+the default
+.RB is\~ 0 .
+.
+On typesetting devices,
+further arguments configure the
+.I type-size
+in scaled points,
+and the face
+.RI ( font );
+the default is
+.B CR
+(Courier roman).
+.
+.
+.IP
+.TS
+tab(@);
+lb lb
+l lx.
+Value@Effect
+1@Disable the formatter's escape character (\[rs]).
+2@Vertically space before the display.
+4@Vertically space after the display.
+8@T{
+Number output lines; call formatter's
+.B nm
+request with arguments in string
+.BR Verbnm .
+T}
+16@T{
+Indent by the amount stored in register
+.BR Verbin .
+T}
+.TE
+.
+.
+.TP
+.B VERBOFF
+End verbatim display.
+.
+.
+.TP
+.BR VL \~[\c
+.IR text-indent \~[ mark-indent \~[\c
+.BR 1 ]]]
+Begin variable-item
+(or \[lq]tagged\[rq])
+list.
+.
+Each item should supply its own mark,
+or tag.
+.
+If the mark is wider than
+.I mark-indent,
+one space separates it from subsequent text;
+contrast
+.BR BVL .
+.
+.I text-indent
+sets the indentation of the text,
+and
+.I mark-indent
+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.
+.
+.
+.TP
+.BI "VM \fR[\fP\-T\fR] [\fP" "top \fR[\fPbottom\fR]]\fP"
+Vertical margin.
+.
+Increase the top and bottom margin by
+.I top
+and
+.IR bottom ,
+respectively.
+.
+If option
+.B \-T
+is specified, set those margins to
+.I top
+and
+.IR bottom .
+.
+If no argument is given, reset the margin to zero, or to the default
+(\[lq]7v 5v\[rq])
+if
+.B \-T
+is used.
+.
+It is highly recommended that macros
+.B TP
+and/or
+.B EOP
+are defined if using
+.B \-T
+and setting top and/or bottom margin to less than the default.
+.
+This undocumented DWB
+.I mm
+macro is exposed by
+.I groff mm
+to increase user control of page layout.
+.
+.
+.TP
+.BR WA \~[\c
+.IR writer's-name \~[\c
+.IR title ]]
+Specify the writer(s) of an
+.B LT
+letter.
+.
+Input is collected into the writer's address until
+.B WA
+is called,
+and then output.
+.
+You can specify multiple writers with empty
+.BR WA / WE
+pairs;
+only the last address is used.
+.
+The arguments give each writer a name and title.
+.
+.
+.TP
+.BR WC \~[\c
+.IR format \~.\|.\|.]
+Control width of footnotes and displays.
+.
+.
+.IP
+.RS
+.TS
+tab(@);
+Lf(BI) Lb
+Lb Lx.
+format@Effect
+N@T{
+equivalent to
+.RB \[lq] "\-WF \-FF \-WD" \[rq]
+.\" FB \" XXX: see Savannah ticket reference below
+(default)
+T}
+WF@T{
+set footnotes at full line length,
+even in two-column mode
+.\" XXX: what about multi-column modes more generally?
+T}
+\-WF@T{
+set footnotes using column line length
+T}
+FF@T{
+apply width of first footnote to encountered to subsequent ones
+T}
+\-FF@T{
+footnote width determined by
+.B WF
+and
+.B \-WF
+T}
+WD@T{
+set displays at full line length,
+even in two-column mode
+.\" XXX: what about multi-column modes more generally?
+T}
+\-WD@T{
+set displays using column line length
+T}
+.TE
+.RE
+.\" XXX: See <https://savannah.gnu.org/bugs/?64316>.
+.\"FB@T{
+.\"Break when outputting floating displays.
+.\"T}
+.\"\-FB@T{
+.\"Do not break when outputting floating displays.
+.\"T}
+.
+.
+.TP
+.B WE
+End the writer's address begun with
+.BR WA .
+.
+.
+.br
+.ne 4v
+.\" ====================================================================
+.SH Strings
+.\" ====================================================================
+.
+Many
+.I mm
+strings interpolate predefined,
+localizable text.
+.
+These are presented in quotation marks.
+.
+.
+.TP
+.B App
+\[lq]APPENDIX\[rq]
+.
+.
+.TP
+.B Apptxt
+stores the
+.I title
+argument to the last
+.B APP
+call.
+.
+.
+.TP
+.B BU
+interpolates a bullet
+(see
+.BR BL ).
+.
+.
+.TP
+.B Ci
+is a list of indentation amounts to use for table of contents heading
+levels,
+overriding their automatic computation.
+.
+Each word must be a horizontal measurement
+(like
+.RB \[lq] 1i \[rq])
+and is mapped one-to-one to heading levels 1,
+2,
+and so on.
+.
+.
+.TP
+.B DT
+The date;
+set by the
+.B ND
+macro
+(defaults to the date the document is formatted).
+.
+The format is the conventional one for the
+.I groff
+locale,
+but see the
+.B ISODATE
+macro and
+.B Iso
+register.
+.
+.
+.TP
+.B EM
+interpolates an em dash.
+.
+.
+.TP
+.B F
+interpolates an automatically numbered footnote marker;
+the number is used by the next
+.B FS
+call without an argument.
+.
+In
+.I troff
+mode,
+the marker is superscripted;
+in
+.I nroff
+mode,
+it is surrounded by square brackets.
+.
+.
+.TP
+.B H1txt
+Updated by
+.B .H
+and
+.B .HU
+to the current heading text.
+.
+Also updated in table of contents & friends.
+.
+.
+.TP
+.B HF
+assigns font identifiers,
+separated by spaces,
+to heading levels in one-to-one correspondence.
+.
+Each identifier may be a font mounting position,
+font name,
+or style name.
+.
+Omitted values are assumed to be\~1.
+.
+The default is
+.RB \[lq] "2 2 2 2 2 2 2 2 2 2 2 2 2 2" \[rq],
+which places all headings in italics.
+.
+DWB
+.IR mm 's
+default was
+.RB \[lq] "3 3 2 2 2 2 2" \[rq].
+.
+.
+.TP
+.B HP
+assigns type sizes,
+separated by spaces,
+to heading levels in one-to-one correspondence.
+.
+Each size is interpreted in scaled points;
+zero values are translated to
+.BR 10 .
+.
+Omitted values are assumed to be\~0
+(and are translated accordingly).
+.
+The default is
+.RB \[lq] "0 0 0 0 0 0 0 0 0 0 0 0 0 0" \[rq].
+.
+.
+.TP
+.B Index
+\[lq]INDEX\[rq]
+.
+.
+.TP
+.B Le
+\[lq]LIST OF EQUATIONS\[rq]
+.
+.
+.TP
+.B Letfc
+\[lq]Yours very truly,\[rq]
+(see
+.BR FC )
+.
+.
+.TP
+.B Letapp
+\[lq]APPROVED:\[rq]
+(see
+.BR AV )
+.
+.
+.TP
+.B LetAT
+\[lq]ATTENTION:\[rq]
+(see
+.BR LO )
+.
+.
+.TP
+.B LetCN
+\[lq]CONFIDENTIAL\[rq]
+(see
+.BR LO )
+.
+.
+.TP
+.B Letdate
+\[lq]Date\[rq]
+(see
+.BR AV )
+.
+.
+.TP
+.B Letns
+is a group of strings structuring the notations produced by
+.BR NS .
+.
+If the
+.I code
+argument to
+.B NS
+has no corresponding string,
+the notation is included between parentheses,
+prefixed with
+.BR Letns!copy ,
+and suffixed with
+.BR Letns!to .
+.
+Observe the spaces after \[lq]Copy\[rq] and before \[lq]to\[rq].
+.
+.
+.RS
+.P
+.TS
+tab(@);
+Lb Lb Lb
+L L L.
+NS code@String@Contents
+0@Letns!0@Copy to
+1@Letns!1@Copy (with att.\&) to
+2@Letns!2@Copy (without att.\&) to
+3@Letns!3@Att.
+4@Letns!4@Atts.
+5@Letns!5@Enc.
+6@Letns!6@Encs.
+7@Letns!7@Under separate cover
+8@Letns!8@Letter to
+9@Letns!9@Memorandum to
+10@Letns!10@Copy (with atts.\&) to
+11@Letns!11@Copy (without atts.\&) to
+12@Letns!12@Abstract Only to
+13@Letns!13@Complete Memorandum to
+14@Letns!14@CC
+\[em]@Letns!copy@Copy \fI(with trailing space)\fP
+\[em]@Letns!to@ to \fI(note leading space)\fP
+.TE
+.RE
+.
+.
+.TP
+.B Letnsdef
+Select the notation format used by
+.B NS
+when it is given no argument.
+.
+The default is
+.RB \[lq] 0 \[rq].
+.
+.
+.TP
+.B LetRN
+\[lq]In reference to:\[rq]
+(see
+.BR LO )
+.
+.
+.TP
+.B LetSA
+\[lq]To Whom It May Concern:\[rq]
+(see
+.BR LO )
+.
+.
+.TP
+.B LetSJ
+\[lq]SUBJECT:\[rq]
+(see
+.BR LO )
+.
+.
+.TP
+.B Lf
+\[lq]LIST OF FIGURES\[rq]
+.
+.
+.TP
+.B Licon
+\[lq]CONTENTS\[rq]
+.
+.
+.TP
+.B Liec
+\[lq]Equation\[rq]
+.
+.
+.TP
+.B Liex
+\[lq]Exhibit\[rq]
+.
+.
+.TP
+.B Lifg
+\[lq]Figure\[rq]
+.
+.
+.TP
+.B Litb
+\[lq]TABLE\[rq]
+.
+.
+.TP
+.B Lt
+\[lq]LIST OF TABLES\[rq]
+.
+.
+.TP
+.B Lx
+\[lq]LIST OF EXHIBITS\[rq]
+.
+.
+.TP
+.BR MO1 \|.\|.\|.\| MO12
+\[lq]January\[rq] through \[lq]December\[rq]
+.
+.
+.TP
+.B Qrf
+\[lq]See chapter \[rs]\[rs]*[Qrfh],
+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]
+.
+.
+.
+.TP
+.B Sm
+interpolates
+.if c \[u2120] \[u2120],
+the service mark sign.
+.
+.
+.TP
+.B Tcst
+interpolates an indicator of the
+.B TC
+macro's processing status.
+.
+If
+.B TC
+is not operating,
+it is empty.
+.
+User-defined
+.B TP
+or
+.B EOP
+macros might condition page headers or footers on its contents.
+.
+.
+.IP
+.TS
+tab(@);
+lb lb
+l l.
+Value@Meaning
+co@Table of contents
+fg@List of figures
+tb@List of tables
+ec@List of equations
+ex@List of exhibits
+ap@Appendix
+.TE
+.
+.
+.TP
+.B Tm
+interpolates
+.if c \[tm] \[tm],
+the trade mark sign.
+.
+.
+.TP
+.B Verbnm
+supplies argument(s) to the
+.B nm
+request employed by the
+.B VERBON
+macro.
+.
+The default is\~\[lq]1\[rq].
+.
+.
+.br
+.ne 4v
+.\" ====================================================================
+.SH Registers
+.\" ====================================================================
+.
+Default register values,
+where meaningful,
+are shown in parentheses.
+.
+Many are also marked as Boolean-valued,
+meaning that they are considered \[lq]true\[rq]
+(on,
+enabled)
+when they have a positive value,
+and \[lq]false\[rq]
+(off,
+disabled)
+otherwise.
+.
+.
+.TP
+.B .mgm
+indicates that
+.I groff mm
+is in use
+(Boolean-valued;
+.BR 1 ).
+.
+.
+.TP
+.B :p
+is an auto-incrementing footnote counter;
+see
+.BR FS .
+.
+.
+.TP
+.B :R
+is an auto-incrementing reference counter;
+see
+.BR RS .
+.
+.
+.TP
+.B Aph
+formats an appendix heading
+(and title,
+if supplied);
+see
+.B APP
+(Boolean-valued;
+.BR 1 ).
+.
+.
+.TP
+.B Au
+includes supplemental author information
+(the third and subsequent arguments to
+.BR AU )
+in memorandum \[lq]from\[rq] information;
+see
+.B COVER
+and
+.B MT
+(Boolean-valued;
+.BR 1 ).
+.
+.
+.TP
+.B Cl
+sets the threshold for inclusion of headings in a table of contents.
+.
+Headings at levels above this value are excluded;
+see
+.B H
+and
+.B TC
+.RB ( 2 ).
+.
+The
+.B Cl
+register controls whether a heading is
+.I saved
+for output in the table of contents at the time
+.B H
+or
+.B HU
+is called;
+if you change
+.BR Cl 's
+value immediately prior to calling
+.BR TC ,
+you are unlikely to get the result you want.
+.
+.
+.TP
+.B Cp
+suppresses page breaks before lists of captioned
+equations,
+exhibits,
+figures,
+and tables,
+and before an index;
+see
+.BR EC ,
+.BR EX ,
+.BR FG ,
+.BR TB ,
+and
+.B INDP
+(Boolean-valued;
+.\" DWB 3.3's manual said this was 1, but the code said 0.
+.BR 0 ).
+.
+.
+.TP
+.B D
+produces debugging information for the
+.I mm
+package on the standard error stream.
+.
+A value of\~0 outputs nothing;
+1\~reports formatting progress.
+.
+Higher values communicate internal state information of increasing
+verbosity
+.RB ( 0 ).
+.
+.
+.TP
+.B De
+causes a page break after a floating display is output;
+see
+.B DF
+(Boolean-valued;
+.BR 0 ).
+.
+.
+.TP
+.B Df
+configures the behavior of
+.BR DF .
+.
+The following values are recognized;
+4 and 5 do not override the
+.B De
+register
+.RB ( 5 ).
+.
+.
+.IP
+.TS
+tab(@);
+Lb Lb
+L Lx.
+Value@Effect
+0@T{
+Flush pending displays
+at the end of each section
+when section-page numbering is active,
+otherwise at the end of the document.
+T}
+1@T{
+Flush a pending display
+on the current page or column
+if there is enough space,
+otherwise at the end of the document.
+T}
+2@T{
+Flush one pending display
+at the top of each page or column.
+T}
+3@T{
+Flush a pending display
+on the current page or column
+if there is enough space,
+otherwise at the top of the next.
+T}
+4@T{
+Flush as many pending displays
+as possible in a new page or column.
+T}
+5@T{
+Fill columns or pages with flushed displays
+until none remain.
+T}
+.TE
+.
+.
+.TP
+.B Ds
+puts vertical space in the amount of register
+.B Dsp
+(if defined) or
+.B Lsp
+before and after each static display;
+see
+.B DS
+(Boolean-valued;
+.BR 1 ).
+.
+.
+.TP
+.B Dsp
+configures the amount of vertical space placed
+before and after static displays;
+see
+.B DS
+and register
+.B Ds
+.RI ( undefined ).
+.
+.
+.TP
+.B Ec
+is an auto-incrementing equation counter;
+see
+.BR EC .
+.
+.
+.TP
+.B Ej
+sets the threshold for page breaks (ejection) prior to the format of
+headings.
+.
+Headings at levels above this value are set on the same page and column
+if possible;
+see
+.B H
+.RB ( 0 ).
+.
+.
+.TP
+.B Eq
+aligns an equation label to the left of a display instead of the right
+(Boolean-valued;
+.BR 0 ).
+.
+.
+.TP
+.B Ex
+is an auto-incrementing exhibit counter;
+see
+.BR EX .
+.
+.
+.TP
+.B Fg
+is an auto-incrementing figure counter;
+see
+.BR FG .
+.
+.
+.TP
+.B Fs
+is multiplied by register
+.B Lsp
+to vertically separate footnotes;
+see
+.B FS
+.RB ( 1 ).
+.
+.
+.TP
+.BR H1 \|.\|.\|.\| H14
+are auto-incrementing counters corresponding to each heading level;
+see
+.BR H .
+.
+.
+.\" XXX: This could be generalized to an "Hdot" threshold register with
+.\" a default of 2.
+.TP
+.B H1dot
+appends a period to the number of a level one heading;
+see
+.B H
+(Boolean-valued;
+.BR 1 ).
+.
+.
+.\" XXX: This may be insufficiently general; see Savannah #62825.
+.TP
+.B H1h
+is a copy of
+A copy of register
+.RB register\~ H1 ,
+but it is incremented just before a page break.
+.
+This can be useful in user-defined macros;
+see
+.B H
+and
+.BR HX .
+.
+.
+.TP
+.B Hb
+sets the threshold for breaking the line after formatting a heading.
+.
+Text after headings at levels above this value are set on the same
+output line if possible;
+see
+.B H
+.RB ( 2 ).
+.
+.
+.TP
+.B Hc
+sets the threshold for centering a heading.
+.
+Headings at levels above this value use the prevailing alignment
+(that is,
+they are not centered);
+see
+.B H
+.RB ( 0 ).
+.
+.
+.TP
+.B Hi
+configures the indentation of text after headings.
+.
+It does not affect \[lq]run-in\[rq] headings.
+.
+The following values are recognized;
+see
+.B H
+and
+.B P
+.RB ( 1 ).
+.
+.
+.IP
+.TS
+tab(@);
+Lb Lb
+L Lx.
+Value@Effect
+0@no indentation
+1@indent per the paragraph type
+2@indent to align with heading title
+.TE
+.
+.
+.TP
+.B Hps
+sets the heading level threshold for application of preceding vertical
+space;
+see
+.BR H .
+.
+Headings at levels above the value in register
+.B Hps
+use the amount of space in register
+.BR Hps1 ;
+otherwise that in
+.BR Hps2 .
+.
+The value of
+.B Hps
+should be strictly greater than that of
+.B Ej
+.RB ( 1 ).
+.
+.
+.TP
+.B Hps1
+configures the amount of vertical space preceding a heading above the
+.B Hps
+threshold;
+see
+.B H
+.RI ( troff
+devices:
+.BR 0.5v ;
+.I nroff
+devices:
+.BR 1v ).
+.
+.
+.TP
+.B Hps2
+configures the amount of vertical space preceding a heading at or below
+the
+.B Hps
+threshold;
+see
+.B H
+.RI ( troff
+devices:
+.BR 1v ;
+.I nroff
+devices:
+.BR 2v ).
+.
+.
+.TP
+.B Hs
+sets the heading level threshold for application of succeeding vertical
+space.
+.
+If the heading level is greater than
+.BR Hs ,
+the heading is followed by vertical space in the amount of
+.RB register\~ Hss ;
+see
+.B H
+.RB ( 2 ).
+.
+.
+.TP
+.B Hss
+is multiplied by register
+.B Lsp
+to produce vertical space after headings above the
+threshold in
+.RB register\~ Hs ;
+see
+.B H
+.RB ( 1 ).
+.
+.
+.TP
+.B Ht
+suppresses output of heading level counters above the lowest when the
+heading is formatted;
+see
+.B H
+(Boolean-valued;
+.BR 0 ).
+.
+.
+.
+.TP
+.B Hu
+sets the heading level used by unnumbered headings;
+see
+.B HU
+.RB ( 2 ).
+.
+.
+.TP
+.B Hy
+enables automatic hyphenation of words
+(Boolean-valued;
+.BR 0 ).
+.
+.
+.TP
+.B Iso
+configures the use of ISO\~8601 date format
+if specified
+(with any value)
+on the command line;
+see
+.BR ISODATE .
+.
+The default is determined by localization files.
+.
+.
+.TP
+.B L
+defines the page length for the document,
+and must be set from the command line.
+.
+A scaling unit should be appended.
+.
+The default is that of the selected
+.I groff
+output device.
+.
+.
+.TP
+.B Le
+.TQ
+.B Lf
+.TQ
+.B Lt
+.TQ
+.B Lx
+configure the report of lists of equation,
+figure,
+table,
+and exhibit captions,
+respectively,
+after a table of contents;
+see
+.B TC
+(Boolean-valued;
+.BR Le :\~ 0 ;
+.BR Lf ,
+.BR Lt ,
+.BR Lx :\~ 1 ).
+.
+.
+.\" XXX: What is the rationale for this feature?
+.TP
+.B Letwam
+sets the maximum number of input lines permitted in a writer's address;
+see
+.B WA
+and
+.B WE
+.RB ( 14 ).
+.
+.
+.TP
+.B Li
+configures the amount of indentation in ens applied to list items;
+see
+.B LI
+.RB ( 6 ).
+.
+.
+.TP
+.B Limsp
+inserts a space between the prefix and the mark
+in automatically numbered lists;
+see
+.B AL
+(Boolean-valued;
+.BR 1 ).
+.
+.
+.TP
+.B Ls
+sets a threshold for placement of vertical space before list items.
+.
+If the list nesting level is greater than this value,
+no such spacing occurs;
+see
+.B LI
+.RB ( 99 ).
+.
+.
+.TP
+.B Lsp
+configures the base amount of vertical space used for separation
+in the document.
+.
+.I mm
+applies this spacing to many contexts,
+sometimes with multipliers;
+see
+.BR DS ,
+.BR FS ,
+.BR H ,
+.BR LI ,
+and
+.B P
+.RI ( troff
+devices:
+.BR 0.5v ;
+.I nroff
+devices:
+.BR 1v ).
+.
+.
+.TP
+.B N
+configures the header and footer placements used by
+.BR PH .
+.
+The default footer is empty.
+.
+If \[lq]section-page\[rq] numbering is selected,
+the default header becomes empty
+and the default footer becomes
+.RI \[lq] x - y \[rq],
+where
+.IR x \~is
+is the section number
+(the number of the current first-level heading)
+.RI and\~ y
+the page number within the section.
+.\" XXX: section-figure numbering needs more documentation.
+.
+The following values are recognized;
+for finer control,
+see
+.BR PH ,
+.BR PF ,
+.BR EH ,
+.BR EF ,
+.BR OH ,
+and
+.BR OF ,
+and registers
+.B Sectf
+and
+.BR Sectp .
+.
+Value 5 is a GNU extension
+.RB ( 0 ).
+.
+.
+.IP
+.TS
+tab(@);
+Lb Lb
+L Lx.
+Value@Effect
+0@Set header on all pages.
+1@Move header to footer on page 1.
+2@Omit header on page 1.
+3@Use \[lq]section-page\[rq] numbering style on all pages.
+4@Omit header on all pages.
+5@T{
+Use \[lq]section-page\[rq] and \[lq]section-figure\[rq] \
+numbering style on all pages.
+T}
+.TE
+.
+.
+.TP
+.B Np
+causes paragraphs after first-level headings (only) to be numbered
+in the format
+.IR s . p ,
+where
+.IR s \~is
+is the section number
+(the number of the current first-level heading)
+and
+.IR p \~is
+the paragraph number,
+starting at 1;
+see
+.B H
+and
+.B P
+(Boolean-valued;
+.BR 0 ).
+.
+.
+.TP
+.B O
+defines the page offset of the document,
+and must be set from the command line.
+.
+A scaling unit should be appended.
+.
+The default
+.RB is\~ \&.75i
+on terminal devices.
+.
+On typesetters,
+it is
+.B \&.963i
+or set to
+.B 1i
+by the
+.I papersize.tmac
+package;
+see
+.MR groff_tmac @MAN5EXT@ .
+.
+.
+.TP
+.B Oc
+suppresses the appearance of page numbers in the table of contents;
+see
+.B TC
+(Boolean-valued;
+.BR 0 ).
+.
+.
+.\" XXX: This really should just be a string, shouldn't it?
+.TP
+.B Of
+selects a separator format within equation,
+exhibit,
+figure,
+and table captions;
+see
+.BR EC ,
+.BR EX ,
+.BR FG ,
+and
+.BR TB .
+.
+The following values are recognized;
+the spaces shown are unpaddable
+.RB ( 0 ).
+.
+.
+.IP
+.TS
+tab(@);
+Lb Lb
+L Lx.
+Value@Effect
+0@\[dq]. \[dq]
+1@\[dq] \[em] \[dq]
+.TE
+.
+.
+.TP
+.B P
+interpolates the current page number;
+it is the same as
+.RB register\~ %
+except when
+\[lq]section-page\[rq] numbering is enabled.
+.
+.
+.TP
+.B Pi
+configures the amount of indentation in ens applied to the first line of
+a paragraph;
+see
+.B P
+.RB ( 5 ).
+.
+.
+.TP
+.B Pgps
+causes the type size and vertical spacing set by
+.B S
+to apply to headers and footers,
+overriding the
+.B HP
+string.
+.
+If not set,
+.B S
+calls affect headers and footers only when followed by
+.BR PH ,
+.BR PF ,
+.BR OH ,
+.BR EH ,
+.BR OF ,
+or
+.B OE
+calls
+(Boolean-valued;
+.BR 1 ).
+.
+.
+.TP
+.B Ps
+is multiplied by register
+.B Lsp
+to vertically separate paragraphs;
+see
+.B P
+.RB ( 1 ).
+.
+.
+.TP
+.B Pt
+determines when a first-line indentation is applied to a paragraph;
+see
+.B P
+.RB ( 0 ).
+.
+.
+.IP
+.TS
+tab(@);
+Lb Lb
+L Lx.
+Value@Effect
+0@never
+1@always
+2@T{
+always,
+except immediately after
+.BR H ,
+.BR DE ,
+or
+.B LE
+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
+configures the default page ejection policy for reference pages;
+see
+.B RP
+.RB ( 0 ).
+.
+.
+.IP
+.TS
+tab(@);
+Lb Lb
+L Lx.
+Value@Effect
+0@Break the page before and after the list of references.
+1@Suppress page break after the list.
+2@Suppress page break before the list.
+3@Suppress page breaks before and after the list.
+.TE
+.
+.
+.TP
+.B S
+defines the type size for the document,
+and must be set from the command line.
+.
+A scaling unit should be appended;
+.B p
+is typical
+.RB ( 10p ).
+.
+.
+.TP
+.B Sectf
+selects the \[lq]section-figure\[rq] numbering style.
+.
+Its default
+.RB is\~ 0
+unless
+.RB register\~ N
+is set
+.RB to\~ 5
+at the command line
+(Boolean-valued).
+.
+.
+.TP
+.B Sectp
+selects the \[lq]section-page\[rq] numbering style.
+.
+Its default
+.RB is\~ 0
+unless
+.RB register\~ N
+is set
+.RB to\~ 3
+.RB or\~ 5
+at the command line
+(Boolean-valued).
+.
+.
+.TP
+.B Si
+configures the amount of display indentation in ens;
+see
+.B DS
+.RB ( 5 ).
+.
+.
+.TP
+.B Tb
+is an auto-incrementing table counter;
+see
+.BR TB .
+.
+.
+.TP
+.B V
+defines the vertical spacing for the document,
+and must be set from the command line.
+.
+A scaling unit should be appended;
+.B p
+is typical.
+.
+The default vertical spacing is 120% of the type size.
+.
+.
+.TP
+.B Verbin
+configures the amount of indentation for verbatim displays
+when indentation is selected;
+see
+.B \%VERBON
+.RB ( 5n ).
+.
+.
+.TP
+.B W
+defines the \[lq]width\[rq]
+of the document
+(that is,
+the length of an output line with no indentation);
+it must be set from the command line.
+.
+A scaling unit should be appended.
+.
+The default
+.RB is\~ 6i
+or assigned by the
+.I papersize.tmac
+package;
+see
+.MR groff_tmac @MAN5EXT@ .
+.
+.
+.
+.\" ====================================================================
+.SH Internals
+.\" ====================================================================
+.
+The
+.B LT
+letter macros call further macros depending on the letter type,
+with which they are suffixed.
+.
+It is therefore possible to define additional letter types,
+either in the territory-specific macro file,
+or as local additions.
+.
+.B LT
+sets the registers
+.B Pt
+and
+.B Pi
+to 0 and\~5, \" XXX: ...but doesn't use Pi for indentation...
+respectively.
+.\" XXX: and why aren't both of these actions the responsibility of
+.\" let@init_type as described below?
+.
+The following macros must be defined to support a new letter type.
+.
+.
+.TP
+.BI let@init_ type
+.B LT
+calls this macro to initialize any registers and other data needed by
+the letter type.
+.
+.
+.TP
+.BI let@head_ type
+formats the letterhead;
+it is called instead of the usual page header macro.
+.
+Its definition should remove the alias
+.B let@header
+unless the letterhead is desired on subsequent pages.
+.
+.
+.TP
+.BI let@sg_ type\~\c
+.IR "name title n is-final\~" [ SG-arg\~ .\|.\|.]
+.B SG
+calls this macro only for letters;
+.B MT
+memoranda have their own signature processing.
+.
+.I name
+and
+.I title
+are specified through
+.BR WA / WE .
+.
+.IR n \~is
+the index of the
+.IR n th
+writer,
+and
+.I is-final
+is true for the last writer to be listed.
+.
+Further
+.B SG
+arguments are appended to the signature line.
+.
+.
+.TP
+.BI let@fc_ "type closing"
+This macro is called by
+.BR FC ,
+and has the formal closing as the argument.
+.
+.
+.P
+.B LO
+implements letter options.
+.
+It requires that a string named
+.BI Let type
+be defined,
+where
+.I type
+is the letter type.
+.
+.B LO
+then assigns its second argument
+.RI ( value )
+to the string
+.BI let*lo\- type\c
+\&.
+.
+.
+.\" ====================================================================
+.\".SH BUGS
+.\" ====================================================================
+.
+.
+.\" ====================================================================
+.SH Files
+.\" ====================================================================
+.
+.TP
+.I @MACRODIR@/@TMAC_M_PREFIX@m.tmac
+is the
+.I groff
+implementation of the memorandum macros.
+.
+.
+.TP
+.I @MACRODIR@/mm.tmac
+is wrapper to load
+.IR m.tmac .
+.
+.
+.TP
+.I @MACRODIR@/refer\-mm.tmac
+implements
+.MR @g@refer @MAN1EXT@
+support for
+.IR mm .
+.
+.
+.TP
+.I @TMAC_MDIR@/ms.cov
+implements an
+.IR ms -like
+cover sheet.
+.
+.
+.TP
+.I @TMAC_MDIR@/0.MT
+implements memorandum types 0\[en]3 and 6.
+.
+.
+.TP
+.I @TMAC_MDIR@/4.MT
+implements memorandum type 4.
+.
+.
+.TP
+.I @TMAC_MDIR@/5.MT
+implements memorandum type 5.
+.
+.
+.TP
+.I @TMAC_MDIR@/locale
+performs any (further) desired necessary localization;
+empty by default.
+.
+.
+.\" ====================================================================
+.SH Authors
+.\" ====================================================================
+.
+The GNU version of the
+.I mm
+macro package was written by
+.MT jh@\:axis\:.se
+J\[:o]rgen H\[:a]gg
+.ME
+of Lund, Sweden.
+.
+.
+.\" ====================================================================
+.SH "See also"
+.\" ====================================================================
+.
+.UR https://tkurtbond\:.github\:.io/\:troff/\:mm\-all\:.pdf
+.I MM \- A Macro Package for Generating Documents
+.UE ,
+the DWB\~3.3
+.I mm
+manual,
+introduces the package but does not document GNU extensions.
+.
+.
+.P
+.IR "Groff: The GNU Implementation of troff" ,
+by Trent A.\& Fisher and Werner Lemberg,
+is the primary
+.I groff
+manual.
+.
+You can browse it interactively with \[lq]info groff\[rq].
+.
+.
+.P
+.MR groff @MAN1EXT@ ,
+.MR @g@troff @MAN1EXT@ ,
+.MR @g@tbl @MAN1EXT@ ,
+.MR @g@pic @MAN1EXT@ ,
+.MR @g@eqn @MAN1EXT@ ,
+.MR @g@refer @MAN1EXT@ ,
+.MR groff_mmse @MAN7EXT@
+.
+.
+.\" Restore compatibility mode (for, e.g., Solaris 10/11).
+.cp \n[*groff_groff_mm_7_man_C]
+.do rr *groff_groff_mm_7_man_C
+.
+.
+.\" Local Variables:
+.\" fill-column: 72
+.\" mode: nroff
+.\" End:
+.\" vim: set filetype=groff textwidth=72: