OpenBSD manual page server

Manual Page Search Parameters

DEROFF(1) General Commands Manual DEROFF(1)

deroffremove nroff/troff, eqn, pic and tbl constructs

deroff [-ikpw] [-m a | e | l | m | s] [file ...]

deroff reads each file in sequence and removes all roff command lines, backslash constructions, macro definitions, eqn constructs (between “.EQ” and “.EN” lines or between delimiters), pic pictures, and table descriptions and writes the remainder to the standard output. deroff follows chains of included files (“.so” and “.nx” commands); if a file has already been included, a “.so” is ignored and a “.nx” terminates execution. If no input file is given, deroff reads from the standard input.

The options are as follows:

Ignore “.so” and “.nx” commands.
Keep blocks of text intact. This is the default behavior unless the -m option is given.
Enable support for common macro packages. The -m option takes the following arguments:

recognize man(7) macros.
recognize me macros.
remove list constructs.
recognize mm macros.
recognize ms macros.
Preserve paragraph macros. This option only has an effect if the -m option is also specified.
Output a word list, one ‘word’ (string of letters, digits, and apostrophes, beginning with a letter; apostrophes are removed) per line, and all other characters ignored. Normally, the output follows the original, with the deletions mentioned above.


deroff first appeared outside of Bell Labs in PWB/UNIX 1.0. It did not appear in freely redistributable BSD releases for licensing reasons. After Caldera relicensed early UNIX releases the 4.4BSD version was added to OpenBSD 3.1.

Lorinda Cherry at the Bell Labs Computing Science Research Center.

deroff is not a complete troff interpreter, so it can be confused by subtle constructs. Most errors result in too much rather than too little output.

The -ml option does not correctly handle nested lists.

December 28, 2022 OpenBSD-7.4