.TH TBL 1 .SH NAME tbl \- format tables for nroff or troff .SH SYNOPSIS .B tbl [ files ] ... .SH DESCRIPTION .I tbl is a preprocessor for formatting tables for .I nroff or .IR troff (1). The input files are copied to the standard output, except for lines between .TS and .TE command lines, which are assumed to describe tables and reformatted. Details are given in the reference manual. .PP As an example, letting \\t represent a tab (which should be typed as a genuine tab) the input .IP "" \&.TS .nf c s s c c s c c c l n n. Household Population Town\\tHouseholds \\tNumber\\tSize Bedminster\\t789\\t3.26 Bernards Twp.\\t3087\\t3.74 Bernardsville\\t2018\\t3.30 Bound Brook\\t3425\\t3.04 Branchburg\\t1644\\t3.49 Bridgewater\\t7897\\t3.81 Far Hills\\t240\\t3.19 \&.TE .LP .fi yields .ne 10 .IP " " .TS .nr 35 \n(.u .nf .nr 79 0n .nr 80 \n(79 .nr 40 \n(79 .nr 38 \n(79+\w!Town! .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \n(79+\w!! .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 .nr 81 \n(80 .nr 41 \n(80 .nr 38 \n(80+\w!Number! .if \n(81<\n(38 .nr 81 \n(38 .nr 31 0 .nr 32 0 .nr 38 \w!789! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3087! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!2018! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3425! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!1644! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!7897! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!240! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!! .if \n(32<\n(38 .nr 32 \n(38 .nr 61 \n(80+\n(31 .nr 38 \n(61+\n(32 .if \n(38>\n(81 .nr 81 \n(38 .if \n(38<\n(81 .nr 61 +(\n(81-\n(38)/2 .nr 82 \n(81 .nr 42 \n(81 .nr 38 \n(81+\w!Size! .if \n(82<\n(38 .nr 82 \n(38 .nr 31 0 .nr 32 0 .nr 38 \w!3! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!.26! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!.74! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!.30! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!.04! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!.49! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!.81! .if \n(32<\n(38 .nr 32 \n(38 .nr 38 \w!3! .if \n(31<\n(38 .nr 31 \n(38 .nr 38 \w!.19! .if \n(32<\n(38 .nr 32 \n(38 .nr 62 \n(81+\n(31 .nr 38 \n(62+\n(32 .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 .if \n(38<0 .nr 38 0 .nr 61 +1*\n(38 .nr 81 +1*\n(38 .nr 41 +1*\n(38 .nr 62 +2*\n(38 .nr 82 +2*\n(38 .nr 42 +2*\n(38 .nr 38 \n(80+\w!Households!-\n(82 .if \n(38>0 .nr 38 \n(38/1 .if \n(38<0 .nr 38 0 .nr 62 +1*\n(38 .nr 82 +1*\n(38 .nr 42 +1*\n(38 .nr 38 1n .nr 41 +3*\n(38 .nr 81 +3*\n(38 .nr 61 +3*\n(38 .if n .if \n(61%24>0 .nr 61 +12u .nr 42 +6*\n(38 .nr 82 +6*\n(38 .nr 62 +6*\n(38 .if n .if \n(62%24>0 .nr 62 +12u .nr TW \n(82 .fc ! : .ta \n(82u \&!:Household Population:! .ta \n(80u \n(82u \&\h'|\n(40u'!:Town:!\h'|\n(41u'!:Households:! .ta \n(80u \n(81u \n(82u \&\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:! .fc .mk ## .nr ## -1v .if \n(35>0 .fi .TE .fi .PP If no arguments are given, .I tbl reads the standard input, so it may be used as a filter. When it is used with .I eqn or .I neqn the .I tbl command should be first, to minimize the volume of data passed through pipes. .SH SEE ALSO troff(1), eqn(1), doctype(1) .br M. E. Lesk, .I TBL.