Provided by: groff_1.23.0-5_amd64 bug

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
       system.  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
       document 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
       Documenter'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 markings) 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
       explicitly  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 others.

   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  mechanism 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  existing  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 automatically modified by i prior to interpolation if a plus or minus sign
       is included in the escape sequence as follows.

              \n[±][ident]

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

       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 refer(1) integration macros
       explicitly request fonts named B, I, and R, you will also need to remap these  font  names
       with the ftr request, for instance with “.ftr I ZCMI”.

Macros

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

              .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
              argument assigns the register format (see above) of the list item enumerators.  The
              default  is 1.  An explicitly empty type also indicates the default.  A text-indent
              argument 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
              initialized,  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 heading 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
              diagrams 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
                          “released paper” memorandum (“.MT 4”); otherwise, it appears on page  1
                          without 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
              signature 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,
              telephone 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
              arguments.

       BL [text-indent [1]]
              Begin  bulleted list.  Items are prefixed with a bullet and a space.  A text-indent
              argument 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
              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.

       COVER [style]
              Begin  a  cover  page description.  COVER must appear before the body text (or main
              matter) 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
              order 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
              argument 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
              display 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
              automatically   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
              refname”.  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 eqn(1); 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  eqn(1).  EQ and EN macro calls bracket an
              equation region.  Such regions must be contained in displays (DS/DE),  except  when
              the  region  is  used only to configure eqn and not to produce output.  If present,
              label appears 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  register  :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
              explicitly.  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 included 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
              register 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 produced; paragraph text follows on the same  output  line.   Otherwise,
              register  Hi configures the indentation of text after headings.  Threshold register
              Hc enables the centering of headings; a heading level below both of the Hb  and  Hc
              thresholds is centered.

              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 heading 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
                            contains 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 explicitly 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
              arguments.

       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
              predecessor  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
              location 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.
              mmroff(1) handles this and the two formatting passes it requires.  The  first  pass
              identifies cross references, 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 display 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.
              Otherwise, 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
              multiplied 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 automatically.

       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
              terminated  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
                       inside 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
                       notation (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
              begins  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
                      indented 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
              extension.  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 analogous 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, conventionally 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 pic(1).

       PF ["'left'center'right'"]
              Define the page footer.  The footer is formatted at the bottom of  each  page;  the
              argument 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
              letterheads  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
              defines 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.
              Optional width and height arguments resize the picture.  Use of this macro requires
              two-pass processing; see INITR and mmroff(1).

       PS     Picture start; see pic(1).

       PY     Picture end with flyback.  Ends a pic(1) 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,
              conventionally 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 accumulated.

              References  are  list  items,  and thus are vertically separated (see LB).  Setting
              register Ls to 0 suppresses this spacing.  The string  Rp  contains  the  reference
              page caption.

       RS [reference-string]
              Begin  an  automatically numbered reference definition.  By default, references are
              numbered 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 input 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
              suspended 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
              reference  data is the location, department, and initials specified with AU.  It is
              printed at the first author if the second argument is given, otherwise at the last.
              No  reference  data  is  printed  if the author(s) is specified through WA/WE.  See
              section “Internals” below.

       SK [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
              table  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, centered 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 associated page number.  By default, an entry is  indented  by  an  amount
              corresponding  to  its  heading level and the maximum heading length encountered at
              that heading level;  if  defined,  the  string  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  motion  in  the  same  amount.   For
              entries  above heading level tlevel, the page number follows 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 suppressed.

              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
              formatting the contents caption.

              Analogous handling of lists of figures, tables, equations, and exhibits is achieved
              by  defining  TXxx  and  TYxx  macros,  where  xx  is  “FG”,  “TB”,  “EC”, or “EX”,
              respectively.  Similarly, the strings Lifg, Litb, Liex, and Liec determine captions
              for their respective 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
              tbl(1).

       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  distance  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 exposed 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,
              overriding 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
              correspondence.   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
              correspondence.   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,  prefixed  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
              operating, it is empty.  User-defined TP or EOP macros might condition page headers
              or footers 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
       positive 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
              levels 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
              tables, 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.
              Headings  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-
              valued; 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
              headings  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”
              headings.  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
              formatted; 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
              command 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
              device.

       Le
       Lf
       Lt
       Lx     configure the report of lists of equation, figure,  table,  and  exhibit  captions,
              respectively,  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
              nesting 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 default footer becomes “x-y”, where x is is the section number (the number
              of the current 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 registers 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
              typesetters,  it  is  .963i  or  set  to  1i  by  the  papersize.tmac  package; see
              groff_tmac(5).

       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
              unpaddable (0).

              Value   Effect
              0       ".  "
              1       " — "

       P      interpolates  the  current  page  number;  it is the same as register % except when
              “section-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 mmroff(1)'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
              selected; see VERBON (5n).

       W      defines the “width” of the document (that is, the length of an output line with  no
              indentation);  it  must  be  set  from  the command line.  A scaling unit should be
              appended.  The default is  6i  or  assigned  by  the  papersize.tmac  package;  see
              groff_tmac(5).

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
       territory-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
              definition should remove the alias let@header unless the letterhead is  desired  on
              subsequent pages.

       let@sg_type name title n is-final [SG-arg ...]
              SG  calls  this  macro  only  for  letters;  MT  memoranda have their own signature
              processing.  name and title are specified through WA/WE.  n is the index of the nth
              writer,  and  is-final  is  true  for  the  last  writer  to be listed.  Further SG
              arguments are appended 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 Lettype 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 refer(1) 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 Jörgen Hägg ⟨jh@axis.se⟩  of  Lund,
       Sweden.

See also

       MM  -  A  Macro Package for Generating Documents ⟨https://tkurtbond.github.io/troff/mm-all
       .pdf⟩, 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”.

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