Сноски для таблиц в LaTeX

Когда я делаю \footnote{} для значения в таблице, сноска не отображается. Как мне его показать? Кроме того, можно ли отображать его внизу таблицы, а не внизу страницы?

Ответ 1

Это классическая трудность в LaTeX.

Проблема в том, как сделать разметку с помощью поплавков (рисунков и таблиц, похожих объектов) и сносок. В частности, трудно подобрать место для размещения с уверенностью, что освобождение места для связанных сносок не вызовет проблем. Так что стандартные tabular и figure среды даже не пробуют.

Что ты можешь сделать:

  1. Притворяться. Просто поместите вертикальный пропуск в жестком коде внизу заголовка и затем напишите сноску самостоятельно (используйте размер \footnotesize для размера). Вы также должны сами управлять символами или нумерацией с помощью \footnotemark. Простая, но не очень привлекательная, и сноска не появляется внизу страницы.
  2. Используйте tabularx, longtable, threeparttable[x] (слава Джозефу) или ctable которые поддерживают это поведение.
  3. Управляйте этим вручную. Используйте [h!] (Или [H] с пакетом поплавка), чтобы указать, где будет появляться поплавок, и \footnotetext на той же странице, чтобы разместить сноску там, где вы хотите. Снова используйте \footnotemark чтобы установить символ. Хрупкий и требует ручной обработки каждого экземпляра.
  4. Пакет footnotes обеспечивает среду savenote, которая может быть использована для этого.
  5. Мини-страница (код украден прямо, и прочитайте выражение об отказе от длинных текстов заголовка в этом случае):
    \begin{figure}
      \begin{minipage}{\textwidth}
        ...
        \caption[Caption for LOF]%
          {Real caption\footnote{blah}}
      \end{minipage}
    \end{figure}

Дополнительная справка: TeX FAQ пункт Сноски в таблицах.

Ответ 2

Лучший способ сделать это без головной боли - использовать команду \tablefootnote из пакета tablefootnote. Добавьте в свою преамбулу следующее:

\usepackage{tablefootnote}

Это просто работает без необходимости дополнительных хитростей.

Ответ 3

Если ваша таблица уже работает с tabular, то проще всего переключить ее на longtable, не забывая добавлять

\usepackage{longtable}

Например:

\begin{longtable}{ll}
  2014--2015 & Something cool\footnote{first footnote} \\
  2016-- & Something cooler\footnote{second footnote}
\end{longtable}

Ответ 4

Используйте среду minipage. Вот пример:

\begin{minipage}{6cm}
\begin{tabular}{|l|c|c|}
    \hline
    A & 1 & 2 \footnote{This is a footnote.} \\
    \hline
    B & 2 & 1 \\
    \hline
    C & 3 & 3 \\
    \hline
\end{tabular}
\end{minipage}

Ответ 5

Возможно, не такой элегантный метод, который, я думаю, является лишь вариацией того, что говорили другие, заключается в том, чтобы просто жестко его кодировать. Во многих журналах есть шаблон, который каким-то образом допускает сноски к таблицам, поэтому я стараюсь держать вещи довольно простыми. Хотя на самом деле уже есть несколько невероятных пакетов, и я думаю, что этот поток хорошо справляется с этой задачей.

\documentclass{article}
\begin{document}
\begin{table}[!th]
\renewcommand{\arraystretch}{1.3} % adds row cushion
\caption{Data, level$^a$, and sources$^b$}
\vspace{4mm}
\centering
\begin{tabular}{|l|l|c|c|}
  \hline      
  \textbf{Data}  & \textbf{Description}   & \textbf{Level} & \textbf{Source} \\
  \hline      
  \hline
  Data1  &  Description. . . . . . . . . . . . . . . . . .   &  cnty & USGS \\
  \hline
  Data2  &  Description. . . . . . . . . . . . . . . . . .   &  MSA & USGS \\
  \hline
  Data3  &  Description. . . . . . . . . . . . . . . . . .   &  cnty & Census  \\
  \hline  
\end{tabular}
\end{table}
\footnotesize{$^a$ The smallest spatial unit is county, $^b$ more details in appendix A}\\
\end{document}

Output from above code

Ответ 6

Наверное, лучшим решением является просмотр пакетов threeparttable/threeparttablex.

Ответ 7

В таблицах я использовал\footnotetext.

Ответ 8

\begin{figure}[H]
\centering
{\includegraphics[width=1.0\textwidth]{image}}
\caption{captiontext\protect\footnotemark}
\label{fig:}
\end{figure}
\footnotetext{Footnotetext} 

Ответ 9

Что сказал @dmckee.

Не сложно написать свой собственный код очереди для заказа на заказ. Что вам нужно сделать:

  • Введите код в очередь Latex code — как крючок в emacs: очень стандартная техника, если не каждый лакейский хакер может на самом деле сделать это правильно;
  • Временно переопределить \footnote, чтобы добавить макрос сноски в очередь;
  • Убедитесь, что hook вызывается, когда таблица/фигура завершается, и мы возвращаемся в обычный вертикальный режим.

Если это интересно, я показываю код, который делает это.