Device and Network Interfaces GROFF_MM(7)
NAME
groff_mm - groff mm macros
SYNOPSIS
groff -mgm [ options... ] [ files... ]
DESCRIPTION
The groff mm macros are intended to be compatible with the DWB mm macros with the following limitations: +o no Bell Labs localisms implemented. +o the macros OK and PM are not implemented. +o groff mm does not support cut marksmgm is intended to be international. Therefore it is possi-
ble to write short national macrofiles which change all english text to the preferred language. Use mgmse as an example.A file called locale or lang_locale is read after the ini-
tiation of the global variables. It is therefore possible to localize the macros with companyname and so on. In this manual square brackets is used to show optional arguments. Number registers and strings Many macros can be controlled by number registers and strings. A number register is assigned with the nr command:.nr XXX [+-]n [i]
XXX is the name of the register, n is the value to beassigned, and i is increment value for auto-increment. n
can have a plus or minus sign as prefix if an increment ordecrement of the current value is wanted. (Auto-increment
or decrement occurs if the number register is used with aplus or minus sign, \n+[XXX] or \n-[XXX].)
Strings is 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 prefixedwith a double-quote. (Strings are used in the text as
\*[YYY].) Special formatting of number registers A number register is printed with normal digits if no format has been given. Set the format with af: .af R c Groff Version 1.19.2Last change: 21 October 2010 1Device and Network Interfaces GROFF_MM(7)
R is the name of the register, c is the format. Form Sequence 1 0, 1, 2, 3, ... 001 000, 001, 002, 003, ... 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, ... Macros: )E level textAdds text (heading-text) to the table of contents with
level either 0 or between 1-7. See also .H. This
macro is used for customized table of contents. 1C [1] Begin one column processing. An 1 as argument disablesthe page-break. Use wide footnotes, small footnotes
may be overprinted. 2C Begin two column processing. Splits the page in two columns. It is a special case of MC. See also 1C. AE Abstract end, see AS. AF [name of firm] Authors firm, should be called before AU, see also COVER.AL [type [text-indent [1]]]
Start autoincrement list. Items are numbered beginning on one. The type argument controls the type of numbers. Arg Description 1 Arabic (the default)A Upper-case letters (A-Z)
a Lower-case letters (a-z)
I Upper-case roman
i Lower-case roman
Text-indent sets the indent and overrides Li. A third
argument will prohibit printing of a blank line before each item. APP name text Begin an appendix with name name. Automatic naming occurs if name is "". The appendixes starts with A if auto is used. An new page is ejected, and a header isalso produced if the number variable Aph is non-zero.
This is the default. The appendix always appear in the 'List of contents' with correct pagenumber. The name Groff Version 1.19.2Last change: 21 October 2010 2Device and Network Interfaces GROFF_MM(7)
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 pagenr is incremented with pages.This is used when diagrams or other non-formatted docu-
ments are included as appendixes. AS [arg [indent]] Abstract start. Indent is specified in 'ens', but scaling is allowed. Argument arg controls where the abstract is printed. Arg Placement 0 Abstract will be printed on page 1 and on thecover sheet if used in the released-paper style
(MT 4), otherwise it will be printed on page 1 without a cover sheet. 1 Abstract will only be printed on the cover sheet (MT 4 only). 2 Abstract will be printed only on the cover sheet (other than MT 4 only). The cover sheet is printed without need for CS. Abstract is not printed at all in external letters (MT5). The indent controls the indentation of both mar-
gins, otherwise will normal text indent be used. AST [title] Abstract title. Default is ABSTRACT. Sets the text above the abstract text. AT title1 [title2 ...] Authors title. AT must appear just after each AU. The title will show 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 will be 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 [1]] Approval signature, generates an approval line with place for signature and date. The string APPROVED: can be changed with variable Letapp, and the string Date in Letdate. AVL [name] Letter signature, generates a line with place for Groff Version 1.19.2Last change: 21 October 2010 3Device and Network Interfaces GROFF_MM(7)
signature.B [bold-text [prev-font-text [bold...]]]
Begin boldface. No limit on the number of arguments. All arguments will be concatenated to one word, the first, third and so on will be printed in boldface. B1 Begin box (as the ms macro). Draws a box around the text. The text will be indented one character, and the right margin will be one character shorter. B2 End box. Finish the box started by B1. BE End bottom block, see BS.BI [bold-text [italic-text [bold-text [...]]]]
Bold-italic. No limit on the number of arguments, see
B.BL [text-indent [1]]
Start bullet list, initialize 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 will prohibit printing of a blank line before each item.BR [bold-text [roman-text [bold-text [...]]]]
Bold-roman. No limit on the number of arguments.
BS Bottom block start. Begins the definition of a text block which is printed at the bottom of each page. Block ends with BE.BVL text-indent [mark-indent [1]]
Start of broken variable-item list. Broken variable-
item list has no fixed mark, it assumes that every LI has a mark instead. The text will always begin at thenext line after the mark. Text-indent sets the indent
to the text, and mark-indent the distance from the
current indent to the mark. A third argument will prohibit printing of a blank line before each item. COVER [arg] COVER begins a coversheet definition. It is important that .COVER appears before any normal text. .COVER uses arg to build the filename /usr/share/groff/1.19.2/tmac/mm/arg.cov. Therefore it is possible to create unlimited types of coversheets. ms.cov is supposed to look like the ms coversheet..COVER requires a .COVEND at the end of the coverdefin-
ition. Always use this order of the covermacros: Groff Version 1.19.2Last change: 21 October 2010 4Device and Network Interfaces GROFF_MM(7)
.COVER .TL .AF .AU .AT .AS .AE .COVEND However, only .TL and .AU are required. COVEND This finish the cover description and prints thecover-page. It is defined in the cover file.
DE Display end. Ends a block of text, display, that begins with DS or DF. DF [format [fill [rindent]]]Begin floating display (no nesting allowed). A float-
ing display is saved in a queue and is printed in the order entered. Format, fill and rindent is the same as in DS. Floating displays are controlled by the two number registers De and Df. De register 0 Nothing special, this is the default. 1 A page eject will occur after each printed display, giving only one display per page and no text following it. Df register 0 Displays are printed at the end of each section(when section-page numbering is active) or at the
end of the document. 1 A new display will be printed on the current page if there is enough space, otherwise it will be printed at the end of the document. 2 One display will be printed at the top of eachpage or column (in multi-column mode).
3 Print one display if there is enough space for it, otherwise it will be printed at the top of the next page or column. 4 Print as many displays that will fit in a new page or column. A page break will occur between each display if De is not zero. 5 Fill the current page with displays and the rest beginning at a new page or column. (This is the default.) A page break will occur between each display if De is not zero.DL [text-indent [1 [1]]]
Dash list start. Begins a list where each item is Groff Version 1.19.2Last change: 21 October 2010 5Device and Network Interfaces GROFF_MM(7)
printed after a dash. Text-indent changes the default
indentation of the list items set by number register Pi. A second argument prevents the empty line betweeneach list item to be printed. See LI. A third argu-
ment will prohibit 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. DScan be nested to a unlimited depth (reasonably :-).
format "" No indentation. none No indentation. L No indentation. I Indent text with the value of number register Si. C Center each line CB Center the whole display as a block. R Right adjust the lines. RB Right adjust the whole display as a block L, I, C and CB can also be specified as 0, 1, 2 or 3for compatibility reasons. (Don't use it. :-)
fill"" Line-filling turned off.
none Line-filling turned off.
N Line-filling turned off.
F Line-filling turned on.
N and F can also be specified as 0 or 1. An empty line will normally be printed before and after the display. Setting number register Ds to 0 will prevent 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 change the numbering. flag none override is a prefix to the number. 0 override is a prefix to the number. 1 override is a suffix to the number. 2 override replaces the number.EC uses the number register Ec as counter. It is pos-
sible to use .af to change the format of the number. If number register Of is 1, then the format of title will use a dash instead of a dot after the number.The string Le controls the title of the List of Equa-
tions, default is LIST OF EQUATIONS. The List of Groff Version 1.19.2Last change: 21 October 2010 6Device and Network Interfaces GROFF_MM(7)
Equations will only be printed if number register Le is1, default 0. The string Liec contains the word Equa-
tion, wich 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 will occur if EC is usedinside DS/DE, it will not be affected by the format of DS. EF [arg]
Even-page footer, printed just above the normal page
footer on even pages, see PF. EH [arg]Even-page header, printed just below the normal page
header on even pages, see PH. EN Equation end, see EQ.EOP End of page user-defined macro. This macro will be
called instead of the normal printing of the footer. The macro will be executed in a separate environment, without any trap active. See TP. Strings available to EOP EOPf Argument from PF. EOPefArgument from EF. EOPofArgument from OF.EPIC [-L] width height [name]
EPIC draws a box with the given width and height, it will also print the text name or a default string ifname is not specified.. This is used to include exter-
nal pictures, just give the size of the picture. -L
will leftadjust the picture, the default is to center adjust. See PIC EQ [label]Equation start. EQ/EN are the delimiters for equations
written for eqn. EQ/EN must be inside a DS/DE-pair,
except when EQ is only used to set options in eqn. The label will appear at the right margin of the equation, unless number register Eq is 1. Then the label will appear at the left margin. EX [title [override [flag [refname]]]] Exhibit title, arguments are the same as for EC. EX uses the number register Ex as counter. The string Lx controls the title of the List of Exhibits, default is LIST OF EXHIBITS. The List of Exhibits will only be printed if number register Lx is 1, default 1. The string Liex contains the word Exhibit, which is printed Groff Version 1.19.2Last change: 21 October 2010 7Device and Network Interfaces GROFF_MM(7)
before the number. If refname is used, then the exhi-
bit number is saved with .SETR, and can be retrieved with .GETST refname. Special handling of the title will occur if EX is usedinside DS/DE, it will not be affected by the format of DS. FC [closing] Prints Yours very truly, as a formal closing of a letter or memorandum. The argument replaces the
defualt string. The default is stored in string vari-
able Letfc. FD [arg [1]] Footnote default format. Controls the hyphenation(hyphen), right margin justification (adjust), indenta-
tion of footnote text (indent). It can also change the label justification (ljust). arg hyphen adjust indent ljust 0 no yes yes left 1 yes yes yes left 2 no no yes left 3 yes no yes left 4 no yes no left 5 yes yes no left 6 no no no left 7 yes no no left 8 no yes yes right 9 yes yes yes right 10 no no yes right 11 yes no yes right Argument greater than or equal to 11 is considered as arg 0. Default for mgm is 10. FE Footnote end. FG [title [override [flag [refname]]]] Figure title, arguments are the same as for EC. FG uses the number register Fg as counter. The string Lf controls the title of the List of Figures, default is LIST OF FIGURES. The List of Figures will only be printed if number register Lf is 1, default 1. The string Lifg contains the word Figure, wich 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 will occur if FG is usedinside DS/DE, it will not be affected by the format of DS. Groff Version 1.19.2Last change: 21 October 2010 8
Device and Network Interfaces GROFF_MM(7)
FS [label]Footnote start. The footnote is ended by FE. Foot-
notes is normally 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 is 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] Includes the headernumber where the corresponding SETR refname was placed. Will be X.X.X. in pass 1. SeeINITR. If varname is used, GETHN sets the stringvari-
able varname to the headernumber. GETPN refname [varname] Includes the pagenumber where the corresponding SETR refname was placed. Will be 9999 in pass 1. SeeINITR. If varname is used, GETPN sets the stringvari-
able varname to the pagenumber. GETR refname Combines GETHN and GETPN with the text 'chapter' and ', page'. The string Qrf contains the text for 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 contains the page and headernumber. GETST refname [varname] Includes the string saved with the second argument to .SETR. Will be dummystring in pass 1. If varname is used, GETST sets the stringvariable varname 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. Thetext 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 marksand similar things. Don't use \*F in heading-suffix,
it won't work. A manual label must be used, see FS. An eventual paragraph, P, directly after H will be ignored, H is taking care of spacing and indentation. Page ejection before heading Number register Ej controls page ejection before the heading. Normally, a level one heading gets two blank Groff Version 1.19.2Last change: 21 October 2010 9Device and Network Interfaces GROFF_MM(7)
lines before it, higher levels gets only one. A newpage is ejected before each first-level heading if
number register Ej is 1. All levels below or equal the value of Ej gets 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 2. Heading space levelA blank line is inserted after the heading if the head-
ing level is less or equal to number register Hs. Default value 2. Text will follow the heading on the same line if the level is greater than both Hb and Hs.Post-heading indent
Indentation of the text after the heading is controlled by number register Hi, default value 0. Hi0 The text will be left-justified.
1 Indentation of the text will follow the value of number register Pt, see P. 2 The text will be lined up with the first word of the heading. Centered section headings All headings whose level is equal or below number register Hc and also less than or equal to Hb or Hs is centerered. Font control of the heading The font of each heading level is controlled by string HF. It contains a fontnumber or fontname for each level. Default is 2 2 2 2 2 2 2 2 2 2 2 2 2 2 (all headings in italic). 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 be a 1. Point size control. String HP controls the pointsize 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. That can be controlled by the user specified macro HX and/or HZ. Groff Version 1.19.2Last change: 21 October 2010 10Device and Network Interfaces GROFF_MM(7)
Heading counters Fourteen number registers, named H1 thru H14 contains 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. That will only print the current heading counter at each heading. Automatic table of contents All headings whose level is equal or below numberregister Cl is saved to be printed in the table of con-
tents. Default value is 2.Special control of the heading, user-defined macros.
These 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 thereal level, it is set to number register Hu for unnum-
bered headings. Argument heading-text is the text
argument to H and HU.HX level rlevel heading-text
HX is called just before the printing of the heading. The following register is available for HX. HX may alter }0, }2 and ;3. string }0 Contains the heading mark plus two spaces ifrlevel is non-zero, otherwise empty.
register ;0Contains the position of the text after the head-
ing. 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. string }2 Contains two spaces if register ;0 is 0. It is used to separate the heading from the text. Thestring is empty if ;0 is non-zero.
register ;3Contains the needed space in units after the head-
ing. 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
HY is called after size and font calculations and might be used to change indentation. Groff Version 1.19.2Last change: 21 October 2010 11Device and Network Interfaces GROFF_MM(7)
HZ dlevel rlevel heading-text
HZ is called after the printing of the heading, just before H or HU exits. Could be used to change the page header according to the section heading.HC [hyphenation-character]
Set hyphenation character. Default value is \%.
Resets to the default if called without argument.Hyphenation can be turned off by setting number regis-
ter Hy to 0 in 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. Argument 1 Arabic numerals. 0001 Arabic numerals with leading zeroes, one or more.A Upper-case alphabetic
a Lower-case alphabetic
I Upper-case roman numerals
i lower-case roman numerals
emptyArabic numerals.HU heading-text
Unnumbered section header. HU behavies like H at the level in number register Hu. See H.HX dlevel rlevel heading-text
Userdefined heading exit. Called just before printing the header. See H.HY dlevel rlevel heading-text
Userdefined heading exit. Called just before printing the header. See H.HZ dlevel rlevel heading-text
Userdefined 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 will set the word in italic. With two argument it will concatenate them andset the first word in italic and the second in the pre-
vious font. There is no limit on the number of argu-
ment, all will be concatenated.IA [addressee-name [title]]
Begins specification of the addressee and addressee's address in letter style. Several names can be Groff Version 1.19.2Last change: 21 October 2010 12Device and Network Interfaces GROFF_MM(7)
specified with empty IA/IE-pairs, but only one address.
See LT.IB [italic-text [bold-text [italic-text [...]]]]
Italic-bold. Even arguments is printed in italic, odd
in boldface. See I.IE Ends the address-specification after IA.
INITI type filename [macro] Initialize the new index system, sets 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 N.It is also possible to create a macro that is responsi-
ble for formatting each row. Add the name of the macro as argument 3. The macro will be called with the index as argument(s). type N Page numbers H Header marks B Both page numbers and header marks, tab separated INITR filenameInitialize the refencemacros. References will be writ-
ten to stderr and is supposed to be written to filename.qrf. Requires two passes with groff, this is handled by a separate program called mmroff, the reason is that groff is often installed without the unsafe operations that INITR requiered. The first pass looks for 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 [...]] IND writes a line in the index file selected by INITI with all arguments and the page number or header mark separated by tabs. Examples arg1\tpage number arg1\targ2\tpage number arg1\theader mark arg1\tpage number\theader mark INDP INDP prints the index by running the command specifiedby string variable Indcmd, normally sort -t\t. INDP
reads the output from the command to form the index, normally in two columns (can be changed by defining Groff Version 1.19.2Last change: 21 October 2010 13Device and Network Interfaces GROFF_MM(7)
TYIND). The index is printed with string variableIndex as header, default is INDEX. One-column process-
ing is returned after the list. INDP will call theuser-defined macros TXIND, TYIND and TZIND if defined.
TXIND is called before printing INDEX, TYIND is called instead of printing INDEX. TZIND is called after the printing and should take care of restoring to normal operation again. ISODATE [0] ISODATE changes the predefined date string in DT toISO-format, ie 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 is 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 forall lists. Text-indent is the number of spaces to
indent the text from the current indent.Pad and mark-indent controls where to put the mark.
The mark is placed within the mark area, and mark-
indent sets the number of spaces before this area. It is normally 0. The mark area ends where the text begins. The start of the text is still controlled bytext-indent.
The mark is left justified whitin the mark area if padis 0. If pad is greater than 0, then mark-indent is
ignored, and the mark is placed pad spaces before the text. This will right justify the mark. If type is 0 the list will have either a hanging indent or, if argument mark is given, the string mark as mark. If type is greater than 0 automatic numbering will occur, arabic if mark is empty. Mark can then be any of 1, A, a, I or i. Type selects one of six possible ways to display the mark. type 1 x. 2 x) 3 (x) 4 [x] 5 Groff Version 1.19.2Last change: 21 October 2010 14Device and Network Interfaces GROFF_MM(7)
6 {x} Every item in the list will get LI-space number of
blank lines before them. Default is 1.LB itself will print LB-space blank lines. Default
is 0.LC [list-level]
List-status clear. Terminates all current active lists
down to list-level, or 0 if no argmuent is given. This
is used by H to clear any active list. LE [1] List end. Terminate the current list. LE outputs a blank line if an argument is given. LI [mark [1]]List item precedes every item in a list. Without argu-
ment LI will print the mark determined by the current list type. By giving LI one argument, it will use that as the mark instead. Two arguments to LI will make mark a prefix to the current mark. There will be 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 will make a hanging indent instead. A blank line is normally printed before the list item. This behaviour can be controlled by number register Ls.Pre-spacing will occur for each list-level less than or
equal to Ls. Default value is 99. (Nesting of listsis unlimited. :-)
The indentation can be changed thru number register Li. Default is 6. All lists begins with a list initialization macro, LB. There are, however, seven predefined listtypes to make lists easier to use. They all call LB with different default values. AL Automatically Incremented List ML Marked ListVL Variable-Item List
BL Bullet List DL Dash List RL Reference List BVL Broken Varable List. These lists are described at other places in this manual. See also LB. Groff Version 1.19.2Last change: 21 October 2010 15Device and Network Interfaces GROFF_MM(7)
LT [arg] Formats a letter in one of four different styles depending on the argument. See also INTERNALS. Arg Style BL Blocked. Date line, return address, writer's address and closing begins at the center of the line. All other lines begin at the left margin.SB Semi-blocked. Same as blocked, except that the
first line in every paragraph is indented five spaces.FB Full-blocked. All lines begin at the left margin.
SP Simplified. Almost the same as the full-blocked
style. Subject and the writer's identificationare printed in all-capital.
LO type [arg] Specify options in letter (see .LT). This is a list of the standard options: CN Confidential notation. Prints CONFIDENTIAL on the second line below the date line. Any argument replaces CONFIDENTIAL. See also string variable LetCN. RN Reference notation. Prints In reference to: and the argument two lines below the date line. See also string variable LetRN. AT Attention. Prints ATTENTION: and the argumentbelow the inside address. See also string vari-
able LetAT. SA Salutation. Prints To Whom It May Concern: or the argument if it was present. The salutation is printed two lines below the inside address. See also string variable LetSA.SJ Subject line. Prints the argument as subject pre-
fixed with SUBJECT: two lines below the insideaddress, except in letter type SP. Then the sub-
ject is printed in all-captial without any prefix.
See also string variable LetSJ.MC column-size [column-separation]
Begin multiple columns. Return to normal with 1C. MC will create as many columns as the current line lengthpermits. Column-size is the width of each column, and
column-separation is the space between two columns.
Default separation is the column-size/15. See also 1C.
ML mark [text-indent [1]]
Marked list start. The mark argument will be printedbefore each list item. Text-indent sets the indent and
overrides Li. A third argument will prohibit printing of a blank line before each item. MT [arg [addressee]] Groff Version 1.19.2Last change: 21 October 2010 16Device and Network Interfaces GROFF_MM(7)
Memorandum type. The arg is part of a filename in /usr/share/groff/1.19.2/tmac/mm/*.MT. Memorandum type 0 thru 5 are supported, including "string". Addressee just sets a variable, used in the AT&T macros. arg 0 Normal memorandum, no type printed 1 Memorandum with MEMORANDUM FOR FILE printed 2 Memorandum with PROGRAMMER'S NOTES printed 3 Memorandum with ENGINEER'S NOTES printed 4 Released paper style 5 External letter styleSee also COVER/COVEND, a more flexible type of front page.
MOVE y-pos [x-pos [line-length]]
Move to a position, pageoffset set to x-pos. If line-
length is not given, the difference between current and new pageoffset is used. Use PGFORM without arguments to return to normal. MULB cw1 space1 [cw2 space2 [cw3 ...]]Begin a special multi-column mode. Every columns width
must be specified. Also the space between the columns must be specified. The last column does not need anyspace-definition. MULB starts a diversion and MULE
ends the diversion and prints the columns. The unit for width and space is 'n', but MULB accepts all normal unitspecifications like 'c' and 'i'. MULB operates in a separate environment. MULN Begin the next column. This is the only way to switch column.MULE End the multi-column mode and print the columns.
nP [type] Print numbered paragraph with header level two. See .P. NCOL Force printing to the next column, don't use this together with the MUL* macros, see 2C. NS [arg [1]] Prints 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 exist in the predefined, it will be printed as Copy(arg) to. It is possible to add more standard nota-
tions, see the string variable Letns and Letnsdef. Arg Notation none Groff Version 1.19.2Last change: 21 October 2010 17Device and Network Interfaces GROFF_MM(7)
Copy To "" Copy To 1 Copy To (with att.) to 2 Copy To (without att.) to 3 Att. 4 Atts. 5 Enc. 6 Encs. 7 Under separate cover 8 Letter to 9 Memorandum to 10 Copy (with atts.) to 11 Copy (without atts.) to 12 Abstract Only to 13 Complete Memorandum to 14 CCND new-date
New date. Override the current date. Date is notprinted if new-date is an empty string.
OF [arg]Odd-page footer, a line printed just above the normal
footer. See EF and PF. OH [arg]Odd-page header, a line printed just below the normal
header. See EH and PH. OP Make sure that the following text is printed at the topof an odd-numbered page. Will not output an empty page
if currently at the top of an odd page. P [type] Begin new paragraph. P without argument will produceleft justified text, even the first line of the para-
graph. This is the same as setting type to 0. If the argument is 1, then the first line of text following P will be indented by the number of spaces in number register Pi, normally 5. Instead of giving 1 as argument to P it is possible to set the paragraph type in number register Pt. Using 0 and 1 will be the same as adding that value to P. A value of 2 will indent all paragraphs, except after headings, lists and displays. The space between two paragraphs is controlled by number register Ps, and is 1 by default (one blank line). PGFORM [linelength [pagelength [pageoffset [1]]]] Groff Version 1.19.2Last change: 21 October 2010 18Device and Network Interfaces GROFF_MM(7)
Sets linelength, pagelength and/or pageoffset. Thismacro can be used for special formatting, like letter-
heads and other. It is normally the first command in a file, though it's not necessary. PGFORM can be used without arguments to reset everything after a MOVE. Aline-break is done unless the fourth argument is given.
This can be used to avoid the pagenumber 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 linelength, pagelength and pageoffset instead. Sorry.) PGNH No header is printed on the next page. Used to get rid of the header in letters or other special texts. Thismacro must be used before any text to inhibit the page-
header on the first page.PIC [-L] [-C] [-R] [-I n] filename [width [height]]
PIC includes a Postscript file in the document. Themacro depends on mmroff and INITR. -L, -C, -R and -I n
adjusts the picture or indents it. The optionallywidth and height can also be given to resize the pic-
ture. PE Picture end. Ends a picture for gpic, see the manual for gpic. PF [arg] Page footer. PF sets the line to be printed at the bottom of each page. Normally empty. See PH for the argument specification. PH [arg] Page header, a line printed at the top of each page.The argument should be specified as "'left-
part'center-part'right-part'", where left-, center- and
right-part is printed left-justified, centered and
right justified. The character % is changed to the
current page number. The default page-header is "''- %
-''", the page number between two dashes.
PS Picture start (from pic). Begins a picture for gpic, see the manual.PX Page-header user-defined exit. PX is called just after
the printing of the page header in no-space mode.
R Roman. Return to roman font, see also I.RB [roman-text [bold-text [roman-text [...]]]]
Roman-bold. Even arguments is printed in roman, odd in
boldface. See I. Groff Version 1.19.2Last change: 21 October 2010 19Device and Network Interfaces GROFF_MM(7)
RD [prompt [diversion [string]]] Read from standard input to diversion and/or string. The text will be 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 will also be defined if string is given. Diversion and/or prompt can be empty (""). RF Reference end. Ends a reference definition and returns to normal processing. See RS.RI [roman-text [italic-text [roman-text [...]]]]
Even arguments are printed in roman, odd in italic. See I.RL [text-indent [1]]
Reference list start. Begins a list where each item is preceded with a automatically incremented numberbetween square brackets. Text-indent changes the
default indentation. RP [arg1 [arg2]] Produce reference page. RP 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 content. The reference page will then be printed automatically. The reference counter will not be reset if arg1 is 1. Arg2 tells RP whether to eject a page or not. Arg2 0 The reference page will be printed on a separate page. This is the default. 1 Do not eject page after the list. 2 Do not eject page before the list. 3 Do not eject page before and after the list. The reference items will be separated by a blank line. Setting number register Ls to 0 will suppress the line. The string Rp contains the reference page title and is normally set to REFERENCES.RS [string-name]
RS begins an automatically numbered reference defini-
tion. Put the string \*(Rf where the reference markshould 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 will be defined and contain the current reference mark. The string can bereferenced as \*[string-name] later in the text.
Groff Version 1.19.2Last change: 21 October 2010 20Device and Network Interfaces GROFF_MM(7)
S [size [spacing]] Set point size and vertical spacing. If any argument is equal 'P', then the previous value is used. A 'C' means current value, and 'D' default value. If '+' or'-' is used before the value, then increment or decre-
ment of the current value will be done. SA [arg]Set right-margin justification. Justification is nor-
mally turned on. No argumenent or 0 turns off justifi-
cation, a 1 turns on justification. SETR refname [string]Remember the current header and page-number as refname.
Saves string if string is defined. string is retrieved with .GETST. See INITR. SG [arg [1]] Signature line. Prints the authors name(s) after the formal closing. The argument will be 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 will be printed atthe first author if the second argument is given, oth-
erwise at the last. No reference data will be printedif the author(s) is specifed thru .WA/.WE. See INTER-
NALS. SK [pages] Skip pages. If pages is 0 or omitted, a skip to the next page will occur unless it is already at the top of a page. Otherwise it will skip pages pages. SM string1 [string2 [string3]] Make a string smaller. If string2 is given, string1 will be smaller and string2 normal, concatenated with string1. With three argument, all is concatenated, but only string2 is made smaller. SP [lines] Space vertically. lines can have any scalingfactor, like 3i or 8v. Several SP in a line will only produce the maximum number of lines, not the sum. SP will also be ignored until the first textline in a page. Add a \& before SP to avoid this. TAB reset tabs to every 5n. Normally used to reset any previous tabpositions. TB [title [override [flag [refname]]]] Table title, arguments are the same as for EC. TB uses the number register Tb as counter. The string Lt Groff Version 1.19.2Last change: 21 October 2010 21Device and Network Interfaces GROFF_MM(7)
controls the title of the List of Tables, default is LIST OF TABLES. The List of Tables will only be printed if number register Lt is 1, default 1. The string Litb contains the word TABLE, wich is printed before the number. Special handling of the title will occur if TB is usedinside DS/DE, it will not be affected by the format of DS. TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]] Table of contents. This macro is normally used at 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 level less than or equal to slevel will get spac-
ing number of lines before them. Headings with level less than or equal to tlevel will have their page numbers right justified with dots or spaces separating the text and the page number. Spaces is used if tab is greater than zero, otherwise dots. Other headings will have the page number directly at the end of the heading text (ragged right). The rest of the arguments will be 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 CONTENTS, and TY is called instead of printing CONTENTS. Equivalent macros can be defined for list of figures, tables, equations and excibits by defining TXxx or TYxx, where xx is Fg, TB, EC or EX. String Ci can be set to control the indentations foreach heading-level. It must be scaled, like
.ds Ci .25i .5i .75i 1i 1i. The indentation is nor-
mally controlled by the maxlength of headings in each level. All texts can be redefined, new stringvariables Lifg, Litb, Liex, Liec and Licon contain "Figure", "TABLE", "Exhibit", "Equation" and "CONTENTS". These can be redefined to other languages. TE Table end. See TS. TH [N] Table header. See TS. TH ends the header of thetable. This header will be printed again if a page-
Groff Version 1.19.2Last change: 21 October 2010 22Device and Network Interfaces GROFF_MM(7)
break occurs. Argument N isn't implemented yet.TL [charging-case number(s) [filing-case number(s)]]
Begin title of memorandum. All text up to the next AUis included in the title. Charging-case number and
filing-case are saved for use in the front page pro-
cessing. TM [num1 [num2 [...]]] Technical memorandumnumbers used in .MT. Unlimited number of arguments may be given.TP Top of page user-defined macro. This macro is called
instead of the normal page header. It is possible to get complete control over the header. Note that header and footer is printed in a separate environment. Linelength is preserved though. TS [H]Table start. This is the start of a table specifica-
tion to gtbl. See separate manual for gtbl. TS ends with TE. Argument H tells mgm that the table has a header. See TH. TX Userdefined table of contents exit. This macro is called just before TC prints the word CONTENTS. See TC. TY Userdefined table of contents exit (no "CONTENTS"). This macro is called instead of printing CONTENTS. See TC. VERBON [flag [pointsize [font]]] Begin verbatim output using courier font. Usually for printing programs. All character has equal width. The pointsize can be changed with the second argument. Byspecifying the font-argument it is possible to use
another font instead of courier. flag controls several special features. It contains the sum of all wanted features. ValueDescription1 Disable the escape-character (\). This is nor-
mally turned on during verbose output. 2 Add an empty line before the verbose text. 4 Add an empty line after the verbose text. 8 Print the verbose text with numbered lines. This adds four digitsized spaces in the beginning of each line. Finer control is available with thestring-variable Verbnm. It contains all arguments
to the troff-command .nm, normally '1'.
16 Indent the verbose text with five 'n':s. This iscontrolled by the number-variable Verbin (in
Groff Version 1.19.2Last change: 21 October 2010 23Device and Network Interfaces GROFF_MM(7)
units). VERBOFF End verbatim output.VL text-indent [mark-indent [1]]
Variable-item list has no fixed mark, it assumes that
every LI have a mark instead. Text-indent sets the
indent to the text, and mark-indent the distance from
the current indent to the mark. A third argument will prohibit printing of a blank line before each item.VM [-T] [top [bottom]]
Vertical margin. Adds extra vertical top and marginspace. Option -T set the total space instead. No
argument resets the margin to zero or the default (7v5v) if -T was used. It is higly recommended that macro
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]]
Begins specification of the writer and writer's address. Several names can be specified with emptyWA/WE-pairs, but only one address.
WE Ends the address-specification after .WA.
WC [format] Footnote and display width control.N Set default mode, -WF, -FF, -WD and FB.
WF Wide footnotes, wide also in two-column mode.
-WF Normal footnote width, follow column mode.
FF All footnotes gets the same width as the first footnote encountered.-FF Normal footnotes, width follows WF and -WF.
WD Wide displays, wide also in two-column mode.
-WD Normal display width, follow column mode.
FB Floating displays generates a line break when printed on the current page.-FB Floating displays does not generate line break.
Strings used in mgm: App A string containing the word "APPENDIX". Apptxt The current appendix text. EM Em dash string Groff Version 1.19.2Last change: 21 October 2010 24Device and Network Interfaces GROFF_MM(7)
H1txt Will be updated by .H and .HU to the current heading text. Also updated in table of contents & friends.HF Fontlist for headings, normally "2 2 2 2 2 2 2". Non-
numeric fontnames may also be used. HP Pointsize list for headings. Normally "0 0 0 0 0 0 0" which is the same as "10 10 10 10 10 10 10". Index Contains INDEX. IndcmdContains the index command, sort -t\t.
Lifg String containing Figure. Litb String containing TABLE. Liex String containing Exhibit. Liec String containing Equation. Licon String containing CONTENTS. Lf Contains "LIST OF FIGURES". Lt Contains "LIST OF TABLES". Lx Contains "LIST OF EXHIBITS". Le Contains "LIST OF EQUATIONS". Letfc Contains "Yours very truly,", used in .FC. Letapp Contains "APPROVED:", used in .AV. Letdate Contains "Date", used in .AV. LetCN Contains "CONFIDENTIAL", used in .LO CN. LetSA Contains "To Whom It May Concern:", used in .LO SA. LetAT Contains "ATTENTION:", used in .LO AT. Groff Version 1.19.2Last change: 21 October 2010 25Device and Network Interfaces GROFF_MM(7)
LetSJ Contains "SUBJECT:", used in .LO SJ. LetRN Contains "In reference to:", used in .LO RN. Letns is an array containing the different strings used in .NS. It is really a number of stringvariables prefixed with Letns!. If the argument doesn't exist, it will be included between () with Letns!copy as prefix and Letns!to as suffix. Observe the space after copy and before to. Name Value Letns!0 Copy to Letns!1 Copy (with att.) to Letns!2 Copy (without att.) to Letns!3 Att. Letns!4 Atts. Letns!5 Enc. Letns!6 Encs. Letns!7 Under separate cover Letns!8 Letter to Letns!9 Memorandum to Letns!10 Copy (with atts.) to Letns!11 Copy (without atts.) to Letns!12 Abstract Only to Letns!13 Complete Memorandum to Letns!14 CC Letns!copy Copy " Letns!to " to LetnsdefDefines the standard-notation used when no argument is
given to .NS. Default is 0.MO1 - MO12
Strings containing January thru December. Qrf String containing "See chapter \\*[Qrfh], page \\n[Qrfp].". Rp Contains "REFERENCES". Tcst Contains current status of table of contents and listof XXXX. Empty outside .TC. Useful in user-defined
macros like .TP. Value Meaning co Table of contents fg List of figures tb List of tables ec List of equations Groff Version 1.19.2Last change: 21 October 2010 26Device and Network Interfaces GROFF_MM(7)
ex List of exhibits ap Appendix Tm Contains \(tm, trade mark. Verbnm Argument to .nm in .VERBON, default: 1. Number variables used in mgm:Aph Print an appendix-page for every new appendix if this
numbervariable is non-zero. No output will occur if
Aph is zero, but there will always be an appendix-entry
in the 'List of contents'. Cl Contents level [0:14], contents saved if heading level <= Cl, default 2. Cp Eject page between LIST OF XXXX if Cp == 0, default 0. D Debugflag, values >0 produces varying degree of debug. A value of 1 gives information about the progress of formatting, default 0. De Eject after floating display is output [0:1], default 0. Dsp Controls the space output before and after static displays if defined. Otherwise is the value of Lsp used. Df Floating keep output [0:5], default 5. Ds Lsp space before and after display if == 1 [0:1], default 1. Ej Eject page, default 0. Eq Equation lable adjust 0=left, 1=right. Default 0. Fs Footnote spacing, default 1.H1-H7
Heading counters H1dot Append a dot after the level one heading number if > 0. Default is 1. H1h Copy of number register H1, but it is incremented just before the page break. Useful in user defined header macros. Groff Version 1.19.2Last change: 21 October 2010 27Device and Network Interfaces GROFF_MM(7)
Hb Heading break level [0:14], default 2. Hc Heading centering level, [0:14]. Default 0. Hi Heading temporary indent [0:2], default 1.0 -> 0 indent, left margin
1 -> indent to right , like .P 1
2 -> indent to line up with text part of preceding
headingHps Number variable with the heading pre-space level. If
the heading-level is less than or equal to Hps, then
two lines will precede the section heading instead of one. Default is first level only. The real amount of lines is controlled by the variables Hps1 and Hps2. Hps1 This is the number of lines preceding .H when theheading-level is greater than Hps. Value is in units,
normally 0.5. Hps2 This is the number of lines preceding .H when theheading-level is less than or equal to Hps. Value is
in units, normally 1. Hs Heading space level [0:14], default 2. Hss This is the number of lines that follows .H when theheading-level is less than or equal to Hs. Value is in
units, normally 1.Ht Heading numbering type, default 0. 0 -> multiple
(1.1.1 ...)1 -> single
Hu Unnumbered heading level, default 2. Hy Hyphenation in body, default 0.0 -> no hyphenation
1 -> hyphenation 14 on
Iso Set this variable to 1 on the command line to get ISO-
formatted date string. (-rIso=1) Useless inside a
document. L Page length, only for command line settings. LetwamMax lines in return-address, used in .WA/.WE.
Default 14. Lf, Lt, Lx, Le Enables (1) or disables (0) the printing of List of Groff Version 1.19.2Last change: 21 October 2010 28Device and Network Interfaces GROFF_MM(7)
figures, List of tables, List of exhibits and List of equations. Default: Lf=1, Lt=1, Lx=1, Le=0. Li List indent, used by .AL, default 6. Limsp Flag for space between prefix and mark in automatic lists (.AL). 0 == no space 1 == space Ls List space, if current listlevel > Ls then no spacing will occur around lists. Default 99. Lsp The size of an empty line. Normally 0.5v, but it is 1v if n is set (.nroff). N Numbering style [0:5], default 0. 0 == (default) normal header for all pages. 1 == header replaces footer on first page, header is empty. 2 == page header is removed on the first page.3 == "section-page" numbering enabled.
4 == page header is removed on the first page.5 == "section-page" and "section-figure" numbering
enabled. See also the number-register Sectf and Sectp.
Np Numbered paragraphs, default 0. 0 == not numbered 1 == numbered in first level headings. O Page offset, only for command line settings. Of Format of figure,table,exhibit,equation titles, default 0. 0 = ". "1 = " - "
P Current page-number, normally the same as % unless
"section-page" numbering is enabled.
Pi paragraph indent, default 5. Pgps Controls whether header and footer pointsize should follow the current setting or just change when the header and footer is defined. ValueDescription 0 Pointsize will only change to the current setting when .PH, .PF, .OH, .EH, .OF or .OE is executed. 1 Pointsize will change after every .S. This is the default. Groff Version 1.19.2Last change: 21 October 2010 29Device and Network Interfaces GROFF_MM(7)
Ps paragraph spacing, default 1. Pt Paragraph type, default 0.0 == left-justified
1 == indented .P 2 == indented .P except after .H, .DE or .LE. SectfFlag controlling "section-figures". A non-zero value
enables this. See also register N. SectpFlag controlling "section-page-numbers". A non-zero
value enables this. See also register N. Si Display indent, default 5. Verbin Indent for .VERBON, default 5n. W Line length, only for command line settings. .mgm Always 1. INTERNALS The letter macros is 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 otherletter types, either in the national macro-file, or as local
additions. .LT will set the number variables Pt and Pi to 0 and 5. The following strings and macros must be defined for a new letter type:let@init_type
This macro is called directly by .LT. It is supposed to initialize variables and other stuff.let@head_type
This macro prints the letter head, and is called instead of the normal page header. It is supposed to remove the alias let@header, otherwise it will be called for all pages.let@sg_type name title n flag [arg1 [arg2 [...]]]
.SG is calling this macro only for letters, memorandums has its own processing. name and title is specifiedthru .WA/.WB. n is the counter, 1-max, and flag is
true for the last name. Any other argument to .SG is appended.let@fc_type closing
This macro is called by .FC, and has the formal closing Groff Version 1.19.2Last change: 21 October 2010 30Device and Network Interfaces GROFF_MM(7)
as argument..LO is implemented as a general option-macro. that a string
named Lettype is defined, where type is the letter type. .LO will then assign the argument to the string variablelet*lo-type.
AUTHOR