groff_mm - memorandum macros for GNU roff
[option ...] [file ...]
mm [option ...] [file ...]
The groff mm macros are intended to be compatible with the DWB mm macros with the following limitations:
mm is intended to support easy localization. Use mmse as an example how to adapt the output format to a national standard. Localized strings are collected in the file /usr/share/groff/1.22.4/tmac/xx.tmac, where xx denotes the two-letter code for the language, as defined in the ISO 639 standard. For Swedish, this is ’sv.tmac’ – not ’se’, which is the ISO 3166 two-letter code for the country (as used for the output format localization).
A file called locale or country_locale is read after the initialization of the global variables. It is therefore possible to localize the macros with a different company name and so on.
In this manual, square brackets are used to show optional arguments.
registers and strings
.nr XXX [±]n [i]
XXX is the name of the register, n is the value to be assigned, and i is the increment value for auto-increment. n can have a plus or minus sign as a prefix if an increment or decrement of the current value is wanted. (Auto-increment or auto-decrement occurs if the number register is used with a plus or minus sign, \n+[XXX] or \n-[XXX].)
Strings are defined with ds.
.ds YYY string
The string is assigned everything to the end of the line, even blanks. Initial blanks in string should be prefixed with a double-quote. (Strings are used in the text as \*[YYY].)
formatting of number registers
.af R c
R is the name of the register, c is the format.
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 macro is used for customized tables of contents.
Author’s firm, should be called before AU, see also COVER.
AL [type [text-indent ]]
Start auto-increment list. Items are numbered beginning with one. The type argument controls the format of numbers.
text-indent sets the indentation and overrides Li. A third argument prohibits printing of a blank line before each item.
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 number variable 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. Indentation is specified in ’ens’, but scaling is allowed. Argument arg controls where the abstract is printed.
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.
Abstract title. Default is ’ABSTRACT’. Sets the text above the abstract text.
AT title1 [title2 [...]]
Author’s title. AT must appear just after each AU. The title shows up after the name in the signature block.
AU [name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]]
Author information. Specifies the author of the memo or paper, and is printed on the cover sheet and on 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 extra arguments.
AV [name ]
Approval signature. Generates an approval line with place for signature and date. The string ’APPROVED:’ can be changed with variable Letapp; it is replaced with an empty lin if there is a second argument. The string ’Date’ can be changed with variable Letdate.
Letter signature. Generates a line with place for signature.
B [bold-text [prev-font-text [bold [...]]]]
Begin boldface. No limit on the number of arguments. All arguments are concatenated to one word; the first, third and so on is printed in boldface.
BI [bold-text [italic-text [bold-text [...]]]]
Bold-italic. No limit on the number of arguments, see B.
BL [text-indent ]
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 number register Pi. A third argument prohibits printing of a blank line before each item.
BR [bold-text [roman-text [bold-text [...]]]]
Bold-roman. No limit on the number of arguments.
BVL text-indent [mark-indent ]
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.
Begin a coversheet definition. It is important that .COVER appears before any normal text. This macro uses arg to build the filename /usr/share/groff/1.22.4/tmac/mm/arg.cov. Therefore it is possible to create unlimited types of cover sheets. ms.cov is supposed to look like the ms cover sheet. .COVER requires a .COVEND at the end of the cover definition. Always use this order of the cover macros:
However, only .TL and .AU are required.
DF [format [fill [rindent]]]
Begin floating display (no nesting allowed). A floating display is saved in a queue and is printed in the order entered. Format, fill, and rindent are the same as in DS. Floating displays are controlled by the two number registers De and Df.
DL [text-indent [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 number 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.
The values ’L’, ’I’, ’C’, and ’CB’ can also be specified as ’0’, ’1’, ’2’, and ’3’, respectively, for compatibility reasons.
’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 number 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.
EC uses the number register Ec as a counter. It is possible to use .af to change the format of the number. If number 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 only printed if number 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.
Even-page footer, printed just above the normal page footer on even pages. See PF.
This macro defines string EOPef.
Even-page header, printed just below the normal page header on even pages. See PH.
This macro defines string TPeh.
Strings available to EOP
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-adjusts the picture; the default is to center. See PIC.
Equation start. EQ/EN are the delimiters for equations written for eqn(1). EQ/EN must be inside of a DS/DE pair, except if EQ is used to set options for eqn only. The label argument appears at the right margin of the equation, centered vertically within the DS/DE block, unless number register Eq is 1. Then the label appears at the left margin.
If there are multiple EQ/EN blocks within a single DS/DE pair, only the last equation label (if any) is printed.
EX [title [override [flag [refname]]]]
Exhibit title. The arguments are the same as for EC. EX uses the number 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 only printed if number 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.
Print ’Yours very truly,’ as a formal closing of a letter or memorandum. The argument replaces the default string. The default is stored in string variable Letfc.
FD [arg ]
Footnote default format. Controls the hyphenation (hyphen), right margin justification (adjust), and indentation of footnote text (indent). It can also change the label justification (ljust).
An argument greater than or equal to 11 is considered as value 0. Default for mm is 10.
FG [title [override [flag [refname]]]]
Figure title. The arguments are the same as for EC. FG uses the number 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 only printed if number 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.
Footnote start. The footnote is ended by FE. By default, footnotes are automatically numbered; the number is available in string F. Just add \*F in the text. By adding label, it is possible to have other number or names on the footnotes. Footnotes in displays are now possible. An empty line separates footnotes; the height of the line is controlled by number register Fs, default value is 1.
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 variable 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 stringvariable varname to the page number.
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
Number 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 number 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 number 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 number register Hs. Default value is 2.
Text follows the heading on the same line if the level is greater than both Hb and Hs.
Indentation of the text after the heading is controlled by number register Hi. Default value is 0.
Centered section headings
All headings whose level is equal or below number 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.
Fourteen number 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 number 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 number register Cl are saved to be printed in the table of contents. Default value is 2.
Special control of the heading, user-defined macros
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 number
register Hu for unnumbered headings. Argument
heading-text is the text argument to H and
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.
Contains the heading mark plus two spaces if rlevel is non-zero, otherwise empty.
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.
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.
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.
Set hyphenation character. Default value is ’\%’. Resets to the default if called without argument. Hyphenation can be turned off by setting number register Hy to 0 at the beginning of the file.
HM [arg1 [arg2 [... [arg14]]]]
Heading mark style. Controls the type of marking for printing of the heading counters. Default is 1 for all levels.
Unnumbered section header. HU behaves like H at the level in number 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 [prev-font-text [italic-text [...]]]]
Italic. Changes the font to italic if called without arguments. With one argument it sets the word in italic. With two arguments it concatenates them and sets the first word in italic and the second in the previous font. There is no limit on the number of argument; all are concatenated.
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 [italic-text [...]]]]
Italic-bold. Even arguments are printed in italic, odd in boldface. See I.
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).
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 mmroff(1). This program exists because groff(1) 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.
Change the predefined date string in DT to ISO-format, this is, ’YYYY-MM-DD’. This can also be done by adding -rIso=1 on the command line. Reverts to old date format if argument is 0.
IR [italic-text [roman-text [italic-text [...]]]]
Italic-roman. Even arguments are printed in italic, odd in roman. See I.
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.
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.
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.
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 number 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 number 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 number register Li. Default is 6.
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.
These lists are described at other places in this manual. See also LB.
Format a letter in one of four different styles depending on the argument. Also see section “Internals” below.
LO type [arg]
Specify options in letter (see .LT). This is a list of the standard options:
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. See also 1C.
ML mark [text-indent ]
Marked list start. The mark argument is printed before each list item. text-indent sets the indent and overrides Li. A third argument prohibits printing of a blank line before each item.
MT [arg [addressee]]
Memorandum type. The argument arg is part of a filename in /usr/share/groff/1.22.4/tmac/mm/*.MT. Memorandum types 0 to 5 are supported, including type ’string’ (which gets internally mapped to type 6). addressee just sets a variable, used in the AT&T macros.
See also COVER/COVEND, a more flexible type of front 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 [cw3 ...]]
Begin a special multi-column mode. All columns widths must be specified. The space between the columns must be specified also. The last column does not need any space definition. MULB starts a diversion, and MULE ends the diversion and prints the columns. The unit for the width and space arguments is ’n’, but MULB accepts all normal unit specifications like ’c’ and ’i’. MULB operates in a separate environment.
Print numbered paragraph with header level two. See .P.
NS [arg ]
Print different types of notations. The argument selects between the predefined type of notations. If the second argument is available, then the argument becomes the entire notation. If the argument doesn’t select a predefined type, it is printed as ’Copy (arg) to’. It is possible to add more standard notations, see the string variables Letns and Letnsdef.
New date. Overrides the current date. Date is not printed if new-date is an empty string.
Odd-page footer, a line printed just above the normal footer. See EF and PF.
This macro defines string EOPof.
Odd-page header, a line printed just below the normal header. See EH and PH.
This macro defines string TPoh.
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 number register Pi, by default 5.
Instead of giving an argument to P it is possible to set the paragraph type in number 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 number register Ps, and is 1 by default (one blank line).
PGFORM [linelength [pagelength [pageoffset ]]]
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 command 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.)
PIC [-B] [-L] [-C] [-R] [-I n] filename [width [height]]
Include a PostScript file in the document. The macro depends on mmroff(1) 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.
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.
Page header, a line printed at the top of each page. The argument should be specified as
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.
RB [roman-text [bold-text [roman-text [...]]]]
Roman-bold. Even arguments are printed in roman, odd in boldface. See I.
RD [prompt [diversion [string]]]
Read from standard input to diversion and/or string. The text is saved in a diversion named diversion. Recall the text by writing the name of the diversion after a dot on an empty line. A string is also defined if string is given. Diversion and/or prompt can be empty ("").
RI [roman-text [italic-text [roman-text [...]]]]
Print even arguments in roman, odd in italic. See I.
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.
The reference items are separated by a blank line. Setting number register Ls to 0 suppresses the line.
The string Rp contains the reference page title and is set to ’REFERENCES’ by default. The number register Rpe holds the default value for the second argument of RP; it is initially set to 0.
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 number 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 current value, and ’D’ the default value. If ’+’ or ’-’ is used before the value, the current value is incremented or decremented, respectively.
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 ]
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.
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.
Space vertically. lines can have any scaling factor, like ’3i’ or ’8v’. Several SP calls in a line only produces the maximum number of lines, not the sum. SP is ignored also until the first text line in a page. Add \& before a call to SP to avoid this.
TB [title [override [flag [refname]]]]
Table title. The arguments are the same as for EC. TB uses the number 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 only printed if number 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 number 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 string variables Lifg, Litb, Liex, Liec, and Licon contain ’Figure’, ’TABLE’, ’Exhibit’, ’Equation’, and ’CONTENTS’, respectively. These can be redefined to other languages.
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.
strings available to TP
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.
End verbatim output.
VL text-indent [mark-indent ]
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.
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.
Strings used in mm
Contains the string ’Date’, used in .AV.
Define the standard notation used when no argument is given to .NS. Default is 0.
MO1 – MO12
Strings containing the month names ’January’ through ’December’.
Number variables used in mm
H1 – H7
Default is 0.
Default is 0.
Lf, Lt, Lx, Le
Enable (1) or disable (0) the printing of List of figures, List of tables, List of exhibits and List of equations, respectively. Default values are Lf=1, Lt=1, Lx=1, and Le=0.
Default is 0. See also the number registers Sectf and Sectp.
Default is 0.
Default is 0.
Default is 0.
macros are using 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 national macro-file, or as local
additions. .LT sets the number variables Pt
and Pi to 0 and 5, respectively. The following
strings and macros must be defined for a new letter type.
This macro is called directly by .LT. It is supposed to initialize variables and other stuff.
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 flag [arg1 [arg2 [...]]]
.SG is calling this macro only for letters; memorandums have its own processing. name and title are specified through .WA/.WB. n is the counter, 1-max, and flag is true for the last name. Any other argument to .SG is appended.
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 variable let*lo-type.
The GNU version of the mm macro package was written by jh [AT] axis.se">Jörgen Hägg of Lund, Sweden.