почему \usepackage{tablefootnote} размещает сноску в случайных местах

почему \usepackage{tablefootnote} размещает сноску в случайных местах

Я хотел сделать footnoteв таблице. Поэтому я использовалtablefootnote http://www.ctan.org/tex-archive/macros/latex/contrib/tablefootnoteсделать это, как было предложено в поиске Google, поскольку обычные методы \footnoteне работают внутри таблиц.

Однако, похоже, что сама сноска иногда отображается внизу предыдущей страницы, а иногда — внизу следующей страницы.

Я бы хотел, чтобы сноска отображалась на той же странице.

Пример 1, сноска отображается внизу предыдущей страницы

\documentclass[12pt,notitlepage]{article}%
\usepackage{float}%
\usepackage{lipsum}
\usepackage{tablefootnote}

\begin{document}
\section{A}
\lipsum[4-10]
\section{B}
\begin{table}[htp]
\begin{center}
\begin{tabular}{|l|l|l|}\hline
$e$                      & 0.97774    & 0.9935      \\ \hline
semimajor axis $a$       & 300000     & 262413      \\ \hline
true anamoly $f$         & 163.76     & 176.08       \\\hline
semimajor axis $a$       & 300000     & 262413  \\ \hline
true anamoly $f$         & 163.76     & 176.08     \\\hline
$r_p$                    & 6678       & 1689
  \tablefootnote{spacecraft will hit earth on way back since $r_p<r_{earth}$} \\\hline
\end{tabular}
\caption{Summary table for non-tangential per and post flyby the moon}
\label{tab:part_3_1_summary}
\end{center}
\end{table}
\end{document}

Графика Mathematica

Пример 2, сноска отображается на следующей странице

\documentclass[12pt,notitlepage]{article}%
\usepackage{float}%
\usepackage{lipsum}
\usepackage{tablefootnote}

\begin{document}
\section{A}
\lipsum[4-6]
\section{B}
\begin{table}[htp]
\begin{center}
\begin{tabular}{|l|l|l|}\hline
semimajor axis $a$       & 300000  & 262413    \\ \hline
true anamoly $f$         & 163.76   & 176.08   \\\hline
$r_p$                    & 6678 & 1689
 \tablefootnote{spacecraft will hit earth on way back since $r_p<r_{earth}$} \\\hline
\end{tabular}
\caption{Summary table for non-tangential per and post flyby the moon}
\label{tab:part_3_1_summary}
\end{center}
\end{table}
\section{C}
\lipsum[4-10]

\end{document}

Графика Mathematica

Миктекс 2.9, последняя версия.

решение1

Сноски внизу страницы к плавающему элементу дадут этот нежелательный эффект, поскольку плавающий элемент может уплыть на другую страницу. В случае, если сноски к таблицам (или плавающим элементам в целом) действительно необходимы, лучше использовать сноски сразу после плавающего элемента, которые можно получить, например, с помощьюthreeparttableилиctableпакеты.

Пример использования threeparttable:

\documentclass[12pt,notitlepage]{article}%
\usepackage{lipsum}
\usepackage{threeparttable}

\begin{document}

\section{A}
\lipsum[4-6]
\section{B}
\begin{table}
\centering
\begin{threeparttable}
\caption{Summary table for non-tangential per and post flyby the moon}
\label{tab:part_3_1_summary}
\begin{tabular}{|l|l|l|}\hline
semimajor axis $a$       & 300000  & 262413    \\ \hline
true anamoly $f$         & 163.76   & 176.08   \\\hline
$r_p$                    & 6678 & 1689\tnote{1} \\ \hline
\end{tabular}
\begin{tablenotes}
\item[1] spacecraft will hit earth on way back since $r_p<r_{earth}$
\end{tablenotes}
\end{threeparttable}
\end{table}
\section{C}
\lipsum[4-10]

\end{document}

введите описание изображения здесь

И та же таблица с использованием ctable:

\documentclass[12pt,notitlepage]{article}%
\usepackage{lipsum}
\usepackage{ctable}

\begin{document}

\section{A}
\lipsum[4-6]
\section{B}
\ctable[
caption = Summary table for non-tangential per and post flyby the moon.
label={tab:part_3_1_summary}
]{|l|l|l|}
{\tnote[1]{spacecraft will hit earth on way back since $r_p<r_{earth}$}}
{
\hline
semimajor axis $a$       & 300000  & 262413  \\ \hline
true anamoly $f$         & 163.76   & 176.08   \\ \hline
$r_p$ & 6678 & 1689 \\ 
\hline
}
\section{C}
\lipsum[4-10]

\end{document}

введите описание изображения здесь

Оба пакета предлагают некоторые возможности настройки форматирования заметок; пожалуйста, обратитесь к документации пакетов.

решение2

Я последовал совету вГонсало Мединаответ с использованием threeparttable, но у меня возникли некоторые проблемы с правильным центрированием подписи над таблицей. Она была прикреплена к левому краю таблицы, но поскольку подпись была довольно длинной, она вышла за левый край таблицы.

Мое решение заключалось в том, чтобы переместить \begin{threeparttable}под заголовок, перед табличной средой. Таким образом, заголовок центрируется внутри плавающего элемента и использует его полную ширину (что может быть или не быть тем, что вам нужно). Сноска находится под таблицей и занимает только всю ширину таблицы, как и ожидалось.

\documentclass[12pt,notitlepage]{article}%
\usepackage{threeparttable}

\begin{document}

\begin{table}
\centering
\caption{Here's my long caption text that I want centered on the page.
\label{tab:simulation_parameters}}
\begin{threeparttable}
\begin{tabular}{lp{1.7in}}
\hline
Material & Index of refraction\\ 
\hline
silicon & 3.47772\\
silicon dioxide & 1.54\\
silicon nitride & 2.217\\
HSQ\tnote{a} & 1.39\\ \hline
\end{tabular}
\begin{tablenotes}
\item[a] Here's my footnote.
\end{tablenotes}
\end{threeparttable}
\end{table}

\end{document}

введите описание изображения здесь

Связанный контент