Jet Propulsion Laboratory (JPL) has developed software tools that extend the capabilities of the Groff typesetting system for UNIX. Groff, or GNU Troff, descends from the Troff formatter originally developed at AT&T Bell Labs. It operates on text files containing a mixture of unformatted text and formatting instructions (in the same spirit as HTML or TeX) and produces finished documents in various formats suitable for viewing or printing (PDF, HTML, etc.).

Although Groff input can be written by hand, this is not easy or convenient. Instead, most Groff users write higher-level commands that are translated into the Groff typesetting language by one or more preprocessors. Several macro packages and preprocessors exist for producing different kinds of documents (reports, books, UNIX manual pages, etc.).

JPL’s software contributes to this body of work. It provides the following macro packages and preprocessors for Groff:

  1. A preprocessor lst for formatting lists with bullets or with automatically generated numbers.

  2. A preprocessor xref for automatically generating internal cross references to figures, tables, section headings, etc.

  3. A macro package mp and several supporting tools for formatting presentation slides, so one can use Groff instead of PowerPoint for presentations. The presentation tools incorporate novel features (for a markup-based presentation package), such as a simple form of animation.

  4. A macro package mr for formatting resumes and CVs.

The software also provides the following:

  1. A tool called pdfcat that concatenates two or more PDF documents into a single document.

  2. A tool called redline that compares two Groff documents and prepares a third document highlighting the changes.

Overall, the software makes it easier to use Groff for everyday document creation. Groff is both lightweight and powerful, and it produces sharp-looking documents. It is also (in the UNIX tradition) very friendly to programmers: it is easily scriptable and customizable, as this software illustrates.

The software has been tested on Mac OS X and should work on any system with a UNIX-like command-line environment, including Linux and Cygwin.

This work was done by Robert L. Bocchino of Caltech for NASA’s Jet Propulsion Laboratory. This software is available for license through the Jet Propulsion Laboratory, and you may request a license here . NPO-49580