промежуточный выходной формат GNU roff (GNU roff intermediate output format)
Имя (Name)
groff_out - GNU roff intermediate output format
Описание (Description)
The fundamental operation of the troff(1) formatter is the
translation of the groff(7) input language into a device-
independent form, described here, primarily concerned with what
has to be written or drawn at specific positions on the output
device. This language is simple and imperative. In the
following discussion, the term command always refers to this
intermediate output language, and never to the groff(7) language
intended for direct use by document authors. Intermediate output
commands comprise several categories: glyph output; font, color,
and text size selection; motion of the printing position; page
advancement; drawing of geometric primitives; and device control
commands, a catch-all for operations not easily classified as any
of the foregoing, such as directives to start and stop output,
identify the intended output device, or place URL hyperlinks in
supported output formats.
As the GNU roff processor groff(1) is a wrapper program around
troff
that automatically calls a postprocessor, this output does
not show up normally. This is why it is called intermediate
within the groff system. The groff
program provides the option
-Z
to inhibit postprocessing, such that the produced intermediate
output is sent to standard output just like calling troff
manually.
In this document, the term troff output describes what is output
by the GNU troff
program, while intermediate output refers to the
language that is accepted by the parser that prepares this output
for the postprocessors. This parser is smarter on whitespace and
implements obsolete elements for compatibility, otherwise both
formats are the same. Both formats can be viewed directly with
gxditview
(1).
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 groff(7)
language. While the groff 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 pre-groff roff versions are denoted as classical troff. The
intermediate output produced by groff
is fairly readable, while
classical troff output was hard to understand because of strange
habits that are still supported, but not used any longer by GNU
troff.