1groff_mm(7)            Miscellaneous Information Manual            groff_mm(7)
2
3
4

Name

6       groff_mm - memorandum macros for GNU roff
7

Synopsis

9       groff -mm [option ...] [file ...]
10       groff -m mm [option ...] [file ...]
11

Description

13       The  GNU  implementation  of  the mm macro package is part of the groff
14       document formatting system.  The mm package is suitable for the  compo‐
15       sition of letters, memoranda, reports, and books.
16
17       Call an mm macro at the beginning of a document to initialize the pack‐
18       age.  A simple mm document might use only P for paragraphing.  Set num‐
19       bered  and  unnumbered  section  headings  with H and HU, respectively.
20       Change the style of the typeface with B, I, and R;  you  can  alternate
21       styles  with  BI,  BR, IB, IR, RB, and RI.  Several nestable list types
22       are available via AL, BL, BVL, DL, ML, RL, and VL; each of these begins
23       a  list,  to which LI adds an item and LE ends the (nested) list.  Cus‐
24       tomized list arrangements are supported by LB.  DS and DF start  static
25       and floating displays, respectively; either is terminated with DE.
26
27       groff  mm is intended to be compatible with the mm implementation found
28       in the AT&T Documenter's Workbench (DWB), with  the  following  limita‐
29       tions.
30
31       • Omitted  features  include  the logo and company name strings, }Z and
32         ]S, respectively; the encoded company site location addresses  recog‐
33         nized  as the third argument to the AU macro; the Pv (“private” head‐
34         ing) register; and the OK (other keywords), and PM (proprietary mark‐
35         ings) macros.
36
37       • The  CS (output cover sheet) macro is implemented only for memorandum
38         type 4.
39
40       • The grap preprocessor is not  explicitly  supported;  no  G1  and  G2
41         macros are defined.
42
43       • The  registers  A,  C,  E,  T, and U, typically set from the troff or
44         nroff command lines with DWB mm, are not recognized.
45
46       • When setting the registers L or W from the command line, use  an  ex‐
47         plicit scaling unit to avoid surprises.
48
49       • DWB mm's nP macro indented the second line of a paragraph to align it
50         with the start of the text of the first (after the paragraph number);
51         groff mm's does not.
52
53       • Cut marks are not supported.
54
55       DWB  mm supported only seven levels of heading.  As a compatible exten‐
56       sion, groff mm supports fourteen, introducing new registers H8  through
57       H14, and affecting the interpretation of the HF and HP strings.
58
59       Macro,  register,  and string descriptions in this page frequently men‐
60       tion each other; most cross references are to macros.  Where a register
61       or string is referenced, its type is explicitly identified.  mm's macro
62       names are usually in full capitals; registers and strings tend to  have
63       mixed-case names.
64
65   Document styles
66       groff  mm  offers three different frameworks for document organization.
67       COVER/COVEND is a flexible means of preparing any document requiring  a
68       cover  page.   LT/LO  aids preparation of typical Anglophone correspon‐
69       dence (business letters, for example).  The MT memorandum  type  mecha‐
70       nism implements a group of formal styles historically used by AT&T Bell
71       Laboratories.  Your document can  select  at  most  one  of  these  ap‐
72       proaches; when used, each disables the others.
73
74   Localization
75       groff  mm is designed to be easily localized.  For languages other than
76       English, strings that can appear in output are collected  in  the  file
77       /usr/share/groff/1.23.0/tmac/xx.tmac, where xx is an ISO 639 two-letter
78       language identifier.  Localization packages should be loaded after  mm;
79       for  example,  you  might format a Swedish mm document with the command
80groff -mm -msv”.
81
82       This package can also be localized by site or territory;  for  example,
83       /usr/share/groff/1.23.0/tmac/mse.tmac illustrates how to adapt the out‐
84       put to a national standard using its ISO 3166 territory code.   Such  a
85       package  can define a string that causes a macro file /usr/share/groff/
86       1.23.0/tmac/mm/territory_locale to be loaded at package initialization.
87       If  this  mechanism is not used, /usr/share/groff/1.23.0/tmac/mm/locale
88       is loaded instead.  No diagnostic is produced if these files do not ex‐
89       ist.
90
91   Registers and strings
92       Much  mm behavior can be configured by registers and strings.  A regis‐
93       ter is assigned with the nr request.
94
95              .nr ident [±]n [i]
96
97       ident is the name of the register, and n is the value to  be  assigned.
98       n can be prefixed with a plus or minus sign if incrementation or decre‐
99       mentation (respectively) of the register's existing value by n  is  de‐
100       sired.   If  assignment of a (possibly) negative n is required, further
101       prefix it with a zero or enclose it in parentheses.  If i is specified,
102       the register is automatically modified by i prior to interpolation if a
103       plus or minus sign is included in the escape sequence as follows.
104
105              \n[±][ident]
106
107       i can be negative; it combines algebraically with the sign in  the  in‐
108       terpolation escape sequence.
109
110       Strings are defined with the ds request.
111
112              .ds ident contents
113
114       contents  consumes  everything  up  to  the  end of the line, including
115       trailing spaces.  It is a good practice to end contents with a  comment
116       escape  sequence  (\")  so that extraneous spaces do not intrude during
117       document maintenance.  To include leading spaces in contents, prefix it
118       with  a  double quote.  Strings are interpolated with the \* escape se‐
119       quence.
120
121              \*[ident]
122
123       Register and string name spaces are distinct, but  strings  and  macros
124       share  a  name  space.   Defining  a string with the same name as an mm
125       macro is not supported and may cause incorrect rendering, the  emission
126       of diagnostic messages, and an error exit status from troff.
127
128   Register format
129       A register is interpolated using Arabic numerals if no other format has
130       been assigned to it.  Assign a format to a register  with  the  af  re‐
131       quest.
132
133              .af R c
134
135       R is the name of the register, and c is the format.  If c is a sequence
136       of Arabic numerals, their quantity defines a zero-padded minimum  width
137       for the interpolated register value.
138
139              Form   Sequence
140              1      0, 1, 2, 3, ..., 10, ...
141              001    000, 001, 002, 003, ..., 1000, ...
142              i      0, i, ii, iii, iv, ...
143              I      0, I, II, III, IV, ...
144              a      0, a, b, c, ..., z, aa, ab, ...
145              A      0, A, B, C, ..., Z, AA, AB, ...
146
147   Fonts
148       In  groff mm, the fonts (or rather, font styles) R (roman), I (italic),
149       and B (bold) are mounted at font positions 1, 2, and  3,  respectively.
150       Internally, font positions are used for backward compatibility.  From a
151       practical point of view, it doesn't make a big  difference—a  different
152       font  family  can  still be selected by invoking groff's fam request or
153       using its -f command-line option.  On the other hand, if  you  want  to
154       replace  just,  for  example,  font  I with Zapf Chancery Medium italic
155       (available on groff's pdf and ps output devices), you have to  use  the
156       fp  request,  replacing the font at position 2 with “.fp 2 ZCMI”).  Be‐
157       cause the cover sheet, memorandum type, and refer(1) integration macros
158       explicitly request fonts named B, I, and R, you will also need to remap
159       these font names with the ftr request, for instance with “.ftr I ZCMI”.
160

Macros

162       An explicitly empty argument may be specified with  a  pair  of  double
163       quotes;  to call a macro XX with an empty second argument but non-empty
164       first and third ones, you could input the following.
165
166              .XX foo "" baz
167
168       Macro names longer than two characters are GNU extensions; some shorter
169       names  were not part of DWB mm's published interface but are documented
170       aspects of groff mm.
171
172       )E level text
173              Add heading text text to the table of contents with level, which
174              is  either  0 or in the range 1 to 7.  See also H.  This undocu‐
175              mented DWB mm macro is exposed by groff mm to enable  customized
176              tables of contents.
177
178       1C [1] Format  page text in one column.  The page is broken.  A 1 argu‐
179              ment suppresses this break; its use may cause body  text  and  a
180              pending footnote to overprint.  See 2C, MC, and NCOL.
181
182       2C     Begin two-column formatting.  This is a special case of MC.  See
183              1C and NCOL.
184
185       AE     Abstract end; stop collecting abstract text.  See AS.
186
187       AF [firm-name]
188              Specify firm associated with the document.  At most one  can  be
189              declared;  the  firm name is used by memorandum types and avail‐
190              able to cover sheets.  AF terminates a  document  title  started
191              with TL, and can be called without an argument for that purpose.
192              See MT and COVER.
193
194       AL [type [text-indent [1]]]
195              Begin an auto-incrementing numbered list.  Item numbers start at
196              one.   The type argument assigns the register format (see above)
197              of the list item enumerators.  The default is 1.  An  explicitly
198              empty  type  also indicates the default.  A text-indent argument
199              overrides register Li.  A third argument  suppresses  the  blank
200              line  that  normally precedes each list item.  Use LI to declare
201              list items, and LE to end the list.
202
203       APP [id [title]]
204              Begin an appendix.  If the identifier id is omitted, it  is  in‐
205              cremented  (or  initialized, if necessary).  The register format
206              used for id is “A”.  The page is broken.  The register  Aph  de‐
207              termines  whether  an  appendix heading is then formatted.  This
208              heading uses the string App followed by id.   Appendices  appear
209              in  any table of contents (see TC).  The string Apptxt is set to
210              title if the latter is present, and made empty otherwise.
211
212       APPSK id n [title]
213              As APP, but increment the page number by n.  Use this  macro  to
214              “skip  pages”  when diagrams or other materials not formatted by
215              troff are included in appendices.
216
217       AS [placement [indentation]]
218              Abstract start; begin collecting abstract.  Input up to the next
219              AE  call  is included in the abstract.  placement influences the
220              location of the abstract on the cover sheet of a memorandum (see
221              MT).   COVER, by contrast, ignores placement by default, but can
222              be customized to interpret it.
223
224              placement   Effect
225              0           The abstract appears on page 1 and  cover  sheet  if
226                          the  document is a “released paper” memorandum (“.MT
227                          4”); otherwise, it appears on page 1 without a cover
228                          sheet.
229              1           The  abstract  appears only on the cover sheet (“.MT
230                          4” only).
231
232              An abstract does not appear at all  in  external  letters  (“.MT
233              5”).   A  placement  of  2 was supported by DWB mm but is not by
234              groff mm.
235
236              A second argument increases the indentation by  indentation  and
237              reduces the line length by twice this amount.  A scaling unit of
238              ens is assumed.  The default is 0.
239
240       AST [caption]
241              Set the caption above the abstract to caption, or  clear  it  if
242              there is no argument.  The default is “ABSTRACT”.
243
244       AT title ...
245              Specify  author's title(s).  If present, AT must appear just af‐
246              ter the corresponding author's AU.  Each title occupies an  out‐
247              put  line  beneath the author's name in the signature block used
248              by LT letters (see SG) and in MT memoranda.  The ms cover  sheet
249              style also uses it.
250
251       AU [name [initials [loc [dept [ext [room [arg1 [arg2 [arg3]]]]]]]]]
252              Specify author.  AU terminates a document title started with TL,
253              and can be called without arguments for  that  purpose.   Author
254              information is used by cover sheets, MT memoranda, and SG.  Fur‐
255              ther arguments comprise initials,  location,  department,  tele‐
256              phone extension, room number or name, and up to three additional
257              items.  Repeat AU to identify multiple authors.
258
259              Use WA/WE instead to identify the author for documents employing
260              LT.
261
262       AV [name [1]]
263              Format approval lines for a handwritten signature and date.  Two
264              horizontal rules are drawn, with the specified name and the text
265              of the string Letdate beneath them.  Above these rules, the text
266              in the string Letapp is formatted; a  second  argument  replaces
267              this text with a blank line.  See LT.
268
269       AVL [name]
270              As AV, but the date, date rule, and approval notation Letapp are
271              omitted.
272
273       B [bold-text [previous-font-text]] ...
274              Join bold-text in boldface with previous-font-text in the previ‐
275              ous font, without space between the arguments.  If no arguments,
276              switch font to bold style.
277
278       B1     Begin boxed, kept display.  The text is indented one  character,
279              and  the  right  margin is one character shorter.  This is a GNU
280              extension.
281
282       B2     End boxed, kept display.  This is a GNU extension.
283
284       BE     End bottom block; see BS.
285
286       BI [bold-text [italic-text]] ...
287              Join bold-text in boldface with italic-text in italics,  without
288              space between the arguments.
289
290       BL [text-indent [1]]
291              Begin  bulleted  list.   Items  are prefixed with a bullet and a
292              space.  A text-indent argument overrides register Pi.  A  second
293              argument  suppresses  blank  lines between items.  Use LI to de‐
294              clare list items, and LE to end the list.
295
296       BR [bold-text [roman-text]] ...
297              Join bold-text in boldface with roman-text in roman style, with‐
298              out space between the arguments.
299
300       BS     Begin  bottom block.  Input is collected until BE is called, and
301              output between the footnote area and footer of each page.
302
303       BVL [text-indent [mark-indent [1]]]
304              Begin broken variable-item (or “tagged”) list.  Each item is ex‐
305              pected  to supply its own mark.  The line is always broken after
306              the mark; contrast VL.  text-indent sets the indentation of  the
307              text,  and mark-indent the distance from the current list inden‐
308              tation to the mark.  A third argument suppresses the blank  line
309              that  normally  precedes each list item.  Use LI to declare list
310              items, and LE to end the list.
311
312       COVER [style]
313              Begin a cover page description.  COVER must  appear  before  the
314              body text (or main matter) of a document.  The argument style is
315              used to construct the file name /usr/share/groff/1.23.0/tmac/mm/
316              style.cov  and  load it with the mso request.  The default style
317              is ms; the ms.cov file prepares a cover page resembling those of
318              the ms package.  A .cov file must define a COVEND macro, which a
319              document must call at the end of  the  cover  description.   Use
320              cover  description macros in the following order; only TL and AU
321              are required.
322
323              .COVER
324              .TL
325              .AF
326              .AU
327              .AT
328              .AS
329              .AE
330              .COVEND
331
332       COVEND End the cover description.
333
334       DE     End static or floating display begun with DS or DF.
335
336       DF [format [fill [right-indentation]]]
337              Begin floating display.  A floating display is saved in a  queue
338              and  output  in  the order entered.  Arguments are handled as in
339              DS.  Floating displays cannot be nested.  Placement of  floating
340              displays is controlled by the registers De and Df.
341
342       DL [text-indent [1]]
343              Begin  dashed  list.   Items  are prefixed with an em dash and a
344              space.  A text-indent argument overrides register Pi.  A  second
345              argument  suppresses  blank  lines between items.  Use LI to de‐
346              clare list items, and LE to end the list.
347
348       DS [format [fill [right-indentation]]]
349              Begin static display.  Input until DE  is  called  is  collected
350              into  a  display.  The display is output on a single page unless
351              it is taller than the height of the  page.   DS  can  be  nested
352              (contrast with DF).
353
354              format   Effect
355              none     Do not indent the display.
356              L        Do not indent the display.
357              I        Indent text by \n[Si].
358              C        Center each line.
359              CB       Center the whole display as a block.
360              R        Right-adjust the lines.
361              RB       Right-adjust the whole display as a block.
362
363              The values “L”, “I”, “C”, and “CB” can also be specified as “0”,
364              “1”, “2”, and “3”, respectively, for compatibility with DWB mm.
365
366              fill   Effect
367              none   Disable filling.
368              N      Disable filling.
369              F      Enable filling.
370
371              “N” and “F” can also be specified as “0” and “1”,  respectively,
372              for compatibility with DWB mm.
373
374              A third argument reduces the line length by right-indentation.
375
376              mm  normally  places  blank  lines before and after the display.
377              Set register Ds to 0 to suppress these.
378
379       EC [title [override [flag [refname]]]]
380              Caption an equation.  The caption consists of  the  string  Liec
381              followed  by an automatically incrementing counter stored in the
382              register Ec, punctuation configured by the register Of, then ti‐
383              tle  (if any).  Use the af request to configure Ec's number for‐
384              mat.  override and flag alter the equation  number  as  follows.
385              Omitting flag and specifying 0 in its place are equivalent.
386
387              flag   Effect
388              0      Prefix number with override.
389              1      Suffix number with override.
390              2      Replace number with override.
391
392              Equation  captions are centered irrespective of the alignment of
393              any enclosing display.
394
395              refname stores the equation number using SETR;  it  can  be  re‐
396              treived  with  “.GETST  refname”.  This argument is a GNU exten‐
397              sion.
398
399              Captioned equations are listed in a table of contents  (see  TC)
400              if the Boolean register Le is true.  Such a list uses the string
401              Le as a heading.
402
403       EF ["'left'center'right'"]
404              Define the even-page footer, which is formatted just  above  the
405              normal  page footer on even-numbered pages.  See PF.  EF defines
406              the string EOPef.
407
408       EH ["'left'center'right'"]
409              Define the even-page header, which is formatted just  below  the
410              normal  page header on even-numbered pages.  See PH.  EH defines
411              the string TPeh.
412
413       EN     End equation input preprocessed by eqn(1); see EQ.
414
415       EOP    If defined, this macro is called in lieu of normal  page  footer
416              layout.   Headers  and footers are formatted in a separate envi‐
417              ronment.  See TP.
418
419              Strings available to EOP
420              ─────────────────────────
421              EOPf     argument to PF
422              EOPef    argument to EF
423              EOPof    argument to OF
424
425       EPIC [-L] width height [name]
426              Draw a box with the given width and height.  It also prints  the
427              text name or a default string if name is not specified.  This is
428              used to include external pictures; just give  the  size  of  the
429              picture.   -L left-aligns the picture; the default is to center.
430              See PIC.
431
432       EQ [label]
433              Start equation input preprocessed by eqn(1).  EQ  and  EN  macro
434              calls  bracket  an  equation  region.  Such regions must be con‐
435              tained in displays (DS/DE), except when the region is used  only
436              to  configure  eqn and not to produce output.  If present, label
437              appears aligned to the right and centered vertically within  the
438              display;  see register Eq.  If multiple eqn regions occur within
439              a display, only the last label (if any) is used.
440
441       EX [title [override [flag [refname]]]]
442              Caption an exhibit.  Arguments are handled  analogously  to  EC.
443              The  register  Ex  is the exhibit counter.  The string Liex pre‐
444              cedes the exhibit number and any title.   Exhibit  captions  are
445              centered irrespective of the alignment of any enclosing display.
446
447              Captioned exhibits are listed in a table of contents (see TC) if
448              the Boolean register Lx is true.  Such a list uses the string Lx
449              as a heading.
450
451       FC [closing-text]
452              Output  the  string Letfc, or the specified closing-text, as the
453              formal closing of a letter.
454
455       FD [arg [1]]
456              Configure display of footnotes.  The first argument encodes  en‐
457              ablement  of automatic hyphenation, adjustment to the right mar‐
458              gin, indentation of footnote text, and left- vs. right-alignment
459              of the footnote label within the space allocated for it.
460
461              arg   Hyphenate?   Adjust?   Indent?   Label alignment
462              0     no           yes       yes       left
463              1     yes          yes       yes       left
464              2     no           no        yes       left
465              3     yes          no        yes       left
466              4     no           yes       no        left
467              5     yes          yes       no        left
468              6     no           no        no        left
469              7     yes          no        no        left
470              8     no           yes       yes       right
471              9     yes          yes       yes       right
472              10    no           no        yes       right
473              11    yes          no        yes       right
474
475              An arg greater than 11 is treated as 0.  mm's default is 0.
476
477              If  a second argument, conventionally 1, is given, footnote num‐
478              bering is reset when a first-level heading is encountered.   See
479              FS.
480
481       FE     End footnote; see FS.
482
483       FG [title [override [flag [refname]]]]
484              Caption a figure.  Arguments are handled analogously to EC.  The
485              register Fg is the figure counter.  The string Lifg precedes the
486              figure number and any title.  Figure captions are centered irre‐
487              spective of the alignment of any enclosing display.
488
489              Captioned figures are listed in a table of contents (see TC)  if
490              the Boolean register Lf is true.  Such a list uses the string Lf
491              as a heading.
492
493       FS [label]
494              Start footnote.  Input until FE is called is  collected  into  a
495              footnote.   By  default,  footnotes  are  automatically numbered
496              starting at 1; the number is available in register :p and,  with
497              a  trailing period, in string F.  This string precedes the foot‐
498              note text at the bottom of the column or  page.   Footnotes  are
499              vertically separated by the product of registers Fs and Lsp.  In
500              groff mm, footnotes may be used in displays.
501
502              A label argument replaces the contents of the string F; it  need
503              not  be numeric.  In this event, the footnote marker in the body
504              text must be explicitly written.
505
506       GETHN refname [varname]
507              Include the heading number where the corresponding  “.SETR  ref‐
508              name” was placed.  This is displayed as “X.X.X.” in pass 1.  See
509              INITR.  If varname is used, GETHN sets the string varname to the
510              heading number.
511
512       GETPN refname [varname]
513              Include  the page number where the corresponding “.SETR refname”
514              was placed.  This is displayed as “9999” in pass 1.  See  INITR.
515              If  varname  is  used, GETPN sets the string varname to the page
516              number.
517
518       GETR refname
519              Combine GETHN and GETPN with the text “chapter”  and  “,  page”.
520              The string Qrf contains the text for the cross reference:
521
522                     .ds Qrf See chapter \\*[Qrfh], page \\*[Qrfp].
523
524              Qrf may be changed to support other languages.  Strings Qrfh and
525              Qrfp are set by GETR and contain the page  and  heading  number,
526              respectively.
527
528       GETST refname [varname]
529              Include  the  string  saved  with  the second argument to .SETR.
530              This is a dummy string in pass 1.  If  varname  is  used,  GETST
531              sets it to the saved string.  See INITR.
532
533       H level [title [suffix]]
534              Set  a  numbered section heading at level.  mm produces numbered
535              heading marks of the form a.b.c..., with up to  fourteen  levels
536              of  nesting.   Each  level's number increases automatically with
537              each H call and is reset to zero when a more  significant  level
538              is  specified.  “1” is the most significant or coarsest division
539              of the document.  Text after an H call is formatted as  a  para‐
540              graph; calling P is unnecessary.
541
542              title  specifies  an optional title; it must be double-quoted if
543              it contains spaces.  mm appends suffix to title in the  body  of
544              the  document, but omits it from any table of contents (see TC).
545              This facility can be used to annotate the heading title  with  a
546              footnote.  suffix should not interpolate the F string; specify a
547              footnote mark explicitly.  See FS.
548
549              Heading behavior is highly configurable.  Several registers  set
550              a  threshold,  where  heading  levels  at or below the threshold
551              value are handled in one way, and those above it  another.   For
552              example,  a heading level within the threshold of register Cl is
553              included in the table of contents (see TC).
554
555              Heading layout.  Register Ej sets a threshold for page  breaking
556              (ejection) prior to a heading.  If not preceded by a page break,
557              a heading level below the threshold in register Hps is  preceded
558              by  the  amount  of  vertical space in register Hps1, and by the
559              amount in Hps2 otherwise.  The Hb register sets a threshold  be‐
560              low which a break occurs after the heading, and register Hs sets
561              a threshold below which vertical space follows it.  If the head‐
562              ing  level  is  not less than both of these, a run-in heading is
563              produced; paragraph text follows on the same output line.   Oth‐
564              erwise,  register  Hi  configures  the indentation of text after
565              headings.  Threshold register Hc enables the centering of  head‐
566              ings;  a heading level below both of the Hb and Hc thresholds is
567              centered.
568
569              Heading typeface and size.  The fonts used for  heading  numbers
570              and  titles  at each level are configured by the HF string.  The
571              string HP likewise assigns a type size to  each  heading  level.
572              The  vertical  spacing used by headings may be controlled by the
573              user-definable macros HX and/or HZ.
574
575              Heading number format.  Registers named  H1  through  H14  store
576              counters for each heading level.  Their values are printed using
577              Arabic numerals by default; see  HM.   The  heading  levels  are
578              catenated with dots for formatting; to typeset only the deepest,
579              set the Ht register.  Heading numbers are not  suffixed  with  a
580              trailing dot except when only the first level is output; to omit
581              a dot in this case as well, clear the H1dot register.
582
583              Customizing heading behavior.  mm calls hook  macros  to  enable
584              further  customization  of  headings.  (DWB mm called these “ex‐
585              its”.)  They can be used to change the heading's mark (the  num‐
586              bered  portion  before any heading title), its vertical spacing,
587              and its vertical space requirements (for instance, to require  a
588              minimum  quantity  of  subsequent  output  lines).   Define hook
589              macros in expectation of the following parameters.  The argument
590              declared-level  is  the level argument to H, or 0 for unnumbered
591              headings (see HU).  actual-level is the same  as  declared-level
592              for  numbered  headings, and the value of register Hu for unnum‐
593              bered headings.  title is the corresponding argument to H or HU.
594
595              HX declared-level actual-level title
596                     mm calls HX before setting the heading.  Your  definition
597                     may alter }0, }2, and ;3.
598
599                     }0 (string)
600                            contains  the  heading mark plus two spaces if de‐
601                            clared-level is non-zero, and otherwise is empty.
602
603                     ;0 (register)
604                            encodes a position for the text after the heading.
605                            0  means that the heading is to be run in, 1 means
606                            that a break is to  occur  before  the  text,  and
607                            2 means that vertical space is to separate heading
608                            and text.
609
610                     }2 (string)
611                            is the suffix that separates a run-in heading from
612                            the  text.   It contains two spaces if register ;0
613                            is 0, and otherwise is empty.
614
615                     ;3 (register)
616                            contains the vertical space required for the head‐
617                            ing  to  be typeset.  If that amount is not avail‐
618                            able, the page is broken  prior  to  the  heading.
619                            The default is 2v.
620
621              HY declared-level actual-level title
622                     mm  calls  HY  after  determing  the heading typeface and
623                     size.  It could be used to change indentation.
624
625              HZ declared-level actual-level title
626                     mm calls HZ after formatting the heading, just  before  H
627                     or  HU  returns.   It  could  be  used to change the page
628                     header to include a section heading.
629
630       HC [hyphenation-character]
631              Set hyphenation character.  Default value is  “\%”.   Resets  to
632              the  default  if  called  without  argument.  Hyphenation can be
633              turned off by setting register Hy to 0 at the beginning  of  the
634              file.
635
636       HM [arg1 [arg2 [... [arg14]]]]
637              Set the heading mark style.  Each argument assigns the specified
638              register format (see above) to the corresponding heading  level.
639              The  default  is 1 for all levels.  An explicitly empty argument
640              also indicates the default.
641
642       HU heading-text
643              Set an unnumbered section heading.  Except for a heading number,
644              it  is treated as a numbered heading of the level stored in reg‐
645              ister Hu; see H.
646
647       I [italic-text [previous-font-text]] ...
648              Join italic-text in italics with previous-font-text in the  pre‐
649              vious  font,  without  space between the arguments.  If no argu‐
650              ments, switch font to italic style.
651
652       IA [recipient-name [title]]
653              Specify the inside address in a letter.  Input is collected into
654              the inside address until IE is called, and then output.  You can
655              specify multiple recipients with empty  IA/IE  pairs;  only  the
656              last  address is used.  The arguments give each recipient a name
657              and title.  See LT.
658
659       IB [italic-text [bold-text]] ...
660              Join italic-text in italics with bold-text in boldface,  without
661              space between the arguments.
662
663       IE     End the inside address begun with IA.
664
665       IND argument ...
666              If  the  Boolean register Ref is true, write an index entry as a
667              specially prepared roff comment to the  standard  error  stream,
668              with each argument separated from its predecessor by a tab char‐
669              acter.  The entry's location information is arranged as  config‐
670              ured by the most recent INITI call.
671
672       INDP   Output the index set up by INITI and populated by IND calls.  By
673              default, INDP calls SK and writes a centered caption interpolat‐
674              ing  the  string  Index.  It then disables filling and calls 2C;
675              afterward, it restores filling and calls 1C.
676
677              Define macros to customize this behavior.  INDP calls TXIND  be‐
678              fore  the  caption,  TYIND  instead  of writing the caption, and
679              TZIND after formatting the index.
680
681       INITI location-type file-name [macro]
682              Initialize groff mm's indexing system.   Argument  location-type
683              selects how the location of each index entry is reported.  file-
684              name populates an internal string used later by INDP.
685
686              location-type   Entry format
687              N               page number
688              H               heading mark
689              B               page number, tab character, heading mark
690
691              If macro is specified, it is called for each  index  entry  with
692              the arguments given to IND.
693
694       INITR id
695              Initialize  the  cross  reference  macros.  Cross references are
696              written to the standard error stream, which should be redirected
697              into  a  file  named id.qrf.  mmroff(1) handles this and the two
698              formatting passes it requires.  The first pass identifies  cross
699              references, and the second one includes them.
700
701              See SETR, GETPN, and GETHN.
702
703       IR [italic-text [roman-text]] ...
704              Join  italic-text  in  italics  with  roman-text in roman style,
705              without space between the arguments.
706
707       ISODATE [0]
708              Use ISO 8601 format for the date string DT used  by  some  cover
709              sheet and memorandum types; that is, YYYY-MM-DD.  Must be called
710              before ND to be effective.  If given an argument of 0, the  tra‐
711              ditional  date format for the groff locale is used; this is also
712              the default.
713
714       LB text-indent mark-indent pad type  [mark  [pre-item-space  [pre-list-
715       space]]]
716              Begin  list.  The macros AL, BL, BVL, DL, ML, RL, and VL call LB
717              in various ways; they are simpler to use and may be preferred if
718              they suit the desired purpose.
719
720              The nesting level of lists is tracked by mm; the outermost level
721              is 0.  The text of each list item is  indented  by  text-indent;
722              the default is taken from the Li register (in ens).  Each item's
723              mark is indented by mark-indent; the default is 0n.  The mark is
724              normally left-aligned.  If pad is greater than zero, mark-indent
725              is overridden such that pad ens of space follow the mark.   type
726              selects one of six possible ways to display the mark.
727
728              type   Output for a mark “x”
729              1      x.
730              2      x)
731              3      (x)
732              4      [x]
733              5      <x>
734              6      {x}
735
736              If  type  is 0 and mark is unspecified, the items are set with a
737              hanging indent.  Otherwise, mark  is  interpreted  as  a  string
738              defining  the mark.  If type is greater than zero, items are au‐
739              tomatically numbered; mark is interpreted as a register  format.
740              The default type is 0.
741
742              The  last  two arguments manage vertical space.  Unless a list's
743              nesting level is greater than the  value  of  register  Ls,  its
744              items  are preceded by pre-item-space multiplied by the register
745              Lsp; the default is 1.  LB precedes the list  by  pre-list-space
746              multiplied by the register Lsp; the default is 0.
747
748       LC [list-level]
749              Clear  list  state.   Active lists are terminated as if with LE,
750              either all (the default) or only those from  the  current  level
751              down to list-level if specified.  H calls LC automatically.
752
753       LE [1] End  list.   The  current  list is terminated.  An argument of 1
754              causes vertical space in the amount of register  Lsp  to  follow
755              the list.
756
757       LI [mark [item-mark-mode]]
758              Begin  a  list  item.  Input is collected into a list item until
759              the current list is terminated or LI is called  again.   By  de‐
760              fault, the item's text is preceded by any mark configured by the
761              current list.  If only mark is specified, it replaces  the  con‐
762              figured mark.  A second argument prefixes mark to the configured
763              mark; an item-mark-mode value of 1 places an  unbreakable  space
764              after mark, while a value of 2 does not (rendering the two adja‐
765              cent).  Also see register Limsp.
766
767       LO option [value]
768              Specify letter options; see LT.  Standard options  are  as  fol‐
769              lows.  See IA regarding the inside address and string DT regard‐
770              ing the date.
771
772              option   Effect
773              AT       Attention; put contents of string LetAT and value left-
774                       aligned after the inside address.
775              CN       Confidential;  put  value, or contents of string LetCN,
776                       left-aligned after the date.
777              RN       Reference; put contents of string LetRN and value after
778                       the confidental notation (if any) and the date, aligned
779                       with the latter.
780              SA       Salutation; put value, or  contents  of  string  LetSA,
781                       left-aligned after the inside address and the confiden‐
782                       tal notation (if any).
783              SJ       Subject; put contents of string LetSJ and  value  left-
784                       aligned  after the inside address and the attention and
785                       salutation notations (if any).  In  letter  type  “SP”,
786                       LetSJ is ignored and value is set in full capitals.
787
788       LT [style]
789              Format  a  letter in the designated style, defaulting to BL (see
790              below).  A letter begins with the writer's address (WA/WE), fol‐
791              lowed  by the date (ND), the inside address (IA/IE), the body of
792              the letter (P and other general-purpose mm macros),  the  formal
793              closing (FC), the signature (SG), and notations (NS/NE).  Any of
794              these may be omitted.  Letter options specified with LO add fur‐
795              ther  annotations, which are extensible; see section “Internals”
796              below.
797
798              style   Description
799              BL      Blocked: the writer's address, date, formal closing, and
800                      signature  are  indented to the center of the line.  Ev‐
801                      erything else is left-aligned.
802              SB      Semi-blocked: as BL, but the first line  of  each  para‐
803                      graph is indented by 5m.
804              FB      Fully blocked: everything begins at the left margin.
805              SP      Simplified:  as FB, but a formal closing is omitted, and
806                      the signature is set in full capitals.
807
808       MC column-width [gutter-width]
809              Begin multi-column layout.  groff mm creates as many columns  of
810              column-width  as  the  line length will permit.  gutter-width is
811              the interior spacing between columns.  It  defaults  to  column-
812              width/15.   1C returns to single-column layout.  MC is a GNU ex‐
813              tension.  See MULB for an alternative.
814
815       ML mark [text-indent [1]]
816              Start a list with the mark argument preceding  each  list  item.
817              text-indent  overrides the default indentation of the list items
818              set by register Li.  If a third argument, conventionally  1,  is
819              given,  the  blank line that normally precedes each list item is
820              suppressed.  Use LI to declare list items, and  LE  to  end  the
821              list.
822
823       MT [type [addressee]]
824              Select  memorandum  type.   These  correspond to formats used by
825              AT&T Bell Laboratories, where the mm package was  initially  de‐
826              veloped,  affecting the document layout.  Some of these included
827              a cover page with a caption categorizing the document.  groff mm
828              uses  type  to  construct the file name /usr/share/groff/1.23.0/
829              tmac/mm/type.MT and load it with the  mso  request.   Memorandum
830              types 0 to 5 are supported; any other value of type is mapped to
831              type 6.  If type is omitted, 0 is  implied.   addressee  sets  a
832              string analogous to one used by AT&T cover sheet macros that are
833              not implemented in groff mm.
834
835              type   Description
836              0      normal memorandum; no caption
837              1      captioned “MEMORANDUM FOR FILE”
838              2      captioned “PROGRAMMER'S NOTES”
839              3      captioned “ENGINEER'S NOTES”
840              4      released paper
841              5      external letter
842
843              See COVER for a more flexible cover sheet mechanism.
844
845       MOVE y-pos [x-pos [line-length]]
846              Move to a position, setting page  offset  to  x-pos.   If  line-
847              length is not given, the difference between current and new page
848              offset is used.  Use PGFORM without arguments to return to  nor‐
849              mal.
850
851       MULB cw1 space1 [cw2 space2] ... cwn
852              Begin  alternative multi-column mode.  All column widths must be
853              specified, as must the amount of space between each column pair.
854              The arguments' default scaling unit is n.  MULB uses a diversion
855              and operates in a separate environment.
856
857       MULN   Begin next column in alternative column mode.
858
859       MULE   End alternative multi-column mode and emit the columns.
860
861       NCOL   Move to the start of the next column (only when using 2C or MC).
862              Contrast with MULN.
863
864       ND [arg]
865              Set the document's date.  mm does not interpret arg; it can be a
866              revision identifier (or empty).
867
868       NE     End notation begun with NS; filling is enabled.
869
870       nP [type]
871              Begin a numbered paragraph at heading level two.  See P.
872
873       NS [code [1]]
874              Declare notations, typically for letters or  memoranda,  of  the
875              type  specified by code.  The text corresponding to code is out‐
876              put, and filling is disabled until NE is called.   Typically,  a
877              list  of names or attachments lies within NS/NE.  If code is ab‐
878              sent or does not match one of the values listed under the  Letns
879              string description below, each line of notations is formatted as
880              “Copy (line) to”.  If a second argument,  conventionally  1,  is
881              given, code becomes the entire notation and NE is not necessary.
882              In groff mm, you can set up further notations to  be  recognized
883              by NS; see the strings Letns and Letnsdef below.
884
885       OF ["'left'center'right'"]
886              Define  the  odd-page  footer, which is formatted just above the
887              normal page footer on odd-numbered pages.  See PF.   OF  defines
888              the string EOPof.
889
890       OH ["'left'center'right'"]
891              Define  the  odd-page  header, which is formatted just below the
892              normal page header on odd-numbered pages.  See PH.   OH  defines
893              the string TPoh.
894
895       OP     Make  sure  that  the following text is printed at the top of an
896              odd-numbered page.  Does not output an empty page  if  currently
897              at the top of an odd page.
898
899       P [type]
900              Begin new paragraph.  If type is missing or  0, P sets the para‐
901              graph fully left-aligned.  A type of 1 idents the first line  by
902              \[Pi]  ens.   Set  the register Pt to select a default paragraph
903              indentation style.  The register Ps controls the vertical  spac‐
904              ing between paragraphs.
905
906       PE     Picture end; see pic(1).
907
908       PF ["'left'center'right'"]
909              Define  the  page footer.  The footer is formatted at the bottom
910              of each page; the argument is otherwise as described in PH.   PF
911              defines the string EOPf.  See EF, OF, and EOP.
912
913       PGFORM [linelength [pagelength [pageoffset [1]]]]
914              Set  line  length,  page length, and/or page offset.  This macro
915              can be used for letterheads and similar.   It  is  normally  the
916              first  macro call in a file, though it is not necessary.  PGFORM
917              can be used without arguments to reset everything after  a  MOVE
918              call.  A line break is done unless the fourth argument is given.
919              This can be used to avoid the page  number  on  the  first  page
920              while  setting new width and length.  (It seems as if this macro
921              sometimes doesn't work too well.  Use the command-line arguments
922              to change line length, page length, and page offset instead.)
923
924       PGNH   Suppress header on the next page.  This macro must be called be‐
925              fore any macros that produce output to affect the layout of  the
926              first page.
927
928       PH ["'left'center'right'"]
929              Define  the  page  header, formatted at the top of each page, as
930              the argument, where left, center, and right are aligned  to  the
931              respective locations on the line.  A “%” character in arg is re‐
932              placed by the page number.  If the argument is absent,  no  page
933              header is set.  The default page header is
934                     "''- % -''"
935              which  centers the page number between hyphens and formats noth‐
936              ing at the upper left and right.  Header macros call PX (if  de‐
937              fined)  after formatting the header.  PH defines the string TPh.
938              See EH, OH, and TP.
939
940       PIC [-B] [-C|-I n|-L|-R] file [width [height]]
941              Include PostScript document  file.   The  optional  -B  argument
942              draws  a  box  around the picture.  The optional -L, -C, -R, and
943              -I n arguments align the picture or indent it by n  (assuming  a
944              scaling  unit  of  m).  By default, the picture is left-aligned.
945              Optional width and height arguments resize the picture.  Use  of
946              this   macro   requires   two-pass  processing;  see  INITR  and
947              mmroff(1).
948
949       PS     Picture start; see pic(1).
950
951       PY     Picture end with flyback.  Ends a pic(1) picture, returning  the
952              vertical position to where it was prior to the picture.  This is
953              a GNU extension.
954
955       R [roman-text [previous-font-text]] ...
956              Join roman-text in roman style with  previous-font-text  in  the
957              previous font, without space between the arguments.  If no argu‐
958              ments, switch font to roman style.
959
960       RB [roman-text [bold-text]] ...
961              Join roman-text in roman style with bold-text in boldface, with‐
962              out space between the arguments.
963
964       RD [prompt [diversion [string]]]
965              Read  from  standard input to diversion and/or string.  The text
966              is saved in a diversion named diversion.   Recall  the  text  by
967              writing  the name of the diversion after a dot on an empty line.
968              A string is also defined if string is given.   Diversion  and/or
969              prompt can be empty ("").
970
971       RF     Reference  end.  Ends a reference definition and returns to nor‐
972              mal processing.  See RS.
973
974       RI [roman-text [italic-text]] ...
975              Join roman-text in roman  style  with  italic-text  in  italics,
976              without space between the arguments.
977
978       RL [text-indent [1]]
979              Begin reference list.  Each item is preceded by an automatically
980              incremented number between square brackets; compare  AL.   text-
981              indent  changes the default indentation.  Use LI to declare list
982              items, and LE to end the list.  A second  argument,  convention‐
983              ally  1,  suppresses  the blank line that normally precedes each
984              list item.
985
986       RP [suppress-counter-reset [page-ejection-policy]]
987              Format a reference page, listing items accumulated within  RS/RF
988              pairs.  The reference counter is reset unless the first argument
989              is 1.  Normally, page breaks occur before and after  the  refer‐
990              ences are output; the register Rpe configures this behavior, and
991              a second argument overrides its value.  TC  calls  RP  automati‐
992              cally if references have accumulated.
993
994              References  are  list  items,  and thus are vertically separated
995              (see LB).  Setting register Ls to  0  suppresses  this  spacing.
996              The string Rp contains the reference page caption.
997
998       RS [reference-string]
999              Begin  an  automatically  numbered reference definition.  By de‐
1000              fault, references are numbered starting  at  1;  the  number  is
1001              available  in  register :R.  Interpolate the string Rf where the
1002              reference mark should be and write the reference  between  RS/RF
1003              on  an input line after the reference mark.  If reference-string
1004              is specified, groff ms also  stores  the  reference  mark  in  a
1005              string  of that name, which can be interpolated as \*[reference-
1006              string] subsequently.
1007
1008       S [type-size [vertical-spacing]]
1009              Set type size and vertical spacing.  Each argument  is  a  groff
1010              measurement, using an appropriate scaling unit and an optional +
1011              or - prefix to increment or decrement the current value.  An ar‐
1012              gument of P restores the previous value, C indicates the current
1013              value, and D requests the default.  An empty or omitted argument
1014              is treated as P.
1015
1016       SA [mode]
1017              Set  or restore the default enablement of adjustment.  Specify 0
1018              or 1 as mode to set a document's default explicitly;  1  is  as‐
1019              sumed  by  mm.  Adjustment can be temporarily suspended with the
1020              na request.  When the H or HU macros are used to format a  head‐
1021              ing,  or  when SA is called without a mode argument, the default
1022              adjustment is restored.
1023
1024       SETR refname [string]
1025              Remember the current heading and page numbers as refname.  Saves
1026              string  if  string  is defined.  string is retrieved with GETST.
1027              See INITR.
1028
1029       SG [arg [1]]
1030              Signature line.  Prints the authors  name(s)  after  the  formal
1031              closing.   The  argument  is  appended  to  the  reference data,
1032              printed at either the first or last author.  The reference  data
1033              is the location, department, and initials specified with AU.  It
1034              is printed at the first author if the second argument is  given,
1035              otherwise  at the last.  No reference data is printed if the au‐
1036              thor(s) is specified through WA/WE.  See section “Internals” be‐
1037              low.
1038
1039       SK [n] Skip  n  pages.  If n is 0 or omitted, the page is broken unless
1040              the drawing position is already at the top of  a  page.   Other‐
1041              wise,  n  pages,  blank  except for any headers and footers, are
1042              printed.
1043
1044       SM text [post]
1045       SM pre text post
1046              Format text at a smaller type size, joined  with  any  specified
1047              pre and post at normal size.
1048
1049       SP [lines]
1050              Space  vertically.  lines can have any scaling factor, like “3i”
1051              or “8v”.  Several SP calls in a line only produces  the  maximum
1052              number  of  lines,  not  the  sum.  SP is ignored also until the
1053              first text line in a page.  Add \& before a call to SP to  avoid
1054              this.
1055
1056       TAB    Reset tab stops to every 5 ens.
1057
1058       TB [title [override [flag [refname]]]]
1059              Caption  a table.  Arguments are handled analogously to EC.  The
1060              register Tb is the table counter.  The string Litb precedes  the
1061              table  number  and any title.  Table captions are centered irre‐
1062              spective of the alignment of any enclosing display.
1063
1064              Captioned tables are listed in a table of contents (see  TC)  if
1065              the Boolean register Lt is true.  Such a list uses the string Lt
1066              as a heading.
1067
1068       TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]
1069              Output table of contents.   This  macro  is  normally  the  last
1070              called in the document.  It flushes any pending displays and, if
1071              any references are pending (see RS), calls RP.  It then begins a
1072              new  page with the contents caption, stored in the string Licon,
1073              centered at the top.  The entries follow  after  three  vees  of
1074              space.  Each entry is a saved section (number and) heading title
1075              (see the Cl register), along with its  associated  page  number.
1076              By  default,  an entry is indented by an amount corresponding to
1077              its heading level and the maximum heading length encountered  at
1078              that  heading  level;  if defined, the string Ci overrides these
1079              indentations.  Entries at heading levels  up  to  and  including
1080              slevel  are preceded by spacing vees of space.  Entries at head‐
1081              ing levels up to and including tlevel are followed by  a  leader
1082              and  a right-aligned page number.  If the Boolean-valued tab ar‐
1083              gument is true, the leader is replaced with horizontal motion in
1084              the  same  amount.   For entries above heading level tlevel, the
1085              page number follows the heading text after a word  space.   Each
1086              argument  h1...h5  appears  in  order on its own line, centered,
1087              above the contents caption.  Page numbering restarts  at  1,  in
1088              register  format  “i”.  If the Oc register is true, numbering of
1089              these pages is suppressed.
1090
1091              If TC is called with at most four arguments, it calls the  user-
1092              defined  macro  TX (if defined) prior to formatting the contents
1093              caption, and TY (if defined) instead of formatting the  contents
1094              caption.
1095
1096              Analogous  handling  of lists of figures, tables, equations, and
1097              exhibits is achieved by defining TXxx and TYxx macros, where  xx
1098              is  “FG”,  “TB”,  “EC”,  or  “EX”, respectively.  Similarly, the
1099              strings Lifg, Litb, Liex, and Liec determine captions for  their
1100              respective lists.
1101
1102       TE     Table end.  See TS.
1103
1104       TH     End  table  heading.   It is repeated after page breaks within a
1105              table.  See TS.  The N argument supported by DWB mm is  not  im‐
1106              plemented by groff mm.
1107
1108       TL [charging-case-number [filing-case-number]]
1109              Begin  document  title.  Input is collected into the title until
1110              AF or AU is called, and output as directed by  the  cover  page.
1111              charging-case-number and filing-case-number are saved for use in
1112              memorandum types 0 and 5.  See MT.
1113
1114       TM number ...
1115              Declare technical memorandum number(s) used by MT.
1116
1117       TP     If defined, this macro is called in lieu of normal  page  header
1118              layout.   Headers  and footers are formatted in a separate envi‐
1119              ronment.  See EOP.
1120
1121              Strings available to TP
1122              ────────────────────────
1123              TPh     argument to PH
1124              TPeh    argument to EH
1125              TPoh    argument to OH
1126
1127       TS [H] Table start.  Argument “H” tells mm that the table has  a  head‐
1128              ing.  See TE, TH, and tbl(1).
1129
1130       VERBON [format [type-size [font]]]
1131              Begin verbatim display, where characters have equal width.  for‐
1132              mat controls several parameters.  Add up the values  of  desired
1133              features; the default is 0.  On typesetting devices, further ar‐
1134              guments configure the type-size in scaled points, and  the  face
1135              (font); the default is CR (Courier roman).
1136
1137              Value   Effect
1138              1       Disable the formatter's escape character (\).
1139              2       Vertically space before the display.
1140              4       Vertically space after the display.
1141              8       Number  output  lines;  call formatter's nm request with
1142                      arguments in string Verbnm.
1143              16      Indent by the amount stored in register Verbin.
1144
1145       VERBOFF
1146              End verbatim display.
1147
1148       VL [text-indent [mark-indent [1]]]
1149              Begin variable-item (or “tagged”) list.  Each item should supply
1150              its  own  mark,  or tag.  If the mark is wider than mark-indent,
1151              one space separates  it  from  subsequent  text;  contrast  BVL.
1152              text-indent  sets  the  indentation of the text, and mark-indent
1153              the distance from the current list indentation to the  mark.   A
1154              third  argument suppresses the blank line that normally precedes
1155              each list item.  Use LI to declare list items, and LE to end the
1156              list.
1157
1158       VM [-T] [top [bottom]]
1159              Vertical  margin.  Increase the top and bottom margin by top and
1160              bottom, respectively.  If option -T is specified, set those mar‐
1161              gins to top and bottom.  If no argument is given, reset the mar‐
1162              gin to zero, or to the default (“7v 5v”) if -T is used.   It  is
1163              highly  recommended that macros TP and/or EOP are defined if us‐
1164              ing -T and setting top and/or bottom margin to less than the de‐
1165              fault.  This undocumented DWB mm macro is exposed by groff mm to
1166              increase user control of page layout.
1167
1168       WA [writer's-name [title]]
1169              Specify the writer(s) of an LT letter.  Input is collected  into
1170              the  writer's  address until WA is called, and then output.  You
1171              can specify multiple writers with empty WA/WE  pairs;  only  the
1172              last address is used.  The arguments give each writer a name and
1173              title.
1174
1175       WC [format ...]
1176              Control width of footnotes and displays.
1177
1178              format   Effect
1179              N        equivalent to “-WF -FF -WD” (default)
1180              WF       set footnotes at full line length, even  in  two-column
1181                       mode
1182              -WF      set footnotes using column line length
1183              FF       apply  width of first footnote to encountered to subse‐
1184                       quent ones
1185              -FF      footnote width determined by WF and -WF
1186              WD       set displays at full line length,  even  in  two-column
1187                       mode
1188              -WD      set displays using column line length
1189
1190       WE     End the writer's address begun with WA.
1191

Strings

1193       Many  mm  strings  interpolate predefined, localizable text.  These are
1194       presented in quotation marks.
1195
1196       App    “APPENDIX”
1197
1198       Apptxt stores the title argument to the last APP call.
1199
1200       BU     interpolates a bullet (see BL).
1201
1202       Ci     is a list of indentation amounts to use for  table  of  contents
1203              heading  levels,  overriding  their automatic computation.  Each
1204              word must be a horizontal measurement (like “1i”) and is  mapped
1205              one-to-one to heading levels 1, 2, and so on.
1206
1207       DT     The date; set by the ND macro (defaults to the date the document
1208              is formatted).  The format is the conventional one for the groff
1209              locale, but see the ISODATE macro and Iso register.
1210
1211       EM     interpolates an em dash.
1212
1213       F      interpolates an automatically numbered footnote marker; the num‐
1214              ber is used by the next FS call without an argument.   In  troff
1215              mode,  the  marker  is  superscripted; in nroff mode, it is sur‐
1216              rounded by square brackets.
1217
1218       H1txt  Updated by .H and .HU to the current heading text.  Also updated
1219              in table of contents & friends.
1220
1221       HF     assigns font identifiers, separated by spaces, to heading levels
1222              in one-to-one correspondence.  Each identifier  may  be  a  font
1223              mounting position, font name, or style name.  Omitted values are
1224              assumed to be 1.  The default is “2 2 2 2 2 2 2 2 2 2 2 2 2  2”,
1225              which places all headings in italics.  DWB mm's default was “3 3
1226              2 2 2 2 2”.
1227
1228       HP     assigns type sizes, separated by spaces, to  heading  levels  in
1229              one-to-one  correspondence.   Each size is interpreted in scaled
1230              points; zero values are translated to 10.   Omitted  values  are
1231              assumed  to  be 0 (and are translated accordingly).  The default
1232              is “0 0 0 0 0 0 0 0 0 0 0 0 0 0”.
1233
1234       Index  “INDEX”
1235
1236       Le     “LIST OF EQUATIONS”
1237
1238       Letfc  “Yours very truly,” (see FC)
1239
1240       Letapp “APPROVED:” (see AV)
1241
1242       LetAT  “ATTENTION:” (see LO)
1243
1244       LetCN  “CONFIDENTIAL” (see LO)
1245
1246       Letdate
1247              “Date” (see AV)
1248
1249       Letns  is a group of strings structuring the notations produced by  NS.
1250              If  the code argument to NS has no corresponding string, the no‐
1251              tation  is   included   between   parentheses,   prefixed   with
1252              Letns!copy,  and suffixed with Letns!to.  Observe the spaces af‐
1253              ter “Copy” and before “to”.
1254
1255              NS code   String       Contents
1256              0         Letns!0      Copy to
1257              1         Letns!1      Copy (with att.) to
1258              2         Letns!2      Copy (without att.) to
1259              3         Letns!3      Att.
1260              4         Letns!4      Atts.
1261              5         Letns!5      Enc.
1262              6         Letns!6      Encs.
1263              7         Letns!7      Under separate cover
1264              8         Letns!8      Letter to
1265              9         Letns!9      Memorandum to
1266              10        Letns!10     Copy (with atts.) to
1267              11        Letns!11     Copy (without atts.) to
1268              12        Letns!12     Abstract Only to
1269              13        Letns!13     Complete Memorandum to
1270              14        Letns!14     CC
1271              —         Letns!copy   Copy (with trailing space)
1272              —         Letns!to      to (note leading space)
1273
1274       Letnsdef
1275              Select the notation format used by NS when it is given no  argu‐
1276              ment.  The default is “0”.
1277
1278       LetRN  “In reference to:” (see LO)
1279
1280       LetSA  “To Whom It May Concern:” (see LO)
1281
1282       LetSJ  “SUBJECT:” (see LO)
1283
1284       Lf     “LIST OF FIGURES”
1285
1286       Licon  “CONTENTS”
1287
1288       Liec   “Equation”
1289
1290       Liex   “Exhibit”
1291
1292       Lifg   “Figure”
1293
1294       Litb   “TABLE”
1295
1296       Lt     “LIST OF TABLES”
1297
1298       Lx     “LIST OF EXHIBITS”
1299
1300       MO1...MO12
1301              “January” through “December”
1302
1303       Qrf    “See chapter \\*[Qrfh], page \\n[Qrfp].”
1304
1305       Rf     interpolates  an automatically numbered reference mark; the num‐
1306              ber is used by the next RS call.  In troff mode, the  marker  is
1307              superscripted;  in nroff mode, it is surrounded by square brack‐
1308              ets.
1309
1310       Rp     “REFERENCES”
1311
1312       Sm     interpolates ℠, the service mark sign.
1313
1314       Tcst   interpolates an indicator of the TC macro's  processing  status.
1315              If  TC  is  not  operating, it is empty.  User-defined TP or EOP
1316              macros might condition page headers or footers on its contents.
1317
1318              Value   Meaning
1319              co      Table of contents
1320              fg      List of figures
1321              tb      List of tables
1322              ec      List of equations
1323              ex      List of exhibits
1324              ap      Appendix
1325
1326       Tm     interpolates ™, the trade mark sign.
1327
1328       Verbnm supplies argument(s) to the nm request employed  by  the  VERBON
1329              macro.  The default is “1”.
1330

Registers

1332       Default  register  values,  where meaningful, are shown in parentheses.
1333       Many are also marked as Boolean-valued, meaning that they  are  consid‐
1334       ered  “true” (on, enabled) when they have a positive value, and “false”
1335       (off, disabled) otherwise.
1336
1337       .mgm   indicates that groff mm is in use (Boolean-valued; 1).
1338
1339       :p     is an auto-incrementing footnote counter; see FS.
1340
1341       :R     is an auto-incrementing reference counter; see RS.
1342
1343       Aph    formats an appendix heading (and title, if  supplied);  see  APP
1344              (Boolean-valued; 1).
1345
1346       Au     includes  supplemental  author information (the third and subse‐
1347              quent arguments to AU) in  memorandum  “from”  information;  see
1348              COVER and MT (Boolean-valued; 1).
1349
1350       Cl     sets  the threshold for inclusion of headings in a table of con‐
1351              tents.  Headings at levels above this value are excluded; see  H
1352              and TC (2).  The Cl register controls whether a heading is saved
1353              for output in the table of contents at  the  time  H  or  HU  is
1354              called;  if  you  change Cl's value immediately prior to calling
1355              TC, you are unlikely to get the result you want.
1356
1357       Cp     suppresses page breaks before lists of captioned equations,  ex‐
1358              hibits,  figures,  and  tables, and before an index; see EC, EX,
1359              FG, TB, and INDP (Boolean-valued; 0).
1360
1361       D      produces debugging information for the mm package on  the  stan‐
1362              dard error stream.  A value of 0 outputs nothing; 1 reports for‐
1363              matting progress.  Higher values communicate internal state  in‐
1364              formation of increasing verbosity (0).
1365
1366       De     causes  a  page break after a floating display is output; see DF
1367              (Boolean-valued; 0).
1368
1369       Df     configures the behavior of DF.  The following values are  recog‐
1370              nized; 4 and 5 do not override the De register (5).
1371
1372              Value   Effect
1373              0       Flush  pending  displays at the end of each section when
1374                      section-page numbering is active, otherwise at  the  end
1375                      of the document.
1376              1       Flush a pending display on the current page or column if
1377                      there is enough space, otherwise at the end of the docu‐
1378                      ment.
1379              2       Flush  one  pending  display  at the top of each page or
1380                      column.
1381              3       Flush a pending display on the current page or column if
1382                      there is enough space, otherwise at the top of the next.
1383              4       Flush as many pending displays as possible in a new page
1384                      or column.
1385              5       Fill columns or pages with flushed displays  until  none
1386                      remain.
1387
1388       Ds     puts  vertical  space in the amount of register Dsp (if defined)
1389              or Lsp before and after each static display;  see  DS  (Boolean-
1390              valued; 1).
1391
1392       Dsp    configures  the amount of vertical space placed before and after
1393              static displays; see DS and register Ds (undefined).
1394
1395       Ec     is an auto-incrementing equation counter; see EC.
1396
1397       Ej     sets the threshold for page breaks (ejection) prior to the  for‐
1398              mat of headings.  Headings at levels above this value are set on
1399              the same page and column if possible; see H (0).
1400
1401       Eq     aligns an equation label to the left of a display instead of the
1402              right (Boolean-valued; 0).
1403
1404       Ex     is an auto-incrementing exhibit counter; see EX.
1405
1406       Fg     is an auto-incrementing figure counter; see FG.
1407
1408       Fs     is  multiplied by register Lsp to vertically separate footnotes;
1409              see FS (1).
1410
1411       H1...H14
1412              are auto-incrementing counters  corresponding  to  each  heading
1413              level; see H.
1414
1415       H1dot  appends  a  period  to  the number of a level one heading; see H
1416              (Boolean-valued; 1).
1417
1418       H1h    is a copy of A copy of register register H1, but  it  is  incre‐
1419              mented just before a page break.  This can be useful in user-de‐
1420              fined macros; see H and HX.
1421
1422       Hb     sets the threshold for breaking  the  line  after  formatting  a
1423              heading.  Text after headings at levels above this value are set
1424              on the same output line if possible; see H (2).
1425
1426       Hc     sets the threshold for centering a heading.  Headings at  levels
1427              above this value use the prevailing alignment (that is, they are
1428              not centered); see H (0).
1429
1430       Hi     configures the indentation of text after headings.  It does  not
1431              affect  “run-in” headings.  The following values are recognized;
1432              see H and P (1).
1433
1434              Value   Effect
1435              0       no indentation
1436              1       indent per the paragraph type
1437              2       indent to align with heading title
1438
1439       Hps    sets the heading level threshold for  application  of  preceding
1440              vertical  space;  see  H.  Headings at levels above the value in
1441              register Hps use the amount of space in register Hps1; otherwise
1442              that  in Hps2.  The value of Hps should be strictly greater than
1443              that of Ej (1).
1444
1445       Hps1   configures the amount of  vertical  space  preceding  a  heading
1446              above  the  Hps threshold; see H (troff devices: 0.5v; nroff de‐
1447              vices: 1v).
1448
1449       Hps2   configures the amount of vertical space preceding a  heading  at
1450              or  below the Hps threshold; see H (troff devices: 1v; nroff de‐
1451              vices: 2v).
1452
1453       Hs     sets the heading level threshold for application  of  succeeding
1454              vertical  space.   If  the heading level is greater than Hs, the
1455              heading is followed by vertical space in the  amount  of  regis‐
1456              ter Hss; see H (2).
1457
1458       Hss    is  multiplied  by  register Lsp to produce vertical space after
1459              headings above the threshold in register Hs; see H (1).
1460
1461       Ht     suppresses output of heading level  counters  above  the  lowest
1462              when the heading is formatted; see H (Boolean-valued; 0).
1463
1464       Hu     sets the heading level used by unnumbered headings; see HU (2).
1465
1466       Hy     enables automatic hyphenation of words (Boolean-valued; 0).
1467
1468       Iso    configures  the  use  of ISO 8601 date format if specified (with
1469              any value) on the command line; see ISODATE.  The default is de‐
1470              termined by localization files.
1471
1472       L      defines  the  page length for the document, and must be set from
1473              the command line.  A scaling unit should be appended.   The  de‐
1474              fault is that of the selected groff output device.
1475
1476       Le
1477       Lf
1478       Lt
1479       Lx     configure  the  report  of lists of equation, figure, table, and
1480              exhibit captions, respectively, after a table of  contents;  see
1481              TC (Boolean-valued; Le: 0; Lf, Lt, Lx: 1).
1482
1483       Letwam sets  the  maximum number of input lines permitted in a writer's
1484              address; see WA and WE (14).
1485
1486       Li     configures the amount of indentation  in  ens  applied  to  list
1487              items; see LI (6).
1488
1489       Limsp  inserts a space between the prefix and the mark in automatically
1490              numbered lists; see AL (Boolean-valued; 1).
1491
1492       Ls     sets a threshold for placement of  vertical  space  before  list
1493              items.  If the list nesting level is greater than this value, no
1494              such spacing occurs; see LI (99).
1495
1496       Lsp    configures the base amount of vertical space used for separation
1497              in  the  document.   mm  applies  this spacing to many contexts,
1498              sometimes with multipliers; see DS, FS, H, LI, and P (troff  de‐
1499              vices: 0.5v; nroff devices: 1v).
1500
1501       N      configures the header and footer placements used by PH.  The de‐
1502              fault footer is empty.  If “section-page” numbering is selected,
1503              the  default header becomes empty and the default footer becomes
1504x-y”, where x is is the section number (the number of the  cur‐
1505              rent  first-level heading) and y the page number within the sec‐
1506              tion.  The following values are recognized; for  finer  control,
1507              see  PH,  PF, EH, EF, OH, and OF, and registers Sectf and Sectp.
1508              Value 5 is a GNU extension (0).
1509
1510              Value   Effect
1511              0       Set header on all pages.
1512              1       Move header to footer on page 1.
1513              2       Omit header on page 1.
1514              3       Use “section-page” numbering style on all pages.
1515              4       Omit header on all pages.
1516              5       Use “section-page” and “section-figure” numbering  style
1517                      on all pages.
1518
1519       Np     causes  paragraphs  after first-level headings (only) to be num‐
1520              bered in the format s.p, where s is is the section  number  (the
1521              number  of  the  current first-level heading) and p is the para‐
1522              graph number, starting at 1; see H and P (Boolean-valued; 0).
1523
1524       O      defines the page offset of the document, and must  be  set  from
1525              the  command  line.  A scaling unit should be appended.  The de‐
1526              fault is .75i on terminal devices.  On typesetters, it is  .963i
1527              or set to 1i by the papersize.tmac package; see groff_tmac(5).
1528
1529       Oc     suppresses  the  appearance of page numbers in the table of con‐
1530              tents; see TC (Boolean-valued; 0).
1531
1532       Of     selects a separator format within equation, exhibit, figure, and
1533              table  captions;  see  EC, EX, FG, and TB.  The following values
1534              are recognized; the spaces shown are unpaddable (0).
1535
1536              Value   Effect
1537              0       ".  "
1538              1       " — "
1539
1540       P      interpolates the current page number; it is the same  as  regis‐
1541              ter % except when “section-page” numbering is enabled.
1542
1543       Pi     configures the amount of indentation in ens applied to the first
1544              line of a paragraph; see P (5).
1545
1546       Pgps   causes the type size and vertical spacing set by S to  apply  to
1547              headers  and  footers,  overriding the HP string.  If not set, S
1548              calls affect headers and footers only when followed by  PH,  PF,
1549              OH, EH, OF, or OE calls (Boolean-valued; 1).
1550
1551       Ps     is multiplied by register Lsp to vertically separate paragraphs;
1552              see P (1).
1553
1554       Pt     determines when a first-line indentation is applied to  a  para‐
1555              graph; see P (0).
1556
1557              Value   Effect
1558              0       never
1559              1       always
1560              2       always, except immediately after H, DE, or LE
1561
1562       Ref    is  used  internally to control mmroff(1)'s two-pass approach to
1563              index and reference management; see INITI and  RS  (Boolean-val‐
1564              ued; 0).
1565
1566       Rpe    configures the default page ejection policy for reference pages;
1567              see RP (0).
1568
1569              Value   Effect
1570              0       Break the page before and after the list of references.
1571
1572              1       Suppress page break after the list.
1573              2       Suppress page break before the list.
1574              3       Suppress page breaks before and after the list.
1575
1576       S      defines the type size for the document, and must be set from the
1577              command  line.   A scaling unit should be appended; p is typical
1578              (10p).
1579
1580       Sectf  selects the “section-figure” numbering style.  Its default is  0
1581              unless  register N is set to 5 at the command line (Boolean-val‐
1582              ued).
1583
1584       Sectp  selects the “section-page” numbering style.  Its  default  is  0
1585              unless register N is set to 3 or 5 at the command line (Boolean-
1586              valued).
1587
1588       Si     configures the amount of display indentation in ens; see DS (5).
1589
1590       Tb     is an auto-incrementing table counter; see TB.
1591
1592       V      defines the vertical spacing for the document, and must  be  set
1593              from  the command line.  A scaling unit should be appended; p is
1594              typical.  The default vertical spacing is 120% of the type size.
1595
1596       Verbin configures the amount of indentation for verbatim displays  when
1597              indentation is selected; see VERBON (5n).
1598
1599       W      defines  the  “width” of the document (that is, the length of an
1600              output line with no indentation); it must be set from  the  com‐
1601              mand  line.   A  scaling  unit  should be appended.  The default
1602              is  6i  or  assigned  by   the   papersize.tmac   package;   see
1603              groff_tmac(5).
1604

Internals

1606       The  LT letter macros call further macros depending on the letter type,
1607       with which they are suffixed.  It is therefore possible to define addi‐
1608       tional letter types, either in the territory-specific macro file, or as
1609       local additions.  LT sets the registers Pt and Pi to 0 and  5,  respec‐
1610       tively.   The  following macros must be defined to support a new letter
1611       type.
1612
1613       let@init_type
1614              LT calls this macro to initialize any registers and  other  data
1615              needed by the letter type.
1616
1617       let@head_type
1618              formats  the  letterhead; it is called instead of the usual page
1619              header macro.  Its definition should remove the alias let@header
1620              unless the letterhead is desired on subsequent pages.
1621
1622       let@sg_type name title n is-final [SG-arg ...]
1623              SG  calls  this  macro only for letters; MT memoranda have their
1624              own signature processing.  name and title are specified  through
1625              WA/WE.   n  is the index of the nth writer, and is-final is true
1626              for the last writer to be listed.  Further SG arguments are  ap‐
1627              pended to the signature line.
1628
1629       let@fc_type closing
1630              This  macro  is  called by FC, and has the formal closing as the
1631              argument.
1632
1633       LO implements letter options.  It requires that a string named  Lettype
1634       be  defined, where type is the letter type.  LO then assigns its second
1635       argument (value) to the string let*lo-type.
1636

Files

1638       /usr/share/groff/1.23.0/tmac/m.tmac
1639              is the groff implementation of the memorandum macros.
1640
1641       /usr/share/groff/1.23.0/tmac/mm.tmac
1642              is wrapper to load m.tmac.
1643
1644       /usr/share/groff/1.23.0/tmac/refer-mm.tmac
1645              implements refer(1) support for mm.
1646
1647       /usr/share/groff/1.23.0/tmac/mm/ms.cov
1648              implements an ms-like cover sheet.
1649
1650       /usr/share/groff/1.23.0/tmac/mm/0.MT
1651              implements memorandum types 0–3 and 6.
1652
1653       /usr/share/groff/1.23.0/tmac/mm/4.MT
1654              implements memorandum type 4.
1655
1656       /usr/share/groff/1.23.0/tmac/mm/5.MT
1657              implements memorandum type 5.
1658
1659       /usr/share/groff/1.23.0/tmac/mm/locale
1660              performs any (further) desired necessary localization; empty  by
1661              default.
1662

Authors

1664       The GNU version of the mm macro package was written by Jörgen Hägg ⟨jh@
1665       axis.se⟩ of Lund, Sweden.
1666

See also

1668       MM - A Macro Package for Generating Documentshttps://tkurtbond.github
1669       .io/troff/mm-all.pdf⟩,  the  DWB  3.3 mm manual, introduces the package
1670       but does not document GNU extensions.
1671
1672       Groff: The GNU Implementation of troff, by Trent A. Fisher  and  Werner
1673       Lemberg,  is the primary groff manual.  You can browse it interactively
1674       with “info groff”.
1675
1676       groff(1), troff(1), tbl(1), pic(1), eqn(1), refer(1), groff_mmse(7)
1677
1678
1679
1680groff 1.23.0                    2 November 2023                    groff_mm(7)
Impressum