groff: Assigning Formats

 
 5.6.4 Assigning Formats
 -----------------------
 
 When a register is used, it is always textually replaced (or
 interpolated) with a representation of that number.  This output format
 can be changed to a variety of formats (numbers, Roman numerals, etc.).
 This is done using the 'af' request.
 
  -- Request: .af ident format
      Change the output format of a number register.  The first argument
      IDENT is the name of the number register to be changed, and the
      second argument FORMAT is the output format.  The following output
      formats are available:
 
      '1'
           Decimal arabic numbers.  This is the default format: 0, 1, 2,
           3, ...
 
      '0...0'
           Decimal numbers with as many digits as specified.  So, '00'
           would result in printing numbers as 01, 02, 03, ...
 
           In fact, any digit instead of zero does work; 'gtroff' only
           counts how many digits are specified.  As a consequence,
           'af''s default format '1' could be specified as '0' also (and
           exactly this is returned by the '\g' escape, see below).
 
      'I'
           Upper-case Roman numerals: 0, I, II, III, IV, ...
 
      'i'
           Lower-case Roman numerals: 0, i, ii, iii, iv, ...
 
      'A'
           Upper-case letters: 0, A, B, C, ..., Z, AA, AB, ...
 
      'a'
           Lower-case letters: 0, a, b, c, ..., z, aa, ab, ...
 
      Omitting the number register format causes a warning of type
      'missing'.  SeeDebugging, for more details.  Specifying a
      nonexistent format causes an error.
 
      The following example produces '10, X, j, 010':
 
           .nr a 10
           .af a 1           \" the default format
           \na,
           .af a I
           \na,
           .af a a
           \na,
           .af a 001
           \na
 
      The largest number representable for the 'i' and 'I' formats is
      39999 (or -39999); UNIX 'troff' uses 'z' and 'w' to represent 10000
      and 5000 in Roman numerals, and so does 'gtroff'.  Currently, the
      correct glyphs of Roman numeral five thousand and Roman numeral ten
      thousand (Unicode code points 'U+2182' and 'U+2181', respectively)
      are not available.
 
      If IDENT doesn't exist, it is created.
 
      Changing the output format of a read-only register causes an error.
      It is necessary to first copy the register's value to a writeable
      register, then apply the 'af' request to this other register.
 
  -- Escape: \gi
  -- Escape: \g(id
  -- Escape: \g[ident]
      Return the current format of the specified register IDENT
      (one-character name I, two-character name ID).  For example, '\ga'
      after the previous example would produce the string '000'.  If the
      register hasn't been defined yet, nothing is returned.