5.  Tabs

      Tabs (the ASCII `horizontal tab' character) can be used to produce output in columns, or to set the horizontal position of output. Typically tabs are used only in unfilled text. Tab stops are set by default every half inch from the current indent, but can be changed by the .tacommand. To set stops every inch, for example, ^ta 1i 2i 3i 4i 5i 6i

      Unfortunately the stops are left-justified only (as on a typewriter), so lining up columns of right-justified numbers can be painful. If you have many numbers, or if you need more complicated table layout, don't use troff directly; use the tbl program described in [3].

      For a handful of numeric columns, you can do it this way: Precede every number by enough blanks to make it line up when typed. ^nf
^ta 1i 2i 3i
1 tab 2 tab 3
40 tab 50 tab 60
700 tab 800 tab 900
^fi
Then change each leading blank into the string
\0This is a character that does not print, but that has
the same width as a digit.
When printed, this will produce
1 2 3
40 50 60
700 800 900

      It is also possible to fill up tabbed-over space with some character other than blanks by setting the `tab replacement character' with the .tccommand: ^ta 1.5i 2.5i
^tc \(ru (\(ru is "_")
Name tab Age tab
produces
Name Age
To reset the tab replacement character to a blank, use
.tcwith no argument.
(Lines can also be drawn with the
\lcommand, described in Section 6.)

      troff also provides a very general mechanism called `fields' for setting up complicated columns. (This is used by tbl). We will not go into it in this paper.