groff_mm(7) — Linux manual page

Name | Synopsis | Description | Macros | Strings | Registers | Internals | Files | Authors | See also | COLOPHON

groff_mm(7)         Miscellaneous Information Manual         groff_mm(7)

Name         top

       groff_mm - memorandum macros for GNU roff

Synopsis         top

       groff -mm [option ...] [file ...]
       groff -m mm [option ...] [file ...]

Description         top

       The GNU implementation of the mm macro package is part of the
       groff document formatting system.  The mm package is suitable for
       the composition of letters, memoranda, reports, and books.

       groff mm is intended to be compatible with the mm implementation
       found in the AT&T Documenter's Workbench (DWB), with the
       following limitations.

       •      No Bell Labs localisms are implemented.

       •      The macros OK and PM are not implemented.

       •      Cut marks are not supported.

   Localization
       groff mm is designed to be easily localized.  Strings that can
       appear in output are collected in the file /usr/local/share/
       groff/1.23.0/tmac/xx.tmac, where xx is an ISO 639 two-letter
       language identifier.  For Swedish, this is sv.tmac; “sv”, not
       “se”.

       This package can also be localized by site or territory; for
       example, /usr/local/share/groff/1.23.0/tmac/mse.tmac illustrates
       how to adapt the output to a national standard using its ISO 3166
       territory code.  Such a package can define an internal string
       that causes a macro file called territory_locale to be loaded at
       package initialization.  If this mechanism is not used, a macro
       file called locale is loaded instead.  No diagnostic is produced
       if these macro files do not exist.

   Registers and strings
       The behavior of many macros can be configured by registers and
       strings.  A register is assigned with the nr request.

              .nr ident [±]n [i]

       ident is the name of the register, and n is the value to be
       assigned.  n can be prefixed with a plus or minus sign if
       incrementation or decrementation (respectively) of the register's
       existing value is desired.  If assignment of a (possibly)
       negative n is required, further prefix it with a zero or enclose
       it in parentheses.  If i is specified, the register is
       automatically modified by i prior to interpolation if a plus or
       minus sign is included in the escape sequence as follows.

              \n[±][ident]

       i can be negative; it combines algebraically with the sign in the
       interpolation escape.

       Strings are defined with the ds request.

              .ds ident string

       The string is assigned everything up to the end of the line,
       including trailing spaces.  It is a good practice to end string
       with a comment escape sequence (\") so that extraneous spaces do
       not intrude during document maintenance.  To include leading
       spaces in string, prefix it with a double quote.  Strings are
       interpolated with the \* escape sequence.

              \*[ident]

       Register and string name spaces are distinct, but strings and
       macros share a name space.  Defining a string with the same name
       as an mm macro is not supported and may cause incorrect
       rendering, the emission of diagnostic messages, and an error exit
       status from troff.

   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 af request.

              .af R c

       R is the name of the register, and c is the format.  If c is a
       sequence of Arabic numerals, their quantity defines a zero-padded
       minimum width for the interpolated register value.

              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, ...

   Fonts
       In groff mm, the fonts (or rather, font styles) R (normal),
       I (italic), and B (bold) are mounted at font positions 1, 2,
       and 3, respectively.  Internally, font positions are used for
       backwards compatibility.  From a practical point of view, it
       doesn't make a big difference—a different font family can still
       be selected by invoking groff's fam request or using its -f
       command-line option.  On the other hand, if you want to replace
       just, for example, font I with Zapf Chancery Medium italic
       (available on groff's pdf and ps output devices), you have to use
       the fp request, replacing the font at position 2 with
       “.fp 2 ZCMI”).  Because the cover sheet, memorandum type, and
       refer(1) integration macros explicitly request fonts named B, I,
       and R, you will also need to remap these font names with the ftr
       request, for instance with “.ftr I ZCMI”.

Macros         top

       )E level text
              Add heading text text to the table of contents with level,
              which is either 0 or in the range 1 to 7.  See also .H.
              This macro is used for customized tables of contents.

       1C [1] Begin one-column processing.  A 1 as an argument disables
              the page break.  Use wide footnotes, small footnotes may
              be overprinted.

       2C     Begin two-column processing.  Splits the page in two
              columns.  It is a special case of MC.  See also 1C.

       AE     Abstract end, see AS.

       AF [name-of-firm]
              Author's firm, should be called before AU, see also COVER.

       AL [type [text-indent [1]]]
              Start auto-increment list.  Items are numbered beginning
              with one.  The type argument controls the format of
              numbers.

                     Arg   Description
                     1     Arabic (the default)
                     A     Upper-case letters (A–Z)
                     a     Lower-case letters (a–z)
                     I     Upper-case roman
                     i     Lower-case roman

              text-indent sets the indentation and overrides Li.  A
              third argument prohibits printing of a blank line before
              each item.

       APP name text
              Begin an appendix with name name.  Automatic naming occurs
              if name is "".  The appendices start with A if automatic
              naming is used.  A new page is ejected, and a header is
              also produced if the register Aph is non-zero.  This is
              the default.  The appendix always appears in the “List of
              contents” with correct page numbers.  The name “APPENDIX”
              can be changed by setting the string App to the desired
              text.  The string Apptxt contains the current appendix
              text.

       APPSK name pages text
              Same as .APP, but the page number is incremented with
              pages.  This is used when diagrams or other non-formatted
              documents are included as appendices.

       AS [arg [indent]]
              Abstract start.  Depending on the cover sheet macros used,
              arg influences the placement of the abstract.  The default
              cover sheet style used when .COVER is called without
              arguments (and .MT is not called at all) places the
              abstract on the cover sheet and ignores arg.

              The memorandum types interpret arg as follows.

              arg   Placement
              0     The abstract is printed on page 1 and on the cover
                    sheet if used in the released-paper style (MT 4);
                    otherwise, it is printed on page 1 without a cover
                    sheet.
              1     The abstract is printed only on the cover sheet (MT
                    4 only).

              An abstract is not printed at all in external letters (MT
              5).

              The indent parameter controls the indentation of both
              margins; otherwise normal text indentation is used.  Its
              value is interpreted in ens by default.

       AST [title]
              Abstract title.  Default is “ABSTRACT”.  Sets the text
              above the abstract text.

       AT title [...]
              Author's title(s).  If present, AT must appear just after
              the corresponding author's AU.  Each title shows up on a
              separate output line after the name in the signature block
              and in the ms cover sheet style.

       AU [name [initials [loc [dept [ext [room [arg1 [arg2 [arg3]]]]]]]]]
              Author information.  Specifies the author of the memo or
              paper, and is printed on the cover sheet and in other
              similar places.  AU must not appear before TL.  The author
              information can contain initials, location, department,
              telephone extension, room number or name, and up to three
              additional arguments.

       AV [name [1]]
              Approval signature.  Generates an approval line with place
              for signature and date.  The text “APPROVED:” can be
              changed with the string Letapp; it is replaced with an
              empty line if there is a second argument.  The text “Date”
              can be changed with the string Letdate.

       AVL [name]
              Letter signature.  Generates a line with place for
              signature.

       B [bold-text [previous-font-text]] ...
              Join bold-text in boldface with previous-font-text in the
              previous font, without space between the arguments.  If no
              arguments, switch font to bold style.

       B1     Begin boxed, kept display.  The text is indented one
              character, and the right margin is one character shorter.

       B2     End boxed, kept display.

       BE     End bottom block, see BS.

       BI [bold-text [italic-text]] ...
              Join bold-text in boldface with italic-text in italics,
              without space between the arguments.

       BL [text-indent [1]]
              Start bullet list.  Initializes a list with a bullet and a
              space in the beginning of each list item (see LI).  text-
              indent overrides the default indentation of the list items
              set by register Pi.  A third argument prohibits printing
              of a blank line before each item.

       BR [bold-text [roman-text]] ...
              Join bold-text in boldface with roman-text in roman style,
              without space between the arguments.

       BS     Bottom block start.  Begins the definition of a text block
              which is printed at the bottom of each page.  The block
              ends with BE.

       BVL text-indent [mark-indent [1]]
              Start of broken variable-item list.  Broken variable-item
              list has no fixed mark, it assumes that every LI has a
              mark instead.  The text always begins at the next line
              after the mark.  text-indent sets the indentation to the
              text, and mark-indent the distance from the current
              indentation to the mark.  A third argument prohibits
              printing of a blank line before each item.

       COVER [style]
              Begin a cover sheet description.  It is important that
              .COVER appear before any of the body text (or main matter)
              of a document.  The argument style is used to construct
              the file name
              /usr/local/share/groff/1.23.0/tmac/mm/style.cov and load
              it with the mso request.  Therefore it is possible to
              create unlimited types of cover sheets.  The default style
              is ms; it structures a cover sheet to resemble that used
              by the ms package.  .COVER requires a .COVEND at the end
              of the cover description.  Always use the following
              ordering of the cover sheet macros.

                     .COVER
                     .TL
                     .AF
                     .AU
                     .AT
                     .AS
                     .AE
                     .COVEND

              Only .TL and .AU are required.

       COVEND End the cover description and output the cover page.  This
              macro is defined in the cover sheet macro file.

       DE     Display end.  Ends a block of text or display that begins
              with DS or DF.

       DF [format [fill [rindent]]]
              Begin floating display (no nesting allowed).  A floating
              display is saved in a queue and is printed in the order
              entered.  Format, fill, and rindent are the same as in DS.
              Floating displays are controlled by the registers De and
              Df.

              De register

                     0   Nothing special, this is the default.
                     1   A page eject occurs after each printed display,
                         giving only one display per page and no text
                         following it.

              Df register

                     0   Displays are printed at the end of each section
                         (when section-page numbering is active) or at
                         the end of the document.
                     1   A new display is printed on the current page if
                         there is enough space, otherwise it is printed
                         at the end of the document.
                     2   One display is printed at the top of each page
                         or column (in multi-column mode).
                     3   Print one display if there is enough space for
                         it, otherwise it is printed at the top of the
                         next page or column.
                     4   Print as many displays as possible in a new
                         page or column.  A page break occurs between
                         each display if De is not zero.
                     5   Fill the current page with displays and the
                         rest beginning at a new page or column.  (This
                         is the default.)  A page break occurs between
                         each display if De is not zero.

       DL [text-indent [1 [1]]]
              Dash list start.  Begins a list where each item is printed
              after a dash.  text-indent changes the default indentation
              of the list items set by register Pi.  A second argument
              prevents an empty line between each list item.  See LI.  A
              third argument prohibits printing of a blank line before
              each item.

       DS [format [fill [rindent]]]
              Static display start.  Begins collection of text until DE.
              The text is printed together on the same page, unless it
              is longer than the height of the page.  DS can be nested
              arbitrarily.

              format

                     ""     No indentation.

                     none   No indentation.
                     L      No indentation.
                     I      Indent text with the value of register Si.
                     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.

              The values “L”, “I”, “C”, and “CB” can also be specified
              as “0”, “1”, “2”, and “3”, respectively, for compatibility
              reasons.

              fill

                     ""     Line-filling turned off.
                     none   Line-filling turned off.
                     N      Line-filling turned off.
                     F      Line-filling turned on.

              “N” and “F” can also be specified as “0” and “1”,
              respectively.

              By default, an empty line is printed before and after the
              display.  Setting register Ds to 0 prevents this.  rindent
              shortens the line length by that amount.

       EC [title [override [flag [refname]]]]
              Equation title.  Sets a title for an equation.  The
              override argument changes the numbering.

              flag

                     none   override is a prefix to the number.
                     0      override is a prefix to the number.
                     1      override is a suffix to the number.
                     2      override replaces the number.

              EC uses the register Ec as a counter.  It is possible to
              use .af to change the format of the number.  If register
              Of is 1, the format of title uses a dash instead of a dot
              after the number.

              The string Le controls the title of the List of Equations;
              default is “LIST OF EQUATIONS”.  The List of Equations is
              printed only if register Le is 1.  The default is 0.  The
              string Liec contains the word “Equation”, which is printed
              before the number.  If refname is used, then the equation
              number is saved with .SETR, and can be retrieved with
              “.GETST refname”.

              Special handling of the title occurs if EC is used inside
              DS/DE; it is not affected by the format of DS.

       EF [arg]
              Even-page footer, printed just above the normal page
              footer on even pages.  See PF.

              This macro defines string EOPef.

       EH [arg]
              Even-page header, printed just below the normal page
              header on even pages.  See PH.

              This macro defines string TPeh.

       EN     Equation end, see EQ.

       EOP    End-of-page user-defined macro.  This macro is called
              instead of the normal printing of the footer.  The macro
              is executed in a separate environment, without any trap
              active.  See TP.

              Strings available to EOP

              EOPf    argument of PF
              EOPef   argument of EF
              EOPof   argument of OF

       EPIC [-L] width height [name]
              Draw a box with the given width and height.  It also
              prints the text name or a default string if name is not
              specified.  This is used to include external pictures;
              just give the size of the picture.  -L left-aligns the
              picture; the default is to center.  See PIC.

       EQ [label]
              Equation start.  EQ/EN are the delimiters for equations
              written for eqn(1).  EQ/EN must be inside of a DS/DE pair,
              except if EQ is used to set options for eqn only.  The
              label argument appears at the right margin of the
              equation, centered vertically within the DS/DE block,
              unless register Eq is 1.  Then the label appears at the
              left margin.

              If there are multiple EQ/EN blocks within a single DS/DE
              pair, only the last equation label (if any) is printed.

       EX [title [override [flag [refname]]]]
              Exhibit title.  The arguments are the same as for EC.  EX
              uses the register Ex as a counter.  The string Lx controls
              the title of the List of Exhibits; default is “LIST OF
              EXHIBITS”.  The List of Exhibits is printed only if
              register Lx is 1, which is the default.  The string Liex
              contains the word “Exhibit”, which is printed before the
              number.  If refname is used, the exhibit number is saved
              with .SETR, and can be retrieved with “.GETST refname”.

              Special handling of the title occurs if EX is used inside
              DS/DE; it is not affected by the format of DS.

       FC [closing]
              Print “Yours very truly,” as a formal closing of a letter
              or memorandum.  The argument replaces the default string.
              The default is stored in the string Letfc.

       FD [arg [1]]
              Footnote default format.  Controls the hyphenation
              (hyphen), adjustment to the right margin (adjust), and
              indentation of footnote text (indent).  It can also change
              the label justification (ljust).

                     arg   hyphen   adjust   indent   ljust
                     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

              An argument greater than or equal to 11 is considered as
              value 0.  The default for mm is 10.

       FE     Footnote end.

       FG [title [override [flag [refname]]]]
              Figure title.  The arguments are the same as for EC.  FG
              uses the register Fg as a counter.  The string Lf controls
              the title of the List of Figures; default is “LIST OF
              FIGURES”.  The List of Figures is printed only if register
              Lf is 1, which is the default.  The string Lifg contains
              the word “Figure”, which is printed before the number.  If
              refname is used, then the figure number is saved with
              .SETR, and can be retrieved with “.GETST refname”.

              Special handling of the title occurs if FG is used inside
              DS/DE, it is not affected by the format of DS.

       FS [label]
              Footnote start.  The footnote is ended by FE.  By default,
              footnotes are automatically numbered; the number is
              available in string F.  Just add \*F in the text.  By
              adding label, it is possible to have other number or names
              on the footnotes.  Footnotes in displays are now possible.
              An empty line separates footnotes; the height of the line
              is controlled by register Fs, default value is 1.

       GETHN refname [varname]
              Include the header number where the corresponding “.SETR
              refname” was placed.  This is displayed as “X.X.X.” in
              pass 1.  See INITR.  If varname is used, GETHN sets the
              string varname to the header number.

       GETPN refname [varname]
              Include the page number where the corresponding “.SETR
              refname” was placed.  This is displayed as “9999” in
              pass 1.  See INITR.  If varname is used, GETPN sets the
              string varname to the page number.

       GETR refname
              Combine GETHN and GETPN with the text “chapter” and
              “, page”.  The string Qrf contains the text for the cross
              reference:

                     .ds Qrf See chapter \\*[Qrfh], page \\*[Qrfp].

              Qrf may be changed to support other languages.  Strings
              Qrfh and Qrfp are set by GETR and contain the page and
              header number, respectively.

       GETST refname [varname]
              Include the string saved with the second argument to
              .SETR.  This is a dummy string in pass 1.  If varname is
              used, GETST sets it to the saved string.  See INITR.

       H level [heading-text [heading-suffix]]
              Numbered section heading.  Section headers can have a
              level between 1 and 14; level 1 is the top level.  The
              text is given in heading-text, and must be surrounded by
              double quotes if it contains spaces.  heading-suffix is
              added to the header in the text but not in the table of
              contents.  This is normally used for footnote marks and
              similar things.  Don't use \*F in heading-suffix, it
              doesn't work.  A manual label must be used, see FS.

              A call to the paragraph macro P directly after H is
              ignored.  H takes care of spacing and indentation.

              Page ejection before heading

                     Register Ej controls page ejection before the
                     heading.  By default, a level-one heading gets two
                     blank lines before it; higher levels only get one.
                     A new page is ejected before each first-level
                     heading if register Ej is 1.  All levels below or
                     equal the value of Ej get a new page.  Default
                     value for Ej is 0.

              Heading break level

                     A line break occurs after the heading if the
                     heading level is less or equal to register Hb.
                     Default value is 2.

              Heading space level

                     A blank line is inserted after the heading if the
                     heading level is less or equal to register Hs.
                     Default value is 2.

                     Text follows the heading on the same line if the
                     level is greater than both Hb and Hs.

              Post-heading indent

                     Indentation of the text after the heading is
                     controlled by register Hi.  Default value is 0.

                     Hi

                     0   The text is left-justified.
                     1   Indentation of the text follows the value of
                         register Pt , see P.
                     2   The text is lined up with the first word of the
                         heading.

              Centered section headings

                     All headings whose level is equal or below register
                     Hc and also less than or equal to Hb or Hs are
                     centered.

              Font control of the heading

                     The font of each heading level is controlled by
                     string HF.  It contains a font number or font name
                     for each level.  Default value is

                            2 2 2 2 2 2 2 2 2 2 2 2 2 2

                     (all headings in italic).  This could also be
                     written as

                            I I I I I I I I I I I I I I

                     Note that some other implementations use
                     3 3 2 2 2 2 2 as the default value.  All omitted
                     values are presumed to have value 1.

              Point size control

                     String HP controls the point size of each heading,
                     in the same way as HF controls the font.  A value
                     of 0 selects the default point size.  Default value
                     is

                            0 0 0 0 0 0 0 0 0 0 0 0 0 0

                     Beware that only the point size changes, not the
                     vertical size.  The latter can be controlled by the
                     user-specified macros HX and/or HZ.

              Heading counters

                     Fourteen registers named H1 up to H14 contain the
                     counter for each heading level.  The values are
                     printed using Arabic numerals; this can be changed
                     with the macro HM (see below).  All marks are
                     concatenated before printing.  To avoid this, set
                     register Ht to 1.  This only prints the current
                     heading counter at each heading.

              Automatic table of contents

                     All headings whose level is equal or below register
                     Cl are saved to be printed in the table of
                     contents.  Default value is 2.

              Special control of the heading, user-defined macros

                     The following macros can be defined by the user to
                     get a finer control of vertical spacing, fonts, or
                     other features.  Argument level is the level-
                     argument to H, but 0 for unnumbered headings (see
                     HU).  Argument rlevel is the real level; it is set
                     to register Hu for unnumbered headings.  Argument
                     heading-text is the text argument to H and HU.

                     HX level rlevel heading-text
                            This macro is called just before the
                            printing of the heading.  The following
                            registers are available for HX.  Note that
                            HX may alter }0, }2, and ;3.

                            }0 (string)
                                   Contains the heading mark plus two
                                   spaces if rlevel is non-zero,
                                   otherwise empty.

                            ;0 (register)
                                   Contains the position of the text
                                   after the heading.  0 means that the
                                   text should follow the heading on the
                                   same line, 1 means that a line break
                                   should occur before the text, and
                                   2 means that a blank line should
                                   separate the heading and the text.

                            }2 (string)
                                   Contains two spaces if register ;0
                                   is 0.  It is used to separate the
                                   heading from the text.  The string is
                                   empty if ;0 is non-zero.

                            ;3 (register)
                                   Contains the needed space in units
                                   after the heading.  Default is 2v.
                                   Can be used to change things like
                                   numbering (}0), vertical spacing
                                   (}2), and the needed space after the
                                   heading.

                     HY dlevel rlevel heading-text
                            This macro is called after size and font
                            calculations and might be used to change
                            indentation.

                     HZ dlevel rlevel heading-text
                            This macro is called after the printing of
                            the heading, just before H or HU exits.  Can
                            be used to change the page header according
                            to the section heading.

       HC [hyphenation-character]
              Set hyphenation character.  Default value is “\%”.  Resets
              to the default if called without argument.  Hyphenation
              can be turned off by setting register Hy to 0 at the
              beginning of the file.

       HM [arg1 [arg2 [... [arg14]]]]
              Heading mark style.  Controls the type of marking for
              printing of the heading counters.  Default is 1 for all
              levels.

              Argument

              1      Arabic numerals.
              0001   Arabic numerals with leading zeroes, one or more.
              A      upper-case alphabetic
              a      lower-case alphabetic
              I      upper-case roman numerals
              i      lower-case roman numerals
              ""     Arabic numerals.

       HU heading-text
              Unnumbered section header.  HU behaves like H at the level
              in register Hu.  See H.

       HX dlevel rlevel heading-text
              User-defined heading exit.  Called just before printing
              the header.  See H.

       HY dlevel rlevel heading-text
              User-defined heading exit.  Called just before printing
              the header.  See H.

       HZ dlevel rlevel heading-text
              User-defined heading exit.  Called just after printing the
              header.  See H.

       I [italic-text [previous-font-text]] ...
              Join italic-text in italics with previous-font-text in the
              previous font, without space between the arguments.  If no
              arguments, switch font to italic style.

       IA [addressee-name [title]]
              Begin specification of the addressee and addressee's
              address in letter style.  Several names can be specified
              with empty IA/IE-pairs, but only one address.  See LT.

       IB [italic-text [bold-text]] ...
              Join italic-text in italics with bold-text in boldface,
              without space between the arguments.

       IE     End the address specification after IA.

       INITI type filename [macro]
              Initialize the new index system and set the filename to
              collect index lines in with IND.  Argument type selects
              the type of index: page number, header marks or both.  The
              default is page numbers.

              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).

              type

              N   Page numbers
              H   Header marks
              B   Both page numbers and header marks, separated with a
                  tab character.

       INITR filename
              Initialize the cross reference macros.  Cross references
              are written to stderr and are supposed to be redirected
              into file filename.qrf.  Requires two passes with groff;
              this is handled by a separate program called mmroff(1).
              This program exists because groff(1) by default
              deactivates the unsafe operations that are required by
              INITR.  The first pass looks for cross references, and the
              second one includes them.  INITR can be used several
              times, but it is only the first occurrence of INITR that
              is active.

              See also SETR, GETPN, and GETHN.

       IND arg1 [arg2 [...]]
              Write a line in the index file selected by INITI with all
              arguments and the page number or header mark separated by
              tabs.

                     Examples

                     arg1\tpage number
                     arg1\targ2\tpage number
                     arg1\theader mark
                     arg1\tpage number\theader mark

       INDP   Print the index by running the command specified by the
              string Indcmd, which has “sort -t\t” as the default value.
              INDP reads the output from the command to form the index,
              by default in two columns (this can be changed by defining
              TYIND).  The index is printed with the string Index as
              header; the default is “INDEX”.  One-column processing is
              reactivated after the list.  INDP calls the user-defined
              macros TXIND, TYIND, and TZIND if defined.  TXIND is
              called before printing the string “INDEX”, TYIND is called
              instead of printing “INDEX”, and TZIND is called after the
              printing and should take care of restoring to normal
              operation again.

       IR [italic-text [roman-text]] ...
              Join italic-text in italics with roman-text in roman
              style, without space between the arguments.

       ISODATE [0]
              Use ISO 8601 format for the date string DT used by some
              cover sheet and memorandum types; that is, YYYY-MM-DD.
              Must be called before ND to be effective.  If given an
              argument of 0, the traditional date format for the groff
              locale is used; this is also the default.

       LB text-indent mark-indent pad type [mark [LI-space [LB-space]]]
              List-begin macro.  This is the common macro used for all
              lists.  text-indent is the number of spaces to indent the
              text from the current indentation.

              pad and mark-indent control where to put the mark.  The
              mark is placed within the mark area, and mark-indent sets
              the number of spaces before this area.  By default it
              is 0.  The mark area ends where the text begins.  The
              start of the text is still controlled by text-indent.

              The mark is left-justified within the mark area if pad
              is 0.  If pad is greater than 0, mark-indent is ignored,
              and the mark is placed pad spaces before the text.  This
              right-justifies the mark.

              If type is 0 the list either has a hanging indentation or,
              if argument mark is given, the string mark as a mark.

              If type is greater than 0 automatic numbering occurs,
              using arabic numbers if mark is empty.  mark can then be
              any of “1”, “A”, “a”, “I”, or “i”.

              type selects one of six possible ways to display the mark.

              type

                     1   x.
                     2   x)
                     3   (x)
                     4   [x]
                     5   <x>
                     6   {x}

              Every item in the list gets LI-space number of blank lines
              before them.  Default is 1.

              LB itself prints LB-space blank lines.  Default is 0.

       LC [list-level]
              List-status clear.  Terminates all current active lists
              down to list-level, or 0 if no argument is given.  This is
              used by H to clear any active list.

       LE [1] List end.  Terminates the current list.  LE outputs a
              blank line if an argument is given.

       LI [mark [1|2]]
              List item preceding every item in a list.  Without
              argument, LI prints the mark determined by the current
              list type.  By giving LI one argument, it uses that as the
              mark instead.  Two arguments to LI makes mark a prefix to
              the current mark.  There is no separating space between
              the prefix and the mark if the second argument is “2”
              instead of “1”.  This behaviour can also be achieved by
              setting register Limsp to zero.  A zero length mark makes
              a hanging indentation instead.

              A blank line is printed before the list item by default.
              This behaviour can be controlled by register Ls.  Pre-
              spacing occurs for each list level less than or equal to
              Ls.  Default value is 99.  There is no nesting limit.

              The indentation can be changed through register Li.
              Default is 6.

              All lists begin with a list initialization macro, LB.
              There are, however, seven predefined list types to make
              lists easier to use.  They all call LB with different
              default values.

                     AL    Automatically Incremented List
                     ML    Marked List
                     VL    Variable-Item List
                     BL    Bullet List
                     DL    Dash List
                     RL    Reference List
                     BVL   Broken Variable List.

              These lists are described at other places in this manual.
              See also LB.

       LT [arg]
              Format a letter in one of four different styles depending
              on the argument.  Also see section “Internals” below.

                     Arg   Style
                     BL    Blocked.  Date line, return address, writer's
                           address and closing begins at the center of
                           the line.  All other lines begin at the left
                           margin.
                     SB    Semi-blocked.  Same as blocked, except that
                           the first line in every paragraph is indented
                           five spaces.

                     FB    Full-blocked.  All lines begin at the left
                           margin.
                     SP    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.

       LO type [arg]
              Specify options in letter (see .LT).  This is a list of
              the standard options:

                     CN   Confidential notation.  Prints “CONFIDENTIAL”
                          on the second line below the date line.  Any
                          argument replaces “CONFIDENTIAL”.  See also
                          string LetCN.
                     RN   Reference notation.  Prints “In reference to:”
                          and the argument two lines below the date
                          line.  See also string LetRN.
                     AT   Attention.  Prints “ATTENTION:” and the
                          argument below the inside address.  See also
                          string LetAT.
                     SA   Salutation.  Prints ”To Whom It May Concern:”
                          or the argument if it was present.  The
                          salutation is printed two lines below the
                          inside address.  See also string LetSA.
                     SJ   Subject line.  Prints the argument as subject
                          prefixed with “SUBJECT:” two lines below the
                          inside address, except in letter type “SP”,
                          where the subject is printed in all-capital
                          without any prefix.  See also string LetSJ.

       MC column-size [column-separation]
              Begin multiple columns.  Return to normal with 1C.  MC
              creates as many columns as the current line length
              permits.  column-size is the width of each column, and
              column-separation is the space between two columns.
              Default separation is column-size/15.  See also 1C.

       ML mark [text-indent [1]]
              Marked list start.  The mark argument is printed before
              each list item.  text-indent sets the indent and overrides
              Li.  A third argument prohibits printing of a blank line
              before each item.

       MT [number [addressee]]
              Memorandum type.  The argument number is used to construct
              the file name
              /usr/local/share/groff/1.23.0/tmac/mm/number.MT and load
              it with the mso request.  Memorandum types 0 to 5 are
              supported; any other value of number is mapped to type 6.
              If number is omitted, 0 is implied.  addressee sets a
              string analogous to one used by AT&T cover sheet macros
              that are not implemented in groff mm.

                     0   Normal memorandum, no type printed.
                     1   Memorandum with “MEMORANDUM FOR FILE” printed.
                     2   Memorandum with “PROGRAMMER'S NOTES” printed.
                     3   Memorandum with “ENGINEER'S NOTES” printed.
                     4   Released paper style.
                     5   External letter style.

              See also COVER/COVEND, a more flexible type of cover page.

       MOVE y-pos [x-pos [line-length]]
              Move to a position, setting page offset to x-pos.  If
              line-length is not given, the difference between current
              and new page offset is used.  Use PGFORM without arguments
              to return to normal.

       MULB cw1 space1 [cw2 space2 [cw3 ...]]
              Begin a special multi-column mode.  All columns widths
              must be specified.  The space between the columns must be
              specified also.  The last column does not need any space
              definition.  MULB starts a diversion, and MULE ends the
              diversion and prints the columns.  The unit for the width
              and space arguments is “n”, but MULB accepts all normal
              unit specifications like “c” and “i”.  MULB operates in a
              separate environment.

       MULN   Begin the next column.  This is the only way to switch the
              column.

       MULE   End the multi-column mode and print the columns.

       nP [type]
              Print numbered paragraph with header level two.  See .P.

       NCOL   Force printing to the next column.  Don't use this
              together with the MUL* macros, see 2C.

       NS [arg [1]]
              Print different types of notations.  The argument selects
              between the predefined type of notations.  If the second
              argument is available, then the argument becomes the
              entire notation.  If the argument doesn't select a
              predefined type, it is printed as “Copy (arg) to”.  It is
              possible to add more standard notations; see the strings
              Letns and Letnsdef.

                     Arg    Notation
                     none   Copy To
                     ""     Copy To
                     1      Copy To (with att.) to
                     2      Copy To (without att.) to
                     3      Att.
                     4      Atts.
                     5      Enc.
                     6      Encs.
                     7      Under separate cover
                     8      Letter to
                     9      Memorandum to
                     10     Copy (with atts.) to
                     11     Copy (without atts.) to
                     12     Abstract Only to
                     13     Complete Memorandum to
                     14     CC

       ND new-date
              New date.  Overrides the current date.  Date is not
              printed if new-date is an empty string.

       OF [arg]
              Odd-page footer, a line printed just above the normal
              footer.  See EF and PF.

              This macro defines string EOPof.

       OH [arg]
              Odd-page header, a line printed just below the normal
              header.  See EH and PH.

              This macro defines string TPoh.

       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.

       P [type]
              Begin new paragraph.  P without argument produces
              left-justified text, even the first line of the paragraph.
              This is the same as setting type to 0.  If the argument
              is 1, the first line of text following P is indented by
              the number of spaces in register Pi, by default 5.

              Instead of giving an argument to P it is possible to set
              the paragraph type in register Pt.  Using 0 and 1 is the
              same as adding that value to P.  A value of 2 indents all
              paragraphs, except after headings, lists, and displays
              (this value can't be used as an argument to P itself).

              The space between two paragraphs is controlled by register
              Ps, and is 1 by default (one blank line).

       PGFORM [linelength [pagelength [pageoffset [1]]]]
              Set line length, page length, and/or page offset.  This
              macro can be used for special formatting, like letter
              heads and other.  It is normally the first macro call in a
              file, though it is not necessary.  PGFORM can be used
              without arguments to reset everything after a 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.)

       PGNH   No header is printed on the next page.  Used to get rid of
              the header in letters or other special texts.  This macro
              must be used before any text to inhibit the page header on
              the first page.

       PIC [-B] [-L] [-C] [-R] [-I n] filename [width [height]]
              Include a PostScript file in the document.  The macro
              depends on mmroff(1) and INITR.  The arguments -L, -C, -R,
              and -I n adjust the picture or indent it.  With no flag
              the picture is adjusted to the left.  Adding -B draws a
              box around the picture.  The optional width and height can
              also be given to resize the picture.

       PE     Picture end.  Ends a picture for pic(1).

       PF [arg]
              Page footer.  PF sets the line to be printed at the bottom
              of each page.  Empty by default.  See PH for the argument
              specification.

              This macro defines string EOPf.

       PH [arg]
              Page header, a line printed at the top of each page.  The
              argument should be specified as

                     "'left-part'center-part'right-part'"

              where left-part, center-part, and right-part are printed
              left-justified, centered, and right justified,
              respectively.  Within the argument to PH, the character
              “%” is changed to the current page number.  The default
              argument is

                     "''- % -''"

              which gives the page number between two dashes.

              This macro defines string TPh.

       PS     Picture start (from pic).  Begins a picture for pic(1).

       PX     Page header user-defined exit.  This macro is called just
              after the printing of the page header in no-space mode.

       R [roman-text [previous-font-text]] ...
              Join roman-text in roman style with previous-font-text in
              the previous font, without space between the arguments.
              If no arguments, switch font to roman style.

       RB [roman-text [bold-text]] ...
              Join roman-text in roman style with bold-text in boldface,
              without space between the arguments.

       RD [prompt [diversion [string]]]
              Read from standard input to diversion and/or string.  The
              text is saved in a diversion named diversion.  Recall the
              text by writing the name of the diversion after a dot on
              an empty line.  A string is also defined if string is
              given.  Diversion and/or prompt can be empty ("").

       RF     Reference end.  Ends a reference definition and returns to
              normal processing.  See RS.

       RI [roman-text [italic-text]] ...
              Join roman-text in roman style with italic-text in
              italics, without space between the arguments.

       RL [text-indent[1]]
              Reference list start.  Begins a list where each item is
              preceded with an automatically incremented number between
              square brackets.  text-indent changes the default
              indentation.

       RP [arg1 [arg2]]
              Produce reference page.  This macro can be used if a
              reference page is wanted somewhere in the document.  It is
              not needed if TC is used to produce a table of contents.
              The reference page is then printed automatically.

              The reference counter is not reset if arg1 is 1.

              arg2 tells RP whether to eject a page or not.

              arg2

                     0   The reference page is printed on a separate page.
                     1   Do not eject page after the list.
                     2   Do not eject page before the list.
                     3   Do not eject page before and after the list.

              The reference items are separated by a blank line.
              Setting register Ls to 0 suppresses the line.

              The string Rp contains the reference page title and is set
              to “REFERENCES” by default.  The register Rpe holds the
              default value for the second argument of RP; it is
              initially set to 0.

       RS [string-name]
              Begin an automatically numbered reference definition.  Put
              the string \*(Rf where the reference mark should be and
              write the reference between RS/RF at next new line after
              the reference mark.  The reference number is stored in
              register :R.  If string-name is given, a string with that
              name is defined and contains the current reference mark.
              The string can be referenced as \*[string-name] later in
              the text.

       S [size [spacing]]
              Set point size and vertical spacing.  If any argument is
              equal to “P”, the previous value is used.  A “C” means the
              current value, and “D” the default value.  If “+” or “-”
              is used before the value, the current value is incremented
              or decremented, respectively.

       SA [arg]
              Set right-margin justification.  Justification is turned
              on by default.  No argument or value “0” turns off
              justification, and “1” turns on justification.

       SETR refname [string]
              Remember the current header and page number as refname.
              Saves string if string is defined.  string is retrieved
              with .GETST.  See INITR.

       SG [arg [1]]
              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 .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 .WA/.WE.  See section “Internals” below.

       SK [pages]
              Skip pages.  If pages is 0 or omitted, a skip to the next
              page occurs unless it is already at the top of a page.
              Otherwise it skips pages pages.

       SM string1 [string2 [string3]]
              Make a string smaller.  If string2 is given, string1 is
              made smaller and string2 stays at normal size,
              concatenated with string1.  With three arguments,
              everything is concatenated, but only string2 is made
              smaller.

       SP [lines]
              Space vertically.  lines can have any scaling factor, like
              “3i” or “8v”.  Several SP calls in a line only produces
              the maximum number of lines, not the sum.  SP is ignored
              also until the first text line in a page.  Add \& before a
              call to SP to avoid this.

       TAB    Reset tabs to every 5n.  Normally used to reset any
              previous tab positions.

       TB [title [override [flag [refname]]]]
              Table title.  The arguments are the same as for EC.  TB
              uses the register Tb as a counter.  The string Lt controls
              the title of the List of Tables; default value is “LIST OF
              TABLES”.  The List of Tables is printed only if register
              Lt is 1, which is the default.  The string Litb contains
              the word “TABLE”, which is printed before the number.

              Special handling of the title occurs if TB is used inside
              DS/DE, it is not affected by the format of DS.

       TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]
              Table of contents.  This macro is normally used as the
              last line of the document.  It generates a table of
              contents with headings up to the level controlled by
              register Cl.  Note that Cl controls the saving of
              headings, it has nothing to do with TC.  Headings with a
              level less than or equal to slevel get spacing number of
              lines before them.  Headings with a level less than or
              equal to tlevel have their page numbers right-justified
              with dots or spaces separating the text and the page
              number.  Spaces are used if tab is greater than zero, dots
              otherwise.  Other headings have the page number directly
              at the end of the heading text (ragged-right).

              The rest of the arguments is printed, centered, before the
              table of contents.

              The user-defined macros TX and TY are used if TC is called
              with at most four arguments.  TX is called before the
              printing of the string “CONTENTS”, and TY is called
              instead of printing “CONTENTS”.

              Equivalent macros can be defined for list of figures,
              tables, equations and exhibits by defining TXxx or TYxx,
              where xx is “Fg”, “TB”, “EC”, or “EX”, respectively.

              String Ci can be set to control the indentations for each
              heading-level.  It must be scaled, like

                     .ds Ci .25i .5i .75i 1i 1i

              By default, the indentation is controlled by the maximum
              length of headings in each level.

              The strings Lifg, Litb, Liex, Liec, and Licon contain
              “Figure”, “TABLE”, “Exhibit”, “Equation”, and “CONTENTS”,
              respectively.  These can be redefined to other languages.

       TE     Table end.  See TS.

       TH [N] Table header.  See TS.  TH ends the header of the table.
              This header is printed again if a page break occurs.
              Argument “N” isn't implemented yet.

       TL [charging-case-number [filing-case-number]]
              Begin title of memorandum.  All text up to the next AU is
              included in the title.  charging-case-number and filing-
              case-number are saved for use in the front page
              processing.

       TM [num1 [num2 [...]]]
              Technical memorandum numbers used in .MT.  An unlimited
              number of arguments may be given.

       TP     Top-of-page user-defined macro.  This macro is called
              instead of the normal page header.  It is possible to get
              complete control over the header.  Note that the header
              and the footer are printed in a separate environment.
              Line length is preserved, though.  See EOP.

              strings available to TP

              TPh    argument of PH
              TPeh   argument of EH
              TPoh   argument of OH

       TS [H] Table start.  This is the start of a table specification
              to tbl(1).  TS ends with TE.  Argument “H” tells mm that
              the table has a header.  See TH.

       TX     User-defined table of contents exit.  This macro is called
              just before TC prints the word “CONTENTS”.  See TC.

       TY     User-defined table of contents exit.  This macro is called
              instead of printing “CONTENTS”.  See TC.

       VERBON [flag [point-size [font]]]
              Begin verbatim output using Courier font.  Usually for
              printing programs.  All characters have equal width.  The
              point size can be changed with the second argument.  By
              specifying a third argument it is possible to use another
              font instead of Courier.  flag controls several special
              features.  Its value is the sum of all wanted features.

                     Arg   Description
                     1     Disable the escape character (\).  This is
                           normally turned on during verbose output.
                     2     Add an empty line before the verbose text.
                     4     Add an empty line after the verbose text.
                     8     Print the verbose text with numbered lines.
                           This adds four digit-sized spaces in the
                           beginning of each line.  Finer control is
                           available through the string Verbnm.  It
                           contains all arguments to the troff(1)
                           command .nm, normally “1”.
                     16    Indent the verbose text by “5n”.  This is
                           controlled by the register Verbin (in units).

       VERBOFF
              End verbatim output.

       VL text-indent [mark-indent [1]]
              Variable-item list.  It has no fixed mark, it assumes that
              every LI has a mark instead.  text-indent sets the indent
              to the text, and mark-indent the distance from the current
              indentation to the mark.  A third argument prohibits
              printing of a blank line before each item.

       VM [-T] [top [bottom]]
              Vertical margin.  Increase the top and bottom margin by
              top and bottom, respectively.  If option -T is specified,
              set those margins to top and bottom.  If no argument is
              given, reset the margin to zero, or to the default (“7v
              5v”) if -T is used.  It is highly recommended that macros
              TP and/or EOP are defined if using -T and setting top
              and/or bottom margin to less than the default.

       WA [writer-name [title]]
              Begin specification of the writer and writer's address.
              Several names can be specified with empty WA/WE pairs, but
              only one address.

       WE     End the address specification after .WA.

       WC [format1] [format2] [...]
              Footnote and display width control.

              N     Set default mode which is equal to using the options
                    -WF, -FF, -WD, and FB.
              WF    Wide footnotes, wide also in two-column mode.
              -WF   Normal footnote width, follow column mode.
              FF    All footnotes gets the same width as the first
                    footnote encountered.
              -FF   Normal footnotes, width follows WF and -WF.
              WD    Wide displays, wide also in two-column mode.
              -WD   Normal display width, follow column mode.
              FB    Floating displays generates a line break when
                    printed on the current page.
              -FB   Floating displays does not generate line break.

Strings         top

       App    A string containing the word “APPENDIX”.

       Apptxt The current appendix text.

       DT     The date; set by the ND macro (defaults to the date the
              document is formatted).  The format is the conventional
              one for the groff locale, but see the ISODATE macro and
              Iso register.

       EM     Em dash string

       H1txt  Updated by .H and .HU to the current heading text.  Also
              updated in table of contents & friends.

       HF     Font list for headings, “2 2 2 2 2 2 2” by default.  Non-
              numeric font names may also be used.

       HP     Point size list for headings.  By default, this is “0 0 0
              0 0 0 0” which is the same as “10 10 10 10 10 10 10”.

       Index  Contains the string “INDEX”.

       Indcmd Contains the index command.  Default value is “sort -t\t”.

       Lifg   String containing “Figure”.

       Litb   String containing “TABLE”.

       Liex   String containing “Exhibit”.

       Liec   String containing “Equation”.

       Licon  String containing “CONTENTS”.

       Lf     Contains the string “LIST OF FIGURES”.

       Lt     Contains the string “LIST OF TABLES”.

       Lx     Contains the string “LIST OF EXHIBITS”.

       Le     Contains the string “LIST OF EQUATIONS”.

       Letfc  Contains the string “Yours very truly,”, used in .FC.

       Letapp Contains the string “APPROVED:”, used in .AV.

       Letdate
              Contains the string “Date”, used in .AV.

       LetCN  Contains the string “CONFIDENTIAL”, used in .LO CN.

       LetSA  Contains the string “To Whom It May Concern:”, used in .LO
              SA.

       LetAT  Contains the string “ATTENTION:”, used in .LO AT.

       LetSJ  Contains the string “SUBJECT:”, used in .LO SJ.

       LetRN  Contains the string “In reference to:”, used in .LO RN.

       Letns  is an array containing the different strings used in .NS.
              Since roff languages lack true array types, it is
              implemented as a set of strings prefixed with Letns!.  If
              the argument doesn't exist, it is included between () with
              Letns!copy as a prefix and Letns!to as a suffix.  Observe
              the space after “Copy” and before “to”.

                     Name         Value
                     Letns!0      Copy to
                     Letns!1      Copy (with att.) to
                     Letns!2      Copy (without att.) to
                     Letns!3      Att.
                     Letns!4      Atts.
                     Letns!5      Enc.
                     Letns!6      Encs.
                     Letns!7      Under separate cover
                     Letns!8      Letter to
                     Letns!9      Memorandum to
                     Letns!10     Copy (with atts.) to
                     Letns!11     Copy (without atts.) to
                     Letns!12     Abstract Only to
                     Letns!13     Complete Memorandum to
                     Letns!14     CC
                     Letns!copy   Copy (with trailing space)
                     Letns!to      to (note leading space)

       Letnsdef
              Define the standard notation used when no argument is
              given to .NS.  Default is 0.

       MO1 – MO12
              Strings containing the month names “January” through
              “December”.

       Qrf    String containing “See chapter \\*[Qrfh], page
              \\n[Qrfp].”.

       Rp     Contains the string “REFERENCES”.

       Tcst   Contains the current status of the table of contents and
              list of figures, etc.  Empty outside of .TC.  Useful in
              user-defined macros like .TP.

                     Value   Meaning
                     co      Table of contents
                     fg      List of figures
                     tb      List of tables
                     ec      List of equations
                     ex      List of exhibits
                     ap      Appendix

       Tm     Contains the string “\(tm”, the trade mark symbol.

       Verbnm Argument to .nm in the .VERBON macro.  Default is 1.

Registers         top

       Aph    Print an appendix page for every new appendix if this
              register is non-zero.  No output occurs if Aph is zero,
              but there is always an appendix entry in the “List of
              contents”.

       Cl     Contents level (in the range 0 to 14).  The contents is
              saved if a heading level is lower than or equal to the
              value of Cl.  Default is 2.

       Cp     Eject page between list of table, list of figure, etc., if
              the value of Cp is zero.  Default is 0.

       D      Debug flag.  Values greater than zero produce debug
              information of increasing verbosity.  A value of 1 gives
              information about the progress of formatting.  Default
              is 0.

       De     If set to 1, eject after floating display is output.
              Default is 0.

       Dsp    If defined, it controls the space output before and after
              static displays.  Otherwise the value of Lsp is used.

       Df     Control floating keep output.  This is a number in the
              range 0 to 5, with a default value of 5.  See .DF.

       Ds     If set to 1, use the amount of space stored in register
              Lsp before and after display.  Default is 1.

       Ej     If set to 1, eject page before each first-level heading.
              Default is 0.

       Eq     Equation labels are left-aligned if set to 0 and right-
              aligned if set to 1.  Default is 0.

       Fs     Footnote spacing.  Default is 1.

       H1 – H7
              Heading counters

       H1dot  Append a dot after the level-one heading number if value
              is greater than zero.  Default is 1.

       H1h    A copy of register H1, but it is incremented just before
              the page break.  Useful in user-defined header macros.

       Hb     Heading break level.  A number in the range 0 to 14, with
              a default value of 2.  See .H.

       Hc     Heading centering level.  A number in the range 0 to 14,
              with a default value of 0.  See .H.

       Hi     Heading temporary indent.  A number in the range 0 to 2,
              with a default value of 1.

                     0   no indentation, left margin
                     1   indent to the right, similar to “.P 1”
                     2   indent to line up with text part of preceding
                         heading

       Hps    Heading pre-space level.  If the heading level is less
              than or equal to Hps, two lines precede the section
              heading instead of one.  Default is first level only.  The
              real amount of lines is controlled by the registers Hps1
              and Hps2.

       Hps1   Number of lines preceding .H if the heading level is
              greater than Hps.  Value is in units, default is 0.5.

       Hps2   Number of lines preceding .H if the heading level is less
              than or equal to Hps.  Value is in units, default is 1.

       Hs     Heading space level.  A number in the range 0 to 14, with
              a default value of 2.  See .H.

       Hss    Number of lines following .H if the heading level is less
              than or equal to Hs.  Value is in units, default is 1.

       Ht     Heading numbering type.

                     0   multiple levels (1.1.1, 1.1.2, etc.)
                     1   single level

              Default is 0.

       Hu     Unnumbered heading level.  Default is 2.

       Hy     Hyphenation status of text body.

                     0   no hyphenation
                     1   hyphenation on, set to value 6

              Default is 0.

       Iso    Define this register (to any value) on the command line to
              use ISO 8601 date format (e.g., “-rIso=1”).  See macro
              ISODATE above.

       L      Page length, only for command-line settings.

       Letwam Maximum lines in return-address, used in .WA/.WE.  Default
              is 14.

       Lf, Lt, Lx, Le
              Enable (1) or disable (0) the printing of List of figures,
              List of tables, List of exhibits and List of equations,
              respectively.  Default values are Lf=1, Lt=1, Lx=1, and
              Le=0.

       Li     List indentation, used by .AL.  Default is 6.

       Limsp  A flag controlling the insertion of space between prefix
              and mark in automatic lists (.AL).

                     0   no space
                     1   emit space

       Ls     List space threshold.  If current list level is greater
              than Ls no spacing occurs around lists.  Default is 99.

       Lsp    The vertical space used by an empty line.  The default is
              0.5v in troff mode and 1v in nroff mode.

       N      Page numbering style.

                     0   normal header for all pages.
                     1   header replaces footer on first page, header is
                         empty.
                     2   page header is removed on the first page.
                     3   “section-page” numbering style enabled.
                     4   page header is removed on the first page.
                     5   “section-page” and “section-figure” numbering
                         style enabled.

              Default is 0.  See also the registers Sectf and Sectp.

       Np     A flag to control whether paragraphs are numbered.

                     0   not numbered
                     1   numbered in first-level headings.

              Default is 0.

       O      Page offset, only for command-line settings.

       Of     Format of figure, table, exhibit, and equation titles.

                     0   ". "
                     1   " - "

              Default is 0.

       P      Current page number, normally the same as “%” unless
              “section-page” numbering style is enabled.

       Pi     Paragraph indentation.  Default is 5.

       Pgps   A flag to control whether header and footer point size
              should follow the current settings or just change when the
              header and footer are defined.

                     0   Point size only changes to the current setting
                         when .PH, .PF, .OH, .EH, .OF, or .OE is
                         executed.
                     1   Point size changes after every .S.  This is the
                         default.

       Ps     Paragraph spacing.  Default is 1.

       Pt     Paragraph type.

                     0   left-justified
                     1   indented paragraphs
                     2   indented paragraphs except after .H, .DE, or
                         .LE.

              Default is 0.

       Rpe    Set default value for second argument of .RP.  Default
              is 0.

       Sectf  A flag controlling “section-figures” numbering style.  A
              non-zero value enables this.  See also register N.

       Sectp  A flag controlling “section-page” numbering style.  A non-
              zero value enables this.  See also register N.

       Si     Display indentation.  Default is 5.

       Verbin Indentation for .VERBON.  Default is 5n.

       W      Line length, only for command-line settings.

       .mgm   Always 1.

Internals         top

       The letter macros use different submacros depending on the letter
       type.  The name of the submacro has the letter type as suffix.
       It is therefore possible to define other letter types, either in
       the territory-specific macro file, or as local additions.  .LT
       sets the registers Pt and Pi to 0 and 5, respectively.  The
       following strings and macros must be defined for a new letter
       type.

       let@init_type
              This macro is called directly by .LT.  It is supposed to
              initialize registers and other stuff.

       let@head_type
              This macro prints the letter head, and is called instead
              of the normal page header.  It is supposed to remove the
              alias let@header, otherwise it is called for all pages.

       let@sg_type name title n flag [arg1 [arg2 [...]]]
              .SG is calling this macro only for letters; memorandums
              have its own processing.  name and title are specified
              through .WA/.WB.  n is the counter, 1-max, and flag is
              true for the last name.  Any other argument to .SG is
              appended.

       let@fc_type closing
              This macro is called by .FC, and has the formal closing as
              the argument.

       .LO is implemented as a general option-macro.  It demands that a
       string named Lettype is defined, where type is the letter type.
       .LO then assigns the argument to the string let*lo-type.

Files         top

       /usr/local/share/groff/1.23.0/tmac/m.tmac
              is the groff implementation of the memorandum macros.

       /usr/local/share/groff/1.23.0/tmac/mm.tmac
              is wrapper to load m.tmac.

       /usr/local/share/groff/1.23.0/tmac/mm/ms.cov
              implements an ms-like cover sheet.

       /usr/local/share/groff/1.23.0/tmac/mm/0.MT
              implements memorandum types 0–3 and 6.

       /usr/local/share/groff/1.23.0/tmac/mm/4.MT
              implements memorandum type 4.

       /usr/local/share/groff/1.23.0/tmac/mm/5.MT
              implements memorandum type 5.

       /usr/local/share/groff/1.23.0/tmac/mm/locale
              performs any (further) desired necessary localization;
              empty by default.

Authors         top

       The GNU version of the mm macro package was written by Jörgen
       Hägg ⟨jh@axis.se⟩ of Lund, Sweden.

See also         top

       MM - A Macro Package for Generating Documentshttps://tkurtbond.github.io/troff/mm-all.pdf⟩, the DWB 3.3 mm
       manual, introduces the package but does not document groff mm
       extensions.

       Groff: The GNU Implementation of troff, by Trent A. Fisher and
       Werner Lemberg, is the primary groff manual.  You can browse it
       interactively with “info groff”.

       groff(1), troff(1), tbl(1), pic(1), eqn(1)
       groff_mmse(7)

COLOPHON         top

       This page is part of the groff (GNU troff) project.  Information
       about the project can be found at 
       ⟨http://www.gnu.org/software/groff/⟩.  If you have a bug report
       for this manual page, see ⟨http://www.gnu.org/software/groff/⟩.
       This page was obtained from the project's upstream Git repository
       ⟨https://git.savannah.gnu.org/git/groff.git⟩ on 2021-08-27.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2021-08-23.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

groff 1.23.0.rc1.654-4e1db-dir1t9yAugust 2021                  groff_mm(7)

Pages that refer to this page: groff(1)mmroff(1)groff_tmac(5)groff_mmse(7)