What, exactly, is mom?

Quick answer: mom is a flexible typesetting and document formatting package that allows you to create high-quality Portable Document Format (.pdf) or PostScript (.ps) files for viewing and printing. Helpful, eh? Read on.

A bit of history

Mom is a macro set that sits on top of groff, a robust text processing system that first saw light of day at the Bell AT&T labs in the 1970s. Originally called roff, then nroff, and later, troff, with the advent of Richard Stallman’s GNU Free Software (which later became one half of GNU/Linux—what most people now just call Linux), troff was re-written and released freely to the public as GNU troff, or, more simply, groff.

Almost forty years in development—that’s a long time to iron out the bugs. And groff is still being actively maintained by a community of groff gurus.

All Greek to you?

The terms text processing and macro set may be unfamiliar to you. Text processing is a method of creating documents that separates the content of what you’re writing from its presentation, much like html. Working in a text editor, you intersperse documents with instructions describing how you’d like the text to look. When a document prepared this way is intended for processing with groff, the instructions are called macros.

Macros serve one of two functions: they’re either directions for particular typographic effects—say, increasing the size of type or changing the font—or they indicate the semantic role a particular bit of writing plays within the document (e.g. whether it’s a heading or a paragraph or a footnote).

In the latter capacity, there’s no need to specify the look of a document’s semantic elements. That’s taken care of behind-the-scenes, either according to default specifications or via formatting instructions given elsewhere in the document—again, much like html.

This... sample input
...becomes this: sample output
Text processing vs word processors