Tbl -- A Program to Format Tables

M. E. Lesk

ABSTRACT
Tbl is a document formatting preprocessor for troff or nroff which makes even fairly complex tables easy to specify and enter. It is available on the UNIX[[dagger]] [[footnote: [[dagger]] UNIX is a trademark of Bell Laboratories. ]] system and on Honeywell 6000 GCOS. Tables are made up of columns which may be independently centered, right-adjusted, left-adjusted, or aligned by decimal points. Headings may be placed over single columns or groups of columns. A table entry may contain equations, or may consist of several rows of text. Horizontal or vertical lines may be drawn as desired in the table, and any table or element may be enclosed in a box. For example:

1970 Federal Budget Transfers
(in billions of dollars)
State Taxes Money Net
collected spent
New York 22.91 21.35 -1.56
New Jersey 8.33 6.96 -1.37
Connecticut 4.12 3.10 -1.02
Maine 0.74 0.67 -0.07
California 22.29 22.42 +0.13
New Mexico 0.70 1.49 +0.79
Georgia 3.30 4.28 +0.98
Mississippi 1.15 2.32 +1.17
Texas 9.33 11.13 +1.80


Phototypesetting Documentation delim $$f1fP

Introduction.


Tbl turns a simple description of a table into a troff or nroff [1] program (list of commands) that prints the table. Tbl may be used on the UNIX [2] system and on the Honeywell 6000 GCOS system. It attempts to isolate a portion of a job that it can successfully handle and leave the remainder for other programs. Thus tbl may be used with the equation formatting program eqn [3] or various layout macro packages [4,5,6], but does not duplicate their functions.
This memorandum is divided into two parts. First we give the rules for preparing tbl input; then some examples are shown. The description of rules is precise but technical, and the beginning user may prefer to read the examples first, as they show some common table arrangements. A section explaining how to invoke tbl precedes the examples. To avoid repetition, henceforth read troff as "troff or nroff."
The input to tbl is text for a document, with tables preceded by a ".TS" (table start) command and followed by a ".TE" (table end) command. Tbl processes the tables, generating troff formatting commands, and leaves the remainder of the text unchanged. The ".TS" and ".TE" lines are copied, too, so that troff page layout macros (such as the memo formatting macros [4]) can use these lines to delimit and place tables as they see fit. In particular, any arguments on the ".TS" or ".TE" lines are copied but otherwise ignored, and may be used by document layout macro commands.
The format of the input is as follows:
   text
   .TS
   table
   .TE
   text
   .TS
   table
   .TE
   text
   . . .
where the format of each table is as follows:
   .TS
   options ;
   format .
   data
   .TE
Each table is independent, and must contain formatting information followed by the data to be entered in the table. The formatting information, which describes the individual columns and rows of the table, may be preceded by a few options that affect the entire table. A detailed description of tables is given in the next section.

Input commands.


As indicated above, a table contains, first, global options, then a format section describing the layout of the table entries, and then the data to be printed. The format and data are always required, but not the options. The various parts of the table are entered as follows:
1)
OPTIONS. There may be a single line of options affecting the whole table. If present, this line must follow the .TS line immediately and must contain a list of option names separated by spaces, tabs, or commas, and must be terminated by a semicolon. The allowable options are:


The tbl program tries to keep boxed tables on one page by issuing appropriate "need" (.ne) commands. These requests are calculated from the number of lines in the tables, and if there are spacing commands embedded in the input, these requests may be inaccurate; use normal troff procedures, such as keep-release macros, in that case. The user who must have a multi-page boxed table should use macros designed for this purpose, as explained below under 'Usage.'
2)
FORMAT. The format section of the table specifies the layout of the columns. Each line in this section corresponds to one line of the table (except that the last line corresponds to all following lines up to the next .T&, if any -- see below), and each line contains a key-letter for each column of the table. It is good practice to separate the key letters for each column by spaces or tabs. Each key-letter is one of the following:


When numerical alignment is specified, a location for the decimal point is sought. The rightmost dot (.) adjacent to a digit is used as a decimal point; if there is no dot adjoining a digit, the rightmost digit is used as a units digit; if no alignment is indicated, the item is centered in the column. However, the special non-printing character string \& may be used to override unconditionally dots and digits, or to align alphabetic data; this string lines up where a dot normally would, and then disappears from the final output. In the example below, the items shown at the left will be aligned (in a numerical column) as shown on the right:

13 13
4.2 4.2
26.4.12 26.4.12
abc abc
abc\& abc
43\&3.22 433.22
749.12 749.12



Note: If numerical data are used in the same column with wider L or r type table entries, the widest number is centered relative to the wider L or r items (L is used instead of l for readability; they have the same meaning as key-letters). Alignment within the numerical items is preserved. This is similar to the behavior of a type data, as explained above. However, alphabetic subcolumns (requested by the a key-letter) are always slightly indented relative to L items; if necessary, the column width is increased to force this. This is not true for n type entries.

Warning: the n and a items should not be used in the same column.

For readability, the key-letters describing each column should be separated by spaces. The end of the format section is indicated by a period. The layout of the key-letters in the format section resembles the layout of the actual data in the table. Thus a simple format might appear as:
c s s
l n n .
which specifies a table of three columns. The first line of the table contains a heading centered across all three columns; each remaining line contains a left-adjusted item in the first column followed by two columns of numerical data. A sample table in this format might be:

Overall title
Item-a 34.22 9.1
Item-b 12.65 .02
Items: c,d,e 23 5.8
Total 69.87 14.92


There are some additional features of the key-letter system:
3)
DATA. The data for the table are typed after the format. Normally, each table line is typed as one line of data. Very long input lines can be broken: any line whose last character is \ is combined with the following line (and the \ vanishes). The data for different columns (the table entries) are separated by tabs, or by whatever character has been specified in the option tabs option. There are a few special cases:
4)
ADDITIONAL COMMAND LINES. If the format of a table must be changed after many similar lines, as with sub-headings or summarizations, the ".T&" (table continue) command can be used to change column parameters. The outline of such a table input is:
   .TS
   options ;
   format .
   data
   . . .
   .T&
   format .
   data
   .T&
   format .
   data
   .TE
as in the examples on pages 10 and 13. Using this procedure, each table line can be close to its corresponding format line.
Warning: it is not possible to change the number of columns, the space between columns, the global options such as box, or the selection of columns to be made equal width.

Usage.


On UNIX, tbl can be run on a simple table with the command
   tbl input-file | troff
but for more complicated use, where there are several input files, and they contain equations and ms memorandum layout commands as well as tables, the normal command would be
   tbl file-1 file-2 . . . | eqn | troff -ms
and, of course, the usual options may be used on the troff and eqn commands. The usage for nroff is similar to that for troff, but only TELETYPE(r) Model 37 and Diablo-mechanism (DASI or GSI) terminals can print boxed tables directly.
For the convenience of users employing line printers without adequate driving tables or post-filters, there is a special -TX command line option to tbl which produces output that does not have fractional line motions in it. The only other command line options recognized by tbl are -ms and -mm which are turned into commands to fetch the corresponding macro files; usually it is more convenient to place these arguments on the troff part of the command line, but they are accepted by tbl as well.
Note that when eqn and tbl are used together on the same file tbl should be used first. If there are no equations within tables, either order works, but it is usually faster to run tbl first, since eqn normally produces a larger expansion of the input than tbl. However, if there are equations within tables (using the delim mechanism in eqn), tbl must be first or the output will be scrambled. Users must also beware of using equations in n-style columns; this is nearly always wrong, since tbl attempts to split numerical format items into two parts and this is not possible with equations. The user can defend against this by giving the delim(xx) table option; this prevents splitting of numerical columns within the delimiters. For example, if the eqn delimiters are $$, giving delim($$) a numerical column such as "1245 $+- 16$" will be divided after 1245, not after 16.
Tbl limits tables to twenty columns; however, use of more than 16 numerical columns may fail because of limits in troff, producing the 'too many number registers' message. Troff number registers used by tbl must be avoided by the user within tables; these include two-digit names from 31 to 99, and names of the forms #x, x+, x |, ^x, and x-, where x is any lower case letter. The names ##, #-, and #^ are also used in certain circumstances. To conserve number register names, the n and a formats share a register; hence the restriction above that they may not be used in the same column.
For aid in writing layout macros, tbl defines a number register TW which is the table width; it is defined by the time that the ".TE" macro is invoked and may be used in the expansion of that macro. More importantly, to assist in laying out multi-page boxed tables the macro T# is defined to produce the bottom lines and side lines of a boxed table, and then invoked at its end. By use of this macro in the page footer a multi-page table can be boxed. In particular, the ms macros can be used to print a multi-page boxed table with a repeated heading by giving the argument H to the ".TS" macro. If the table start macro is written
.TS H
a line of the form
.TH
must be given in the table after any table heading (or at the start if none). Material up to the ".TH" is placed at the top of each page of table; the remaining lines in the table are placed on several pages as required. Note that this is not a feature of tbl, but of the ms layout macros.

Examples.


Here are some examples illustrating features of tbl. The symbol [[circle]] in the input represents a tab character.
Input:
.TS
box;
c c c
l l l.
Language[[circle]]Authors[[circle]]Runs on

Fortran[[circle]]Many[[circle]]Almost anything
PL/1[[circle]]IBM[[circle]]360/370
C[[circle]]BTL[[circle]]11/45,H6000,370
BLISS[[circle]]Carnegie-Mellon[[circle]]PDP-10,11
IDS[[circle]]Honeywell[[circle]]H6000
Pascal[[circle]]Stanford[[circle]]370
.TE
Output:

Language
Authors
Runs on



Fortran
Many
Almost anything
PL/1
IBM
360/370
C
BTL
11/45,H6000,370
BLISS
Carnegie-Mellon
PDP-10,11
IDS
Honeywell
H6000
Pascal
Stanford
370

Input:
.TS
allbox;
c s s
c c c
n n n.
AT&T Common Stock
Year[[circle]]Price[[circle]]Dividend
1971[[circle]]41-54[[circle]]$2.60
2[[circle]]41-54[[circle]]2.70
3[[circle]]46-55[[circle]]2.87
4[[circle]]40-53[[circle]]3.24
5[[circle]]45-52[[circle]]3.40
6[[circle]]51-59[[circle]].95*
.TE
* (first quarter only)
Output:

AT&T Common Stock
Year
Price
Dividend
1971
41-54
$2.60
2
41-54
2.70
3
46-55
2.87
4
40-53
3.24
5
45-52
3.40
6
51-59
.95*

* (first quarter only)
Input:
.TS
box;
c s s
c | c | c
l | l | n.
Major New York Bridges
=
Bridge[[circle]]Designer[[circle]]Length
_
Brooklyn[[circle]]J. A. Roebling[[circle]]1595
Manhattan[[circle]]G. Lindenthal[[circle]]1470
Williamsburg[[circle]]L. L. Buck[[circle]]1600
_
Queensborough[[circle]]Palmer &[[circle]]1182
[[circle]] Hornbostel
_
[[circle]][[circle]]1380
Triborough[[circle]]O. H. Ammann[[circle]]_
[[circle]][[circle]]383
_
Bronx Whitestone[[circle]]O. H. Ammann[[circle]]2300
Throgs Neck[[circle]]O. H. Ammann[[circle]]1800
_
George Washington[[circle]]O. H. Ammann[[circle]]3500
.TE
Output:

Major New York Bridges
Bridge
Designer
Length
Brooklyn
J. A. Roebling
1595
Manhattan
G. Lindenthal
1470
Williamsburg
L. L. Buck
1600
Queensborough
Palmer &
1182

Hornbostel



1380
Triborough
O. H. Ammann
---


383
Bronx Whitestone
O. H. Ammann
2300
Throgs Neck
O. H. Ammann
1800
George Washington
O. H. Ammann
3500

Input:
.TS
c c
np-2 | n | .
[[circle]]Stack
[[circle]]_
1[[circle]]46
[[circle]]_
2[[circle]]23
[[circle]]_
3[[circle]]15
[[circle]]_
4[[circle]]6.5
[[circle]]_
5[[circle]]2.1
[[circle]]_
.TE
Output:


Stack

---
1
46

---
2
23

---
3
15

---
4
6.5

---
5
2.1

---

Input:
.TS
box;
L L L
L L _
L L | LB
L L _
L L L.
january[[circle]]february[[circle]]march
april[[circle]]may
june[[circle]]july[[circle]]Months
august[[circle]]september
october[[circle]]november[[circle]]december
.TE
Output:

january
february
march
april
may
---
june
july
Months
august
september
---
october
november
december

Input:
.TS
box;
cfB s s s.
Composition of Foods
_
.T&
c | c s s
c | c s s
c | c | c | c.
Food[[circle]]Percent by Weight
\^[[circle]]_
\^[[circle]]Protein[[circle]]Fat[[circle]]Carbo-
\^[[circle]]\^[[circle]]\^[[circle]]hydrate
_
.T&
l | n | n | n.
Apples[[circle]].4[[circle]].5[[circle]]13.0
Halibut[[circle]]18.4[[circle]]5.2[[circle]]. . .
Lima beans[[circle]]7.5[[circle]].8[[circle]]22.0
Milk[[circle]]3.3[[circle]]4.0[[circle]]5.0
Mushrooms[[circle]]3.5[[circle]].4[[circle]]6.0
Rye bread[[circle]]9.0[[circle]].6[[circle]]52.7
.TE
Output:

Composition of Foods
Food
Percent by Weight
--- --- ---
Protein
Fat
Carbo-
hydrate
Apples
.4
.5
13.0
Halibut
18.4
5.2
...
Lima beans
7.5
.8
22.0
Milk
3.3
4.0
5.0
Mushrooms
3.5
.4
6.0
Rye bread
9.0
.6
52.7

Input:
.TS
allbox;
cfI s s
c cw(1i) cw(1i)
lp9 lp9 lp9.
New York Area Rocks
Era[[circle]]Formation[[circle]]Age (years)
Precambrian[[circle]]Reading Prong[[circle]]>1 billion
Paleozoic[[circle]]Manhattan Prong[[circle]]400 million
Mesozoic[[circle]]T{
.na
Newark Basin, incl.
Stockton, Lockatong, and Brunswick
formations; also Watchungs
and Palisades.
T}[[circle]]200 million
Cenozoic[[circle]]Coastal Plain[[circle]]T{
On Long Island 30,000 years;
Cretaceous sediments redeposited
by recent glaciation.
.ad
T}
.TE
Output:

New York Area Rocks
Era Formation Age (years)
Precambrian Reading Prong >1 billion
Paleozoic Manhattan Prong 400 million
Mesozoic Newark Basin, incl. Stockton, Lockatong, and Brunswick formations; also Watchungs and Palisades. 200 million
Cenozoic Coastal Plain On Long Island 30,000 years; Cretaceous sediments redeposited by recent glaciation.


Input:
.EQ
delim $$
.EN
. . .
.TS
doublebox;
c c
l l.
Name[[circle]]Definition
.sp
.vs +2p
Gamma[[circle]]$GAMMA (z) = int sub 0 sup inf t sup {z-1} e sup -t dt$
Sine[[circle]]$sin (x) = 1 over 2i ( e sup ix - e sup -ix )$
Error[[circle]]$ roman erf (z) = 2 over sqrt pi int sub 0 sup z e sup {-t sup 2} dt$
Bessel[[circle]]$ J sub 0 (z) = 1 over pi int sub 0 sup pi cos ( z sin theta ) d theta $
Zeta[[circle]]$ zeta (s) = sum from k=1 to inf k sup -s ~~( Re~s > 1)$
.vs -2p
.TE
delim $$
f1fP
Output:

Name
Definition
Gamma
$GAMMA (z) = int sub 0 sup inf t sup {z-1} e sup -t dt$
Sine
$sin (x) = 1 over 2i ( e sup ix - e sup -ix )$
Error
$ roman erf (z) = 2 over sqrt pi int sub 0 sup z e sup {-t sup 2} dt$
Bessel
$ J sub 0 (z) = 1 over pi int sub 0 sup pi cos ( z sin theta ) d theta $
Zeta
$ zeta (s) = sum from k=1 to inf k sup -s ~~( Re~s > 1)$

Input:
.TS
box, tab(:);
cb s s s s
cp-2 s s s s
c || c | c | c | c
c || c | c | c | c
r2 || n2 | n2 | n2 | n.
Readability of Text
Line Width and Leading for 10-Point Type
=
Line:Set:1-Point:2-Point:4-Point
Width:Solid:Leading:Leading:Leading
_
9 Pica:\-9.3:\-6.0:\-5.3:\-7.1
14 Pica:\-4.5:\-0.6:\-0.3:\-1.7
19 Pica:\-5.0:\-5.1: 0.0:\-2.0
31 Pica:\-3.7:\-3.8:\-2.4:\-3.6
43 Pica:\-9.1:\-9.0:\-5.9:\-8.8
.TE
Output:

Readability of Text
Line Width and Leading for 10-Point Type
Line
Set
1-Point
2-Point
4-Point
Width
Solid
Leading
Leading
Leading
9 Pica
-9.3
-6.0
-5.3
-7.1
14 Pica
-4.5
-0.6
-0.3
-1.7
19 Pica
-5.0
-5.1
0.0
-2.0
31 Pica
-3.7
-3.8
-2.4
-3.6
43 Pica
-9.1
-9.0
-5.9
-8.8

Input:
.TS
c s
cip-2 s
l n
a n.
Some London Transport Statistics
(Year 1964)
Railway route miles[[circle]]244
Tube[[circle]]66
Sub-surface[[circle]]22
Surface[[circle]]156
.sp .5
.T&
l r
a r.
Passenger traffic \- railway
Journeys[[circle]]674 million
Average length[[circle]]4.55 miles
Passenger miles[[circle]]3,066 million
.T&
l r
a r.
Passenger traffic \- road
Journeys[[circle]]2,252 million
Average length[[circle]]2.26 miles
Passenger miles[[circle]]5,094 million
.T&
l n
a n.
.sp .5
Vehicles[[circle]]12,521
Railway motor cars[[circle]]2,905
Railway trailer cars[[circle]]1,269
Total railway[[circle]]4,174
Omnibuses[[circle]]8,347
.T&
l n
a n.
.sp .5
Staff[[circle]]73,739
Administrative, etc.[[circle]]5,582
Civil engineering[[circle]]5,134
Electrical eng.[[circle]]1,714
Mech. eng. \- railway[[circle]]4,310
Mech. eng. \- road[[circle]]9,152
Railway operations[[circle]]8,930
Road operations[[circle]]35,946
Other[[circle]]2,971
.TE
Output:

Some London Transport Statistics
(Year 1964)
Railway route miles
244
Tube
66
Sub-surface
22
Surface
156
Passenger traffic - railway

Journeys
674 million
Average length
4.55 miles
Passenger miles
3,066 million
Passenger traffic - road

Journeys
2,252 million
Average length
2.26 miles
Passenger miles
5,094 million
Vehicles
12,521
Railway motor cars
2,905
Railway trailer cars
1,269
Total railway
4,174
Omnibuses
8,347
Staff
73,739
Administrative, etc.
5,582
Civil engineering
5,134
Electrical eng.
1,714
Mech. eng. - railway
4,310
Mech. eng. - road
9,152
Railway operations
8,930
Road operations
35,946
Other
2,971

delim off
f1fP
Input:
.ps 8
.vs 10p
.TS
center box;
c s s
ci s s
c c c
lB l n.
New Jersey Representatives
(Democrats)
.sp .5
Name[[circle]]Office address[[circle]]Phone
.sp .5
James J. Florio[[circle]]23 S. White Horse Pike, Somerdale 08083[[circle]]609-627-8222
William J. Hughes[[circle]]2920 Atlantic Ave., Atlantic City 08401[[circle]]609-345-4844
James J. Howard[[circle]]801 Bangs Ave., Asbury Park 07712[[circle]]201-774-1600
Frank Thompson, Jr.[[circle]]10 Rutgers Pl., Trenton 08618[[circle]]609-599-1619
Andrew Maguire[[circle]]115 W. Passaic St., Rochelle Park 07662[[circle]]201-843-0240
Robert A. Roe[[circle]]U.S.P.O., 194 Ward St., Paterson 07510[[circle]]201-523-5152
Henry Helstoski[[circle]]666 Paterson Ave., East Rutherford 07073[[circle]]201-939-9090
Peter W. Rodino, Jr.[[circle]]Suite 1435A, 970 Broad St., Newark 07102[[circle]]201-645-3213
Joseph G. Minish[[circle]]308 Main St., Orange 07050[[circle]]201-645-6363
Helen S. Meyner[[circle]]32 Bridge St., Lambertville 08530[[circle]]609-397-1830
Dominick V. Daniels[[circle]]895 Bergen Ave., Jersey City 07306[[circle]]201-659-7700
Edward J. Patten[[circle]]Natl. Bank Bldg., Perth Amboy 08861[[circle]]201-826-4610
.sp .5
.T&
ci s s
lB l n.
(Republicans)
.sp .5v
Millicent Fenwick[[circle]]41 N. Bridge St., Somerville 08876[[circle]]201-722-8200
Edwin B. Forsythe[[circle]]301 Mill St., Moorestown 08057[[circle]]609-235-6622
Matthew J. Rinaldo[[circle]]1961 Morris Ave., Union 07083[[circle]]201-687-4235
.TE
.ps 10
.vs 12p
Output:

New Jersey Representatives
(Democrats)
Name
Office address
Phone
James J. Florio
23 S. White Horse Pike, Somerdale 08083
609-627-8222
William J. Hughes
2920 Atlantic Ave., Atlantic City 08401
609-345-4844
James J. Howard
801 Bangs Ave., Asbury Park 07712
201-774-1600
Frank Thompson, Jr.
10 Rutgers Pl., Trenton 08618
609-599-1619
Andrew Maguire
115 W. Passaic St., Rochelle Park 07662
201-843-0240
Robert A. Roe
U.S.P.O., 194 Ward St., Paterson 07510
201-523-5152
Henry Helstoski
666 Paterson Ave., East Rutherford 07073
201-939-9090
Peter W. Rodino, Jr.
Suite 1435A, 970 Broad St., Newark 07102
201-645-3213
Joseph G. Minish
308 Main St., Orange 07050
201-645-6363
Helen S. Meyner
32 Bridge St., Lambertville 08530
609-397-1830
Dominick V. Daniels
895 Bergen Ave., Jersey City 07306
201-659-7700
Edward J. Patten
Natl. Bank Bldg., Perth Amboy 08861
201-826-4610
(Republicans)
Millicent Fenwick
41 N. Bridge St., Somerville 08876
201-722-8200
Edwin B. Forsythe
301 Mill St., Moorestown 08057
609-235-6622
Matthew J. Rinaldo
1961 Morris Ave., Union 07083
201-687-4235

This is a paragraph of normal text placed here only to indicate where the left and right margins are. In this way the reader can judge the appearance of centered tables or expanded tables, and observe how such tables are formatted.
Input:
.TS
expand;
c s s s
c c c c
l l n n.
Bell Labs Locations
Name[[circle]]Address[[circle]]Area Code[[circle]]Phone
Holmdel[[circle]]Holmdel, N. J. 07733[[circle]]201[[circle]]949-3000
Murray Hill[[circle]]Murray Hill, N. J. 07974[[circle]]201[[circle]]582-6377
Whippany[[circle]]Whippany, N. J. 07981[[circle]]201[[circle]]386-3000
Indian Hill[[circle]]Naperville, Illinois 60540[[circle]]312[[circle]]690-2000
.TE
Output:

Bell Labs Locations
Name
Address
Area Code
Phone
Holmdel
Holmdel, N. J. 07733
201
949-3000
Murray Hill
Murray Hill, N. J. 07974
201
582-6377
Whippany
Whippany, N. J. 07981
201
386-3000
Indian Hill
Naperville, Illinois 60540
312
690-2000

Input:
.TS
box;
cb s s s
c | c | c s
ltiw(1i) | ltw(2i) | lp8 | lw(1.5i)p8.
Some Interesting Places
_
Name[[circle]]Description[[circle]]Practical Information
_
T{
American Museum of Natural History
T}[[circle]]T{
The collections fill 11.5 acres (Michelin) or 25 acres (MTA)
of exhibition halls on four floors. There is a full-sized replica
of a blue whale and the world's largest star sapphire (stolen in 1964).
T}[[circle]]Hours[[circle]]10-5, ex. Sun 11-5, Wed. to 9
\^[[circle]]\^[[circle]]Location[[circle]]T{
Central Park West & 79th St.
T}
\^[[circle]]\^[[circle]]Admission[[circle]]Donation: $1.00 asked
\^[[circle]]\^[[circle]]Subway[[circle]]AA to 81st St.
\^[[circle]]\^[[circle]]Telephone[[circle]]212-873-4225
_
Bronx Zoo[[circle]]T{
About a mile long and .6 mile wide, this is the largest zoo in America.
A lion eats 18 pounds
of meat a day while a sea lion eats 15 pounds of fish.
T}[[circle]]Hours[[circle]]T{
10-4:30 winter, to 5:00 summer
T}
\^[[circle]]\^[[circle]]Location[[circle]]T{
185th St. & Southern Blvd, the Bronx.
T}
\^[[circle]]\^[[circle]]Admission[[circle]]$1.00, but Tu,We,Th free
\^[[circle]]\^[[circle]]Subway[[circle]]2, 5 to East Tremont Ave.
\^[[circle]]\^[[circle]]Telephone[[circle]]212-933-1759
_
Brooklyn Museum[[circle]]T{
Five floors of galleries contain American and ancient art.
There are American period rooms and architectural ornaments saved
from wreckers, such as a classical figure from Pennsylvania Station.
T}[[circle]]Hours[[circle]]Wed-Sat, 10-5, Sun 12-5
\^[[circle]]\^[[circle]]Location[[circle]]T{
Eastern Parkway & Washington Ave., Brooklyn.
T}
\^[[circle]]\^[[circle]]Admission[[circle]]Free
\^[[circle]]\^[[circle]]Subway[[circle]]2,3 to Eastern Parkway.
\^[[circle]]\^[[circle]]Telephone[[circle]]718-638-5000
_
T{
New-York Historical Society
T}[[circle]]T{
All the original paintings for Audubon's
.I
Birds of America
.R
are here, as are exhibits of American decorative arts, New York history,
Hudson River school paintings, carriages, and glass paperweights.
T}[[circle]]Hours[[circle]]T{
Tues-Fri & Sun, 1-5; Sat 10-5
T}
\^[[circle]]\^[[circle]]Location[[circle]]T{
Central Park West & 77th St.
T}
\^[[circle]]\^[[circle]]Admission[[circle]]Free
\^[[circle]]\^[[circle]]Subway[[circle]]AA to 81st St.
\^[[circle]]\^[[circle]]Telephone[[circle]]212-873-3400
.TE
Output:

Some Interesting Places
Name Description Practical Information
American Museum of Natural History The collections fill 11.5 acres (Michelin) or 25 acres (MTA) of exhibition halls on four floors. There is a full-sized replica of a blue whale and the world's largest star sapphire (stolen in 1964). Hours 10-5, ex. Sun 11-5, Wed. to 9
Location Central Park West & 79th St.
Admission Donation: $1.00 asked
Subway AA to 81st St.
Telephone 212-873-4225
Bronx Zoo About a mile long and .6 mile wide, this is the largest zoo in America. A lion eats 18 pounds of meat a day while a sea lion eats 15 pounds of fish. Hours 10-4:30 winter, to 5:00 summer
Location 185th St. & Southern Blvd, the Bronx.
Admission $1.00, but Tu,We,Th free
Subway 2, 5 to East Tremont Ave.
Telephone 212-933-1759
Brooklyn Museum Five floors of galleries contain American and ancient art. There are American period rooms and architectural ornaments saved from wreckers, such as a classical figure from Pennsylvania Station. Hours Wed-Sat, 10-5, Sun 12-5
Location Eastern Parkway & Washington Ave., Brooklyn.
Admission Free
Subway 2,3 to Eastern Parkway.
Telephone 718-638-5000
New-York Historical Society All the original paintings for Audubon's Birds of America are here, as are exhibits of American decorative arts, New York history, Hudson River school paintings, carriages, and glass paperweights. Hours Tues-Fri & Sun, 1-5; Sat 10-5
Location Central Park West & 77th St.
Admission Free
Subway AA to 81st St.
Telephone 212-873-3400


Acknowledgments.


Many thanks are due to J. C. Blinn, who has done a large amount of testing and assisted with the design of the program. He has also written many of the more intelligible sentences in this document and helped edit all of it. All phototypesetting programs on UNIX are dependent on the work of J. F. Ossanna, whose assistance with this program in particular has been most helpful. This program is patterned on a table formatter originally written by J. F. Gimpel. The assistance of T. A. Dolotta, B. W. Kernighan, and J. N. Sturman is gratefully acknowledged.

References.


[1]
J. F. Ossanna, NROFF/TROFF User's Manual, Computing Science Technical Report No. 54, Bell Laboratories, 1976.
[2]
K. Thompson and D. M. Ritchie, "The UNIX Time-Sharing System," Comm. ACM. 17, pp. 365-75 (1974).
[3]
B. W. Kernighan and L. L. Cherry, "A System for Typesetting Mathematics," Comm. ACM. 18, pp. 151-57 (1975).
[4]
M. E. Lesk, Typing Documents on UNIX, Bell Laboratories internal memorandum.
[5]
M. E. Lesk and B. W. Kernighan, Computer Typesetting of Technical Journals on UNIX, Computing Science Technical Report No. 44, Bell Laboratories, July 1976.
[6]
J. R. Mashey and D. W. Smith, PWB/MM -- Programmer's Workbench Memorandum Macros, Bell Laboratories memorandum.

List of Tbl Command Characters and Words

delim $$
gfont roman
f1fP

Command Meaning Section
a A Alphabetic subcolumn 2
allbox Draw box around all items 1
b B Boldface item 2
box Draw box around table 1
c C Centered column 2
center Center table in page 1
doublebox Doubled box around table 1
e E Equal width columns 2
expand Make table full line width 1
f F Font change 2
i I Italic item 2
l L Left adjusted column 2
n N Numerical column 2
nnn Column separation 2
p P Point size change 2
r R Right adjusted column 2
s S Spanned item 2
t T Vertical spanning at top 2
tab (x) Change data separator character 1
$fat roman "T{" ~~ fat roman "T}"$ Text block 3
v V Vertical spacing change 2
w W Minimum width value 2
.xx Included troff command 3
[[bold-vertical]] Vertical line 2
[[bold-vertical]][[bold-vertical]] Double vertical line 2
^ Vertical span 2
\^ Vertical span 3
= Double horizontal line 2,3
$fat "_"$ Horizontal line 2,3
$fat "\_"$ Short horizontal line 3