nroff(1)

๐Ÿ’… NAME

nroff โ€” format documents with groff for terminal (โ€œTTYโ€) devices.

This is nroff(1) from the General Commands Manual, bestie โ€” and she is so good at making groff docs play nice with your terminal. ๐Ÿ’–

โœจ SYNOPSIS

Hereโ€™s the exact shape of the command, no cap:

nroff [-abcCEhikpRStUVzZ] [-d ctext] [-d string=text] [-D fallback-input-encoding] [-I inclusion-directory] [-K input-encoding] [-m macro-package] [-M macro-directory] [-n page-number] [-o page-list] [-P postprocessor-argument] [-r cnumeric-expression] [-r register=numeric-expression] [-T output-device] [-w warning-category] [-W warning-category] [file ...]

nroff --help

nroff -v [other-nroff-option ...]

nroff --version [other-nroff-option ...]

๐Ÿฆ‹ DESCRIPTION

Okay so nroff formats documents written in the groff(7) language for typewriter-like devices such as terminal emulators. GNU nroff emulates the AT&T nroff command using groff(1). nroff generates output via grotty(1), groffโ€™s terminal output driver, which needs to know the character encoding scheme used by the device. Consequently, acceptable arguments to the -T option are ascii, latin1, and utf8; any others are ignored. If neither the GROFF_TYPESETTER environment variable nor the -T command-line option (which overrides the environment variable) specifies a (valid) device, nroff consults the locale to select an appropriate output device. It first tries the locale(1) program, then checks several locale-related environment variables; see section โ€œEnvironmentโ€ below. If all of the foregoing fail, nroff assumes -T ascii.

Now the option lore, because we are not skipping a single flag:

  • -a, -b, -c, -C, -d, -E, -i, -I, -m, -M, -n, -o, -r, -U, -w, -W, and -z โ€” these have the effects described in troff(1). -c and -h imply -P -c and -P -h, respectively; -c is also meaningful to troff itself. Further, GNU nroff ignores the AT&T nroff options -e, -q, and -s.
  • -D, -k, -K, -p, -P, -R, -t, -S, and -Z โ€” groff(1) documents these, so thatโ€™s your lore source.
  • -V โ€” causes nroff to display the constructed groff command on the standard output stream, but does not execute it.
  • -v and --version โ€” show version information about nroff and the programs it runs. --help displays a usage message; all exit afterward. ๐Ÿ’…

๐Ÿ’€ EXIT STATUS

  • 2 โ€” if there was a problem parsing its arguments.
  • 0 โ€” if any of the options -V, -v, --version, or --help were specified.
  • the status of groff โ€” otherwise.

๐ŸŒˆ ENVIRONMENT

Normally, the path separator in environment variables ending with PATH is the colon; this may vary depending on the operating system. For example, Windows uses a semicolon instead.

  • GROFF_BIN_PATH โ€” locate groff commands in these directories, followed by those in PATH. If not set, the installation directory of GNU roff executables, /usr/bin, is searched before PATH.
  • GROFF_TYPESETTER โ€” specifies the default output device for groff.
  • LC_ALL, LC_CTYPE, LANG, LESSCHARSET โ€” are pattern-matched in this order for contents matching standard character encodings supported by groff in the event no -T option is given and GROFF_TYPESETTER is unset, or the values specified are invalid.

๐ŸŽ€ FILES

  • /usr/share/groff/1.24.2/tmac/tty-char.tmac โ€” defines fallback definitions of roff special characters. These definitions more poorly optically approximate typeset output than those of tty.tmac in favor of communicating semantic information. nroff loads it automatically.

๐Ÿซถ NOTES

Pager programs like more(1) and less(1) may require command-line options to correctly handle some output sequences; see grotty(1).

๐Ÿ‘‘ SEE ALSO

groff(1), troff(1), grotty(1), locale(1), roff(7)


๐Ÿ’– cute sign-off: this iconic page is from groff 1.24.2, dated 2026-10-01, and itโ€™s the nroff(1) manual. Periodt. ๐ŸŽ€โœจ

๐Ÿ“ฆ where this page comes from