1DITROFF(7) Miscellaneous Information Manual DITROFF(7)
2
3
4
6 ditroff - classical device-independent roff
7
9 The name ditroff refers to a historical development stage of the
10 roff(7) text processing system. In roff systems extant today, the name
11 troff is a synonym for ditroff.
12
13 Early versions of roff by Joe Ossanna generated two programs from the
14 same sources, using conditional compilation to distinguish them. nroff
15 produced text-oriented TTY output, while troff generated graphical out‐
16 put for exactly one output device, the Wang Graphic Systems CAT photo‐
17 typesetter.
18
19 In 1979, Brian Kernighan rewrote troff to support more devices by cre‐
20 ating an intermediate output format for troff that could be fed into
21 postprocessor programs which actually do the printout on the device.
22 Kernighan's version marks what is known as “classical troff” today. In
23 order to distinguish it from Ossanna's original version, it was called
24 ditroff (device independent troff) on some systems, though this naming
25 isn't mentioned in the classical documentation.
26
27 Today, all existing roff systems are based on Kernighan's multi-device
28 troff. The distinction between troff and ditroff is no longer neces‐
29 sary; each modern troff provides the complete functionality of ditroff.
30
31 The easiest way to use ditroff is via the GNU roff system, groff. The
32 groff(1) program is a wrapper around (di)troff that automatically han‐
33 dles device postprocessing.
34
36 This document was written by Bernd Warken ⟨groff-bernd.warken-72@
37 web.de⟩.
38
40 CSTR #54
41 refers to the 1992 revision of the Nroff/Troff User's Manual by
42 J. F. Ossanna and Brian Kernighan.
43
44 CSTR #97
45 refers to A Typesetter-independent TROFF, by Brian Kernighan and
46 is the original documentation of the first multi-device troff
47 (ditroff).
48
49 roff(7)
50 provides a history and conceptual overview of roff systems.
51
52 troff(1)
53 describes the GNU implementation of (di)troff.
54
55 groff(1)
56 documents the GNU roff program and includes pointers to further
57 documentation about groff.
58
59 groff_out(5)
60 describes the groff version of the intermediate output language,
61 the basis for multi-device output.
62
63
64
65groff 1.22.4 3 November 2020 DITROFF(7)