TROFF(1) User Commands TROFF(1)

troff - typeset or format documents

troff [-a] [-f] [-Fdir] [-i] [-mname] [-nN] [-olist] [-raN]

[-sN] [-Tdest] [-uN] [-z] [filename]...

troff formats text in the filenames for typesetting or laser printing. Input to troff is expected to consist of text interspersed with formatting requests and macros. If no filename argument is present, troff reads standard input. A minus sign (−) as a filename indicates that standard input should be read at that point in the list of input files.

The output of troff is usually piped through dpost(1) to create a printable postscript file (see EXAMPLES).

The following options are supported. They may appear in any order, but all must appear before the first filename.


Send an ASCII approximation of formatted output to standard output. (Note: a rough ASCII version can also be printed out on ordinary terminals with an old and rarely used command, /usr/bin/ta.)


Do not print a trailer after the final page of output or cause the postprocessor to relinquish control of the device.


Search directory dir for font width or terminal tables instead of the system default directory.


Read standard input after all input files are exhausted.


Prepend the macro file /usr/share/lib/tmac/name to the input filenames. Note: most references to macro packages include the leading m as part of the name; for example, the man(7) macros reside in /usr/share/lib/tmac/an. The macro directory can be changed by setting the TROFFMACS environment variable to a specific path. Be certain to include the trailing '/' (slash) at the end of the path.


Number the first generated page N.


Print only pages whose page numbers appear in the comma-separated list of numbers and ranges. A range NM means pages N through M; an initial N means from the beginning to page N; and a final N means from N to the end.


Quiet mode in nroff; ignored in troff.


Set register a (one-character names only) to N.


Stop the phototypesetter every N pages. On some devices, troff produces a trailer so you can change cassettes; resume by pressing the typesetter's start button.


Prepare output for typesetter dest. The following values can be supplied for dest:


A PostScript printer; this is the default value. The output of the -T option must go through dpost(1) before it is sent to a PostScript printer to obtain the proper output.


Set the emboldening factor for the font mounted in position 3 to N. If N is missing, then set the emboldening factor to 0.


Suppress formatted output. Only diagnostic messages and messages output using the .tm request are output.

The following operand is supported:


The file containing text to be processed by troff.

Example 1 Using troff

The following example shows how to print an input text file mytext, coded with formatting requests and macros. The input file contains equations and tables and must go through the tbl(1) and eqn(1) preprocessors before it is formatted by troff with ms macros, processed by dpost(1), and printed by lp(1):

tbl mytext | eqn | troff -ms | dpost | lp


temporary file


standard macro files


font width tables for alternate mounted troff fonts


terminal driving tables for nroff

checknr(1), col(1), dpost(1), eqn(1), lp(1), man(1), nroff(1), tbl(1), attributes(7), man(7), me(7), ms(7)

troff is not 8-bit clean because it is by design based on 7-bit ASCII.

Previous documentation incorrectly described the numeric register yr as being the Last two digits of current year. yr is in actuality the number of years since 1900. To correctly obtain the last two digits of the current year through the year 2099, the definition given below of string register yy may be included in a document and subsequently used to display a two-digit year. Note that any other available one- or two-character register name may be substituted for yy.

.\" definition of new string register yy--last two digits of year
.\" use yr (# of years since 1900) if it is < 100
.ie \n(yr<100 .ds yy \n(yr
.el \{             .\" else, subtract 100 from yr, store in ny
.nr ny \n(yr-100
.ie \n(ny>9 \{     .\" use ny if it is two digits
.ds yy \n(ny
.\" remove temporary number register ny
.rr ny \}
.el \{.ds yy 0
.\" if ny is one digit, append it to 0
.as yy \n(ny
.rr ny \} \}

August 24, 2009 OmniOS