Next: , Previous: , Up: Introduction   [Contents][Index]


1.2 What Is groff?

groff (GNU roff) is a typesetting system that reads plain text input that includes formatting commands to produce output in PostScript, PDF, HTML, or other formats, or for display to a terminal. Formatting commands can be low-level typesetting primitives, macros from a supplied package, or user-defined macros. All three approaches can be combined.

A reimplementation and extension of troff and other programs from AT&T Unix, groff is widely available on POSIX and other systems owing to its long association with Unix manuals, including man pages. It and its predecessor have produced several best-selling software engineering texts. groff can create typographically sophisticated documents while consuming minimal system resources.

Like its predecessor “troff”, the term “groff” affords two popular pronunciations: as one syllable (like the surname), rhyming with “trough”, or as “jee-roff”, in analogy to the Bell Labs pronunciation “tee-roff”. Little risk of confusion exists; use whichever suits you.

The architecture of the GNU roff system follows that of other device-independent roff implementations, comprising preprocessors, macro packages, output drivers (or “postprocessors”), and a suite of utilities, with the formatter program troff at its heart.

The front end programs available in the GNU roff system make it easier to use than traditional roffs that required the construction of pipelines or use of temporary files to carry a source document from maintainable form to device-ready output.