The Heirloom Documentation Tools
The Heirloom Documentation Tools package provides
troff, nroff, and related
utilities to format manual pages and other documents for output on
terminals and printers. They are portable and enhanced
versions of the utilities released by Sun as part of
which are a variant of ditroff,
which, in turn, descends from the historical Unix troff
that generated output for the C/A/T phototypesetter.
is most prominently used to format Unix manual pages
for viewing them on a terminal.
This implementation consumes relatively few system resources
and is thus suitable for small system distributions.
It has been enhanced to generate UTF-8 output.
generates PostScript or HTML output
from the same document source code as nroff.
Thus a special use of it is to prepare manual pages for printing.
troff can add a table of contents with hyperlinks
and PDF bookmarks to manual pages (see
troff is a general-purpose typesetting processor, though.
Significant features that have been added in this implementation are:
“Plug-and-Play” font handling:
troff can access PostScript Type 1,
OpenType, and TrueType fonts directly,
that is, it can read font metrics from AFM,
OpenType, or TrueType files,
and can instruct its dpost post-processor
to include glyph data from PFB, PFA,
OpenType, and TrueType files into the output it generates.
include paragraph-at-once adjustment
using a variant of the Knuth-Plass algorithm
originally developed for TeX,
and options to decrease word spaces
and to dynamically change the letter spacing
as well as the glyph widths (microtypography).
Pairwise kerning of characters
and letter space tracking are supported.
troff includes a request to construct
kerning pairs for characters from different fonts.
Hanging characters can be used,
for example, hyphens can partially or entirely
hang over the right margin of a document.
for typesetting small capitals, old-style numerals,
and arbitrary ligatures
e.g. using Type 1 “expert” or
Letters can be of arbitrary size,
including fractional point sizes.
Individual fonts can be zoomed.
Text input is processed according
to the LC_CTYPE environment variable.
With a UTF-8 locale,
a large set of characters is available without the need to type
troff escape sequences.
Hyphenation of international languages is supported
using the OpenOffice variant
of Raph Levien's LibHnj,
which is in turn based on Liang's TeX algorithm.
International paper sizes such as A4 can be configured.
The dpost post-processor
can generate instructions for the PDF distiller
for the inclusion of bookmarks,
titles, and authorship information.
Most groff extensions,
like long names for requests, strings, and number registers,
A special groff compatibility mode is also provided.
Other troff language extensions include
a string search request,
output line traps,
local variables per macro instance.
Samples, introductory documents, manuals
Troff Demonstration Page
to get an impression of what can be done with troff
and PostScript fonts.
The Quickstart Guide
is a short introduction for those
who are already familiar with other versions of troff
and want to explore Heirloom troff now.
Paragraph-at-once adjustment, microtypography,
and other improvements to the adjustment mechanisms
are presented in
Justification in Heirloom Troff.
in Troff with PostScript Devices
explains how to install fonts
and how to access their typographical features.
Nroff/Troff User's Manual
forms the reference documentation for nroff and troff.
(The documents above had been generated using special none-free fonts with
an older version of the Heirloom doctools.
The up-to-date source code for generating these files is located in the
Online manual pages for
For installation instructions, see the README.
The list of CHANGES made since the
move from SourceForge to GitHub.
Browse the Git repository.
Download the source code
of the source code or use
$ git clone https://github.com/n-t-roff/heirloom-doctools.git
to retrieve a snapshot of the repository.