The name ditroff once marked a development level of the troff text
processing system. In actual roff(7) systems, the name troff is used
as a synonym for ditroff.
The first roff system was written by Joe Ossanna 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 Ossanna's original mono-device version,
it was called ditroff (device independent troff) 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 and ditroff isn't necessary any
longer, for each modern troff provides already the complete
functionality of ditroff. On most systems, the name troff is used to
The easiest way to use ditroff is the GNU roff system, groff. The
groff(1) program is a wrapper around (di)troff that automatically
The 1992 revision of the Nroff/Troff User's Manual by J. F.Ossanna and Brian Kernighan, see Bell Labs CSTR #54
[CSTR #97]A Typesetter-independent TROFF by Brian Kernighan is the orig‐
inal documentation of the first multi-device troff (ditroff),
see Bell Labs CSTR #97
This document gives details on the history and concepts of
The actual implementation of ditroff.
The GNU roff program and pointers to all documentation around
The groff version of the intermediate output language, the
basis for multi-devicing.
This page is part of the groff (GNU troff) project. Information
about the project can be found at
⟨http://www.gnu.org/software/groff/⟩. If you have a bug report for
this manual page, see ⟨http://www.gnu.org/software/groff/⟩. This
page was obtained from the tarball groff-1.22.3.tar.gz fetched from
⟨ftp://ftp.gnu.org/gnu/groff/⟩ on 2016-12-10. If you discover any
rendering problems in this HTML version of the page, or you believe
there is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
Groff Version 1.22.3 4 November 2014 DITROFF(7)