{
    "mode": "man",
    "parameter": "ditroff",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/ditroff/7/json",
    "generated": "2026-05-30T05:11:47Z",
    "sections": {
        "NAME": {
            "content": "ditroff - classical device-independent roff\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The name ditroff refers to a historical development stage of the roff(7) text processing sys‐\ntem.  In roff systems extant today, the name troff is a synonym for ditroff.\n\nEarly versions of roff by Joe Ossanna generated two programs from  the  same  sources,  using\nconditional  compilation to distinguish them.  nroff produced text-oriented TTY output, while\ntroff generated graphical output for exactly one output device, the Wang Graphic Systems  CAT\nphototypesetter.\n\nIn  1979,  Brian  Kernighan rewrote troff to support more devices by creating an intermediate\noutput format for troff that could be fed into postprocessor programs which actually  do  the\nprintout  on the device.  Kernighan's version marks what is known as “classical troff” today.\nIn order to distinguish it from Ossanna's original version, it was called ditroff (device in‐\ndependent  troff)  on some systems, though this naming isn't mentioned in the classical docu‐\nmentation.\n\nToday, all existing roff systems are based on Kernighan's multi-device troff.   The  distinc‐\ntion  between  troff  and ditroff is no longer necessary; each modern troff provides the com‐\nplete functionality of ditroff.\n\nThe easiest way to use ditroff is via the GNU roff system, groff.  The groff(1) program is  a\nwrapper around (di)troff that automatically handles device postprocessing.\n",
            "subsections": []
        },
        "AUTHORS": {
            "content": "This document was written by Bernd Warken ⟨groff-bernd.warken-72@web.de⟩.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "CSTR #54\nrefers  to  the  1992  revision  of the Nroff/Troff User's Manual by J. F. Ossanna and\nBrian Kernighan.\n\nCSTR #97\nrefers to A Typesetter-independent TROFF, by Brian Kernighan and is the original docu‐\nmentation of the first multi-device troff (ditroff).\n\nroff(7)\nprovides a history and conceptual overview of roff systems.\n\ntroff(1)\ndescribes the GNU implementation of (di)troff.\n\ngroff(1)\ndocuments  the  GNU  roff program and includes pointers to further documentation about\ngroff.\n\ngroffout(5)\ndescribes the groff version of the intermediate output language, the basis for  multi-\ndevice output.\n\n\n\ngroff 1.22.4                                23 March 2022                                 DITROFF(7)",
            "subsections": []
        }
    },
    "summary": "ditroff - classical device-independent roff",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "roff",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/roff/7/json"
        },
        {
            "name": "troff",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/troff/1/json"
        },
        {
            "name": "groff",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/groff/1/json"
        },
        {
            "name": "groffout",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/groffout/5/json"
        }
    ]
}