[ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

# 4. Macro Packages

This chapter documents the main macro packages that come with `groff`.

 4.1 `man' 4.2 `mdoc' 4.3 `ms' 4.4 `me' 4.5 `mm'

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 4.1 `man'

This is the most popular and probably the most important macro package of `groff`. It is easy to use, and a vast majority of manual pages are based on it.

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

### 4.1.1 Options

The command line format for using the `man' macros with `groff` is:

 ```groff -m man [ -rC1 ] [ -rD1 ] [ -rPnnn ] [ -rSxx ] [ -rXnnn ] [ files... ] ```

It is possible to use `-man' instead of `-m man'.

`-rC1`
If more than one manual page is given on the command line, number the pages continuously, rather than starting each at 1.

`-rD1`
Double-sided printing. Footers for even and odd pages are formatted differently.

`-rPnnn`

`-rSxx`
Use xx (which can be 10, 11, or 12pt) as the base document font size instead of the default value of 10pt.

`-rXnnn`
After page nnn, number pages as nnna, nnnb, nnnc, etc. For example, the option `-rX2' will produce the following page numbers: 1, 2, 2a, 2b, 2c, etc.

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

### 4.1.2 Usage

This section describes the available macros for manual pages. For further customization, put additional macros and requests into the file `man.local' which will be loaded immediately after `tmac.an'.

Macro: TH title section [extra1] [extra2] [extra3]
Sets the title of the man page to title and the section to section, which must have a value between 1 and 8. The value of section may also have a string appended, e.g. `.pm', to indicate a specific subsection of the man pages.

Both title and section are positioned at the left and right in the header line (with section in parentheses immediately appended to title. extra1 will be positioned in the middle of the footer line. extra2 will be positioned at the left in the footer line (resp. at the left on even pages and at the right on odd pages if double-sided printing is active). extra3 is centered in the header line.

For HTML output, headers and footers are completely suppressed.

Additionally, this macro starts a new page; the new line number is 1 again (except if the `-rC1' option is given on the command line) -- this feature is intended only for formatting multiple man pages; a single man page should contain exactly one `TH` macro at the beginning of the file.

Sets up an unnumbered section heading sticking out to the left. Prints out all the text following `SH` up to the end of the line (resp. the text in the next line if there is no argument to `SH`) in bold face, one size larger than the base document size. Additionally, the left margin for the following text is reset to its default value.

Sets up an unnumbered section heading. Prints out all the text following `SS` up to the end of the line (resp. the text in the next line if there is no argument to `SS`) in bold face, at the same size as the base document size. Additionally, the left margin for the following text is reset to its default value.

Macro: TP [nnn]
Sets up an indented paragraph with label. The indentation is set to nnn if that argument is supplied (the default unit is `n' if omitted), otherwise it is set to the default indentation value.

The first line of text following this macro is interpreted as a string to be printed flush-left, as it is appropriate for a label. It is not interpreted as part of a paragraph, so there is no attempt to fill the first line with text from the following input lines. Nevertheless, if the label is not as wide as the indentation, then the paragraph starts at the same line (but indented), continuing on the following lines. If the label is wider than the indentation, then the descriptive part of the paragraph begins on the line following the label, entirely indented. Note that neither font shape nor font size of the label is set to a default value; on the other hand, the rest of the text will have default font settings.

Macro: LP \arg\
Macro: PP \arg\
Macro: P \arg\
These macros are mutual aliases. Any of them causes a line break at the current position, followed by a vertical space downwards by the amount specified by the `PD` macro. The font size and shape are reset to the default value (10pt resp. Roman). Finally, the current left margin is restored.

Macro: IP [designator] [nnn]
Sets up an indented paragraph, using designator as a tag to mark its beginning. The indentation is set to nnn if that argument is supplied (default unit is `n'), otherwise the default indentation value is used. Font size and face of the paragraph (but not the designator) are reset to their default values. To start an indented paragraph with a particular indentation but without a designator, use `""' (two double quotes) as the first argument of `IP`.

For example, to start a paragraph with bullets as the designator and 4en indentation, write

 ```.IP \(bu 4 ```

Macro: HP [nnn]
Sets up a paragraph with hanging left indentation. The indentation is set to nnn if that argument is supplied (default unit is `n'), otherwise the default indentation value is used. Font size and face are reset to their default values.

Macro: RS [nnn]
This macro moves the left margin to the right by the value nnn if specified (default unit is `n'); otherwise the default indentation value is used. Calls to the `RS` macro can be nested.

Macro: RE [nnn]
This macro moves the left margin back to level nnn; if no argument is given, it moves one level back. The first level (i.e., no call to `RS` yet) has number 1, and each call to `RS` increases the level by 1.

To summarize, the following macros cause a line break with the insertion of vertical space (which amount can be changed with the `PD` macro): `SH`, `SS`, `TP`, `LP` (`PP`, `P`), `IP`, and `HP`.

The macros `RS` and `RE` also cause a break but do not insert vertical space.

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

### 4.1.3 Macros to set fonts

The standard font is Roman; the default text size is 10 point.

Macro: SM [text]
Causes the text on the same line or the text on the next line to appear in a font that is one point size smaller than the default font.

Macro: SB [text]
Causes the text on the same line or the text on the next line to appear in boldface font, one point size smaller than the default font.

Macro: BI text
Causes text on the same line to appear alternately in bold face and italic. The text must be on the same line as the macro call. Thus,

 ```.BI this "word and" that ```

would cause "this" and "that" to appear in bold face, while "word and" appears in italics.

Macro: IB text
Causes text to appear alternately in italic and bold face. The text must be on the same line as the macro call.

Macro: RI text
Causes text on the same line to appear alternately in roman and italic. The text must be on the same line as the macro call.

Macro: IR text
Causes text on the same line to appear alternately in italic and roman. The text must be on the same line as the macro call.

Macro: BR text
Causes text on the same line to appear alternately in bold face and roman. The text must be on the same line as the macro call.

Macro: RB text
Causes text on the same line to appear alternately in roman and bold face. The text must be on the same line as the macro call.

Macro: R [text]
Causes text to appear in roman font. If no text is present on the line where the macro is called, then the text of the next line appears in roman. This is the default font to which text is returned at the end of processing of the other macros.

Macro: B [text]
Causes text to appear in bold face. If no text is present on the line where the macro is called, then the text of the next line appears in bold face.

Macro: I [text]
Causes text to appear in italic. If no text is present on the line where the macro is called, then the text of the next line appears in italic.

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

### 4.1.4 Miscellaneous

The default indentation is 7.2n for all output devices except for `grohtml` which uses 1.2i instead.

Macro: DT \arg\
Sets tabs every 0.5 inches. Since this macro is always called during a `TH` request, it makes sense to call it only if the tab positions have been changed.

Macro: PD [nnn]
Adjusts the empty space before a new paragraph (resp. section). The optional argument gives the amount of space (default units are `v'); without parameter, the value is reset to its default value (1 line for tty devices, 0.4v otherwise).

This affects the macros `SH`, `SS`, `TP`, `LP` (resp. `PP` and `P`), `IP`, and `HP`.

The following strings are defined:

Macro: \*S \arg\
Switch back to the default font size.

Macro: \*R \arg\
The `registered' sign.

Macro: \*(Tm \arg\

Macro: \*(lq \arg\
Macro: \*(rq \arg\
Left and right quote. This is equal to `\(lq` and `\(rq`, respectively.

If a preprocessor like `gtbl` or `geqn` is needed, it has become common usage to make the first line of the man page look like this:

 ```.\" word ```

Note the single space character after the double quote. word consists of letters for the needed preprocessors: `e' for `geqn`, `r' for `grefer`, `t' for `gtbl`. Modern implementations of the `man` program read this first line and automatically call the right preprocessor(s).

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 4.2 `mdoc'

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 4.3 `ms'

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 4.4 `me'

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 4.5 `mm'

 [ << ] [ >> ] [Top] [Contents] [Index] [ ? ]

This document was generated by root l2-hrz on May, 9 2001 using texi2html