groff provides most functions needed to format a
document, some operations would be unwieldy (e.g. to draw pictures).
Therefore, programs called preprocessors were written that
understand their own language and produce the necessary
operations. These preprocessors are able to differentiate their own
input from the rest of the document via markers.
To use a preprocessor, UNIX pipes are used to feed the output
from the preprocessor into
groff. Any number of preprocessors
may be used on a given document; in this case, the preprocessors are
linked together into one pipeline. However, with
groff, the user
does not need to construct the pipe, but only tell
preprocessors to use.
groff currently has preprocessors for producing tables
tbl), typesetting equations (
eqn), drawing pictures
grn), processing bibliographies
refer), and drawing chemical structures (
associated program that is useful when dealing with preprocessors is
A free implementation of
grap, a preprocessor for drawing graphs,
can be obtained as an extra package;
groff can use
groff is the
preconv preprocessor that enables
groff to handle documents in various input encodings.
There are other preprocessors in existence, but, unfortunately, no free
implementations are available. Among them is a preprocessor for drawing
mathematical pictures (