Name
groff_mm - memorandum macros for GNU roff
Synopsis
groff -mm |
[option ...] [file ...] mm [option ...] [file ...] DescriptionThe GNU implementation of the mm macro package is part of the groff document formatting system. The mm package is suitable for the composition of letters, memoranda, reports, and books. Call an mm macro at the beginning of a document to initialize the package. A simple mm document might use only P for paragraphing. Set numbered and unnumbered section headings with H and HU, respectively. Change the style of the typeface with B, I, and R; you can alternate styles with BI, BR, IB, IR, RB, and RI. Several nestable list types are available via AL, BL, BVL, DL, ML, RL, and VL; each of these begins a list, to which LI adds an item and LE ends the (nested) list. Customized list arrangements are supported by LB. DS and DF start static and floating displays, respectively; either is terminated with DE. groff mm is intended to be compatible with the mm implementation found in the AT&T Documenter’s Workbench (DWB), with the following limitations.
DWB mm supported only seven levels of heading. As a compatible extension, groff mm supports fourteen, introducing new registers H8 through H14, and affecting the interpretation of the HF and HP strings. Macro, register, and string descriptions in this page frequently mention each other; most cross references are to macros. Where a register or string is referenced, its type is explicitly identified. mm’s macro names are usually in full capitals; registers and strings tend to have mixed-case names. Document
styles Localization
This package can also be localized by site or territory; for example, /usr/share/groff/1.23.0/tmac/mse.tmac illustrates how to adapt the output to a national standard using its ISO 3166 territory code. Such a package can define a string that causes a macro file /usr/share/ groff/1.23.0/tmac/mm/territory_locale to be loaded at package initialization. If this mechanism is not used, /usr/share/groff/ 1.23.0/tmac/mm/locale is loaded instead. No diagnostic is produced if these files do not exist. Registers
and strings .nr ident [±]n [i] ident is the name of the register, and n is the value to be assigned. n can be prefixed with a plus or minus sign if incrementation or decrementation (respectively) of the register’s existing value by n is desired. If assignment of a (possibly) negative n is required, further prefix it with a zero or enclose it in parentheses. If i is specified, the register is automatically modified by i prior to interpolation if a plus or minus sign is included in the escape sequence as follows. \n[±][ident] i can be negative; it combines algebraically with the sign in the interpolation escape sequence. Strings are defined with the ds request. .ds ident contents contents consumes everything up to the end of the line, including trailing spaces. It is a good practice to end contents with a comment escape sequence (\") so that extraneous spaces do not intrude during document maintenance. To include leading spaces in contents, prefix it with a double quote. Strings are interpolated with the \* escape sequence. \*[ident] Register and string name spaces are distinct, but strings and macros share a name space. Defining a string with the same name as an mm macro is not supported and may cause incorrect rendering, the emission of diagnostic messages, and an error exit status from troff. Register
format .af R c R is the name of the register, and c is the format. If c is a sequence of Arabic numerals, their quantity defines a zero-padded minimum width for the interpolated register value. Fonts
MacrosAn explicitly empty argument may be specified with a pair of double quotes; to call a macro XX with an empty second argument but non-empty first and third ones, you could input the following. .XX foo "" baz Macro names
longer than two characters are GNU extensions; some shorter
names were not part of DWB mm’s published
interface but are documented aspects of groff mm.
Add heading text text to the table of contents with level, which is either 0 or in the range 1 to 7. See also H. This undocumented DWB mm macro is exposed by groff mm to enable customized tables of contents.
AF [firm-name] Specify firm associated with the document. At most one can be declared; the firm name is used by memorandum types and available to cover sheets. AF terminates a document title started with TL, and can be called without an argument for that purpose. See MT and COVER. AL [type [text-indent [1]]] Begin an auto-incrementing numbered list. Item numbers start at one. The type argument assigns the register format (see above) of the list item enumerators. The default is 1. An explicitly empty type also indicates the default. A text-indent argument overrides register Li. A third argument suppresses the blank line that normally precedes each list item. Use LI to declare list items, and LE to end the list. APP [id [title]] Begin an appendix. If the identifier id is omitted, it is incremented (or initialized, if necessary). The register format used for id is “A”. The page is broken. The register Aph determines whether an appendix heading is then formatted. This heading uses the string App followed by id. Appendices appear in any table of contents (see TC). The string Apptxt is set to title if the latter is present, and made empty otherwise. APPSK id n [title] As APP, but increment the page number by n. Use this macro to “skip pages” when diagrams or other materials not formatted by troff are included in appendices. AS [placement [indentation]] Abstract start; begin collecting abstract. Input up to the next AE call is included in the abstract. placement influences the location of the abstract on the cover sheet of a memorandum (see MT). COVER, by contrast, ignores placement by default, but can be customized to interpret it.
An abstract does not appear at all in external letters (“.MT 5”). A placement of 2 was supported by DWB mm but is not by groff mm. A second argument increases the indentation by indentation and reduces the line length by twice this amount. A scaling unit of ens is assumed. The default is 0. AST [caption] Set the caption above the abstract to caption, or clear it if there is no argument. The default is “ABSTRACT”. AT title ... Specify author’s title(s). If present, AT must appear just after the corresponding author’s AU. Each title occupies an output line beneath the author’s name in the signature block used by LT letters (see SG) and in MT memoranda. The ms cover sheet style also uses it. AU [name [initials [loc [dept [ext [room [arg1 [arg2 [arg3]]]]]]]]] Specify author. AU terminates a document title started with TL, and can be called without arguments for that purpose. Author information is used by cover sheets, MT memoranda, and SG. Further arguments comprise initials, location, department, telephone extension, room number or name, and up to three additional items. Repeat AU to identify multiple authors. Use WA/WE instead to identify the author for documents employing LT. AV [name [1]] Format approval lines for a handwritten signature and date. Two horizontal rules are drawn, with the specified name and the text of the string Letdate beneath them. Above these rules, the text in the string Letapp is formatted; a second argument replaces this text with a blank line. See LT. AVL [name] As AV, but the date, date rule, and approval notation Letapp are omitted. B [bold-text [previous-font-text]] ... Join bold-text in boldface with previous-font-text in the previous font, without space between the arguments. If no arguments, switch font to bold style.
BI [bold-text [italic-text]] ... Join bold-text in boldface with italic-text in italics, without space between the arguments. BL [text-indent [1]] Begin bulleted list. Items are prefixed with a bullet and a space. A text-indent argument overrides register Pi. A second argument suppresses blank lines between items. Use LI to declare list items, and LE to end the list. BR [bold-text [roman-text]] ... Join bold-text in boldface with roman-text in roman style, without space between the arguments.
BVL [text-indent [mark-indent [1]]] Begin broken variable-item (or “tagged”) list. Each item is expected to supply its own mark. The line is always broken after the mark; contrast VL. text-indent sets the indentation of the text, and mark-indent the distance from the current list indentation to the mark. A third argument suppresses the blank line that normally precedes each list item. Use LI to declare list items, and LE to end the list. COVER [style] Begin a cover page description. COVER must appear before the body text (or main matter) of a document. The argument style is used to construct the file name /usr/share/groff/1.23.0/tmac/mm/ style.cov and load it with the mso request. The default style is ms; the ms.cov file prepares a cover page resembling those of the ms package. A .cov file must define a COVEND macro, which a document must call at the end of the cover description. Use cover description macros in the following order; only TL and AU are required. .COVER
DF [format [fill [right-indentation]]] Begin floating display. A floating display is saved in a queue and output in the order entered. Arguments are handled as in DS. Floating displays cannot be nested. Placement of floating displays is controlled by the registers De and Df. DL [text-indent [1]] Begin dashed list. Items are prefixed with an em dash and a space. A text-indent argument overrides register Pi. A second argument suppresses blank lines between items. Use LI to declare list items, and LE to end the list. DS [format [fill [right-indentation]]] Begin static display. Input until DE is called is collected into a display. The display is output on a single page unless it is taller than the height of the page. DS can be nested (contrast with DF). The values “L”, “I”, “C”, and “CB” can also be specified as “0”, “1”, “2”, and “3”, respectively, for compatibility with DWB mm. “N” and “F” can also be specified as “0” and “1”, respectively, for compatibility with DWB mm. A third argument reduces the line length by right-indentation. mm normally places blank lines before and after the display. Set register Ds to 0 to suppress these. EC [title [override [flag [refname]]]] Caption an equation. The caption consists of the string Liec followed by an automatically incrementing counter stored in the register Ec, punctuation configured by the register Of, then title (if any). Use the af request to configure Ec’s number format. override and flag alter the equation number as follows. Omitting flag and specifying 0 in its place are equivalent. Equation captions are centered irrespective of the alignment of any enclosing display. refname stores the equation number using SETR; it can be retreived with “.GETST refname”. This argument is a GNU extension. Captioned equations are listed in a table of contents (see TC) if the Boolean register Le is true. Such a list uses the string Le as a heading. EF ["'left'center'right'"] Define the even-page footer, which is formatted just above the normal page footer on even-numbered pages. See PF. EF defines the string EOPef. EH ["'left'center'right'"] Define the even-page header, which is formatted just below the normal page header on even-numbered pages. See PH. EH defines the string TPeh.
EPIC [-L] width height [name] Draw a box with the given width and height. It also prints the text name or a default string if name is not specified. This is used to include external pictures; just give the size of the picture. -L left-aligns the picture; the default is to center. See PIC. EQ [label] Start equation input preprocessed by eqn(1). EQ and EN macro calls bracket an equation region. Such regions must be contained in displays (DS/DE), except when the region is used only to configure eqn and not to produce output. If present, label appears aligned to the right and centered vertically within the display; see register Eq. If multiple eqn regions occur within a display, only the last label (if any) is used. EX [title [override [flag [refname]]]] Caption an exhibit. Arguments are handled analogously to EC. The register Ex is the exhibit counter. The string Liex precedes the exhibit number and any title. Exhibit captions are centered irrespective of the alignment of any enclosing display. Captioned exhibits are listed in a table of contents (see TC) if the Boolean register Lx is true. Such a list uses the string Lx as a heading. FC [closing-text] Output the string Letfc, or the specified closing-text, as the formal closing of a letter. FD [arg [1]] Configure display of footnotes. The first argument encodes enablement of automatic hyphenation, adjustment to the right margin, indentation of footnote text, and left- vs. right-alignment of the footnote label within the space allocated for it. An arg greater than 11 is treated as 0. mm’s default is 0. If a second argument, conventionally 1, is given, footnote numbering is reset when a first-level heading is encountered. See FS.
FG [title [override [flag [refname]]]] Caption a figure. Arguments are handled analogously to EC. The register Fg is the figure counter. The string Lifg precedes the figure number and any title. Figure captions are centered irrespective of the alignment of any enclosing display. Captioned figures are listed in a table of contents (see TC) if the Boolean register Lf is true. Such a list uses the string Lf as a heading. FS [label] Start footnote. Input until FE is called is collected into a footnote. By default, footnotes are automatically numbered starting at 1; the number is available in register :p and, with a trailing period, in string F. This string precedes the footnote text at the bottom of the column or page. Footnotes are vertically separated by the product of registers Fs and Lsp. In groff mm, footnotes may be used in displays. A label argument replaces the contents of the string F; it need not be numeric. In this event, the footnote marker in the body text must be explicitly written. GETHN refname [varname] Include the heading number where the corresponding “.SETR refname” was placed. This is displayed as “X.X.X.” in pass 1. See INITR. If varname is used, GETHN sets the string varname to the heading number. GETPN refname [varname] Include the page number where the corresponding “.SETR refname” was placed. This is displayed as “9999” in pass 1. See INITR. If varname is used, GETPN sets the string varname to the page number. GETR refname Combine GETHN and GETPN with the text “chapter” and “, page”. The string Qrf contains the text for the cross reference: .ds Qrf See chapter \\*[Qrfh], page \\*[Qrfp]. Qrf may be changed to support other languages. Strings Qrfh and Qrfp are set by GETR and contain the page and heading number, respectively. GETST refname [varname] Include the string saved with the second argument to .SETR. This is a dummy string in pass 1. If varname is used, GETST sets it to the saved string. See INITR. H level [title [suffix]] Set a numbered section heading at level. mm produces numbered heading marks of the form a.b.c..., with up to fourteen levels of nesting. Each level’s number increases automatically with each H call and is reset to zero when a more significant level is specified. “1” is the most significant or coarsest division of the document. Text after an H call is formatted as a paragraph; calling P is unnecessary. title specifies an optional title; it must be double-quoted if it contains spaces. mm appends suffix to title in the body of the document, but omits it from any table of contents (see TC). This facility can be used to annotate the heading title with a footnote. suffix should not interpolate the F string; specify a footnote mark explicitly. See FS. Heading behavior is highly configurable. Several registers set a threshold, where heading levels at or below the threshold value are handled in one way, and those above it another. For example, a heading level within the threshold of register Cl is included in the table of contents (see TC). Heading layout. Register Ej sets a threshold for page breaking (ejection) prior to a heading. If not preceded by a page break, a heading level below the threshold in register Hps is preceded by the amount of vertical space in register Hps1, and by the amount in Hps2 otherwise. The Hb register sets a threshold below which a break occurs after the heading, and register Hs sets a threshold below which vertical space follows it. If the heading level is not less than both of these, a run-in heading is produced; paragraph text follows on the same output line. Otherwise, register Hi configures the indentation of text after headings. Threshold register Hc enables the centering of headings; a heading level below both of the Hb and Hc thresholds is centered. Heading typeface and size. The fonts used for heading numbers and titles at each level are configured by the HF string. The string HP likewise assigns a type size to each heading level. The vertical spacing used by headings may be controlled by the user-definable macros HX and/or HZ. Heading number format. Registers named H1 through H14 store counters for each heading level. Their values are printed using Arabic numerals by default; see HM. The heading levels are catenated with dots for formatting; to typeset only the deepest, set the Ht register. Heading numbers are not suffixed with a trailing dot except when only the first level is output; to omit a dot in this case as well, clear the H1dot register. Customizing
heading behavior. mm calls hook macros to enable
further customization of headings. (DWB mm called
these “exits”.) They can be used to change the
heading’s mark (the numbered portion before any
heading title), its vertical spacing, and its vertical space
requirements (for instance, to require a minimum quantity of
subsequent output lines). Define hook macros in expectation
of the following parameters. The argument
declared-level is the level argument to
H, or 0 for unnumbered headings (see
HU). actual-level is the same as
declared-level for numbered headings, and the value
of register Hu for unnumbered headings.
title is the corresponding argument to H or
HU. mm calls HX
before setting the heading. Your definition may alter
}0, }2, and ;3. contains the heading mark plus two spaces if declared-level is non-zero, and otherwise is empty. ;0 (register) encodes a position for the text after the heading. 0 means that the heading is to be run in, 1 means that a break is to occur before the text, and 2 means that vertical space is to separate heading and text. }2 (string) is the suffix that separates a run-in heading from the text. It contains two spaces if register ;0 is 0, and otherwise is empty. ;3 (register) contains the vertical space required for the heading to be typeset. If that amount is not available, the page is broken prior to the heading. The default is 2v. HY declared-level actual-level title mm calls HY after determing the heading typeface and size. It could be used to change indentation. HZ declared-level actual-level title mm calls HZ after formatting the heading, just before H or HU returns. It could be used to change the page header to include a section heading. HC [hyphenation-character] Set hyphenation character. Default value is “\%”. Resets to the default if called without argument. Hyphenation can be turned off by setting register Hy to 0 at the beginning of the file. HM [arg1 [arg2 [... [arg14]]]] Set the heading mark style. Each argument assigns the specified register format (see above) to the corresponding heading level. The default is 1 for all levels. An explicitly empty argument also indicates the default. HU heading-text Set an unnumbered section heading. Except for a heading number, it is treated as a numbered heading of the level stored in register Hu; see H. I [italic-text [previous-font-text]] ... Join italic-text in italics with previous-font-text in the previous font, without space between the arguments. If no arguments, switch font to italic style. IA [recipient-name [title]] Specify the inside address in a letter. Input is collected into the inside address until IE is called, and then output. You can specify multiple recipients with empty IA/IE pairs; only the last address is used. The arguments give each recipient a name and title. See LT. IB [italic-text [bold-text]] ... Join italic-text in italics with bold-text in boldface, without space between the arguments.
IND argument ... If the Boolean register Ref is true, write an index entry as a specially prepared roff comment to the standard error stream, with each argument separated from its predecessor by a tab character. The entry’s location information is arranged as configured by the most recent INITI call.
Define macros to customize this behavior. INDP calls TXIND before the caption, TYIND instead of writing the caption, and TZIND after formatting the index. INITI location-type file-name [macro] Initialize groff mm’s indexing system. Argument location-type selects how the location of each index entry is reported. file-name populates an internal string used later by INDP. If macro is specified, it is called for each index entry with the arguments given to IND. INITR id Initialize the cross reference macros. Cross references are written to the standard error stream, which should be redirected into a file named id.qrf. mmroff(1) handles this and the two formatting passes it requires. The first pass identifies cross references, and the second one includes them. See SETR, GETPN, and GETHN. IR [italic-text [roman-text]] ... Join italic-text in italics with roman-text in roman style, without space between the arguments. ISODATE [0] Use ISO 8601 format for the date string DT used by some cover sheet and memorandum types; that is, YYYY-MM-DD. Must be called before ND to be effective. If given an argument of 0, the traditional date format for the groff locale is used; this is also the default. LB text-indent
mark-indent pad Begin list. The macros AL, BL, BVL, DL, ML, RL, and VL call LB in various ways; they are simpler to use and may be preferred if they suit the desired purpose. The nesting level of lists is tracked by mm; the outermost level is 0. The text of each list item is indented by text-indent; the default is taken from the Li register (in ens). Each item’s mark is indented by mark-indent; the default is 0n. The mark is normally left-aligned. If pad is greater than zero, mark-indent is overridden such that pad ens of space follow the mark. type selects one of six possible ways to display the mark. If type is 0 and mark is unspecified, the items are set with a hanging indent. Otherwise, mark is interpreted as a string defining the mark. If type is greater than zero, items are automatically numbered; mark is interpreted as a register format. The default type is 0. The last two arguments manage vertical space. Unless a list’s nesting level is greater than the value of register Ls, its items are preceded by pre-item-space multiplied by the register Lsp; the default is 1. LB precedes the list by pre-list-space multiplied by the register Lsp; the default is 0. LC [list-level] Clear list state. Active lists are terminated as if with LE, either all (the default) or only those from the current level down to list-level if specified. H calls LC automatically.
LI [mark [item-mark-mode]] Begin a list item. Input is collected into a list item until the current list is terminated or LI is called again. By default, the item’s text is preceded by any mark configured by the current list. If only mark is specified, it replaces the configured mark. A second argument prefixes mark to the configured mark; an item-mark-mode value of 1 places an unbreakable space after mark, while a value of 2 does not (rendering the two adjacent). Also see register Limsp. LO option [value] Specify letter options; see LT. Standard options are as follows. See IA regarding the inside address and string DT regarding the date. LT [style] Format a letter in the designated style, defaulting to BL (see below). A letter begins with the writer’s address (WA/WE), followed by the date (ND), the inside address (IA/IE), the body of the letter (P and other general-purpose mm macros), the formal closing (FC), the signature (SG), and notations (NS/NE). Any of these may be omitted. Letter options specified with LO add further annotations, which are extensible; see section “Internals” below. MC column-width [gutter-width] Begin multi-column layout. groff mm creates as many columns of column-width as the line length will permit. gutter-width is the interior spacing between columns. It defaults to column-width/15. 1C returns to single-column layout. MC is a GNU extension. See MULB for an alternative. ML mark [text-indent [1]] Start a list with the mark argument preceding each list item. text-indent overrides the default indentation of the list items set by register Li. If a third argument, conventionally 1, is given, the blank line that normally precedes each list item is suppressed. Use LI to declare list items, and LE to end the list. MT [type [addressee]] Select memorandum type. These correspond to formats used by AT&T Bell Laboratories, where the mm package was initially developed, affecting the document layout. Some of these included a cover page with a caption categorizing the document. groff mm uses type to construct the file name /usr/share/groff/ 1.23.0/tmac/mm/type.MT and load it with the mso request. Memorandum types 0 to 5 are supported; any other value of type is mapped to type 6. If type is omitted, 0 is implied. addressee sets a string analogous to one used by AT&T cover sheet macros that are not implemented in groff mm. See COVER for a more flexible cover sheet mechanism. MOVE y-pos [x-pos [line-length]] Move to a position, setting page offset to x-pos. If line-length is not given, the difference between current and new page offset is used. Use PGFORM without arguments to return to normal. MULB cw1 space1 [cw2 space2] ... cwn Begin alternative multi-column mode. All column widths must be specified, as must the amount of space between each column pair. The arguments’ default scaling unit is n. MULB uses a diversion and operates in a separate environment.
ND [arg] Set the document’s date. mm does not interpret arg; it can be a revision identifier (or empty).
nP [type] Begin a numbered paragraph at heading level two. See P. NS [code [1]] Declare notations, typically for letters or memoranda, of the type specified by code. The text corresponding to code is output, and filling is disabled until NE is called. Typically, a list of names or attachments lies within NS/NE. If code is absent or does not match one of the values listed under the Letns string description below, each line of notations is formatted as “Copy (line) to”. If a second argument, conventionally 1, is given, code becomes the entire notation and NE is not necessary. In groff mm, you can set up further notations to be recognized by NS; see the strings Letns and Letnsdef below. OF ["'left'center'right'"] Define the odd-page footer, which is formatted just above the normal page footer on odd-numbered pages. See PF. OF defines the string EOPof. OH ["'left'center'right'"] Define the odd-page header, which is formatted just below the normal page header on odd-numbered pages. See PH. OH defines the string TPoh.
P [type] Begin new paragraph. If type is missing or 0, P sets the paragraph fully left-aligned. A type of 1 idents the first line by \[Pi] ens. Set the register Pt to select a default paragraph indentation style. The register Ps controls the vertical spacing between paragraphs.
PF ["'left'center'right'"] Define the page footer. The footer is formatted at the bottom of each page; the argument is otherwise as described in PH. PF defines the string EOPf. See EF, OF, and EOP. PGFORM [linelength [pagelength [pageoffset [1]]]] Set line length, page length, and/or page offset. This macro can be used for letterheads and similar. It is normally the first macro call in a file, though it is not necessary. PGFORM can be used without arguments to reset everything after a MOVE call. A line break is done unless the fourth argument is given. This can be used to avoid the page number on the first page while setting new width and length. (It seems as if this macro sometimes doesn’t work too well. Use the command-line arguments to change line length, page length, and page offset instead.)
PH ["'left'center'right'"] Define the page header, formatted at the top of each page, as the argument, where left, center, and right are aligned to the respective locations on the line. A “%” character in arg is replaced by the page number. If the argument is absent, no page header is set. The default page header is "''- % -''" which centers the page number between hyphens and formats nothing at the upper left and right. Header macros call PX (if defined) after formatting the header. PH defines the string TPh. See EH, OH, and TP. PIC [-B] [-C|-I n|-L|-R] file [width [height]] Include PostScript document file. The optional -B argument draws a box around the picture. The optional -L, -C, -R, and -I n arguments align the picture or indent it by n (assuming a scaling unit of m). By default, the picture is left-aligned. Optional width and height arguments resize the picture. Use of this macro requires two-pass processing; see INITR and mmroff(1).
R [roman-text [previous-font-text]] ... Join roman-text in roman style with previous-font-text in the previous font, without space between the arguments. If no arguments, switch font to roman style. RB [roman-text [bold-text]] ... Join roman-text in roman style with bold-text in boldface, without space between the arguments. RD [prompt [diversion [string]]] Read from standard input to diversion and/or string. The text is saved in a diversion named diversion. Recall the text by writing the name of the diversion after a dot on an empty line. A string is also defined if string is given. Diversion and/or prompt can be empty ("").
RI [roman-text [italic-text]] ... Join roman-text in roman style with italic-text in italics, without space between the arguments. RL [text-indent [1]] Begin reference list. Each item is preceded by an automatically incremented number between square brackets; compare AL. text-indent changes the default indentation. Use LI to declare list items, and LE to end the list. A second argument, conventionally 1, suppresses the blank line that normally precedes each list item. RP [suppress-counter-reset [page-ejection-policy]] Format a reference page, listing items accumulated within RS/RF pairs. The reference counter is reset unless the first argument is 1. Normally, page breaks occur before and after the references are output; the register Rpe configures this behavior, and a second argument overrides its value. TC calls RP automatically if references have accumulated. References are list items, and thus are vertically separated (see LB). Setting register Ls to 0 suppresses this spacing. The string Rp contains the reference page caption. RS [reference-string] Begin an automatically numbered reference definition. By default, references are numbered starting at 1; the number is available in register :R. Interpolate the string Rf where the reference mark should be and write the reference between RS/RF on an input line after the reference mark. If reference-string is specified, groff ms also stores the reference mark in a string of that name, which can be interpolated as \*[reference-string] subsequently. S [type-size [vertical-spacing]] Set type size and vertical spacing. Each argument is a groff measurement, using an appropriate scaling unit and an optional + or - prefix to increment or decrement the current value. An argument of P restores the previous value, C indicates the current value, and D requests the default. An empty or omitted argument is treated as P. SA [mode] Set or restore the default enablement of adjustment. Specify 0 or 1 as mode to set a document’s default explicitly; 1 is assumed by mm. Adjustment can be temporarily suspended with the na request. When the H or HU macros are used to format a heading, or when SA is called without a mode argument, the default adjustment is restored. SETR refname [string] Remember the current heading and page numbers as refname. Saves string if string is defined. string is retrieved with GETST. See INITR. SG [arg [1]] Signature line. Prints the authors name(s) after the formal closing. The argument is appended to the reference data, printed at either the first or last author. The reference data is the location, department, and initials specified with AU. It is printed at the first author if the second argument is given, otherwise at the last. No reference data is printed if the author(s) is specified through WA/WE. See section “Internals” below.
SM text [post]
Format text at a smaller type size, joined with any specified pre and post at normal size. SP [lines] Space vertically. lines can have any scaling factor, like “3i” or “8v”. Several SP calls in a line only produces the maximum number of lines, not the sum. SP is ignored also until the first text line in a page. Add \& before a call to SP to avoid this.
TB [title [override [flag [refname]]]] Caption a table. Arguments are handled analogously to EC. The register Tb is the table counter. The string Litb precedes the table number and any title. Table captions are centered irrespective of the alignment of any enclosing display. Captioned tables are listed in a table of contents (see TC) if the Boolean register Lt is true. Such a list uses the string Lt as a heading. TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]] Output table of contents. This macro is normally the last called in the document. It flushes any pending displays and, if any references are pending (see RS), calls RP. It then begins a new page with the contents caption, stored in the string Licon, centered at the top. The entries follow after three vees of space. Each entry is a saved section (number and) heading title (see the Cl register), along with its associated page number. By default, an entry is indented by an amount corresponding to its heading level and the maximum heading length encountered at that heading level; if defined, the string Ci overrides these indentations. Entries at heading levels up to and including slevel are preceded by spacing vees of space. Entries at heading levels up to and including tlevel are followed by a leader and a right-aligned page number. If the Boolean-valued tab argument is true, the leader is replaced with horizontal motion in the same amount. For entries above heading level tlevel, the page number follows the heading text after a word space. Each argument h1...h5 appears in order on its own line, centered, above the contents caption. Page numbering restarts at 1, in register format “i”. If the Oc register is true, numbering of these pages is suppressed. If TC is called with at most four arguments, it calls the user-defined macro TX (if defined) prior to formatting the contents caption, and TY (if defined) instead of formatting the contents caption. Analogous handling of lists of figures, tables, equations, and exhibits is achieved by defining TXxx and TYxx macros, where xx is “FG”, “TB”, “EC”, or “EX”, respectively. Similarly, the strings Lifg, Litb, Liex, and Liec determine captions for their respective lists.
TL [charging-case-number [filing-case-number]] Begin document title. Input is collected into the title until AF or AU is called, and output as directed by the cover page. charging-case-number and filing-case-number are saved for use in memorandum types 0 and 5. See MT. TM number ... Declare technical memorandum number(s) used by MT.
VERBON [format [type-size [font]]] Begin verbatim display, where characters have equal width. format controls several parameters. Add up the values of desired features; the default is 0. On typesetting devices, further arguments configure the type-size in scaled points, and the face (font); the default is CR (Courier roman). VERBOFF End verbatim display. VL [text-indent [mark-indent [1]]] Begin variable-item (or “tagged”) list. Each item should supply its own mark, or tag. If the mark is wider than mark-indent, one space separates it from subsequent text; contrast BVL. text-indent sets the indentation of the text, and mark-indent the distance from the current list indentation to the mark. A third argument suppresses the blank line that normally precedes each list item. Use LI to declare list items, and LE to end the list. VM [-T] [top [bottom]] Vertical margin. Increase the top and bottom margin by top and bottom, respectively. If option -T is specified, set those margins to top and bottom. If no argument is given, reset the margin to zero, or to the default (“7v 5v”) if -T is used. It is highly recommended that macros TP and/or EOP are defined if using -T and setting top and/or bottom margin to less than the default. This undocumented DWB mm macro is exposed by groff mm to increase user control of page layout. WA [writer’s-name [title]] Specify the writer(s) of an LT letter. Input is collected into the writer’s address until WA is called, and then output. You can specify multiple writers with empty WA/WE pairs; only the last address is used. The arguments give each writer a name and title. WC [format ...] Control width of footnotes and displays.
StringsMany mm strings interpolate predefined, localizable text. These are presented in quotation marks.
Letdate “Date” (see AV)
Letnsdef Select the notation format used by NS when it is given no argument. The default is “0”.
MO1...MO12 “January” through “December”
RegistersDefault register values, where meaningful, are shown in parentheses. Many are also marked as Boolean-valued, meaning that they are considered “true” (on, enabled) when they have a positive value, and “false” (off, disabled) otherwise.
H1...H14 are auto-incrementing counters corresponding to each heading level; see H.
InternalsThe LT
letter macros call further macros depending on the letter
type, with which they are suffixed. It is therefore possible
to define additional letter types, either in the
territory-specific macro file, or as local additions.
LT sets the registers Pt and Pi to 0
and 5, respectively. The following macros must be
defined to support a new letter type. LT calls this macro to initialize any registers and other data needed by the letter type. let@head_type formats the letterhead; it is called instead of the usual page header macro. Its definition should remove the alias let@header unless the letterhead is desired on subsequent pages. let@sg_type name title n is-final [SG-arg ...] SG calls this macro only for letters; MT memoranda have their own signature processing. name and title are specified through WA/WE. n is the index of the nth writer, and is-final is true for the last writer to be listed. Further SG arguments are appended to the signature line. let@fc_type closing This macro is called by FC, and has the formal closing as the argument. LO implements letter options. It requires that a string named Lettype be defined, where type is the letter type. LO then assigns its second argument (value) to the string let*lo-type. Files/usr/share/groff/1.23.0/tmac/m.tmac is the groff implementation of the memorandum macros. /usr/share/groff/1.23.0/tmac/mm.tmac is wrapper to load m.tmac. /usr/share/groff/1.23.0/tmac/refer-mm.tmac implements refer(1) support for mm. /usr/share/groff/1.23.0/tmac/mm/ms.cov implements an ms-like cover sheet. /usr/share/groff/1.23.0/tmac/mm/0.MT implements memorandum types 0–3 and 6. /usr/share/groff/1.23.0/tmac/mm/4.MT implements memorandum type 4. /usr/share/groff/1.23.0/tmac/mm/5.MT implements memorandum type 5. /usr/share/groff/1.23.0/tmac/mm/locale performs any (further) desired necessary localization; empty by default. AuthorsThe GNU version of the mm macro package was written by jh [AT] axis.se">Jörgen Hägg of Lund, Sweden. See alsohttps://tkurtbond.github.io/troff/mm-all.pdf">MM - A Macro Package for Generating Documents, the DWB 3.3 mm manual, introduces the package but does not document GNU extensions. Groff: The GNU Implementation of troff, by Trent A. Fisher and Werner Lemberg, is the primary groff manual. You can browse it interactively with “info groff”. groff(1), troff(1), tbl(1), pic(1), eqn(1), refer(1), groff_mmse(7) (only in Swedish locales) |