ditroff - classical device independent roff
The name ditroff
once marked a development level of the troff
processing system. In actual roff
(7) systems, the name troff
used as a synonym for ditroff
The first roff system was written by Joe Osanna around 1973. It supported only
two output devices, the nroff
program produced text oriented tty
output, while the troff
program generated graphical output for exactly
one output device, the Wang Graphic Systems CAT
In 1979, Brian Kernighan rewrote troff to support more devices by creating an
intermediate output format for troff that can be fed into postprocessor
programs which actually do the printout on the device. Kernighan's version
marks what is known as classical troff
today. In order to distinguish
it from Osanna's original mono-device version, it was called ditroff
) on some systems,
though this naming isn't mentioned in the classical documentation.
Today, any existing roff system is based on Kernighan's multi-device troff. The
distinction between troff
isn't necessary any
longer, for each modern troff
provides already the complete
functionality of ditroff
. On most systems, the name troff
used to denote ditroff
The easiest way to use ditroff is the GNU roff system, groff
(1) program is a wrapper around (di)troff
automatically handles postprocessing.
- [CSTR #54]
- The 1992 revision of the Nroff/Troff User's Manual by J. F.
Osanna and Brian Kernighan, see
- [CSTR #97]
- A Typesetter-independent TROFF by Brian Kernighan is the
original documentation of the first multi-device troff (ditroff),
- This document gives details on the history and concepts of roff.
- The actual implementation of ditroff.
- The GNU roff program and pointers to all documentation around groff.
- The groff version of the intermediate output language, the basis for
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This document is distributed under the terms of the FDL (GNU Free Documentation
License) version 1.1 or later. You should have received a copy of the FDL on
your system, it is also available on-line at the
This document is part of groff
, the GNU roff distribution. It was written
by and is maintained by