# man > groff_mm(7)

[GROFF_MM(7)](https://www.chedong.com/phpMan.php/man/GROFFMM/7/markdown)                       Miscellaneous Information Manual                       [GROFF_MM(7)](https://www.chedong.com/phpMan.php/man/GROFFMM/7/markdown)



## NAME
       groff_mm - memorandum macros for GNU roff

## SYNOPSIS
       **groff** **-mm** [_option_ ...] [_file_ ...]
       **groff** **-m** **mm** [_option_ ...] [_file_ ...]

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

       ••      No Bell Labs localisms are implemented.

       ••      The macros OK and PM are not implemented.

       ••      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 standard.  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 ‘sv.tmac’ – not ‘se’, which is the ISO 3166 two-let‐
       ter 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  vari‐
       ables.   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 reg‐
       ister is used with a plus or minus sign, **\n+[**_XXX_**]** or **\n-[**_XXX_**]**.)

       Strings are defined with **ds**.

              **.ds** _YYY_ _string_

       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 **\*[**_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.

              **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 back‐
       wards compatibility.  From a practical point of view it doesn't make a  big  difference  –  a
       different  font family can still be selected with a call to the **.fam** request or using **groff**'s
### -f
       have to replace the font at position 2 (with a call to ‘.fp 2 ...’).

### 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 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 print‐
              ing of a blank line before each item.

       **APP** _name_ _text_
              Begin an appendix with name _name_.  Automatic naming occurs if _name_ is **""**.  The  appen‐
              dices  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 ‘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 dia‐
              grams or other non-formatted documents are included as appendices.

       **AS** [_arg_ [_indent_]]
              Abstract start.  Indentation is specified in ‘ens’, but scaling is allowed.   Argument
              _arg_ controls where the abstract is printed.

              **Arg**   **Placement**
              0     Abstract is printed on page 1 and on the cover sheet if used in the released-pa‐
                    per style (**MT** **4**), otherwise it is printed on page 1 without a cover sheet.
              1     Abstract is only printed on the cover sheet (**MT** **4** only).
              2     Abstract is printed only on the cover sheet (other than **MT** **4** only).   The  cover
                    sheet is printed without a need for **CS**.

              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 ‘ABSTRACT’.  Sets the text above the abstract text.

       **AT** _title1_ [_title2_ [...]]
              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 num‐
              ber 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  ‘APPROVED:’  can  be changed with variable **Letapp**; it is replaced with an
              empty lin if there is a second argument.  The string ‘Date’ can be changed with  vari‐
              able **Letdate**.

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

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

       **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 af‐
              ter  the mark.  _text-indent_ sets the indentation to the text, and _mark-indent_ the dis‐
              tance from the current indentation to the mark.  A third argument  prohibits  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 definition.  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 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 two number 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  number‐
                         ing is active) or at the end of the document.
                     1   A new display is printed on the current page if there is enough space, oth‐
                         erwise 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 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  to‐
              gether  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 number 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 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 num‐
              bering.

              **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 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 in‐
              stead of a dot after the number.

              The  string  **Le** controls the title of the List of Equations; default is ‘LIST OF EQUA‐
              TIONS’.  The List of Equations is only printed if number register **Le** is  1.   The  de‐
              fault 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 ac‐
              tive.  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-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)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown).  **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
              ‘LIST OF EXHIBITS’.  The List of Exhibits is only printed if number 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 string variable **Letfc**.

       **FD** [_arg_ [**1**]]
              Footnote  default  format.  Controls the hyphenation (hyphen), right margin justifica‐
              tion (adjust), and indentation of footnote text (indent).  It can also change the  la‐
              bel 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.  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
              ‘LIST OF FIGURES’.  The List of Figures is only printed if number 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 number 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 variable _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‐
              variable _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**

                     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 heading level is less or equal to
                     number 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 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 controlled by number register  **Hi**.
                     Default value is 0.

                     **Hi**

                     0   The text is left-justified.
                     1   Indentation of the text follows the value of number 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 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** **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**  con‐
                     trols 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 number registers named **H1** up to **H14** contain the counter for each head‐
                     ing  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 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** **macros**

                     The  following macros can be defined by the user to get a finer control of ver‐
                     tical 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 _head__‐
                     _ing-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 fol‐
                            lowing 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 sec‐
                            tion 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 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  coun‐
              ters.  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 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 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 specified 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 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)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown).  This program  exists  because
              [**groff**(1)](https://www.chedong.com/phpMan.php/man/groff/1/markdown) 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 num‐
              ber 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 string variable **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 string variable **Index** as header, default is ‘INDEX’.  One-column pro‐
              cessing 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.

       **ISODATE** [**0**]
              Change  the  predefined  date string in **DT** to ISO-format, this is, ‘YYYY-MM-DD’.  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  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 deter‐
              mined 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 number 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  con‐
              trolled  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.

              All lists begin with a list initialization macro, **LB**.  There are, however, seven  pre‐
              defined  list  types to make lists easier to use.  They all call **LB** with different de‐
              fault 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 para‐
                           graph is indented five spaces.
                     FB    Full-blocked.  All lines begin at the left margin.
                     SP    Simplified.   Almost the same as the full-blocked style.  Subject and the
                           writer's identification are printed in all-capital.

       **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 vari‐
                          able **LetCN**.
                     RN   Reference notation.  Prints ‘In reference to:’ and the argument two  lines
                          below the date line.  See also string variable **LetRN**.
                     AT   Attention.  Prints ‘ATTENTION:’ and the argument below the inside address.
                          See also string variable **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 variable **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 sub‐
                          ject is printed in all-capital without any prefix.  See also string  vari‐
                          able **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-sep__‐
              _aration_  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** [_arg_ [_addressee_]]
              Memorandum   type.    The   argument    _arg_    is    part    of    a    filename    in
              _/usr/share/groff/1.22.4/tmac/mm/_*_.MT_.   Memorandum types 0 to 5 are supported, includ‐
              ing type ‘string’ (which gets internally mapped to type 6).   _addressee_  just  sets  a
              variable, used in the AT&T macros.

              **arg**

                     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 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 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 col‐
              umns.  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 en‐
              tire 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 string vari‐
              ables **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 number  reg‐
              ister **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  in‐
              dents  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 number register **Ps**, and is 1 by  de‐
              fault (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)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown) 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 op‐
              tional _width_ and _height_ can also be given to resize the picture.

       **PE**     Picture end.  Ends a picture for [**pic**(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown).

       **PF** [_arg_]
              Page footer.  **PF** sets the line to be printed at the bottom of each page.  Empty by de‐
              fault.  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)](https://www.chedong.com/phpMan.php/man/pic/1/markdown).

       **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 ("").

       **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 indenta‐
              tion.

       **RP** [_arg1_ [_arg2_]]
              Produce reference page.  This macro can be used if a reference page  is  wanted  some‐
              where 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 number register  **Ls**  to  0
              suppresses the line.

              The string **Rp** contains the reference page title and is set to ‘REFERENCES’ by default.
              The number 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 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 **\*[**_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 current value, and ‘D’ the default value.  If ‘+’  or  ‘-’
              is  used  before  the  value, the current value is incremented or decremented, respec‐
              tively.

       **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 de‐
              fined.  _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 ref‐
              erence 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  sec‐
              tion “Internals” below.

       **SK** [_pages_]
              Skip pages.  If _pages_ is 0 or omitted, a skip to the next page occurs unless it is al‐
              ready 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 con‐
              catenated, 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 number 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 only printed if  number  register  **Lt**  is  1,
              which is the default.  The string **Litb** contains the word ‘TABLE’, which is printed be‐
              fore 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  reg‐
              ister **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  argu‐
              ments.   **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 **TX**_xx_ or **TY**_xx_, 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 string variables **Lifg**, **Litb**, **Liex**, **Liec**, and **Licon** contain ‘Figure’, ‘TABLE’, ‘Ex‐
              hibit’, ‘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 pro‐
              cessing.

       **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)](https://www.chedong.com/phpMan.php/man/tbl/1/markdown).  **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  ‘CON‐
              TENTS’.  See **TC**.

       **VERBON** [_flag_ [_point-size_ [_font_]]]
              Begin verbatim output using Courier font.  Usually for printing programs.  All charac‐
              ters 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 ver‐
                           bose 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  with
                           the  string  variable  **Verbnm**.  It contains all arguments to the [**troff**(1)](https://www.chedong.com/phpMan.php/man/troff/1/markdown)
                           command **.nm**, normally ‘1’.
                     16    Indent the verbose text by ‘5n’.  This is controlled by the  number-vari‐
                           able **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 in‐
              stead.  _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  speci‐
              fied 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 used in mm
       **App**    A string containing the word ‘APPENDIX’.

       **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, ‘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**.  It is really  a  number  of
              string  variables 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** 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 ‘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  ver‐
              bosity.   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-adjusted if set to 0 and right-adjusted 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.   De‐
              fault is 1.

       **H1h**    A  copy of number register **H1**, but it is incremented just before the page break.  Use‐
              ful 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.

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

                     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**    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**, **Le**
              Enable (1) or disable (0) the printing of List of figures, List of tables, List of ex‐
              hibits 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 number 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 set‐
              tings 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
       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 vari‐
       ables **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 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 **Let**_type_ is de‐
       fined, 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_

       _/usr/share/groff/1.22.4/tmac/mm/_*_.cov_

       _/usr/share/groff/1.22.4/tmac/mm/_*_.MT_

       _/usr/share/groff/1.22.4/tmac/mm/locale_

## AUTHORS
       The GNU version of the _mm_ macro package was written by Jörgen Hägg ⟨<jh@axis.se>⟩ of Lund, Swe‐
       den.

## SEE ALSO
       [**groff**(1)](https://www.chedong.com/phpMan.php/man/groff/1/markdown), [**troff**(1)](https://www.chedong.com/phpMan.php/man/troff/1/markdown), [**tbl**(1)](https://www.chedong.com/phpMan.php/man/tbl/1/markdown), [**pic**(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown), [**eqn**(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown)
       **groff**___**[mmse**(7)](https://www.chedong.com/phpMan.php/man/mmse/7/markdown) (only in Swedish locales)



groff 1.22.4                                23 March 2022                                [GROFF_MM(7)](https://www.chedong.com/phpMan.php/man/GROFFMM/7/markdown)
