# 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  GNU implementation of the _mm_ macro package is part of the _groff_ document formatting sys‐
       tem.  The _mm_ package is suitable for the composition  of  letters,  memoranda,  reports,  and
       books.

       Call an _mm_ macro at the beginning of a document to initialize the package.  A simple _mm_ docu‐
       ment  might use only **P **for paragraphing.  Set numbered and unnumbered section headings with **H**
       and **HU**, respectively.  Change the style of the typeface with **B**, **I**, and **R**; you  can  alternate
       styles  with  **BI**,  **BR**, **IB**, **IR**, **RB**, and **RI**.  Several nestable list types are available via **AL**,
       **BL**, **BVL**, **DL**, **ML**, **RL**, and **VL**; each of these begins a list, to which **LI **adds  an  item  and  **LE**
       ends  the  (nested) list.  Customized list arrangements are supported by **LB**.  **DS **and **DF **start
       static and floating displays, respectively; either is terminated with **DE**.

       _groff_ _mm_ is intended to be compatible with the _mm_ implementation  found  in  the  AT&T  Docu‐
       menter's Workbench (DWB), with the following limitations.

       • Omitted  features  include  the logo and company name strings, **}Z **and **]S**, respectively; the
         encoded company site location addresses recognized as the third argument to the  **AU  **macro;
         the **Pv **(“private” heading) register; and the **OK **(other keywords), and **PM **(proprietary mark‐
         ings) macros.

       • The **CS **(output cover sheet) macro is implemented only for memorandum type 4.

       • The _grap_ preprocessor is not explicitly supported; no **G1 **and **G2 **macros are defined.

       • The  registers  **A**, **C**, **E**, **T**, and **U**, typically set from the _troff_ or _nroff_ command lines with
         DWB _mm_, are not recognized.

       • When setting the registers **L **or **W **from the command line, use an explicit  scaling  unit  to
         avoid surprises.

       • DWB _mm_'s **nP **macro indented the second line of a paragraph to align it with the start of the
         text of the first (after the paragraph number); _groff_ _mm_'s does not.

       • Cut marks are not supported.

       DWB  _mm_ supported only seven levels of heading.  As a compatible extension, _groff_ _mm_ supports
       fourteen, introducing new registers **H8 **through **H14**, and affecting the interpretation  of  the
       **HF **and **HP **strings.

       Macro,  register,  and  string  descriptions in this page frequently mention each other; most
       cross references are to macros.  Where a register or string is referenced, its  type  is  ex‐
       plicitly  identified.   _mm_'s  macro names are usually in full capitals; registers and strings
       tend to have mixed-case names.

### Document styles
       _groff_ _mm_ offers three different frameworks for  document  organization.   **COVER**/**COVEND  **is  a
       flexible  means  of preparing any document requiring a cover page.  **LT**/**LO **aids preparation of
       typical Anglophone correspondence (business letters, for example).  The  **MT  **memorandum  type
       mechanism  implements  a  group of formal styles historically used by AT&T Bell Laboratories.
       Your document can select at most one of these approaches; when used, each disables  the  oth‐
       ers.

### Localization
       _groff_  _mm_ is designed to be easily localized.  For languages other than English, strings that
       can appear in output are collected in the file _/usr/share/groff/1.23.0/tmac/_xx_.tmac_, where _xx_
       is an ISO 639 two-letter language identifier.  Localization packages should be  loaded  after
       _mm_; for example, you might format a Swedish _mm_ document with the command “**groff -mm -msv**”.

       This  package  can  also  be  localized  by site or territory; for example, _/usr/share/groff/_
       _1.23.0/tmac/mse.tmac_ illustrates how to adapt the output to a national standard using its ISO
       3166 territory code.  Such a package can define a string that causes a macro file _/usr/share/_
       _groff/1.23.0/tmac/mm/_territory__locale_ to be loaded at package initialization.  If this mecha‐
       nism is not used, _/usr/share/groff/1.23.0/tmac/mm/locale_ is loaded instead.  No diagnostic is
       produced if these files do not exist.

### Registers and strings
       Much _mm_ behavior can be configured by registers and strings.  A register is assigned with the
       **nr **request.

              **.nr _**ident_ [**±**]_n_ [_i_]

       _ident_ is the name of the register, and _n_ is the value to be assigned.  _n_ can be prefixed with
       a plus or minus sign if incrementation or decrementation (respectively) of the register's ex‐
       isting value by _n_ is desired.  If assignment of a (possibly) negative _n_ is required,  further
       prefix it with a zero or enclose it in parentheses.  If _i_ is specified, the register is auto‐
       matically modified by _i_ prior to interpolation if a plus or minus sign is included in the es‐
       cape sequence as follows.

              **\n**[**±**]**[_**ident_**]**

       _i_  can  be  negative; it combines algebraically with the sign in the interpolation escape se‐
       quence.

       Strings are defined with the **ds **request.

              **.ds _**ident_ _contents_

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

              **\*[_**ident_**]**

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

### Register format
       A register is interpolated using Arabic numerals if no other format has been assigned to  it.
       Assign a format to a register with the **af **request.

              **.af _**R_ _c_

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

              **Form   Sequence**
              1      0, 1, 2, 3, ..., 10, ...
              001    000, 001, 002, 003, ..., 1000, ...
              i      0, i, ii, iii, iv, ...
              I      0, I, II, III, IV, ...
              a      0, a, b, c, ..., z, aa, ab, ...
              A      0, A, B, C, ..., Z, AA, AB, ...

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

## Macros
       An explicitly empty argument may be specified with a pair of double quotes; to call  a  macro
       **XX **with an empty second argument but non-empty first and third ones, you could input the fol‐
       lowing.

              .XX foo "" baz

       Macro  names  longer than two characters are GNU extensions; some shorter names were not part
       of DWB _mm_'s published interface but are documented aspects of _groff_ _mm._

       **)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 undocumented DWB _mm_ macro is exposed by _groff_  _mm_  to
              enable customized tables of contents.

       **1C **[**1**] Format  page  text  in  one column.  The page is broken.  A **1 **argument suppresses this
              break; its use may cause body text and a pending footnote to overprint.  See  **2C**,  **MC**,
              and **NCOL**.

       **2C     **Begin two-column formatting.  This is a special case of **MC**.  See **1C **and **NCOL**.

       **AE     **Abstract end; stop collecting abstract text.  See **AS**.

       **AF **[_firm-name_]
              Specify firm associated with the document.  At most one can be declared; the firm name
              is  used  by memorandum types and available to cover sheets.  **AF **terminates a document
              title started with **TL**, and can be called without an argument for that purpose.  See **MT**
              and **COVER**.

       **AL **[_type_ [_text-indent_ [**1**]]]
              Begin an auto-incrementing numbered list.  Item numbers start at one.  The _type_  argu‐
              ment  assigns  the  register format (see above) of the list item enumerators.  The de‐
              fault is **1**.  An explicitly empty _type_ also indicates the default.  A _text-indent_ argu‐
              ment overrides register **Li**.  A third argument suppresses the blank line that  normally
              precedes each list item.  Use **LI **to declare list items, and **LE **to end the list.

       **APP **[_id_ [_title_]]
              Begin  an  appendix.   If the identifier _id_ is omitted, it is incremented (or initial‐
              ized, if necessary).  The register format used for _id_ is “A”.   The  page  is  broken.
              The register **Aph **determines whether an appendix heading is then formatted.  This head‐
              ing  uses  the  string **App **followed by _id_.  Appendices appear in any table of contents
              (see **TC**).  The string **Apptxt **is set to _title_ if the latter is present, and made  empty
              otherwise.

       **APPSK _**id_ _n_ [_title_]
              As  **APP**, but increment the page number by _n_.  Use this macro to “skip pages” when dia‐
              grams or other materials not formatted by _troff_ are included in appendices.

       **AS **[_placement_ [_indentation_]]
              Abstract start; begin collecting abstract.  Input up to the next **AE **call  is  included
              in the abstract.  _placement_ influences the location of the abstract on the cover sheet
              of  a  memorandum (see **MT**).  **COVER**, by contrast, ignores _placement_ by default, but can
              be customized to interpret it.

              _**placement_   Effect**
              0           The abstract appears on page 1 and cover sheet if the document is  a  “re‐
                          leased  paper” memorandum (“**.MT 4**”); otherwise, it appears on page 1 with‐
                          out a cover sheet.
              1           The abstract appears only on the cover sheet (“**.MT 4**” only).

              An abstract does not appear at all in external letters (“**.MT 5**”).  A  _placement_  of  **2**
              was supported by DWB _mm_ but is not by _groff_ _mm_.

              A second argument increases the indentation by _indentation_ and reduces the line length
              by twice this amount.  A scaling unit of ens is assumed.  The default is 0.

       **AST **[_caption_]
              Set  the  caption  above the abstract to _caption_, or clear it if there is no argument.
              The default is “ABSTRACT”.

       **AT _**title_ ...
              Specify author's title(s).  If present, **AT **must appear just  after  the  corresponding
              author's **AU**.  Each _title_ occupies an output line beneath the author's name in the sig‐
              nature  block  used  by  **LT  **letters (see **SG**) and in **MT **memoranda.  The **ms **cover sheet
              style also uses it.

       **AU **[_name_ [_initials_ [_loc_ [_dept_ [_ext_ [_room_ [_arg1_ [_arg2_ [_arg3_]]]]]]]]]
              Specify author.  **AU **terminates a document title started with **TL**,  and  can  be  called
              without  arguments  for  that purpose.  Author information is used by cover sheets, **MT**
              memoranda, and **SG**.  Further arguments comprise initials, location,  department,  tele‐
              phone  extension, room number or name, and up to three additional items.  Repeat **AU **to
              identify multiple authors.

              Use **WA**/**WE **instead to identify the author for documents employing **LT**.

       **AV **[_name_ [**1**]]
              Format approval lines for a handwritten signature and date.  Two horizontal rules  are
              drawn, with the specified _name_ and the text of the string **Letdate **beneath them.  Above
              these  rules,  the  text in the string **Letapp **is formatted; a second argument replaces
              this text with a blank line.  See **LT**.

       **AVL **[_name_]
              As **AV**, but the date, date rule, and approval notation **Letapp **are omitted.

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

       **B1     **Begin boxed, kept display.  The text is indented one character, and the  right  margin
              is one character shorter.  This is a GNU extension.

       **B2     **End boxed, kept display.  This is a GNU extension.

       **BE     **End bottom block; see **BS**.

       **BI **[_bold-text_ [_italic-text_]] ...
              Join  _bold-text_ in boldface with _italic-text_ in italics, without space between the ar‐
              guments.

       **BL **[_text-indent_ [**1**]]
              Begin bulleted list.  Items are prefixed with a bullet and a space.  A _text-indent_ ar‐
              gument overrides register **Pi**.  A second argument suppresses blank lines between items.
              Use **LI **to declare list items, and **LE **to end the list.

       **BR **[_bold-text_ [_roman-text_]] ...
              Join _bold-text_ in boldface with _roman-text_ in roman style, without space  between  the
              arguments.

       **BS     **Begin  bottom  block.   Input  is collected until **BE **is called, and output between the
              footnote area and footer of each page.

       **BVL **[_text-indent_ [_mark-indent_ [**1**]]]
              Begin broken variable-item (or “tagged”) list.  Each item is expected  to  supply  its
              own  mark.   The  line is always broken after the mark; contrast **VL**.  _text-indent_ sets
              the indentation of the text, and _mark-indent_ the distance from the current list inden‐
              tation to the mark.  A third argument suppresses the blank line that normally precedes
              each list item.  Use **LI **to declare list items, and **LE **to end the list.

       **COVER **[_style_]
              Begin a cover page description.  **COVER **must appear before the body text (or main  mat‐
              ter) of a document.  The argument _style_ is used to construct the file name _/usr/share/_
              _groff/1.23.0/tmac/mm/_style_.cov_ and load it with the **mso **request.  The default _style_ is
              **ms**;  the _ms.cov_ file prepares a cover page resembling those of the _ms_ package.  A _.cov_
              file must define a **COVEND **macro, which a document must call at the end  of  the  cover
              description.   Use cover description macros in the following order; only **TL **and **AU **are
              required.

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

       **COVEND **End the cover description.

       **DE     **End static or floating display begun with **DS **or **DF**.

       **DF **[_format_ [_fill_ [_right-indentation_]]]
              Begin floating display.  A floating display is saved in a queue and output in the  or‐
              der  entered.   Arguments  are  handled as in **DS**.  Floating displays cannot be nested.
              Placement of floating displays is controlled by the registers **De **and **Df**.

       **DL **[_text-indent_ [**1**]]
              Begin dashed list.  Items are prefixed with an em dash and a space.  A _text-indent_ ar‐
              gument overrides register **Pi**.  A second argument suppresses blank lines between items.
              Use **LI **to declare list items, and **LE **to end the list.

       **DS **[_format_ [_fill_ [_right-indentation_]]]
              Begin static display.  Input until **DE **is called is collected into a display.  The dis‐
              play is output on a single page unless it is taller than the height of the  page.   **DS**
              can be nested (contrast with **DF**).

              _**format_   Effect**
              _none_     Do not indent the display.
              L        Do not indent the display.
              I        Indent text by **\n[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 with DWB _mm._

              _**fill_   Effect**
              _none_   Disable filling.
              N      Disable filling.
              F      Enable filling.

              “N” and “F” can also be specified as “0” and “1”, respectively, for compatibility with
              DWB _mm._

              A third argument reduces the line length by _right-indentation._

              _mm_ normally places blank lines before and after the display.  Set register **Ds **to 0  to
              suppress these.

       **EC **[_title_ [_override_ [_flag_ [_refname_]]]]
              Caption an equation.  The caption consists of the string **Liec **followed by an automati‐
              cally  incrementing  counter  stored in the register **Ec**, punctuation configured by the
              register **Of**, then _title_ (if any).  Use the **af **request to configure **Ec**'s number format.
              _override_ and _flag_ alter the equation number as follows.  Omitting _flag_ and  specifying
              **0 **in its place are equivalent.

              _**flag_   Effect**
              0      Prefix number with _override_.
              1      Suffix number with _override_.
              2      Replace number with _override_.

              Equation captions are centered irrespective of the alignment of any enclosing display.

              _refname_  stores  the equation number using **SETR**; it can be retreived with “**.GETST _**ref‐_
              _name_”.  This argument is a GNU extension.

              Captioned equations are listed in a table of contents (see **TC**) if the Boolean register
              **Le **is true.  Such a list uses the string **Le **as a heading.

       **EF **[**"'_**left_**'_**center_**'_**right_**'"**]
              Define the even-page footer, which is formatted just above the normal page  footer  on
              even-numbered pages.  See **PF**.  **EF **defines the string **EOPef**.

       **EH **[**"'_**left_**'_**center_**'_**right_**'"**]
              Define  the  even-page header, which is formatted just below the normal page header on
              even-numbered pages.  See **PH**.  **EH **defines the string **TPeh**.

       **EN     **End equation input preprocessed by ]8;;man:[eqn(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown)\[_eqn_(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown)]8;;\; see **EQ**.

       **EOP    **If defined, this macro is called in lieu of normal page footer  layout.   Headers  and
              footers are formatted in a separate environment.  See **TP**.

              **Strings available to EOP**
              ─────────────────────────
              **EOPf     **argument to **PF**
              **EOPef    **argument to **EF**
              **EOPof    **argument to **OF**

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

       **EQ **[_label_]
              Start equation input preprocessed by ]8;;man:[eqn(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown)\[_eqn_(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown)]8;;\.  **EQ **and **EN **macro calls bracket  an  equa‐
              tion  region.  Such regions must be contained in displays (**DS**/**DE**), except when the re‐
              gion is used only to configure _eqn_ and not to produce output.  If present,  _label_  ap‐
              pears  aligned  to  the right and centered vertically within the display; see register
              **Eq**.  If multiple _eqn_ regions occur within a display, only the last _label_ (if  any)  is
              used.

       **EX **[_title_ [_override_ [_flag_ [_refname_]]]]
              Caption  an exhibit.  Arguments are handled analogously to **EC**.  The register **Ex **is the
              exhibit counter.  The string **Liex **precedes the exhibit number and any _title._   Exhibit
              captions are centered irrespective of the alignment of any enclosing display.

              Captioned  exhibits are listed in a table of contents (see **TC**) if the Boolean register
              **Lx **is true.  Such a list uses the string **Lx **as a heading.

       **FC **[_closing-text_]
              Output the string **Letfc**, or the specified _closing-text,_ as the  formal  closing  of  a
              letter.

       **FD **[_arg_ [**1**]]
              Configure  display  of  footnotes.  The first argument encodes enablement of automatic
              hyphenation, adjustment to the right margin, indentation of footnote text,  and  left-
              vs. right-alignment of the footnote label within the space allocated for it.

              _**arg_   Hyphenate?   Adjust?   Indent?   Label alignment**
              0     no           yes       yes       left
              1     yes          yes       yes       left
              2     no           no        yes       left
              3     yes          no        yes       left
              4     no           yes       no        left
              5     yes          yes       no        left
              6     no           no        no        left
              7     yes          no        no        left
              8     no           yes       yes       right
              9     yes          yes       yes       right
              10    no           no        yes       right
              11    yes          no        yes       right

              An _arg_ greater than 11 is treated as **0**.  _mm_'s default is **0**.

              If  a  second argument, conventionally **1**, is given, footnote numbering is reset when a
              first-level heading is encountered.  See **FS**.

       **FE     **End footnote; see **FS**.

       **FG **[_title_ [_override_ [_flag_ [_refname_]]]]
              Caption a figure.  Arguments are handled analogously to **EC**.  The register  **Fg  **is  the
              figure  counter.   The  string  **Lifg **precedes the figure number and any _title._  Figure
              captions are centered irrespective of the alignment of any enclosing display.

              Captioned figures are listed in a table of contents (see **TC**) if the  Boolean  register
              **Lf **is true.  Such a list uses the string **Lf **as a heading.

       **FS **[_label_]
              Start  footnote.   Input until **FE **is called is collected into a footnote.  By default,
              footnotes are automatically numbered starting at 1; the number is available in  regis‐
              ter  **:p  **and,  with a trailing period, in string **F**.  This string precedes the footnote
              text at the bottom of the column or page.  Footnotes are vertically separated  by  the
              product of registers **Fs **and **Lsp**.  In _groff_ _mm_, footnotes may be used in displays.

              A  _label_  argument  replaces the contents of the string **F**; it need not be numeric.  In
              this event, the footnote marker in the body text must be explicitly written.

       **GETHN _**refname_ [_varname_]
              Include the heading number where the corresponding “**.SETR _**refname_” was  placed.   This
              is  displayed  as  “X.X.X.” in pass 1.  See **INITR**.  If _varname_ is used, **GETHN **sets the
              string _varname_ to the heading number.

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

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

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

              **Qrf **may be changed to support other languages.  Strings **Qrfh **and **Qrfp **are set by  **GETR**
              and contain the page and heading 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_ [_title_ [_suffix_]]
              Set  a  numbered  section heading at _level_.  _mm_ produces numbered _heading_ _marks_ of the
              form _a_._b_._c_..., with up to fourteen levels of nesting.  Each level's  number  increases
              automatically  with  each **H **call and is reset to zero when a more significant _level_ is
              specified.  “**1**” is the most significant or coarsest division of  the  document.   Text
              after an **H **call is formatted as a paragraph; calling **P **is unnecessary.

              _title_ specifies an optional title; it must be double-quoted if it contains spaces.  _mm_
              appends  _suffix_  to  _title_ in the body of the document, but omits it from any table of
              contents (see **TC**).  This facility can be used to annotate the  heading  title  with  a
              footnote.  _suffix_ should not interpolate the **F **string; specify a footnote mark explic‐
              itly.  See **FS**.

              Heading  behavior  is  highly  configurable.  Several registers set a _threshold,_ where
              heading levels at or below the threshold value are handled in one way, and those above
              it another.  For example, a heading level within the threshold of register **Cl  **is  in‐
              cluded in the table of contents (see **TC**).

              _Heading_  _layout._  Register **Ej **sets a threshold for page breaking (ejection) prior to a
              heading.  If not preceded by a page break, a heading level below the threshold in reg‐
              ister **Hps **is preceded by the amount of vertical space in register  **Hps1**,  and  by  the
              amount in **Hps2 **otherwise.  The **Hb **register sets a threshold below which a break occurs
              after the heading, and register **Hs **sets a threshold below which vertical space follows
              it.   If  the  heading  level is not less than both of these, a _run-in_ _heading_ is pro‐
              duced; paragraph text follows on the same output line.  Otherwise, register **Hi **config‐
              ures the indentation of text after headings.  Threshold register **Hc **enables  the  cen‐
              tering  of  headings;  a  heading level below both of the **Hb **and **Hc **thresholds is cen‐
              tered.

              _Heading_ _typeface_ _and_ _size._  The fonts used for heading  numbers  and  titles  at  each
              level  are configured by the **HF **string.  The string **HP **likewise assigns a type size to
              each heading level.  The vertical spacing used by headings may be  controlled  by  the
              user-definable macros **HX **and/or **HZ**.

              _Heading_ _number_ _format._  Registers named **H1 **through **H14 **store counters for each heading
              level.   Their values are printed using Arabic numerals by default; see **HM**.  The head‐
              ing levels are catenated with dots for formatting; to typeset only  the  deepest,  set
              the  **Ht  **register.   Heading  numbers are not suffixed with a trailing dot except when
              only the first level is output; to omit a dot in this case as well,  clear  the  **H1dot**
              register.

              _Customizing_ _heading_ _behavior._  _mm_ calls _hook_ macros to enable further customization of
              headings.   (DWB  _mm_  called these “exits”.)  They can be used to change the heading's
              _mark_ (the numbered portion before any heading title), its vertical  spacing,  and  its
              vertical space requirements (for instance, to require a minimum quantity of subsequent
              output  lines).   Define  hook macros in expectation of the following parameters.  The
              argument _declared-level_ is the _level_ argument to **H**, or **0 **for unnumbered headings  (see
              **HU**).   _actual-level_ is the same as _declared-level_ for numbered headings, and the value
              of register **Hu **for unnumbered headings.  _title_ is the corresponding argument to  **H  **or
              **HU**.

              **HX _**declared-level_ _actual-level_ _title_
                     _mm_  calls **HX **before setting the heading.  Your definition may alter **}0**, **}2**, and
                     **;3**.

### }0 (string)
                            contains the heading mark plus two spaces if _declared-level_ is non-zero,
                            and otherwise is empty.

### ;0 (register)
                            encodes a position for the text after the heading.   0  means  that  the
                            heading  is  to  be  run in, 1 means that a break is to occur before the
                            text, and 2 means that vertical space is to separate heading and text.

### }2 (string)
                            is the suffix that separates a run-in heading from the  text.   It  con‐
                            tains two spaces if register **;0 **is 0, and otherwise is empty.

### ;3 (register)
                            contains  the vertical space required for the heading to be typeset.  If
                            that amount is not available, the page is broken prior to  the  heading.
                            The default is **2v**.

              **HY _**declared-level_ _actual-level_ _title_
                     _mm_ calls **HY **after determing the heading typeface and size.  It could be used to
                     change indentation.

              **HZ _**declared-level_ _actual-level_ _title_
                     _mm_  calls  **HZ  **after  formatting  the heading, just before **H **or **HU **returns.  It
                     could be used to change the page header to include a section heading.

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

       **HM **[_arg1_ [_arg2_ [... [_arg14_]]]]
              Set the heading mark style.  Each argument assigns the specified register format  (see
              above)  to  the corresponding heading level.  The default is **1 **for all levels.  An ex‐
              plicitly empty argument also indicates the default.

       **HU _**heading-text_
              Set an unnumbered section heading.  Except for a heading number, it is  treated  as  a
              numbered heading of the level stored in register **Hu**; see **H**.

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

       **IA **[_recipient-name_ [_title_]]
              Specify the inside address in a letter.  Input is collected into  the  inside  address
              until  **IE  **is called, and then output.  You can specify multiple recipients with empty
              **IA**/**IE **pairs; only the last address is used.  The arguments give each recipient a  name
              and title.  See **LT**.

       **IB **[_italic-text_ [_bold-text_]] ...
              Join  _italic-text_ in italics with _bold-text_ in boldface, without space between the ar‐
              guments.

       **IE     **End the inside address begun with **IA**.

       **IND _**argument_ ...
              If the Boolean register **Ref **is true, write an index entry as a specially prepared _roff_
              comment to the standard error stream, with each _argument_ separated from its  predeces‐
              sor by a tab character.  The entry's location information is arranged as configured by
              the most recent **INITI **call.

       **INDP   **Output  the  index set up by **INITI **and populated by **IND **calls.  By default, **INDP **calls
              **SK **and writes a centered caption interpolating the string  **Index**.   It  then  disables
              filling and calls **2C**; afterward, it restores filling and calls **1C**.

              Define  macros to customize this behavior.  **INDP **calls **TXIND **before the caption, **TYIND**
              _instead_ of writing the caption, and **TZIND **after formatting the index.

       **INITI _**location-type_ _file-name_ [_macro_]
              Initialize _groff_ _mm_'s indexing system.  Argument _location-type_ selects how  the  loca‐
              tion  of  each  index  entry is reported.  _file-name_ populates an internal string used
              later by **INDP**.

              _**location-type_   Entry format**
              N               page number
              H               heading mark
              B               page number, tab character, heading mark

              If _macro_ is specified, it is called for each index entry with the arguments  given  to
              **IND**.

       **INITR _**id_
              Initialize  the  cross reference macros.  Cross references are written to the standard
              error stream, which should be redirected into a file named id_.qrf_.  ]8;;man:[mmroff(1)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown)\[_mmroff_(1)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown)]8;;\  handles
              this  and the two formatting passes it requires.  The first pass identifies cross ref‐
              erences, and the second one includes them.

              See **SETR**, **GETPN**, and **GETHN**.

       **IR **[_italic-text_ [_roman-text_]] ...
              Join _italic-text_ in italics with _roman-text_ in roman style, without space between  the
              arguments.

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

       **LB _**text-indent_ _mark-indent_ _pad_ _type_ [_mark_ [_pre-item-space_ [_pre-list-space_]]]
              Begin list.  The macros **AL**, **BL**, **BVL**, **DL**, **ML**, **RL**, and **VL **call **LB **in various ways;  they
              are simpler to use and may be preferred if they suit the desired purpose.

              The  nesting  level  of lists is tracked by _mm;_ the outermost level is 0.  The text of
              each list item is indented by _text-indent;_ the default is taken from the  **Li  **register
              (in  ens).   Each item's mark is indented by _mark-indent;_ the default is **0n**.  The mark
              is normally left-aligned.  If _pad_ is greater than zero, _mark-indent_ is overridden such
              that _pad_ ens of space follow the mark.  _type_ selects one of six possible ways to  dis‐
              play the mark.

              _**type_   Output for a mark “x”**
              1      x.
              2      x)
              3      (x)
              4      [x]
              5      <x>
              6      {x}

              If _type_ is 0 and _mark_ is unspecified, the items are set with a hanging indent.  Other‐
              wise,  _mark_  is  interpreted  as  a string defining the mark.  If _type_ is greater than
              zero, items are automatically numbered; _mark_ is interpreted as a register format.  The
              default _type_ is **0**.

              The last two arguments manage vertical  space.   Unless  a  list's  nesting  level  is
              greater than the value of register **Ls**, its items are preceded by _pre-item-space_ multi‐
              plied  by  the register **Lsp**; the default is **1**.  **LB **precedes the list by _pre-list-space_
              multiplied by the register **Lsp**; the default is **0**.

       **LC **[_list-level_]
              Clear list state.  Active lists are terminated as if with **LE**, either all (the default)
              or only those from the current level down to _list-level_ if specified.  **H **calls **LC  **au‐
              tomatically.

       **LE **[**1**] End  list.  The current list is terminated.  An argument of **1 **causes vertical space in
              the amount of register **Lsp **to follow the list.

       **LI **[_mark_ [_item-mark-mode_]]
              Begin a list item.  Input is collected into a list item until the current list is ter‐
              minated or **LI **is called again.  By default, the item's text is preceded  by  any  mark
              configured by the current list.  If only _mark_ is specified, it replaces the configured
              mark.  A second argument prefixes _mark_ to the configured mark; an _item-mark-mode_ value
              of  1  places  an unbreakable space after _mark,_ while a value of 2 does not (rendering
              the two adjacent).  Also see register **Limsp**.

       **LO _**option_ [_value_]
              Specify letter options; see **LT**.  Standard options are as follows.   See  **IA  **regarding
              the inside address and string **DT **regarding the date.

              _**option_   Effect**
              AT       Attention;  put contents of string **LetAT **and _value_ left-aligned after the in‐
                       side address.
              CN       Confidential; put _value,_ or contents of string **LetCN**, left-aligned after  the
                       date.
              RN       Reference; put contents of string **LetRN **and _value_ after the confidental nota‐
                       tion (if any) and the date, aligned with the latter.
              SA       Salutation;  put  _value,_  or contents of string **LetSA**, left-aligned after the
                       inside address and the confidental notation (if any).
              SJ       Subject; put contents of string **LetSJ **and _value_ left-aligned after the inside
                       address and the attention and salutation notations (if any).  In letter  type
                       “SP”, **LetSJ **is ignored and _value_ is set in full capitals.

       **LT **[_style_]
              Format  a  letter in the designated _style,_ defaulting to **BL **(see below).  A letter be‐
              gins with the writer's address (**WA**/**WE**), followed by the date (**ND**), the inside  address
              (**IA**/**IE**),  the  body  of the letter (**P **and other general-purpose _mm_ macros), the formal
              closing (**FC**), the signature (**SG**), and notations (**NS**/**NE**).  Any of these may be omitted.
              Letter options specified with **LO **add further annotations, which  are  extensible;  see
              section “Internals” below.

              _**style_   Description**
              **BL      **Blocked:  the  writer's  address,  date, formal closing, and signature are in‐
                      dented to the center of the line.  Everything else is left-aligned.
              **SB      **Semi-blocked: as **BL**, but the first line of each paragraph is indented by **5m**.
              **FB      **Fully blocked: everything begins at the left margin.
              **SP      **Simplified: as **FB**, but a formal closing is omitted, and the signature  is  set
                      in full capitals.

       **MC _**column-width_ [_gutter-width_]
              Begin  multi-column  layout.   _groff_ _mm_ creates as many columns of _column-width_ as the
              line length will permit.  _gutter-width_ is the interior spacing  between  columns.   It
              defaults  to _column-width_/15.  **1C **returns to single-column layout.  **MC **is a GNU exten‐
              sion.  See **MULB **for an alternative.

       **ML _**mark_ [_text-indent_ [**1**]]
              Start a list with the _mark_ argument preceding each list item.   _text-indent_  overrides
              the  default  indentation  of the list items set by register **Li**.  If a third argument,
              conventionally **1**, is given, the blank line that normally precedes each  list  item  is
              suppressed.  Use **LI **to declare list items, and **LE **to end the list.

       **MT **[_type_ [_addressee_]]
              Select  memorandum  type.  These correspond to formats used by AT&T Bell Laboratories,
              where the _mm_ package was initially developed, affecting the document layout.  Some  of
              these  included  a cover page with a caption categorizing the document.  _groff_ _mm_ uses
              _type_ to construct the file name _/usr/share/groff/1.23.0/tmac/mm/_type_.MT_  and  load  it
              with  the **mso **request.  Memorandum types 0 to 5 are supported; any other value of _type_
              is mapped to type 6.  If _type_ is omitted, **0 **is implied.  _addressee_ sets a string anal‐
              ogous to one used by AT&T cover sheet macros that are not implemented in _groff_ _mm_.

              _**type_   Description**
              0      normal memorandum; no caption
              1      captioned “MEMORANDUM FOR FILE”
              2      captioned “PROGRAMMER'S NOTES”
              3      captioned “ENGINEER'S NOTES”
              4      released paper
              5      external letter

              See **COVER **for a more flexible cover sheet mechanism.

       **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_] ... _cwn_
              Begin alternative multi-column mode.  All column widths must be specified, as must the
              amount of space between each column pair.  The arguments' default scaling unit  is  **n**.
              **MULB **uses a diversion and operates in a separate environment.

       **MULN   **Begin next column in alternative column mode.

       **MULE   **End alternative multi-column mode and emit the columns.

       **NCOL   **Move to the start of the next column (only when using **2C **or **MC**).  Contrast with **MULN**.

       **ND **[_arg_]
              Set  the  document's date.  _mm_ does not interpret _arg_; it can be a revision identifier
              (or empty).

       **NE     **End notation begun with **NS**; filling is enabled.

       **nP **[_type_]
              Begin a numbered paragraph at heading level two.  See **P**.

       **NS **[_code_ [**1**]]
              Declare notations, typically for letters or memoranda, of the type specified by  _code_.
              The  text corresponding to _code_ is output, and filling is disabled until **NE **is called.
              Typically, a list of names or attachments lies within **NS**/**NE**.  If  _code_  is  absent  or
              does not match one of the values listed under the **Letns **string description below, each
              line of notations is formatted as “Copy (_line_) to”.  If a second argument, convention‐
              ally  **1**, is given, _code_ becomes the entire notation and **NE **is not necessary.  In _groff_
              _mm_, you can set up further notations to be recognized by **NS**; see the strings **Letns **and
              **Letnsdef **below.

       **OF **[**"'_**left_**'_**center_**'_**right_**'"**]
              Define the odd-page footer, which is formatted just above the normal  page  footer  on
              odd-numbered pages.  See **PF**.  **OF **defines the string **EOPof**.

       **OH **[**"'_**left_**'_**center_**'_**right_**'"**]
              Define  the  odd-page  header, which is formatted just below the normal page header on
              odd-numbered pages.  See **PH**.  **OH **defines the 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.   If  _type_  is  missing  or    0,  **P  **sets  the  paragraph  fully
              left-aligned.  A _type_ of 1 idents the first line by **\[Pi] **ens.  Set the register **Pt **to
              select  a  default paragraph indentation style.  The register **Ps **controls the vertical
              spacing between paragraphs.

       **PE     **Picture end; see ]8;;man:[pic(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)\[_pic_(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)]8;;\.

       **PF **[**"'_**left_**'_**center_**'_**right_**'"**]
              Define the page footer.  The footer is formatted at the bottom of each page; the argu‐
              ment is otherwise as described in **PH**.  **PF **defines the string **EOPf**.  See  **EF**,  **OF**,  and
              **EOP**.

       **PGFORM **[_linelength_ [_pagelength_ [_pageoffset_ [**1**]]]]
              Set  line length, page length, and/or page offset.  This macro can be used for letter‐
              heads and similar.  It is normally the first macro call in a file, though  it  is  not
              necessary.   **PGFORM  **can  be  used  without arguments to reset everything after a **MOVE**
              call.  A line break is done unless the fourth argument is given.  This can be used  to
              avoid the page number on the first page while setting new width and length.  (It seems
              as  if  this macro sometimes doesn't work too well.  Use the command-line arguments to
              change line length, page length, and page offset instead.)

       **PGNH   **Suppress header on the next page.  This macro must be called before  any  macros  that
              produce output to affect the layout of the first page.

       **PH **[**"'_**left_**'_**center_**'_**right_**'"**]
              Define  the  page  header,  formatted  at the top of each page, as the argument, where
              _left_, _center_, and _right_ are aligned to the respective locations on the  line.   A  “**%**”
              character  in  _arg_ is replaced by the page number.  If the argument is absent, no page
              header is set.  The default page header is
                     "''- % -''"
              which centers the page number between hyphens and formats nothing at  the  upper  left
              and  right.   Header  macros call **PX **(if defined) after formatting the header.  **PH **de‐
              fines the string **TPh**.  See **EH**, **OH**, and **TP**.

       **PIC **[**-B**] [**-C**|**-I _**n_|**-L**|**-R**] _file_ [_width_ [_height_]]
              Include PostScript document _file_.  The optional **-B **argument draws  a  box  around  the
              picture.   The  optional **-L**, **-C**, **-R**, and **-I _**n_ arguments align the picture or indent it
              by _n_ (assuming a scaling unit of **m**).  By default, the picture  is  left-aligned.   Op‐
              tional _width_ and _height_ arguments resize the picture.  Use of this macro requires two-
              pass processing; see **INITR **and ]8;;man:[mmroff(1)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown)\[_mmroff_(1)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown)]8;;\.

       **PS     **Picture start; see ]8;;man:[pic(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)\[_pic_(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)]8;;\.

       **PY     **Picture  end  with flyback.  Ends a ]8;;man:[pic(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)\[_pic_(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)]8;;\ picture, returning the vertical position to
              where it was prior to the picture.  This is a GNU extension.

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

       **RB **[_roman-text_ [_bold-text_]] ...
              Join  _roman-text_  in roman style with _bold-text_ in boldface, without space between the
              arguments.

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

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

       **RI **[_roman-text_ [_italic-text_]] ...
              Join _roman-text_ in roman style with _italic-text_ in italics, without space between  the
              arguments.

       **RL **[_text-indent_ [**1**]]
              Begin  reference  list.   Each item is preceded by an automatically incremented number
              between square brackets; compare **AL**.  _text-indent_  changes  the  default  indentation.
              Use  **LI **to declare list items, and **LE **to end the list.  A second argument, convention‐
              ally **1**, suppresses the blank line that normally precedes each list item.

       **RP **[_suppress-counter-reset_ [_page-ejection-policy_]]
              Format a reference page, listing items accumulated within **RS**/**RF **pairs.  The  reference
              counter  is  reset unless the first argument is **1**.  Normally, page breaks occur before
              and after the references are output; the register **Rpe **configures this behavior, and  a
              second argument overrides its value.  **TC **calls **RP **automatically if references have ac‐
              cumulated.

              References are list items, and thus are vertically separated (see **LB**).  Setting regis‐
              ter  **Ls  **to **0 **suppresses this spacing.  The string **Rp **contains the reference page cap‐
              tion.

       **RS **[_reference-string_]
              Begin an automatically numbered reference definition.  By default, references are num‐
              bered starting at 1; the number is available in register **:R**.  Interpolate  the  string
              **Rf  **where the reference mark should be and write the reference between **RS**/**RF **on an in‐
              put line after the reference mark.  If _reference-string_ is specified,  _groff_  _ms_  also
              stores  the  reference  mark  in  a  string of that name, which can be interpolated as
              **\*[_**reference-string_**] **subsequently.

       **S **[_type-size_ [_vertical-spacing_]]
              Set type size and vertical spacing.  Each argument is a _groff_  measurement,  using  an
              appropriate  scaling  unit and an optional **+ **or **- **prefix to increment or decrement the
              current value.  An argument of **P **restores the previous value, **C **indicates the  current
              value, and **D **requests the default.  An empty or omitted argument is treated as **P**.

       **SA **[_mode_]
              Set  or restore the default enablement of adjustment.  Specify **0 **or **1 **as _mode_ to set a
              document's default explicitly; **1 **is assumed by _mm_.  Adjustment can be temporarily sus‐
              pended with the **na **request.  When the **H **or **HU **macros are used to format a heading,  or
              when **SA **is called without a _mode_ argument, the default adjustment is restored.

       **SETR _**refname_ [_string_]
              Remember  the  current heading and page numbers as _refname_.  Saves _string_ if _string_ is
              defined.  _string_ is retrieved with **GETST**.  See **INITR**.

       **SG **[_arg_ [**1**]]
              Signature line.  Prints the authors name(s) after the formal closing.  The argument is
              appended to the reference data, printed at either the first or last author.  The  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 section
              “Internals” below.

       **SK **[_n_] Skip _n_ pages.  If _n_ is 0 or omitted, the page is broken unless the drawing position is
              already  at  the  top of a page.  Otherwise, _n_ pages, blank except for any headers and
              footers, are printed.

       **SM _**text_ [_post_]
       **SM _**pre_ _text_ _post_
              Format _text_ at a smaller type size, joined with any specified _pre_ and _post_  at  normal
              size.

       **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 tab stops to every 5 ens.

       **TB **[_title_ [_override_ [_flag_ [_refname_]]]]
              Caption a table.  Arguments are handled analogously to **EC**.  The register **Tb **is the ta‐
              ble counter.  The string **Litb **precedes the table number and any _title._  Table captions
              are centered irrespective of the alignment of any enclosing display.

              Captioned tables are listed in a table of contents (see **TC**) if the Boolean register **Lt**
              is true.  Such a list uses the string **Lt **as a heading.

       **TC **[_slevel_ [_spacing_ [_tlevel_ [_tab_ [_h1_ [_h2_ [_h3_ [_h4_ [_h5_]]]]]]]]]
              Output table of contents.  This macro is normally the last called in the document.  It
              flushes any pending displays and, if any references are pending (see  **RS**),  calls  **RP**.
              It  then begins a new page with the contents caption, stored in the string **Licon**, cen‐
              tered at the top.  The entries follow after three vees of  space.   Each  entry  is  a
              saved section (number and) heading title (see the **Cl **register), along with its associ‐
              ated  page number.  By default, an entry is indented by an amount corresponding to its
              heading level and the maximum heading length encountered at that heading level; if de‐
              fined, the string **Ci **overrides these indentations.  Entries at heading  levels  up  to
              and including _slevel_ are preceded by _spacing_ vees of space.  Entries at heading levels
              up  to  and including _tlevel_ are followed by a leader and a right-aligned page number.
              If the Boolean-valued _tab_ argument is true, the leader is replaced with horizontal mo‐
              tion in the same amount.  For entries above heading level _tlevel_, the page number fol‐
              lows the heading text after a word space.  Each argument _h1_..._h5_ appears in  order  on
              its  own line, centered, above the contents caption.  Page numbering restarts at 1, in
              register format “i”.  If the **Oc **register is true, numbering of  these  pages  is  sup‐
              pressed.

              If  **TC  **is  called with at most four arguments, it calls the user-defined macro **TX **(if
              defined) prior to formatting the contents caption, and **TY **(if defined) _instead_ of for‐
              matting the contents caption.

              Analogous handling of lists of figures, tables, equations, and exhibits is achieved by
              defining **TX_**xx_ and **TY_**xx_ macros, where _xx_ is “FG”, “TB”, “EC”,  or  “EX”,  respectively.
              Similarly, the strings **Lifg**, **Litb**, **Liex**, and **Liec **determine captions for their respec‐
              tive lists.

       **TE     **Table end.  See **TS**.

       **TH     **End  table  heading.  It is repeated after page breaks within a table.  See **TS**.  The **N**
              argument supported by DWB _mm_ is not implemented by _groff_ _mm._

       **TL **[_charging-case-number_ [_filing-case-number_]]
              Begin document title.  Input is collected into the title until **AF **or **AU **is called, and
              output as directed by the cover page.  _charging-case-number_ and _filing-case-number_ are
              saved for use in memorandum types 0 and 5.  See **MT**.

       **TM _**number_ ...
              Declare technical memorandum number(s) used by **MT**.

       **TP     **If defined, this macro is called in lieu of normal page header  layout.   Headers  and
              footers are formatted in a separate environment.  See **EOP**.

              **Strings available to TP**
              ────────────────────────
              **TPh     **argument to **PH**
              **TPeh    **argument to **EH**
              **TPoh    **argument to **OH**

       **TS **[**H**] Table  start.   Argument  “H”  tells _mm_ that the table has a heading.  See **TE**, **TH**, and
              ]8;;man:[tbl(1)](https://www.chedong.com/phpMan.php/man/tbl/1/markdown)\[_tbl_(1)](https://www.chedong.com/phpMan.php/man/tbl/1/markdown)]8;;\.

       **VERBON **[_format_ [_type-size_ [_font_]]]
              Begin verbatim display, where characters have equal width.   _format_  controls  several
              parameters.   Add up the values of desired features; the default is **0**.  On typesetting
              devices, further arguments configure the _type-size_ in  scaled  points,  and  the  face
              (_font_); the default is **CR **(Courier roman).

              **Value   Effect**
              1       Disable the formatter's escape character (\).
              2       Vertically space before the display.
              4       Vertically space after the display.
              8       Number  output  lines;  call  formatter's  **nm **request with arguments in string
                      **Verbnm**.
              16      Indent by the amount stored in register **Verbin**.

       **VERBOFF**
              End verbatim display.

       **VL **[_text-indent_ [_mark-indent_ [**1**]]]
              Begin variable-item (or “tagged”) list.  Each item should supply its own mark, or tag.
              If the mark is wider than _mark-indent,_ one space separates it  from  subsequent  text;
              contrast  **BVL**.  _text-indent_ sets the indentation of the text, and _mark-indent_ the dis‐
              tance from the current list indentation to the mark.  A third argument suppresses  the
              blank  line  that normally precedes each list item.  Use **LI **to declare list items, and
              **LE **to end the list.

       **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.  This undocumented DWB _mm_ macro is  ex‐
              posed by _groff_ _mm_ to increase user control of page layout.

       **WA **[_writer's-name_ [_title_]]
              Specify  the  writer(s) of an **LT **letter.  Input is collected into the writer's address
              until **WA **is called, and then output.  You can  specify  multiple  writers  with  empty
              **WA**/**WE **pairs; only the last address is used.  The arguments give each writer a name and
              title.

       **WC **[_format_ ...]
              Control width of footnotes and displays.

              _**format_   Effect**
              **N        **equivalent to “**-WF -FF -WD**” (default)
              **WF       **set footnotes at full line length, even in two-column mode
              **-WF      **set footnotes using column line length
              **FF       **apply width of first footnote to encountered to subsequent ones
              **-FF      **footnote width determined by **WF **and **-WF**
              **WD       **set displays at full line length, even in two-column mode
              **-WD      **set displays using column line length

       **WE     **End the writer's address begun with **WA**.

## Strings
       Many  _mm_  strings interpolate predefined, localizable text.  These are presented in quotation
       marks.

       **App    **“APPENDIX”

       **Apptxt **stores the _title_ argument to the last **APP **call.

       **BU     **interpolates a bullet (see **BL**).

       **Ci     **is a list of indentation amounts to use for table of contents heading levels, overrid‐
              ing their automatic computation.  Each word must be  a  horizontal  measurement  (like
              “**1i**”) and is mapped one-to-one to heading levels 1, 2, and so on.

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

       **EM     **interpolates an em dash.

       **F      **interpolates an automatically numbered footnote marker; the number is used by the next
              **FS **call without an argument.  In _troff_ mode, the marker  is  superscripted;  in  _nroff_
              mode, it is surrounded by square brackets.

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

       **HF     **assigns font identifiers, separated by spaces, to heading levels in one-to-one  corre‐
              spondence.  Each identifier may be a font mounting position, font name, or style name.
              Omitted  values  are  assumed  to be 1.  The default is “**2 2 2 2 2 2 2 2 2 2 2 2 2 2**”,
              which places all headings in italics.  DWB _mm_'s default was “**3 3 2 2 2 2 2**”.

       **HP     **assigns type sizes, separated by spaces, to heading levels  in  one-to-one  correspon‐
              dence.   Each  size is interpreted in scaled points; zero values are translated to **10**.
              Omitted values are assumed to be 0 (and are translated accordingly).  The  default  is
              “**0 0 0 0 0 0 0 0 0 0 0 0 0 0**”.

       **Index  **“INDEX”

       **Le     **“LIST OF EQUATIONS”

       **Letfc  **“Yours very truly,” (see **FC**)

       **Letapp **“APPROVED:” (see **AV**)

       **LetAT  **“ATTENTION:” (see **LO**)

       **LetCN  **“CONFIDENTIAL” (see **LO**)

### Letdate
              “Date” (see **AV**)

       **Letns  **is  a group of strings structuring the notations produced by **NS**.  If the _code_ argument
              to **NS **has no corresponding string, the notation is included between parentheses,  pre‐
              fixed  with  **Letns!copy**,  and suffixed with **Letns!to**.  Observe the spaces after “Copy”
              and before “to”.

              **NS code   String       Contents**
              0         Letns!0      Copy to
              1         Letns!1      Copy (with att.) to
              2         Letns!2      Copy (without att.) to
              3         Letns!3      Att.
              4         Letns!4      Atts.
              5         Letns!5      Enc.
              6         Letns!6      Encs.
              7         Letns!7      Under separate cover
              8         Letns!8      Letter to
              9         Letns!9      Memorandum to
              10        Letns!10     Copy (with atts.) to
              11        Letns!11     Copy (without atts.) to
              12        Letns!12     Abstract Only to
              13        Letns!13     Complete Memorandum to
              14        Letns!14     CC
              —         Letns!copy   Copy _(with_ _trailing_ _space)_
              —         Letns!to      to _(note_ _leading_ _space)_

### Letnsdef
              Select the notation format used by **NS **when it is given no argument.   The  default  is
              “**0**”.

       **LetRN  **“In reference to:” (see **LO**)

       **LetSA  **“To Whom It May Concern:” (see **LO**)

       **LetSJ  **“SUBJECT:” (see **LO**)

       **Lf     **“LIST OF FIGURES”

       **Licon  **“CONTENTS”

       **Liec   **“Equation”

       **Liex   **“Exhibit”

       **Lifg   **“Figure”

       **Litb   **“TABLE”

       **Lt     **“LIST OF TABLES”

       **Lx     **“LIST OF EXHIBITS”

       **MO1**...**MO12**
              “January” through “December”

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

       **Rf     **interpolates  an automatically numbered reference mark; the number is used by the next
              **RS **call.  In _troff_ mode, the marker is superscripted; in _nroff_ mode, it is  surrounded
              by square brackets.

       **Rp     **“REFERENCES”

       **Sm     **interpolates ℠, the service mark sign.

       **Tcst   **interpolates  an  indicator of the **TC **macro's processing status.  If **TC **is not operat‐
              ing, it is empty.  User-defined **TP **or **EOP **macros might condition page headers or foot‐
              ers on its contents.

              **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     **interpolates ™, the trade mark sign.

       **Verbnm **supplies argument(s) to the **nm **request employed by  the  **VERBON  **macro.   The  default
              is “1”.

## Registers
       Default register values, where meaningful, are shown in parentheses.  Many are also marked as
       Boolean-valued,  meaning that they are considered “true” (on, enabled) when they have a posi‐
       tive value, and “false” (off, disabled) otherwise.

       **.mgm   **indicates that _groff_ _mm_ is in use (Boolean-valued; **1**).

       **:p     **is an auto-incrementing footnote counter; see **FS**.

       **:R     **is an auto-incrementing reference counter; see **RS**.

       **Aph    **formats an appendix heading (and title, if supplied); see **APP **(Boolean-valued; **1**).

       **Au     **includes supplemental author information (the third and subsequent arguments to **AU**) in
              memorandum “from” information; see **COVER **and **MT **(Boolean-valued; **1**).

       **Cl     **sets the threshold for inclusion of headings in a table of contents.  Headings at lev‐
              els above this value are excluded; see **H **and **TC **(**2**).  The **Cl **register controls whether
              a heading is _saved_ for output in the table of contents at the time **H **or **HU **is  called;
              if  you change **Cl**'s value immediately prior to calling **TC**, you are unlikely to get the
              result you want.

       **Cp     **suppresses page breaks before lists of captioned equations, exhibits, figures, and ta‐
              bles, and before an index; see **EC**, **EX**, **FG**, **TB**, and **INDP **(Boolean-valued; **0**).

       **D      **produces debugging information for the _mm_ package on the  standard  error  stream.   A
              value  of 0 outputs nothing; 1 reports formatting progress.  Higher values communicate
              internal state information of increasing verbosity (**0**).

       **De     **causes a page break after a floating display is output; see **DF **(Boolean-valued; **0**).

       **Df     **configures the behavior of **DF**.  The following values are recognized; 4 and  5  do  not
              override the **De **register (**5**).

              **Value   Effect**
              0       Flush  pending displays at the end of each section when section-page numbering
                      is active, otherwise at the end of the document.
              1       Flush a pending display on the current page  or  column  if  there  is  enough
                      space, otherwise at the end of the document.
              2       Flush one pending display at the top of each page or column.
              3       Flush  a  pending  display  on  the  current page or column if there is enough
                      space, otherwise at the top of the next.
              4       Flush as many pending displays as possible in a new page or column.
              5       Fill columns or pages with flushed displays until none remain.

       **Ds     **puts vertical space in the amount of register **Dsp **(if defined) or **Lsp **before and after
              each static display; see **DS **(Boolean-valued; **1**).

       **Dsp    **configures the amount of vertical space placed before and after static  displays;  see
              **DS **and register **Ds **(_undefined_).

       **Ec     **is an auto-incrementing equation counter; see **EC**.

       **Ej     **sets  the threshold for page breaks (ejection) prior to the format of headings.  Head‐
              ings at levels above this value are set on the same page and column if possible; see **H**
              (**0**).

       **Eq     **aligns an equation label to the left of a display instead of the  right  (Boolean-val‐
              ued; **0**).

       **Ex     **is an auto-incrementing exhibit counter; see **EX**.

       **Fg     **is an auto-incrementing figure counter; see **FG**.

       **Fs     **is multiplied by register **Lsp **to vertically separate footnotes; see **FS **(**1**).

       **H1**...**H14**
              are auto-incrementing counters corresponding to each heading level; see **H**.

       **H1dot  **appends a period to the number of a level one heading; see **H **(Boolean-valued; **1**).

       **H1h    **is  a copy of A copy of register register **H1**, but it is incremented just before a page
              break.  This can be useful in user-defined macros; see **H **and **HX**.

       **Hb     **sets the threshold for breaking the line after formatting a heading.  Text after head‐
              ings at levels above this value are set on the same output line  if  possible;  see  **H**
              (**2**).

       **Hc     **sets  the  threshold for centering a heading.  Headings at levels above this value use
              the prevailing alignment (that is, they are not centered); see **H **(**0**).

       **Hi     **configures the indentation of text after headings.  It does not affect “run-in”  head‐
              ings.  The following values are recognized; see **H **and **P **(**1**).

              **Value   Effect**
              0       no indentation
              1       indent per the paragraph type
              2       indent to align with heading title

       **Hps    **sets  the  heading level threshold for application of preceding vertical space; see **H**.
              Headings at levels above the value in register **Hps **use the amount of space in register
              **Hps1**; otherwise that in **Hps2**.  The value of **Hps **should be strictly greater  than  that
              of **Ej **(**1**).

       **Hps1   **configures  the  amount of vertical space preceding a heading above the **Hps **threshold;
              see **H **(_troff_ devices: **0.5v**; _nroff_ devices: **1v**).

       **Hps2   **configures the amount of vertical space preceding  a  heading  at  or  below  the  **Hps**
              threshold; see **H **(_troff_ devices: **1v**; _nroff_ devices: **2v**).

       **Hs     **sets the heading level threshold for application of succeeding vertical space.  If the
              heading  level  is  greater  than **Hs**, the heading is followed by vertical space in the
              amount of register **Hss**; see **H **(**2**).

       **Hss    **is multiplied by register **Lsp **to produce  vertical  space  after  headings  above  the
              threshold in register **Hs**; see **H **(**1**).

       **Ht     **suppresses  output of heading level counters above the lowest when the heading is for‐
              matted; see **H **(Boolean-valued; **0**).

       **Hu     **sets the heading level used by unnumbered headings; see **HU **(**2**).

       **Hy     **enables automatic hyphenation of words (Boolean-valued; **0**).

       **Iso    **configures the use of ISO 8601 date format if specified (with any value) on  the  com‐
              mand line; see **ISODATE**.  The default is determined by localization files.

       **L      **defines  the  page  length for the document, and must be set from the command line.  A
              scaling unit should be appended.  The default is that of the selected _groff_ output de‐
              vice.

       **Le**
       **Lf**
       **Lt**
       **Lx     **configure the report of lists of equation, figure, table, and  exhibit  captions,  re‐
              spectively, after a table of contents; see **TC **(Boolean-valued; **Le**: **0**; **Lf**, **Lt**, **Lx**: **1**).

       **Letwam **sets  the maximum number of input lines permitted in a writer's address; see **WA **and **WE**
              (**14**).

       **Li     **configures the amount of indentation in ens applied to list items; see **LI **(**6**).

       **Limsp  **inserts a space between the prefix and the mark in automatically numbered  lists;  see
              **AL **(Boolean-valued; **1**).

       **Ls     **sets a threshold for placement of vertical space before list items.  If the list nest‐
              ing level is greater than this value, no such spacing occurs; see **LI **(**99**).

       **Lsp    **configures  the base amount of vertical space used for separation in the document.  _mm_
              applies this spacing to many contexts, sometimes with multipliers; see **DS**, **FS**, **H**,  **LI**,
              and **P **(_troff_ devices: **0.5v**; _nroff_ devices: **1v**).

       **N      **configures  the header and footer placements used by **PH**.  The default footer is empty.
              If “section-page” numbering is selected, the default header becomes empty and the  de‐
              fault  footer  becomes “_x_-_y_”, where _x_ is is the section number (the number of the cur‐
              rent first-level heading) and _y_ the page number within  the  section.   The  following
              values  are  recognized; for finer control, see **PH**, **PF**, **EH**, **EF**, **OH**, and **OF**, and regis‐
              ters **Sectf **and **Sectp**.  Value 5 is a GNU extension (**0**).

              **Value   Effect**
              0       Set header on all pages.
              1       Move header to footer on page 1.
              2       Omit header on page 1.
              3       Use “section-page” numbering style on all pages.
              4       Omit header on all pages.
              5       Use “section-page” and “section-figure” numbering style on all pages.

       **Np     **causes paragraphs after first-level headings (only) to be numbered in the format  _s_._p_,
              where  _s_  is is the section number (the number of the current first-level heading) and
              _p_ is the paragraph number, starting at 1; see **H **and **P **(Boolean-valued; **0**).

       **O      **defines the page offset of the document, and must be set from  the  command  line.   A
              scaling  unit  should be appended.  The default is **.75i **on terminal devices.  On type‐
              setters, it is **.963i **or set to **1i **by the _papersize.tmac_ package; see ]8;;man:[groff_tmac(5)](https://www.chedong.com/phpMan.php/man/grofftmac/5/markdown)\[_groff_tmac_(5)](https://www.chedong.com/phpMan.php/man/grofftmac/5/markdown)]8;;\.

       **Oc     **suppresses the appearance of page numbers in the table of contents; see  **TC  **(Boolean-
              valued; **0**).

       **Of     **selects  a  separator format within equation, exhibit, figure, and table captions; see
              **EC**, **EX**, **FG**, and **TB**.  The following values are recognized; the spaces shown are unpadd‐
              able (**0**).

              **Value   Effect**
              0       ".  "
              1       " — "

       **P      **interpolates the current page number; it is the same as register **% **except  when  “sec‐
              tion-page” numbering is enabled.

       **Pi     **configures  the amount of indentation in ens applied to the first line of a paragraph;
              see **P **(**5**).

       **Pgps   **causes the type size and vertical spacing set by **S **to apply to  headers  and  footers,
              overriding  the  **HP  **string.  If not set, **S **calls affect headers and footers only when
              followed by **PH**, **PF**, **OH**, **EH**, **OF**, or **OE **calls (Boolean-valued; **1**).

       **Ps     **is multiplied by register **Lsp **to vertically separate paragraphs; see **P **(**1**).

       **Pt     **determines when a first-line indentation is applied to a paragraph; see **P **(**0**).

              **Value   Effect**
              0       never
              1       always
              2       always, except immediately after **H**, **DE**, or **LE**

       **Ref    **is used internally to control ]8;;man:[mmroff(1)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown)\[_mmroff_(1)](https://www.chedong.com/phpMan.php/man/mmroff/1/markdown)]8;;\'s two-pass approach  to  index  and  reference
              management; see **INITI **and **RS **(Boolean-valued; **0**).

       **Rpe    **configures the default page ejection policy for reference pages; see **RP **(**0**).

              **Value   Effect**
              0       Break the page before and after the list of references.
              1       Suppress page break after the list.
              2       Suppress page break before the list.
              3       Suppress page breaks before and after the list.

       **S      **defines  the  type  size  for  the document, and must be set from the command line.  A
              scaling unit should be appended; **p **is typical (**10p**).

       **Sectf  **selects the “section-figure” numbering style.  Its default is **0 **unless register  **N  **is
              set to **5 **at the command line (Boolean-valued).

       **Sectp  **selects the “section-page” numbering style.  Its default is **0 **unless register **N **is set
              to **3 **or **5 **at the command line (Boolean-valued).

       **Si     **configures the amount of display indentation in ens; see **DS **(**5**).

       **Tb     **is an auto-incrementing table counter; see **TB**.

       **V      **defines  the vertical spacing for the document, and must be set from the command line.
              A scaling unit should be appended; **p **is typical.  The default vertical spacing is 120%
              of the type size.

       **Verbin **configures the amount of indentation for verbatim displays  when  indentation  is  se‐
              lected; see **VERBON **(**5n**).

       **W      **defines the “width” of the document (that is, the length of an output line with no in‐
              dentation);  it must be set from the command line.  A scaling unit should be appended.
              The default is **6i **or assigned by the _papersize.tmac_ package; see ]8;;man:[groff_tmac(5)](https://www.chedong.com/phpMan.php/man/grofftmac/5/markdown)\[_groff_tmac_(5)](https://www.chedong.com/phpMan.php/man/grofftmac/5/markdown)]8;;\.

## Internals
       The **LT **letter macros call further macros depending on the letter type, with  which  they  are
       suffixed.   It  is therefore possible to define additional letter types, either in the terri‐
       tory-specific macro file, or as local additions.  **LT **sets the registers **Pt **and **Pi **to 0 and 5,
       respectively.  The following macros must be defined to support a new letter type.

       **let@init__**type_
              **LT **calls this macro to initialize any registers and other data needed  by  the  letter
              type.

       **let@head__**type_
              formats the letterhead; it is called instead of the usual page header macro.  Its def‐
              inition  should remove the alias **let@header **unless the letterhead is desired on subse‐
              quent pages.

       **let@sg__**type_ _name_ _title_ _n_ _is-final_ [_SG-arg_ ...]
              **SG **calls this macro only for letters; **MT **memoranda have their own  signature  process‐
              ing.   _name_  and _title_ are specified through **WA**/**WE**.  _n_ is the index of the _n_th writer,
              and _is-final_ is true for the last writer to be listed.  Further **SG **arguments  are  ap‐
              pended to the signature line.

       **let@fc__**type_ _closing_
              This macro is called by **FC**, and has the formal closing as the argument.

       **LO **implements letter options.  It requires that a string named **Let_**type_ be defined, where _type_
       is the letter type.  **LO **then assigns its second argument (_value_) to the string **let*lo-_**type_.

## Files
       _/usr/share/groff/1.23.0/tmac/m.tmac_
              is the _groff_ implementation of the memorandum macros.

       _/usr/share/groff/1.23.0/tmac/mm.tmac_
              is wrapper to load _m.tmac_.

       _/usr/share/groff/1.23.0/tmac/refer-mm.tmac_
              implements ]8;;man:[refer(1)](https://www.chedong.com/phpMan.php/man/refer/1/markdown)\[_refer_(1)](https://www.chedong.com/phpMan.php/man/refer/1/markdown)]8;;\ support for _mm_.

       _/usr/share/groff/1.23.0/tmac/mm/ms.cov_
              implements an _ms_-like cover sheet.

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

       _/usr/share/groff/1.23.0/tmac/mm/4.MT_
              implements memorandum type 4.

       _/usr/share/groff/1.23.0/tmac/mm/5.MT_
              implements memorandum type 5.

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

## Authors
       The GNU version of the _mm_ macro package was written by ]8;;mailto:<jh@axis.se>\Jörgen Hägg]8;;\ of Lund, Sweden.

**See also**
       ]8;;<https://tkurtbond.github.io/troff/mm-all.pdf>\_MM_ _-_ _A_ _Macro_ _Package_ _for_ _Generating_ _Documents_]8;;\,  the DWB 3.3 _mm_ manual, introduces the package
       but does not document GNU extensions.

       _Groff:_ _The_ _GNU_ _Implementation_ _of_ _troff_, by Trent A. Fisher and Werner Lemberg, is the primary
       _groff_ manual.  You can browse it interactively with “info groff”.

       ]8;;man:[groff(1)](https://www.chedong.com/phpMan.php/man/groff/1/markdown)\[_groff_(1)](https://www.chedong.com/phpMan.php/man/groff/1/markdown)]8;;\, ]8;;man:[troff(1)](https://www.chedong.com/phpMan.php/man/troff/1/markdown)\[_troff_(1)](https://www.chedong.com/phpMan.php/man/troff/1/markdown)]8;;\, ]8;;man:[tbl(1)](https://www.chedong.com/phpMan.php/man/tbl/1/markdown)\[_tbl_(1)](https://www.chedong.com/phpMan.php/man/tbl/1/markdown)]8;;\, ]8;;man:[pic(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)\[_pic_(1)](https://www.chedong.com/phpMan.php/man/pic/1/markdown)]8;;\, ]8;;man:[eqn(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown)\[_eqn_(1)](https://www.chedong.com/phpMan.php/man/eqn/1/markdown)]8;;\, ]8;;man:[refer(1)](https://www.chedong.com/phpMan.php/man/refer/1/markdown)\[_refer_(1)](https://www.chedong.com/phpMan.php/man/refer/1/markdown)]8;;\, ]8;;man:[groff_mmse(7)](https://www.chedong.com/phpMan.php/man/groffmmse/7/markdown)\[_groff_mmse_(7)](https://www.chedong.com/phpMan.php/man/groffmmse/7/markdown)]8;;\ (only in Swedish locales)

groff 1.23.0                                31 March 2024                                [_groff_mm_(7)](https://www.chedong.com/phpMan.php/man/groffmm/7/markdown)
