Table
< Tables Overview | Tabulate | Tables >
This is ConTeXts oldest table module. It uses the same formatting as Tabulate (see Tables Overview).
This mode is based on Michael Wichura's TaBlE package for PlainTeX. The official manual for it is commercial (about 40 USD), see PCTeX -- but note that the TaBlE manual only talks about the original syntax, which does not use \NC, \HL cum suis.
The only ConTeXt docs are in ConTeXt - an excursion.
Contents
Basic Commands
\starttable[|l|l|] \HL \NC Command \VL Meaning \SR % or \NC\AR \HL \NC \tex{NC} \VL next column \AR \NC \tex{HL} \VL horizontal line \AR \NC \tex{VL} \VL vertical line \AR \NC \tex{NR} \VL next row \LR \HL \NC \tex{SR} \VL single row \AR \NC \tex{FR} \VL first row \AR \NC \tex{MR} \VL middle row \AR \NC \tex{LR} \VL last row \LR % or \NC\AR \HL \NC \tex{AR} \VL automatic row \SR % or \NC\AR \HL \stoptable |
|
- You get vertical lines (rules), if you use \VL instead of \NC.
- Better use \SR, \FR, \MR, \LR instead of \NR.
- You can also use \AR instead of \SR, \FR, \MR and \LR (AR for automatic row).
- You can leave out the \NC before the "row" command, but not if you use \AR in a last or single row (see example).
- You can influence the table with \setuptables.
- There are also \BL and \CL for colored backgrounds, see below.
Column Definition
The table is defined by the template enclosed in square brackets after \starttable. The template has the form |keys for the first column|keys for the second column|...|keys for the last column|. Please note that the each column is surrounded by | signs. These are necessary. The formatting keys for each column can be a choice of
|
Examples
|
Column Spans
It's possible to create columnspans (i.e. cells that span more than one column) with the command \use{N} where N is the number of columns spanned by the cell. It's often necessary to use \ReFormat[new keys]{} to reformat this specific cell according to the new keys.
\starttable[s(0pt)|ls(10pt)|rs(0pt)|] \HL \NC \use{2}\ReFormat[cB]{Spanning head} \SR \HL \NC left column text \VL right column text \NC \AR \NC new row \VL new row \NC \AR \NC left column text \VL \ReFormat[l]{reformatted} \NC \AR \HL \NC \use{2}Spanning entry \SR \HL \stoptable |
|
Table as Floating Object
\placetable[here][tab:sample]{sample table}{ \starttable ... \stoptable }
- See Floating Objects in general.
- If you need information about \placetable look after \placefloat in the manual or texshow!
- If you'd like to leave out the table's caption (here: "sample table"), you can't simply leave the braces empty but must write none!
Background Colors
A very nice application in table are background colors for rows/cells (a feature that doesn't work in Tabulate):
\setupcolors[state=start] \starttable[|l|l|] \HL \BL[1]\SR \NC Command \NC Meaning \SR \HL \NC \tex{NC} \NC next column \FR \NC \tex{NR} \NC next row \LR \HL \CL[green]\SR \NC \tex{AR} \NC automatic row \SR \HL \stoptable |
|
The commands work something like this: first, you say what background colour you want for the next row and then you typeset the row. Observe: the line with the colour-command and the row it is supposed to colour should end in the same command (i.e. both \SR, \LR, \FR, ...). If they don't, the background won't cover the whole cell.
- \BL makes a gray background: the optional argument tells BL how many cells it should color
- \CL makes a colored line
Fit Table Width
Hans posted a solution to the list for fitting a wide table (with paragraphs and vertical lines) to the page width. The key to his solution is the .45\textwidth
settings when setting each cell as a paragraph.
\SetTableToWidth{\textwidth} \starttable[|p(.45\textwidth)|p(.45\textwidth)|] \HL \VL foo foo foo foo foo foo \VL bar bar bar bar bar bar \VL\AR \HL \stoptable
Booktabs
Latex has an excellent package called booktabs for typesetting tables. The main features of that package is that you can have top, mid, and bottom rules of different thickness. It is possible to achieve similar effects using tables. For example, to match the default settings of booktabs (Well almost, this gives a top and bottom rules of 0.09em while booktabs sets it to 0.08em).
\setuptables[rulethickness=0.03em] \starttable[o(0pt)|l|l|ro(0pt)|] \HL[3] \NC \Use2[c]{Item} \NC \NC \AR \DL[2] \DC \DR \NC Animal \NC Description \NC Price (\$) \NC \AR \HL[2] \NC Gnat \NC per gram \NC 13.65 \NC \AR \NC \NC each \NC 0.01 \NC \AR \NC Gnu \NC stuffed \NC 92.50 \NC \AR \NC Emu \NC stuffed \NC 33.33 \NC \AR \NC Armadillo \NC frozen \NC 8.99 \NC \AR \HL[3] \stoptable |
|