groff: Auto-increment

 
 5.6.3 Auto-increment
 --------------------
 
 Number registers can also be auto-incremented and auto-decremented.  The
 increment or decrement value can be specified with a third argument to
 the 'nr' request or '\R' escape.
 
  -- Request: .nr ident value incr
      Set number register IDENT to VALUE; the increment for
      auto-incrementing is set to INCR.  Note that the '\R' escape
      doesn't support this notation.
 
    To activate auto-incrementing, the escape '\n' has a special syntax
 form.
 
  -- Escape: \n+i
  -- Escape: \n-i
  -- Escape: \n(+id
  -- Escape: \n(-id
  -- Escape: \n+(id
  -- Escape: \n-(id
  -- Escape: \n[+ident]
  -- Escape: \n[-ident]
  -- Escape: \n+[ident]
  -- Escape: \n-[ident]
      Before interpolating, increment or decrement IDENT (one-character
      name I, two-character name ID) by the auto-increment value as
      specified with the 'nr' request (or the '\R' escape).  If no
      auto-increment value has been specified, these syntax forms are
      identical to '\n'.
 
    For example,
 
      .nr a 0 1
      .nr xx 0 5
      .nr foo 0 -2
      \n+a, \n+a, \n+a, \n+a, \n+a
      .br
      \n-(xx, \n-(xx, \n-(xx, \n-(xx, \n-(xx
      .br
      \n+[foo], \n+[foo], \n+[foo], \n+[foo], \n+[foo]
 
 produces
 
      1, 2, 3, 4, 5
      -5, -10, -15, -20, -25
      -2, -4, -6, -8, -10
 
    To change the increment value without changing the value of a
 register (A in the example), the following can be used:
 
      .nr a \na 10