Previous: Device and Font Description Files, Up: File Formats [Contents][Index]
gtroff OutputWe now describe the groff device-independent page description
language produced by GNU troff.
As groff is a wrapper program around GNU troff and
automatically runs an output driver, users seldom encounter this format
under normal circumstances. groff offers the option
-Z to inhibit postprocessing such that GNU troff’s
output is sent to the standard output stream just as it is when running
GNU troff directly.
The purpose of device-independent output is to facilitate the
development of postprocessors by providing a common programming
interface for all devices. It is a distinct, and much simpler, language
from that of the formatter, troff. The device-independent
output can be thought of as a “page description language”.
In the following discussion, the term troff output describes what
is output by GNU troff, while page description denotes
the language accepted by the parser that interprets this output for the
output drivers.
This parser handles whitespace more flexibly than AT&T
troff’s
implementation,
recognizes a GNU extension to the language,
and supports an obsolete construct for compatibility;
otherwise,
the formats are the same.195
When Brian Kernighan designed AT&T troff’s
device-independent page description language circa 1980, he had to
balance readability and maintainability against severe constraints on
file size and transmission speed to the output device.196 A
decade later, when James Clark wrote groff, these constraints
were no longer as tight.
| • Language Concepts | ||
| • Command Reference | ||
| • Intermediate Output Examples | ||
| • Output Language Compatibility |
Previous: Device and Font Description Files, Up: File Formats [Contents][Index]