manpagez: man pages & more
info groff
Home | html | info | man

File: groff.info,  Node: Built-in Registers,  Prev: Assigning Register Formats,  Up: Registers

5.8.5 Built-in Registers
------------------------

Predefined registers whose identifiers start with a dot are read-only.
Many are Boolean-valued, interpolating a true or false value testable
with the 'if', 'ie', or 'while' requests.  Some read-only registers are
string-valued, meaning that they interpolate text.

   *Caution:* Built-in registers are subject to removal like others;
once removed, they can be recreated only as normal writable registers
and will not reflect formatter state.

   A register name (without the dot) is often associated with a request
of the same name.  A complete listing of all built-in registers can be
found in *note Register Index::.

   We present here a few built-in registers that are not described
elsewhere in this manual; they have to do with invariant properties of
GNU 'troff', or obtain information about the formatter's command-line
options, processing progress, or the operating environment.

'\n[.A]'
     Approximate output is being formatted (Boolean-valued); see 'groff'
     '-a' option (*note Groff Options::).

'\n[.c]'
'\n[c.]'
     Input line number.  'c.' is a writable synonym, affecting
     subsequent interpolations of both '.c' and 'c.'.

'\n[.F]'
     Name of input file (string-valued).

'\n[.g]'
     Always true in GNU 'troff' (Boolean-valued).  Documents can use
     this to ask the formatter if it claims 'groff' compatibility.

'\n[.P]'
     Output page selection status (Boolean-valued); see 'groff' '-o'
     option (*note Groff Options::).

'\n[.R]'
     Count of available unused registers; always 10,000 in GNU
     'troff'.(1)  (*note Built-in Registers-Footnote-1::)

'\n[.T]'
     Indicator of output device selection (Boolean-valued); see 'groff'
     '-T' option (*note Groff Options::).

'\n[.U]'
     Unsafe mode enablement status (Boolean-valued); see 'groff' '-U'
     option (*note Groff Options::).

'\n[.x]'
     Major version number of the running GNU 'troff' formatter.  For
     example, if the version number is 1.23.0, then '.x' contains '1'.

'\n[.y]'
     Minor version number of the running GNU 'troff' formatter.  For
     example, if the version number is 1.23.0, then '.y' contains '23'.

'\n[.Y]'
     Revision number of the running GNU 'troff' formatter.  For example,
     if the version number is 1.23.0, then '.Y' contains '0'.

'\n[$$]'
     Process identifier (PID) of the GNU 'troff' program in its
     operating environment.

   Date- and time-related registers are set per the local time as
determined by 'localtime(3)' when the formatter launches.  This
initialization can be overridden by 'SOURCE_DATE_EPOCH' and 'TZ'; see
*note Environment::.

'\n[seconds]'
     Count of seconds elapsed in the minute (0-60).

'\n[minutes]'
     Count of minutes elapsed in the hour (0-59).

'\n[hours]'
     Count of hours elapsed since midnight (0-23).

'\n[dw]'
     Day of the week (1-7; 1 is Sunday).

'\n[dy]'
     Day of the month (1-31).

'\n[mo]'
     Month of the year (1-12).

'\n[year]'
     Gregorian year.

'\n[yr]'
     Gregorian year minus 1900.  This register is incorrectly documented
     in the AT&T 'troff' manual as storing the last two digits of the
     current year.  That claim stopped being true in 2000.  Old 'troff'
     input that looks like:

          '\" The year number is a surprise after 1999.
          This document was formatted in 19\n(yr.

     can be corrected to:

          This document was formatted in \n[year].

     or, for portability across many 'roff' programs, to the following.

          .nr y4 1900+\n(yr
          This document was formatted in \n(y4.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.