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

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



   groff_out    ( 5 )

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