TBL-A Program to Format Tables M. E. Lesk Bell Laboratories Murray Hill, New Jersey 07974 _A_B_S_T_R_A_C_T _T_b_l is a document formatting preprocessor for _t_r_o_f_f or _n_r_o_f_f which makes even fairly complex tables easy to specify and enter. It is available on the UNIX* 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: 9 8 _________________________________________ 1970 Federal Budget Transfers (in billions of dollars) 8 __________________________________________________________________________________ Taxes Money 8 State9 collected spent8 Net _________________________________________ 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 8 _________________________________________ 7 |8|7|7|7|7|7|7|7|7|7|7|7|7|7| 9 |7|7|7|7|7|7|7|7|7|7|7| |7|7|7|7|7|7|7|7|7|7|7| |7|7|7|7|7|7|7|7|7|7|7| |8|7|7|7|7|7|7|7|7|7|7|7|7|7| 9 9__________________________ * UNIX is a Trademark of Bell Laboratories. September 28, 1987 2 _T_B_L _I_N_T_R_O_D_U_C_T_I_O_N _T_b_l turns a simple description of a table into a _t_r_o_f_f or _n_r_o_f_f [1] program (list of requests) that prints the table. _T_b_l may be used on the UNIX [2] system and on the Honeywell 6000 GCOS system. It attempts to isolate a por- tion of a job that it can successfully handle and leave the remainder for other programs. Thus _t_b_l may be used with the equation formatting program _e_q_n [3] and/or various _n_r_o_f_f/_t_r_o_f_f 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 _t_b_l input; then some examples are shown. The description of rules is precise but techni- cal, and the beginning user may prefer to read the examples first, as they show some common table arrangements. A sec- tion explaining how to invoke _t_b_l precedes the examples. To avoid repetition, henceforth read ``_t_r_o_f_f'' as ``_t_r_o_f_f or _n_r_o_f_f.'' The input to _t_b_l is text for a document, with tables preceded by a ``.TS'' (table start) command and followed by a ``.TE'' (table end) command. _T_b_l processes the tables, generating _t_r_o_f_f formatting requests, and leaves the remainder of the text unchanged. The ``.TS'' and ``.TE'' lines are copied, too, so that _t_r_o_f_f layout macros (such as the memorandum formatting macros [4,6]) 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 requests. The format of the input is as follows: text .TS _t_a_b_l_e .TE text .TS _t_a_b_l_e .TE text ... where the format of each table is as follows: .TS _o_p_t_i_o_n_s ; _f_o_r_m_a_t . _d_a_t_a .TE Each table is independent, and must contain formatting information followed by the data to be entered in the table. September 28, 1987 _T_B_L 3 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 descrip- tion of tables is given in the next section. 9 _I_N_P_U_T _C_O_M_M_A_N_D_S 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: 9 1) OPTIONS. There may be a single line of options affect- ing 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: center - center the table (default is left- adjust); expand - make the table as wide as the current line length; box - enclose the table in a box; allbox - enclose each item in the table in a box; doublebox - enclose the table in two boxes; tab (_x) - use _x instead of tab to separate data items. linesize (_n)- set lines or rules (e.g., from box) in _n-point type; delim (_x_y) - recognize _x and _y as the _e_q_n delimiters. The _t_b_l program tries to keep boxed tables on one page by issuing appropriate ``need'' (._n_e) requests. These requests are calculated from the number of lines in the tables, and if there are spacing requests embedded in the input, the ._n_e requests may be inaccurate; use nor- mal _t_r_o_f_f 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.' 9 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 9 September 28, 1987 4 _T_B_L 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 follow- ing: L or l to indicate a left-adjusted column entry; R or r to indicate a right-adjusted column entry; C or c to indicate a centered column entry; N or n to indicate a numerical column entry, to be aligned with other numerical entries so that the units digits of numbers line up; A or a to indicate an alphabetic subcolumn; all corresponding entries are aligned on the left, and positioned so that the widest is centered within the column (see example on page 13); S or s to indicate a spanned heading, i.e., to indi- cate that the entry from the previous column continues across this column (not allowed for the first column of the table, obviously); or ^ to indicate a vertically spanned heading, i.e., to indicate that the entry from the previous row continues down through this row (not allowed for the first row of the table, obviously). 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 spe- cial 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 nor- mally 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: September 28, 1987 _T_B_L 5 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 _n_u_m_b_e_r 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 numeri- cal 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 for- mat 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: _H_o_r_i_z_o_n_t_a_l _l_i_n_e_s - A key-letter may be replaced by `_' (underscore) to indicate a horizontal line in place of the corresponding column entry, or by `=' to indicate a double horizontal line. If an adja- cent column contains a horizontal line, or if September 28, 1987 6 _T_B_L there are vertical lines adjoining this column, this horizontal line is extended to meet the nearby lines. If any data entry is provided for this column, it is ignored and a warning message is printed. _V_e_r_t_i_c_a_l _l_i_n_e_s - A vertical bar may be placed between column key-letters. This will cause a vertical line between the corresponding columns of the table. A vertical bar to the left of the first key-letter or to the right of the last one pro- duces a line at the edge of the table. If two vertical bars appear between key-letters, a double vertical line is drawn. _S_p_a_c_e _b_e_t_w_e_e_n _c_o_l_u_m_n_s - A number may follow the key- letter. This indicates the amount of separation between this column and the next column. The number normally specifies the separation in _e_n_s (one en is about the width of the letter `n').* If the _e_x_p_a_n_d option is used, then these numbers are multiplied by a constant such that the table is as wide as the current line length. The default column separation number is 3. If the separation is changed the worst case (largest space requested) governs. _V_e_r_t_i_c_a_l _s_p_a_n_n_i_n_g - Normally, vertically spanned items extending over several rows of the table are centered in their vertical range. If a key-letter is followed by _t or _T, any corresponding verti- cally spanned item will begin at the top line of its range. _F_o_n_t _c_h_a_n_g_e_s - A key-letter may be followed by a string containing a font name or number preceded by the letter _f or _F. This indicates that the corresponding column should be in a different font from the default font (usually Roman). All font names are one or two letters; a one-letter font name should be separated from whatever follows by a space or tab. The single letters B, b, I, and i are shorter synonyms for _f_B and _f_I. Font-change requests given with the table entries override these specifications. _P_o_i_n_t _s_i_z_e _c_h_a_n_g_e_s - A key-letter may be followed by the letter _p or _P and a number to indicate the point size of the corresponding table entries. The number may be a signed digit, in which case it __________________________ * More precisely, an en is a number of points (1 point = 1/72 inch) equal to half the current type size. September 28, 1987 _T_B_L 7 is taken as an increment or decrement from the current point size. If both a point size and a column separation value are given, one or more blanks must separate them. _V_e_r_t_i_c_a_l _s_p_a_c_i_n_g _c_h_a_n_g_e_s - A key-letter may be fol- lowed by the letter _v or _V and a number to indi- cate the vertical line spacing to be used within a multi-line corresponding table entry. The number may be a signed digit, in which case it is taken as an increment or decrement from the current vertical spacing. A column separation value must be separated by blanks or some other specification from a vertical spacing request. This request has no effect unless the corresponding table entry is a text block (see below). _C_o_l_u_m_n _w_i_d_t_h _i_n_d_i_c_a_t_i_o_n - A key-letter may be fol- lowed by the letter _w or _W and a width value in parentheses. This width is used as a minimum column width. If the largest element in the column is not as wide as the width value given after the w, the largest element is assumed to be that wide. If the largest element in the column is wider than the specified value, its width is used. The width is also used as a default line length for included text blocks. Normal _t_r_o_f_f units can be used to scale the width value; if none are used, the default is ens. If the width specification is a unitless integer the parentheses may be omitted. If the width value is changed in a column, the _l_a_s_t one given controls. _E_q_u_a_l-_w_i_d_t_h _c_o_l_u_m_n_s - A key-letter may be followed by the letter _e or _E to indicate equal-width columns. All columns whose key-letters are followed by e or E are made the same width. This permits the user to get a group of regularly spaced columns. _S_t_a_g_g_e_r_e_d _c_o_l_u_m_n_s - A key-letter may be followed by the letter _u or _U to indicate that the correspond- ing entry is to be moved up one-half line. This makes it easy, for example, to have a column of differences between numbers in an adjoining column. The _a_l_l_b_o_x option does not work with staggered columns. _Z_e_r_o-_w_i_d_t_h _i_t_e_m - A key-letter may be followed by the letter _z or _Z to indicate that the corresponding data item is to be ignored in calculating column widths. This may be useful, for example, in allowing headings to run across adjacent columns where spanned headings would be inappropriate. September 28, 1987 8 _T_B_L Note: The order of the above features is immaterial; they need not be separated by spaces, except as indicated above to avoid ambiguities involving point size and font changes. Thus a numerical column entry in italic font and 12-point type with a minimum width of 2.5 inches and separated by 6 ens from the next column could be specified as np12w(2.5i)fI 6 _A_l_t_e_r_n_a_t_i_v_e _n_o_t_a_t_i_o_n - Instead of listing the format of successive lines of a table on consecutive lines of the format section, successive line for- mats may be given on the same line, separated by commas, so that the format for the example above might have been written: c s s , l n n . _D_e_f_a_u_l_t - Column descriptors missing from the end of a format line are assumed to be L. The longest line in the format section, however, defines the number of columns in the table; extra columns in the data are ignored silently. 9 3) DATA. The data for the table are typed after the for- mat. 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 follow- ing 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 _t_a_b_s option. There are a few special cases: _T_r_o_f_f _r_e_q_u_e_s_t_s _w_i_t_h_i_n _t_a_b_l_e_s - An input line begin- ning with a `.' followed by anything but a number is assumed to be a request to _t_r_o_f_f and is passed through unchanged, retaining its position in the table. So, for example, space within a table may be produced by ``.sp'' requests in the data. _F_u_l_l _w_i_d_t_h _h_o_r_i_z_o_n_t_a_l _l_i_n_e_s - An input _l_i_n_e contain- ing only the character __ (underscore) or = (equal sign) is taken to be a single or double line, respectively, extending the full width of the _t_a_b_l_e. _S_i_n_g_l_e _c_o_l_u_m_n _h_o_r_i_z_o_n_t_a_l _l_i_n_e_s - An input table _e_n_t_r_y containing only the character __ or = is taken to be a single or double line extending the full width of the _c_o_l_u_m_n. Such lines are extended to meet horizontal or vertical lines adjoining this column. To obtain these characters explicitly in a column, either precede them by \& or follow them by a space before the usual tab or new-line. 9 September 28, 1987 _T_B_L 9 _S_h_o_r_t _h_o_r_i_z_o_n_t_a_l _l_i_n_e_s - An input table _e_n_t_r_y con- taining only the string \_ is taken to be a single line as wide as the contents of the column. It is not extended to meet adjoining lines. _R_e_p_e_a_t_e_d _c_h_a_r_a_c_t_e_r_s - An input table _e_n_t_r_y containing only a string of the form _\_\R_x where _x is any char- acter is replaced by repetitions of the character _x as wide as the data in the column. The sequence of _x's is not extended to meet adjoining columns. _V_e_r_t_i_c_a_l_l_y _s_p_a_n_n_e_d _i_t_e_m_s - An input table entry con- taining only the character string \^ indicates that the table entry immediately above spans down- ward over this row. It is equivalent to a table format key-letter of `^'. _T_e_x_t _b_l_o_c_k_s - In order to include a block of text as a table entry, precede it by T{T{ and follow it by T}T}. Thus the sequence ... T{T{ _b_l_o_c_k _o_f _t_e_x_t T}T} ... is the way to enter, as a single entry in the table, something that cannot conveniently be typed as a simple string between tabs. Note that the T}T} end delimiter must begin a line; additional columns of data may follow after a tab on the same line. See the example on page 11 for an illustra- tion of included text blocks in a table. If more than thirty or so text blocks are used in a table, various limits in the _t_r_o_f_f program are likely to be exceeded, producing diagnostics such as `too many string/macro names' or `too many number registers.' Text blocks are pulled out from the table, pro- cessed separately by _t_r_o_f_f, and replaced in the table as a solid block. If no line length is specified in the _b_l_o_c_k _o_f _t_e_x_t itself, or in the table format, the default is to use _Lx_C/(_N+1) where _L is the current line length, _C is the number of table columns spanned by the text, and _N is the total number of columns in the table. The other parameters (point size, font, etc.) used in setting the _b_l_o_c_k _o_f _t_e_x_t are those in effect at the beginning of the table (including the effect of the ``.TS'' macro) and any table format specif- ications of size, spacing, and font, using the p, v and f modifiers to the column key-letters. Requests within the text block itself are also recognized, of course. However, _t_r_o_f_f requests within the table data but not within the text September 28, 1987 10 _T_B_L block do not affect that block. Warnings: Although any number of lines may be present in a table, only the first 200 lines are used in setting up the table; a multi-page table, of course, may be arranged as several single-page tables if this proves to be a problem. Other dif- ficulties with formatting may arise because, in the calculation of column widths all table entries are assumed to be in the font and size being used when the ``.TS'' command was encountered, except for font and size changes indicated (a) in the table format section and (b) within the table data (as in the entry \s+3\fIData\fP\s0). Therefore, although arbitrary _t_r_o_f_f requests may be sprinkled in a table, care must be taken to avoid confusing the width calculations; use requests such as `.ps' with care. 9 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 con- tinue) command can be used to change column parameters. The outline of such a table input is: .TS _o_p_t_i_o_n_s ; _f_o_r_m_a_t . _d_a_t_a ... .T& _f_o_r_m_a_t . _d_a_t_a .T& _f_o_r_m_a_t . _d_a_t_a .TE as in the examples on pages 10 and 13. Using this pro- cedure, each table line can be close to its correspond- ing format line. Warning: It is not possible to change the number of columns, the space between columns, the global options such as _b_o_x, or the selection of columns to be made equal-width. Furthermore, ``.T&'' is not recognized after the first 200 lines of a table. _U_S_A_G_E On UNIX, _t_b_l can be run on a simple table with the com- mand 9 September 28, 1987 _T_B_L 11 tbl input-file | troff but for more complicated use, where there are several input files, and they contain equations and _m_s (or _m_m) macro requests as well as tables, the normal command would be tbl file-1 file-2 ... | eqn | troff -ms (or -mm) and, of course, the usual options may be used on the _t_r_o_f_f and _e_q_n commands. The usage for _n_r_o_f_f is similar to that for _t_r_o_f_f, but only _T_E_L_E_T_Y_P_E8r9 Model 37 and Diablo-mechanism (DASI or GSI) terminals can print boxed tables directly. If a file name is ``-'', the standard input is read at that point. For the convenience of users employing line printers without adequate driving tables or post-filters, there is a special -_T_X command-line option to _t_b_l which produces output that does not have fractional line motions in it. The only other command-line options recognized by _t_b_l are -_m_s and -_m_m which are turned into commands to fetch the corresponding macro files; usually it is more convenient to place these arguments on the _t_r_o_f_f part of the command line, but they are accepted by _t_b_l as well. Note that when _e_q_n and _t_b_l are used together on the same file _t_b_l should be used first. If there are no equa- tions within tables, either order works, but it is usually faster to run _t_b_l first, since _e_q_n normally produces a larger expansion of the input than _t_b_l. However, if there are equations within tables (using the _d_e_l_i_m mechanism in _e_q_n), 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 _t_b_l 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 _d_e_l_i_m(_x_x) table option; this prevents split- ting of numerical columns within the delimiters. For exam- ple, if the _e_q_n delimiters are $$, giving _d_e_l_i_m($$) causes a numerical column such as 1245 $+- 16$ to be divided after 1245, not after 16. _T_b_l accepts up to about 35 columns, but the actual number that can be processed may be smaller, depending on availability of _t_r_o_f_f number registers. The user must avoid number register names used by _t_b_l, which include two-digit numbers from 31 to 99 and strings of the form 4_x, 5_x, #_x, _x+, _x|, ^_x, and _x-, where _x is any lower-case letter. The names ##, #-, and #^ are also used in certain circumstances. To conserve register names, the n and a formats share a register; hence the restriction above that they may not be used in the same column. September 28, 1987 12 _T_B_L For aid in writing layout macros, _t_b_l 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 _m_s and _m_m 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 _n_o_t a feature of _t_b_l, but of the _m_s and _m_m macros. _E_X_A_M_P_L_E_S Here are some examples illustrating features of _t_b_l. The symbol TO in the input represents a tab character. _I_n_p_u_t: 9 .TS box; c c c l l l. LanguageTOAuthorsTORuns on FortranTOManyTOAlmost anything PL/1TOIBMTO360/370 CTOBTLTO11/45,H6000,370 BLISSTOCarnegie-MellonTOPDP-10,11 IDSTOHoneywellTOH6000 PascalTOStanfordTO370 .TE 777777777777778 _O_u_t_p_u_t: 98 ______________________________________________ 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 8 ______________________________________________ 7 |8|7|7|7|7|7|7|7| 9 |8|7|7|7|7|7|7|7| 9 9 September 28, 1987 _T_B_L 13 _I_n_p_u_t: 9 .TS allbox; c s s c c c n n n. AT&T Common Stock YearTOPriceTODividend 1971TO41-54TO$2.60 2TO41-54TO2.70 3TO46-55TO2.87 4TO40-53TO3.24 5TO45-52TO3.40 6TO51-59TO.95* .TE * (first quarter only) 77777777777777778 _O_u_t_p_u_t: 98 _________________________ AT&T Common Stock 8 _________________________ Year Price Dividend 8 _________________________ 1971 41-54 $2.60 8 _________________________ 2 41-54 2.70 8 _________________________ 3 46-55 2.87 8 _________________________ 4 40-53 3.24 8 _________________________ 5 45-52 3.40 8 _________________________ 6 51-59 .95* 8 _________________________ 7 |7|7|7|7|7|7|7|7|7|7|7| |8|7|7|7|7|7|7|7|7|7| 9 |8|7|7|7|7|7|7|7|7|7| 9 |7|7|7|7|7|7|7|7|7|7|7| * (first quarter only) 9 _I_n_p_u_t: 9 .TS box; c s s c | c | c l | l | n. Major New York Bridges = BridgeTODesignerTOLength _ BrooklynTOJ. A. RoeblingTO1595 ManhattanTOG. LindenthalTO1470 WilliamsburgTOL. L. BuckTO1600 _ QueensboroughTOPalmer &TO1182 TO Hornbostel _ TOTO1380 TriboroughTOO. H. AmmannTO_ TOTO383 _ Bronx WhitestoneTOO. H. AmmannTO2300 Throgs NeckTOO. H. AmmannTO1800 _ George WashingtonTOO. H. AmmannTO3500 .TE 777777777777777777777777778 _O_u_t_p_u_t: 98 _____________________________________________ Major New York Bridges 8 __________________________________________________________________________________________ Bridge Designer Length 8 _____________________________________________ Brooklyn J. A. Roebling 1595 Manhattan G. Lindenthal 1470 Williamsburg L. L. Buck 1600 8 _____________________________________________ Queensborough Palmer & 1182 Hornbostel 8 _____________________________________________ 1380 Triborough O. H. Ammann8 ________ 9 383 8 _____________________________________________ Bronx Whitestone O. H. Ammann 2300 Throgs Neck O. H. Ammann 1800 8 _____________________________________________ George Washington O. H. Ammann 3500 8 _____________________________________________ 7 |8|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7| 9 |7|7|7|7|7|7|7|7|7|7|7|7|7|7| |7|7|7|7|7|7|7|7|7|7|7|7|7|7| |8|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7| 9 September 28, 1987 14 _T_B_L _I_n_p_u_t: 9 .TS c c np-2 | n | . TOStack TO_ 1TO46 TO_ 2TO23 TO_ 3TO15 TO_ 4TO6.5 TO_ 5TO2.1 TO_ .TE 777777777777777778 _O_u_t_p_u_t: 9 Stack 8 _______ 1 46 8 _______ 2 23 8 _______ 3 15 8 _______ 4 6.5 8 _______ 5 2.1 8 _______ 7 |8|7|7|7|7|7|7| 9 |8|7|7|7|7|7|7| 9 _I_n_p_u_t: 9 .TS box; L L L L L _ L L | LB L L _ L L L. januaryTOfebruaryTOmarch aprilTOmay juneTOjulyTOMonths augustTOseptember octoberTOnovemberTOdecember .TE 777777777777778 _O_u_t_p_u_t: 98 ________________________________ january february march april may8 __________ 9 june july9 |7|9 Months august september8 __________ 9 october november december 8 ________________________________ 7 |8|7|7|7|7| 9 |8|7|7|7|7| 9 September 28, 1987 _T_B_L 15 _I_n_p_u_t: 9 .TS box; cfB s s s. Composition of Foods _ .T& c | c s s c | c s s c | c | c | c. FoodTOPercent by Weight \^TO_ \^TOProteinTOFatTOCarbo- \^TO\^TO\^TOhydrate _ .T& l | n | n | n. ApplesTO.4TO.5TO13.0 HalibutTO18.4TO5.2TO... Lima beansTO7.5TO.8TO22.0 MilkTO3.3TO4.0TO5.0 MushroomsTO3.5TO.4TO6.0 Rye breadTO9.0TO.6TO52.7 .TE 7777777777777777777777778 _O_u_t_p_u_t: 98 ______________________________________ Composition of Foods 8 ______________________________________ Percent by Weight 8 _________________________ Carbo- 7 Food9 Protein Fat9 hydrate 8 ______________________________________ 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 8 ______________________________________ 7 |7|7|7|7|7|7|7|7|7|7|7| |8|7|7|7|7|7|7|7|7|7| 9 |7|7|7|7|7|7|7|7| |7|7|7|7|7|7|7|7| |7|7|7|7|7|7|7|7|7|7|7| 9 _I_n_p_u_t: 9 .TS allbox; cfI s s c cw(1i) cw(1i) lp9 lp9 lp9 . New York Area Rocks EraTOFormationTOAge (years) PrecambrianTOReading ProngTO>1 billion PaleozoicTOManhattan ProngTO400 million MesozoicTOT{ .na Newark Basin, incl. Stockton, Lockatong, and Brunswick formations; also Watchungs and Palisades. .ad T}TO200 million CenozoicTOCoastal PlainTOT{ .na On Long Island 30,000 years; Cretaceous sediments redeposited by recent glaciation. .ad T} .TE 777777777777777777777777778 _O_u_t_p_u_t: 98 _____________________________________________ _N_e_w _Y_o_r_k _A_r_e_a _R_o_c_k_s 8 _____________________________________________ Era Formation Age (years) 8 _____________________________________________ Precambrian Reading Prong >1 billion 8 _____________________________________________ Paleozoic Manhattan Prong 400 million 8 _____________________________________________ Mesozoic 200 million 7 Newark Basin, incl. Stock- ton, Lockatong, and Brunswick formations; also Watchungs and Palisades. 8 _____________________________________________ Cenozoic Coastal Plain 7 On Long Island 30,000 years; Cre- taceous sediments redeposited by recent glaciation. 8 _____________________________________________ 7 |7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7| |8|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7| 9 |8|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7| 9 |7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7|7| 9 September 28, 1987 16 _T_B_L _I_n_p_u_t: 9 .EQ delim $$ .EN ... .TS doublebox; c c l l. NameTODefinition .sp .vs +2p GammaTO$GAMMA (z) = int sub 0 sup inf t sup {z-1} e sup -t dt$ SineTO$sin (x) = 1 over 2i ( e sup ix - e sup -ix )$ ErrorTO$ roman erf (z) = 2 over sqrt pi int sub 0 sup z e sup {-t sup 2} dt$ BesselTO$ J sub 0 (z) = 1 over pi int sub 0 sup pi cos ( z sin theta ) d theta $ ZetaTO$ zeta (s) = sum from k=1 to inf k sup -s ~~( Re~s > 1)$ .vs -2p .sp 2p .TE 77777777777777777777778 _O_u_t_p_u_t: 9