Previous: Device and Font Description Files, Up: File Formats [Contents][Index]
troff 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 to 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 a legacy compressed encoding of a subset of commands
for compatibility;
otherwise,
the formats are the same.199
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.200
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]