.NH
Tabs
.PP
Tabs
(the \s8ASCII\s0 `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
.BD .ta
command.
To set stops every inch, for example,
.P1
^ta 1i 2i 3i 4i 5i 6i
.P2
.PP
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,
.ul
don't
use
.UL troff 
directly;
use the
.UL tbl
program described in [3].
.PP
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.
.P1
^nf
^ta 1i 2i 3i
\0\01\0\fItab\fR\0\0\02\0\fItab\fR\0\0\03
\040\0\fItab\fR\0\050\0\fItab\fR\0\060
700\0\fItab\fR\0800\0\fItab\fR\0900
^fi
.P2
Then change each leading blank into the string
.BD \e0 .
This is a character that does not print, but that has
the same width as a digit.
When printed, this will produce
.P1
.ta 1i 2i 3i
\0\01	\0\02	\0\03
\040	\050	\060
700	800	900
.P2
.PP
It is also possible to fill up tabbed-over space with
some character other than blanks by setting the `tab replacement character'
with the
.BD .tc
command:
.P1
^ta 1.5i 2.5i
^tc \e(ru	(\e(ru is "\(ru")
Name \fItab\fR Age \fItab\fR 
.P2
produces
.P1 3
.ta 1.5i 2.5i
.tc \(ru
Name	 Age 	
.tc
.P2
To reset the tab replacement character to a blank, use
.BD .tc
with no argument.
(Lines can also be drawn with the
.BD \el
command, described in Section 6.)
.PP
.UL troff
also provides a very general mechanism called `fields'
for setting up complicated columns.
(This is used by
.UL tbl ).
We will not go into it in this paper.
