from small one page howto to huge articles all in one place
Last additions:
May 25th. 2007:
April, 26th. 2006:
|
You are here: manpages
groff_mm
Section: Environments, Tables, and Troff Macros (7) Updated: 202-0-28 Index
Return to Main Contents
Name
groff_mm - memorandum macros for GNU
roff
.nr d-fallback 1
.nr d-fallback 1
Synopsis
[ option~...]
[ file~...]
[ option~...]
[ file~...]
Description
The
mm
macro package distributed with the
groff
document formatting system
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 within a word 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.
LB
begins a list with customizable layout parameters.
DS
and
DF
start static and floating displays,
respectively;
DE
terminates either.
groff mm
is intended to be compatible with the
mm
implementation found in the AT&T Documenter's Workbench 3.3
([lq]DWB[rq]),
with the following limitations and changes.
- [bu]
-
Omitted features include
the logo and company name strings,
}Z
and
]S,
respectively;
the encoded company site location addresses recognized as the third
argument to the
AU
macro;
the
Pv
([lq]private[rq] heading)
register;
and the
OK
(other keywords)
and
PM
(proprietary markings)
macros.
- [bu]
-
groff mm
implements the
CS
(output cover page or [lq]sheet[rq])
macro only for memorandum type 4.
- [bu]
-
The
grap
preprocessor is not explicitly supported;
groff mm
defines no
G1
or
G2
macros.
- [bu]
-
Registers
A,
C,
T,
and
U,
set from the
troff or
nroff command lines with DWB,
are not recognized.
- [bu]
-
When setting the registers
L
or
W
from the command line,
use an explicit scaling unit to avoid surprises.
- [bu]
-
The
Le
register defaults to
1,
consistently with
Lf,
Lt,
and
Lx
in DWB;
equations captioned with
EC
appear in tables of contents produced by
TC.
- [bu]
-
The
Li
register configures the text indentation of
RL
list items;
DWB used a har-coded value of 6~ens.
- [bu]
-
groff mm
uses the same adjustment and font style defaults in
nroff
and
troff
modes.
- [bu]
-
Cut marks are not supported.
DWB supported only seven heading levels.
As a compatible extension,
groff mm
supports fourteen,
introducing new registers
H8
through
H14,
and affecting the interpretation of the
HF
and
HP
strings.
groff mm
features a citation
(or [lq]bookmark[rq])
system,
permitting the document to make (customizable) internal references like
[lq]See chapter 5,
page 128.[rq].
Forward references require tw-pass formatting.
See the
INITR
macro description below
and
Macro,
register,
and string descriptions in this page frequently mention each other;
most 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 mixe-case names.
Except where noted,
mm
assumes that horizontal measurements are reckoned in ens
(scaling unit
n)
and vertical ones in vees
(scaling unit
v).
groff mm
permits use of no-integral
typographical points
(scaling unit
z).
Use explicit scaling units for clarity and predictable behavior.
Document styles
groff mm
offers three frameworks for document organization.
COVER/: COVEND
is a flexible means of preparing any document requiring a cover page.
LT/ LO
aids preparation of typical Anglophone correspondence
(business letters,
for example).
The
MT
memorandum type mechanism implements a group of formal styles
historically used by AT&T Bell Laboratories.
Your document can select at most one of these approaches;
when used,
each disables the others.
Localization
groff mm
is designed to be easily localized.
For languages other than English,
strings that can appear in output are collected in the file
/usr/:share/:groff/:1.24.2/:tmac/:xx :.tmac,
where
xx
is an ISO~639 tw-letter language identifier.
Localization packages should be loaded after
mm;
for example,
you might format a Swedish
mm
document with the command
[lq] groff -mm -msv[rq].
This package can also be localized by site or territory;
for example,
/usr/:share/:groff/:1.24.2/: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.24.2/:tmac/:mm/:territory _locale
to be loaded at package initialization.
If this mechanism is not used,
/usr/:share/:groff/:1.24.2/:tmac/:mm/:locale
is loaded instead.
No diagnostic is produced if these files do not exist.
Registers and strings
Much
mm
behavior can be configured by registers and strings.
The
nr
request assigns a value to a register.
-
.nr
ident
[[-]]n
[i]
ident
is the name of the register,
and
n~is
the value to be assigned.
Prefixing
n
with
a plus or minus sign increments or decrements (respectively) its
existing value.
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's value automatically changes
by ~i
prior to interpolation if a plus or minus sign is included in the escape
sequence as follows.
-
[rs]n[[-]][ident]
i~can
be negative;
it combines algebraically with the sign in the interpolation escape
sequence.
The brackets around
ident
are literal.
Many of the registers
mm
provides are as Boolea-valued,
meaning that they are considered [lq]true[rq]
(on,
enabled)
when they have a positive value,
and [lq]false[rq]
(off,
disabled)
otherwise.
Define strings 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
( [rs][dq])
so that extraneous spaces do not intrude during document maintenance.
To include leading spaces in
contents,
prefix it with a double quote.
Interpolate strings with the
[rs]*
escape sequence.
-
[rs]*[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 zer-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
mm
assumes that the font styles
R~(roman),
I~(italic),
and
B~(bold)
are mounted at font positions
1,
2,
and~ 3,
respectively.
Use the
fp
request to mount substitute fonts at these positions as desired.
The default font family is
[lq] T[rq]
(Times).
To select a different one,
invoke
groff's
fam
request or use its
-f
comman-line option.
Macros
Doubl-quote macro arguments that contain space characters.
An explicitly empty argument may be specified
with an empty pair of double quotes;
for example,
the following macro call has three arguments.
-
.XX [dq]foo bar[dq] [dq][dq] baz
Some macros are documented as causing a page break;
this does not occur if such a macro is called when the drawing position
is already at the top of a page
(after a page heading,
if any).
Hook
macros are undefined by default;
mm
calls them to enable customization of its behavior.
(DWB termed these [lq]exits[rq].)
Macro names longer than two characters are extensions;
some shorter names were not part of DWB's
published interface but are documented aspects of
groff mm.
- 1C~[1]
-
Format page text in one column
(the default layout).
The page is broken.
A~1
argument suppresses this break;
its use may cause body text and a pending footnote to overprint.
See
2C,
MC,
and
NCOL.
- 2C
-
Begin tw-column formatting.
This is a special case of
MC.
See
1C
and
NCOL.
- AE
-
Abstract end;
stop collecting abstract text.
See
AS.
- AF~[
-
or-name]
Specify a memorandum's organizational affiliation.
At most one can be declared;
or-name
is used by
MT
memoranda and available to cover pages.
See
COVER.
- AFX
-
Define this hook macro to assume responsibility for formatting the
affiliated firm name defined by
AF
in memorandum types 0 and 4 and documents using the
ms
cover page style.
If not defined
(the default),
internally defined macros handle this task;
see subsection [lq]Internals[rq] and section [lq]Files[rq] below.
Applications include setting the firm name in a different font family
or at a larger type size,
drawing a rule across the page,
and including a logo image using
groff's
PDFPIC
or
PSPIC
macros.
See
MT,
COVER,
and
- AL~[
-
numbe-format~[tex-indent~[1]]]
Begin an aut-incrementing numbered list,
where item numbers start at one and are followed by a dot.
numbe-format
assigns the register format
(see above)
mm
uses for the list item enumerators.
The default
is~0.
A
tex-indent
argument overrides register
Li.
A third argument suppresses the vertical space that normally precedes
each list item;
see register
Lsp.
Vertical space in the amount of
Lsp
precedes the list itself,
but does not accumulate with pr-item space
when this list is nested in another.
AL
calls
LB;
use
LI
to declare list items,
and
LE
to end the list.
- APP~
-
[sequenc-number~[title]]
Begin an appendix.
If
sequenc-number
is omitted,
it increments
(or is initialized
to~1,
if necessary).
The register format used for
sequenc-number
is [lq]A[rq].
The page is broken.
The register
Aph
determines whether an appendix heading is then formatted.
This heading uses the string
App
followed by
sequenc-number.
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~sequenc-number n~
-
[title]
As
APP,
but increment the page number by
n.
Use this macro to [lq]skip pages[rq] 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 page of a
memorandum
(see
MT).
COVER,
by contrast,
ignores
placement
by default,
but can be customized to interpret it.
-
| placement | Effect
|
| 0 |
The abstract appears on page~1 and cover page if the document is a
[lq]released paper[rq] memorandum
([lq].MT 4[rq]);
otherwise,
it appears on page~1 without a cover page.
|
| 1 |
The abstract appears only on the cover page
([lq].MT 4[rq]
only).
|
-
An abstract does not appear at all in external letters
([lq].MT 5[rq]).
A~placement
of
2
was supported by DWB,
but is not by
groff mm.
-
A second argument increases the indentation by
indentation
and reduces the line length by twice this amount.
The default
is~0.
- 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 page style also formats these data.
- 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 pages,
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,
respectively,
beneath them.
Above these rules,
mm
formats the text in the string
Letapp;
a second argument replaces this text with one vee of vertical space.
See
LT.
- AVL~[
-
name]
As
AV,
but omitting the approval notation
(the
Letapp
string),
the date rule,
and the label below the date rule
(the
Letdate
string).
- B~
-
[bol-text~[previou-fon-text]]~...
Join
bol-text
in boldface with
previou-fon-text
in the previous font,
without space between the arguments.
If no arguments,
switch font to bold style.
- B1
-
Begin boxed static display.
The text is indented by
1n,
and the line length reduced by
2n.
See
DS.
This is a
groff mm
extension.
- B2
-
End boxed static display.
See
B1.
This is a
groff mm
extension.
- BE
-
End bottom block; see
BS.
- BI~
-
[bol-text~[itali-text]]~...
Join
bol-text
in boldface with
itali-text
in italics,
without space between the arguments.
- BL~[
-
tex-indent~[1]]
Begin bulleted list.
mm
marks each item with the string
BU.
A
tex-indent
argument overrides register
Pi.
A second argument suppresses the vertical space that normally precedes
each list item;
see register
Lsp.
Vertical space in the amount of
Lsp
precedes the list itself,
but does not accumulate with pr-item space
when this list is nested in another.
BL
calls
LB;
use
LI
to declare list items,
and
LE
to end the list.
- BR~
-
[bol-text~[roma-text]]~...
Join
bol-text
in boldface with
roma-text
in roman style,
without space between the arguments.
- BS
-
Begin bottom block.
mm
collects input into the bottom block until the document calls
BE,
and outputs it between the footnote area and footer of each page.
- BVL~[
-
tex-indent~[mar-indent~[1]]]
Begin broken variabl-item
(or [lq]tagged[rq])
list.
Each item should supply its own mark.
The line is always broken after the mark;
contrast
VL.
A
tex-indent
argument overrides register
Pi;
mar-indent
sets the distance from the indentation of the current list to the mark.
A third argument suppresses the vertical space that normally precedes
each list item;
see register
Lsp.
Vertical space in the amount of
Lsp
precedes the list itself,
but does not accumulate with pr-item space
when this list is nested in another.
BVL
calls
LB;
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.24.2/:tmac/mm/:style:.cov
and load it with the
mso
request.
The default
style
is
[lq]ms[rq];
the
ms.cov
file prepares a cover page resembling that 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
.AF
.TL
.AU
.AT
.[rs]" Add additional AU and AT calls as needed.
.AS
.AE
.COVEND
- COVEND
-
End the cover description.
- DE
-
End static or floating display begun with
DS
or
DF.
- DF~[
-
format~[fill~[righ-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~[
-
tex-indent~[1]]
Begin dashed list.
mm
marks each item with the string
EM.
A
tex-indent
argument overrides register
Pi.
A second argument suppresses the vertical space that normally precedes
each list item;
see register
Lsp.
Vertical space in the amount of
Lsp
precedes the list itself,
but does not accumulate with pr-item space
when this list is nested in another.
DL
calls
LB;
use
LI
to declare list items,
and
LE
to end the list.
- DS~[
-
format~[fill~[righ-indentation]]]
Begin static display.
mm
collects input into a display until the document calls
DE.
The display is output on a single page unless it is taller than the
height of the page.
DS
can be nested
(contrast with
DF).
-
| format | Effect
|
| I]none] | Do not indent the display.
|
| L | Do not indent the display.
|
| I |
Indent text by
[rs]n[Si].
|
| C | Center each line.
|
| CB | Center the whole display as a block.
|
| R | Righ-align each line.
|
| RB | Righ-align the whole display as a block.
|
-
The values [lq]L[rq],
[lq]I[rq],
[lq]C[rq],
and [lq]CB[rq] can also be specified as [lq]0[rq],
[lq]1[rq],
[lq]2[rq],
and
[lq]3[rq],
respectively,
for compatibility with DWB.
-
| fill | Effect
|
| I]none] | Disable filling.
|
| N | Disable filling.
|
| F | Enable filling.
|
-
[lq]N[rq] and [lq]F[rq] can also be specified as [lq]0[rq] and
[lq]1[rq],
respectively,
for compatibility with DWB.
-
A third argument
reduces the line length by
righ-indentation.
-
mm
normally
places vertical space before and after the display.
Set register
Ds
to [lq]0[rq] to suppress it.
- EC~
-
[title~[override~[flag~[re-name]]]]
Caption an equation.
A caption comprises the string
Capec
followed by an automatically incrementing counter stored in the register
Ec,
punctuation configured by the register
Of,
then
title
(if any).
Use the
af
request to configure
Ec's
number format.
override
and
flag
alter the equation number as follows.
Omitting
flag
and specifying
0
in its place are equivalent.
-
| flag | Effect
|
| 0 |
Prefix number with
override.
|
| 1 |
Suffix number with
override.
|
| 2 |
Replace number with
override.
|
-
mm
centers equation captions irrespective of the alignment of any enclosing
display.
-
Specifying
re-name
stores the equation number as if by
[lq].SETR
re-name
[rs]n[Ec][rq].
Recognition of this argument is a
groff mm
extension.
-
The package lists captioned equations in a table of contents
(see
TC)
if the Boolean register
Le
is true.
The string
Le
captions this list.
- EF~[[dq][aq]
-
left[aq]center[aq]right[aq][dq]]
Define the eve-page footer,
which is formatted just above the normal page footer on eve-numbered
pages.
See
PF.
EF
defines the string
EOPef.
- EH~[[dq][aq]
-
left[aq]center[aq]right[aq][dq]]
Define the eve-page header,
which is formatted just below the normal page header on eve-numbered
pages.
See
PH.
EH
defines the string
TPeh.
- EN
-
End mathematical expression input preprocessed by
see
EQ.
- EOP
-
groff mm
calls this hook macro in lieu of normal page footer layout.
The package uses a separate environment to format headers and footers.
See
TP.
-
Strings available to EOP
|
|
| EOPf | argument to PF
|
| EOPef | argument to EF
|
| EOPof | argument to OF
|
- EPIC~[
-
-L]~width height~[name]
Draw a box with the given
width
and
height.
The text
name
(or default text)
is formatted inside the box;
no attempt is made to size the box to fit the text.
An application of this macro is to indicate the placement of an image to
be determined later,
or externally composited in postprocessing.
-L
as the first argument
lef-aligns the box;
the default is to center it.
See
PIC.
- EQ~[
-
label]
Start mathematical expression 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 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~[re-name]]]]
Caption an exhibit.
Arguments are handled analogously to
EC.
The register
Ex
is the exhibit counter.
The string
Capex
precedes the exhibit number and any
title.
mm
centers exhibit captions irrespective of the alignment of any enclosing
display.
-
The package lists captioned exhibits in a table of contents
(see
TC)
if the Boolean register
Lx
is true.
The string
Lx
captions this list.
- FC~[
-
closin-text]
Output the string
Letfc,
or the specified
closin-text,
as the formal closing of a letter or memorandum.
See
LT
and
MT.
- FD~[
-
arg~[1]]
Configure display of footnotes.
The first argument encodes enablement of
automatic hyphenation,
adjustment to both margins,
indentation of footnote text,
and lef- vs. righ-alignment of the footnote label within the space
allocated for it.
-
| arg | Hyphenate? | Adjust? | Indent? | Label alignment
|
| 0 | no | yes | yes | left
|
| 1 | yes | yes | yes | left
|
| 2 | no | no | yes | left
|
| 3 | yes | no | yes | left
|
| 4 | no | yes | no | left
|
| 5 | yes | yes | no | left
|
| 6 | no | no | no | left
|
| 7 | yes | no | no | left
|
| 8 | no | yes | yes | right
|
| 9 | yes | yes | yes | right
|
| 10 | no | no | yes | right
|
| 11 | yes | no | yes | right
|
-
An
arg
greater than 11 is treated
as~0.
mm's
default
is~0.
-
A second argument resets footnote numbering when a firs-level heading
is encountered.
See
FS.
- FE
-
End footnote;
see
FS.
- FG~
-
[title~[override~[flag~[re-name]]]]
Caption a figure.
Arguments are handled analogously to
EC.
The register
Fg
is the figure counter.
The string
Capfg
precedes the figure number and any
title.
mm
centers figure captions irrespective of the alignment of any enclosing
display.
-
The package lists captioned figures in a table of contents
(see
TC)
if the Boolean register
Lf
is true.
The string
Lf
captions this list.
- FS~[
-
mark]
Start footnote.
mm
collects input into a footnote until the document calls
FE,
outputting it when the vertical drawing position nears the page bottom.
By default,
mm
automatically numbers footnotes starting at 1;
the number is available in register
Ftnum
and,
with a trailing period,
in
string~F.
If desired,
interpolate this string in the body text to format the footnote mark.
mm
interpolates
string~F
prior to the footnote text.
Footnotes are vertically separated by the product of
registers~Fs
and
Lsp.
In
groff mm,
footnotes may be used in displays.
-
A
mark
argument,
which need not be numeric,
replaces the default footnote mark,
leaving the
string~F
unchanged.
In that event,
you must explicitly write any footnote mark to appear
in the footnote itself.
- GETHN~re-name~
-
[string]
Interpolate
re-name's
heading mark,
or,
if
string
is specified,
store it there.
In neither case does
GETHN
suffix the interpolation with space.
See
INITR.
- GETPN~re-name~
-
[string]
Interpolate
re-name's
page number,
or,
if
string
is specified,
store it there.
In neither case does
GETPN
suffix the interpolation with space.
See
INITR.
- GETR~re-name
-
Retrieve location data for reference
re-name,
call
GETHN
and
GETPN
to populate strings
Qrfh
and
Qrfn,
respectively,
and interpolate string
Qrf
as an internal reference to it.
See
INITR.
- GETST~re-name~
-
[string]
Interpolate
re-name's
auxiliary reference datum,
or,
if
string
is specified,
store it there.
In neither case does
GETST
suffix the interpolation with space.
See
INITR.
- H~level~
-
[title~[suffix]]
Set a numbered section heading at
level.
mm
calls
LC
to clear any lists,
then produces numbered
heading marks
of the form
a.b.c...,
with up to fourteen levels of nesting.
Each level's number increments automatically with each
H
call and is reset to zero when a more significant
level
is specified.
[lq]1[rq]~is
the most significant or coarsest division of the document.
Text after an
H
call is formatted as a paragraph;
calling
P
is unnecessary.
-
The optional
title
must be doubl-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 configurable.
Several registers set
thresholds,
where heading levels at or below a threshold value are handled in one
way,
and those above it another.
For example,
mm
populates a table of contents
(see
TC)
with the title of a heading if its level is within the
Cl
register threshold.
-
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 within 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 at which a break occurs after the heading,
and register
Hs
sets a threshold within which vertical space follows it.
If the heading level is above both of these,
and the paragraph is not numbered,
mm
produces a
ru-in heading;
paragraph text follows on the same output line.
Otherwise,
register
Hi
configures the indentation of text after headings.
Threshold register
Hc
permits centering;
mm
centers a heading with a level within both of the
Hb
and
Hc
thresholds.
-
Heading typeface and size.
The
HF
string configures the fonts used
for heading marks and titles at each level.
The string
HP
likewise assigns a type size to each heading level.
The hook macros
HX
and/or
HZ
can control the vertical spacing used by headings.
-
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.
H
calls
HX,
HY,
and
HZ
hook macros to further customize headings.
These can 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 on the page,
breaking the page otherwise).
Define hook macros in expectation of the following parameters.
The argument
declare-level
is the
level
argument to
H,
or~0
for unnumbered headings
(see
HU).
actua-level
is the same as
declare-level
for numbered headings,
and the value of
register~Hu
for unnumbered headings.
titl-suffix
is the catenation of the corresponding arguments to
H
or
HU.
-
- HX~declare-level actua-level titl-suffix
-
mm
calls
HX
before setting the heading.
Your definition may alter
}0,
}2,
and
;3.
-
- }0~(string)
-
contains the heading mark plus two spaces if
declare-level
is no-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 ru-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~declare-level actua-level titl-suffix
-
mm
calls
HY
after determining the heading typeface and size.
It could be used to change indentation.
- HZ~declare-level actua-level titl-suffix
-
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~[hyphenatio-character]
-
Set hyphenation character,
selecting the default,
[lq][rs]%[rq],
if called without argument.
- 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~title~
-
[suffix]
Set an unnumbered section heading with
title
and,
as a
groff mm
extension,
an optional
suffix.
The heading is treated as a numbered heading of the level stored in
register~Hu,
but no heading mark is output;
see~H.
- I~
-
[itali-text~[previou-fon-text]]~...
Join
itali-text
in italics with
previou-fon-text
in the previous font,
without space between the arguments.
If no arguments,
switch font to italic style.
- IA~[
-
recipien-name~[title]]
Specify the inside address in a letter.
The arguments give each recipient a name and title.
mm
collects
input into the inside address until the document calls
IE,
then outputs it.
You can specify multiple recipients with empty
IA/IE
pairs;
mm
uses only the last address.
See
LT.
- IB~
-
[itali-text~[bol-text]]~...
Join
itali-text
in italics with
bol-text
in boldface,
without space between the arguments.
- IE
-
End the inside address begun with
IA.
- IND~argument~
-
...
If the Boolean register
Ref
is true,
write an index entry as a specially prepared
roff
comment to the standard error stream,
with each
argument
separated from its predecessor by a tab character.
The entry's location information is arranged as configured by the most
recent
INITI
call.
- INDP
-
Output the index set up by
INITI
and populated by
IND
calls.
By default,
INDP
calls
SK
and writes a centered caption interpolating the string
Index.
It then disables filling and calls
2C;
afterward,
it restores filling and calls
1C.
-
Define macros to customize this behavior.
INDP
calls
TXIND
before the caption,
TYIND
instead
of writing the caption,
and
TZIND
after formatting the index.
- INITI~locatio-type fil-name~
-
[macro]
Initialize
groff mm's
indexing system.
Argument
locatio-type
selects how the location of each index entry is reported.
fil-name
populates an internal string used later by
INDP.
-
| locatio-type | Entry format
|
| N | page number
|
| H | heading mark
|
| B | page number, tab character, heading mark
|
-
If
macro
is specified,
groff mm
calls it for each index entry
with the arguments given to
IND.
- INITR~fil-nam-prefix
-
Initialize the internal reference macros.
Internal references are written to the standard error stream,
which should be redirected into a file named
fil-nam-prefix.qrf.
handles this and the two formatting passes it requires.
The first pass identifies internal references;
the second includes them.
See
SETR,
GETHN,
GETPN,
and
GETST.
- IR~
-
[itali-text~[roma-text]]~...
Join
itali-text
in italics with
roma-text
in roman style,
without space between the arguments.
- LB~tex-indent mar-indent pad type~
-
[mar-o-format~[pr-ite-space~[pr-lis-space]]]
Begin list.
The macros
AL,
BL,
BVL,
DL,
ML,
RL,
and
VL
call
LB
in various ways;
they are simpler to use and may be preferred if they suit the desired
purpose.
-
mm
tracks the nesting level of lists;
the outermost is~0.
It indents
each list item
(text formatted after an
LI
call)
by
tex-indent.
The mark is lef-aligned at
mar-indent,
and padded on the left with
pad
ens of space.
type
determines the mark's format.
-
| type | Output for a mark [lq]x[rq]
|
| 0 | x
|
| 1 | x.
|
| 2 | x)
|
| 3 | (x)
|
| 4 | [x]
|
| 5 | <x>
|
| 6 | {x}
|
-
If
type
is~0,
mar-o-format
specifies each item's mark
(which can be overridden by an argument to
LI).
If
mar-o-format
is empty
(or the dummy character
[lq][rs]&[rq])
mm
sets items at
mar-indent
with a hanging indent at
tex-indent.
-
If
type
is greater than zero,
mm
supplies an automatically incrementing numeric mark,
and interprets
mar-o-format
as a register format.
-
A
type
of~-1
causes
groff mm
to break the line after the mark
even if it fits within
tex-indent;
this is a
groff mm
extension.
-
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
pr-ite-space
multiplied by the register
Lsp;
the default
is~1.
LB
precedes the list by
pr-lis-space
multiplied by the register
Lsp;
the default
is~0.
- LC~[
-
lis-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
lis-level
if specified.
- LE~[1]
-
End list.
The current list is terminated.
An argument
of~1
causes
vertical space in the amount of register
Lsp
to follow the list.
- LI~[
-
mark~[pa-prefix]]
Begin a list item.
mm
collects input into a list item
until the document terminates the current list
or calls
LI
again.
By default,
the item's text is preceded by any mark configured by the current list.
If
mark
is the only argument,
it replaces the mark configured in the corresponding
LB
call.
If the width of the mark plus any
pad
specified in the
LB
call
exceeds the text indentation,
groff mm
warns and uses one en of padding between the mark and the text.
The presence of a second argument prefixes
mark
to the
LB-configured
mark and,
as a
groff mm
extension,
conditionally puts an unbreakable space
between the prefix and mark per the argument's Boolean value.
- LO~option~
-
[value]
Specify letter options;
see
LT.
By default,
mm
recognizes the following
option
values.
See
IA
regarding the inside address and string
DT
regarding the date.
-
| option | Meaning and Effect
|
| AT |
Attention;
put contents of string
LetAT
and
value
lef-aligned after the inside address.
|
| CN |
Confidential;
put
value,
or contents of string
LetCN,
lef-aligned after the date.
|
| RN |
Reference;
put contents of string
LetRN
and
value
after the confidential notation
(if any)
and the date,
aligned with the latter.
|
| SA |
Salutation;
put
value,
or contents of string
LetSA,
lef-aligned after the inside address
and the confidential notation
(if any).
|
| SJ |
Subject;
put contents of string
LetSJ
and
value
lef-aligned after the inside address
and the attention and salutation notations
(if any).
In letter type [lq]SP[rq],
LetSJ
is ignored and
value
is set in full capitals.
|
- LT~[
-
style]
Format a letter in the designated
style,
defaulting to
BL
(see below).
A letter begins with the writer's address
(WA/WE),
followed by the date
(ND),
the inside address
(IA/IE),
the body of the letter
(P
and other genera-purpose
mm
macros),
the formal closing
(FC),
the signature
(SG),
and notations
(NS/NE).
Any of these except the body text may be omitted.
Letter options specified with
LO
add further annotations,
which are extensible;
see subsection [lq]Internals[rq] below.
-
| style | Description
|
| BL |
Blocked:
the writer's address,
date,
formal closing,
and signature are indented to the center of the line.
Everything else is lef-aligned.
|
| SB |
Sem-blocked:
as
BL,
but the first line of each paragraph is indented by
[rs]n[Pi]
ens.
|
| FB |
Fully blocked:
everything is lef-aligned.
|
| SP |
Simplified:
as
FB,
but a formal closing is omitted,
and the signature is set in full capitals.
|
- MC~colum-width~
-
[gutte-width]
Begin mult-column layout.
groff mm
creates as many columns of
colum-width
as the line length will permit.
gutte-width
is the interior spacing between columns.
It defaults to
colum-width/15.
NCOL
moves to the next column,
and
1C
returns to singl-column layout.
MC
is a
groff mm
extension,
generalizing
2C.
See
MULB
for an alternative.
- ML~mark
-
~[tex-indent~[1]]
Start a
marked list;
the
mark
argument precedes each item.
tex-indent
overrides the default indentation of the list items,
which is the width of
mark
plus one en.
A third argument suppresses the vertical space that normally precedes
each list item;
see register
Lsp.
Vertical space in the amount of
Lsp
precedes the list itself,
but does not accumulate with pr-item space
when this list is nested in another.
ML
calls
LB;
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.24.2/: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.
Omitting
type
implies
1.
addressee
sets a string analogous to one used by AT&T cover page macros
not implemented in
groff mm.
-
| type | Description
|
| 0 | normal memorandum; no caption
|
| 1 | captioned [lq]TECHNICAL MEMORANDUM[rq]
|
| 2 | captioned [lq]INTERNAL MEMORANDUM[rq]
|
| 3 | captioned [lq]ADMINISTRATIVE MEMORANDUM[rq]
|
| 4 | released paper
|
| 5 | external letter
|
| string | captioned string
|
-
See
COVER
for a more flexible cover page mechanism.
- MOVE -pos [-pos [lin-length]]
-
Move to a position, setting page offset to
-pos.
If
lin-length
is not given, the difference between current and new page offset is
used.
Use
PGFORM
without arguments to return to normal.
- MULB~
-
cw1 sp1~[cw2 sp2] ...~cwn
Begin alternative mult-column mode.
All column widths
cwi
must be specified,
as must the amount of space
spi
between each column pair.
MULB
uses a diversion and operates in a separate environment.
- MULE
-
End alternative mult-column mode and emit the columns.
- MULN
-
Start next column in alternative column mode.
- NCOL
-
Start next column
(only when using
2C
or
MC).
Contrast with
MULN.
- ND~[
-
arg]
Set the document's date.
mm
does not interpret
arg;
it can be a revision identifier
(or empty).
mm
calls
ND
itself when initializing.
- NE
-
End notation begun with
NS;
filling is enabled.
- nP~[
-
type]
As
P,
but set a paragraph number in the form
x.yy,
where
x
is the number of the second heading level,
and
yy
increments with each
nP
call;
its value is not reset when the secon-level heading number changes.
mm
uses a register format of [lq]00[rq] for
yy.
- 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 the document calls
NE.
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
[lq]Copy (line) to[rq].
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~[[dq][aq]
-
left[aq]center[aq]right[aq][dq]]
Define the od-page footer,
which is formatted just above the normal page footer on od-numbered
pages.
See
PF.
OF
defines the string
EOPof.
- OH~[[dq][aq]
-
left[aq]center[aq]right[aq][dq]]
Define the od-page header,
which is formatted just below the normal page header on od-numbered
pages.
See
PH.
OH
defines the string
TPoh.
- OP
-
Ensure that subsequent text is formatted at the top of an od-numbered
page;
no page break is performed if the drawing position is already there.
- P~[
-
type]
Begin new paragraph.
If
type
is missing
or~0,
P~sets
the paragraph fully left-aligned.
A
type
of~1
indents the first line by
[rs][Pi]
ens.
Set the register
Pt
to select a default paragraph indentation style.
The register
Ps
determines the amount of vertical space between paragraphs.
-
To set a paragraph with a hanging indent,
use
VL
with the desired indentation as the argument,
LI
(with no argument),
and
LE.
- PE
-
End picture input preprocessed by
see
PS.
- PF~[[dq][aq]
-
left[aq]center[aq]right[aq][dq]]
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~
-
[lin-length~[pag-length~[pag-offset~[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 comman-line arguments to change
line length, page length, and page offset instead.)
- PGNH
-
Suppress header on the next page.
To suppress a header on the first page,
call this macro prior to formatting any text in the document.
Also see
register~N.
- PH~[[dq][aq]
-
left[aq]center[aq]right[aq][dq]]
-
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
[lq]%[rq]
character in
arg
is replaced by the page number.
If the argument is absent,
no page header is set.
The default page header is
-
[dq][aq][aq]- % -[aq][aq][dq]
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.
By default,
the picture is lef-aligned.
Optional
width
and
height
arguments resize the picture.
Use of this macro requires tw-pass processing;
see
INITR
and
- PS
-
Start picture input preprocessed by
- PY
-
As
PE,
but with [lq]flyback[rq],
returning the drawing position to where it was prior to the picture.
This is a
groff mm
extension.
- R~
-
[roma-text~[previou-fon-text]]~...
Join
roma-text
in roman style with
previou-fon-text
in the previous font,
without space between the arguments.
If no arguments,
switch font to roman style.
- RB~
-
[roma-text~[bol-text]]~...
Join
roma-text
in roman style with
bol-text
in boldface,
without space between the arguments.
- RD~
-
[prompt~[div~[str]]]
Write
prompt
(if specified,
a tab and colon [lq]:[rq]
to the standard error stream
and read response from standard input stream,
optionally into a diversion
div
and/or string
str.
Interpolate the saved text by calling its name like a macro.
If
string
is present,
the input
is also stored in a string of that name.
- RF
-
End a bibliographic reference citiation started with
RS.
See
RP.
- RI~
-
[roma-text~[itali-text]]~...
Join
roma-text
in roman style with
itali-text
in italics,
without space between the arguments.
- RL~[
-
tex-indent~[1]]
Begin an aut-incrementing numbered list,
where item numbers start at one and set between square brackets.
A
tex-indent
argument overrides register
Li.
A second argument suppresses the vertical space that normally precedes
each list item;
see register
Lsp.
Vertical space in the amount of
Lsp
precedes the list itself,
but does not accumulate with pr-item space
when this list is nested in another.
RL
calls
LB;
use
LI
to declare list items,
and
LE
to end the list.
[lq]RL[rq] is a mnemonic for [lq]reference list[rq],
but this macro has no relationship with
mm's
bibliographic reference list facilities.
- RP~
-
[suppres-counte-reset~[pag-ejectio-policy]]
Format a reference list,
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
Rpej
configures this behavior,
and a second argument overrides its value.
TC
calls
RP
automatically if references have accumulated.
-
groff mm
calls
LB
to format the reference list;
the
Rpfmt
string configures the list's appearance.
Setting register
Ls
to~0
suppresses spacing after the list.
The string
Rp
contains the reference list caption.
- RPX
-
This hook macro assumes responsibility for formatting
the heading of the reference page that
RP
produces.
If not defined
(the default),
mm
sets the reference list caption in the string
Rp
after two vees of space,
centered in italics,
followed by another vee of space.
- RS~[
-
referenc-string]
Begin citation of an automatically numbered bibliographic reference
entry.
mm
collects input into a reference entry until the document calls
RF.
A subsequent
RP
call emits the accumulated entries.
References are numbered starting at 1;
the register
:R
stores the most recently assigned number.
Interpolate the string
Rf
where the reference mark should be,
then place the entry between
RS
and
RF
calls on text lines after the reference mark.
The
Rfstyle
register determines whether the mark is bracketed,
superscripted,
or both.
If
referenc-string
is specified,
mm
also stores the reference mark in a string of that name.
- S~[
-
typ-size~[vertica-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
retains the current value,
and
D
requests the default.
mm
treats an empty or omitted argument 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;
groff mm
assumes
1.
Invoke the
na
request as desired to temporarily suspend adjustment.
H
and
HU,
and
SA
when called without a
mode
argument,
restore the default adjustment.
- SETR~re-name~
-
[string]
Create reference
re-name,
storing its heading and page numbers.
If
string
is present,
groff mm
saves it as an auxiliary datum for retrieval by
GETST.
See
INITR.
- SG~[
-
arg~[1]]
Output author signature block(s) in
LT
letters and
MT
memoranda.
The format of a signature block depends on the letter or memorandum
type.
See subsection [lq]Internals[rq] below.
-
LT
letters emit a signature for one author at most
(see
WA).
The author's title,
if any,
is set on the next line,
indented to align with the name,
except in letter type [lq]SP[rq],
where it is set in full capitals
(like the name)
after a comma and space.
-
Memorandum type~4 uses no signature block.
In other memoranda,
each of an author's titles is set on a subsequent line,
indented to align with the name.
They furthermore encode a secretarial annotation
including the location,
department,
and initials specified in each author's
AU
call,
followed by any
arg,
writing it at the left margin preceding the last author's name,
or preceding the first if a second
SG
argument is present.
- SK~
-
[n]
Skip
n
pages.
If
n
is~0
or omitted,
mm
breaks the page if necessary.
Otherwise,
mm
prints
n
pages,
blank except for any headers and footers.
- SM~text~
-
[post]
SM~pre text post
Format
text
at a smaller type size,
joined with any specified
pre
and
post
at normal size,
without space between the arguments.
- SP~
-
[distance]
Space downward by
distance.
Multiple
SP
calls in sequence produce only the largest of the specified
distances.
SP
accepts boundar-relative motions specified with a prefixed
|
operator,
but not negative ones.
-
SP
has no effect when the drawing position is at the top of the page.
Put the dummy character escape sequence
[rs]&
(followed by
[rs]c
if desired to prevent a break)
on a text line prior to an
SP
call to overcome this restriction.
- TAB
-
Reset tab stops to every 5~ens.
The
ta
request customizes them.
- TB~
-
[title~[override~[flag~[re-name]]]]
Caption a table.
Arguments are handled analogously to
EC.
The register
Tb
is the table counter.
The string
Captb
precedes the table number and any
title.
mm
centers table captions irrespective of the alignment of any enclosing
display.
-
The package lists captioned tables in a table of contents
(see
TC)
if the Boolean register
Lt
is true.
The string
Lt
captions this list.
- 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
Captc,
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,
mm
indents an entry 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 righ-aligned page number.
If the Boolea-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 [lq]i[rq].
If the
Oc
register is true,
numbering of these pages is suppressed.
-
If the document calls
TC
with at most four arguments,
mm
calls the hook macro
TX
prior to formatting the contents caption,
and
TY
(if defined)
instead
of formatting the contents caption.
-
mm
then presents lists of
figures,
tables,
equations,
and exhibits,
in that order.
A list appears only if at least one such captioned item is present,
and if its corresponding register
(Le,
Lf,
Lt,
or
Lx)
is set.
TXxx
and
TYxx
macros,
where
xx
is [lq]FG[rq],
[lq]TB[rq],
[lq]EC[rq],
or [lq]EX[rq],
and strings
Capfg,
Captb,
Capec,
and
Capex
analogously configure the output of each captioned list.
- TE
-
End
table.
See
TS.
- TH
-
Mark the end of a
TS/TE
table heading.
When a table spans multiple pages,
the heading repeats at the top of each page.
groff mm
does not implement the
N
argument supported by DWB.
- TL~[
-
chargin-cas-number~[filin-cas-number]]
Begin document title.
mm
collects
input into the title until a subsequent
AU
call and formats it as directed by the
MT
memorandum type or cover page macros.
mm
saves
chargin-cas-number
and
filin-cas-number
for use in all memorandum types except 4.
- TM~number
-
~...
Declare technical memorandum number(s) used with
MT
memoranda.
- TP
-
mm
calls this hook macro in lieu of normal page header layout.
The package uses a separate environment to format headers and footers.
See
EOP.
-
Strings available to TP
|
|
| TPh | argument to PH
|
| TPeh | argument to EH
|
| TPoh | argument to OH
|
- TS~[H]
-
Start
table.
Argument [lq]H[rq] tells
mm
that the table's heading should repeat after page breaks.
See
TE,
TH,
and
- VERBON~
-
[format~[typ-size~[font]]]
Begin display of verbatim content.
format
controls several parameters.
Add up the values of desired features;
the default
is~0.
Further arguments configure the
typ-size
in typographical points
(on typesetting devices),
and the face
(font).
On typesetting devices,
the default face is
CR
(Courier roman),
a monospaced font:
all glyphs are equally wide.
-
| Value | Effect
|
| 1 | Disable the formatter's escape character ([rs]).
|
| 2 | Vertically space before the display.
|
| 4 | Vertically space after the display.
|
| 8 |
Number output lines; call formatter's
nm
request with arguments in string
Verbnm.
|
| 16 |
Indent by the amount stored in register
Verbin.
|
- VERBOFF
-
End verbatim display.
- VL~[
-
tex-indent~[mar-indent~[1]]]
Begin variabl-item
(or [lq]tagged[rq])
list.
Each item should supply its own mark,
or tag.
A
tex-indent
argument overrides register
Pi;
mar-indent
sets the distance from the indentation of the current list to the mark.
A third argument suppresses the vertical space that normally precedes
each list item;
see register
Lsp.
Vertical space in the amount of
Lsp
precedes the list itself,
but does not accumulate with pr-item space
when this list is nested in another.
RL
calls
LB;
use
LI
to declare list items,
and
LE
to end the list.
- VM [-T] [top [bottom]]
-
Configure vertical margins.
-
Without a
-T
argument,
increment the top and bottom margins by
top
and
bottom,
respectively.
If absent,
set the corresponding margin to zero.
-
With the
-T
argument,
set the top and bottom margins to
top
and
bottom,
respectively.
If absent,
set the respective margin to the default
(top:
7v,
bottom:
6v).
-
We recommend defining the hook macros
TP
and/or
EOP
if using
-T
and setting top and/or bottom margin to values less than the default.
groff mm
exposes this undocumented DWB macro
to enable greater user control of page layout.
- WA~[
-
writer'-name~[title]]
Specify the writer(s) of an
LT
letter.
mm
collects input into the writer's address until the document calls
WE,
then outputs it.
You can specify multiple writers with empty
WA/WE
pairs;
only the last address is used.
The arguments give each writer a name and title.
- WC~[
-
format~...]
Control width of footnotes and displays.
-
-
| format | Effect
|
| N |
equivalent to
[lq][rq]
(default)
|
| WF |
set footnotes at full line length,
even in tw-column mode
|
| -WF |
set footnotes using column line length
|
| FF |
apply width of first footnote to encountered to subsequent ones
|
| -FF |
footnote width determined by
WF
and
|
| WD |
set displays at full line length,
even in tw-column mode
|
| -WD |
set displays using column line length
|
- WE
-
End the writer's address begun with
WA.
Strings
Many
mm
strings interpolate predefined,
localizable text.
We present their contents in quotation marks.
- Abstract
-
[lq]ABSTRACT[rq]
- App
-
[lq]APPENDIX[rq]
- Apptxt
-
stores the
title
argument to the most recent
APP
call.
- Aumt
-
lists
spac-separated indices of positional arguments to the
AU
macro that should be suppressed from appearance in the document heading
on the first page of
MT
memorandum types 0[en]3 and 6.
By default,
it is undefined;
all arguments are formatted
except the second
(author initials).
- BU
-
interpolates a bullet mark,
[rs][bu].
- Capec
-
[lq]Equation[rq]
- Capex
-
[lq]Exhibit[rq]
- Capfg
-
[lq]Figure[rq]
- Captb
-
[lq]Table[rq]
- Captc
-
[lq]CONTENTS[rq]
- Ci
-
assigns indentation amounts used by each heading level listed
in a table of contents,
in on-t-one correspondence,
overriding those computed by
TC.
Each word must be a horizontal measurement
(like
[lq]1i[rq]).
- DT
-
stores the date or other identifier set by
ND,
if called,
and otherwise one constructed using
the formatter's date registers;
see
The
groff
locale determines its format,
but register
Isodate
may override it.
- EM
-
interpolates an em dash,
[rs][em].
- F
-
interpolates an automatically numbered footnote mark;
the number is used by the next
FS
call without an argument.
In
troff
mode,
the mark is superscripted;
in
nroff
mode,
it is surrounded by square brackets.
- H1txt
-
stores the text of the current firs-level heading;
H
and
HU
update it,
as does
TC
when processing table of contents entries and captions of displayed
figures,
tables,
equations,
and exhibits.
- HF
-
assigns font identifiers,
separated by spaces,
to heading levels in on-t-one correspondence.
Each identifier may be a font mounting position,
font name,
or style name.
Omitted values are assumed to be~1.
The default is
[lq]2 2 2 2 2 2 2 2 2 2 2 2 2 2[rq],
which places all headings in italics.
DWB's default was
[lq]3 3 2 2 2 2 2[rq].
- HP
-
assigns type sizes,
separated by spaces,
to heading levels in on-t-one correspondence.
groff mm
interprets each size in typographical points,
translating
zero values to
10.
Omitted values are assumed to be~0
(and are translated accordingly).
The default is
[lq]0 0 0 0 0 0 0 0 0 0 0 0 0 0[rq].
- Index
-
[lq]INDEX[rq]
- Le
-
[lq]LIST OF EQUATIONS[rq]
- Letfc
-
[lq]Yours very truly,[rq]
(see
FC)
- Letapp
-
[lq]APPROVED:[rq]
(see
AV)
- LetAT
-
[lq]ATTENTION:[rq]
(see
LO)
- LetCN
-
[lq]CONFIDENTIAL[rq]
(see
LO)
- Letdate
-
[lq]Date[rq]
(see
AV)
- Letns
-
is a group of strings structuring the notations produced by
NS.
If the
code
argument to
NS
has no corresponding string,
the notation is included between parentheses,
prefixed with
Letns!copy,
and suffixed with
Letns!to.
Observe the spaces after [lq]Copy[rq] and before [lq]to[rq].
-
| NS code | String | Contents
|
| 0 | Letns!0 | Copy to
|
| 1 | Letns!1 | Copy (with att.) to
|
| 2 | Letns!2 | Copy (without att.) to
|
| 3 | Letns!3 | Att.
|
| 4 | Letns!4 | Atts.
|
| 5 | Letns!5 | Enc.
|
| 6 | Letns!6 | Encs.
|
| 7 | Letns!7 | Under separate cover
|
| 8 | Letns!8 | Letter to
|
| 9 | Letns!9 | Memorandum to
|
| 10 | Letns!10 | Copy (with atts.) to
|
| 11 | Letns!11 | Copy (without atts.) to
|
| 12 | Letns!12 | Abstract Only to
|
| 13 | Letns!13 | Complete Memorandum to
|
| 14 | Letns!14 | CC
|
| [em] | Letns!copy | Copy (with trailing space)
|
| [em] | Letns!to | to (note leading space)
|
- Letnsdef
-
selects the notation format when
NS
is given no argument.
The default
is~0.
- LetRN
-
[lq]In reference to:[rq]
(see
LO)
- LetSA
-
[lq]To Whom It May Concern:[rq]
(see
LO)
- LetSJ
-
[lq]SUBJECT:[rq]
(see
LO)
- Lf
-
[lq]LIST OF FIGURES[rq]
- Lt
-
[lq]LIST OF TABLES[rq]
- Lx
-
[lq]LIST OF EXHIBITS[rq]
- MO1
-
...
MO12
[lq]January[rq] through [lq]December[rq]
- Qrf
-
[lq]See chapter [rs]E*[Qrfh],
page [rs]En[Qrfp].[rq]
If your document uses multiple heading levels,
you might redefine this string to use the word [lq]section[rq]
instead of [lq]chapter[rq].
- Qrfh
-
stores the heading mark corresponding to the most recent
GETR
call.
- Qrfp
-
stores the page number corresponding to the most recent
GETR
call.
- Rf
-
interpolates an automatically numbered reference mark;
the number is used by the next
RS
call.
- Rp
-
[lq]REFERENCES[rq]
- Rpfmt
-
specifies the
LB
arguments that
groff mm
uses to format the items in an
RP
reference list.
The default is
[lq][rs][rs]n[Li] 0 1 0 [rs]& 0[rq].
- Rg
-
interpolates the registered (trade) mark sign.
- Sm
-
interpolates the service mark sign.
- Tcstatus
-
interpolates an indicator of the
TC
macro's processing status.
If
TC
is not operating,
it is empty.
Use-defined
TP
or
EOP
macros might condition page headers or footers on its contents.
-
| Value | Meaning
|
| co | Table of contents
|
| fg | List of figures
|
| tb | List of tables
|
| ec | List of equations
|
| ex | List of exhibits
|
| ap | Appendix
|
- Tm
-
interpolates
the trade mark sign.
- Verbnm
-
supplies argument(s) to the
nm
request employed by the
VERBON
macro.
The default
is~1.
Registers
Default register values,
where meaningful,
are shown in parentheses.
- .mgm
-
indicates that
groff mm
is in use
(Boolea-valued;
1).
- Aph
-
formats an appendix heading
(and title,
if supplied);
see
APP
(Boolea-valued;
1).
- Au
-
includes supplemental author information
(the third and subsequent arguments to
AU)
in memorandum [lq]from[rq] information;
see
COVER
and
MT,
and the
Aumt
string
(Boolea-valued;
1).
- Cl
-
sets the threshold for inclusion of headings in a table of contents.
Headings at levels above this value are excluded;
see
H
and
TC.
The
Cl
register controls whether a heading is
saved
for output in the table of contents at the time
H
or
HU
is called;
if you change
Cl's
value immediately prior to calling
TC,
you are unlikely to get the result you want
(2).
- Cp
-
suppresses page breaks before lists of captioned
equations,
exhibits,
figures,
and tables,
and before an index;
see
EC,
EX,
FG,
TB,
and
INDP
(Boolea-valued;
0).
- D
-
produces debugging information for the
mm
package on the standard error stream.
A value of~0 outputs nothing;
1~reports formatting progress.
Higher values communicate internal state information of increasing
verbosity
(0).
- De
-
causes a page break after a floating display is output;
see
DF
(Boolea-valued;
0).
- Df
-
configures the behavior of
DF.
The following values are recognized;
4 and 5 do not override the
De
register
(5).
-
| Value | Effect
|
| 0 |
Flush pending displays
at the end of each section
when sectio-page numbering is active,
otherwise at the end of the document.
|
| 1 |
Flush a pending display
on the current page or column
if there is enough space,
otherwise at the end of the document.
|
| 2 |
Flush one pending display
at the top of each page or column.
|
| 3 |
Flush a pending display
on the current page or column
if there is enough space,
otherwise at the top of the next.
|
| 4 |
Flush as many pending displays
as possible in a new page or column.
|
| 5 |
Fill columns or pages with flushed displays
until none remain.
|
- Ds
-
puts vertical space in the amount of register
Dsp
(if defined) or
Lsp
before and after each static display;
see
DS
(Boolea-valued;
1).
- Dsp
-
configures the amount of vertical space placed
before and after static displays;
see
DS
and register
Ds
(undefined).
- Ec
-
is an aut-incrementing equation counter;
see
EC.
- E
-
determines the font style used by
MT
memoranda,
LT
letters,
and the
ms.cov
cover page style to set the date and certain other document data;
0
selects roman,
and
1
bold
(Boolea-valued;
1).
- Ej
-
sets the threshold for page breaks (ejection) prior to the format of
headings.
Headings at levels above this value are set on the same page and column
as any preceding text if possible;
see
H
(0).
- Eq
-
aligns an equation label to the left of a display instead of the right
(Boolea-valued;
0).
- Ex
-
is an aut-incrementing exhibit counter;
see
EX.
- Fg
-
is an aut-incrementing figure counter;
see
FG.
- Fs
-
is multiplied by register
Lsp
to vertically separate footnotes;
see
FS
(1).
- Ftnum
-
is an aut-incrementing footnote counter;
see
FS.
groff mm
recognizes
:p
as an alias of
Ftnum
for DWB compatibility.
- H1
-
...
H14
are aut-incrementing counters corresponding to each heading level;
see
H.
- H1dot
-
appends a period to the number of a level one heading;
see
H
(Boolea-valued;
1).
- H1h
-
is a copy of register
H1,
but it is incremented just before a page break.
This can be useful in hook macros;
see
H
and
HX.
- Hb
-
sets the threshold for breaking the line after formatting a heading.
Text after headings at levels above this value is set on the same
output line if possible.
Paragraphs numbered via
nP
or the
Np
register cause a break regardless;
see
H
(2).
- Hc
-
sets the threshold for centering a heading.
Headings at levels above this value use the prevailing alignment
(that is,
they are not centered);
see
H
(0).
- Hi
-
selects an indentation policy for text formatted after headings.
It does not affect [lq]ru-in[rq] headings.
The following values are recognized;
see
H
and
P
(1).
-
| Value | Effect
|
| 0 | no indentation
|
| 1 | indent per the paragraph type
|
| 2 | indent to align with heading title
|
- Hps
-
sets the heading level threshold for application of preceding vertical
space;
see
H.
Headings at levels above the value in register
Hps
use the amount of space in register
Hps1;
otherwise that in
Hps2.
The value of
Hps
should be strictly greater than that of
Ej
(1).
- Hps1
-
configures the amount of vertical space preceding a heading above the
Hps
threshold;
see
H
(troff
devices:
0.5v;
nroff
devices:
1v).
- Hps2
-
configures the amount of vertical space preceding a heading within the
Hps
threshold;
see
H
(troff
devices:
1v;
nroff
devices:
2v).
- Hs
-
sets the heading level threshold for application of succeeding vertical
space.
If the heading level is greater than
Hs,
the heading is followed by vertical space in the amount of
register~Hss;
see
H
(2).
- Hss
-
is multiplied by register
Lsp
to produce vertical space after headings above the
threshold in
register~Hs;
see
H
(1).
- Ht
-
suppresses output of heading level counters above the deepest when a
heading mark is formatted;
see
H
(Boolea-valued;
0).
- Hu
-
sets the heading level used by unnumbered headings;
see
HU
(2).
- Hy
-
enables automatic hyphenation of words
(Boolea-valued;
0).
- Isodate
-
configures the use of ISO~8601 date format;
that is,
YYYY-MM-DD
instead of the format specified by the localization file.
Call
ND
without arguments after updating its value
(Boolea-valued;
0).
- L
-
defines the page length for the document,
and must be set from the command line.
A scaling unit should be appended.
The default is that of the selected
groff
output device.
- Le
-
Lf
Lt
Lx
configure the report of lists of equation,
figure,
table,
and exhibit captions,
respectively,
after a table of contents;
see
TC
(all:
Boolea-valued;
1).
- Letwam
-
sets the maximum number of input lines permitted in a writer's address;
see
WA
and
WE
(14).
- Li
-
configures the text indentation
(in ens)
applied to enumerated list types;
that is,
to items in
AL
and
RL
lists,
and in
LB
lists whose
type
argument is greater than zero
(5).
- Ls
-
sets a threshold for placement of vertical space before list items.
If the list nesting level is greater than this value,
no such spacing occurs;
see
LI
([rs]n[.R]).
- Lsp
-
configures the base amount of vertical space used for separation
in the document.
mm
applies this spacing to many contexts,
sometimes with multipliers;
see
DS,
FS,
H,
LI,
and
P
(troff
devices:
0.5v;
nroff
devices:
1v).
- N
-
configures the header and footer placements used by
PH.
The default footer is empty.
If [lq]sectio-page[rq] numbering is selected,
the default header becomes empty
and the default footer becomes
[lq]x-y[rq],
where
x~is
is the section number
(the number of the current firs-level heading)
and~y
the page number within the section.
The following values are recognized;
for finer control,
see
PH,
PF,
EH,
EF,
OH,
and
OF,
and registers
Sectf
and
Sectp.
Value 5 is a
groff mm
extension
(0).
-
| Value | Effect
|
| 0 | Set header on all pages.
|
| 1 | Move header to footer on page 1.
|
| 2 | Omit header on page 1.
|
| 3 | Use [lq]sectio-page[rq] numbering style on all pages.
|
| 4 | Omit header on all pages.
|
| 5 |
Use [lq]sectio-page[rq] and [lq]sectio-figure[rq] numbering style on all pages.
|
- Np
-
numbers paragraphs with a leading mark in the format
s.p,
where
s~is
is firs-level heading number and
p~is
the paragraph number,
starting at 1;
see
H
and
P
(Boolea-valued;
0).
- O
-
defines the page offset of the document,
and must be set from the command line.
A scaling unit should be appended.
The default
is~.75i
on terminal devices.
On typesetters,
it is
.963i
or set to
1i
by the
papersize.tmac
package;
see
- Oc
-
suppresses the appearance of page numbers in the table of contents;
see
TC
(Boolea-valued;
0).
- Of
-
selects a separator format within equation,
exhibit,
figure,
and table captions;
see
EC,
EX,
FG,
and
TB.
The punctuation in the separator is either a dot or the
EM
string.
The following values are recognized;
the spaces shown are unpaddable
(0).
-
| Value | Effect
|
| 0 | [dq]. [dq]
|
| 1 | [dq] [em] [dq]
|
- P
-
interpolates the current page number;
it is the same as
register~%
except when
[lq]sectio-page[rq] numbering is enabled.
- Pi
-
configures the indentation
(in ens)
applied to the first line of an unnumbered paragraph that has such
(see
P);
and the text indentation of no-enumerated list items;
that is,
to items in
BL,
BVL,
DL,
and
VL
lists
(but not
ML),
and in
LB
lists whose
type
argument is zero or less
(5).
- Pgps
-
causes the type size and vertical spacing set by
S
to apply to headers and footers,
overriding the
HP
string.
If not set,
S
calls affect headers and footers only when followed by
PH,
PF,
OH,
EH,
OF,
or
EF
calls
(Boolea-valued;
1).
- Ps
-
is multiplied by register
Lsp
to vertically separate paragraphs;
see
P
(1).
- Pt
-
determines when a firs-line indentation is applied to a paragraph;
see
P
(0).
-
| Value | Effect
|
| 0 | never
|
| 1 | always
|
| 2 |
always,
except immediately after
H,
HU,
DE,
or
LE
|
- Ref
-
is used internally to control
tw-pass approach to index and reference management;
see
IND,
INDP,
INITI,
INITR,
and
PIC
(Boolea-valued;
0).
- Rfnum
-
is an aut-incrementing reference counter;
see
RS.
groff mm
recognizes
:R
as an alias of
Rfnum
for DWB compatibility.
- Rfstyle
-
determines the format of the reference number in the
Rf
string.
groff mm
maps
0
to
1
in
nroff
mode
and
2
in
troff
mode
(0).
-
| Value | Meaning
|
| 0 | automatic
|
| 1 | bracketed
|
| 2 | superscripted
|
| 3 | bracketed and superscripted
|
-
Changes to
Rfstyle's
value
may not take effect until the next heading or paragraphing macro call.
- Rpej
-
configures the default page ejection policy for reference pages;
see
RP
(0).
-
| Value | Effect
|
| 0 |
Break the page before and after the reference list.
|
| 1 |
Suppress page break after the list.
|
| 2 |
Suppress page break before the list.
|
| 3 |
Suppress page breaks before and after the list.
|
- S
-
defines the type size for the document,
and must be set from the command line.
A scaling unit should be appended;
p
is typical
(10p).
- Sectf
-
selects the [lq]sectio-figure[rq] numbering style.
Its default
is~0
unless
register~N
is set
to~5
at the command line
(Boolea-valued).
- Sectp
-
selects the [lq]sectio-page[rq] numbering style.
Its default
is~0
unless
register~N
is set
to~3
or~5
at the command line
(Boolea-valued).
- Si
-
configures the amount of display indentation in ens;
see
DS
(5).
- Tb
-
is an aut-incrementing table counter;
see
TB.
- V
-
defines the vertical spacing for the document,
and must be set from the command line.
A scaling unit should be appended;
p
is typical.
The default vertical spacing is 120% of the type size.
This register is a
groff mm
extension.
- Verbin
-
configures the amount of indentation for verbatim displays
when indentation is selected;
see
VERBON
(5n).
- W
-
defines the [lq]width[rq]
of the document
(that is,
the length of an output line with no indentation);
it must be set from the command line.
A scaling unit should be appended.
The default
is~6i
or assigned by the
papersize.tmac
package;
see
Internals
The argument
(if any)
to a
COVER
or
MT
call determines the file that
groff mm
loads to configure the document's layout;
see section [lq]Files[rq] below.
LT's
behavior depends on the
style
argument given to it;
it calls macros with names suffixed accordingly.
It is therefore possible to define additional letter types,
either in the territor-specific macro file,
or as local additions.
LT
sets the registers
Pt
and
Pi
to 0 and~5,
respectively.
(DWB used a value of 3 for
Pi.)
It then calls an initialization macro corresponding to the type.
Define the following macros to support a new letter type.
- let@init_type
-
initializes
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 i-final~[S-arg~...]
is called by
SG
only for
LT
letters;
MT
memoranda implement their own signature processing.
name
and
title
are specified through
WA/WE.
n~is
the index of the
nth
writer,
and
i-final
is true for the last writer to be listed.
Further
SG
arguments are appended to the signature line.
- let@fc_type closing
-
is called by
FC,
and takes the formal closing as its 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.24.2/:tmac/m.tmac
-
is the
groff
implementation of the memorandum macros.
- /usr/:share/:groff/:1.24.2/:tmac/mm.tmac
-
is a wrapper enabling the package to be loaded with the option
[lq]-m mm[rq].
- /usr/:share/:groff/:1.24.2/:tmac/refer-mm.tmac
-
implements
support for
mm.
- /usr/:share/:groff/:1.24.2/:tmac/mm/ms.cov
-
implements an
ms-like
cover page.
- /usr/:share/:groff/:1.24.2/:tmac/mm/0.MT
-
implements memorandum types 0[en]3 and 6.
- /usr/:share/:groff/:1.24.2/:tmac/mm/4.MT
-
implements memorandum type 4.
- /usr/:share/:groff/:1.24.2/:tmac/mm/5.MT
-
implements memorandum type 5.
- /usr/:share/:groff/:1.24.2/:tmac/mm/locale
-
performs any (further) desired localization if present.
- /usr/:share/:doc/:groff-1.24.2/examples/letter.mm
-
illustrates features of the
LT
letter formats.
- /usr/:share/:doc/:groff-1.24.2/examples/memorandum.mm
-
illustrates features of the
MT
memorandum formats.
- /usr/:share/:doc/:groff-1.24.2/examples/story.mm
-
illustrates use of
mm
for literary purposes.
Authors
J[:o]rgen H[:a]gg
of Lund, Sweden,
wrote the version of the
mm
macro package distributed with
groff
based on an early version of
groff ms
by
James Clark
Werner Lemberg
and
G. Branden Robinson
revised and updated it.
See also
MM - A Macro Package for Generating Documents
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 [lq]info groff[rq].
Index
- Name
-
- Synopsis
-
- Description
-
- Document styles
-
- Localization
-
- Registers and strings
-
- Register format
-
- Fonts
-
- Macros
-
- Strings
-
- Registers
-
- Internals
-
- Files
-
- Authors
-
- See also
-
|
|