{
    "mode": "man",
    "parameter": "groff_mm",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/groff_mm/7/json",
    "generated": "2026-09-01T14:15:36Z",
    "sections": {
        "Name": {
            "content": "groffmm - memorandum macros for GNU roff\n",
            "subsections": []
        },
        "Synopsis": {
            "content": "groff -mm [option ...] [file ...]\ngroff -m mm [option ...] [file ...]\n",
            "subsections": []
        },
        "Description": {
            "content": "The  GNU implementation of the mm macro package is part of the groff document formatting sys‐\ntem.  The mm package is suitable for the composition  of  letters,  memoranda,  reports,  and\nbooks.\n\nCall an mm macro at the beginning of a document to initialize the package.  A simple mm docu‐\nment  might use only P for paragraphing.  Set numbered and unnumbered section headings with H\nand HU, respectively.  Change the style of the typeface with B, I, and R; you  can  alternate\nstyles  with  BI,  BR, IB, IR, RB, and RI.  Several nestable list types are available via AL,\nBL, BVL, DL, ML, RL, and VL; each of these begins a list, to which LI adds  an  item  and  LE\nends  the  (nested) list.  Customized list arrangements are supported by LB.  DS and DF start\nstatic and floating displays, respectively; either is terminated with DE.\n\ngroff mm is intended to be compatible with the mm implementation  found  in  the  AT&T  Docu‐\nmenter's Workbench (DWB), with the following limitations.\n\n• Omitted  features  include  the logo and company name strings, }Z and ]S, respectively; the\nencoded company site location addresses recognized as the third argument to the  AU  macro;\nthe Pv (“private” heading) register; and the OK (other keywords), and PM (proprietary mark‐\nings) macros.\n\n• The CS (output cover sheet) macro is implemented only for memorandum type 4.\n\n• The grap preprocessor is not explicitly supported; no G1 and G2 macros are defined.\n\n• The  registers  A, C, E, T, and U, typically set from the troff or nroff command lines with\nDWB mm, are not recognized.\n\n• When setting the registers L or W from the command line, use an explicit  scaling  unit  to\navoid surprises.\n\n• DWB mm's nP macro indented the second line of a paragraph to align it with the start of the\ntext of the first (after the paragraph number); groff mm's does not.\n\n• Cut marks are not supported.\n\nDWB  mm supported only seven levels of heading.  As a compatible extension, groff mm supports\nfourteen, introducing new registers H8 through H14, and affecting the interpretation  of  the\nHF and HP strings.\n\nMacro,  register,  and  string  descriptions in this page frequently mention each other; most\ncross references are to macros.  Where a register or string is referenced, its  type  is  ex‐\nplicitly  identified.   mm's  macro names are usually in full capitals; registers and strings\ntend to have mixed-case names.\n",
            "subsections": [
                {
                    "name": "Document styles",
                    "content": "groff mm offers three different frameworks for  document  organization.   COVER/COVEND  is  a\nflexible  means  of preparing any document requiring a cover page.  LT/LO aids preparation of\ntypical Anglophone correspondence (business letters, for example).  The  MT  memorandum  type\nmechanism  implements  a  group of formal styles historically used by AT&T Bell Laboratories.\nYour document can select at most one of these approaches; when used, each disables  the  oth‐\ners.\n"
                },
                {
                    "name": "Localization",
                    "content": "groff  mm is designed to be easily localized.  For languages other than English, strings that\ncan appear in output are collected in the file /usr/share/groff/1.23.0/tmac/xx.tmac, where xx\nis an ISO 639 two-letter language identifier.  Localization packages should be  loaded  after\nmm; for example, you might format a Swedish mm document with the command “groff -mm -msv”.\n\nThis  package  can  also  be  localized  by site or territory; for example, /usr/share/groff/\n1.23.0/tmac/mse.tmac illustrates how to adapt the output to a national standard using its ISO\n3166 territory code.  Such a package can define a string that causes a macro file /usr/share/\ngroff/1.23.0/tmac/mm/territorylocale to be loaded at package initialization.  If this mecha‐\nnism is not used, /usr/share/groff/1.23.0/tmac/mm/locale is loaded instead.  No diagnostic is\nproduced if these files do not exist.\n"
                },
                {
                    "name": "Registers and strings",
                    "content": "Much mm behavior can be configured by registers and strings.  A register is assigned with the\nnr request.\n\n.nr ident [±]n [i]\n\nident is the name of the register, and n is the value to be assigned.  n can be prefixed with\na plus or minus sign if incrementation or decrementation (respectively) of the register's ex‐\nisting value by n is desired.  If assignment of a (possibly) negative n is required,  further\nprefix it with a zero or enclose it in parentheses.  If i is specified, the register is auto‐\nmatically modified by i prior to interpolation if a plus or minus sign is included in the es‐\ncape sequence as follows.\n\n\\n[±][ident]\n\ni  can  be  negative; it combines algebraically with the sign in the interpolation escape se‐\nquence.\n\nStrings are defined with the ds request.\n\n.ds ident contents\n\ncontents consumes everything up to the end of the line, including trailing spaces.  It  is  a\ngood  practice  to end contents with a comment escape sequence (\\\") so that extraneous spaces\ndo not intrude during document maintenance.  To include leading spaces in contents, prefix it\nwith a double quote.  Strings are interpolated with the \\* escape sequence.\n\n\\*[ident]\n\nRegister and string name spaces are distinct, but strings and  macros  share  a  name  space.\nDefining  a string with the same name as an mm macro is not supported and may cause incorrect\nrendering, the emission of diagnostic messages, and an error exit status from troff.\n"
                },
                {
                    "name": "Register format",
                    "content": "A register is interpolated using Arabic numerals if no other format has been assigned to  it.\nAssign a format to a register with the af request.\n\n.af R c\n\nR  is  the name of the register, and c is the format.  If c is a sequence of Arabic numerals,\ntheir quantity defines a zero-padded minimum width for the interpolated register value.\n\nForm   Sequence\n1      0, 1, 2, 3, ..., 10, ...\n001    000, 001, 002, 003, ..., 1000, ...\ni      0, i, ii, iii, iv, ...\nI      0, I, II, III, IV, ...\na      0, a, b, c, ..., z, aa, ab, ...\nA      0, A, B, C, ..., Z, AA, AB, ...\n"
                },
                {
                    "name": "Fonts",
                    "content": "In groff mm, the fonts (or rather, font styles) R (roman),  I  (italic),  and  B  (bold)  are\nmounted at font positions 1, 2, and 3, respectively.  Internally, font positions are used for\nbackward  compatibility.   From a practical point of view, it doesn't make a big difference—a\ndifferent font family can still be selected by invoking groff's fam request or using  its  -f\ncommand-line  option.   On  the  other hand, if you want to replace just, for example, font I\nwith Zapf Chancery Medium italic (available on groff's pdf and ps output devices),  you  have\nto  use  the  fp  request,  replacing the font at position 2 with “.fp 2 ZCMI”).  Because the\ncover sheet, memorandum type, and \u001b]8;;man:refer(1)\u001b\\refer(1)\u001b]8;;\u001b\\ integration macros explicitly request fonts  named\nB,  I, and R, you will also need to remap these font names with the ftr request, for instance\nwith “.ftr I ZCMI”.\n"
                }
            ]
        },
        "Macros": {
            "content": "An explicitly empty argument may be specified with a pair of double quotes; to call  a  macro\nXX with an empty second argument but non-empty first and third ones, you could input the fol‐\nlowing.\n\n.XX foo \"\" baz\n\nMacro  names  longer than two characters are GNU extensions; some shorter names were not part\nof DWB mm's published interface but are documented aspects of groff mm.\n\n)E level text\nAdd heading text text to the table of contents with level, which is either 0 or in the\nrange 1 to 7.  See also H.  This undocumented DWB mm macro is exposed by groff  mm  to\nenable customized tables of contents.\n\n1C [1] Format  page  text  in  one column.  The page is broken.  A 1 argument suppresses this\nbreak; its use may cause body text and a pending footnote to overprint.  See  2C,  MC,\nand NCOL.\n\n2C     Begin two-column formatting.  This is a special case of MC.  See 1C and NCOL.\n\nAE     Abstract end; stop collecting abstract text.  See AS.\n\nAF [firm-name]\nSpecify firm associated with the document.  At most one can be declared; the firm name\nis  used  by memorandum types and available to cover sheets.  AF terminates a document\ntitle started with TL, and can be called without an argument for that purpose.  See MT\nand COVER.\n\nAL [type [text-indent [1]]]\nBegin an auto-incrementing numbered list.  Item numbers start at one.  The type  argu‐\nment  assigns  the  register format (see above) of the list item enumerators.  The de‐\nfault is 1.  An explicitly empty type also indicates the default.  A text-indent argu‐\nment overrides register Li.  A third argument suppresses the blank line that  normally\nprecedes each list item.  Use LI to declare list items, and LE to end the list.\n\nAPP [id [title]]\nBegin  an  appendix.   If the identifier id is omitted, it is incremented (or initial‐\nized, if necessary).  The register format used for id is “A”.   The  page  is  broken.\nThe register Aph determines whether an appendix heading is then formatted.  This head‐\ning  uses  the  string App followed by id.  Appendices appear in any table of contents\n(see TC).  The string Apptxt is set to title if the latter is present, and made  empty\notherwise.\n\nAPPSK id n [title]\nAs  APP, but increment the page number by n.  Use this macro to “skip pages” when dia‐\ngrams or other materials not formatted by troff are included in appendices.\n\nAS [placement [indentation]]\nAbstract start; begin collecting abstract.  Input up to the next AE call  is  included\nin the abstract.  placement influences the location of the abstract on the cover sheet\nof  a  memorandum (see MT).  COVER, by contrast, ignores placement by default, but can\nbe customized to interpret it.\n\nplacement   Effect\n0           The abstract appears on page 1 and cover sheet if the document is  a  “re‐\nleased  paper” memorandum (“.MT 4”); otherwise, it appears on page 1 with‐\nout a cover sheet.\n1           The abstract appears only on the cover sheet (“.MT 4” only).\n\nAn abstract does not appear at all in external letters (“.MT 5”).  A  placement  of  2\nwas supported by DWB mm but is not by groff mm.\n\nA second argument increases the indentation by indentation and reduces the line length\nby twice this amount.  A scaling unit of ens is assumed.  The default is 0.\n\nAST [caption]\nSet  the  caption  above the abstract to caption, or clear it if there is no argument.\nThe default is “ABSTRACT”.\n\nAT title ...\nSpecify author's title(s).  If present, AT must appear just  after  the  corresponding\nauthor's AU.  Each title occupies an output line beneath the author's name in the sig‐\nnature  block  used  by  LT  letters (see SG) and in MT memoranda.  The ms cover sheet\nstyle also uses it.\n\nAU [name [initials [loc [dept [ext [room [arg1 [arg2 [arg3]]]]]]]]]\nSpecify author.  AU terminates a document title started with TL,  and  can  be  called\nwithout  arguments  for  that purpose.  Author information is used by cover sheets, MT\nmemoranda, and SG.  Further arguments comprise initials, location,  department,  tele‐\nphone  extension, room number or name, and up to three additional items.  Repeat AU to\nidentify multiple authors.\n\nUse WA/WE instead to identify the author for documents employing LT.\n\nAV [name [1]]\nFormat approval lines for a handwritten signature and date.  Two horizontal rules  are\ndrawn, with the specified name and the text of the string Letdate beneath them.  Above\nthese  rules,  the  text in the string Letapp is formatted; a second argument replaces\nthis text with a blank line.  See LT.\n\nAVL [name]\nAs AV, but the date, date rule, and approval notation Letapp are omitted.\n\nB [bold-text [previous-font-text]] ...\nJoin bold-text in boldface with previous-font-text in the previous font, without space\nbetween the arguments.  If no arguments, switch font to bold style.\n\nB1     Begin boxed, kept display.  The text is indented one character, and the  right  margin\nis one character shorter.  This is a GNU extension.\n\nB2     End boxed, kept display.  This is a GNU extension.\n\nBE     End bottom block; see BS.\n\nBI [bold-text [italic-text]] ...\nJoin  bold-text in boldface with italic-text in italics, without space between the ar‐\nguments.\n\nBL [text-indent [1]]\nBegin bulleted list.  Items are prefixed with a bullet and a space.  A text-indent ar‐\ngument overrides register Pi.  A second argument suppresses blank lines between items.\nUse LI to declare list items, and LE to end the list.\n\nBR [bold-text [roman-text]] ...\nJoin bold-text in boldface with roman-text in roman style, without space  between  the\narguments.\n\nBS     Begin  bottom  block.   Input  is collected until BE is called, and output between the\nfootnote area and footer of each page.\n\nBVL [text-indent [mark-indent [1]]]\nBegin broken variable-item (or “tagged”) list.  Each item is expected  to  supply  its\nown  mark.   The  line is always broken after the mark; contrast VL.  text-indent sets\nthe indentation of the text, and mark-indent the distance from the current list inden‐\ntation to the mark.  A third argument suppresses the blank line that normally precedes\neach list item.  Use LI to declare list items, and LE to end the list.\n\nCOVER [style]\nBegin a cover page description.  COVER must appear before the body text (or main  mat‐\nter) of a document.  The argument style is used to construct the file name /usr/share/\ngroff/1.23.0/tmac/mm/style.cov and load it with the mso request.  The default style is\nms;  the ms.cov file prepares a cover page resembling those of the ms package.  A .cov\nfile must define a COVEND macro, which a document must call at the end  of  the  cover\ndescription.   Use cover description macros in the following order; only TL and AU are\nrequired.\n\n.COVER\n.TL\n.AF\n.AU\n.AT\n.AS\n.AE\n.COVEND\n\nCOVEND End the cover description.\n\nDE     End static or floating display begun with DS or DF.\n\nDF [format [fill [right-indentation]]]\nBegin floating display.  A floating display is saved in a queue and output in the  or‐\nder  entered.   Arguments  are  handled as in DS.  Floating displays cannot be nested.\nPlacement of floating displays is controlled by the registers De and Df.\n\nDL [text-indent [1]]\nBegin dashed list.  Items are prefixed with an em dash and a space.  A text-indent ar‐\ngument overrides register Pi.  A second argument suppresses blank lines between items.\nUse LI to declare list items, and LE to end the list.\n\nDS [format [fill [right-indentation]]]\nBegin static display.  Input until DE is called is collected into a display.  The dis‐\nplay is output on a single page unless it is taller than the height of the  page.   DS\ncan be nested (contrast with DF).\n\nformat   Effect\nnone     Do not indent the display.\nL        Do not indent the display.\nI        Indent text by \\n[Si].\nC        Center each line.\nCB       Center the whole display as a block.\nR        Right-adjust the lines.\nRB       Right-adjust the whole display as a block.\n\nThe  values  “L”,  “I”, “C”, and “CB” can also be specified as “0”, “1”, “2”, and “3”,\nrespectively, for compatibility with DWB mm.\n\nfill   Effect\nnone   Disable filling.\nN      Disable filling.\nF      Enable filling.\n\n“N” and “F” can also be specified as “0” and “1”, respectively, for compatibility with\nDWB mm.\n\nA third argument reduces the line length by right-indentation.\n\nmm normally places blank lines before and after the display.  Set register Ds to 0  to\nsuppress these.\n\nEC [title [override [flag [refname]]]]\nCaption an equation.  The caption consists of the string Liec followed by an automati‐\ncally  incrementing  counter  stored in the register Ec, punctuation configured by the\nregister Of, then title (if any).  Use the af request to configure Ec's number format.\noverride and flag alter the equation number as follows.  Omitting flag and  specifying\n0 in its place are equivalent.\n\nflag   Effect\n0      Prefix number with override.\n1      Suffix number with override.\n2      Replace number with override.\n\nEquation captions are centered irrespective of the alignment of any enclosing display.\n\nrefname  stores  the equation number using SETR; it can be retreived with “.GETST ref‐\nname”.  This argument is a GNU extension.\n\nCaptioned equations are listed in a table of contents (see TC) if the Boolean register\nLe is true.  Such a list uses the string Le as a heading.\n\nEF [\"'left'center'right'\"]\nDefine the even-page footer, which is formatted just above the normal page  footer  on\neven-numbered pages.  See PF.  EF defines the string EOPef.\n\nEH [\"'left'center'right'\"]\nDefine  the  even-page header, which is formatted just below the normal page header on\neven-numbered pages.  See PH.  EH defines the string TPeh.\n\nEN     End equation input preprocessed by \u001b]8;;man:eqn(1)\u001b\\eqn(1)\u001b]8;;\u001b\\; see EQ.\n\nEOP    If defined, this macro is called in lieu of normal page footer  layout.   Headers  and\nfooters are formatted in a separate environment.  See TP.\n\nStrings available to EOP\n─────────────────────────\nEOPf     argument to PF\nEOPef    argument to EF\nEOPof    argument to OF\n\nEPIC [-L] width height [name]\nDraw a box with the given width and height.  It also prints the text name or a default\nstring if name is not specified.  This is used to include external pictures; just give\nthe  size  of the picture.  -L left-aligns the picture; the default is to center.  See\nPIC.\n\nEQ [label]\nStart equation input preprocessed by \u001b]8;;man:eqn(1)\u001b\\eqn(1)\u001b]8;;\u001b\\.  EQ and EN macro calls bracket  an  equa‐\ntion  region.  Such regions must be contained in displays (DS/DE), except when the re‐\ngion is used only to configure eqn and not to produce output.  If present,  label  ap‐\npears  aligned  to  the right and centered vertically within the display; see register\nEq.  If multiple eqn regions occur within a display, only the last label (if  any)  is\nused.\n\nEX [title [override [flag [refname]]]]\nCaption  an exhibit.  Arguments are handled analogously to EC.  The register Ex is the\nexhibit counter.  The string Liex precedes the exhibit number and any title.   Exhibit\ncaptions are centered irrespective of the alignment of any enclosing display.\n\nCaptioned  exhibits are listed in a table of contents (see TC) if the Boolean register\nLx is true.  Such a list uses the string Lx as a heading.\n\nFC [closing-text]\nOutput the string Letfc, or the specified closing-text, as the  formal  closing  of  a\nletter.\n\nFD [arg [1]]\nConfigure  display  of  footnotes.  The first argument encodes enablement of automatic\nhyphenation, adjustment to the right margin, indentation of footnote text,  and  left-\nvs. right-alignment of the footnote label within the space allocated for it.\n\narg   Hyphenate?   Adjust?   Indent?   Label alignment\n0     no           yes       yes       left\n1     yes          yes       yes       left\n2     no           no        yes       left\n3     yes          no        yes       left\n4     no           yes       no        left\n5     yes          yes       no        left\n6     no           no        no        left\n7     yes          no        no        left\n8     no           yes       yes       right\n9     yes          yes       yes       right\n10    no           no        yes       right\n11    yes          no        yes       right\n\nAn arg greater than 11 is treated as 0.  mm's default is 0.\n\nIf  a  second argument, conventionally 1, is given, footnote numbering is reset when a\nfirst-level heading is encountered.  See FS.\n\nFE     End footnote; see FS.\n\nFG [title [override [flag [refname]]]]\nCaption a figure.  Arguments are handled analogously to EC.  The register  Fg  is  the\nfigure  counter.   The  string  Lifg precedes the figure number and any title.  Figure\ncaptions are centered irrespective of the alignment of any enclosing display.\n\nCaptioned figures are listed in a table of contents (see TC) if the  Boolean  register\nLf is true.  Such a list uses the string Lf as a heading.\n\nFS [label]\nStart  footnote.   Input until FE is called is collected into a footnote.  By default,\nfootnotes are automatically numbered starting at 1; the number is available in  regis‐\nter  :p  and,  with a trailing period, in string F.  This string precedes the footnote\ntext at the bottom of the column or page.  Footnotes are vertically separated  by  the\nproduct of registers Fs and Lsp.  In groff mm, footnotes may be used in displays.\n\nA  label  argument  replaces the contents of the string F; it need not be numeric.  In\nthis event, the footnote marker in the body text must be explicitly written.\n\nGETHN refname [varname]\nInclude the heading number where the corresponding “.SETR refname” was  placed.   This\nis  displayed  as  “X.X.X.” in pass 1.  See INITR.  If varname is used, GETHN sets the\nstring varname to the heading number.\n\nGETPN refname [varname]\nInclude the page number where the corresponding “.SETR refname” was placed.   This  is\ndisplayed  as “9999” in pass 1.  See INITR.  If varname is used, GETPN sets the string\nvarname to the page number.\n\nGETR refname\nCombine GETHN and GETPN with the text “chapter” and “, page”.  The string Qrf contains\nthe text for the cross reference:\n\n.ds Qrf See chapter \\\\*[Qrfh], page \\\\*[Qrfp].\n\nQrf may be changed to support other languages.  Strings Qrfh and Qrfp are set by  GETR\nand contain the page and heading number, respectively.\n\nGETST refname [varname]\nInclude the string saved with the second argument to .SETR.  This is a dummy string in\npass 1.  If varname is used, GETST sets it to the saved string.  See INITR.\n\nH level [title [suffix]]\nSet  a  numbered  section heading at level.  mm produces numbered heading marks of the\nform a.b.c..., with up to fourteen levels of nesting.  Each level's  number  increases\nautomatically  with  each H call and is reset to zero when a more significant level is\nspecified.  “1” is the most significant or coarsest division of  the  document.   Text\nafter an H call is formatted as a paragraph; calling P is unnecessary.\n\ntitle specifies an optional title; it must be double-quoted if it contains spaces.  mm\nappends  suffix  to  title in the body of the document, but omits it from any table of\ncontents (see TC).  This facility can be used to annotate the  heading  title  with  a\nfootnote.  suffix should not interpolate the F string; specify a footnote mark explic‐\nitly.  See FS.\n\nHeading  behavior  is  highly  configurable.  Several registers set a threshold, where\nheading levels at or below the threshold value are handled in one way, and those above\nit another.  For example, a heading level within the threshold of register Cl  is  in‐\ncluded in the table of contents (see TC).\n\nHeading  layout.  Register Ej sets a threshold for page breaking (ejection) prior to a\nheading.  If not preceded by a page break, a heading level below the threshold in reg‐\nister Hps is preceded by the amount of vertical space in register  Hps1,  and  by  the\namount in Hps2 otherwise.  The Hb register sets a threshold below which a break occurs\nafter the heading, and register Hs sets a threshold below which vertical space follows\nit.   If  the  heading  level is not less than both of these, a run-in heading is pro‐\nduced; paragraph text follows on the same output line.  Otherwise, register Hi config‐\nures the indentation of text after headings.  Threshold register Hc enables  the  cen‐\ntering  of  headings;  a  heading level below both of the Hb and Hc thresholds is cen‐\ntered.\n\nHeading typeface and size.  The fonts used for heading  numbers  and  titles  at  each\nlevel  are configured by the HF string.  The string HP likewise assigns a type size to\neach heading level.  The vertical spacing used by headings may be  controlled  by  the\nuser-definable macros HX and/or HZ.\n\nHeading number format.  Registers named H1 through H14 store counters for each heading\nlevel.   Their values are printed using Arabic numerals by default; see HM.  The head‐\ning levels are catenated with dots for formatting; to typeset only  the  deepest,  set\nthe  Ht  register.   Heading  numbers are not suffixed with a trailing dot except when\nonly the first level is output; to omit a dot in this case as well,  clear  the  H1dot\nregister.\n\nCustomizing heading behavior.  mm calls hook macros to enable further customization of\nheadings.   (DWB  mm  called these “exits”.)  They can be used to change the heading's\nmark (the numbered portion before any heading title), its vertical  spacing,  and  its\nvertical space requirements (for instance, to require a minimum quantity of subsequent\noutput  lines).   Define  hook macros in expectation of the following parameters.  The\nargument declared-level is the level argument to H, or 0 for unnumbered headings  (see\nHU).   actual-level is the same as declared-level for numbered headings, and the value\nof register Hu for unnumbered headings.  title is the corresponding argument to  H  or\nHU.\n\nHX declared-level actual-level title\nmm  calls HX before setting the heading.  Your definition may alter }0, }2, and\n;3.\n",
            "subsections": [
                {
                    "name": "}0 (string)",
                    "content": "contains the heading mark plus two spaces if declared-level is non-zero,\nand otherwise is empty.\n"
                },
                {
                    "name": ";0 (register)",
                    "content": "encodes a position for the text after the heading.   0  means  that  the\nheading  is  to  be  run in, 1 means that a break is to occur before the\ntext, and 2 means that vertical space is to separate heading and text.\n"
                },
                {
                    "name": "}2 (string)",
                    "content": "is the suffix that separates a run-in heading from the  text.   It  con‐\ntains two spaces if register ;0 is 0, and otherwise is empty.\n"
                },
                {
                    "name": ";3 (register)",
                    "content": "contains  the vertical space required for the heading to be typeset.  If\nthat amount is not available, the page is broken prior to  the  heading.\nThe default is 2v.\n\nHY declared-level actual-level title\nmm calls HY after determing the heading typeface and size.  It could be used to\nchange indentation.\n\nHZ declared-level actual-level title\nmm  calls  HZ  after  formatting  the heading, just before H or HU returns.  It\ncould be used to change the page header to include a section heading.\n\nHC [hyphenation-character]\nSet hyphenation character.  Default value is “\\%”.  Resets to the  default  if  called\nwithout  argument.   Hyphenation  can be turned off by setting register Hy to 0 at the\nbeginning of the file.\n\nHM [arg1 [arg2 [... [arg14]]]]\nSet the heading mark style.  Each argument assigns the specified register format  (see\nabove)  to  the corresponding heading level.  The default is 1 for all levels.  An ex‐\nplicitly empty argument also indicates the default.\n\nHU heading-text\nSet an unnumbered section heading.  Except for a heading number, it is  treated  as  a\nnumbered heading of the level stored in register Hu; see H.\n\nI [italic-text [previous-font-text]] ...\nJoin  italic-text  in  italics  with  previous-font-text in the previous font, without\nspace between the arguments.  If no arguments, switch font to italic style.\n\nIA [recipient-name [title]]\nSpecify the inside address in a letter.  Input is collected into  the  inside  address\nuntil  IE  is called, and then output.  You can specify multiple recipients with empty\nIA/IE pairs; only the last address is used.  The arguments give each recipient a  name\nand title.  See LT.\n\nIB [italic-text [bold-text]] ...\nJoin  italic-text in italics with bold-text in boldface, without space between the ar‐\nguments.\n\nIE     End the inside address begun with IA.\n\nIND argument ...\nIf the Boolean register Ref is true, write an index entry as a specially prepared roff\ncomment to the standard error stream, with each argument separated from its  predeces‐\nsor by a tab character.  The entry's location information is arranged as configured by\nthe most recent INITI call.\n\nINDP   Output  the  index set up by INITI and populated by IND calls.  By default, INDP calls\nSK and writes a centered caption interpolating the string  Index.   It  then  disables\nfilling and calls 2C; afterward, it restores filling and calls 1C.\n\nDefine  macros to customize this behavior.  INDP calls TXIND before the caption, TYIND\ninstead of writing the caption, and TZIND after formatting the index.\n\nINITI location-type file-name [macro]\nInitialize groff mm's indexing system.  Argument location-type selects how  the  loca‐\ntion  of  each  index  entry is reported.  file-name populates an internal string used\nlater by INDP.\n\nlocation-type   Entry format\nN               page number\nH               heading mark\nB               page number, tab character, heading mark\n\nIf macro is specified, it is called for each index entry with the arguments  given  to\nIND.\n\nINITR id\nInitialize  the  cross reference macros.  Cross references are written to the standard\nerror stream, which should be redirected into a file named id.qrf.  \u001b]8;;man:mmroff(1)\u001b\\mmroff(1)\u001b]8;;\u001b\\  handles\nthis  and the two formatting passes it requires.  The first pass identifies cross ref‐\nerences, and the second one includes them.\n\nSee SETR, GETPN, and GETHN.\n\nIR [italic-text [roman-text]] ...\nJoin italic-text in italics with roman-text in roman style, without space between  the\narguments.\n\nISODATE [0]\nUse  ISO  8601  format  for the date string DT used by some cover sheet and memorandum\ntypes; that is, YYYY-MM-DD.  Must be called before ND to be effective.   If  given  an\nargument  of 0, the traditional date format for the groff locale is used; this is also\nthe default.\n\nLB text-indent mark-indent pad type [mark [pre-item-space [pre-list-space]]]\nBegin list.  The macros AL, BL, BVL, DL, ML, RL, and VL call LB in various ways;  they\nare simpler to use and may be preferred if they suit the desired purpose.\n\nThe  nesting  level  of lists is tracked by mm; the outermost level is 0.  The text of\neach list item is indented by text-indent; the default is taken from the  Li  register\n(in  ens).   Each item's mark is indented by mark-indent; the default is 0n.  The mark\nis normally left-aligned.  If pad is greater than zero, mark-indent is overridden such\nthat pad ens of space follow the mark.  type selects one of six possible ways to  dis‐\nplay the mark.\n\ntype   Output for a mark “x”\n1      x.\n2      x)\n3      (x)\n4      [x]\n5      <x>\n6      {x}\n\nIf type is 0 and mark is unspecified, the items are set with a hanging indent.  Other‐\nwise,  mark  is  interpreted  as  a string defining the mark.  If type is greater than\nzero, items are automatically numbered; mark is interpreted as a register format.  The\ndefault type is 0.\n\nThe last two arguments manage vertical  space.   Unless  a  list's  nesting  level  is\ngreater than the value of register Ls, its items are preceded by pre-item-space multi‐\nplied  by  the register Lsp; the default is 1.  LB precedes the list by pre-list-space\nmultiplied by the register Lsp; the default is 0.\n\nLC [list-level]\nClear list state.  Active lists are terminated as if with LE, either all (the default)\nor only those from the current level down to list-level if specified.  H calls LC  au‐\ntomatically.\n\nLE [1] End  list.  The current list is terminated.  An argument of 1 causes vertical space in\nthe amount of register Lsp to follow the list.\n\nLI [mark [item-mark-mode]]\nBegin a list item.  Input is collected into a list item until the current list is ter‐\nminated or LI is called again.  By default, the item's text is preceded  by  any  mark\nconfigured by the current list.  If only mark is specified, it replaces the configured\nmark.  A second argument prefixes mark to the configured mark; an item-mark-mode value\nof  1  places  an unbreakable space after mark, while a value of 2 does not (rendering\nthe two adjacent).  Also see register Limsp.\n\nLO option [value]\nSpecify letter options; see LT.  Standard options are as follows.   See  IA  regarding\nthe inside address and string DT regarding the date.\n\noption   Effect\nAT       Attention;  put contents of string LetAT and value left-aligned after the in‐\nside address.\nCN       Confidential; put value, or contents of string LetCN, left-aligned after  the\ndate.\nRN       Reference; put contents of string LetRN and value after the confidental nota‐\ntion (if any) and the date, aligned with the latter.\nSA       Salutation;  put  value,  or contents of string LetSA, left-aligned after the\ninside address and the confidental notation (if any).\nSJ       Subject; put contents of string LetSJ and value left-aligned after the inside\naddress and the attention and salutation notations (if any).  In letter  type\n“SP”, LetSJ is ignored and value is set in full capitals.\n\nLT [style]\nFormat  a  letter in the designated style, defaulting to BL (see below).  A letter be‐\ngins with the writer's address (WA/WE), followed by the date (ND), the inside  address\n(IA/IE),  the  body  of the letter (P and other general-purpose mm macros), the formal\nclosing (FC), the signature (SG), and notations (NS/NE).  Any of these may be omitted.\nLetter options specified with LO add further annotations, which  are  extensible;  see\nsection “Internals” below.\n\nstyle   Description\nBL      Blocked:  the  writer's  address,  date, formal closing, and signature are in‐\ndented to the center of the line.  Everything else is left-aligned.\nSB      Semi-blocked: as BL, but the first line of each paragraph is indented by 5m.\nFB      Fully blocked: everything begins at the left margin.\nSP      Simplified: as FB, but a formal closing is omitted, and the signature  is  set\nin full capitals.\n\nMC column-width [gutter-width]\nBegin  multi-column  layout.   groff mm creates as many columns of column-width as the\nline length will permit.  gutter-width is the interior spacing  between  columns.   It\ndefaults  to column-width/15.  1C returns to single-column layout.  MC is a GNU exten‐\nsion.  See MULB for an alternative.\n\nML mark [text-indent [1]]\nStart a list with the mark argument preceding each list item.   text-indent  overrides\nthe  default  indentation  of the list items set by register Li.  If a third argument,\nconventionally 1, is given, the blank line that normally precedes each  list  item  is\nsuppressed.  Use LI to declare list items, and LE to end the list.\n\nMT [type [addressee]]\nSelect  memorandum  type.  These correspond to formats used by AT&T Bell Laboratories,\nwhere the mm package was initially developed, affecting the document layout.  Some  of\nthese  included  a cover page with a caption categorizing the document.  groff mm uses\ntype to construct the file name /usr/share/groff/1.23.0/tmac/mm/type.MT  and  load  it\nwith  the mso request.  Memorandum types 0 to 5 are supported; any other value of type\nis mapped to type 6.  If type is omitted, 0 is implied.  addressee sets a string anal‐\nogous to one used by AT&T cover sheet macros that are not implemented in groff mm.\n\ntype   Description\n0      normal memorandum; no caption\n1      captioned “MEMORANDUM FOR FILE”\n2      captioned “PROGRAMMER'S NOTES”\n3      captioned “ENGINEER'S NOTES”\n4      released paper\n5      external letter\n\nSee COVER for a more flexible cover sheet mechanism.\n\nMOVE y-pos [x-pos [line-length]]\nMove to a position, setting page offset to x-pos.  If line-length is  not  given,  the\ndifference  between current and new page offset is used.  Use PGFORM without arguments\nto return to normal.\n\nMULB cw1 space1 [cw2 space2] ... cwn\nBegin alternative multi-column mode.  All column widths must be specified, as must the\namount of space between each column pair.  The arguments' default scaling unit  is  n.\nMULB uses a diversion and operates in a separate environment.\n\nMULN   Begin next column in alternative column mode.\n\nMULE   End alternative multi-column mode and emit the columns.\n\nNCOL   Move to the start of the next column (only when using 2C or MC).  Contrast with MULN.\n\nND [arg]\nSet  the  document's date.  mm does not interpret arg; it can be a revision identifier\n(or empty).\n\nNE     End notation begun with NS; filling is enabled.\n\nnP [type]\nBegin a numbered paragraph at heading level two.  See P.\n\nNS [code [1]]\nDeclare notations, typically for letters or memoranda, of the type specified by  code.\nThe  text corresponding to code is output, and filling is disabled until NE is called.\nTypically, a list of names or attachments lies within NS/NE.  If  code  is  absent  or\ndoes not match one of the values listed under the Letns string description below, each\nline of notations is formatted as “Copy (line) to”.  If a second argument, convention‐\nally  1, is given, code becomes the entire notation and NE is not necessary.  In groff\nmm, you can set up further notations to be recognized by NS; see the strings Letns and\nLetnsdef below.\n\nOF [\"'left'center'right'\"]\nDefine the odd-page footer, which is formatted just above the normal  page  footer  on\nodd-numbered pages.  See PF.  OF defines the string EOPof.\n\nOH [\"'left'center'right'\"]\nDefine  the  odd-page  header, which is formatted just below the normal page header on\nodd-numbered pages.  See PH.  OH defines the string TPoh.\n\nOP     Make sure that the following text is printed at the top of an odd-numbered page.  Does\nnot output an empty page if currently at the top of an odd page.\n\nP [type]\nBegin new paragraph.   If  type  is  missing  or    0,  P  sets  the  paragraph  fully\nleft-aligned.  A type of 1 idents the first line by \\[Pi] ens.  Set the register Pt to\nselect  a  default paragraph indentation style.  The register Ps controls the vertical\nspacing between paragraphs.\n\nPE     Picture end; see \u001b]8;;man:pic(1)\u001b\\pic(1)\u001b]8;;\u001b\\.\n\nPF [\"'left'center'right'\"]\nDefine the page footer.  The footer is formatted at the bottom of each page; the argu‐\nment is otherwise as described in PH.  PF defines the string EOPf.  See  EF,  OF,  and\nEOP.\n\nPGFORM [linelength [pagelength [pageoffset [1]]]]\nSet  line length, page length, and/or page offset.  This macro can be used for letter‐\nheads and similar.  It is normally the first macro call in a file, though  it  is  not\nnecessary.   PGFORM  can  be  used  without arguments to reset everything after a MOVE\ncall.  A line break is done unless the fourth argument is given.  This can be used  to\navoid the page number on the first page while setting new width and length.  (It seems\nas  if  this macro sometimes doesn't work too well.  Use the command-line arguments to\nchange line length, page length, and page offset instead.)\n\nPGNH   Suppress header on the next page.  This macro must be called before  any  macros  that\nproduce output to affect the layout of the first page.\n\nPH [\"'left'center'right'\"]\nDefine  the  page  header,  formatted  at the top of each page, as the argument, where\nleft, center, and right are aligned to the respective locations on the  line.   A  “%”\ncharacter  in  arg is replaced by the page number.  If the argument is absent, no page\nheader is set.  The default page header is\n\"''- % -''\"\nwhich centers the page number between hyphens and formats nothing at  the  upper  left\nand  right.   Header  macros call PX (if defined) after formatting the header.  PH de‐\nfines the string TPh.  See EH, OH, and TP.\n\nPIC [-B] [-C|-I n|-L|-R] file [width [height]]\nInclude PostScript document file.  The optional -B argument draws  a  box  around  the\npicture.   The  optional -L, -C, -R, and -I n arguments align the picture or indent it\nby n (assuming a scaling unit of m).  By default, the picture  is  left-aligned.   Op‐\ntional width and height arguments resize the picture.  Use of this macro requires two-\npass processing; see INITR and \u001b]8;;man:mmroff(1)\u001b\\mmroff(1)\u001b]8;;\u001b\\.\n\nPS     Picture start; see \u001b]8;;man:pic(1)\u001b\\pic(1)\u001b]8;;\u001b\\.\n\nPY     Picture  end  with flyback.  Ends a \u001b]8;;man:pic(1)\u001b\\pic(1)\u001b]8;;\u001b\\ picture, returning the vertical position to\nwhere it was prior to the picture.  This is a GNU extension.\n\nR [roman-text [previous-font-text]] ...\nJoin roman-text in roman style with previous-font-text in the previous  font,  without\nspace between the arguments.  If no arguments, switch font to roman style.\n\nRB [roman-text [bold-text]] ...\nJoin  roman-text  in roman style with bold-text in boldface, without space between the\narguments.\n\nRD [prompt [diversion [string]]]\nRead from standard input to diversion and/or string.  The text is saved in a diversion\nnamed diversion.  Recall the text by writing the name of the diversion after a dot  on\nan  empty line.  A string is also defined if string is given.  Diversion and/or prompt\ncan be empty (\"\").\n\nRF     Reference end.  Ends a reference definition and returns to normal processing.  See RS.\n\nRI [roman-text [italic-text]] ...\nJoin roman-text in roman style with italic-text in italics, without space between  the\narguments.\n\nRL [text-indent [1]]\nBegin  reference  list.   Each item is preceded by an automatically incremented number\nbetween square brackets; compare AL.  text-indent  changes  the  default  indentation.\nUse  LI to declare list items, and LE to end the list.  A second argument, convention‐\nally 1, suppresses the blank line that normally precedes each list item.\n\nRP [suppress-counter-reset [page-ejection-policy]]\nFormat a reference page, listing items accumulated within RS/RF pairs.  The  reference\ncounter  is  reset unless the first argument is 1.  Normally, page breaks occur before\nand after the references are output; the register Rpe configures this behavior, and  a\nsecond argument overrides its value.  TC calls RP automatically if references have ac‐\ncumulated.\n\nReferences are list items, and thus are vertically separated (see LB).  Setting regis‐\nter  Ls  to 0 suppresses this spacing.  The string Rp contains the reference page cap‐\ntion.\n\nRS [reference-string]\nBegin an automatically numbered reference definition.  By default, references are num‐\nbered starting at 1; the number is available in register :R.  Interpolate  the  string\nRf  where the reference mark should be and write the reference between RS/RF on an in‐\nput line after the reference mark.  If reference-string is specified,  groff  ms  also\nstores  the  reference  mark  in  a  string of that name, which can be interpolated as\n\\*[reference-string] subsequently.\n\nS [type-size [vertical-spacing]]\nSet type size and vertical spacing.  Each argument is a groff  measurement,  using  an\nappropriate  scaling  unit and an optional + or - prefix to increment or decrement the\ncurrent value.  An argument of P restores the previous value, C indicates the  current\nvalue, and D requests the default.  An empty or omitted argument is treated as P.\n\nSA [mode]\nSet  or restore the default enablement of adjustment.  Specify 0 or 1 as mode to set a\ndocument's default explicitly; 1 is assumed by mm.  Adjustment can be temporarily sus‐\npended with the na request.  When the H or HU macros are used to format a heading,  or\nwhen SA is called without a mode argument, the default adjustment is restored.\n\nSETR refname [string]\nRemember  the  current heading and page numbers as refname.  Saves string if string is\ndefined.  string is retrieved with GETST.  See INITR.\n\nSG [arg [1]]\nSignature line.  Prints the authors name(s) after the formal closing.  The argument is\nappended to the reference data, printed at either the first or last author.  The  ref‐\nerence  data  is  the  location,  department,  and  initials specified with AU.  It is\nprinted at the first author if the second argument is given, otherwise  at  the  last.\nNo reference data is printed if the author(s) is specified through WA/WE.  See section\n“Internals” below.\n\nSK [n] Skip n pages.  If n is 0 or omitted, the page is broken unless the drawing position is\nalready  at  the  top of a page.  Otherwise, n pages, blank except for any headers and\nfooters, are printed.\n\nSM text [post]\nSM pre text post\nFormat text at a smaller type size, joined with any specified pre and post  at  normal\nsize.\n\nSP [lines]\nSpace  vertically.   lines can have any scaling factor, like “3i” or “8v”.  Several SP\ncalls in a line only produces the maximum number of lines, not the sum.  SP is ignored\nalso until the first text line in a page.  Add \\& before a call to SP to avoid this.\n\nTAB    Reset tab stops to every 5 ens.\n\nTB [title [override [flag [refname]]]]\nCaption a table.  Arguments are handled analogously to EC.  The register Tb is the ta‐\nble counter.  The string Litb precedes the table number and any title.  Table captions\nare centered irrespective of the alignment of any enclosing display.\n\nCaptioned tables are listed in a table of contents (see TC) if the Boolean register Lt\nis true.  Such a list uses the string Lt as a heading.\n\nTC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]\nOutput table of contents.  This macro is normally the last called in the document.  It\nflushes any pending displays and, if any references are pending (see  RS),  calls  RP.\nIt  then begins a new page with the contents caption, stored in the string Licon, cen‐\ntered at the top.  The entries follow after three vees of  space.   Each  entry  is  a\nsaved section (number and) heading title (see the Cl register), along with its associ‐\nated  page number.  By default, an entry is indented by an amount corresponding to its\nheading level and the maximum heading length encountered at that heading level; if de‐\nfined, the string Ci overrides these indentations.  Entries at heading  levels  up  to\nand including slevel are preceded by spacing vees of space.  Entries at heading levels\nup  to  and including tlevel are followed by a leader and a right-aligned page number.\nIf the Boolean-valued tab argument is true, the leader is replaced with horizontal mo‐\ntion in the same amount.  For entries above heading level tlevel, the page number fol‐\nlows the heading text after a word space.  Each argument h1...h5 appears in  order  on\nits  own line, centered, above the contents caption.  Page numbering restarts at 1, in\nregister format “i”.  If the Oc register is true, numbering of  these  pages  is  sup‐\npressed.\n\nIf  TC  is  called with at most four arguments, it calls the user-defined macro TX (if\ndefined) prior to formatting the contents caption, and TY (if defined) instead of for‐\nmatting the contents caption.\n\nAnalogous handling of lists of figures, tables, equations, and exhibits is achieved by\ndefining TXxx and TYxx macros, where xx is “FG”, “TB”, “EC”,  or  “EX”,  respectively.\nSimilarly, the strings Lifg, Litb, Liex, and Liec determine captions for their respec‐\ntive lists.\n\nTE     Table end.  See TS.\n\nTH     End  table  heading.  It is repeated after page breaks within a table.  See TS.  The N\nargument supported by DWB mm is not implemented by groff mm.\n\nTL [charging-case-number [filing-case-number]]\nBegin document title.  Input is collected into the title until AF or AU is called, and\noutput as directed by the cover page.  charging-case-number and filing-case-number are\nsaved for use in memorandum types 0 and 5.  See MT.\n\nTM number ...\nDeclare technical memorandum number(s) used by MT.\n\nTP     If defined, this macro is called in lieu of normal page header  layout.   Headers  and\nfooters are formatted in a separate environment.  See EOP.\n\nStrings available to TP\n────────────────────────\nTPh     argument to PH\nTPeh    argument to EH\nTPoh    argument to OH\n\nTS [H] Table  start.   Argument  “H”  tells mm that the table has a heading.  See TE, TH, and\n\u001b]8;;man:tbl(1)\u001b\\tbl(1)\u001b]8;;\u001b\\.\n\nVERBON [format [type-size [font]]]\nBegin verbatim display, where characters have equal width.   format  controls  several\nparameters.   Add up the values of desired features; the default is 0.  On typesetting\ndevices, further arguments configure the type-size in  scaled  points,  and  the  face\n(font); the default is CR (Courier roman).\n\nValue   Effect\n1       Disable the formatter's escape character (\\).\n2       Vertically space before the display.\n4       Vertically space after the display.\n8       Number  output  lines;  call  formatter's  nm request with arguments in string\nVerbnm.\n16      Indent by the amount stored in register Verbin.\n\nVERBOFF\nEnd verbatim display.\n\nVL [text-indent [mark-indent [1]]]\nBegin variable-item (or “tagged”) list.  Each item should supply its own mark, or tag.\nIf the mark is wider than mark-indent, one space separates it  from  subsequent  text;\ncontrast  BVL.  text-indent sets the indentation of the text, and mark-indent the dis‐\ntance from the current list indentation to the mark.  A third argument suppresses  the\nblank  line  that normally precedes each list item.  Use LI to declare list items, and\nLE to end the list.\n\nVM [-T] [top [bottom]]\nVertical margin.  Increase the top and bottom margin by top and bottom,  respectively.\nIf  option  -T  is  specified, set those margins to top and bottom.  If no argument is\ngiven, reset the margin to zero, or to the default (“7v 5v”) if -T  is  used.   It  is\nhighly  recommended  that macros TP and/or EOP are defined if using -T and setting top\nand/or bottom margin to less than the default.  This undocumented DWB mm macro is  ex‐\nposed by groff mm to increase user control of page layout.\n\nWA [writer's-name [title]]\nSpecify  the  writer(s) of an LT letter.  Input is collected into the writer's address\nuntil WA is called, and then output.  You can  specify  multiple  writers  with  empty\nWA/WE pairs; only the last address is used.  The arguments give each writer a name and\ntitle.\n\nWC [format ...]\nControl width of footnotes and displays.\n\nformat   Effect\nN        equivalent to “-WF -FF -WD” (default)\nWF       set footnotes at full line length, even in two-column mode\n-WF      set footnotes using column line length\nFF       apply width of first footnote to encountered to subsequent ones\n-FF      footnote width determined by WF and -WF\nWD       set displays at full line length, even in two-column mode\n-WD      set displays using column line length\n\nWE     End the writer's address begun with WA.\n"
                }
            ]
        },
        "Strings": {
            "content": "Many  mm  strings interpolate predefined, localizable text.  These are presented in quotation\nmarks.\n\nApp    “APPENDIX”\n\nApptxt stores the title argument to the last APP call.\n\nBU     interpolates a bullet (see BL).\n\nCi     is a list of indentation amounts to use for table of contents heading levels, overrid‐\ning their automatic computation.  Each word must be  a  horizontal  measurement  (like\n“1i”) and is mapped one-to-one to heading levels 1, 2, and so on.\n\nDT     The  date;  set by the ND macro (defaults to the date the document is formatted).  The\nformat is the conventional one for the groff locale, but see the ISODATE macro and Iso\nregister.\n\nEM     interpolates an em dash.\n\nF      interpolates an automatically numbered footnote marker; the number is used by the next\nFS call without an argument.  In troff mode, the marker  is  superscripted;  in  nroff\nmode, it is surrounded by square brackets.\n\nH1txt  Updated  by .H and .HU to the current heading text.  Also updated in table of contents\n& friends.\n\nHF     assigns font identifiers, separated by spaces, to heading levels in one-to-one  corre‐\nspondence.  Each identifier may be a font mounting position, font name, or style name.\nOmitted  values  are  assumed  to be 1.  The default is “2 2 2 2 2 2 2 2 2 2 2 2 2 2”,\nwhich places all headings in italics.  DWB mm's default was “3 3 2 2 2 2 2”.\n\nHP     assigns type sizes, separated by spaces, to heading levels  in  one-to-one  correspon‐\ndence.   Each  size is interpreted in scaled points; zero values are translated to 10.\nOmitted values are assumed to be 0 (and are translated accordingly).  The  default  is\n“0 0 0 0 0 0 0 0 0 0 0 0 0 0”.\n\nIndex  “INDEX”\n\nLe     “LIST OF EQUATIONS”\n\nLetfc  “Yours very truly,” (see FC)\n\nLetapp “APPROVED:” (see AV)\n\nLetAT  “ATTENTION:” (see LO)\n\nLetCN  “CONFIDENTIAL” (see LO)\n",
            "subsections": [
                {
                    "name": "Letdate",
                    "content": "“Date” (see AV)\n\nLetns  is  a group of strings structuring the notations produced by NS.  If the code argument\nto NS has no corresponding string, the notation is included between parentheses,  pre‐\nfixed  with  Letns!copy,  and suffixed with Letns!to.  Observe the spaces after “Copy”\nand before “to”.\n\nNS code   String       Contents\n0         Letns!0      Copy to\n1         Letns!1      Copy (with att.) to\n2         Letns!2      Copy (without att.) to\n3         Letns!3      Att.\n4         Letns!4      Atts.\n5         Letns!5      Enc.\n6         Letns!6      Encs.\n7         Letns!7      Under separate cover\n8         Letns!8      Letter to\n9         Letns!9      Memorandum to\n10        Letns!10     Copy (with atts.) to\n11        Letns!11     Copy (without atts.) to\n12        Letns!12     Abstract Only to\n13        Letns!13     Complete Memorandum to\n14        Letns!14     CC\n—         Letns!copy   Copy (with trailing space)\n—         Letns!to      to (note leading space)\n"
                },
                {
                    "name": "Letnsdef",
                    "content": "Select the notation format used by NS when it is given no argument.   The  default  is\n“0”.\n\nLetRN  “In reference to:” (see LO)\n\nLetSA  “To Whom It May Concern:” (see LO)\n\nLetSJ  “SUBJECT:” (see LO)\n\nLf     “LIST OF FIGURES”\n\nLicon  “CONTENTS”\n\nLiec   “Equation”\n\nLiex   “Exhibit”\n\nLifg   “Figure”\n\nLitb   “TABLE”\n\nLt     “LIST OF TABLES”\n\nLx     “LIST OF EXHIBITS”\n\nMO1...MO12\n“January” through “December”\n\nQrf    “See chapter \\\\*[Qrfh], page \\\\n[Qrfp].”\n\nRf     interpolates  an automatically numbered reference mark; the number is used by the next\nRS call.  In troff mode, the marker is superscripted; in nroff mode, it is  surrounded\nby square brackets.\n\nRp     “REFERENCES”\n\nSm     interpolates ℠, the service mark sign.\n\nTcst   interpolates  an  indicator of the TC macro's processing status.  If TC is not operat‐\ning, it is empty.  User-defined TP or EOP macros might condition page headers or foot‐\ners on its contents.\n\nValue   Meaning\nco      Table of contents\nfg      List of figures\ntb      List of tables\nec      List of equations\nex      List of exhibits\nap      Appendix\n\nTm     interpolates ™, the trade mark sign.\n\nVerbnm supplies argument(s) to the nm request employed by  the  VERBON  macro.   The  default\nis “1”.\n"
                }
            ]
        },
        "Registers": {
            "content": "Default register values, where meaningful, are shown in parentheses.  Many are also marked as\nBoolean-valued,  meaning that they are considered “true” (on, enabled) when they have a posi‐\ntive value, and “false” (off, disabled) otherwise.\n\n.mgm   indicates that groff mm is in use (Boolean-valued; 1).\n\n:p     is an auto-incrementing footnote counter; see FS.\n\n:R     is an auto-incrementing reference counter; see RS.\n\nAph    formats an appendix heading (and title, if supplied); see APP (Boolean-valued; 1).\n\nAu     includes supplemental author information (the third and subsequent arguments to AU) in\nmemorandum “from” information; see COVER and MT (Boolean-valued; 1).\n\nCl     sets the threshold for inclusion of headings in a table of contents.  Headings at lev‐\nels above this value are excluded; see H and TC (2).  The Cl register controls whether\na heading is saved for output in the table of contents at the time H or HU is  called;\nif  you change Cl's value immediately prior to calling TC, you are unlikely to get the\nresult you want.\n\nCp     suppresses page breaks before lists of captioned equations, exhibits, figures, and ta‐\nbles, and before an index; see EC, EX, FG, TB, and INDP (Boolean-valued; 0).\n\nD      produces debugging information for the mm package on the  standard  error  stream.   A\nvalue  of 0 outputs nothing; 1 reports formatting progress.  Higher values communicate\ninternal state information of increasing verbosity (0).\n\nDe     causes a page break after a floating display is output; see DF (Boolean-valued; 0).\n\nDf     configures the behavior of DF.  The following values are recognized; 4 and  5  do  not\noverride the De register (5).\n\nValue   Effect\n0       Flush  pending displays at the end of each section when section-page numbering\nis active, otherwise at the end of the document.\n1       Flush a pending display on the current page  or  column  if  there  is  enough\nspace, otherwise at the end of the document.\n2       Flush one pending display at the top of each page or column.\n3       Flush  a  pending  display  on  the  current page or column if there is enough\nspace, otherwise at the top of the next.\n4       Flush as many pending displays as possible in a new page or column.\n5       Fill columns or pages with flushed displays until none remain.\n\nDs     puts vertical space in the amount of register Dsp (if defined) or Lsp before and after\neach static display; see DS (Boolean-valued; 1).\n\nDsp    configures the amount of vertical space placed before and after static  displays;  see\nDS and register Ds (undefined).\n\nEc     is an auto-incrementing equation counter; see EC.\n\nEj     sets  the threshold for page breaks (ejection) prior to the format of headings.  Head‐\nings at levels above this value are set on the same page and column if possible; see H\n(0).\n\nEq     aligns an equation label to the left of a display instead of the  right  (Boolean-val‐\nued; 0).\n\nEx     is an auto-incrementing exhibit counter; see EX.\n\nFg     is an auto-incrementing figure counter; see FG.\n\nFs     is multiplied by register Lsp to vertically separate footnotes; see FS (1).\n\nH1...H14\nare auto-incrementing counters corresponding to each heading level; see H.\n\nH1dot  appends a period to the number of a level one heading; see H (Boolean-valued; 1).\n\nH1h    is  a copy of A copy of register register H1, but it is incremented just before a page\nbreak.  This can be useful in user-defined macros; see H and HX.\n\nHb     sets the threshold for breaking the line after formatting a heading.  Text after head‐\nings at levels above this value are set on the same output line  if  possible;  see  H\n(2).\n\nHc     sets  the  threshold for centering a heading.  Headings at levels above this value use\nthe prevailing alignment (that is, they are not centered); see H (0).\n\nHi     configures the indentation of text after headings.  It does not affect “run-in”  head‐\nings.  The following values are recognized; see H and P (1).\n\nValue   Effect\n0       no indentation\n1       indent per the paragraph type\n2       indent to align with heading title\n\nHps    sets  the  heading level threshold for application of preceding vertical space; see H.\nHeadings at levels above the value in register Hps use the amount of space in register\nHps1; otherwise that in Hps2.  The value of Hps should be strictly greater  than  that\nof Ej (1).\n\nHps1   configures  the  amount of vertical space preceding a heading above the Hps threshold;\nsee H (troff devices: 0.5v; nroff devices: 1v).\n\nHps2   configures the amount of vertical space preceding  a  heading  at  or  below  the  Hps\nthreshold; see H (troff devices: 1v; nroff devices: 2v).\n\nHs     sets the heading level threshold for application of succeeding vertical space.  If the\nheading  level  is  greater  than Hs, the heading is followed by vertical space in the\namount of register Hss; see H (2).\n\nHss    is multiplied by register Lsp to produce  vertical  space  after  headings  above  the\nthreshold in register Hs; see H (1).\n\nHt     suppresses  output of heading level counters above the lowest when the heading is for‐\nmatted; see H (Boolean-valued; 0).\n\nHu     sets the heading level used by unnumbered headings; see HU (2).\n\nHy     enables automatic hyphenation of words (Boolean-valued; 0).\n\nIso    configures the use of ISO 8601 date format if specified (with any value) on  the  com‐\nmand line; see ISODATE.  The default is determined by localization files.\n\nL      defines  the  page  length for the document, and must be set from the command line.  A\nscaling unit should be appended.  The default is that of the selected groff output de‐\nvice.\n\nLe\nLf\nLt\nLx     configure the report of lists of equation, figure, table, and  exhibit  captions,  re‐\nspectively, after a table of contents; see TC (Boolean-valued; Le: 0; Lf, Lt, Lx: 1).\n\nLetwam sets  the maximum number of input lines permitted in a writer's address; see WA and WE\n(14).\n\nLi     configures the amount of indentation in ens applied to list items; see LI (6).\n\nLimsp  inserts a space between the prefix and the mark in automatically numbered  lists;  see\nAL (Boolean-valued; 1).\n\nLs     sets a threshold for placement of vertical space before list items.  If the list nest‐\ning level is greater than this value, no such spacing occurs; see LI (99).\n\nLsp    configures  the base amount of vertical space used for separation in the document.  mm\napplies this spacing to many contexts, sometimes with multipliers; see DS, FS, H,  LI,\nand P (troff devices: 0.5v; nroff devices: 1v).\n\nN      configures  the header and footer placements used by PH.  The default footer is empty.\nIf “section-page” numbering is selected, the default header becomes empty and the  de‐\nfault  footer  becomes “x-y”, where x is is the section number (the number of the cur‐\nrent first-level heading) and y the page number within  the  section.   The  following\nvalues  are  recognized; for finer control, see PH, PF, EH, EF, OH, and OF, and regis‐\nters Sectf and Sectp.  Value 5 is a GNU extension (0).\n\nValue   Effect\n0       Set header on all pages.\n1       Move header to footer on page 1.\n2       Omit header on page 1.\n3       Use “section-page” numbering style on all pages.\n4       Omit header on all pages.\n5       Use “section-page” and “section-figure” numbering style on all pages.\n\nNp     causes paragraphs after first-level headings (only) to be numbered in the format  s.p,\nwhere  s  is is the section number (the number of the current first-level heading) and\np is the paragraph number, starting at 1; see H and P (Boolean-valued; 0).\n\nO      defines the page offset of the document, and must be set from  the  command  line.   A\nscaling  unit  should be appended.  The default is .75i on terminal devices.  On type‐\nsetters, it is .963i or set to 1i by the papersize.tmac package; see \u001b]8;;man:grofftmac(5)\u001b\\grofftmac(5)\u001b]8;;\u001b\\.\n\nOc     suppresses the appearance of page numbers in the table of contents; see  TC  (Boolean-\nvalued; 0).\n\nOf     selects  a  separator format within equation, exhibit, figure, and table captions; see\nEC, EX, FG, and TB.  The following values are recognized; the spaces shown are unpadd‐\nable (0).\n\nValue   Effect\n0       \".  \"\n1       \" — \"\n\nP      interpolates the current page number; it is the same as register % except  when  “sec‐\ntion-page” numbering is enabled.\n\nPi     configures  the amount of indentation in ens applied to the first line of a paragraph;\nsee P (5).\n\nPgps   causes the type size and vertical spacing set by S to apply to  headers  and  footers,\noverriding  the  HP  string.  If not set, S calls affect headers and footers only when\nfollowed by PH, PF, OH, EH, OF, or OE calls (Boolean-valued; 1).\n\nPs     is multiplied by register Lsp to vertically separate paragraphs; see P (1).\n\nPt     determines when a first-line indentation is applied to a paragraph; see P (0).\n\nValue   Effect\n0       never\n1       always\n2       always, except immediately after H, DE, or LE\n\nRef    is used internally to control \u001b]8;;man:mmroff(1)\u001b\\mmroff(1)\u001b]8;;\u001b\\'s two-pass approach  to  index  and  reference\nmanagement; see INITI and RS (Boolean-valued; 0).\n\nRpe    configures the default page ejection policy for reference pages; see RP (0).\n\nValue   Effect\n0       Break the page before and after the list of references.\n1       Suppress page break after the list.\n2       Suppress page break before the list.\n3       Suppress page breaks before and after the list.\n\nS      defines  the  type  size  for  the document, and must be set from the command line.  A\nscaling unit should be appended; p is typical (10p).\n\nSectf  selects the “section-figure” numbering style.  Its default is 0 unless register  N  is\nset to 5 at the command line (Boolean-valued).\n\nSectp  selects the “section-page” numbering style.  Its default is 0 unless register N is set\nto 3 or 5 at the command line (Boolean-valued).\n\nSi     configures the amount of display indentation in ens; see DS (5).\n\nTb     is an auto-incrementing table counter; see TB.\n\nV      defines  the vertical spacing for the document, and must be set from the command line.\nA scaling unit should be appended; p is typical.  The default vertical spacing is 120%\nof the type size.\n\nVerbin configures the amount of indentation for verbatim displays  when  indentation  is  se‐\nlected; see VERBON (5n).\n\nW      defines the “width” of the document (that is, the length of an output line with no in‐\ndentation);  it must be set from the command line.  A scaling unit should be appended.\nThe default is 6i or assigned by the papersize.tmac package; see \u001b]8;;man:grofftmac(5)\u001b\\grofftmac(5)\u001b]8;;\u001b\\.\n",
            "subsections": []
        },
        "Internals": {
            "content": "The LT letter macros call further macros depending on the letter type, with  which  they  are\nsuffixed.   It  is therefore possible to define additional letter types, either in the terri‐\ntory-specific macro file, or as local additions.  LT sets the registers Pt and Pi to 0 and 5,\nrespectively.  The following macros must be defined to support a new letter type.\n\nlet@inittype\nLT calls this macro to initialize any registers and other data needed  by  the  letter\ntype.\n\nlet@headtype\nformats the letterhead; it is called instead of the usual page header macro.  Its def‐\ninition  should remove the alias let@header unless the letterhead is desired on subse‐\nquent pages.\n\nlet@sgtype name title n is-final [SG-arg ...]\nSG calls this macro only for letters; MT memoranda have their own  signature  process‐\ning.   name  and title are specified through WA/WE.  n is the index of the nth writer,\nand is-final is true for the last writer to be listed.  Further SG arguments  are  ap‐\npended to the signature line.\n\nlet@fctype closing\nThis macro is called by FC, and has the formal closing as the argument.\n\nLO implements letter options.  It requires that a string named Lettype be defined, where type\nis the letter type.  LO then assigns its second argument (value) to the string let*lo-type.\n",
            "subsections": []
        },
        "Files": {
            "content": "/usr/share/groff/1.23.0/tmac/m.tmac\nis the groff implementation of the memorandum macros.\n\n/usr/share/groff/1.23.0/tmac/mm.tmac\nis wrapper to load m.tmac.\n\n/usr/share/groff/1.23.0/tmac/refer-mm.tmac\nimplements \u001b]8;;man:refer(1)\u001b\\refer(1)\u001b]8;;\u001b\\ support for mm.\n\n/usr/share/groff/1.23.0/tmac/mm/ms.cov\nimplements an ms-like cover sheet.\n\n/usr/share/groff/1.23.0/tmac/mm/0.MT\nimplements memorandum types 0–3 and 6.\n\n/usr/share/groff/1.23.0/tmac/mm/4.MT\nimplements memorandum type 4.\n\n/usr/share/groff/1.23.0/tmac/mm/5.MT\nimplements memorandum type 5.\n\n/usr/share/groff/1.23.0/tmac/mm/locale\nperforms any (further) desired necessary localization; empty by default.\n",
            "subsections": []
        },
        "Authors": {
            "content": "The GNU version of the mm macro package was written by \u001b]8;;mailto:jh@axis.se\u001b\\Jörgen Hägg\u001b]8;;\u001b\\ of Lund, Sweden.\n\nSee also\n\u001b]8;;https://tkurtbond.github.io/troff/mm-all.pdf\u001b\\MM - A Macro Package for Generating Documents\u001b]8;;\u001b\\,  the DWB 3.3 mm manual, introduces the package\nbut does not document GNU extensions.\n\nGroff: The GNU Implementation of troff, by Trent A. Fisher and Werner Lemberg, is the primary\ngroff manual.  You can browse it interactively with “info groff”.\n\n\u001b]8;;man:groff(1)\u001b\\groff(1)\u001b]8;;\u001b\\, \u001b]8;;man:troff(1)\u001b\\troff(1)\u001b]8;;\u001b\\, \u001b]8;;man:tbl(1)\u001b\\tbl(1)\u001b]8;;\u001b\\, \u001b]8;;man:pic(1)\u001b\\pic(1)\u001b]8;;\u001b\\, \u001b]8;;man:eqn(1)\u001b\\eqn(1)\u001b]8;;\u001b\\, \u001b]8;;man:refer(1)\u001b\\refer(1)\u001b]8;;\u001b\\, \u001b]8;;man:groffmmse(7)\u001b\\groffmmse(7)\u001b]8;;\u001b\\ (only in Swedish locales)\n\ngroff 1.23.0                                31 March 2024                                groffmm(7)",
            "subsections": []
        }
    },
    "flags": [],
    "examples": [],
    "see_also": []
}