Сноски для таблиц в LaTeX - PullRequest
75 голосов
/ 22 мая 2010

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

Ответы [ 9 ]

67 голосов
/ 23 мая 2010

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

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

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

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

Дополнительная справка: часто задаваемые вопросы TeX Сноски в таблицах .

52 голосов
/ 29 мая 2013

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

\usepackage{tablefootnote}

Просто работает без дополнительных трюков.

9 голосов
/ 07 января 2013

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

\usepackage{longtable}

Например:

\begin{longtable}{ll}
  2014--2015 & Something cool\footnote{first footnote} \\
  2016-- & Something cooler\footnote{second footnote}
\end{longtable}
7 голосов
/ 07 сентября 2012

Использовать министраницу. Вот пример:

\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}
6 голосов
/ 20 августа 2015

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

\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

5 голосов
/ 23 мая 2010

Вероятно, лучшее решение - взглянуть на пакеты threeparttable / threeparttablex.

2 голосов
/ 13 февраля 2014
\begin{figure}[H]
\centering
{\includegraphics[width=1.0\textwidth]{image}}
\caption{captiontext\protect\footnotemark}
\label{fig:}
\end{figure}
\footnotetext{Footnotetext} 
2 голосов
/ 22 мая 2010

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

0 голосов
/ 23 мая 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...