GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

     NAME
          groff_mm - memorandum macros for GNU roff

     SYNOPSIS
          [option ...] [file ...] [option ...] [file ...]

     DESCRIPTION
          The groff mm macros are intended to be compatible with the
          DWB mm macros with the following limitations:

          +o    No Bell Labs localisms are implemented.

          +o    The macros OK and PM are not implemented.

          +o    groff mm does not support cut marks.

          mm is intended to support easy localization.  Use mmse as an
          example how to adapt the output format to a national stan-
          dard.  Localized strings are collected in the file
          /usr/:share/:groff/:1.22.4/:tmac/xx.tmac, where xx denotes
          the two-letter code for the language, as defined in the ISO
          639 standard.  For Swedish, this is [oq]sv.tmac[cq] [en] not
          [oq]se[cq], which is the ISO 3166 two-letter code for the
          country (as used for the output format localization).

          A file called locale or country_locale is read after the
          initialization of the global variables.  It is therefore
          possible to localize the macros with a different company
          name and so on.

          In this manual, square brackets are used to show optional
          arguments.

        Number registers and strings
          Many macros can be controlled by number registers and
          strings.  A number register is assigned with the nr command:

               .nr XXX [[+-]]n [i]

          XXX is the name of the register, n~is the value to be
          assigned, and i~is the increment value for auto-increment.
          n~can have a plus or minus sign as a prefix if an increment
          or decrement of the current value is wanted.  (Auto-
          increment or auto-decrement occurs if the number register is
          used with a plus or minus sign, [rs]n+[XXX] or [rs]n-[XXX].)

          Strings are defined with ds.

               .ds YYY string

     Page 1                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

          The string is assigned everything to the end of the line,
          even blanks.  Initial blanks in string should be prefixed
          with a double-quote.  (Strings are used in the text as
          [rs]*[YYY].)

        Special formatting of number registers
          A number register is printed with normal digits if no format
          has been given.  Set the format with af:

               .af R c

          R~is the name of the register, c~is the format.

               tab(@); lb lb l l.  Form@Sequence 1@0, 1, 2, 3, ...
               001@000, 001, 002, 003, ...  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 mm, the fonts (or rather, font styles) R~(normal),
          I~(italic), and B~(bold) are hardwired to 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 [en] a different font fam-
          ily can still be selected with a call to the .fam request or
          using groff's -f command-line option.  On the other hand, if
          you want to replace just, say, font B, you have to replace
          the font at position~2 (with a call to [oq].fp~2~...[cq]).

        Macros
          )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 dis-
               ables the page break.  Use wide footnotes, small foot-
               notes 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

     Page 2                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               beginning with one.  The type argument controls the
               format of numbers.

                    tab(@); lb lb l l.  Arg@Description 1@Arabic (the
                    default) A@Upper-case letters (AenZ) a@Lower-case
                    letters (aenz) 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 [dq][dq].  The appendices start
               with~A if automatic naming is used.  A new page is
               ejected, and a header is also produced if the number
               variable Aph is non-zero.  This is the default.  The
               appendix always appears in the [oq]List of contents[cq]
               with correct page numbers.  The name [oq]APPENDIX[cq]
               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.  Indentation is specified in
               [oq]ens[cq], but scaling is allowed.  Argument arg con-
               trols where the abstract is printed.
               tab(@); lb lb l lx.  Arg@Placement 0@T{ 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.  T} 1@Abstract is only
               printed on the cover sheet (MT 4 only).  2@T{ Abstract
               is printed only on the cover sheet (other than MT 4
               only).  The cover sheet is printed without a need for
               CS.  T}

               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.

          AST [title]
               Abstract title.  Default is [oq]ABSTRACT[cq].  Sets the
               text above the abstract text.

          AT title1 [title2 [...]]

     Page 3                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               Author's title.  AT must appear just after each AU.
               The title shows up after the name in the signature
               block.

          AU
               [name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]]
               Author information.  Specifies the author of the memo
               or paper, and is printed on the cover sheet and on
               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 extra arguments.

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

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

          B [bold-text [prev-font-text [bold [...]]]]
               Begin boldface.  No limit on the number of arguments.
               All arguments are concatenated to one word; the first,
               third and so on is printed in boldface.

          B1   Begin box (as the ms macro).  Draws a box around the
               text.  The text is indented one character, and the
               right margin is one character shorter.

          B2   End box.  Finishes the box started with B1.

          BE   End bottom block, see BS.

          BI [bold-text [italic-text [bold-text [...]]]]
               Bold-italic.  No limit on the number of arguments,
               see~B.

          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 number register Pi.  A third
               argument prohibits printing of a blank line before each
               item.

          BR [bold-text [roman-text [bold-text [...]]]]
               Bold-roman.  No limit on the number of arguments.

     Page 4                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

          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 cur-
               rent indentation to the mark.  A third argument pro-
               hibits printing of a blank line before each item.

          COVER [arg]
               Begin a coversheet definition.  It is important that
               .COVER appears before any normal text.  This macro uses
               arg to build the filename
               /usr/share/groff/1.22.4/tmac/mm/arg.cov.  Therefore it
               is possible to create unlimited types of cover sheets.
               ms.cov is supposed to look like the ms cover sheet.
               .COVER requires a .COVEND at the end of the cover defi-
               nition.  Always use this order of the cover macros:

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

               However, only .TL and .AU are required.

          COVEND
               Finish the cover description and print the cover page.
               It is defined in the cover 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 float-
               ing 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 two
               number registers De and Df.

               De register

                    tab(@); l lx.  0@T{ Nothing special, this is the
                    default.  T} 1@T{ A page eject occurs after each

     Page 5                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

                    printed display, giving only one display per page
                    and no text following it.  T}

               Df register

                    tab(@); l lx.  0@T{ Displays are printed at the
                    end of each section (when section-page numbering
                    is active) or at the end of the document.  T} 1@T{
                    A new display is printed on the current page if
                    there is enough space, otherwise it is printed at
                    the end of the document.  T} 2@T{ One display is
                    printed at the top of each page or column (in
                    multi-column mode).  T} 3@T{ Print one display if
                    there is enough space for it, otherwise it is
                    printed at the top of the next page or column.  T}
                    4@T{ Print as many displays as possible in a new
                    page or column.  A page break occurs between each
                    display if De is not zero.  T} 5@T{ Fill the cur-
                    rent 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.  T}

          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 number 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

                    tab(@); l lx.  [dq][dq]@No indentation.  none@No
                    indentation.  L@No indentation.  I@T{ Indent text
                    with the value of number register 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.

               The values [oq]L[cq], [oq]I[cq], [oq]C[cq], and
               [oq]CB[cq] can also be specified as [oq]0[cq],
               [oq]1[cq], [oq]2[cq], and [oq]3[cq], respectively, for
               compatibility reasons.

               fill

     Page 6                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

                    tab(@); l l.  [dq][dq]@Line-filling turned off.
                    none@Line-filling turned off.  N@Line-filling
                    turned off.  F@Line-filling turned on.

               [oq]N[cq] and [oq]F[cq] can also be specified as
               [oq]0[cq] and [oq]1[cq], respectively.

               By default, an empty line is printed before and after
               the display.  Setting number 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

                    tab(@); l lx.  none@T{ override is a prefix to the
                    number.  T} 0@T{ override is a prefix to the num-
                    ber.  T} 1@T{ override is a suffix to the number.
                    T} 2@T{ override replaces the number.  T}

               EC uses the number register Ec as a counter.  It is
               possible to use .af to change the format of the number.
               If number 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 Equa-
               tions; default is [oq]LIST OF EQUATIONS[cq].  The List
               of Equations is only printed if number register Le
               is~1.  The default is~0.  The string Liec contains the
               word [oq]Equation[cq], which is printed before the num-
               ber.  If refname is used, then the equation number is
               saved with .SETR, and can be retrieved with [oq].GETST
               refname[cq].

               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.

     Page 7                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

          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
               tab(@); l l.  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-adjusts 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 number 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 number register Ex as a counter.  The
               string Lx controls the title of the List of Exhibits;
               default is [oq]LIST OF EXHIBITS[cq].  The List of
               Exhibits is only printed if number register Lx is~1,
               which is the default.  The string Liex contains the
               word [oq]Exhibit[cq], which is printed before the num-
               ber.  If refname is used, the exhibit number is saved
               with .SETR, and can be retrieved with [oq].GETST
               refname[cq].

               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 [oq]Yours~very~truly,[cq] as a formal closing of
               a letter or memorandum.  The argument replaces the
               default string.  The default is stored in string vari-
               able Letfc.

          FD [arg [1]]
               Footnote default format.  Controls the hyphenation

     Page 8                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               (hyphen), right margin justification (adjust), and
               indentation of footnote text (indent).  It can also
               change the label justification (ljust).

                    tab(@); lb lb lb lb lb l l l l l.
                    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.  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 number register Fg as a counter.  The
               string Lf controls the title of the List of Figures;
               default is [oq]LIST OF FIGURES[cq].  The List of Fig-
               ures is only printed if number register Lf is~1, which
               is the default.  The string Lifg contains the word
               [oq]Figure[cq], which is printed before the number.  If
               refname is used, then the figure number is saved with
               .SETR, and can be retrieved with [oq].GETST
               refname[cq].

               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 num-
               ber is available in string~F.  Just add [rs]*F in the
               text.  By adding label, it is possible to have other
               number or names on the footnotes.  Footnotes in dis-
               plays are now possible.  An empty line separates foot-
               notes; the height of the line is controlled by number
               register Fs, default value is~1.

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

          GETPN refname [varname]
               Include the page number where the corresponding
               [oq]SETR refname[cq] was placed.  This is displayed as

     Page 9                    groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               [oq]9999[cq] in pass~1.  See INITR.  If varname is
               used, GETPN sets the stringvariable varname to the page
               number.

          GETR refname
               Combine GETHN and GETPN with the text [oq]chapter[cq]
               and [oq],~page[cq].  The string Qrf contains the text
               for the cross reference:

                    .ds Qrf See chapter [rs][rs]*[Qrfh], page
                    [rs][rs]*[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 [rs]*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

                    Number 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 number 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 head-
                    ing level is less or equal to number register Hb.
                    Default value is~2.

               Heading space level

     Page 10                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

                    A blank line is inserted after the heading if the
                    heading level is less or equal to number 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 con-
                    trolled by number register Hi.  Default value
                    is~0.

                    Hi tab(@); l lx.  0@The text is left-justified.
                    1@T{ Indentation of the text follows the value of
                    number register Pt , see P.  T} 2@T{ The text is
                    lined up with the first word of the heading.  T}

               Centered section headings

                    All headings whose level is equal or below number
                    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

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

                         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

                    Beware that only the point size changes, not the
                    vertical size.  The latter can be controlled by

     Page 11                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

                    the user-specified macros HX and/or HZ.

               Heading counters

                    Fourteen number registers named H1 up to H14 con-
                    tain the counter for each heading level.  The val-
                    ues 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 number 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 number
                    register Cl are saved to be printed in the table
                    of contents.  Default value is~2.

               Special control of the heading, user-defined

                    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 number 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

     Page 12                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

                              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 cal-
                         culations and might be used to change inden-
                         tation.

                    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
               [oq][rs]%[cq].  Resets to the default if called without
               argument.  Hyphenation can be turned off by setting
               number 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 tab(@); l l.  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
               [dq][dq]@Arabic numerals.

          HU heading-text
               Unnumbered section header.  HU behaves like H at the
               level in number 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

     Page 13                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               the header.  See~H.

          I [italic-text [prev-font-text [italic-text [...]]]]
               Italic.  Changes the font to italic if called without
               arguments.  With one argument it sets the word in
               italic.  With two arguments it concatenates them and
               sets the first word in italic and the second in the
               previous font.  There is no limit on the number of
               argument; all are concatenated.

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

          IB [italic-text [bold-text [italic-text [...]]]]
               Italic-bold.  Even arguments are printed in italic, odd
               in boldface.  See~I.

          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 responsi-
               ble 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

               tab(@); l lx.  N@Page numbers H@Header marks B@T{ Both
               page numbers and header marks, separated with a tab
               character.  T}

          INITR filename
               Initialize the cross reference macros.  Cross refer-
               ences 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 ref-
               erences, and the second one includes them.  INITR can
               be used several times, but it is only the first occur-
               rence of INITR that is active.

               See also SETR, GETPN, and GETHN.

     Page 14                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

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

                    Examples

                    arg1[rs]tpage number
                    arg1[rs]targ2[rs]tpage number
                    arg1[rs]theader mark
                    arg1[rs]tpage number[rs]theader mark

          INDP Print the index by running the command specified by
               string variable Indcmd, which has [oq]sort -t[rs]t[cq]
               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 string variable Index as header, default
               is [oq]INDEX[cq].  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 [oq]INDEX[cq], TYIND is
               called instead of printing [oq]INDEX[cq], and TZIND is
               called after the printing and should take care of
               restoring to normal operation again.

          ISODATE [0]
               Change the predefined date string in DT to ISO-format,
               this is, [oq]YYYY-MM-DD[cq].  This can also be done by
               adding -rIso=1 on the command line.  Reverts to old
               date format if argument is~0.

          IR [italic-text [roman-text [italic-text [...]]]]
               Italic-roman.  Even arguments are printed in italic,
               odd in roman.  See~I.

          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

     Page 15                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               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 [oq]1[cq], [oq]A[cq], [oq]a[cq], [oq]I[cq],
               or [oq]i[cq].

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

               type

                    tab(@); l l.  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 [oq]2[cq] instead of [oq]1[cq].  This
               behaviour can also be achieved by setting number regis-
               ter 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 number
               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 number register
               Li.  Default is~6.

     Page 16                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               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.

                    tab(@); l l.  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 man-
               ual.  See also LB.

          LT [arg/]
               Format a letter in one of four different styles depend-
               ing on the argument.  Also see section
               [lq]Internals[rq] below.

                    tab(@); lb lb l lx.  Arg@Style BL@T{ 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.  T} SB@T{
                    Semi-blocked.  Same as blocked, except that the
                    first line in every paragraph is indented five
                    spaces.  T} FB@T{ Full-blocked.  All lines begin
                    at the left margin.  T} SP@T{ Simplified.  Almost
                    the same as the full-blocked style.  Subject and
                    the writer's identification are printed in all-
                    capital.  T}

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

                    tab(@); l lx.  CN@T{ Confidential notation.
                    Prints [oq]CONFIDENTIAL[cq] on the second line
                    below the date line.  Any argument replaces
                    [oq]CONFIDENTIAL[cq].  See also string variable
                    LetCN.  T} RN@T{ Reference notation.  Prints
                    [oq]In reference to:[cq] and the argument two
                    lines below the date line.  See also string vari-
                    able LetRN.  T} AT@T{ Attention.  Prints
                    [oq]ATTENTION:[cq] and the argument below the
                    inside address.  See also string variable LetAT.
                    T} SA@T{ Salutation.  Prints [cq]To Whom It May
                    Concern:[cq] or the argument if it was present.
                    The salutation is printed two lines below the
                    inside address.  See also string variable LetSA.
                    T} SJ@T{ Subject line.  Prints the argument as
                    subject prefixed with [oq]SUBJECT:[cq] two lines
                    below the inside address, except in letter type
                    [oq]SP[cq], where the subject is printed in all-

     Page 17                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

                    capital without any prefix.  See also string vari-
                    able LetSJ.  T}

          MC column-size [column-separation]
               Begin multiple columns.  Return to normal with 1C.  MC
               creates as many columns as the current line length per-
               mits.  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 over-
               rides Li.  A third argument prohibits printing of a
               blank line before each item.

          MT [arg [addressee]]
               Memorandum type.  The argument arg is part of a file-
               name in /usr/share/groff/1.22.4/tmac/mm/*.MT.  Memoran-
               dum types 0 to~5 are supported, including type
               [oq]string[cq] (which gets internally mapped to
               type~6).  addressee just sets a variable, used in the
               AT&T macros.

               arg

                    tab(@); l l.  0@Normal memorandum, no type
                    printed.  1@Memorandum with [oq]MEMORANDUM FOR
                    FILE[cq] printed.  2@Memorandum with
                    [oq]PROGRAMMER'S NOTES[cq] printed.  3@Memorandum
                    with [oq]ENGINEER'S NOTES[cq] printed.  4@Released
                    paper style.  5@External letter style.

               See also COVER/COVEND, a more flexible type of front
               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 cur-
               rent 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 [oq]n[cq], but
               MULB accepts all normal unit specifications like
               [oq]c[cq] and [oq]i[cq].  MULB operates in a separate
               environment.

     Page 18                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

          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 [oq]Copy
               (arg/) to[cq].  It is possible to add more standard
               notations, see the string variables Letns and Letnsdef.

                    tab(@); l l.  Arg@Notation none/@Copy To
                    [dq][dq]@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@Mem-
                    orandum to 10@Copy (with atts.) to 11@Copy (with-
                    out atts.) to 12@Abstract Only to 13@Complete Mem-
                    orandum 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

     Page 19                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               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 number register
               Pi, by default~5.

               Instead of giving an argument to~P it is possible to
               set the paragraph type in number 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 num-
               ber 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 command 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.

     Page 20                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               The argument should be specified as

                    [dq]'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
               [oq]%[cq] is changed to the current page number.  The
               default argument is

                    [dq]''- % -''[dq]

               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.  Return to roman font, see also~I.

          RB [roman-text [bold-text [roman-text [...]]]]
               Roman-bold.  Even arguments are printed in roman, odd
               in boldface.  See~I.

          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 ([dq][dq]).

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

          RI [roman-text [italic-text [roman-text [...]]]]
               Print even arguments in roman, odd in italic.  See~I.

          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

     Page 21                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               contents.  The reference page is then printed automati-
               cally.

               The reference counter is not reset if arg1 is~1.

               arg2 tells RP whether to eject a page or not.

               arg2

                    tab(@); l lx.  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 number register Ls to~0 suppresses the line.

               The string Rp contains the reference page title and is
               set to [oq]REFERENCES[cq] by default.  The number reg-
               ister Rpe holds the default value for the second argu-
               ment of RP; it is initially set to~0.

          RS [string-name]
               Begin an automatically numbered reference definition.
               Put the string [rs]*(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 number 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 [rs]*[string-name] later in the text.

          S [size [spacing]]
               Set point size and vertical spacing.  If any argument
               is equal to [oq]P[cq], the previous value is used.  A
               [oq]C[cq] means current value, and [oq]D[cq] the
               default value.  If [oq]+[cq] or [oq]-[cq] 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 [oq]0[cq]
               turns off justification, and [oq]1[cq] turns on justi-
               fication.

          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]]

     Page 22                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               Signature line.  Prints the authors name(s) after the
               formal closing.  The argument is appended to the refer-
               ence 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
               [lq]Internals[rq] 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, concate-
               nated 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 [oq]3i[cq] or [oq]8v[cq].  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 [rs]& 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 number register Tb as a counter.  The string
               Lt controls the title of the List of Tables; default
               value is [oq]LIST OF TABLES[cq].  The List of Tables is
               only printed if number register Lt is~1, which is the
               default.  The string Litb contains the word
               [oq]TABLE[cq], 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
               number 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

     Page 23                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               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 [oq]CONTENTS[cq], and
               TY is called instead of printing [oq]CONTENTS[cq].

               Equivalent macros can be defined for list of figures,
               tables, equations and exhibits by defining TXxx or
               TYxx, where xx is [oq]Fg[cq], [oq]TB[cq], [oq]EC[cq],
               or [oq]EX[cq], 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 maxi-
               mum length of headings in each level.

               The string variables Lifg, Litb, Liex, Liec, and Licon
               contain [oq]Figure[cq], [oq]TABLE[cq], [oq]Exhibit[cq],
               [oq]Equation[cq], and [oq]CONTENTS[cq], 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 [oq]N[cq] 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

     Page 24                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               get complete control over the header.  Note that the
               header and the footer are printed in a separate envi-
               ronment.  Line length is preserved, though.  See EOP.

               strings available to TP
               tab(@); l l.  TPh@argument of PH TPeh@argument of EH
               TPoh@argument of OH

          TS [H]
               Table start.  This is the start of a table specifica-
               tion to tbl(1).  TS ends with TE.  Argument [oq]H[cq]
               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 [oq]CONTENTS[cq].
               See TC.

          TY   User-defined table of contents exit.  This macro is
               called instead of printing [oq]CONTENTS[cq].  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.

                    tab(@); lb lb l lx.  Arg@Description 1@T{ Disable
                    the escape character ([rs]).  This is normally
                    turned on during verbose output.  T} 2@Add an
                    empty line before the verbose text.  4@Add an
                    empty line after the verbose text.  8@T{ Print the
                    verbose text with numbered lines.  This adds four
                    digit-sized spaces in the beginning of each line.
                    Finer control is available with the string vari-
                    able Verbnm.  It contains all arguments to the
                    troff(1) command .nm, normally [oq]1[cq].  T}
                    16@T{ Indent the verbose text by [oq]5n[cq].  This
                    is controlled by the number-variable Verbin (in
                    units).  T}

          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.

     Page 25                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

          VM [-T] [top [bottom]]
               Vertical margin.  Increase the top and bottom margin by
               top and bottom, respectively.  If option -T is speci-
               fied, set those margins to top and bottom. If no argu-
               ment is given, reset the margin to zero, or to the
               default ([oq]7v 5v[cq]) 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.
               tab(@); l lx.  N@T{ Set default mode which is equal to
               using the options -WF, -FF, -WD, and FB.  T} WF@T{ Wide
               footnotes, wide also in two-column mode.  T} -WF@Normal
               footnote width, follow column mode.  FF@T{ All foot-
               notes gets the same width as the first footnote encoun-
               tered.  T} -FF@T{ Normal footnotes, width follows WF
               and -WF.  T} WD@T{ Wide displays, wide also in two-
               column mode.  T} -WD@T{ Normal display width, follow
               column mode.  T} FB@T{ Floating displays generates a
               line break when printed on the current page.  T} -FB@T{
               Floating displays does not generate line break.  T}

        Strings used in mm
          App  A string containing the word [oq]APPENDIX[cq].

          Apptxt
               The current appendix text.

          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, [oq]2 2 2 2 2 2 2[cq] by
               default.  Non-numeric font names may also be used.

          HP   Point size list for headings.  By default, this is
               [cq]0 0 0 0 0 0 0[cq] which is the same as [oq]10 10 10
               10 10 10 10[cq].

          Index
               Contains the string [oq]INDEX[cq].

     Page 26                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

          Indcmd
               Contains the index command.  Default value is
               [oq]sort -t[rs]t[cq].

          Lifg String containing [oq]Figure[cq].

          Litb String containing [oq]TABLE[cq].

          Liex String containing [oq]Exhibit[cq].

          Liec String containing [oq]Equation[cq].

          Licon
               String containing [oq]CONTENTS[cq].

          Lf   Contains the string [oq]LIST OF FIGURES[cq].

          Lt   Contains the string [oq]LIST OF TABLES[cq].

          Lx   Contains the string [oq]LIST OF EXHIBITS[cq].

          Le   Contains the string [oq]LIST OF EQUATIONS[cq].

          Letfc
               Contains the string [oq]Yours very truly,[cq], used in
               .FC.

          Letapp
               Contains the string [oq]APPROVED:[cq], used in .AV.

          Letdate
               Contains the string [oq]Date[cq], used in .AV.

          LetCN
               Contains the string [oq]CONFIDENTIAL[cq], used in .LO
               CN.

          LetSA
               Contains the string [oq]To Whom It May Concern:[cq],
               used in .LO SA.

          LetAT
               Contains the string [oq]ATTENTION:[cq], used in .LO AT.

          LetSJ
               Contains the string [oq]SUBJECT:[cq], used in .LO SJ.

          LetRN
               Contains the string [oq]In reference to:[cq], used in
               .LO RN.

          Letns

     Page 27                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               is an array containing the different strings used in
               .NS.  It is really a number of string variables pre-
               fixed 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
               [oq]Copy[cq] and before [oq]to[cq].

                    tab(@); lb lb l l.  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 (with-
                    out 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 en MO12
               Strings containing the month names [oq]January[cq]
               through [oq]December[cq].

          Qrf  String containing [oq]See chapter [rs][rs]*[Qrfh], page
               [rs][rs]n[Qrfp].[cq].

          Rp   Contains the string [oq]REFERENCES[cq].

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

                    tab(@); lb lb l l.  Value@Meaning co@Table of con-
                    tents fg@List of figures tb@List of tables ec@List
                    of equations ex@List of exhibits ap@Appendix

          Tm   Contains the string [oq][rs](tm[cq], the trade mark
               symbol.

          Verbnm
               Argument to .nm in the .VERBON command.  Default is~1.

        Number variables used in mm
          Aph  Print an appendix page for every new appendix  if this
               number variable is non-zero.  No output occurs if Aph
               is zero, but there is always an appendix entry in the
               [oq]List of contents[cq].

          Cl   Contents level (in the range 0 to 14).  The contents is

     Page 28                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               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 head-
               ing.  Default is~0.

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

          Fs   Footnote spacing.  Default is~1.

          H1 en 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 number 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 value of~0.  See~.H.

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

     Page 29                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

                    tab(@); l lx.  0@no indentation, left margin 1@T{
                    indent to the right, similar to [oq].P 1[cq] T}
                    2@T{ indent to line up with text part of preceding
                    heading T}

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

                    tab(@); l l.  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.

                    7tab(@); l l.  0@no hyphenation 1@hyphenation on,
                    set to value~6

               Default is~0.

          Iso  Set this variable to~1 on the command line to get an
               ISO-formatted date string (-rIso=1).  Useless inside of
               a document.

          L    Page length, only for command-line settings.

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

          Lf, Lt, Lx,

     Page 30                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               Enable (1) or disable (0) the printing of List of fig-
               ures, 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 pre-
               fix and mark in automatic lists (.AL).

                    tab(@); l l.  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.

                    tab(@); l lx.  0@normal header for all pages.
                    1@T{ header replaces footer on first page, header
                    is empty.  T} 2@page header is removed on the
                    first page.  3@[oq]section-page[cq] numbering
                    style enabled.  4@page header is removed on the
                    first page.  5@T{ [oq]section-page[cq] and
                    [oq]section-figure[cq] numbering style enabled.
                    T}

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

          Np   A flag to control whether paragraphs are numbered.

                    tab(@); l l.  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.

                    tab(@); l l.  0@[dq]. [dq] 1@[dq] - [dq]

               Default is~0.

          P    Current page-number, normally the same as [oq]%[cq]
               unless [oq]section-page[cq] numbering style is enabled.

          Pi   Paragraph indentation.  Default is~5.

     Page 31                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

          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.

                    tab(@); l lx.  0@T{ Point size only changes to the
                    current setting when .PH, .PF, .OH, .EH, .OF, or
                    .OE is executed.  T} 1@T{ Point size changes after
                    every .S.  This is the default.  T}

          Ps   Paragraph spacing.  Default is~1.

          Pt   Paragraph type.

                    tab(@); l lx.  0@left-justified 1@indented para-
                    graphs 2@T{ indented paragraphs except after .H,
                    .DE, or .LE.  T}

               Default is~0.

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

          Sectf
               A flag controlling [oq]section-figures[cq] numbering
               style.  A non-zero value enables this.  See also
               register~N.

          Sectp
               A flag controlling [cq]section-page[cq] 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
          The letter macros are using 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 national macro-file, or as local
          additions.  .LT sets the number variables 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

     Page 32                   groff 1.22.4          (printed 5/24/22)

     GROFF_MM(7)            (9 September 2021)             GROFF_MM(7)

               to initialize variables 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
          variable let*lo-type.

     FILES
          /usr/:share/:groff/:1.22.4/:tmac/m.tmac

          .cov

          .MT

          /usr/share/groff/1.22.4/tmac/mm/locale

     AUTHORS
          The GNU version of the mm macro package was written by
          J[:o]rgen H[:a]gg of Lund, Sweden.

     SEE ALSO
          groff(1), troff(1), tbl(1), pic(1), eqn(1)
          groff_mmse(7) (only in Swedish locales)

     Page 33                   groff 1.22.4          (printed 5/24/22)