Whole document tree
    

Whole document tree

Help On LaTeX tabular

Hypertext Help with LaTeX
tabular

 \begin{tabular}[pos]{cols}
 column 1 entry & column 2 entry ... & column n entry \\
 ...
 ...
 \end{tabular}
or
 \begin{tabular*}{width}[pos]{cols}
 column 1 entry & column 2 entry ... & column n entry \\
 ...
 ...
 \end{tabular*}
Note that the *-form takes an additional width mandatory argument which specifies the width of the tabular environment; in the regular form the width is determined by LaTeX from the contents of the tabular environment.

These environments produce a box consisting of a sequence of rows of items, aligned vertically in columns. The mandatory and optional arguments consist of:

  • cols Specifies the column formatting. It consists of a sequence of the following specifiers, at least one for each of the columns.
    • l - A column of left-aligned items.
    • r - A column of right-aligned items.
    • c - A column of centered items.
    • p{wd} - Produces a column which can be multiple lines, with each item typeset in a parbox of width wd. It works as if each item were the argument of a \parbox[t]{wd} command. However, a \\ may not appear in the item, except in the following situations: (i) inside an environment like minipage, array, or tabular, (ii) inside an explicit \parbox, or (iii) in the scope of a \centering, \raggedleft, or \raggedright declaration. The latter declarations must appear inside braces or an environment when used in a p-column element.

    • | - A vertical line the full height and depth of the environment.
    • @{text} - This inserts text in every row. An @-expression suppresses the intercolumn space normally inserted between columns; any desired space between the inserted text and the adjacent items must be included in text. To force the spacing between two columns to be wdth, use an @{\hspace{wdth}} between the column specifiers. An \extracolsep{wd} command in an @-expression causes an extra space of width wd to appear to the left of all subsequent columns, until countermanded by another \extracolsep command. Unlike ordinary intercolumn space, this extra space is not suppressed by an @-expression. An \extracolsep command can be used only in an @-expression in the cols argument.
    • *{num}{cols} - Equivalent to num copies of cols, where num is any positive integer and cols is any list of column-specifiers, which may contain another *-expression.

  • pos Specifies the vertical position of the whole tabular environment (recall that it is a box). The default is to align the box on the center of the environment.
    • t - align on top row
    • b - align on bottom row

  • width Specifies the width of the tabular* environment. There must be rubber space between columns that can stretch to fill out the specified width.
Note that \\ must be used to specify the end of each line of the table, except the last. (It must be used after the last line if an \hline command is used to put a line at the bottom of the table.)

Aligning on decimal points: an example of the @ specifier

In scientific tables it is often desirable to align the columns on a decimal point. This can be done using the @ col specifier and breaking the number into the integral part in a right-justified column and the fractional part in a left-justified column:
  The following input:          will display as:

  \begin{tabular}{r@{.}l}
  3&14159\\                         3.14159
  16&2\\                           16.2
  123$456\\ \end{tabular}         123.456  
Note that the decimal point is replaced by the column separator, & and that the @suppresses the intercolumn space

Another example: centering and controlling table width

LaTeX normally sets the width of the tabular environment to "natural" width, i.e., determined from the contents of the columns. For narrow tables it is sometimes more pleasing to make them wider. The tabular* environments allows for setting a width; however, it is necessary to have rubber space between colunmns that can expand to the specified width. This can often be most easily accomplished by using an \extracolsep{wdth} command in an @ specifier as shown in the example below which sets the table width to 75% of the text width.

This example also centers the table.

  \begin{center}  % put inside center environment
  \begin{tabular*}{0.75\textwidth}%
     {@{\extracolsep{\fill}}cccr}
  label 1 & label 2 & label 3 & label 4 \\
  \hline  % put a line under headers
  item 1  & item 2  & item 3  & item 4  \\
  ...
  \end{tabular*}
  \end{center}

See also


See also table environment, array environment, tabbing environment.
Return to LaTeX Table of Contents
Revised: Sheldon Green, 22 Jun 1995.