Troff

troff (pronounced TEE-roff) is a typesetting utility and associated document format, used mainly on Unix-based systems. Its most common use is to render man pages, but it is capable of much more.

troff is part of a confusing universe of software packages, utilities, and formats with names like troff, nroff, roff, groff, ditroff, TYPSET, and RUNOFF (and some of these names have multiple meanings).

Currently, the most widely-used version of the troff software is groff (GNU troff). Note that the groff software includes utilities named both "groff" and "troff" (as well as "nroff"), which have different functions.

Macro packages
The troff format is usually not used directly; instead, troff files make use of one of the many available macro packages. Macro packages for the groff version of troff are typically installed at  or a similar location.

troff and related utilities usually accept a  option, to use a macro package. Some macro packages are deliberately given a name that begins with the letter "m", while their internal name has the "m" stripped off. For example, the  option will read a macro package known as "man", but really named "an" (the macros would be in a file named "an.tmac"). Apparently, the theory is that  looks better than the more logical   (though the packages often have aliases, so   might work as well).

A troff file's filename extension may suggest what macro package to use. Supposedly there is a way to indicate this in the contents of the file, but for some reason this feature is not always used.

Examples
The nroff utility can display troff files on a terminal. For example: $ nroff -ms example.ms | less -R

Software

 * GNU troff (groff)

Sample files

 * http://ftp.x.org/pub/unsupported/doc/Xserver/

Links

 * troff.org
 * List of macro packages
 * Troff
 * Troff macro
 * Groff (software)
 * Nroff
 * Roff
 * TYPSET and RUNOFF
 * Runoff (program)
 * roff - concepts and history of roff typesetting