Copyright (c) 1992, Sun Microsystems, Inc.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
nroff -ms [options] filename...
troff -ms [options] filename...
This package of nroff(1) and troff(1) macro definitions provides a formatting facility for various styles of articles, theses, and books. When producing 2-column output on a terminal or lineprinter, or when reverse line motions are needed, filter the output through col(1). All external -ms macros are defined below.
Note: this -ms macro package is an extended version written at Berkeley and is a superset of the standard -ms macro packages as supplied by Bell Labs. Some of the Bell Labs macros have been removed; for instance, it is assumed that the user has little interest in producing headers stating that the memo was generated at Whippany Labs.
Many nroff and troff requests are unsafe in conjunction with this package. However, the first four requests below may be used with impunity after initialization, and the last two may be used even before initialization: .bp
begin new page
break output line
insert n spacing lines
center next n lines
line spacing: n=1 single, n=2 double space
no alignment of right margin
Font and point size changes with \ef and \es are also allowed; for example, \efIword\efR will italicize word. Output of the tbl(1), eqn(1) and refer(1) preprocessors for equations, tables, and references is acceptable as input.
Macro Name Initial Value Break? Reset? Explanation |
.AB x - y |
begin abstract; if x=no do not label abstract |
.AE - y end abstract |
.AI - y author's institution |
.AM - n better accent mark definitions |
.AU - y author's name |
.B x - n embolden x; if no x, switch to boldface |
.B1 - y begin text to be enclosed in a box |
.B2 - y end boxed text and print it |
.BT date n bottom title, printed at foot of page |
.BX x - n print word x in a box |
.CM if t n cut mark between pages |
.CT - y,y |
chapter title: page number moved to CF (TM only) |
.DA x if n n |
force date x at bottom of page; today if no x |
.DE - y end display (unfilled text) of any kind |
.DS x y I y |
begin display with keep; x=I,\|L,\|C,\|B; y=indent |
.ID y 8n,.5i y indented display with no keep; y=indent |
.LD - y left display with no keep |
.CD - y centered display with no keep |
.BD - y block display; center entire block |
.EF x - n even page footer x (3 part as for .tl) |
.EH x - n even page header x (3 part as for .tl) |
.EN - y end displayed equation produced by eqn |
.EQ x y - y |
break out equation; x=L,I,C; y=equation number |
.FE - n |
end footnote to be placed at bottom of page |
.FP - n |
numbered footnote paragraph; may be redefined |
.FS x - n |
start footnote; x is optional footnote label |
.HD undef n optional page header below header margin |
.I x - n italicize x; if no x, switch to italics |
.IP x y - y,y |
indented paragraph, with hanging tag x; y=indent |
.IX x y - y |
index words x y and so on (up to 5 levels) |
.KE - n end keep of any kind |
.KF - n |
begin floating keep; text fills remainder of page |
.KS - y |
begin keep; unit kept together on a single page |
.LG - n larger; increase point size by 2 |
.LP - y,y left (block) paragraph. |
.MC x - y,y multiple columns; x=column width |
.ND x if t n |
no date in page footer; x is date on cover |
.NH x y - y,y |
numbered header; x=level, x=0 resets, x=S sets to y |
.NL 10p n set point size back to normal |
.OF x - n odd page footer x (3 part as for .tl) |
.OH x - n odd page header x (3 part as for .tl) |
.P1 if TM n print header on first page |
.PP - y,y paragraph with first line indented |
.PT - % - n page title, printed at head of page |
.PX x - y |
print index (table of contents); x=no suppresses title |
.QP - y,y quote paragraph (indented and shorter) |
.R on n return to Roman font |
.RE 5n y,y |
retreat: end level of relative indentation |
.RP x - n |
released paper format; x=no stops title on first page |
.RS 5n y,y |
right shift: start level of relative indentation |
.SH - y,y section header, in boldface |
.SM - n smaller; decrease point size by 2 |
.TA 8n,5n n |
set TAB characters to 8n 16n .\|.\|. (nroff) or 5n 10n .\|.\|. (troff) |
.TC x - y |
print table of contents at end; x=no suppresses title |
.TH - Y "multi-page end, header" |
.TL - y title in boldface and two points larger |
.TM off n UC Berkeley thesis mode |
.TE - y end of table processed by tbl |
.TS x - y,y |
begin table; if x=H table has multi-page header |
.UL x - n underline x, even in troff |
.UX x - n |
UNIX; trademark message first time; x appended |
.XA x y - y |
another index entry; x=page or no for none; y=indent |
.XE - y |
end index entry (or series of .IX entries) |
.XP - y,y |
paragraph with first line indented, others indented |
.XS x y - y |
begin index entry; x=page or no for none; y=indent |
.1C on y,y one column format, on a new page |
.2C - y,y begin two column format |
.]\|- - n beginning of refer reference |
.[\|0 - n end of unclassifiable type of reference |
.[\|N - n |
N= 1:journal-article, 2:book, 3:book-article, 4:report |
Formatting distances can be controlled in -ms by means of built-in number registers. For example, this sets the line length to 6.5 inches:
.nr LL 6.5i
Here is a table of number registers and their default values:
Name Register Controls Takes Effect Default |
PS point size paragraph 10 |
VS vertical spacing paragraph 12 |
LL line length paragraph 6i |
LT title length next page same as LL |
FL footnote length next .FS 5.5i |
PD paragraph distance paragraph 1v (if n), .3v (if t) |
DD display distance displays 1v (if n), .5v (if t) |
PI paragraph indent paragraph 5n |
QI quote indent next .QP 5n |
FI footnote indent next .FS 2n |
PO page offset next page 0 (if n), \(ap1i (if t) |
HM header margin next page 1i |
FM footer margin next page 1i |
FF footnote format next .FS 0 (1, 2, 3 available) |
When resetting these values, make sure to specify the appropriate units. Setting the line length to 7, for example, will result in output with one character per line. Setting FF to 1 suppresses footnote superscripting; setting it to 2 also suppresses indentation of the first line; and setting it to 3 produces an .IP-like footnote paragraph.
Here is a list of string registers available in -ms; they may be used anywhere in the text:
Name String's Function |
\e*Q quote (" in nroff,\| " in troff ) |
\e*U unquote (" in nroff,\| " in troff ) |
\e*- dash (-- in nroff, \(em in troff ) |
\e*(MO month (month of the year) |
\e*(DY day (current date) |
\e** automatically numbered footnote |
\e*' acute accent (before letter) |
\e*` grave accent (before letter) |
\e*^ circumflex (before letter) |
\e*, cedilla (before letter) |
\e*: umlaut (before letter) |
\e*~ tilde (before letter) |
When using the extended accent mark definitions available with .AM, these strings should come after, rather than before, the letter to be accented.
col (1), eqn (1), nroff (1), refer (1), tbl (1), troff (1)
Floating keeps and regular keeps are diverted to the same space, so they cannot be mixed together with predictable results.