{
    "mode": "info",
    "parameter": "ditroff",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/info/ditroff/json",
    "generated": "2026-08-03T21:28:20Z",
    "sections": {
        "NAME": {
            "content": "ditroff - classical device-independent roff\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The  name  ditroff  refers  to  a  historical  development stage of the\nroff(7) text processing system.  In roff systems extant today, the name\ntroff is a synonym for ditroff.\n\nEarly  versions  of roff by Joe Ossanna generated two programs from the\nsame sources, using conditional compilation to distinguish them.  nroff\nproduced text-oriented TTY output, while troff generated graphical out-\nput for exactly one output device, the Wang Graphic Systems CAT  photo-\ntypesetter.\n\nIn  1979, Brian Kernighan rewrote troff to support more devices by cre-\nating an intermediate output format for troff that could  be  fed  into\npostprocessor  programs  which  actually do the printout on the device.\nKernighan's version marks what is known as \"classical troff\" today.  In\norder  to distinguish it from Ossanna's original version, it was called\nditroff (device independent troff) on some systems, though this  naming\nisn't mentioned in the classical documentation.\n\nToday,  all existing roff systems are based on Kernighan's multi-device\ntroff.  The distinction between troff and ditroff is no  longer  neces-\nsary; each modern troff provides the complete functionality of ditroff.\n\nThe  easiest way to use ditroff is via the GNU roff system, groff.  The\ngroff(1) program is a wrapper around (di)troff that automatically  han-\ndles device postprocessing.\n",
            "subsections": []
        },
        "AUTHORS": {
            "content": "This  document  was  written  by  Bernd  Warken <groff-bernd.warken-72@\nweb.de>.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "CSTR #54\nrefers to the 1992 revision of the Nroff/Troff User's Manual  by\nJ. F. Ossanna and Brian Kernighan.\n\nCSTR #97\nrefers to A Typesetter-independent TROFF, by Brian Kernighan and\nis the original documentation of the  first  multi-device  troff\n(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\ndocumentation about groff.\n\ngroffout(5)\ndescribes the groff version of the intermediate output language,\nthe basis for multi-device output.\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"
        }
    ]
}