Although 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 groff
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 groff
what preprocessors to
use.
groff
currently has preprocessors for producing tables
(tbl
), typesetting equations (eqn
), drawing pictures
(pic
and grn
), processing bibliographies
(refer
), and drawing chemical structures (chem
). An
associated program that is useful when dealing with preprocessors is
soelim
.
A free implementation of grap
, a preprocessor for drawing graphs,
can be obtained as an extra package; groff
can use grap
also.
Unique to groff
is the preconv
preprocessor that enables
groff
to handle documents in various input encodings.
Other preprocessors exist, but, unfortunately, no free implementations
are available. Among them is a preprocessor for drawing mathematical
pictures (ideal
).