TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've read a couple of questions recently about tabular environments, and it seems there's a whole bunch of packages that do stuff in this field. I'd really like a summary of what each package does, and which conflict.

For example a quick google (plus my memory) got me tabularx, booktabs, multirow, collcell, array, mdwtab, longtable, supertabular...

Which should I be using for what purposes? And more importantly, which conflict?

[Should this be CW? One package per answer sort of thing?]

share|improve this question
I agree with you that this question should be CW, as I assume there's not a single answer but many users may freely contribute their knowledge and experience. So I converted it to CW. – Stefan Kottwitz Mar 4 '11 at 18:11
Such questions are usually answered by reading (the abstracts in) the manuals of the mentioned packages. – Thorsten Donig Mar 5 '11 at 9:23
@Thorsten Good point. I've changed the emphasis of the question. What the abstracts won't tell you is which packages conflict – Seamus Mar 5 '11 at 11:43
@Thorsten, @Seamus: I don't see the point. It's a great question, Seamus, and it's very valuable to have this overview here since that's a lot quicker to look through than a bunch of (abstracts of) manuals. – Hendrik Vogt Mar 5 '11 at 22:27
I just saw this question because it had been bumped up for some reason. I thought "huh, that's a great question"... I'd totally forgotten that I had asked it! – Seamus Jun 23 '11 at 10:56
up vote 118 down vote accepted

I would like to start with a small list that used to be part of the wiki and is now maintained here.

Overview of packages

Basic packages

  • array offers more flexible column formatting; fixes to some spacing issues. An almost "must-use" package.

  • booktabs supports professional looking tables; better vertical spacing; better rules; specifically designed for tables without vertical lines (the norm for publication-quality tables).

  • tabularx provides a column type which expands to fill the specified width of the table.

  • tabulary provides column types which are proportional to the natural width of their contents.

  • multirow lets tabular material span multiple rows.

  • dcolumn creates columns which align on a decimal marker. Similar packages: numprint, rccol, warpcol. Cf. also siunitx below.

  • tabularht sets the tabular with a specified height.

Multi-page tables

Captioning and notes

  • threeparttable typesets tables with captions and notes matching width.

  • threeparttablex provides the functionality of threeparttable to tables created using longtable.

  • floatrow (although mainly about customizing layouts of float environments) allows for footnotes and additional explanations in tables.

  • ctable allows notes/footnotes below tables and figures with the use of a command instead of an environment.


  • siunitx (although mainly about typesetting values with units) provides the S column type that aligns on a decimal mark.

Color and fancy features

  • colortbl is intended for colored rows/columns/cells. The xcolor package with the table option provides alternating table row colors to extend it.

  • arydshln can print horizontal and vertical dashed lines.

  • delarray adds delimiters (braces, parentheses, brackets) to arrays.

  • bigdelim inserts variable-sized multi-row delimiters into a table.

  • blkarray splits arrays into blocks and add delimiters for each block.

  • makecell multiple line cells, better headers, gape in cells, numbered rows, thick lines, diagonally divided cells, etc.

  • slashbox diagonally divided tabular cell.

  • hhline better double line producing.

  • tabularkv adds a key value interface for tabular properties.


  • tabu is a single package that provides much of the functionality of many of the above packages.

Which packages are especially recommendable? A quick guide:

  • array is a universal talent for tuning whole columns by commands
  • tabularx is great for auto-sizing columns
  • booktabs is a must for professional-looking layout
  • longtable is very popular for multi-page tables.

Choose further packages depending on the required features.

Package conflicts

  • xtab and supertabular don't work together. Loading both would cause a conflict. xtab should be preferred, since it's written as an extension to supertabular.

  • According to the manual, arydshln has to be loaded after array, longtable, colortab, and colortbl, respectively. Such a problem occurred in this question: Cannot insert multirow within multicolumn

  • Also, arydshln conflicts with supertabular.

share|improve this answer
@lockstep and @Alan Munn contributed most of that nice list in the tag wiki, which has been the start. @Alan Munn: Sorry, didn't see this first, when I checked just the excerpt history instead of the main one, and {tabular} is gone. – Stefan Kottwitz Mar 4 '11 at 21:14
Alan Munn did most of the work -- I only contributed a little copying and pasting. – lockstep Mar 4 '11 at 23:50
Brilliant. Thanks for the work guys! Perhaps to make this question more than just a copy of the tag wiki, let's make it about which tabular packages conflict. – Seamus Mar 5 '11 at 11:44
I'd submit my package to "Multi-page tables": cals: Multi-page tables with spanned cells and decorations – olpa Jun 21 '13 at 13:50
@StefanKottwitz, to your list should be added package mdwtab. It is a reimplementation of standard LaTeX tabular and array environments which provides better vertical spacing; better rules, additional column types for math content. It don't work with colortbl and supertabular. – Zarko Jun 2 at 11:21

cellspace is a very useful package to add, for example, to booktabs. With these two packages, you'll get very fine results:

From the readme of cellspace:

Package cellspace: Ensuring a minimal spacing of table cells.


This package is intended to allow automatic spacing out of the lines of an array. People often complain about text touching the \hline of a tabular when it is too high or too deep.

share|improve this answer

Here is a good survey entitled Tables in LaTeX2ε: Packages and Methods which I find very useful.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.