|
Name | Synopsis | Description | Macros | Strings | Registers | Internals | Files | Authors | See also | COLOPHON |
|
|
|
groff_mm(7) Miscellaneous Information Manual groff_mm(7)
groff_mm - memorandum macros for GNU roff
groff -mm [option ...] [file ...]
groff -m mm [option ...] [file ...]
The GNU implementation of the mm macro package is part of the
groff document formatting system. The mm package is suitable for
the composition of letters, memoranda, reports, and books.
groff mm is intended to be compatible with the mm implementation
found in the AT&T Documenter's Workbench (DWB), with the
following limitations.
• No Bell Labs localisms are implemented. This includes the logo
and company name strings, }Z and ]S, respectively; the encoded
company site location addresses recognized as the third
argument to the AU macro; the Pv (“private” heading) register;
and the CS (cover sheet), OK (other keywords), and PM
(proprietary markings) macros.
• The grap preprocessor is not explicitly supported; no G1 and G2
macros are defined.
• The service mark string Sm is not implemented.
• The registers A, C, E, T, and U, typically set from the troff
or nroff command lines with DWB mm, are not recognized.
• When setting the registers L or W from the command line, use an
explicit scaling unit to avoid surprises.
• Cut marks are not supported.
DWB mm supported only seven levels of heading. As a compatible
extension, groff mm supports fourteen, introducing new registers
H8 through H14, and affecting the interpretation of the HF and HP
strings.
Localization
groff mm is designed to be easily localized. For languages other
than English, strings that can appear in output are collected in
the file /usr/local/share/groff/1.23.0/tmac/xx.tmac, where xx is
an ISO 639 two-letter language identifier. For Swedish, this is
sv.tmac; “sv”, not “se”.
This package can also be localized by site or territory; for
example, /usr/local/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/local/share/groff/1.23.0/tmac/mm/territory_locale
to be loaded at package initialization. If this mechanism is not
used, /usr/local/share/groff/1.23.0/tmac/mm/locale is loaded
instead. No diagnostic is produced if these files do not exist.
Registers and strings
The behavior of many macros can be configured by registers and
strings. A register is assigned with the nr request.
.nr ident [±]n [i]
ident is the name of the register, and n is the value to be
assigned. n can be prefixed with a plus or minus sign if
incrementation or decrementation (respectively) of the register's
existing value by n is desired. If assignment of a (possibly)
negative n is required, further prefix it with a zero or enclose
it in parentheses. If i is specified, the register is
automatically modified by i prior to interpolation if a plus or
minus sign is included in the escape sequence as follows.
\n[±][ident]
i can be negative; it combines algebraically with the sign in the
interpolation escape sequence.
Strings are defined with the ds request.
.ds ident string
The string is assigned everything up to the end of the line,
including trailing spaces. It is a good practice to end string
with a comment escape sequence (\") so that extraneous spaces do
not intrude during document maintenance. To include leading
spaces in string, prefix it with a double quote. Strings are
interpolated with the \* escape sequence.
\*[ident]
Register and string name spaces are distinct, but strings and
macros share a name space. Defining a string with the same name
as an mm macro is not supported and may cause incorrect
rendering, the emission of diagnostic messages, and an error exit
status from troff.
Register format
A register is interpolated using Arabic numerals if no other
format has been assigned to it. Assign a format to a register
with the af request.
.af R c
R is the name of the register, and c is the format. If c is a
sequence of Arabic numerals, their quantity defines a zero-padded
minimum width for the interpolated register value.
Form Sequence
1 0, 1, 2, 3, ..., 10, ...
001 000, 001, 002, 003, ..., 1000, ...
i 0, i, ii, iii, iv, ...
I 0, I, II, III, IV, ...
a 0, a, b, c, ..., z, aa, ab, ...
A 0, A, B, C, ..., Z, AA, AB, ...
Fonts
In groff mm, the fonts (or rather, font styles) R (roman),
I (italic), and B (bold) are mounted at font positions 1, 2,
and 3, respectively. Internally, font positions are used for
backwards compatibility. From a practical point of view, it
doesn't make a big difference—a different font family can still
be selected by invoking groff's fam request or using its -f
command-line option. On the other hand, if you want to replace
just, for example, font I with Zapf Chancery Medium italic
(available on groff's pdf and ps output devices), you have to use
the fp request, replacing the font at position 2 with
“.fp 2 ZCMI”). Because the cover sheet, memorandum type, and
integration macros explicitly request fonts named B, I, and R,
you will also need to remap these font names with the ftr
request, for instance with “.ftr I ZCMI”.
An explicitly empty argument may be specified with a pair of
double quotes; to call a macro XX with an empty second argument
but non-empty first and third ones, you could input the
following.
.XX foo "" baz
Macro names longer than two characters are GNU extensions; some
shorter names were not part of DWB mm's published interface but
are documented aspects of groff mm.
)E level text
Add heading text text to the table of contents with level,
which is either 0 or in the range 1 to 7. See also .H.
This undocumented DWB mm macro is exposed by groff mm to
enable customized tables of contents.
1C [1] Begin one-column processing. A 1 as an argument disables
the page break. Use wide footnotes, small footnotes may
be overprinted.
2C Begin two-column processing. Splits the page in two
columns. It is a special case of MC. See also 1C.
AE Abstract end, see AS.
AF [name-of-firm]
Author's firm, should be called before AU, see also COVER.
AL [type [text-indent [1]]]
Start an auto-incrementing list. Items are numbered
beginning with 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. text-indent sets the indentation and
overrides the 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.
APP name text
Begin an appendix with name name. Automatic naming occurs
if name is "". The appendices start with A if automatic
naming is used. A new page is ejected, and a header is
also produced if the register Aph is non-zero. This is
the default. The appendix always appears in the “List of
contents” with correct page numbers. The name “APPENDIX”
can be changed by setting the string App to the desired
text. The string Apptxt contains the current appendix
text.
APPSK name pages text
Same as .APP, but the page number is incremented with
pages. This is used when diagrams or other non-formatted
documents are included as appendices.
AS [arg [indent]]
Abstract start. Depending on the cover sheet macros used,
arg influences the placement of the abstract. The default
cover sheet style used when .COVER is called without
arguments (and .MT is not called at all) places the
abstract on the cover sheet and ignores arg.
The memorandum types interpret arg as follows.
[1marg[24m Placement
0 The abstract is printed on page 1 and on the cover
sheet if used in the released-paper style (MT 4);
otherwise, it is printed on page 1 without a cover
sheet.
1 The abstract is printed only on the cover sheet (MT
4 only).
An abstract is not printed at all in external letters (MT
5).
The indent parameter controls the indentation of both
margins; otherwise normal text indentation is used. Its
value is interpreted in ens by default.
AST [title]
Abstract title. Default is “ABSTRACT”. Sets the text
above the abstract text.
AT title [...]
Author's title(s). If present, AT must appear just after
the corresponding author's AU. Each title shows up on a
separate output line after the name in the signature block
and in the ms cover sheet style.
AU [name [initials [loc [dept [ext [room [arg1 [arg2 [arg3]]]]]]]]]
Author information. Specifies the author of the memo or
paper, and is printed on the cover sheet and in other
similar places. AU must not appear before TL. The author
information can contain initials, location, department,
telephone extension, room number or name, and up to three
additional arguments.
AV [name [1]]
Approval signature. Generates an approval line with place
for signature and date. The text “APPROVED:” can be
changed with the string Letapp; it is replaced with an
empty line if there is a second argument. The text “Date”
can be changed with the string Letdate.
AVL [name]
Letter signature. Generates a line with place for
signature.
B [bold-text [previous-font-text]] ...
Join bold-text in boldface with previous-font-text in the
previous font, without space between the arguments. If no
arguments, switch font to bold style.
B1 Begin boxed, kept display. The text is indented one
character, and the right margin is one character shorter.
This is a GNU extension.
B2 End boxed, kept display. This is a GNU extension.
BE End bottom block, see BS.
BI [bold-text [italic-text]] ...
Join bold-text in boldface with italic-text in italics,
without space between the arguments.
BL [text-indent [1]]
Start bullet list. Initializes a list with a bullet and a
space in the beginning of each list item (see LI). text-
indent overrides the default indentation of the list items
set by register Pi. A third argument prohibits printing
of a blank line before each item.
BR [bold-text [roman-text]] ...
Join bold-text in boldface with roman-text in roman style,
without space between the arguments.
BS Bottom block start. Begins the definition of a text block
which is printed at the bottom of each page. The block
ends with BE.
BVL text-indent [mark-indent [1]]
Start of broken variable-item list. Broken variable-item
list has no fixed mark, it assumes that every LI has a
mark instead. The text always begins at the next line
after the mark. text-indent sets the indentation to the
text, and mark-indent the distance from the current
indentation to the mark. A third argument prohibits
printing of a blank line before each item.
COVER [style]
Begin a cover sheet description. It is important that
.COVER appear before any of the body text (or main matter)
of a document. The argument style is used to construct
the file name /usr/local/share/groff/1.23.0/tmac/mm/style
.cov and load it with the mso request. Therefore it is
possible to create unlimited types of cover sheets. The
default style is ms; it structures a cover sheet to
resemble that used by the ms package. .COVER requires a
.COVEND at the end of the cover description. Always use
the following ordering of the cover sheet macros.
.COVER
.TL
.AF
.AU
.AT
.AS
.AE
.COVEND
Only .TL and .AU are required.
COVEND End the cover description and output the cover page. This
macro is defined in the cover sheet macro file.
DE Display end. Ends a block of text or display that begins
with DS or DF.
DF [format [fill [rindent]]]
Begin floating display. A floating display is saved in a
queue and is printed in the order entered. The arguments
format, fill, and rindent are handled as in DS. Floating
displays cannot be nested. Floating display output is
controlled by the registers De and Df.
DL [text-indent [1 [1]]]
Dash list start. Begins a list where each item is printed
after a dash. text-indent changes the default indentation
of the list items set by register Pi. A second argument
prevents an empty line between each list item. See LI. A
third argument prohibits printing of a blank line before
each item.
DS [format [fill [rindent]]]
Static display start. Begins collection of text until DE.
The text is printed together on the same page, unless it
is longer than the height of the page. DS can be nested
arbitrarily.
format
"" No indentation.
none No indentation.
L No indentation.
I Indent text with the value of register Si.
C Center each line.
CB Center the whole display as a block.
R Right-adjust the lines.
RB Right-adjust the whole display as a block.
The values “L”, “I”, “C”, and “CB” can also be specified
as “0”, “1”, “2”, and “3”, respectively, for compatibility
reasons.
fill
"" Line-filling turned off.
none Line-filling turned off.
N Line-filling turned off.
F Line-filling turned on.
“N” and “F” can also be specified as “0” and “1”,
respectively.
By default, an empty line is printed before and after the
display. Setting register Ds to 0 prevents this. rindent
shortens the line length by that amount.
EC [title [override [flag [refname]]]]
Equation title. Sets a title for an equation. The
override argument changes the numbering.
flag
none override is a prefix to the number.
0 override is a prefix to the number.
1 override is a suffix to the number.
2 override replaces the number.
EC uses the register Ec as a counter. It is possible to
use .af to change the format of the number. If register
Of is 1, the format of title uses a dash instead of a dot
after the number.
The string Le controls the title of the List of Equations;
default is “LIST OF EQUATIONS”. The List of Equations is
printed only if register Le is 1. The default is 0. The
string Liec contains the word “Equation”, which is printed
before the number. If refname is used, then the equation
number is saved with .SETR, and can be retrieved with
“.GETST refname”.
Special handling of the title occurs if EC is used inside
DS/DE; it is not affected by the format of DS.
EF [arg]
Even-page footer, printed just above the normal page
footer on even pages. See PF.
This macro defines string EOPef.
EH [arg]
Even-page header, printed just below the normal page
header on even pages. See PH.
This macro defines string TPeh.
EN End equation input preprocessed by see EQ.
EOP End-of-page user-defined macro. This macro is called
instead of the normal printing of the footer. The macro
is executed in a separate environment, without any trap
active. See TP.
Strings available to EOP
EOPf argument of PF
EOPef argument of EF
EOPof argument of OF
EPIC [-L] width height [name]
Draw a box with the given width and height. It also
prints the text name or a default string if name is not
specified. This is used to include external pictures;
just give the size of the picture. -L left-aligns the
picture; the default is to center. See PIC.
EQ [label]
Start equation input preprocessed by 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 at the 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]]]]
Exhibit title. The arguments are the same as for EC. EX
uses the register Ex as a counter. The string Lx controls
the title of the List of Exhibits; default is “LIST OF
EXHIBITS”. The List of Exhibits is printed only if
register Lx is 1, which is the default. The string Liex
contains the word “Exhibit”, which is printed before the
number. If refname is used, the exhibit number is saved
with .SETR, and can be retrieved with “.GETST refname”.
Special handling of the title occurs if EX is used inside
DS/DE; it is not affected by the format of DS.
FC [closing]
Print “Yours very truly,” as a formal closing of a letter
or memorandum. The argument replaces the default string.
The default is stored in the string Letfc.
FD [arg [1]]
Footnote default format. Controls the hyphenation
(hyphen), adjustment to the right margin (adjust), and
indentation of footnote text (indent). It can also change
the label justification (ljust).
arg hyphen adjust indent ljust
0 no yes yes left
1 yes yes yes left
2 no no yes left
3 yes no yes left
4 no yes no left
5 yes yes no left
6 no no no left
7 yes no no left
8 no yes yes right
9 yes yes yes right
10 no no yes right
11 yes no yes right
An argument greater than or equal to 11 is considered as
value 0. The default for mm is 10.
FE Footnote end; see macro FS.
FG [title [override [flag [refname]]]]
Figure title. The arguments are the same as for EC. FG
uses the register Fg as a counter. The string Lf controls
the title of the List of Figures; default is “LIST OF
FIGURES”. The List of Figures is printed only if register
Lf is 1, which is the default. The string Lifg contains
the word “Figure”, which is printed before the number. If
refname is used, then the figure number is saved with
.SETR, and can be retrieved with “.GETST refname”.
Special handling of the title occurs if FG is used inside
DS/DE, it is not affected by the format of DS.
FS [label]
Footnote start. Text 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. Vertical space in the amount of
register Fs separates footnotes; the default amount is 1v.
In groff ms, 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 header 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 header 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
header 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 [heading-text [heading-suffix]]
Numbered section heading. Section headers can have a
level between 1 and 14; level 1 is the top level. The
text is given in heading-text, and must be surrounded by
double quotes if it contains spaces. heading-suffix is
added to the header in the text but not in the table of
contents. This is normally used for footnote marks and
similar things. Don't use \*F in heading-suffix, it
doesn't work. A manual label must be used, see FS.
A call to the paragraph macro P directly after H is
ignored. H takes care of spacing and indentation.
Page ejection before heading
Register Ej controls page ejection before the
heading. By default, a level-one heading gets two
blank lines before it; higher levels only get one.
A new page is ejected before each first-level
heading if register Ej is 1. All levels below or
equal the value of Ej get a new page. Default
value for Ej is 0.
Heading break level
A line break occurs after the heading if the
heading level is less or equal to register Hb.
Default value is 2.
Heading space level
A blank line is inserted after the heading if the
heading level is less or equal to register Hs.
Default value is 2.
Text follows the heading on the same line if the
level is greater than both Hb and Hs.
Post-heading indent
Indentation of the text after the heading is
controlled by register Hi. Default value is 0.
Hi
0 The text is left-justified.
1 Indentation of the text follows the value of
register Pt , see P.
2 The text is lined up with the first word of the
heading.
Centered section headings
All headings whose level is equal or below register
Hc and also less than or equal to Hb or Hs are
centered.
Font control of the heading
The font of each heading level is controlled by
string HF. It contains a font number or font name
for each level. Default value is
2 2 2 2 2 2 2 2 2 2 2 2 2 2
(all headings in italic). This could also be
written as
I I I I I I I I I I I I I I
Note that some other implementations use
3 3 2 2 2 2 2 as the default value. All omitted
values are presumed to have value 1.
Point size control
String HP controls the point size of each heading,
in the same way as HF controls the font. A value
of 0 selects the default point size. Default value
is
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Beware that only the point size changes, not the
vertical size. The latter can be controlled by the
user-specified macros HX and/or HZ.
Heading counters
Fourteen registers named H1 up to H14 contain the
counter for each heading level. The values are
printed using Arabic numerals; this can be changed
with the macro HM (see below). All marks are
concatenated before printing. To avoid this, set
register Ht to 1. This only prints the current
heading counter at each heading.
Automatic table of contents
All headings whose level is equal or below register
Cl are saved to be printed in the table of
contents. Default value is 2.
Special control of the heading, user-defined macros
The following macros can be defined by the user to
get a finer control of vertical spacing, fonts, or
other features. Argument level is the level-
argument to H, but 0 for unnumbered headings (see
HU). Argument rlevel is the real level; it is set
to register Hu for unnumbered headings. Argument
heading-text is the text argument to H and HU.
HX level rlevel heading-text
This macro is called just before the
printing of the heading. The following
registers are available for HX. Note that
HX may alter }0, }2, and ;3.
}0 (string)
Contains the heading mark plus two
spaces if rlevel is non-zero,
otherwise empty.
;0 (register)
Contains the position of the text
after the heading. 0 means that the
text should follow the heading on the
same line, 1 means that a line break
should occur before the text, and
2 means that a blank line should
separate the heading and the text.
}2 (string)
Contains two spaces if register ;0
is 0. It is used to separate the
heading from the text. The string is
empty if ;0 is non-zero.
;3 (register)
Contains the needed space in units
after the heading. Default is 2v.
Can be used to change things like
numbering (}0), vertical spacing
(}2), and the needed space after the
heading.
HY dlevel rlevel heading-text
This macro is called after size and font
calculations and might be used to change
indentation.
HZ dlevel rlevel heading-text
This macro is called after the printing of
the heading, just before H or HU exits. Can
be used to change the page header according
to the 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
Unnumbered section header. HU behaves like H at the level
in register Hu. See H.
HX dlevel rlevel heading-text
User-defined heading exit. Called just before printing
the header. See H.
HY dlevel rlevel heading-text
User-defined heading exit. Called just before printing
the header. See H.
HZ dlevel rlevel heading-text
User-defined heading exit. Called just after printing the
header. 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 [addressee-name [title]]
Begin specification of the addressee and addressee's
address in letter style. Several names can be specified
with empty IA/IE-pairs, but only one address. See LT.
IB [italic-text [bold-text]] ...
Join italic-text in italics with bold-text in boldface,
without space between the arguments.
IE End the address specification after IA.
INITI type filename [macro]
Initialize the new index system and set the filename to
collect index lines in with IND. Argument type selects
the type of index: page number, header marks or both. The
default is page numbers.
It is also possible to create a macro that is responsible
for formatting each row; just add the name of the macro as
a third argument. The macro is then called with the index
as argument(s).
type
N Page numbers
H Header marks
B Both page numbers and header marks, separated with a
tab character.
INITR filename
Initialize the cross reference macros. Cross references
are written to stderr and are supposed to be redirected
into file filename.qrf. Requires two passes with groff;
this is handled by a separate program called This program
exists because by default deactivates the unsafe
operations that are required by INITR. The first pass
looks for cross references, and the second one includes
them. INITR can be used several times, but it is only the
first occurrence of INITR that is active.
See also SETR, GETPN, and GETHN.
IND arg1 [arg2 [...]]
Write a line in the index file selected by INITI with all
arguments and the page number or header mark separated by
tabs.
Examples
arg1\tpage number
arg1\targ2\tpage number
arg1\theader mark
arg1\tpage number\theader mark
INDP Print the index by running the command specified by the
string Indcmd, which has “sort -t\t” as the default value.
INDP reads the output from the command to form the index,
by default in two columns (this can be changed by defining
TYIND). The index is printed with the string Index as
header; the default is “INDEX”. One-column processing is
reactivated after the list. INDP calls the user-defined
macros TXIND, TYIND, and TZIND if defined. TXIND is
called before printing the string “INDEX”, TYIND is called
instead of printing “INDEX”, and TZIND is called after the
printing and should take care of restoring to normal
operation again.
IR [italic-text [roman-text]] ...
Join italic-text in italics with roman-text in roman
style, without space between the arguments.
ISODATE [0]
Use ISO 8601 format for the date string DT used by some
cover sheet and memorandum types; that is, YYYY-MM-DD.
Must be called before ND to be effective. If given an
argument of 0, the traditional date format for the groff
locale is used; this is also the default.
LB text-indent mark-indent pad type [mark [LI-space [LB-space]]]
List-begin macro. This is the common macro used for all
lists. text-indent is the number of spaces to indent the
text from the current indentation.
pad and mark-indent control where to put the mark. The
mark is placed within the mark area, and mark-indent sets
the number of spaces before this area. By default it
is 0. The mark area ends where the text begins. The
start of the text is still controlled by text-indent.
The mark is left-justified within the mark area if pad
is 0. If pad is greater than 0, mark-indent is ignored,
and the mark is placed pad spaces before the text. This
right-justifies the mark.
If type is 0 the list either has a hanging indentation or,
if argument mark is given, the string mark as a mark.
If type is greater than 0 automatic numbering occurs,
using arabic numbers if mark is empty. mark can then be
any of “1”, “A”, “a”, “I”, or “i”.
type selects one of six possible ways to display the mark.
type
1 x.
2 x)
3 (x)
4 [x]
5 <x>
6 {x}
Every item in the list gets LI-space number of blank lines
before them. Default is 1.
LB itself prints LB-space blank lines. Default is 0.
LC [list-level]
List-status clear. Terminates all current active lists
down to list-level, or 0 if no argument is given. This is
used by H to clear any active list.
LE [1] List end. Terminates the current list. LE outputs a
blank line if an argument is given.
LI [mark [1|2]]
List item preceding every item in a list. Without
argument, LI prints the mark determined by the current
list type. By giving LI one argument, it uses that as the
mark instead. Two arguments to LI makes mark a prefix to
the current mark. There is no separating space between
the prefix and the mark if the second argument is “2”
instead of “1”. This behaviour can also be achieved by
setting register Limsp to zero. A zero length mark makes
a hanging indentation instead.
A blank line is printed before the list item by default.
This behaviour can be controlled by register Ls. Pre-
spacing occurs for each list level less than or equal to
Ls. Default value is 99. There is no nesting limit.
The indentation can be changed through register Li.
All lists begin with a list initialization macro, LB.
There are, however, seven predefined list types to make
lists easier to use. They all call LB with different
default values.
AL Automatically Incremented List
ML Marked List
VL Variable-Item List
BL Bullet List
DL Dash List
RL Reference List
BVL Broken Variable List.
LO type [arg]
Specify options in letter (see .LT). This is a list of
the standard options:
CN Confidential notation. Prints “CONFIDENTIAL”
on the second line below the date line. Any
argument replaces “CONFIDENTIAL”. See also
string LetCN.
RN Reference notation. Prints “In reference to:”
and the argument two lines below the date
line. See also string LetRN.
AT Attention. Prints “ATTENTION:” and the
argument below the inside address. See also
string LetAT.
SA Salutation. Prints ”To Whom It May Concern:”
or the argument if it was present. The
salutation is printed two lines below the
inside address. See also string LetSA.
SJ Subject line. Prints the argument as subject
prefixed with “SUBJECT:” two lines below the
inside address, except in letter type “SP”,
where the subject is printed in all-capital
without any prefix. See also string LetSJ.
LT [arg]
Format a letter in one of four different styles depending
on the argument. Also see section “Internals” below.
Arg Style
BL Blocked. Date line, return address, writer's
address and closing begins at the center of
the line. All other lines begin at the left
margin.
SB Semi-blocked. Same as blocked, except that
the first line in every paragraph is indented
five spaces.
FB Full-blocked. All lines begin at the left
margin.
SP Simplified. As full-blocked, but the
salutation is replaced by a fully-capitalized
subject, any formal closing is omitted, and
the author's signature is presented on a
single line in full capitals.
MC column-size [column-separation]
Begin multiple columns. Return to normal with 1C. MC
creates as many columns as the current line length
permits. column-size is the width of each column, and
column-separation is the space between two columns.
Default separation is column-size/15. This is a GNU
extension; see also 1C.
ML mark [text-indent [1]]
Start a list with the mark argument preceding each list
item. text-indent sets the indentation and overrides the
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 [number [addressee]]
Memorandum type. The argument number is used to construct
the file name /usr/local/share/groff/1.23.0/tmac/mm/number
.MT and load it with the mso request. Memorandum types 0
to 5 are supported; any other value of number is mapped to
type 6. If number 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.
0 Normal memorandum, no type printed.
1 Memorandum with “MEMORANDUM FOR FILE” printed.
2 Memorandum with “PROGRAMMER'S NOTES” printed.
3 Memorandum with “ENGINEER'S NOTES” printed.
4 Released paper style.
5 External letter style.
See also COVER/COVEND, a more flexible type of cover page.
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 default unit for the width and
space arguments is “n”. .MULB uses a diversion and
operates in a separate environment.
MULN Begin next column in alternative column mode.
MULE End alternative multi-column mode and emit the columns.
NCOL Force printing to the next column. Don't use this
together with the MUL* macros, see 2C.
ND new-date
New date. Overrides the current date. Date is not
printed if new-date is an empty string.
NE End notation begun with NS; filling is enabled.
nP [type]
Print numbered paragraph with header level two. See .P.
NS [arg [1]]
Collect notations of the type specified by arg until NE is
called; filling is disabled. If a second argument,
conventionally 1, is given, then the argument becomes the
entire notation and NE is not necessary. If arg does not
match one of the predefined types listed below, the
notations are prefixed with “Copy (arg) to”. In groff mm,
you can set up further notations to be recognized by NS;
see the strings Letns and Letnsdef below.
Arg Notation
none Copy To
"" Copy To
1 Copy To (with att.) to
2 Copy To (without att.) to
3 Att.
4 Atts.
5 Enc.
6 Encs.
7 Under separate cover
8 Letter to
9 Memorandum to
10 Copy (with atts.) to
11 Copy (without atts.) to
12 Abstract Only to
13 Complete Memorandum to
14 CC
OF [arg]
Odd-page footer, a line printed just above the normal
footer. See EF and PF.
This macro defines string EOPof.
OH [arg]
Odd-page header, a line printed just below the normal
header. See EH and PH.
This macro defines string TPoh.
OP Make sure that the following text is printed at the top of
an odd-numbered page. Does not output an empty page if
currently at the top of an odd page.
P [type]
Begin new paragraph. P without argument produces
left-justified text, even the first line of the paragraph.
This is the same as setting type to 0. If the argument
is 1, the first line of text following P is indented by
the number of spaces in register Pi, by default 5.
Instead of giving an argument to P it is possible to set
the paragraph type in register Pt. Using 0 and 1 is the
same as adding that value to P. A value of 2 indents all
paragraphs, except after headings, lists, and displays
(this value can't be used as an argument to P itself).
The space between two paragraphs is controlled by register
Ps, and is 1 by default (one blank line).
PGFORM [linelength [pagelength [pageoffset [1]]]]
Set line length, page length, and/or page offset. This
macro can be used for special formatting, like letter
heads and other. It is normally the first macro call in a
file, though it is not necessary. PGFORM can be used
without arguments to reset everything after a MOVE call.
A line break is done unless the fourth argument is given.
This can be used to avoid the page number on the first
page while setting new width and length. (It seems as if
this macro sometimes doesn't work too well. Use the
command-line arguments to change line length, page length,
and page offset instead.)
PGNH No header is printed on the next page. Used to get rid of
the header in letters or other special texts. This macro
must be used before any text to inhibit the page header on
the first page.
PIC [-B] [-L] [-C] [-R] [-I n] filename [width [height]]
Include a PostScript file in the document. The macro
depends on and INITR. The arguments -L, -C, -R, and -I n
adjust the picture or indent it. With no flag the picture
is adjusted to the left. Adding -B draws a box around the
picture. The optional width and height can also be given
to resize the picture.
PE Picture end. Ends a picture for
PF [arg]
Page footer. PF sets the line to be printed at the bottom
of each page. Empty by default. See PH for the argument
specification.
This macro defines string EOPf.
PH [arg]
Page header, a line printed at the top of each page. The
argument should be specified as
"'left-part'center-part'right-part'"
where left-part, center-part, and right-part are printed
left-justified, centered, and right justified,
respectively. Within the argument to PH, the character
“%” is changed to the current page number. The default
argument is
"''- % -''"
which gives the page number between two dashes.
This macro defines string TPh.
PS Picture start (from pic). Begins a picture for
PX Page header user-defined exit. This macro is called just
after the printing of the page header in no-space mode.
PY Picture end with flyback. Ends a picture, returning the
vertical position to where it was prior to the picture.
This is a GNU extension.
R [roman-text [previous-font-text]] ...
Join roman-text in roman style with previous-font-text in
the previous font, without space between the arguments.
If no arguments, switch font to roman style.
RB [roman-text [bold-text]] ...
Join roman-text in roman style with bold-text in boldface,
without space between the arguments.
RD [prompt [diversion [string]]]
Read from standard input to diversion and/or string. The
text is saved in a diversion named diversion. Recall the
text by writing the name of the diversion after a dot on
an empty line. A string is also defined if string is
given. Diversion and/or prompt can be empty ("").
RF Reference end. Ends a reference definition and returns to
normal processing. See RS.
RI [roman-text [italic-text]] ...
Join roman-text in roman style with italic-text in
italics, without space between the arguments.
RL [text-indent[1]]
Reference list start. Begins a list where each item is
preceded with an automatically incremented number between
square brackets. text-indent changes the default
indentation.
RP [arg1 [arg2]]
Produce reference page. This macro can be used if a
reference page is wanted somewhere in the document. It is
not needed if TC is used to produce a table of contents.
The reference page is then printed automatically.
The reference counter is not reset if arg1 is 1.
arg2 tells RP whether to eject a page or not.
arg2
0 The reference page is printed on a separate page.
1 Do not eject page after the list.
2 Do not eject page before the list.
3 Do not eject page before and after the list.
The reference items are separated by a blank line.
Setting register Ls to 0 suppresses the line.
The string Rp contains the reference page title and is set
to “REFERENCES” by default. The register Rpe holds the
default value for the second argument of RP; it is
initially set to 0.
RS [string-name]
Begin an automatically numbered reference definition. Put
the string \*(Rf where the reference mark should be and
write the reference between RS/RF at next new line after
the reference mark. The reference number is stored in
register :R. If string-name is given, a string with that
name is defined and contains the current reference mark.
The string can be referenced as \*[string-name] later in
the text.
S [size [spacing]]
Set point size and vertical spacing. If any argument is
equal to “P”, the previous value is used. A “C” means the
current value, and “D” the default value. If “+” or “-”
is used before the value, the current value is incremented
or decremented, respectively.
SA [arg]
Set right-margin justification. Justification is turned
on by default. No argument or value “0” turns off
justification, and “1” turns on justification.
SETR refname [string]
Remember the current header and page number as refname.
Saves string if string is defined. string is retrieved
with .GETST. See INITR.
SG [arg [1]]
Signature line. Prints the authors name(s) after the
formal closing. The argument is appended to the reference
data, printed at either the first or last author. The
reference data is the location, department, and initials
specified with .AU. It is printed at the first author if
the second argument is given, otherwise at the last. No
reference data is printed if the author(s) is specified
through .WA/.WE. See section “Internals” below.
SK [pages]
Skip pages. If pages is 0 or omitted, a skip to the next
page occurs unless it is already at the top of a page.
Otherwise it skips pages pages.
SM string1 [string2 [string3]]
Make a string smaller. If string2 is given, string1 is
made smaller and string2 stays at normal size,
concatenated with string1. With three arguments,
everything is concatenated, but only string2 is made
smaller.
SP [lines]
Space vertically. lines can have any scaling factor, like
“3i” or “8v”. Several SP calls in a line only produces
the maximum number of lines, not the sum. SP is ignored
also until the first text line in a page. Add \& before a
call to SP to avoid this.
TAB Reset tabs to every 5n. Normally used to reset any
previous tab positions.
TB [title [override [flag [refname]]]]
Table title. The arguments are the same as for EC. TB
uses the register Tb as a counter. The string Lt controls
the title of the List of Tables; default value is “LIST OF
TABLES”. The List of Tables is printed only if register
Lt is 1, which is the default. The string Litb contains
the word “TABLE”, which is printed before the number.
Special handling of the title occurs if TB is used inside
DS/DE, it is not affected by the format of DS.
TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]
Table of contents. This macro is normally used as the
last line of the document. It generates a table of
contents with headings up to the level controlled by
register Cl. Note that Cl controls the saving of
headings, it has nothing to do with TC. Headings with a
level less than or equal to slevel get spacing number of
lines before them. Headings with a level less than or
equal to tlevel have their page numbers right-justified
with dots or spaces separating the text and the page
number. Spaces are used if tab is greater than zero, dots
otherwise. Other headings have the page number directly
at the end of the heading text (ragged-right).
The rest of the arguments is printed, centered, before the
table of contents.
The user-defined macros TX and TY are used if TC is called
with at most four arguments. TX is called before the
printing of the string “CONTENTS”, and TY is called
instead of printing “CONTENTS”.
Equivalent macros can be defined for list of figures,
tables, equations and exhibits by defining TXxx or TYxx,
where xx is “Fg”, “TB”, “EC”, or “EX”, respectively.
String Ci can be set to control the indentations for each
heading-level. It must be scaled, like
.ds Ci .25i .5i .75i 1i 1i
By default, the indentation is controlled by the maximum
length of headings in each level.
The strings Lifg, Litb, Liex, Liec, and Licon contain
“Figure”, “TABLE”, “Exhibit”, “Equation”, and “CONTENTS”,
respectively. These can be redefined to other languages.
TE Table end. See TS.
TH [N] Table header. See TS. TH ends the header of the table.
This header is printed again if a page break occurs.
Argument “N” isn't implemented yet.
TL [charging-case-number [filing-case-number]]
Begin title of memorandum. All text up to the next AU is
included in the title. charging-case-number and filing-
case-number are saved for use in the front page
processing.
TM [num1 [num2 [...]]]
Technical memorandum numbers used in .MT. An unlimited
number of arguments may be given.
TP Top-of-page user-defined macro. This macro is called
instead of the normal page header. It is possible to get
complete control over the header. Note that the header
and the footer are printed in a separate environment.
Line length is preserved, though. See EOP.
strings available to TP
TPh argument of PH
TPeh argument of EH
TPoh argument of OH
TS [H] Table start. This is the start of a table specification
to TS ends with TE. Argument “H” tells mm that the table
has a header. See TH.
TX User-defined table of contents exit. This macro is called
just before TC prints the word “CONTENTS”. See TC.
TY User-defined table of contents exit. This macro is called
instead of printing “CONTENTS”. See TC.
VERBON [flag [point-size [font]]]
Begin verbatim output using Courier font. Usually for
printing programs. All characters have equal width. The
point size can be changed with the second argument. By
specifying a third argument it is possible to use another
font instead of Courier. flag controls several special
features. Its value is the sum of all wanted features.
Arg Description
1 Disable the escape character (\). This is
normally turned on during verbose output.
2 Add an empty line before the verbose text.
4 Add an empty line after the verbose text.
8 Print the verbose text with numbered lines.
This adds four digit-sized spaces in the
beginning of each line. Finer control is
available through the string Verbnm. It
contains all arguments to the command .nm,
normally “1”.
16 Indent the verbose text by “5n”. This is
controlled by the register Verbin (in units).
VERBOFF
End verbatim output.
VL text-indent [mark-indent [1]]
Variable-item list. It has no fixed mark, it assumes that
every LI has a mark instead. text-indent sets the indent
to the text, and mark-indent the distance from the current
indentation to the mark. A third argument prohibits
printing of a blank line before each item.
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-name [title]]
Begin specification of the writer and writer's address.
Several names can be specified with empty WA/WE pairs, but
only one address.
WC [format1] [format2] [...]
Footnote and display width control.
N Set default mode which is equal to using the options
-WF, -FF, -WD, and FB.
WF Wide footnotes, wide also in two-column mode.
-WF Normal footnote width, follow column mode.
FF All footnotes gets the same width as the first
footnote encountered.
-FF Normal footnotes, width follows WF and -WF.
WD Wide displays, wide also in two-column mode.
-WD Normal display width, follow column mode.
FB Floating displays generates a line break when
printed on the current page.
-FB Floating displays does not generate line break.
WE End the address specification after WA.
App A string containing the word “APPENDIX”.
Apptxt The current appendix text.
BU bullet (see BL macro)
Ci list of indentation amounts to use for table of contents
heading levels, overriding automatic computation
DT The date; set by the ND macro (defaults to the date the
document is formatted). The format is the conventional
one for the groff locale, but see the ISODATE macro and
Iso register.
EM Em dash string
F interpolates an automatically numbered footnote marker;
the number is used by the next FS call without an
argument. In troff mode, the marker is superscripted; in
nroff mode, it is surrounded by square brackets.
H1txt Updated by .H and .HU to the current heading text. Also
updated in table of contents & friends.
HF Font list for headings, “2 2 2 2 2 2 2” by default. Non-
numeric font names may also be used.
HP Point size list for headings. By default, this is “0 0 0
0 0 0 0” which is the same as “10 10 10 10 10 10 10”.
Index Contains the string “INDEX”.
Indcmd Contains the index command. Default value is “sort -t\t”.
Le Contains the string “LIST OF EQUATIONS”.
Letfc Contains the string “Yours very truly,”, used in .FC.
Letapp Contains the string “APPROVED:”, used in .AV.
LetAT Contains the string “ATTENTION:”, used in .LO AT.
LetCN Contains the string “CONFIDENTIAL”, used in .LO CN.
Letdate
Contains the string “Date”, used in .AV.
Letns is an array containing the different strings used in .NS.
Since roff languages lack true array types, it is
implemented as a set of strings prefixed with Letns!. If
the argument doesn't exist, it is included between () with
Letns!copy as a prefix and Letns!to as a suffix. Observe
the space after “Copy” and before “to”.
Name Value
Letns!0 Copy to
Letns!1 Copy (with att.) to
Letns!2 Copy (without att.) to
Letns!3 Att.
Letns!4 Atts.
Letns!5 Enc.
Letns!6 Encs.
Letns!7 Under separate cover
Letns!8 Letter to
Letns!9 Memorandum to
Letns!10 Copy (with atts.) to
Letns!11 Copy (without atts.) to
Letns!12 Abstract Only to
Letns!13 Complete Memorandum to
Letns!14 CC
Letns!copy Copy (with trailing space)
Letns!to to (note leading space)
Letnsdef
Define the standard notation used when no argument is
given to .NS. Default is 0.
LetRN Contains the string “In reference to:”, used in .LO RN.
LetSA Contains the string “To Whom It May Concern:”, used in .LO
SA.
LetSJ Contains the string “SUBJECT:”, used in .LO SJ.
Lf Contains the string “LIST OF FIGURES”.
Licon String containing “CONTENTS”.
Liec String containing “Equation”.
Liex String containing “Exhibit”.
Lifg String containing “Figure”.
Litb String containing “TABLE”.
Lt Contains the string “LIST OF TABLES”.
Lx Contains the string “LIST OF EXHIBITS”.
MO1 – MO12
Strings containing the month names “January” through
“December”.
Qrf String containing “See chapter \\*[Qrfh], page
\\n[Qrfp].”.
Rp Contains the string “REFERENCES”.
Tcst Contains the current status of the table of contents and
list of figures, etc. Empty outside of .TC. Useful in
user-defined macros like .TP.
Value Meaning
co Table of contents
fg List of figures
tb List of tables
ec List of equations
ex List of exhibits
ap Appendix
Tm contains the special character \(tm, the trade mark sign.
Verbnm Argument to .nm in the .VERBON macro. Default is 1.
.mgm Always 1.
:p auto-incrementing footnote counter; see macro FS
:R auto-incrementing reference counter; see macro RS
Aph Print an appendix page for every new appendix if this
register is non-zero. No output occurs if Aph is zero,
but there is always an appendix entry in the “List of
contents”.
Au includes supplemental author information (the third and
subsequent arguments to AU ) in memorandum “from”
information. It defaults to 1; 0 excludes the
information.
Cl Contents level (in the range 0 to 14). The contents is
saved if a heading level is lower than or equal to the
value of Cl. Default is 2.
Cp Eject page between list of table, list of figure, etc., if
the value of Cp is zero. Default is 0.
D Debug flag. Values greater than zero produce debug
information of increasing verbosity. A value of 1 gives
information about the progress of formatting. Default
is 0.
De If 1, eject page after a floating display is output. The
default is 0.
Df Configure the output of the floating keep macro DF. The
valid range is 0 to 5; the default is 5.
0 Output displays at the end of each section when
section-page numbering is active, or at the end
of the document otherwise.
1 Output a display on the current page if there
is enough space, otherwise at the end of the
document.
2 Output one display at the top of each page or
column.
3 Output a display on the current page if there
is enough space, otherwise at the top of the
next page or column.
4 Output as many displays as possible in a new
page or column. A page break occurs between
each display if De is not zero.
5 Fill the current page with displays and the
rest beginning at a new page or column. A page
break occurs between each display if De is not
zero.
Ds If set to 1, use the amount of space stored in register
Lsp before and after display. Default is 1.
Dsp If defined, it controls the space output before and after
static displays. Otherwise the value of Lsp is used.
Ej If set to 1, eject page before each first-level heading.
Default is 0.
Eq aligns equation labels to the left of a display if 1, and
to the right if 0 (default).
Ex auto-incrementing exhibit counter; see macro EX
Fg auto-incrementing figure counter; see macro FG
Fs Footnote spacing. Default is 1.
H1...H14
auto-incrementing heading counters; see macro H
H1dot Append a dot after the level-one heading number if value
is greater than zero. Default is 1.
H1h A copy of register H1, but it is incremented just before
the page break. Useful in user-defined header macros.
Hb Heading break level. A number in the range 0 to 14, with
a default value of 2. See .H.
Hc Heading centering level. A number in the range 0 to 14,
with a default value of 0. See .H.
Hi Heading temporary indent. A number in the range 0 to 2,
with a default value of 1.
0 no indentation, left margin
1 indent to the right, similar to “.P 1”
2 indent to line up with text part of preceding
heading
Hps Heading pre-space level. If the heading level is less
than or equal to Hps, two lines precede the section
heading instead of one. Default is first level only. The
real amount of lines is controlled by the registers Hps1
and Hps2.
Hps1 Number of lines preceding .H if the heading level is
greater than Hps. Value is in units, default is 0.5.
Hps2 Number of lines preceding .H if the heading level is less
than or equal to Hps. Value is in units, default is 1.
Hs Heading space level. A number in the range 0 to 14, with
a default value of 2. See .H.
Hss Number of lines following .H if the heading level is less
than or equal to Hs. Value is in units, default is 1.
Ht Heading numbering type.
0 multiple levels (1.1.1, 1.1.2, etc.)
1 single level
Default is 0.
Hu Unnumbered heading level. Default is 2.
Hy Hyphenation status of text body.
0 no hyphenation
1 hyphenation on, set to value 6
Default is 0.
Iso Define this register (to any value) on the command line to
use ISO 8601 date format (e.g., “-rIso=1”). See macro
ISODATE above.
L defines the page length for the document, and must be set
from the command line. A scaling unit should be appended.
The default is that of the selected groff output device.
Le
Lf
Lt
Lx enable (1) or disable (0) the inclusion of lists of
equations. figures, tables, and exhibits, respectively.
All default to 1 except Le, which defaults to 0.
Letwam Maximum lines in return-address, used in .WA/.WE. Default
is 14.
Li is the list item indentation amount used by lists (LB and
the macros that call it). The default is 6.
Limsp A flag controlling the insertion of space between prefix
and mark in automatic lists (.AL).
0 no space
1 emit space
Ls List space threshold. If current list level is greater
than Ls no spacing occurs around lists. Default is 99.
Lsp The vertical space used by an empty line. The default is
0.5v in troff mode and 1v in nroff mode.
N Page numbering style.
0 normal header for all pages.
1 header replaces footer on first page, header is
empty.
2 page header is removed on the first page.
3 “section-page” numbering style enabled.
4 page header is removed on the first page.
5 “section-page” and “section-figure” numbering
style enabled.
Default is 0. See also the registers Sectf and Sectp.
Np A flag to control whether paragraphs are numbered.
0 not numbered
1 numbered in first-level headings.
Default is 0.
O defines the page offset of the document, and must be set
from the command line. A scaling unit should be appended.
The default is .75i on terminal devices and .963i on
typesetters.
Oc controls the presence of page numbers in the table of
contents. The default is 0, which numbers the pages with
Arabic numerals; any positive value suppresses them.
Of Format of figure, table, exhibit, and equation titles.
0 ". "
1 " - "
Default is 0.
P Current page number, normally the same as “%” unless
“section-page” numbering style is enabled.
Pi Paragraph indentation. Default is 5.
Pgps A flag to control whether header and footer point size
should follow the current settings or just change when the
header and footer are defined.
0 Point size only changes to the current setting
when .PH, .PF, .OH, .EH, .OF, or .OE is
executed.
1 Point size changes after every .S. This is the
default.
Ps Paragraph spacing. Default is 1.
Pt Paragraph type.
0 left-justified
1 indented paragraphs
2 indented paragraphs except after .H, .DE, or
.LE.
Default is 0.
Rpe Set default value for second argument of .RP. Default
is 0.
S defines the type size for the document, and must be set
from the command line. A scaling unit may be appended;
scaled points are assumed.
Sectf A flag controlling “section-figures” numbering style. A
non-zero value enables this. See also register N.
Sectp A flag controlling “section-page” numbering style. A non-
zero value enables this. See also register N.
Si Display indentation. Default is 5.
V defines the vertical spacing for the document, and must be
set from the command line. A scaling unit may be
appended; points are assumed. The default vertical
spacing is 120% of the type size.
Verbin Indentation for .VERBON. Default is 5n.
W defines the “width” (line length) of the document, and
must be set from the command line. A scaling unit should
be appended. The default is 6i.
The letter macros use different submacros depending on the letter
type. The name of the submacro has the letter type as suffix.
It is therefore possible to define other 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 strings and macros must be defined for a new letter
type.
let@init_type
This macro is called directly by .LT. It is supposed to
initialize registers and other stuff.
let@head_type
This macro prints the letter head, and is called instead
of the normal page header. It is supposed to remove the
alias let@header, otherwise it is called for all pages.
let@sg_type name title n is-surname [SG-arg ...]]
.SG calls this macro only for letters; memoranda have
their own processing. name and title are specified
through .WA/.WB. n is the index of the nth author, and
is-surname is true for the last name. 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 is implemented as a general option-macro. It demands that a
string named Lettype is defined, where type is the letter type.
.LO then assigns the argument to the string let*lo-type.
/usr/local/share/groff/1.23.0/tmac/m.tmac
is the groff implementation of the memorandum macros.
/usr/local/share/groff/1.23.0/tmac/mm.tmac
is wrapper to load m.tmac.
/usr/local/share/groff/1.23.0/tmac/refer-mm.tmac
implements support for mm.
/usr/local/share/groff/1.23.0/tmac/mm/ms.cov
implements an ms-like cover sheet.
/usr/local/share/groff/1.23.0/tmac/mm/0.MT
implements memorandum types 0–3 and 6.
/usr/local/share/groff/1.23.0/tmac/mm/4.MT
implements memorandum type 4.
/usr/local/share/groff/1.23.0/tmac/mm/5.MT
implements memorandum type 5.
/usr/local/share/groff/1.23.0/tmac/mm/locale
performs any (further) desired necessary localization;
empty by default.
The GNU version of the mm macro package was written by Jörgen
Hägg ⟨jh@axis.se⟩ of Lund, Sweden.
MM - A Macro Package for Generating Documents
⟨https://tkurtbond.github.io/troff/mm-all.pdf⟩, the DWB 3.3 mm
manual, introduces the package but does not document groff mm
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”.
This page is part of the groff (GNU troff) project. Information
about the project can be found at
⟨http://www.gnu.org/software/groff/⟩. If you have a bug report
for this manual page, see ⟨http://www.gnu.org/software/groff/⟩.
This page was obtained from the project's upstream Git repository
⟨https://git.savannah.gnu.org/git/groff.git⟩ on 2022-12-17. (At
that time, the date of the most recent commit that was found in
the repository was 2022-12-14.) If you discover any rendering
problems in this HTML version of the page, or you believe there
is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org
groff 1.23.0.rc1.3569-94746-d1i4rtDyecember 2022 groff_mm(7)