tbl \- format tables for nroff or troff
is a preprocessor for formatting tables for
The input files are copied to the standard output,
except for lines between .TS and .TE
command lines, which are assumed to describe tables
Details are given in the reference manual.
As an example, letting \\t represent a tab (which should
be typed as a genuine tab)
Bernards Twp.\\t3087\\t3.74
Bernardsville\\t2018\\t3.30
Bound Brook\\t3425\\t3.04
Bridgewater\\t7897\\t3.81
.if \n(80<\n(38 .nr 80 \n(38
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(79+\w!Bedminster!
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(79+\w!Bernards Twp.!
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(79+\w!Bernardsville!
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(79+\w!Bound Brook!
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(79+\w!Branchburg!
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(79+\w!Bridgewater!
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(79+\w!Far Hills!
.if \n(80<\n(38 .nr 80 \n(38
.if \n(81<\n(38 .nr 81 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(38>\n(81 .nr 81 \n(38
.if \n(38<\n(81 .nr 61 +(\n(81-\n(38)/2
.if \n(82<\n(38 .nr 82 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(31<\n(38 .nr 31 \n(38
.if \n(32<\n(38 .nr 32 \n(38
.if \n(38>\n(82 .nr 82 \n(38
.if \n(38<\n(82 .nr 62 +(\n(82-\n(38)/2
.nr 38 \n(79+\w!Household Population!-\n(82
.if \n(38>0 .nr 38 \n(38/2
.nr 38 \n(80+\w!Households!-\n(82
.if \n(38>0 .nr 38 \n(38/1
.if n .if \n(61%24>0 .nr 61 +12u
.if n .if \n(62%24>0 .nr 62 +12u
\&!:Household Population:!
\&\h'|\n(40u'!:Town:!\h'|\n(41u'!:Households:!
\&\h'|\n(40u'!::!\h'|\n(41u'!:Number:!\h'|\n(42u'!:Size:!
.ta \n(80u \n(61u \n(62u \n(82u
\&\h'|\n(40u'!Bedminster:!\h'|\n(41u'!:789!\h'|\n(42u'!:3!!.26:!
.ta \n(80u \n(61u \n(62u \n(82u
\&\h'|\n(40u'!Bernards Twp.:!\h'|\n(41u'!:3087!\h'|\n(42u'!:3!!.74:!
.ta \n(80u \n(61u \n(62u \n(82u
\&\h'|\n(40u'!Bernardsville:!\h'|\n(41u'!:2018!\h'|\n(42u'!:3!!.30:!
.ta \n(80u \n(61u \n(62u \n(82u
\&\h'|\n(40u'!Bound Brook:!\h'|\n(41u'!:3425!\h'|\n(42u'!:3!!.04:!
.ta \n(80u \n(61u \n(62u \n(82u
\&\h'|\n(40u'!Branchburg:!\h'|\n(41u'!:1644!\h'|\n(42u'!:3!!.49:!
.ta \n(80u \n(61u \n(62u \n(82u
\&\h'|\n(40u'!Bridgewater:!\h'|\n(41u'!:7897!\h'|\n(42u'!:3!!.81:!
.ta \n(80u \n(61u \n(62u \n(82u
\&\h'|\n(40u'!Far Hills:!\h'|\n(41u'!:240!\h'|\n(42u'!:3!!.19:!
If no arguments are given,
reads the standard input,
so it may be used as a filter.
command should be first, to minimize the volume