groff: gtroff Output

 
 6.1 'gtroff' Output
 ===================
 
 This 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.(1)  (⇒gtroff Output-Footnote-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 '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'.
 

Menu