ms Document Control Settings (The GNU Troff Manual)

#### 4.6.3 Document Control Settings

`ms` exposes many aspects of document layout to user control via `groff` requests. To use them, you must understand how to define registers and strings.

Request: `.nr` reg value ¶

  Set register reg to value. If reg doesn’t exist, GNU `troff` creates it.

Request: `.ds` name contents ¶

  Set string name to contents.

A list of document control registers and strings follows. For any parameter whose default is unsatisfactory, define its register or string before calling any `ms` macro other than `RP`.

#### Margin settings

Register: `\n[PO]` ¶

  Defines the page offset (i.e., the left margin).

  Effective: next page.

  Default: Varies by output device and paper format; 1i is used for typesetters using U.S. letter paper, and zero for terminals. See Paper Format.

Register: `\n[LL]` ¶

  Defines the line length (i.e., the width of the body text).

  Effective: next paragraph.

  Default: Varies by output device and paper format; 6.5i is used for typesetters using U.S. letter paper (see Paper Format) and 65n on terminals.

Register: `\n[LT]` ¶

  Defines the title line length (i.e., the header and footer width). This is usually the same as `LL`, but need not be.

  Effective: next paragraph.

  Default: Varies by output device and paper format; 6.5i is used for typesetters using U.S. letter paper (see Paper Format) and 65n on terminals.

Register: `\n[HM]` ¶

  Defines the header margin height at the top of the page.

  Effective: next page.

  Default: 1i.

Register: `\n[FM]` ¶

  Defines the footer margin height at the bottom of the page.

  Effective: next page.

  Default: 1i.

#### Titles (headers, footers)

String: `\*[LH]` ¶

  Defines the text displayed in the left header position.

  Effective: next header.

  Default: empty.

String: `\*[CH]` ¶

  Defines the text displayed in the center header position.

  Effective: next header.

  Default: ‘`-\n[%]-`’.

String: `\*[RH]` ¶

  Defines the text displayed in the right header position.

  Effective: next header.

  Default: empty.

String: `\*[LF]` ¶

  Defines the text displayed in the left footer position.

  Effective: next footer.

  Default: empty.

String: `\*[CF]` ¶

  Defines the text displayed in the center footer position.

  Effective: next footer.

  Default: empty.

String: `\*[RF]` ¶

  Defines the text displayed in the right footer position.

  Effective: next footer.

  Default: empty.

#### Text settings

Register: `\n[PS]` ¶

  Defines the type size of the body text.

  Effective: next paragraph.

  Default: 10p.

Register: `\n[VS]` ¶

  Defines the vertical spacing (type size plus leading).

  Effective: next paragraph.

  Default: 12p.

Register: `\n[HY]` ¶

  Defines the automatic hyphenation mode used with the `hy` request. Setting `HY` to 0 is equivalent to using the `nh` request. This is a Tenth Edition Research Unix extension.

  Effective: next paragraph.

  Default: 6.

String: `\*[FAM]` ¶

  Defines the font family used to typeset the document. This is a GNU extension.

  Effective: next paragraph.

  Default: defined by the output device; often ‘`T`’ (see Body Text)

#### Paragraph settings

Register: `\n[PI]` ¶

  Defines the indentation amount used by the `PP`, `IP` (unless overridden by an optional argument), `XP`, and `RS` macros.

  Effective: next paragraph.

  Default: 5n.

Register: `\n[PD]` ¶

  Defines the space between paragraphs.

  Effective: next paragraph.

  Default: 0.3v (1v on low-resolution devices).

Register: `\n[QI]` ¶

  Defines the indentation amount used on both sides of a paragraph set with the `QP` or between the `QS` and `QE` macros.

  Effective: next paragraph.

  Default: 5n.

Register: `\n[PORPHANS]` ¶

  Defines the minimum number of initial lines of any paragraph that must be kept together to avoid isolated lines at the bottom of a page. If a new paragraph is started close to the bottom of a page, and there is insufficient space to accommodate `PORPHANS` lines before an automatic page break, then a page break is forced before the start of the paragraph. This is a GNU extension.

  Effective: next paragraph.

  Default: 1.

#### Heading settings

Register: `\n[PSINCR]` ¶

  Defines an increment in type size to be applied to a heading at a lesser depth than that specified in `GROWPS`. The value of `PSINCR` should be specified in points with the p scaling unit and may include a fractional component; for example, ‘`.nr PSINCR 1.5p`’ sets a type size increment of 1.5p. This is a GNU extension.

  Effective: next heading.

  Default: 1p.

Register: `\n[GROWPS]` ¶

  Defines the heading depth above which the type size increment set by `PSINCR` becomes effective. For each heading depth less than the value of `GROWPS`, the type size is increased by `PSINCR`. Setting `GROWPS` to any value less than 2 disables the incremental heading size feature. This is a GNU extension.

  Effective: next heading.

  Default: 0.

Register: `\n[HORPHANS]` ¶

  Defines the minimum number of lines of an immediately succeeding paragraph that should be kept together with any heading introduced by the `NH` or `SH` macros. If a heading is placed close to the bottom of a page, and there is insufficient space to accommodate both the heading and at least `HORPHANS` lines of the following paragraph, before an automatic page break, then the page break is forced before the heading. This is a GNU extension.

  Effective: next paragraph.

  Default: 1.

String: `\*[SN-STYLE]` ¶

  Defines the style used to print numbered headings. See Headings. This is a GNU extension.

  Effective: next heading.

  Default: alias of `SN-DOT`

#### Footnote settings

Register: `\n[FI]` ¶

  Defines the footnote indentation. This is a Berkeley extension.

  Effective: next footnote.

  Default: 2n.

Register: `\n[FF]` ¶

  Defines the format of automatically numbered footnotes, and those for which the `FS` request is given a marker argument, at the bottom of a column or page. This is a Berkeley extension.

  `0`

    Set an automatic number8 as a superscript (on typesetter devices) or surrounded by square brackets (on terminals). The footnote paragraph is indented as with `PP` if there is an `FS` argument or an automatic number, and as with `LP` otherwise. This is the default.

  `1`

    As `0`, but set the marker as regular text and follow an automatic number with a period.

  `2`

    As `1`, but without indentation (like `LP`).

  `3`

    As `1`, but set the footnote paragraph with the marker hanging (like `IP`).

  Effective: next footnote.

  Default: 0.

Register: `\n[FPS]` ¶

  Defines the footnote type size.

  Effective: next footnote.

  Default: `\n[PS] - 2p`.

Register: `\n[FVS]` ¶

  Defines the footnote vertical spacing.

  Effective: next footnote.

  Default: `\n[FPS] + 2p`.

Register: `\n[FPD]` ¶

  Defines the footnote paragraph spacing. This is a GNU extension.

  Effective: next footnote.

  Default: `\n[PD] / 2`.

String: `\*[FR]` ¶

  Defines the ratio of the footnote line length to the current line length. This is a GNU extension.

  Effective: next footnote in single-column arrangements, next page otherwise.

  Default: `11/12`.

#### Display settings

Register: `\n[DD]` ¶

  Sets the display distance—the vertical spacing before and after a display, a `tbl` table, an `eqn` equation, or a `pic` image. This is a Berkeley extension.

  Effective: next display boundary.

  Default: 0.5v (1v on low-resolution devices).

Register: `\n[DI]` ¶

  Sets the default amount by which to indent a display started with `DS` and `ID` without arguments, to ‘`.DS I`’ without an indentation argument, and to equations set with ‘`.EQ I`’. This is a GNU extension.

  Effective: next indented display.

  Default: 0.5i.

#### Other settings

Register: `\n[MINGW]` ¶

  Defines the default minimum width between columns in a multi-column document. This is a GNU extension.

  Effective: next page.

  Default: 2n.

Register: `\n[TC-MARGIN]` ¶

  Defines the width of the field in which page numbers are set in a table of contents entry; the right margin thus moves inboard by this amount. This is a GNU extension.

  Effective: next `PX` call.

  Default: `\w'000'`