groff_me - “me” macro package for formatting roff documents


groff -me

[option ...] [file ...]

groff -m

me [option ...] [file ...]


The GNU implementation of the me macro package is part of the groff document formatting system. The me package of macro definitions for the roff language provides a convenient facility for preparing technical papers in various formats. This version is based on the me distributed with 4.4BSD and can be used with the GNU troff formatter as well as those descended from AT&T troff.

Some formatter requests affect page layout unpredictably when used in conjunction with this package; however, the following may be used with impunity after the first call to a paragraphing macro like lp or pp. Some arguments are optional; see groff(7) for details, particularly of requests whose argument list is designated with an ellipsis. An asterisk * marks groff extensions.

Except on title pages (produced by calling tp), me suppresses the output of vertical space at the tops of pages (after the output of any page header); the sp request will thus not work there. You can instead call bl or enclose the desired spacing request in a diversion, for instance by calling (b and )b. me also intercepts the ll request; see the “me Reference Manual” for details.

Name space
Objects in me follow a rigid naming convention. To avoid conflict, any user-defined register, string, or macro names should be single numerals or uppercase letters, or any longer sequence of letters and numerals with at least one uppercase letter. (For portability between BSD and groff me, limit names to two characters, and avoid the name [ (left square bracket).) The names employed by any preprocessors in use should also not be repurposed.


Some macros are provided for “old” roff(1) compatibility. The “me Reference Manual” describes alternatives for modern documents.





implements the package.


implements refer(1) support for me.


is a wrapper enabling the package to be loaded with “groff -m me”.


Early roff macro packages often limited their names to a single letter, which followed the formatter’s m flag letter, resulting in mm, ms, mv, mn, and so on. The “e” in “me” stands for “Eric P. Allman”, who wrote the macro package and the original technical papers documenting it while an undergraduate at the University of California.

See also

Two manuals are available in source and rendered form. On your system, they may be compressed and/or available in additional formats.

is “Writing Papers with Groff Using -me”, by Eric P. Allman, adapted for groff by James Clark.


is the “me Reference Manual”, by Eric P. Allman, adapted for groff by James Clark and G. Branden Robinson.

Groff: The GNU Implementation of troff, by Trent A. Fisher and Werner Lemberg, is the primary groff manual. You can browse it interactively with “info groff”.

For preprocessors supported by me, see eqn(1), grn(1), pic(1), refer(1), and tbl(1).

groff(1), troff(1), groff(7)