Difference between revisions of "Tables Overview"

From Wiki
Jump to navigation Jump to search
m (added Category:Tables)
m (Text replacement - "pragma-ade.com" to "pragma-ade.nl")
 
(33 intermediate revisions by 14 users not shown)
Line 1: Line 1:
< [[Visuals]] | [[Structurals]] >
+
__NOTOC__
 +
= Many possibilities for tables typesetting =
  
ConTeXt has a whole bunch of possibilities to typeset tables. Not each provides everything you may need, and the older ones are deprecated.
+
ConTeXt has a whole bunch of possibilities to typeset tables. Not each provides everything [[#Features|Features]] you may need.  
  
* [[tabulate]] (tabulation)
+
[[Floating_Objects|Floating objects]] enable to place and number tables, like graphics.
* [[table]] (TaBlE)
 
* [[tables]] (multipage TaBlE)
 
* [[TABLE]] (natural tables, HTML tables)
 
* [[linetable]] (new multipage tables)
 
  
== Features ==
+
{{TwoColumnsUnderLevel1
 +
|
 +
== Recommended ==
 +
* [[Tabulate]] (tabulation, '''recommended for simple requirements''')
 +
* [[TABLE]] (natural tables, HTML tables, '''recommended''')
 +
* [[xtables]] (extreme tables – mostly compatible to natural tables, better for page breaking)
 +
* framed tables (for simple tables that span hundreds of pages)
 +
|
 +
== Deprecated ==
 +
* [[Table]] (TaBlE, '''deprecated''')
 +
* [[Tables]] (multipage TaBlE, '''deprecated''')
 +
 
 +
== Experimental ==
 +
* [[Linetable]] ("new" multipage tables, '''experimental''' and probably obsolete)
 +
}}
 +
 
 +
 
 +
Note that you can use natural and extreme tables with the old Table/Tabulate syntax. (To make this even more confusing...)
 +
 
 +
If you have simple tables with lots of contents, and you're tired of typing <code>\bTR\bTD</code>s or <code>\NC\NR</code>s, you can also have a look at:
 +
* [[M-database|database]] module and its [http://dl.contextgarden.net/myway/csv.pdf manual].
 +
* [[Wikitable]], a TABLE wrapper that uses MediaWiki syntax
 +
* [http://tug.org/TUGboat/Articles/tb28-3/tb90mahajan.pdf ConTeXt basics for users: Table macros] and [http://www.tug.org/TUGboat/Articles/tb29-1/tb91mahajan.pdf Table macros II] by Aditya Mahajan (2007 and 2008).
 +
 
 +
= Features =
 
<table style="border:1px solid #DDDDDD; width:100%" align="left" valign="top">
 
<table style="border:1px solid #DDDDDD; width:100%" align="left" valign="top">
 
<tr style="background-color:#DDDDDD" align="left" valign="top">
 
<tr style="background-color:#DDDDDD" align="left" valign="top">
<th>Feature</th><th>[[tabulate]]</th><th>[[table]]</th>
+
<th>Feature</th>
<th>[[tables]]</th><th>[[TABLE]]</th><th>[[linetable]]</th>
+
<th>[[Tabulate]]</th><th>[[Table]]/[[Tables]]</th>
 +
<th>[[TABLE]]</th><th>[[xtables]]</th><th>[[Linetable]]</th><th>[[framedtable]]</th>
 
</tr>
 
</tr>
 +
 
<tr align="left" valign="top">
 
<tr align="left" valign="top">
 
<th style="background-color:#DDDDDD">horizonal lines</th>
 
<th style="background-color:#DDDDDD">horizonal lines</th>
<td><cmd>HL</cmd></td>
+
<td>{{cmd|HL}}</td>
<td><cmd>HL</cmd></td>
+
<td>{{cmd|HL}}</td>
<td><cmd>HL</cmd></td>
 
 
<td><texcode>
 
<td><texcode>
 
\setupTABLE
 
\setupTABLE
Line 27: Line 49:
 
[bottomframe=on]
 
[bottomframe=on]
 
</texcode></td>
 
</texcode></td>
 +
<td><texcode>\setupxtable[...]</texcode></td>
 
<td>unknown</td>
 
<td>unknown</td>
 +
<td>yes</td>
 
</tr>
 
</tr>
 +
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<th style="background-color:#DDDDDD">vertical lines</th>
 
<th style="background-color:#DDDDDD">vertical lines</th>
<td>no</td>
+
<td>{{cmd|VL}}</td>
<td><cmd>VL</cmd></td>
+
<td>{{cmd|VL}}</td>
<td><cmd>VL</cmd></td>
 
 
<td><texcode>
 
<td><texcode>
 
\setupTABLE
 
\setupTABLE
Line 41: Line 65:
 
[rightframe=on]
 
[rightframe=on]
 
</texcode></td>
 
</texcode></td>
 +
<td><texcode>\setupxtable[...]</texcode></td>
 
<td>unknown</td>
 
<td>unknown</td>
 +
<td>yes</td>
 
</tr>
 
</tr>
 +
 
<tr align="left" valign="top">
 
<tr align="left" valign="top">
 
<th style="background-color:#DDDDDD">multipage</th>
 
<th style="background-color:#DDDDDD">multipage</th>
 
<td>yes</td>
 
<td>yes</td>
<td>no</td>
+
<td>no / yes (tables)</td>
<td>yes</td>
 
 
<td>yes, with <tt>split=yes</tt> or <tt>split=repeat</tt></td>
 
<td>yes, with <tt>split=yes</tt> or <tt>split=repeat</tt></td>
 +
<td>vertically yes, horizontally not but planned</td>
 
<td>yes, even horizontally</td>
 
<td>yes, even horizontally</td>
 +
<td>yes</td>
 
</tr>
 
</tr>
 +
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<th style="background-color:#DDDDDD">repeated header</th>
 
<th style="background-color:#DDDDDD">repeated header</th>
<td>no</td>
+
<td><texcode>
<td>no</td>
+
\setuptabulate
<td><cmd>starttablehead</cmd></td>
+
[header=repeat]
 +
\starttabulatehead
 +
...
 +
\stoptabulatehead
 +
</texcode>
 +
only one line</td>
 +
<td>table<b>s</b> only:
 +
<texcode>
 +
\setuptables
 +
  [split=repeat]
 +
 
 +
\starttablehead
 +
...
 +
\stoptablehead
 +
</texcode></td>
 
<td><texcode>
 
<td><texcode>
 
\bTABLE
 
\bTABLE
Line 63: Line 106:
 
\eTABLEhead
 
\eTABLEhead
 
</texcode></td>
 
</texcode></td>
 +
<td>yes</td>
 +
<td>yes</td>
 
<td>yes</td>
 
<td>yes</td>
 
</tr>
 
</tr>
 +
 
<tr align="left" valign="top">
 
<tr align="left" valign="top">
 
<th style="background-color:#DDDDDD">repeated footer</th>
 
<th style="background-color:#DDDDDD">repeated footer</th>
 
<td>no</td>
 
<td>no</td>
 +
<td>table<b>s</b> only:
 +
<texcode>
 +
\setuptables
 +
  [split=repeat]
 +
 +
\starttabletail
 +
...
 +
\stoptabletail
 +
</texcode></td>
 +
<td>no?</td>
 +
<td>yes</td>
 
<td>no</td>
 
<td>no</td>
<td><cmd>starttabletail</cmd></td>
+
<td>unknown</td>
<td>no</td>
 
<td>yes</td>
 
 
</tr>
 
</tr>
 +
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<th style="background-color:#DDDDDD">automatic fitting to given table width</th>
 
<th style="background-color:#DDDDDD">automatic fitting to given table width</th>
 
<td>no</td>
 
<td>no</td>
<td><cmd>SetTableToWidth</cmd></td>
+
<td>{{cmd|SetTableToWidth}}</td>
<td><cmd>SetTableToWidth</cmd></td>
 
 
<td>
 
<td>
 
<texcode>
 
<texcode>
Line 84: Line 139:
 
  textwidth=10cm]
 
  textwidth=10cm]
 
</texcode></td>
 
</texcode></td>
 +
<td>yes</td>
 +
<td>default</td>
 
<td>unknown</td>
 
<td>unknown</td>
 
</tr>
 
</tr>
 +
 
<tr align="left" valign="top">
 
<tr align="left" valign="top">
 
<th style="background-color:#DDDDDD">problems</th>
 
<th style="background-color:#DDDDDD">problems</th>
 
<td>very limited</td>
 
<td>very limited</td>
<td>limited</td>
+
<td>some limitations, problems with spacing
<td><texcode>
+
<texcode>
 
\starttext
 
\starttext
 
\starttablehead
 
\starttablehead
Line 106: Line 164:
 
</texcode></td>
 
</texcode></td>
 
<td>there may be problems in width and height calculation and perhaps the multipage features</td>
 
<td>there may be problems in width and height calculation and perhaps the multipage features</td>
<td>still experimental, nearly no documentation</td>
+
<td>very verbose</td>
 +
<td>lack of documentation, just experimental</td>
 +
<td>limitations, lack of documentation</td>
 
</tr>
 
</tr>
 +
 +
<!-- Tabulate Table(s) TABLE xtable linetable framedtable -->
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<tr align="left" valign="top" style="background-color:#EEEEEE;">
 
<th style="background-color:#DDDDDD">documentation (except wiki)</th>
 
<th style="background-color:#DDDDDD">documentation (except wiki)</th>
<td>[[manual:cont-eni.pdf|cont-eni.pdf]], [[source:core-tbl.tex|core-tbl.tex]]</td>
+
<td>[http://pmrb.free.fr/contextref.pdf contextref.pdf], [[source:tabl-tbl.mkii|tabl-tbl.mkii]], [http://www.ntg.nl/maps/pdf/22_28.pdf MAPS article]</td>
<td>[[manual:mp-cb-en.pdf|ms-cb-en.pdf]], [[source:core-tab.tex|core-tab.tex]]</td>
+
<td>[[manual:mp-cb-en.pdf|ms-cb-en.pdf]], [[source:tabl-tab.mkii|tabl-tab.mkii]]</td>
<td>[[source:core-tab.tex|core-tab.tex]]</td>
+
<td>[[manual:enattab.pdf|enattab.pdf]], [http://dl.contextgarden.net/myway/NaturalTables.pdf NaturalTables.pdf], [[source:tabl-ntb.mkii|tabl-ntb.mkii]] / [[source:tabl-ntb.mkiv|tabl-ntb.mkiv]]</td>
<td>[[manual:enattab.pdf|enattab.pdf]], [http://dl.contextgarden.net/myway/NaturalTables.pdf NaturalTables.pdf], [[source:core-ntb.tex|core-ntb.tex]]</td>
+
<td>[http://www.pragma-ade.nl/general/manuals/xtables-mkiv.pdf xtables-mkiv.pdf], [[source:tabl-xtb.lua|tabl-xtb.lua]]</td>
<td>[[source:core-ltb.tex|core-ltb.tex]]</td>
+
<td>[[source:tabl-ltb.mkii|tabl-ltb.mkii]] / [[source:tabl-ltb.mkiv|tabl-ltb.mkiv]]</td>
</tr></table>
+
<td>?</td>
 +
</tr>
 +
</table>
 +
 
  
 
[[Category:Tables]]
 
[[Category:Tables]]

Latest revision as of 08:29, 2 July 2022

Many possibilities for tables typesetting

ConTeXt has a whole bunch of possibilities to typeset tables. Not each provides everything Features you may need.

Floating objects enable to place and number tables, like graphics.

  • Recommended

    • Tabulate (tabulation, recommended for simple requirements)
    • TABLE (natural tables, HTML tables, recommended)
    • xtables (extreme tables – mostly compatible to natural tables, better for page breaking)
    • framed tables (for simple tables that span hundreds of pages)
  • Deprecated

    • Table (TaBlE, deprecated)
    • Tables (multipage TaBlE, deprecated)

    Experimental

    • Linetable ("new" multipage tables, experimental and probably obsolete)


Note that you can use natural and extreme tables with the old Table/Tabulate syntax. (To make this even more confusing...)

If you have simple tables with lots of contents, and you're tired of typing \bTR\bTDs or \NC\NRs, you can also have a look at:

Features

Feature TabulateTable/Tables TABLExtablesLinetableframedtable
horizonal lines \HL \HL
\setupTABLE
[topframe=on]
or
\setupTABLE
[bottomframe=on]
\setupxtable[...]
unknown yes
vertical lines \VL \VL
\setupTABLE
[leftframe=on]
or
\setupTABLE
[rightframe=on]
\setupxtable[...]
unknown yes
multipage yes no / yes (tables) yes, with split=yes or split=repeat vertically yes, horizontally not but planned yes, even horizontally yes
repeated header
\setuptabulate
[header=repeat]
\starttabulatehead
...
\stoptabulatehead
only one line
tables only:
\setuptables
  [split=repeat]

\starttablehead
...
\stoptablehead
\bTABLE
[split=repeat]
\bTABLEhead
...
\eTABLEhead
yes yes yes
repeated footer no tables only:
\setuptables
  [split=repeat]

\starttabletail
...
\stoptabletail
no? yes no unknown
automatic fitting to given table width no \SetTableToWidth
\setupTABLE
[option=stretch,
 textwidth=10cm]
yes default unknown
problems very limited some limitations, problems with spacing
\starttext
\starttablehead
  \HL
\stoptablehead
\starttables[|l|l|]
\dorecurse{50}{%
  \VL SomeText
  \VL SomeText
  \VL \AR}
\stoptables
Problem: top margin on
first page is bigger.
\stoptext
there may be problems in width and height calculation and perhaps the multipage features very verbose lack of documentation, just experimental limitations, lack of documentation
documentation (except wiki) contextref.pdf, tabl-tbl.mkii, MAPS article ms-cb-en.pdf, tabl-tab.mkii enattab.pdf, NaturalTables.pdf, tabl-ntb.mkii / tabl-ntb.mkiv xtables-mkiv.pdf, tabl-xtb.lua tabl-ltb.mkii / tabl-ltb.mkiv ?