Mac Developer Library Developer


This manual page is for Mac OS X version 10.9

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

DITROFF(7)                                                                                        DITROFF(7)

       ditroff - classical device independent roff

       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 Osanna around 1973.  It supported only two  output  devices,
       the nroff program produced text oriented tty output, while the troff program generated graphical out-put output
       put for exactly one output device, the Wang Graphic Systems CAT typesetter.

       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 (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 denote ditroff.

       The easiest way to use ditroff is the GNU roff system, groff.  The  groff(1)  program  is  a  wrapper
       around (di)troff that automatically handles postprocessing.

       [CSTR #54]
              The 1992 revision of the Nroff/Troff User's Manual by J. F. Osanna and Brian Kernighan, see
              Bell Labs CSTR #54 <>.

       [CSTR #97]
              A  Typesetter-independent  TROFF by Brian Kernighan is the original documentation of the first
              multi-device troff (ditroff), see
              Bell Labs CSTR #97 <>.

              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 multi-devicing.

       Copyright (C) 2001, 2002, 2004 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 GNU copyleft site <>.

       This document is part of groff, the GNU roff distribution.  It was written by

       Bernd Warken <> and is maintained by

       Werner Lemberg <>.

Groff Version 1.19.2                             3 July 2004                                      DITROFF(7)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.