nroff and troff have a set of built-in commands, but what makes them truly powerful is the ability to define macros. Think of macros as batch files or command scripts, written in nroff and troff's arcane language.
Macros are difficult to write and even harder to debug. Luckily, several macro packages are available for everyday use. Macro packages are sets of macros designed to work together. For example,are written with the , which is called on the command line using the -man option:
nroff -man cat.1
We wrote this book with our own proprietary macro package which is based on ms. ms was one of the original macro packages written at Bell Labs, but it was dropped by AT&T in System V. It is still available on BSD-based systems, as is another macro package called me. The System V replacement for ms is called mm.