Виноски для таблиць у LaTeX


87

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


Відповіді:


72

Це класична складність у LaTeX.

Проблема полягає в тому, як зробити макет за допомогою поплавців (рисунків і таблиць, подібних об’єктів) та виносок. Зокрема, важко вибрати місце для поплавця з упевненістю, що звільнення місця для відповідних виносок не призведе до проблем. Тож стандарт tabularі figureсередовища навіть не намагаються.

Що ти можеш зробити:

  1. Прикидатися. Просто поставте внизу підпису вертикально пропущений вертикальний пропуск, а потім напишіть виноску самостійно (використовуйте \footnotesizeдля розміру). Вам також доведеться самостійно керувати символами або цифрами \footnotemark. Простий, але не дуже привабливий, а виноска не відображається внизу сторінки.
  2. Використовуйте tabularx, longtable, threeparttable[x](престижність Йосип ) або ctableякі підтримують таку поведінку.
  3. Керуйте цим вручну. Використовуйте [h!](або [H]з пакетом float), щоб контролювати, де буде відображатися поплавок, і \footnotetextна тій самій сторінці розміщувати виноску там, де ви це хочете. Знову ж, використовуйте \footnotemarkдля встановлення символу. Тендітний і вимагає ручного інструментування кожного випадку.
  4. footnotesПакет забезпечує savenoteсередовище, яке може використовуватися , щоб зробити це.
  5. Знизьте його на міні-сторінку (код викрадений відверто і в такому випадку прочитайте застереження про довгі тексти підписів):
    \ begin {фігура}
      \ початок {міні-сторінка} {\ textwidth}
        ...
        \ caption [Заголовок для LOF]%
          {Реальний підпис \ виноска {blah}}
      \ end {міні-сторінка}
    \ end {фігура}

Додаткові посилання: Технічні запитання щодо TeX Виноски у таблицях .


texblog.org/2012/02/03/using-footnote-in-a-table мені здається приємною альтернативою
Піо

1
@dmckee Чи можна отримати в xtable триparttable: щось подібне print.xtable (df, tabular.environment = "threeparttable")?
Ануша

Посилання @Pio - чудова довідка. Використання пакета виносок вирішило мою проблему.
ДЖОН

Як так, що найбільш голосована відповідь не вгорі?
Едуардо Рейс

59

Найкращий спосіб зробити це без головного болю - скористатися \tablefootnoteкомандою з tablefootnoteпакета. Додайте до своєї преамбули таке:

\usepackage{tablefootnote}

Це просто працює без необхідності додаткових хитрощів.


17
У моєму випадку використання \ tablefootnote зробило виноску для відображення, але, на жаль, на сторінці до сторінки з таблицею.
Ну-хін,

У вас є приклад для демонстрації такої поведінки?
Франческискіні

2
Чи є спосіб отримати виноску на тій самій сторінці, що і таблиця?
Ануша,

3
Це не працює для мене у вкладених таблицях (виноски повторюються стільки разів, скільки вкладених таблиць)
fffred

1
Працюю для мене, використовуючи float-пакет та [H] для таблиці, щоб мати виноски на одній сторінці таблиці.
mao95

15

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

\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}

Вихідні дані з верхнього коду


11

Якщо з вашою таблицею вже працює tabular, найпростіше перемкнути її longtable, пам’ятаючи про додавання

\usepackage{longtable}

Наприклад:

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

2
Це не спрацювало для мене. Він все ще не з’являється. Чи є щось інше, що я повинен змінити, крім додавання цього рядка?
Емануель Берг,

2
Ага, команду початку / кінця таблиці також слід змінити. Маю
Емануель Берг,

1
Чи можете ви навести повний приклад, будь ласка? Я не можу змусити це працювати
user2808117 02

7

Використовуйте середовище міні-сторінок. Ось приклад:

\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}

1
У моєму випадку він друкує виноску двічі, і замість того, щоб сидіти внизу сторінки, він сидить прямо під таблицею посередині сторінки.
kakyo

5

Напевно, найкращим рішенням буде розглянути пакунки threeparttable / threeparttablex.


1
Ось деяка інформація про те, як користуватися функцією threeparttable. У мене це вийшло! dound.com/2009/06 / ...
Veridian


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

0

Що сказав @dmckee.

Не складно написати власний спеціальний код чергових виносок. Що вам потрібно зробити, це:

  1. Напишіть код, щоб поставити в чергу латексний код - як гачок в emacs: дуже стандартна техніка, якщо не кожен хакер Латексу насправді може зробити це правильно;
  2. Тимчасово перевизначте, \footnoteщоб додати макрос виноски у свою чергу;
  3. Переконайтеся, що гачок викликається при виході таблиці / фігури, і ми повертаємося до звичайного вертикального режиму.

Якщо це цікаво, я покажу код, який це робить.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.