dwww Home | Manual pages | Find package

troff(1)                    General Commands Manual                   troff(1)

Name
       troff - GNU roff typesetter and document formatter

Synopsis
       troff [-abcCEiRUz] [-d ctext] [-d string=text] [-f font-family]
             [-F font-directory] [-I inclusion-directory] [-m macro-package]
             [-M macro-directory] [-n page-number] [-o page-list]
             [-r cnumeric-expression] [-r register=numeric-expression]
             [-T output-device] [-w warning-category] [-W warning-category]
             [file ...]

       troff --help

       troff -v
       troff --version

Description
       GNU  troff  transforms ]8;;man:groff(7)\groff(7)]8;;\ language input into the device-indepen-
       dent output format described in ]8;;man:groff_out(5)\groff_out(5)]8;;\; troff is thus  the  heart
       of  the  GNU  roff document formatting system.  If no file operands are
       given on the command line, or if file is “-”, the standard input stream
       is read.

       GNU troff is functionally compatible with the AT&T troff typesetter and
       features numerous extensions.  Many people prefer to use  the  ]8;;man:groff(1)\groff(1)]8;;\
       command,  a  front end which also runs preprocessors and output drivers
       in the appropriate order and with appropriate options.

Options
       -h and --help display a usage message, while -v and --version show ver-
       sion information; all exit afterward.

       -a     Generate a plain text approximation of the typeset output.   The
              read-only  register .A is set to 1.  This option produces a sort
              of abstract preview of the formatted output.

              • Page breaks are marked by a phrase in angle brackets; for  ex-
                ample, “<beginning of page>”.

              • Lines are broken where they would be in the formatted output.

              • A  horizontal  motion of any size is represented as one space.
                Adjacent horizontal motions are not combined.   Inter-sentence
                space nodes (those arising from the second argument to the .ss
                request) are not represented.

              • Vertical motions are not represented.

              • Special  characters  are rendered in angle brackets; for exam-
                ple, the default soft hyphen character appears as “<hy>”.

              The above description should not be considered a  specification;
              the details of -a output are subject to change.

       -b     Write a backtrace reporting the state of troff's input parser to
              the  standard  error  stream  with each diagnostic message.  The
              line numbers given in the backtrace might not always be correct,
              because troff's idea of line numbers can be confused by requests
              that append to macros.

       -c     Start with color output disabled.

       -C     Enable  AT&T  troff  compatibility  mode;   implies   -c.    See
              ]8;;man:groff_diff(7)\groff_diff(7)]8;;\.

       -d ctext
       -d string=text
              Define  roff  string c or string as text.  c must be one charac-
              ter; string can be of arbitrary length.  Such string assignments
              happen before any macro file is loaded,  including  the  startup
              file.   Due  to  ]8;;man:getopt_long(3)\getopt_long(3)]8;;\  limitations,  c  cannot be, and
              string cannot contain, an equals sign, even  though  that  is  a
              valid character in a roff identifier.

       -E     Inhibit troff error messages; implies -Ww.  This option does not
              suppress messages sent to the standard error stream by documents
              or macro packages using tm or related requests.

       -f fam Use fam as the default font family.

       -F dir Search  in directory dir for the selected output device's direc-
              tory of device and font description files.  See the  description
              of  GROFF_FONT_PATH  in  section “Environment” below for the de-
              fault search locations and ordering.

       -i     Read the standard input stream after all named input files  have
              been processed.

       -I dir Search  the  directory dir for files (those named on the command
              line; in psbb, so, and soquiet  requests;  and  in  “\X'ps:  im-
              port'”, “\X'ps: file'”, and “\X'pdf: pdfpic'” device control es-
              cape  sequences).   -I may be specified more than once; each dir
              is searched in the given order.  To search the  current  working
              directory  before others, add “-I .” at the desired place; it is
              otherwise searched last.  -I works similarly to,  and  is  named
              for, the “include” option of Unix C compilers.

       -m name
              Process  the  file  name.tmac  prior to any input files.  If not
              found, tmac.name is attempted.  name (in both  arrangements)  is
              presumed   to   be   a   macro  file;  see  the  description  of
              GROFF_TMAC_PATH in section “Environment” below for  the  default
              search locations and ordering.

       -M dir Search  directory  dir  for macro files.  See the description of
              GROFF_TMAC_PATH in section “Environment” below for  the  default
              search locations and ordering.

       -n num Begin numbering pages at num.  The default is 1.

       -o list
              Output  only  pages  in list, which is a comma-separated list of
              inclusive page ranges; n means page n, m-n means every page  be-
              tween  m  and n, -n means every page up to n, and n- means every
              page from n on.  troff stops processing and exits after  format-
              ting the last page enumerated in list.

       -r cnumeric-expression
       -r register=numeric-expression
              Define  roff  register  c  or  register  as  numeric-expression.
              c must be a one-character name; register  can  be  of  arbitrary
              length.   Such register assignments happen before any macro file
              is loaded, including the startup file.   Due  to  ]8;;man:getopt_long(3)\getopt_long(3)]8;;\
              limitations, c cannot be, and register cannot contain, an equals
              sign,  even  though  that is a valid character in a roff identi-
              fier.

       -R     Don't load troffrc and troffrc-end.

       -T dev Prepare output for device dev.  The default is ps; see ]8;;man:groff(1)\groff(1)]8;;\.

       -U     Operate in unsafe mode, enabling the open, opena, pi,  pso,  and
              sy requests, which are disabled by default because they allow an
              untrusted  input  document  to write to arbitrary file names and
              run arbitrary commands.  This option also adds the  current  di-
              rectory  to the macro package search path; see the -m and -M op-
              tions above.

       -w name
       -W name
              Enable (-w) or inhibit (-W) warnings in category name.  See sec-
              tion “Warnings” below.

       -z     Suppress formatted output.

Warnings
       Warning diagnostics emitted by troff are divided into  named,  numbered
       categories.   The name associated with each warning category is used by
       the -w and -W options.  Each category is also assigned a power of  two;
       the  sum  of enabled category codes is used by the warn request and the
       .warn register.  Warnings of each category are produced under the  fol-
       lowing circumstances.

              ┌───────────────────────┬─────────────────────────────┐
              │ Bit   Code   Category │ Bit    Code      Category   │
              ├───────────────────────┼─────────────────────────────┤
              │   0      1   char     │  10      1024   reg         │
              │   1      2   number   │  11      2048   tab         │
              │   2      4   break    │  12      4096   right-brace │
              │   3      8   delim    │  13      8192   missing     │
              │   4     16   el       │  14     16384   input       │
              │   5     32   scale    │  15     32768   escape      │
              │   6     64   range    │  16     65536   space       │
              │   7    128   syntax   │  17    131072   font        │
              │   8    256   di       │  18    262144   ig          │
              │   9    512   mac      │  19    524288   color       │
              │                       │  20   1048576   file        │
              └───────────────────────┴─────────────────────────────┘

       break           4   A  filled output line could not be broken such that
                           its length was less than  the  output  line  length
                           \n[.l].  This category is enabled by default.

       char            1   No  mounted  font defines a glyph for the requested
                           character.  This category is enabled by default.

       color      524288   An undefined color name was  selected,  an  attempt
                           was  made  to  define a color using an unrecognized
                           color space, an invalid component in a color defin-
                           ition was encountered, or an attempt  was  made  to
                           redefine a default color.

       delim           8   The  closing  delimiter  in  an escape sequence was
                           missing or mismatched.

       di            256   A di, da, box, or boxa request was invoked  without
                           an argument when there was no current diversion.

       el             16   The el request was encountered with no prior corre-
                           sponding ie request.

       escape      32768   An unsupported escape sequence was encountered.

       file      1048576   An  attempt  was  made to load a file that does not
                           exist.  This category is enabled by default.

       font       131072   A non-existent font was selected, or the  selection
                           was  ignored  because  a  font selection escape se-
                           quence was used after the output line  continuation
                           escape sequence on an input line.  This category is
                           enabled by default.

       ig         262144   An  invalid  escape  sequence occurred in input ig-
                           nored using the ig request.  This warning  category
                           diagnoses  a condition that is an error when it oc-
                           curs in non-ignored input.

       input       16384   An invalid character occurred on the input stream.

       mac           512   An undefined string, macro, or diversion was  used.
                           When  such  an object is dereferenced, an empty one
                           of that name is automatically created.  So,  unless
                           it  is  later deleted, at most one warning is given
                           for each.

                           This warning is also emitted  upon  an  attempt  to
                           move  an  unplanted trap macro.  In such cases, the
                           unplanted macro is not dereferenced, so it  is  not
                           created if it does not exist.

       missing      8192   A request was invoked with a mandatory argument ab-
                           sent.

       number          2   An  invalid  numeric  expression  was  encountered.
                           This category is enabled by default.

       range          64   A numeric expression was out of range for its  con-
                           text.

       reg          1024   An  undefined register was used.  When an undefined
                           register is dereferenced, it is  automatically  de-
                           fined  with  a  value of 0.  So, unless it is later
                           deleted, at most one warning is given for each.

       right-brace  4096   A right brace escape sequence  \}  was  encountered
                           where a number was expected.

       scale          32   A  scaling  unit  inappropriate  to its context was
                           used in a numeric expression.

       space       65536   A space was missing between a request or macro  and
                           its argument.  This warning is produced when an un-
                           defined  name longer than two characters is encoun-
                           tered and the first two characters of the name con-
                           stitute a defined name.  No request is invoked,  no
                           macro  called,  and  an empty macro is not defined.
                           This category is enabled by default.  It never  oc-
                           curs in compatibility mode.

       syntax        128   A   self-contradictory  hyphenation  mode  was  re-
                           quested; an empty or incomplete numeric  expression
                           was  encountered;  an operand to a numeric operator
                           was missing; an attempt was made to define a recur-
                           sive, empty, or nonsensical character class;  or  a
                           groff extension conditional expression operator was
                           used while in compatibility mode.

       tab          2048   A  tab character was encountered where a number was
                           expected, or appeared in an  unquoted  macro  argu-
                           ment.

       Two warning names group other warning categories for convenience.

       all    All  warning categories except di, mac, and reg.  This shorthand
              is intended to produce all warnings that are useful  with  macro
              packages  and  documents  written for AT&T troff and its descen-
              dants, which have less fastidious diagnostics than GNU troff.

       w      All warning categories.  Authors of documents and macro packages
              targeting groff are encouraged to use this setting.

Environment
       GROFF_FONT_PATH and GROFF_TMAC_PATH each accept a search path of direc-
       tories; that is, a list of directory names separated  by  the  system's
       path component separator character.  On Unix systems, this character is
       a colon (:); on Windows systems, it is a semicolon (;).

       GROFF_FONT_PATH
              A  list  of directories in which to seek the selected output de-
              vice's directory of device and font  description  files.   troff
              will scan directories given as arguments to any specified -F op-
              tions  before  these,  then  in a site-specific directory (/usr/
              share/groff/site-font), a standard  location  (/usr/share/groff/
              1.23.0/font),  and a compatibility directory (/usr/lib/font) af-
              ter them.

       GROFF_TMAC_PATH
              A list of directories in which to search for macro files.  troff
              will scan directories given as arguments to any specified -M op-
              tions before these, then the current directory (only if  in  un-
              safe mode), the user's home directory, a site-specific directory
              (/usr/share/groff/site-tmac),  and  a  standard  location (/usr/
              share/groff/1.23.0/tmac) after them.

       GROFF_TYPESETTER
              Set the default output device.  If empty or not set, ps is used.
              The -T option overrides GROFF_TYPESETTER.

       SOURCE_DATE_EPOCH
              A timestamp (expressed as seconds since the Unix epoch)  to  use
              as  the  output creation timestamp in place of the current time.
              The time is converted to human-readable form using ]8;;man:gmtime(3)\gmtime(3)]8;;\ and
              ]8;;man:asctime(3)\asctime(3)]8;;\ when the formatter starts up and stored in  registers
              usable by documents and macro packages.

       TZ     The  time zone to use when converting the current time to human-
              readable form; see ]8;;man:tzset(3)\tzset(3)]8;;\.  If SOURCE_DATE_EPOCH is  used,  it
              is always converted to human-readable form using UTC.

Files
       /usr/share/groff/1.23.0/tmac/troffrc
              is an initialization macro file loaded before any macro packages
              specified with -m options.

       /usr/share/groff/1.23.0/tmac/troffrc-end
              is  an initialization macro file loaded after all macro packages
              specified with -m options.

       /usr/share/groff/1.23.0/tmac/name.tmac
              are macro files distributed with groff.

       /usr/share/groff/1.23.0/font/devname/DESC
              describes the output device name.

       /usr/share/groff/1.23.0/font/devname/F
              describes the font F of device name.

       troffrc and troffrc-end are sought neither in the current nor the  home
       directory  by  default  for  security reasons, even if the -U option is
       specified.  Use the -M command-line option or the GROFF_TMAC_PATH envi-
       ronment variable to add these directories to the search path if  neces-
       sary.

Authors
       The GNU version of troff was originally written by James Clark; he also
       wrote  the  original  version  of  this  document, which was updated by
       ]8;;mailto:wl@gnu.org\Werner Lemberg]8;;\, ]8;;mailto:groff-bernd.warken-72@web.de\Bernd Warken]8;;\, and ]8;;mailto:g.branden.robinson@gmail.com\G. Branden Robinson]8;;\.

See also
       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”.

       ]8;;man:groff(1)\groff(1)]8;;\
              offers an overview of the GNU  roff  system  and  describes  its
              front end executable.

       ]8;;man:groff(7)\groff(7)]8;;\
              details  the groff language, including a short but complete ref-
              erence of all predefined requests,  registers,  and  escape  se-
              quences.

       ]8;;man:groff_char(7)\groff_char(7)]8;;\
              explains the syntax of groff special character escape sequences,
              and lists all special characters predefined by the language.

       ]8;;man:groff_diff(7)\groff_diff(7)]8;;\
              enumerates the differences between AT&T device-independent troff
              and groff.

       ]8;;man:groff_font(5)\groff_font(5)]8;;\
              covers the format of groff device and font description files.

       ]8;;man:groff_out(5)\groff_out(5)]8;;\
              describes the format of troff's output.

       ]8;;man:groff_tmac(5)\groff_tmac(5)]8;;\
              includes information about macro files that ship with groff.

       ]8;;man:roff(7)\roff(7)]8;;\
              supplies background on roff systems in general, including point-
              ers to further related documentation.

groff 1.23.0                     31 March 2024                        troff(1)

Generated by dwww version 1.16 on Sun Jul 12 05:23:15 CEST 2026.