gtroff
OutputThis section describes the groff
intermediate output format
produced by GNU troff
.
As groff
is a wrapper program around GNU troff
and
automatically calls an output driver (or “postprocessor”), this output
does not show up normally. This is why it is called
intermediate. groff
provides the option -Z to
inhibit postprocessing such that the produced intermediate output is
sent to standard output just as it is when calling GNU troff
directly.
Here, the term troff output describes what is output by
GNU troff
, while intermediate output refers to the language
that is accepted by the parser that prepares this output for the output
drivers. This parser handles whitespace more flexibly than
AT&T’s implementation and implements obsolete elements for
compatibility; otherwise, both formats are the same.124
The main purpose of the intermediate output concept is to facilitate the
development of postprocessors by providing a common programming
interface for all devices. It has a language of its own that is
completely different from the gtroff
language. While the
gtroff
language is a high-level programming language for text
processing, the intermediate output language is a kind of low-level
assembler language by specifying all positions on the page for writing
and drawing.
The intermediate output produced by gtroff
is fairly readable,
while output from AT&T troff
is rather hard to
understand because of strange habits that are still supported, but not
used any longer by gtroff
.