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 fifty years in development—that’s a long time to iron out the bugs. Furthermore, groff is still actively maintained. The most recent version was released in 2023.

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