Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   groff_out    ( 5 )

промежуточный выходной формат 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.