|
|
1.1 ! root 1: .so ../ADM/mac ! 2: .XX tbl 35 "Tbl \(em A Program to Format Tables" ! 3: .nr zz \n(%#u-1u ! 4: ....if \nM=0 .RP ! 5: ....TM 76-1274-5 39199 39199-11 ! 6: .if \n(tm>0 .ND June 11, 1976* ! 7: .TL ! 8: Tbl \(em A Program to Format Tables\(dg ! 9: .AU "MH 2C-569" 6377 ! 10: L. L. Cherry ! 11: M. E. Lesk ! 12: .AI ! 13: .MH ! 14: .AB ! 15: .I Tbl ! 16: is a document formatting preprocessor for ! 17: .I troff ! 18: or ! 19: .I nroff ! 20: which makes ! 21: even ! 22: fairly complex tables easy to specify and enter. ! 23: Tables are made up of columns which may be independently centered, right-adjusted, ! 24: left-adjusted, or aligned by decimal points. ! 25: Headings may be placed over single columns or groups of columns. ! 26: A table entry may contain equations, or may consist of several rows of text. ! 27: Horizontal or vertical lines may be drawn as desired ! 28: in the table, ! 29: and any table or element may be enclosed in a box. ! 30: For example: ! 31: .TS ! 32: center, box; ! 33: c s s s ! 34: c s s s ! 35: c |c |c |c ! 36: c |cp-2 |c |c ! 37: l |n |n |n. ! 38: U. S. Energy Production/Consumption ! 39: \s-2(in quadrillion Btu)\s0 ! 40: = ! 41: Year Production Consumption Net ! 42: \^ all sources \^ ! 43: _ ! 44: 1953 36.77 36.27 +0.51 ! 45: 1958 38.81 40.35 \-1.54 ! 46: 1963 45.85 48.32 \-2.47 ! 47: 1968 56.81 61.00 \-4.19 ! 48: 1973 62.06 74.28 \-12.22 ! 49: 1978 61.01 78.09 \-17.08 ! 50: 1983 61.19 70.05 \-8.86 ! 51: 1987 64.55 76.01 \-11.46 ! 52: .TE ! 53: .AE ! 54: .tr ~ ! 55: .de e1 ! 56: .nr \\$1 \\$2 ! 57: .. ! 58: .de e2 ! 59: .\".if !\\n(\\$1=\\n% .tm Error in example \\$1: referred to page \\n(\\$1, is on page \\n% ! 60: .Tm Example \\$1 \\n(\\$1 ! 61: .rr \\$1 ! 62: .. ! 63: .di qq ! 64: .EQ ! 65: delim $$ ! 66: .EN ! 67: .di ! 68: .rm qq ! 69: .2C ! 70: .FS ! 71: \(dgThis is a version of |reference(v7tbl) revised by Lorinda Cherry. ! 72: .FE ! 73: .NH ! 74: Introduction. ! 75: .PP ! 76: .I Tbl ! 77: turns a simple description ! 78: of a table into a ! 79: .I troff ! 80: or ! 81: .I nroff |reference(latest troff reference) ! 82: program (list of commands) that prints the table. ! 83: It ! 84: attempts to isolate a portion of a job that it can ! 85: successfully ! 86: handle and leave the remainder for other programs. ! 87: Thus ! 88: .I tbl ! 89: may be used with the equation formatting ! 90: program ! 91: .I eqn |reference(latest eqn) ! 92: or various ! 93: layout macro packages |reference(latest msmacros)|reference(lesk kernighan typesetting)|reference(mashey smith documentation), ! 94: but does not duplicate their functions. ! 95: .PP ! 96: This memorandum is divided into two parts. ! 97: First we give the rules for preparing ! 98: .I tbl ! 99: input; then some examples are shown. ! 100: The description of rules is precise but technical, and ! 101: the beginning user may prefer to read the examples first, ! 102: as they show some common table arrangements. ! 103: A section explaining how to invoke ! 104: .I tbl ! 105: precedes the examples. ! 106: To avoid repetition, henceforth read ! 107: .I troff ! 108: as ! 109: .I ! 110: ``troff ! 111: .R ! 112: or ! 113: .I ! 114: nroff.'' ! 115: .R ! 116: .ds . \^\s14.\s0 ! 117: .PP ! 118: The input to ! 119: .I ! 120: tbl ! 121: .R ! 122: is text for a document, with tables preceded by a ``\f(CW.TS\fP'' ! 123: (table start) ! 124: command and followed by a ``\f(CW.TE\fP'' ! 125: (table end) command. ! 126: .I Tbl ! 127: processes the tables, generating ! 128: .I troff ! 129: formatting commands, ! 130: and leaves the remainder of the text unchanged. ! 131: The ! 132: .CW .TS ! 133: and ! 134: .CW .TE ! 135: lines are copied, too, so that ! 136: .I troff ! 137: page layout macros ! 138: (such as the memo formatting macros|reference(latest msmacros)) can use these lines ! 139: to delimit and place tables as they see fit. ! 140: In particular, any arguments on the ! 141: .CW .TS ! 142: or ! 143: .CW .TE ! 144: lines ! 145: are copied but otherwise ignored, and may be used by document layout ! 146: macro commands. ! 147: .PP ! 148: The format of the input is as follows: ! 149: .DS ! 150: \&text ! 151: .CW .TS ! 152: \&\fItable\fR ! 153: .CW .TE ! 154: \&text ! 155: .CW .TS ! 156: \&\fItable\fR ! 157: .CW .TE ! 158: \&text ! 159: \&\&\*. \*. \*. ! 160: .DE ! 161: where the format of each table is as follows: ! 162: .DS ! 163: .CW .TS ! 164: \fIoptions \f(CW;\fR ! 165: \fIformat \f(CW.\fP ! 166: data ! 167: .CW .TE ! 168: .DE ! 169: .R ! 170: Each table is independent, and must contain formatting ! 171: information ! 172: followed by the data to be entered in the table. ! 173: The formatting information, which describes the ! 174: individual columns and rows of the table, may be preceded ! 175: by a few options that affect the entire table. ! 176: A detailed description of tables is given in the next section. ! 177: .NH ! 178: Input commands. ! 179: .PP ! 180: As indicated above, a table contains, first, global options, ! 181: then a format section describing the layout of the table ! 182: entries, and then the data to be printed. The format and data ! 183: are always required, but not the options. ! 184: The various parts of the table are entered as follows: ! 185: .NH 2 ! 186: Options ! 187: .PP ! 188: There may be a single line of options ! 189: affecting the whole table. ! 190: If present, this line must follow the ! 191: .CW .TS ! 192: line immediately ! 193: and must contain a list of option names ! 194: separated by spaces, tabs, or commas, and must be terminated by a semicolon. ! 195: The allowable options are: ! 196: .IP \f(CW~~center\fR 15 ! 197: center the table (default is left-adjust); ! 198: .IP \f(CW~~expand\fR ! 199: make the table as wide as the current line length; ! 200: .IP \f(CW~~box\fR ! 201: enclose the table in a box; ! 202: .IP \f(CW~~allbox\fR ! 203: enclose each item in the table in a box; ! 204: .IP \f(CW~~doublebox\fR ! 205: enclose the table in two boxes; ! 206: .Tm tab S ! 207: .IP \f(CW~~tab~\fR(\fIx\fR\^) ! 208: use \fIx\fR instead of tab to separate data items. ! 209: .IP \f(CW~~linesize(\fIn\fP)\fR ! 210: set lines or rules (e.g. from \f(CWbox\fR\^) in \fIn\fR point type; ! 211: .Tm delim S ! 212: .IP \f(CW~~delim(\fIxy\fP)\fR ! 213: recognize \fIx\fR and \fIy\fR as the \fIeqn\fR delimiters. ! 214: .PP ! 215: .I Tbl ! 216: tries to keep boxed tables on one page by issuing ! 217: appropriate ! 218: .I troff ! 219: \&``need'' ! 220: .CW .ne ) ( ! 221: commands. ! 222: These requests are calculated from the number of lines in the tables, ! 223: and if there are spacing commands embedded in the input, these requests may be inaccurate; ! 224: use normal ! 225: .I troff ! 226: procedures, such as keep-release macros, in that case. ! 227: The user who must have a multi-page boxed table ! 228: should use macros designed for this purpose, ! 229: as explained below under `Usage.' ! 230: .NH 2 ! 231: Format ! 232: .PP ! 233: The format section of the table specifies the layout ! 234: of the columns. ! 235: Each line in this section corresponds to one line ! 236: of the table (except that the last line corresponds to all following ! 237: lines up to the next ! 238: .CW .T& , ! 239: if any \(em see below), ! 240: and each line contains a key-letter for each column ! 241: of the table. ! 242: It is good practice to separate the key letters for each ! 243: column by spaces or tabs. ! 244: Each key-letter is one of the following: ! 245: .cs B 25 ! 246: .IP "~~\f(CWL\fR~or~\f(CWl\fR" 10 ! 247: to indicate a left-adjusted column entry; ! 248: .IP "~~\f(CWR\fR~or~\f(CWr\fR ! 249: to indicate a right-adjusted column entry; ! 250: .IP "~~\f(CWC\fR~or~\f(CWc\fR ! 251: to indicate a centered column entry; ! 252: .IP "~~\f(CWN\fR~or~\f(CWn\fR ! 253: to indicate a numerical column entry, to be aligned with other ! 254: numerical entries so that the units digits of numbers line up; ! 255: .IP "~~\f(CWA\fR~or~\f(CWa\fR ! 256: to indicate an alphabetic subcolumn; ! 257: all corresponding entries are aligned on the left, and positioned ! 258: so that the widest is centered within the column (see ! 259: example on page 12); ! 260: .IP "~~\f(CWS\fR~or~\f(CWs\fR ! 261: to indicate a spanned heading, i.e. to indicate that the ! 262: entry from the previous column continues across this ! 263: column ! 264: (not allowed for the first column, obviously); or ! 265: .IP ~~\f(CW\s+4\v'6p'^\v'-6p'\s0\fR ! 266: to indicate a vertically spanned heading, i.e. to indicate that ! 267: the entry from the previous row continues down through this row. ! 268: (Not allowed for the first row of the table, obviously). ! 269: .cs B ! 270: .PP ! 271: When numerical alignment is specified, a location for the decimal ! 272: point is sought. The rightmost dot ! 273: .CW . ) ( ! 274: adjacent to a digit is used as a decimal point; if there is no ! 275: dot adjoining a digit, the rightmost digit is used as a units digit; ! 276: if no alignment is indicated, the item is centered in the column. ! 277: However, the special non-printing character string ! 278: .CW \e& ! 279: may be used ! 280: to override unconditionally dots ! 281: and digits, or to align alphabetic data; ! 282: this string lines up where a dot normally would, ! 283: and then disappears from the final output. ! 284: In the example below, the items shown at the left will be ! 285: aligned (in a numerical column) as shown on the right: ! 286: .KS ! 287: .TS ! 288: center; ! 289: l6 n. ! 290: 13 13 ! 291: 4\*.2 4\&\*.2 ! 292: 26\*.4\*.12 26\*.4\&\*.12 ! 293: abc abc ! 294: abc\e& abc\& ! 295: 43\e&3\*.22 43\&3\*.22 ! 296: 749\*.12 749\&\*.12 ! 297: .TE ! 298: .KE ! 299: .PP ! 300: \fBNote:\fR ! 301: If numerical data are used in the same column with wider ! 302: .CW L ! 303: or ! 304: .CW r ! 305: type table entries, the widest \fInumber\fR is centered relative ! 306: to the wider ! 307: .CW L ! 308: or ! 309: .CW r ! 310: items (\f(CWL\fR is used instead of \f(CWl\fR for readability; ! 311: they have the same meaning as key-letters). ! 312: Alignment within the numerical items is preserved. ! 313: This is similar to the behavior of ! 314: .CW a ! 315: type data, as explained above. ! 316: However, ! 317: alphabetic subcolumns (requested by the ! 318: .CW a ! 319: key-letter) ! 320: are always slightly indented relative to ! 321: .CW L ! 322: items; ! 323: if necessary, the column width is increased to force this. ! 324: This is not true for \f(CWn\fR type entries. ! 325: .PP ! 326: .ft BI ! 327: Warning: ! 328: .ft 1 ! 329: the \f(CWn\fR and \f(CWa\fR items should not be used in ! 330: the same column. ! 331: .PP ! 332: For readability, the key-letters describing each column should ! 333: be separated by spaces. ! 334: The end of the format section is indicated by a period. ! 335: The layout of the key-letters in the format section resembles ! 336: the layout of the actual data in the table. ! 337: Thus a simple format might appear as: ! 338: .P1 ! 339: c s s ! 340: l n n . ! 341: .P2 ! 342: which specifies a table of three columns. The first line ! 343: of the table contains a heading centered across all three ! 344: columns; each remaining line contains a left-adjusted item ! 345: in the first column followed by two columns of numerical ! 346: data. ! 347: A sample table in this format might be: ! 348: .br ! 349: .ne 6v ! 350: .br ! 351: .in +4 ! 352: .TS ! 353: c s s ! 354: l n n. ! 355: Overall title ! 356: Item-a 34.22 9.1 ! 357: Item-b 12.65 .02 ! 358: Items: c,d,e 23 5.8 ! 359: Total 69.87 14.92 ! 360: .TE ! 361: .in -4 ! 362: There are some additional features of the key-letter system: ! 363: .IP "\fI~~Horizontal lines~\fR" ! 364: \(em A key-letter may be replaced by ! 365: .CW _ ! 366: (underscore) to indicate ! 367: a horizontal line in place of the corresponding column entry, ! 368: or by ! 369: .CW = ! 370: to indicate a double horizontal line. ! 371: If an adjacent column contains a horizontal line, or if ! 372: there are vertical lines adjoining this column, ! 373: this horizontal line is extended to meet the nearby lines. ! 374: If any data entry is provided for this column, it is ignored and ! 375: a warning message is printed. ! 376: .QQ do the D(x) and M(x) to draw a line of 'x' characters. ! 377: .QQ D will draw divided lines, M merged lines. thus - is simplh M(\(ru) ! 378: .IP "\fI~~Vertical lines~\fR" ! 379: \(em A vertical bar may be placed between column key-letters. This will ! 380: cause a vertical line between the corresponding columns of the table. ! 381: A vertical bar to the left of the first key-letter ! 382: or to the right of the last one produces a line at the ! 383: edge of the table. ! 384: If two vertical bars appear between key-letters, a double vertical ! 385: line is drawn. ! 386: .IP "\fI~~Space between columns~\fR" ! 387: \(em A number may follow the key-letter. This indicates the amount of separation ! 388: between this column and the next column. ! 389: The number normally specifies the separation in ! 390: .I ens *. ! 391: .FS ! 392: * One en is about the width of the letter `n', or more precisely, ! 393: half the current type size measured in points (1 point = 1/72 inch). ! 394: .FE ! 395: If the ``expand'' option is used, then these numbers are multiplied ! 396: by a constant such that the table is as wide as the current line length. ! 397: The default column separation number is 3. ! 398: If the separation is changed the worst case (largest space requested) governs. ! 399: .IP "\fI~~Vertical spanning~\fR" ! 400: \(em Normally, vertically spanned items extending over several ! 401: rows of the table are centered in their vertical range. ! 402: If a key-letter is followed by ! 403: .CW t ! 404: or ! 405: .CW T , ! 406: any corresponding vertically spanned item ! 407: will begin at the top line of its range. ! 408: .IP "\fI~~Font changes~\fR" ! 409: \(em A key-letter may be followed by a string containing a font ! 410: name or number ! 411: preceded by the letter ! 412: .CW f ! 413: or ! 414: .CW F . ! 415: This indicates that the corresponding column should be in a different ! 416: font from the default font (usually Roman). ! 417: All font names are one or two letters; a one-letter font ! 418: name should be separated from whatever follows by a space or tab. ! 419: The single letters ! 420: .CW B , ! 421: .CW b , ! 422: .CW I , ! 423: and ! 424: .CW i ! 425: are shorter synonyms for ! 426: .CW fB ! 427: and ! 428: .CW fI ! 429: and refer to the bold and italic fonts in the current font family. ! 430: Font change commands given with the table entries ! 431: override these specifications. ! 432: .IP "\fI~~Point size changes~\fR" ! 433: \(em A key-letter may be followed by the letter ! 434: .CW p ! 435: or ! 436: .CW P ! 437: and a number to indicate the point size of the corresponding table entries. ! 438: The number may be a signed digit, in which case it is taken as ! 439: an increment or decrement ! 440: from the current point size. ! 441: If both a point size and a column separation value are given, ! 442: one or more blanks must separate them. ! 443: .IP "\fI~~Vertical spacing changes~\fR" ! 444: \(em A key-letter may be followed by the letter ! 445: .CW v ! 446: or ! 447: .CW V ! 448: and a number to indicate the vertical line spacing to be used ! 449: within a multi-line corresponding table entry. ! 450: The number may be a signed digit, in which case it is taken as an increment ! 451: or decrement from the current vertical spacing. ! 452: A column separation value must be separated by blanks or some other ! 453: specification from a vertical spacing request. ! 454: This request has no effect unless the corresponding table entry ! 455: is a text block (see below). ! 456: .IP "\fI~~Column width indication~\fR" ! 457: \(em A key-letter may be followed by the letter ! 458: .CW w ! 459: or ! 460: .CW W ! 461: and a width value in parentheses. ! 462: This width is used as a minimum column width. ! 463: If the largest element in the column is not as wide as the width value ! 464: given after the \f(CWw\fR, the largest element is assumed to be that wide. ! 465: If the largest element in the column is wider than the specified value, ! 466: its width is used. ! 467: The width is also used as a default line ! 468: length for included text blocks. ! 469: Normal ! 470: .I troff ! 471: units can be used to scale the width value; if none are used, ! 472: the default is ! 473: ens. ! 474: If the width specification is a unitless integer ! 475: the parentheses may be omitted. ! 476: If the width value is changed in a column, the \fIlast\fR one given controls. ! 477: .IP "\fI~~Equal width columns~\fR" ! 478: \(em A key-letter may be followed by the letter ! 479: .CW e ! 480: or ! 481: .CW E ! 482: to indicate equal width columns. ! 483: All columns whose ! 484: key-letters are followed by \f(CWe\fR or \f(CWE\fR are made the same width. ! 485: This permits the user to get a group of regularly spaced ! 486: columns. ! 487: .IP "\fI~~Staggered columns~\fR" ! 488: \(em A key-letter may be followed by the letter ! 489: .CW u ! 490: or ! 491: .CW U ! 492: to indicate that the corresponding entry is to be moved up one half line. ! 493: This makes it easy, for example, to have a column of differences ! 494: between numbers in an adjoining column. ! 495: The ! 496: .CW allbox ! 497: option does not work with staggered columns. ! 498: .IP "\fI~~Zero-width item~\fR" ! 499: \(em A key-letter may be followed by the letter ! 500: .CW z ! 501: or ! 502: .CW Z ! 503: to indicate that the corresponding ! 504: data item is to be ignored in calculating column widths. ! 505: This may be useful, for example, in allowing headings ! 506: to run across adjacent columns where spanned headings ! 507: would be inappropriate. ! 508: .IP "~~\fBNote:\fR~" ! 509: The order of the above features is immaterial; they need not be separated ! 510: by spaces, except as indicated above to avoid ambiguities involving ! 511: point size and font changes. Thus ! 512: a numerical column entry in italic font and 12 point type with a minimum ! 513: width of 2.5 inches and separated by 6 ens from the next column could ! 514: be specified as ! 515: .P1 ! 516: np12w(2.5i)fI 6 ! 517: .P2 ! 518: .IP "\fI~~Alternative notation~\fR" ! 519: \(em Instead of listing the format of successive lines of a table ! 520: on consecutive lines of the format section, ! 521: successive line formats may be given on the same line, separated ! 522: by commas, so that the format for the example ! 523: above might have been written: ! 524: .P1 ! 525: c s s, l n n . ! 526: .P2 ! 527: .IP "\fI~~Default~\fR" ! 528: \(em Column descriptors missing from the end ! 529: of a format line are assumed to be \f(CWL\fR. ! 530: The longest line in the format section, however, ! 531: defines the number of columns ! 532: in the table; ! 533: extra columns in the data are ignored silently. ! 534: .QQ put in the diagnostics. ! 535: .NH 2 ! 536: Data ! 537: .PP ! 538: The data for the table are typed after the format. ! 539: Normally, each table line is typed as one line of data. ! 540: Very long input lines can be broken: any line whose last character is ! 541: .CW \e ! 542: is combined with the following line (and the ! 543: .CW \e ! 544: vanishes). ! 545: The data for different columns (the table entries) are separated by tabs, ! 546: or by whatever character has been specified with the option ! 547: .CW tabs . ! 548: There are a few special cases: ! 549: .IP "\fI~~Troff commands within tables\fR~" ! 550: \(em An input line ! 551: beginning with a ! 552: .CW . ! 553: followed by anything ! 554: but a number is assumed to be a command to ! 555: .I troff ! 556: and is passed through unchanged, retaining its position in the table. ! 557: So, for example, vertical space within a table may be produced by ! 558: .CW .sp ! 559: commands ! 560: in the data. ! 561: ...... ! 562: .IP "\fI~~Full width horizontal lines\fR~" ! 563: \(em An input line ! 564: containing only ! 565: .CW _ ! 566: (underscore) ! 567: or ! 568: .CW = ! 569: (equal sign) is taken to be a single or double ! 570: line, respectively, extending the ! 571: full width ! 572: of the table. ! 573: .IP "\fI~~Single column horizontal lines\fR~" ! 574: \(em An input table entry ! 575: containing only the character $fat "\(ul" $ or \f(CW=\fR ! 576: is taken to be a single or double line extending ! 577: the full width of the column. ! 578: Such lines are extended to meet horizontal or vertical ! 579: lines adjoining this column. ! 580: To obtain these characters explicitly in a column, either ! 581: precede them by ! 582: .CW \e& ! 583: or ! 584: follow them by a space before the usual tab or newline. ! 585: .IP "\fI~~Short horizontal lines\fR~" ! 586: \(em An input table entry ! 587: containing only the string ! 588: .CW \e_ ! 589: is taken to be a single line as wide as the contents of ! 590: the column. It is not extended to meet ! 591: adjoining lines. ! 592: .IP "\fI~~Repeated characters\fR~" ! 593: \(em An input table entry ! 594: containing only a string of the form ! 595: .CW \eR \fIx\fR ! 596: where ! 597: .I x ! 598: is any character is replaced by repetitions of the character ! 599: .I x ! 600: as wide as the data in the column. ! 601: The sequence of ! 602: .I x 's ! 603: is not extended to meet adjoining columns. ! 604: .IP "\fI~~Vertically spanned items\fR~" ! 605: \(em An input table entry containing only the ! 606: character string ! 607: .CW \e^ ! 608: indicates that the table entry immediately ! 609: above spans downward over this row. It is equivalent ! 610: to a table format key-letter of ! 611: .CW ^ . ! 612: .IP "\fI~~Text blocks\fR~" ! 613: \(em In order to include a block of text as a table entry, ! 614: precede it by ! 615: .CW T{ ! 616: and follow ! 617: it by ! 618: .CW T} . ! 619: Thus the sequence ! 620: .P1 ! 621: \&\fR. . .\fP T{ ! 622: .I ! 623: block of ! 624: text ! 625: .CW ! 626: T}\fR . . . ! 627: .P2 ! 628: is the way to enter, as a single entry in the table, something ! 629: that cannot conveniently be typed as a simple string between ! 630: tabs. ! 631: Note that the ! 632: .CW T} ! 633: end delimiter must begin a line; ! 634: additional columns of data may follow after a tab on the same line. ! 635: .nr zy \n(zz+10 ! 636: See the example on page \n(zy for an illustration of included text blocks ! 637: .e1 aa \n(zy ! 638: in a table. ! 639: If more than fifty or so text blocks are used in a table, ! 640: various limits in the ! 641: .I troff ! 642: program are likely to be exceeded, ! 643: producing diagnostics such as `too many string/macro names' or `too many ! 644: number registers.' ! 645: .IP ! 646: Text blocks are pulled out from the table, processed separately by ! 647: .I troff , ! 648: and replaced in the table as a solid block. If no line length ! 649: is specified in the block of text ! 650: tself, or in the table format, ! 651: the default is to use ! 652: $ L times C / (N+1) $ ! 653: where $L$ is the current line length, ! 654: $C$ is the number of table columns spanned by the text, ! 655: and $N$ is the total number of columns in the table. ! 656: The other parameters (point size, font, etc.) used in setting the ! 657: block of text are those in effect at the beginning of the table (including ! 658: the effect of the ! 659: .CW .TS ! 660: macro) ! 661: and any table format specifications of size, spacing and font, ! 662: using the \f(CWp\fR, \f(CWv\fR and \f(CWf\fR modifiers to the column key-letters. ! 663: Commands within the text block itself are also recognized, of course. ! 664: However, ! 665: .I troff ! 666: commands within the table data but not within the text block ! 667: do not affect that block. ! 668: .br ! 669: .di RR ! 670: . this is going down a rathole ! 671: .EQ ! 672: delim off ! 673: .EN ! 674: .di ! 675: .rm RR ! 676: .IP "~~\fBWarnings:\fR~" ! 677: Although any number of lines may be present in a table, ! 678: only the first 200 lines are used in calculating ! 679: the widths of the various columns. ! 680: A multi-page table, ! 681: of course, may be arranged as several single-page tables ! 682: if this proves to be a problem. ! 683: Other difficulties with formatting may arise because, ! 684: in the calculation of column widths all table entries ! 685: are assumed to be in the font and size being used when ! 686: the ! 687: .CW .TS ! 688: command was encountered, except for font and size changes ! 689: indicated (a) in the table format section and (b) ! 690: within the table data (as in the entry ! 691: .CW \es+3\efIdata\efP\es0 ). ! 692: Therefore, although arbitrary ! 693: .I troff ! 694: requests may be sprinkled in a table, care must be taken ! 695: to avoid confusing the width calculations; ! 696: use requests such as ! 697: .CW .ps ! 698: with care. ! 699: .tr ~~ ! 700: .sp .5v ! 701: .NH 2 ! 702: Additional Command Lines ! 703: .PP ! 704: If the format of a table must be changed after ! 705: many similar lines, as with sub-headings or summarizations, the ! 706: .CW .T& ! 707: (table continue) ! 708: command can be used ! 709: to change column parameters. ! 710: The outline of such a table input is: ! 711: .DS ! 712: .ft CW ! 713: \&.TS ! 714: .ft I ! 715: \&options \f(CW;\fP ! 716: \&format \*. ! 717: \&data ! 718: \&\*. \*. \*. ! 719: .ft CW ! 720: \&.T& ! 721: .ft I ! 722: \&format \*. ! 723: \&data ! 724: .ft CW ! 725: \&.T& ! 726: .ft I ! 727: \&format \*. ! 728: \&data ! 729: .ft CW ! 730: \&.TE ! 731: .DE ! 732: .R ! 733: .nr zy \n(zz+9 ! 734: .nr zx \n(zz+12 ! 735: as in the examples on pages \n(zy and \n(zx. ! 736: .e1 ab \n(zy ! 737: .e1 ac \n(zx ! 738: Using this procedure, each table line can be close to its corresponding format line. ! 739: .sp 3p ! 740: .ft BI ! 741: Warning: ! 742: .ft R ! 743: It is not possible to change the number of columns, the space ! 744: between columns, the global options such as \fIbox,\fR ! 745: or the selection of columns to be made equal width. ! 746: Nor is ! 747: .CW .T& ! 748: recognized after the first 200 lines of a table. ! 749: .NH ! 750: Usage. ! 751: .PP ! 752: On ! 753: .UX ! 754: systems, ! 755: .I tbl ! 756: can be run on a simple table with the command ! 757: .P1 ! 758: tbl input-file | troff ! 759: .P2 ! 760: but ! 761: for more complicated use, where there are several input files, ! 762: and they contain equations and ! 763: .CW -ms ! 764: layout commands as well ! 765: as tables, the normal command would be ! 766: .P1 ! 767: tbl \fIfiles ...\fP | eqn | troff -ms ! 768: .P2 ! 769: and, of course, the usual options may be used on the ! 770: .I troff ! 771: and ! 772: .I eqn ! 773: commands. If any of the file names are ! 774: .CW - ! 775: the standard input is read at that point. ! 776: .PP ! 777: For the convenience of users employing line printers without ! 778: adequate driving tables or post-filters, there is a special ! 779: .CW -TX ! 780: command line option to ! 781: .I tbl ! 782: which produces output that does not have fractional line ! 783: motions in it. ! 784: .PP ! 785: Note that when ! 786: .I eqn ! 787: and ! 788: .I tbl ! 789: are used together on the same file, ! 790: .I tbl ! 791: should be used first. ! 792: If there are no equations within tables, ! 793: either order works, but it is usually faster ! 794: to run ! 795: .I tbl ! 796: first, since ! 797: .I eqn ! 798: normally produces a larger expansion of the input ! 799: than ! 800: .I tbl . ! 801: However, if there are equations within tables ! 802: (using the ! 803: .I delim ! 804: mechanism in ! 805: .I eqn ), ! 806: .I tbl ! 807: must be first or the output will be scrambled. ! 808: Users must also beware of using equations in ! 809: \f(CWn\fR-style columns; this is nearly always wrong, ! 810: since ! 811: .I tbl ! 812: attempts to split numerical format items into two parts and this ! 813: is not possible with equations. ! 814: The user can defend against this by giving the ! 815: .I delim(xx) ! 816: table option; ! 817: this prevents splitting of numerical columns within the delimiters. ! 818: For example, if the ! 819: .I eqn ! 820: delimiters ! 821: are ! 822: .I $$ , ! 823: giving ! 824: .I delim($$) ! 825: a numerical column such as ! 826: .CW "1245$+- 16$" ! 827: will be divided after 1245, not after 16. ! 828: .PP ! 829: .I Tbl ! 830: accepts up to about 35 columns, the exact number ! 831: depending on the availability ! 832: of number registers. ! 833: The user must avoid number register names used ! 834: by ! 835: .I tbl , ! 836: which include two-digit numbers from 31 to 97, ! 837: and strings of the form ! 838: .CW 4\fIx\fR, ! 839: .CW 5\fIx\fR, ! 840: .CW #\fIx\fR, ! 841: \fIx\f(CW+\fR, \fIx\f(CW|\fR, \f(CW^\fIx\fR, and \fIx\f(CW-\fR, ! 842: where ! 843: \fIx\fR is any lower case letter. ! 844: The names ! 845: .CW ## , ! 846: .CW #- , ! 847: and ! 848: .CW #^ ! 849: are also used in certain circumstances. ! 850: To conserve number register names, the ! 851: .CW n ! 852: and ! 853: .CW a ! 854: formats share a register; ! 855: hence the restriction above that they may not be used in the same column. ! 856: .PP ! 857: For aid in writing layout macros, ! 858: .I tbl ! 859: defines a number register ! 860: .CW TW ! 861: which is ! 862: the table width; it is defined by the time that the ! 863: .CW .TE ! 864: macro ! 865: is invoked and may be used in the expansion of that macro. ! 866: More importantly, to assist in laying out multi-page boxed tables ! 867: the macro T# is defined to produce the bottom lines and side lines of a boxed ! 868: table, and then invoked at its end. By use of this macro ! 869: in the page footer a multi-page table can be boxed. ! 870: In particular, the ! 871: .CW -ms ! 872: macros can be used to print a multi-page boxed table with a repeated heading ! 873: by giving the ! 874: argument ! 875: .CW H ! 876: to the ! 877: .CW .TS ! 878: macro. ! 879: If the table start macro is written ! 880: .P1 ! 881: \&\*.TS H ! 882: .P2 ! 883: a line of the form ! 884: .P1 ! 885: \&\*.TH ! 886: .P2 ! 887: must be given in the table after any table heading (or at the start if none). ! 888: Material up to the ! 889: .CW .TH ! 890: is placed at the top of each page of table; ! 891: the remaining lines in the table are placed on several pages as required. ! 892: Note that this is ! 893: .I not ! 894: a feature of ! 895: .I tbl , ! 896: but of the ! 897: .CW -ms ! 898: layout macros. ! 899: .FC ! 900: .1C ! 901: .NH ! 902: Examples. ! 903: .PP ! 904: Here are some examples illustrating features of ! 905: .I ! 906: tbl. ! 907: .R ! 908: .ds T \|\h'.4n'\v'-.2n'\s6\zT\s0\s10\v'.2n'\h'-.4n'\(ci\|\s0 ! 909: The symbol \*T in the input represents a tab character. ! 910: .de IN ! 911: .po \\n(POu ! 912: .sp |\\n(.hu ! 913: .sp ! 914: .NE \\$1 ! 915: .mk ! 916: .B ! 917: Input: ! 918: .R ! 919: .sp .5 ! 920: .nf ! 921: .in +3n ! 922: .. ! 923: .de OU ! 924: .br ! 925: .in -3n ! 926: .rt ! 927: .po +3i ! 928: .B ! 929: Output: ! 930: .R ! 931: .sp .5 ! 932: .. ! 933: .rm TS ! 934: .rm TE ! 935: .nf ! 936: .KS ! 937: .IN 2.5i ! 938: \&\*.TS ! 939: \&box; ! 940: \&c c c ! 941: \&l l r\*. ! 942: \&Fact\*TLocation\*TStatistic ! 943: \& ! 944: \&Largest state\*TAlaska\*T591,004 sq. mi. ! 945: \&Smallest state\*TRhode Island\*T1,212 sq. mi. ! 946: \&Longest river\*TMississippi-Missouri\*T3,710 mi. ! 947: \&Highest mountain\*TMount McKinley, AK\*T20,320 ft. ! 948: \&Lowest point\*TDeath Valley, CA\*T\-282 ft. ! 949: \&\*.TE ! 950: .OU ! 951: .TS ! 952: box; ! 953: c c c ! 954: l l r. ! 955: Fact Location Statistic ! 956: ! 957: Largest state Alaska 591,004 sq. mi. ! 958: Smallest state Rhode Island 1,212 sq. mi. ! 959: Longest river Mississippi-Missouri 3,710 mi. ! 960: Highest mountain Mount McKinley, AK 20,320 ft. ! 961: Lowest point Death Valley, CA \-282 ft. ! 962: .TE ! 963: .IN 2.8i ! 964: \&\*.TS ! 965: \&allbox; ! 966: \&c s s ! 967: \&c c c ! 968: \&n n n\*. ! 969: \&AT&T Common Stock ! 970: \&Year\*TPrice\*TDividend ! 971: \&1984\*T15-20\*T$1\*.20 ! 972: \&5\*T19-25\*T1\*.20 ! 973: \&6\*T21-28\*T1\*.20 ! 974: \&7\*T20-36\*T1\*.20 ! 975: \&8\*T24-30\*T1\*.20 ! 976: \&9\*T29-37\*T\*.30* ! 977: \&\*.TE ! 978: \&* (first quarter only) ! 979: .OU ! 980: .TS ! 981: allbox; ! 982: c s s ! 983: c c c ! 984: n n n. ! 985: AT&T Common Stock ! 986: Year Price Dividend ! 987: 1984 15-20 $1.20 ! 988: 5 19-25 1.20 ! 989: 6 21-28 1.20 ! 990: 7 20-36 1.20 ! 991: 8 24-30 1.20 ! 992: 9 29-37 .30* ! 993: .TE ! 994: * (first quarter only) ! 995: .KE ! 996: .BP ! 997: .KS ! 998: .IN 4i ! 999: \&\*.TS ! 1000: \&box; ! 1001: \&c s s ! 1002: \&c | c | c ! 1003: \&l | l | n\*. ! 1004: \&Major New York Bridges ! 1005: \&= ! 1006: \&Bridge\*TDesigner\*TLength ! 1007: \&\(ul ! 1008: \&Brooklyn\*TJ\*. A\*. Roebling\*T1595 ! 1009: \&Manhattan\*TG\*. Lindenthal\*T1470 ! 1010: \&Williamsburg\*TL\*. L\*. Buck\*T1600 ! 1011: \&\(ul ! 1012: \&Queensborough\*TPalmer &\*T1182 ! 1013: \&\*T Hornbostel ! 1014: \&\(ul ! 1015: \&\*T\*T1380 ! 1016: \&Triborough\*TO\*. H\*. Ammann\*T\(ul ! 1017: \&\*T\*T383 ! 1018: \&\(ul ! 1019: \&Bronx Whitestone\*TO\*. H\*. Ammann\*T2300 ! 1020: \&Throgs Neck\*TO\*. H\*. Ammann\*T1800 ! 1021: \&\(ul ! 1022: \&George Washington\*TO\*. H\*. Ammann\*T3500 ! 1023: \&\*.TE ! 1024: .OU ! 1025: .TS ! 1026: box; ! 1027: c s s ! 1028: c | c | c ! 1029: l | l | n. ! 1030: Major New York Bridges ! 1031: = ! 1032: Bridge Designer Length ! 1033: _ ! 1034: Brooklyn J. A. Roebling 1595 ! 1035: Manhattan G. Lindenthal 1470 ! 1036: Williamsburg L. L. Buck 1600 ! 1037: _ ! 1038: Queensborough Palmer & 1182 ! 1039: Hornbostel ! 1040: _ ! 1041: 1380 ! 1042: Triborough O. H. Ammann _ ! 1043: 383 ! 1044: _ ! 1045: Bronx Whitestone O. H. Ammann 2300 ! 1046: Throgs Neck O. H. Ammann 1800 ! 1047: _ ! 1048: George Washington O. H. Ammann 3500 ! 1049: .TE ! 1050: .IN 3.0i ! 1051: \&\*.TS ! 1052: \&c c ! 1053: \&np-2 | n | \*. ! 1054: \&\*TStack ! 1055: \&\*T\(ul ! 1056: \&1\*T46 ! 1057: \&\*T\(ul ! 1058: \&2\*T23 ! 1059: \&\*T\(ul ! 1060: \&3\*T15 ! 1061: \&\*T\(ul ! 1062: \&4\*T6\*.5 ! 1063: \&\*T\(ul ! 1064: \&5\*T2\*.1 ! 1065: \&\*T\(ul ! 1066: \&\*.TE ! 1067: .OU ! 1068: .TS ! 1069: c c ! 1070: np-2 | n |. ! 1071: Stack ! 1072: _ ! 1073: 1 46 ! 1074: _ ! 1075: 2 23 ! 1076: _ ! 1077: 3 15 ! 1078: _ ! 1079: 4 6.5 ! 1080: _ ! 1081: 5 2.1 ! 1082: _ ! 1083: .TE ! 1084: .KE ! 1085: .BP ! 1086: .KS ! 1087: .IN 2.5i ! 1088: \&\*.TS ! 1089: \&box; ! 1090: \&L L L ! 1091: \&L L \(ul ! 1092: \&L L | LB ! 1093: \&L L \(ul ! 1094: \&L L L\*. ! 1095: \&january\*Tfebruary\*Tmarch ! 1096: \&april\*Tmay ! 1097: \&june\*Tjuly\*TMonths ! 1098: \&august\*Tseptember ! 1099: \&october\*Tnovember\*Tdecember ! 1100: \&\*.TE ! 1101: .OU ! 1102: .TS ! 1103: box; ! 1104: L L L ! 1105: L L _ ! 1106: L L | LB ! 1107: L L _ ! 1108: L L L. ! 1109: january february march ! 1110: april may ! 1111: june july Months ! 1112: august september ! 1113: october november december ! 1114: .TE ! 1115: .IN 5.0i ! 1116: .e2 ab ! 1117: \&\*.FP helvetica ! 1118: \&\*.TS ! 1119: \&box; ! 1120: \&cf(CW s s s\*. ! 1121: \&Composition of Foods ! 1122: \&\(ul ! 1123: \&\*.T& ! 1124: \&c | c s s ! 1125: \&c | c s s ! 1126: \&c | c | c | c\*. ! 1127: \&Food\*TPercent by Weight ! 1128: \&\e^\*T\(ul ! 1129: \&\e^\*TProtein\*TFat\*TCarbo- ! 1130: \&\e^\*T\e^\*T\e^\*Thydrate ! 1131: \&\(ul ! 1132: \&\*.T& ! 1133: \&l | n | n | n\*. ! 1134: \&Apples\*T\*.4\*T\*.5\*T13\*.0 ! 1135: \&Halibut\*T18\*.4\*T5\*.2\*T\*. \*. \*. ! 1136: \&Lima beans\*T7\*.5\*T\*.8\*T22\*.0 ! 1137: \&Milk\*T3\*.3\*T4\*.0\*T5\*.0 ! 1138: \&Mushrooms\*T3\*.5\*T\*.4\*T6\*.0 ! 1139: \&Rye bread\*T9\*.0\*T\*.6\*T52\*.7 ! 1140: \&\*.TE ! 1141: \&\*.FP times ! 1142: .OU ! 1143: .FP helvetica ! 1144: .TS ! 1145: box; ! 1146: cBCW s s s. ! 1147: Composition of Foods ! 1148: _ ! 1149: .T& ! 1150: c |c s s ! 1151: c |c s s ! 1152: c |c |c |c. ! 1153: Food Percent by Weight ! 1154: \^ _ ! 1155: \^ Protein Fat Carbo- ! 1156: \^ \^ \^ hydrate ! 1157: _ ! 1158: .T& ! 1159: l |n |n |n. ! 1160: Apples .4 .5 13.0 ! 1161: Halibut 18.4 5.2 ... ! 1162: Lima beans 7.5 .8 22.0 ! 1163: Milk 3.3 4.0 5.0 ! 1164: Mushrooms 3.5 .4 6.0 ! 1165: Rye bread 9.0 .6 52.7 ! 1166: .TE ! 1167: .FP times ! 1168: .KE ! 1169: .BP ! 1170: .KS ! 1171: .IN 3.7i ! 1172: .e2 aa ! 1173: \&\*.TS ! 1174: \&allbox; ! 1175: \&cfI s s ! 1176: \&c cw(1i) cw(1i) ! 1177: \&lp9 lp9 lp9\*. ! 1178: \&New York Area Rocks ! 1179: \&Era\*TFormation\*TAge (years) ! 1180: \&Precambrian\*TReading Prong\*T>1 billion ! 1181: \&Paleozoic\*TManhattan Prong\*T400 million ! 1182: \&Mesozoic\*TT{ ! 1183: \&\*.na ! 1184: \&Newark Basin, incl\*. ! 1185: \&Stockton, Lockatong, and Brunswick ! 1186: \&formations; also Watchungs ! 1187: \&and Palisades\*. ! 1188: \&T}\*T200 million ! 1189: \&Cenozoic\*TCoastal Plain\*TT{ ! 1190: \&On Long Island 30,000 years; ! 1191: \&Cretaceous sediments redeposited ! 1192: \&by recent glaciation\*. ! 1193: \&\*.ad ! 1194: \&T} ! 1195: \&\*.TE ! 1196: .OU ! 1197: .fi ! 1198: .TS ! 1199: allbox; ! 1200: cfI s s ! 1201: c cw(1i) cw(1i) ! 1202: lp9 lp9 lp9. ! 1203: New York Area Rocks ! 1204: Era Formation Age (years) ! 1205: Precambrian Reading Prong >1 billion ! 1206: Paleozoic Manhattan Prong 400 million ! 1207: Mesozoic T{ ! 1208: .na ! 1209: Newark Basin, incl. ! 1210: Stockton, Lockatong, and Brunswick ! 1211: formations; also Watchungs ! 1212: and Palisades. ! 1213: T} 200 million ! 1214: Cenozoic Coastal Plain T{ ! 1215: On Long Island 30,000 years; ! 1216: Cretaceous sediments redeposited ! 1217: by recent glaciation. ! 1218: .ad ! 1219: T} ! 1220: .TE ! 1221: .IN 2i ! 1222: \&\*.EQ ! 1223: \&delim $$ ! 1224: \&\*.EN ! 1225: .sp ! 1226: \&\*. \*. \*. ! 1227: .sp ! 1228: \&\*.TS ! 1229: \&doublebox; ! 1230: \&c c ! 1231: \&l l\*. ! 1232: \&Name\*TDefinition ! 1233: \&\*.sp ! 1234: \&\*.vs +2p ! 1235: \&Gamma\*T$GAMMA (z) = int sub 0 sup inf t sup {z-1} e sup -t dt$ ! 1236: \&Sine\*T$sin (x) = 1 over 2i ( e sup ix - e sup -ix )$ ! 1237: \&Error\*T$ roman erf (z) = 2 over sqrt pi int sub 0 sup z e sup {-t sup 2} dt$ ! 1238: \&Bessel\*T$ J sub 0 (z) = 1 over pi int sub 0 sup pi cos ( z sin theta ) d theta $ ! 1239: \&Zeta\*T$ zeta (s) = sum from k=1 to inf k sup -s ~~( Re~s > 1)$ ! 1240: \&\*.vs -2p ! 1241: \&\*.TE ! 1242: .di qq ! 1243: .EQ ! 1244: delim $$ ! 1245: .EN ! 1246: .di ! 1247: .rm qq ! 1248: .rs ! 1249: .OU ! 1250: .TS ! 1251: doublebox; ! 1252: c c ! 1253: l l. ! 1254: Name Definition ! 1255: .sp ! 1256: .vs +2p ! 1257: Gamma $GAMMA (z) = int sub 0 sup inf t sup {z-1} e sup -t dt$ ! 1258: Sine $sin (x) = 1 over 2i ( e sup ix - e sup -ix )$ ! 1259: Error $ roman erf (z) = 2 over sqrt pi int sub 0 sup z e sup {-t sup 2} dt$ ! 1260: Bessel $ J sub 0 (z) = 1 over pi int sub 0 sup pi cos ( z sin theta ) d theta $ ! 1261: Zeta $ zeta (s) = sum from k=1 to inf k sup -s ~~( Re~s > 1)$ ! 1262: .vs -2p ! 1263: .TE ! 1264: .KE ! 1265: .KS ! 1266: .ds : \|:\| ! 1267: .IN 2i ! 1268: \&\*.TS ! 1269: \&box, tab(\*:); ! 1270: \&cb s s s s ! 1271: \&cp-2 s s s s ! 1272: \&c |\|| c | c | c | c ! 1273: \&c |\|| c | c | c | c ! 1274: \&r2 |\|| n2 | n2 | n2 | n\*. ! 1275: \&Readability of Text ! 1276: \&Line Width and Leading for 10-Point Type ! 1277: \&= ! 1278: \&Line\*:Set\*:1-Point\*:2-Point\*:4-Point ! 1279: \&Width\*:Solid\*:Leading\*:Leading\*:Leading ! 1280: \&_ ! 1281: \&9 Pica\*:\e-9\*.3\*:\e-6\*.0\*:\e-5\*.3\*:\e-7\*.1 ! 1282: \&14 Pica\*:\e-4\*.5\*:\e-0\*.6\*:\e-0\*.3\*:\e-1\*.7 ! 1283: \&19 Pica\*:\e-5\*.0\*:\e-5\*.1\*: 0\*.0\*:\e-2\*.0 ! 1284: \&31 Pica\*:\e-3\*.7\*:\e-3\*.8\*:\e-2\*.4\*:\e-3\*.6 ! 1285: \&43 Pica\*:\e-9\*.1\*:\e-9\*.0\*:\e-5\*.9\*:\e-8\*.8 ! 1286: \&\*.TE ! 1287: .OU ! 1288: .TS ! 1289: box, tab(:); ! 1290: cb s s s s ! 1291: cp-2 s s s s ! 1292: c ||c |c |c |c ! 1293: c ||c |c |c |c ! 1294: r2 ||n2 |n2 |n2 |n. ! 1295: Readability of Text ! 1296: Line Width and Leading for 10-Point Type ! 1297: = ! 1298: Line:Set:1-Point:2-Point:4-Point ! 1299: Width:Solid:Leading:Leading:Leading ! 1300: _ ! 1301: 9 Pica:\-9.3:\-6.0:\-5.3:\-7.1 ! 1302: 14 Pica:\-4.5:\-0.6:\-0.3:\-1.7 ! 1303: 19 Pica:\-5.0:\-5.1: 0.0:\-2.0 ! 1304: 31 Pica:\-3.7:\-3.8:\-2.4:\-3.6 ! 1305: 43 Pica:\-9.1:\-9.0:\-5.9:\-8.8 ! 1306: .TE ! 1307: .KE ! 1308: .KS ! 1309: .IN 7i ! 1310: .e2 ac ! 1311: \&\*.TS ! 1312: \&c s ! 1313: \&cip-2 s ! 1314: \&l n ! 1315: \&a n\*. ! 1316: \&Some London Transport Statistics ! 1317: \&(Year 1964) ! 1318: \&Railway route miles\*T244 ! 1319: \&Tube\*T66 ! 1320: \&Sub-surface\*T22 ! 1321: \&Surface\*T156 ! 1322: \&\*.sp \*.5 ! 1323: \&\*.T& ! 1324: \&l r ! 1325: \&a r\*. ! 1326: \&Passenger traffic \e- railway ! 1327: \&Journeys\*T674 million ! 1328: \&Average length\*T4\*.55 miles ! 1329: \&Passenger miles\*T3,066 million ! 1330: \&\*.T& ! 1331: \&l r ! 1332: \&a r\*. ! 1333: \&Passenger traffic \e- road ! 1334: \&Journeys\*T2,252 million ! 1335: \&Average length\*T2\*.26 miles ! 1336: \&Passenger miles\*T5,094 million ! 1337: \&\*.T& ! 1338: \&l n ! 1339: \&a n\*. ! 1340: \&\*.sp \*.5 ! 1341: \&Vehicles\*T12,521 ! 1342: \&Railway motor cars\*T2,905 ! 1343: \&Railway trailer cars\*T1,269 ! 1344: \&Total railway\*T4,174 ! 1345: \&Omnibuses\*T8,347 ! 1346: \&\*.T& ! 1347: \&l n ! 1348: \&a n\*. ! 1349: \&\*.sp \*.5 ! 1350: \&Staff\*T73,739 ! 1351: \&Administrative, etc\*.\*T5,582 ! 1352: \&Civil engineering\*T5,134 ! 1353: \&Electrical eng\*.\*T1,714 ! 1354: \&Mech\*. eng\*. \e- railway\*T4,310 ! 1355: \&Mech\*. eng\*. \e- road\*T9,152 ! 1356: \&Railway operations\*T8,930 ! 1357: \&Road operations\*T35,946 ! 1358: \&Other\*T2,971 ! 1359: \&\*.TE ! 1360: .OU ! 1361: .TS ! 1362: c s ! 1363: cip-2 s ! 1364: l n ! 1365: a n. ! 1366: Some London Transport Statistics ! 1367: (Year 1964) ! 1368: Railway route miles 244 ! 1369: Tube 66 ! 1370: Sub-surface 22 ! 1371: Surface 156 ! 1372: .sp .5 ! 1373: .T& ! 1374: l r ! 1375: a r. ! 1376: Passenger traffic \(mi railway ! 1377: Journeys 674 million ! 1378: Average length 4.55 miles ! 1379: Passenger miles 3,066 million ! 1380: .T& ! 1381: l r ! 1382: a r. ! 1383: Passenger traffic \(mi road ! 1384: Journeys 2,252 million ! 1385: Average length 2.26 miles ! 1386: Passenger miles 5,094 million ! 1387: .T& ! 1388: l n ! 1389: a n. ! 1390: .sp .5 ! 1391: Vehicles 12,521 ! 1392: Railway motor cars 2,905 ! 1393: Railway trailer cars 1,269 ! 1394: Total railway 4,174 ! 1395: Omnibuses 8,347 ! 1396: .T& ! 1397: l n ! 1398: a n. ! 1399: .sp .5 ! 1400: Staff 73,739 ! 1401: Administrative, etc. 5,582 ! 1402: Civil engineering 5,134 ! 1403: Electrical eng. 1,714 ! 1404: Mech. eng. \(mi railway 4,310 ! 1405: Mech. eng. \(mi road 9,152 ! 1406: Railway operations 8,930 ! 1407: Road operations 35,946 ! 1408: Other 2,971 ! 1409: .TE ! 1410: .KE ! 1411: .KS ! 1412: .po \n(POu ! 1413: .sp |\n(.hu ! 1414: .de IN ! 1415: .sp ! 1416: .ne 1i ! 1417: .B ! 1418: Input: ! 1419: .R ! 1420: .sp .5 ! 1421: .in +3n ! 1422: .nf ! 1423: .. ! 1424: .de OU ! 1425: .sp ! 1426: .in -3n ! 1427: .ne 1i ! 1428: .B ! 1429: Output: ! 1430: .R ! 1431: .sp .5 ! 1432: .. ! 1433: .ns ! 1434: .EQ ! 1435: delim off ! 1436: .EN ! 1437: .IN ! 1438: .ps 8 ! 1439: .vs 10 ! 1440: \&\*.TS ! 1441: center box; ! 1442: \&cBp+2 s s ! 1443: \&cB s s ! 1444: \&li l lb\*. ! 1445: \&Crisis and Emergency Numbers ! 1446: \&\*.sp ! 1447: \&24-Hour Hotlines ! 1448: \&Abuse\*TChild Abuse Reports\*T1-800-792-8610 ! 1449: \&\*.sp \*.5 ! 1450: \&Alcohol\*TAla-Call\*T1-800-322-5525 ! 1451: \&Alcohol\*TOverdose\*T1-800-962-1253 ! 1452: \&\*.sp \*.5 ! 1453: \&Drug\*TDrug Hotline\*T1-800-225-0196 ! 1454: \&Drug\*TOverdose\*T1-800-962-1253 ! 1455: \&Drug\*TNarcotics Anonymous\*T1-800-992-0401 ! 1456: \&\*.sp \*.5 ! 1457: \&Poison\*TPoison Hotline\*T1-800-962-1253 ! 1458: \&\*.sp \*.5 ! 1459: \&Runaways\*THotline\*T1-800-231-6946 ! 1460: \&Runaways\*TCovenant House\*T1-800-999-9999 ! 1461: \&\*.sp \*.5 ! 1462: \&\*.T& ! 1463: \&cB s s ! 1464: \&li l lb\*. ! 1465: \&Other Hotlines ! 1466: \&AIDS\*TNational AIDS Hotline\*T1-800-342-AIDS ! 1467: \&AIDS\*TNJ AIDS Hotline\*T1-800-624-2377 ! 1468: \&Drug\*TCocaine\*T1-800-COCAINE ! 1469: \&Eating\*TEating Disorders Hotline\*T1-800-624-2268 ! 1470: \&Support\*TSupport Group Information\*T1-800-367-6274 ! 1471: \&VD\*TVD Information\*T1-800-227-8922 ! 1472: \&\*.TE ! 1473: .ne 3.2i ! 1474: .ps 10 ! 1475: .vs 12 ! 1476: .OU ! 1477: .ps 8 ! 1478: .vs 10p ! 1479: .TS ! 1480: center box; ! 1481: cBp+2 s s ! 1482: cB s s ! 1483: li l lb. ! 1484: Crisis and Emergency Numbers ! 1485: .sp .5 ! 1486: 24-Hour Hotlines ! 1487: Abuse Child Abuse Reports 1-800-792-8610 ! 1488: .sp .5 ! 1489: Alcohol Ala-Call 1-800-322-5525 ! 1490: Alcohol Overdose 1-800-962-1253 ! 1491: .sp .5 ! 1492: Drug Drug Hotline 1-800-225-0196 ! 1493: Drug Overdose 1-800-962-1253 ! 1494: Drug Narcotics Anonymous 1-800-992-0401 ! 1495: .sp .5 ! 1496: Poison Poison Hotline 1-800-962-1253 ! 1497: .sp .5 ! 1498: Runaways Hotline 1-800-231-6946 ! 1499: Runaways Covenant House 1-800-999-9999 ! 1500: .sp .5 ! 1501: .T& ! 1502: cB s s ! 1503: li l lb. ! 1504: Other Hotlines ! 1505: AIDS National AIDS Hotline 1-800-342-AIDS ! 1506: AIDS NJ AIDS Hotline 1-800-624-2377 ! 1507: Drug Cocaine 1-800-COCAINE ! 1508: Eating Eating Disorders Hotline 1-800-624-2268 ! 1509: Support Support Group Information 1-800-367-6274 ! 1510: VD VD Information 1-800-227-8922 ! 1511: .TE ! 1512: .ps 10 ! 1513: .vs 12p ! 1514: .sp ! 1515: .fi ! 1516: This is a paragraph of normal text placed here only to indicate where ! 1517: the left and right margins are. In this way the reader can judge ! 1518: the appearance of centered tables or expanded tables, and observe ! 1519: how such tables are formatted. ! 1520: .KE ! 1521: .KS ! 1522: .IN ! 1523: .ps 8 ! 1524: .vs 10 ! 1525: \&\*.TS ! 1526: \&expand; ! 1527: \&c s s s ! 1528: \&c c c c ! 1529: \&l l n n\*. ! 1530: \&New Jersey Bell Labs Locations ! 1531: \&Name\*TAddress\*TArea Code\*TPhone ! 1532: \&Chester\*TChester, NJ 07930\*T201\*T879-3400 ! 1533: \&Corporate Park III\*TSomerset, NJ 08873\*T201\*T271-2300 ! 1534: \&Crawford Hill\*THolmdel, NJ 07733\*T201\*T888-7000 ! 1535: \&ERC\*THopewell Township, NJ 08525\*T609\*T639-1234 ! 1536: \&Freehold\*TFreehold, NJ 07728\*T201\*T577-5000 ! 1537: \&Headquarters Plaza\*TMorristown, NJ 07960\*T201\*T898-6000 ! 1538: \&Holmdel\*THolmdel, NJ 07733\*T201\*T834-1000 ! 1539: \&Knightsbridge\*TPiscataway, NJ 08854\*T201\*T457-2000 ! 1540: \&Liberty Corner\*TWarren, NJ 07060\*T201\*T580-4000 ! 1541: \&Lincroft\*TLincroft, NJ 07738\*T201\*T576-4000 ! 1542: \&MDC\*THopewell Township, NJ 08525\*T609\*T639-6100 ! 1543: \&Middletown\*TMiddletown, NJ 07748\*T201\*T957-2000 ! 1544: \&Morris\*TMorristown, NJ 07960\*T201\*T898-1000 ! 1545: \&Murray Hill\*TMurray Hill, NJ 07974\*T201\*T582-3000 ! 1546: \&Parsippany\*TParsippany, NJ 07054\*T201\*T299-3000 ! 1547: \&Patriots Plaza\*TMorristown, NJ 07960\*T201\*T829-7200 ! 1548: \&Red Hill\*TMiddletown, NJ 07748\*T201\*T949-3000 ! 1549: \&Short Hills\*TShort Hills, NJ 07078\*T201\*T564-2000 ! 1550: \&Somerset\*TSomerset, NJ 08873\*T201\*T560-1300 ! 1551: \&Summit\*TSummit, NJ 07901\*T201\*T522-6555 ! 1552: \&Warren Service Center\*TWarren, NJ 07060\*T201\*T756-1527 ! 1553: \&West Long Branch\*TWest Long Branch, NJ 07764\*T201\*T870-7000 ! 1554: \&Whippany\*TWhippany, NJ 07981\*T201\*T386-3000 ! 1555: \&Woodhollow\*TParsippany, NJ 07054\*T201\*T581-3000 ! 1556: \&\*.TE ! 1557: .ne 1.3i ! 1558: .OU ! 1559: .TS ! 1560: expand; ! 1561: c s s s ! 1562: c c c c ! 1563: l l n n. ! 1564: New Jersey Bell Labs Locations ! 1565: Name Address Area Code Phone ! 1566: Chester Chester, NJ 07930 201 879-3400 ! 1567: Corporate Park III Somerset, NJ 08873 201 271-2300 ! 1568: Crawford Hill Holmdel, NJ 07733 201 888-7000 ! 1569: ERC Hopewell Township, NJ 08525 609 639-1234 ! 1570: Freehold Freehold, NJ 07728 201 577-5000 ! 1571: Headquarters Plaza Morristown, NJ 07960 201 898-6000 ! 1572: Holmdel Holmdel, NJ 07733 201 834-1000 ! 1573: Knightsbridge Piscataway, NJ 08854 201 457-2000 ! 1574: Liberty Corner Warren, NJ 07060 201 580-4000 ! 1575: Lincroft Lincroft, NJ 07738 201 576-4000 ! 1576: MDC Hopewell Township, NJ 08525 609 639-6100 ! 1577: Middletown Middletown, NJ 07748 201 957-2000 ! 1578: Morris Morristown, NJ 07960 201 898-1000 ! 1579: Murray Hill Murray Hill, NJ 07974 201 582-3000 ! 1580: Parsippany Parsippany, NJ 07054 201 299-3000 ! 1581: Patriots Plaza Morristown, NJ 07960 201 829-7200 ! 1582: Red Hill Middletown, NJ 07748 201 949-3000 ! 1583: Short Hills Short Hills, NJ 07078 201 564-2000 ! 1584: Somerset Somerset, NJ 08873 201 560-1300 ! 1585: Summit Summit, NJ 07901 201 522-6555 ! 1586: Warren Service Center Warren, NJ 07060 201 756-1527 ! 1587: West Long Branch West Long Branch, NJ 07764 201 870-7000 ! 1588: Whippany Whippany, NJ 07981 201 386-3000 ! 1589: Woodhollow Parsippany, NJ 07054 201 581-3000 ! 1590: .TE ! 1591: .KE ! 1592: .br ! 1593: .ps 8 ! 1594: .vs 9p ! 1595: .ne 5i ! 1596: .IN ! 1597: \&\*.TS ! 1598: \&box; ! 1599: \&cb s s s ! 1600: \&c | c | c s ! 1601: \<iw(1i) | ltw(2i) | lp8 | lw(1\*.6i)p8\*. ! 1602: \&Some Interesting Places ! 1603: \&_ ! 1604: \&Name\*TDescription\*TPractical Information ! 1605: \&_ ! 1606: \&T{ ! 1607: \&American Museum of Natural History ! 1608: \&T}\*TT{ ! 1609: \&The collections fill 11\*.5 acres (Michelin) or 25 acres (MTA) ! 1610: \&of exhibition halls on four floors\*. There is a full-sized replica ! 1611: \&of a blue whale and the world's largest star sapphire (stolen in 1964)\*. ! 1612: \&T}\*THours\*T10-5:45 S M Tu Th, 10-9 W Sat\*. Sun\*. ! 1613: \&\e^\*T\e^\*TLocation\*TT{ ! 1614: \&Central Park West & 79th St\*. ! 1615: \&T} ! 1616: \&\e^\*T\e^\*TAdmission\*TDonation: $1\*.00 asked ! 1617: \&\e^\*T\e^\*TSubway\*TAA to 81st St\*. ! 1618: \&\e^\*T\e^\*TTelephone\*T212-769-5100 ! 1619: \&_ ! 1620: \&Bronx Zoo\*TT{ ! 1621: \&About a mile long and \*.6 mile wide, this is the largest zoo in America\*. ! 1622: \&A lion eats 18 pounds ! 1623: \&of meat a day while a sea lion eats 15 pounds of fish\*. ! 1624: \&T}\*THours\*TT{ ! 1625: \&10-5 M-Sat, to 5:30 Sun ! 1626: \&T} ! 1627: \&\e^\*T\e^\*TLocation\*TT{ ! 1628: \&185th St\*. & Southern Blvd, the Bronx\*. ! 1629: \&T} ! 1630: \&\e^\*T\e^\*TAdmission\*T$3.75/1.50 adult/children; Tu,We,Th donation ! 1631: \&\e^\*T\e^\*TSubway\*T2, 5 to East Tremont Ave\*. ! 1632: \&\e^\*T\e^\*TTelephone\*T212-367-1010 ! 1633: \&_ ! 1634: \&Brooklyn Museum\*TT{ ! 1635: \&Five floors of galleries contain American and ancient art\*. ! 1636: \&There are American period rooms and architectural ornaments saved ! 1637: \&from wreckers, such as a classical figure from Pennsylvania Station\*. ! 1638: \&T}\*THours\*T10-5, closed Tues ! 1639: \&\e^\*T\e^\*TLocation\*TT{ ! 1640: \&Eastern Parkway & Washington Ave\*., Brooklyn\*. ! 1641: \&T} ! 1642: \&\e^\*T\e^\*TAdmission\*TFree ! 1643: \&\e^\*T\e^\*TSubway\*T2,3 to Eastern Parkway\*. ! 1644: \&\e^\*T\e^\*TTelephone\*T212-367-1010 ! 1645: \&_ ! 1646: \&T{ ! 1647: \&New-York Historical Society ! 1648: \&T}\*TT{ ! 1649: \&All the original paintings for Audubon's ! 1650: \&\*.I ! 1651: \&Birds of America ! 1652: \&\*.R ! 1653: \&are here, as are exhibits of American decorative arts, New York history, ! 1654: \&Hudson River school paintings, carriages, and glass paperweights\*. ! 1655: \&T}\*THours\*TT{ ! 1656: \&Tues-Sun, 10-5 ! 1657: \&T} ! 1658: \&\e^\*T\e^\*TLocation\*TT{ ! 1659: \&Central Park West & 77th St\*. ! 1660: \&T} ! 1661: \&\e^\*T\e^\*TAdmission\*TFree ! 1662: \&\e^\*T\e^\*TSubway\*TAA to 81st St\*. ! 1663: \&\e^\*T\e^\*TTelephone\*T212-873-3400 ! 1664: \&\*.TE ! 1665: .BP ! 1666: .ps \n(PS ! 1667: .vs \n(VSp ! 1668: .OU ! 1669: .fi ! 1670: .rr 10 11 12 13 14 15 16 17 18 19 20 21 22 98 99 ! 1671: .rr 60 61 62 63 64 65 66 67 68 69 70 ! 1672: .rr 43 44 45 46 47 48 49 50 51 52 53 ! 1673: .rr 83 84 85 86 87 88 89 90 91 92 93 ! 1674: .rr #a ! 1675: .rr #b ! 1676: .rr #c ! 1677: .rr #d ! 1678: .rr #e ! 1679: .rr YY ! 1680: .rr OJ ! 1681: .rr P ! 1682: .rr AV CW GW DW FL KN SJ A1 A2 A3 I1 I2 I3 ! 1683: .in 0 ! 1684: .hy 1 ! 1685: .1C ! 1686: .TS ! 1687: box; ! 1688: cb s s s ! 1689: c | c | c s ! 1690: ltiw(1i) | ltw(2i) | lp8| lw(1.6i)p8. ! 1691: Some Interesting Places ! 1692: _ ! 1693: Name Description Practical Information ! 1694: _ ! 1695: T{ ! 1696: American Museum of Natural History ! 1697: T} T{ ! 1698: The collections fill 11.5 acres (Michelin) or 25 acres (MTA) ! 1699: of exhibition halls on four floors. There is a full-sized replica ! 1700: of a blue whale and the world's largest star sapphire (stolen in 1964). ! 1701: T} Hours 10-5:45 S M Tu Th, 10-9 W Sat. Sun. ! 1702: \^ \^ Location T{ ! 1703: Central Park West & 79th St. ! 1704: T} ! 1705: \^ \^ Admission Donation: $1.00 asked ! 1706: \^ \^ Subway AA to 81st St. ! 1707: \^ \^ Telephone 212-769-5100 ! 1708: _ ! 1709: Bronx Zoo T{ ! 1710: About a mile long and .6 mile wide, this is the largest zoo in America. ! 1711: A lion eats 18 pounds ! 1712: of meat a day while a sea lion eats 15 pounds of fish. ! 1713: T} Hours T{ ! 1714: 10-5 M-Sat, to 5:30 Sun ! 1715: T} ! 1716: \^ \^ Location T{ ! 1717: 185th St. & Southern Blvd, the Bronx. ! 1718: T} ! 1719: \^ \^ Admission $3.75/1.50 adult/children; Tu,We,Th donation ! 1720: \^ \^ Subway 2, 5 to East Tremont Ave. ! 1721: \^ \^ Telephone 212-367-1010 ! 1722: _ ! 1723: Brooklyn Museum T{ ! 1724: Five floors of galleries contain American and ancient art. ! 1725: There are American period rooms and architectural ornaments saved ! 1726: from wreckers, such as a classical figure from Pennsylvania Station. ! 1727: T} Hours 10-5, closed Tues ! 1728: \^ \^ Location T{ ! 1729: Eastern Parkway & Washington Ave., Brooklyn. ! 1730: T} ! 1731: \^ \^ Admission Free ! 1732: \^ \^ Subway 2,3 to Eastern Parkway. ! 1733: \^ \^ Telephone 718-638-5000 ! 1734: _ ! 1735: T{ ! 1736: New-York Historical Society ! 1737: T} T{ ! 1738: All the original paintings for Audubon's ! 1739: .I ! 1740: Birds of America ! 1741: .R ! 1742: are here, as are exhibits of American decorative arts, New York history, ! 1743: Hudson River school paintings, carriages, and glass paperweights. ! 1744: T} Hours T{ ! 1745: Tues-Sun, 10-5 ! 1746: T} ! 1747: \^ \^ Location T{ ! 1748: Central Park West & 77th St. ! 1749: T} ! 1750: \^ \^ Admission Free ! 1751: \^ \^ Subway AA to 81st St. ! 1752: \^ \^ Telephone 212-873-3400 ! 1753: .TE ! 1754: .SP ! 1755: .2C ! 1756: .rr 40 ! 1757: .rr 41 ! 1758: .rr 42 ! 1759: .rr 43 ! 1760: .rr 80 ! 1761: .rr 81 ! 1762: .rr 82 ! 1763: .rr 83 ! 1764: .rr 60 ! 1765: .rr 61 ! 1766: .rr 62 ! 1767: .rr 63 ! 1768: .rr #a ! 1769: .rr #b ! 1770: .rr #c ! 1771: .rr #d ! 1772: .rr #e ! 1773: .rr ## ! 1774: .fi ! 1775: .FC ! 1776: .SP ! 1777: .2C ! 1778: .NH ! 1779: Acknowledgments. ! 1780: .PP ! 1781: Many thanks are due to J. C. Blinn, who has done a large amount ! 1782: of testing and assisted with the design of the program. ! 1783: He has also written many of the more intelligible sentences ! 1784: in this document and helped edit all of it. ! 1785: All phototypesetting programs on ! 1786: .UX ! 1787: are dependent on the work ! 1788: of the late J. F. Ossanna, whose assistance with this program in particular ! 1789: had been most helpful. ! 1790: This program is patterned on a table formatter originally ! 1791: written by J. F. Gimpel. ! 1792: The assistance of ! 1793: T. A. Dolotta, B. W. Kernighan, and J. N. Sturman ! 1794: is gratefully acknowledged. ! 1795: .NH ! 1796: References. ! 1797: .LP ! 1798: |reference_placement ! 1799: .FC ! 1800: .1C ! 1801: .BP ! 1802: .NH ! 1803: List of Tbl Command Characters and Words ! 1804: .LP ! 1805: .EQ ! 1806: delim $$ ! 1807: gfont roman ! 1808: .EN ! 1809: .TS ! 1810: center; ! 1811: cI cI cI ! 1812: aFCW3 l n. ! 1813: Command Meaning Section ! 1814: a A Alphabetic subcolumn 2.2 ! 1815: allbox Draw box around all items 2.1 ! 1816: b B Boldface item 2.2 ! 1817: box Draw box around table 2.1 ! 1818: c C Centered column 2.2 ! 1819: center Center table in page 2.1 ! 1820: delim(\fIxy\|\fP) Set \fIeqn\fP delimiters 2.1 ! 1821: doublebox Doubled box around table 2.1 ! 1822: e E Equal width columns 2.2 ! 1823: expand Make table full line width 2.1 ! 1824: f F Font change 2.2 ! 1825: i I Italic item 2.2 ! 1826: l L Left adjusted column 2.2 ! 1827: linesize(\fIn\|\fP)\ \ Set point size for drawing lines 2.1 ! 1828: n N Numerical column 2.2 ! 1829: \fInnn\fR Column separation 2.2 ! 1830: p P Point size change 2.2 ! 1831: r R Right adjusted column 2.2 ! 1832: s S Spanned item 2.2 ! 1833: t T Vertical spanning at top 2.2 ! 1834: tab(\fIx\|) Change data separator character 2.1 ! 1835: T{ T} Text block 2.3 ! 1836: u U Staggered columns 2.2 ! 1837: v V Vertical spacing change 2.2 ! 1838: w W Minimum width value 2.2 ! 1839: z Z Ignore width of data in this column 2.2 ! 1840: \&.\fIxx\fR Included \fItroff\fR command 2.3 ! 1841: | Vertical line 2.2 ! 1842: || Double vertical line 2.2 ! 1843: ^ Vertical span 2.2 ! 1844: \e^ Vertical span 2.3 ! 1845: \&= Double horizontal line 2.3 ! 1846: \&_ Horizontal line 2.3 ! 1847: \e_ Short horizontal line 2.3 ! 1848: \&\eR\fIx\fR Repeat character 2.3 ! 1849: .TE
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.