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)