I would like to have footnotes in tables, but the \footnote command does not work inside a table environment. Googling one finds that this is a frequently asked question, at least in the UK. That link contains a list of solutions to the problem, but since the author of the FAQ does not believe that this is good style, no comparison is made between the different methods.

I am sure that there are good typographical reasons why in most situations it is undesirable to have footnotes in tables (although I have never come across them), however I have recently felt the need to do just this in a paper I am currently writing.

Therefore I'd like to ask two questions:

What are the arguments against footnotes in tables?

If one really must go against the advice in 1., which method (whether considered in the FAQ above or not) would you recommend?

Thanks in advance.

Added

In response to ShreevatsaR's comment: I do not much care for where the text of the footnote appears. I do however insist on the footnote marks being attached to the relevant entries in the table, so that I can avoid having to reference "the second entry in the eighth line of the table", etc...

The author of the FAQ entry distinguishes between (1) table notes, where the "footnote text" appears at the bottom of the table, and (2) "real" footnotes, where it appears at the bottom of the page outside the table. The author expresses his preference for the former; I also feel it makes sense to attach the footnote text to the table itself. This can be achieved by using either threeparttable or ctable. If you really want footnotes at the bottom of the page, outside the table, I'd just use tabularx, if only because it looks like minimal effort among the options.
– ShreevatsaRAug 12 '10 at 1:52

For the record, writing philological notes on Chinese prosody, it has been very useful to me to be able to place footnotes (real footnotes, in ShreevatsaR's parlance) on individual Chinese characters or their monosyllabic transcriptions, each of which appears in a single table cell. There is no clearer or more easily examined way that I can find.
– brannerchineseMay 3 '11 at 0:32

observation: the question is phrased in terms of "tables", which are floats. it is not really useful even to try to set footnotes at the bottom of the page where a float happens to appear. however, most of the answers seem to relate to footnotes in tabulars (or -alike); whether one likes it or not (i don't) footnotes in tabulars are do-able. the faq offers options, iirc (as well as suggesting means of creating table notes.
– wasteofspaceNov 18 '11 at 11:18

7 Answers
7

I had this kind of problem about 10 years ago, and no package provided any trick at this time. My solution was the following. I managed \footnotemarks and \footnotetexts separately. Semantically it is not really satisfactory, but it works quite well. The only problem may be that the table could be placed in another page than the \footnotetext :-(

You could use the tablefootnote package and \tablefootnote{...} inside the table:

\documentclass{article}
\usepackage{hyperref}
\usepackage{tablefootnote}
\begin{document}
\begin{table}
\centering
\begin{tabular}{ c c }
Test1\tablefootnote{Footnote 1} & Test2\tablefootnote{Footnote 2} \\
\end{tabular}
\caption{This is a table.\label{FirstTable}}
\end{table}
A newpage:
\newpage
and a second page, so that you can see that the hyperlinks really work.
\end{document}

The problem is how to do layout with floats (figures and tables, an
similar objects) and footnotes. In particular, it is hard to pick a
place for a float with certainty that making room for the associated
footnotes won't cause trouble. So the standard tabular
and figure environments don't even try.

What can you do:

Fake it. Just put a hardcoded vertical skip
at the bottom of the caption and then write the footnote yourself (use
\footnotesize for the size). You also have to manage the
symbols or number yourself with \footnotemark. Simple,
but not very attractive, and the footnote does not appear at the
bottom of the page.

Use the tabularx,
longtable, threeparttable[x]
(kudos to Joseph)
or ctable
which support this behavior.

Manage
it by hand. Use [h!] (or [H] with the
float package) to control where the float will appear, and
\footnotetext on the same page to put the footnote where
you want it. Again, use \footnotemark to install the
symbol. Fragile and requires hand-tooling every instance.

The
footnote package provides the savenote
environment, which can be used to do this.

Minipage it (code
stolen
outright, and read the discalimer about long caption texts in that
case):

I have just been playing with this and thought my solution just might help somebody else at some point. I wanted the following:

table notes i.e. notes at the bottom of the tabular, within the table environment - not at the bottom of the page;

automatic numbering of notes within the list of notes;

automatic numbering of note markers within the table itself;

numbering with small letters, to avoid any confusion with the Arabic numerals used to number footnotes and in the table and text to track content;

note markers in the list of notes to be left aligned with text in the first column of the tabular.

My solution involves an unholy mixture of

threeparttablex with option referable: this manages the automatic numbering of the note markers, on the basis of labels inserted into the list of notes;

enumitem: to customise the list of notes.

This is a bit complex in terms of number of cooks responsible for the broth. To say that enumitem is used to 'customise' the list is a bit misleading. Essentially, my solution redefines it. More specifically, threeparttable provides tablenotes. threeparttablex redefines it and provides \tnotex{} and some other enhancements. enumitem is then used to redefine tablenotes again.

Imho, I don't see any specific reason not to put footnotes in a table; however, if the content of the footnotes can be explained in the caption of the table itself, I'd prefer to use the caption. I'm used to write in the caption a short explanation of what in the table is, rather than a short title.

I suggest you to use the ctable package, using the \tnote command.
From the package documentation: