две или более сносок в таблице

две или более сносок в таблице

Мой вопрос отличается от вопросаСноска в табличной средепотому что я уже знаю, как устанавливать сноски в табличных средах. Но я не знаю, как правильно использовать две или более сносок, которые появляются вместе в одной таблице. Другой вопрос не касается этой специальной проблемы.


У меня есть этот латексный документ:

\documentclass{scrbook}
\usepackage{scrlayer-scrpage}
\begin{document}
Text before the table\footnote{This is the 1st footnote}

\begin{tabular}{cl}
$k_B$ & Boltzmann constant\footnotemark $k_B = 1,380649 \cdot 10^{23} J/K$\\ 
$f$ & degrees of freedom\footnotemark \\ 
\end{tabular}
\footnotetext{named after Boltzmann}
\footnotetext{Another word for possibilities}

Text after the table\footnote{This is the last footnote}
\end{document}

Я получаю это тело, и это нормально:

Текст с правильными номерами сносок

Четыре пункта со сносками, каждый из них имеет свой отдельный номер, как и положено. Здесь все в порядке.

Но я вижу вот такие сноски:

Сноски с одной неправильной цифрой

Как вы видите, вторая сноска (которая является первой из двух внутри таблицы) имеет неправильный номер. Номера должны быть 1-2-3-4, но их 1-3-3-4.

Как мне получить правильные цифры?


=== Реакция на ответ ===

Фрэн опубликовалОтветОднако его решение — это всего лишь слабый обходной путь, который не работает должным образом в больших документах с десятками сносок.

Предположим, вы пишете книгу, и таблица с двумя сносками находится на странице 580. Вы создаете сноски, как в обходном пути Фрэн, а через 3 месяца добавляете еще один текст с еще одной сноской на странице 215. Я хочу, чтобы все сноски были правильными даже после добавления или удаления предыдущих сносок.

Пример:

\documentclass{scrbook}
\usepackage{scrlayer-scrpage}
\usepackage{lipsum}
\begin{document}
\chapter*{Issue with footnotes in tables}
\lipsum[1]

% ===========================================================
% Toggle the next line
% Subsequently added text with a new footnote \footnote{additional footnote}
% ===========================================================

\lipsum[66]

Old text with a footnote\footnote{an old footnote} before the table.

\section*{Table}

\begin{tabular}{cl}
$k_B$ & Boltzmann constant\footnotemark[2]\  $k_B = 1,380649 \cdot 10^{23} J/K$\\ 
$f$ & degrees of freedom\footnotemark[3] \\ 
\end{tabular}

\addtocounter{footnote}{2}
\footnotetext[2]{named after Boltzmann}
\footnotetext[3]{Another word for possibilities}

Text immediately after the table\footnote{immediately after the table}

\lipsum[75]

Text with a footnote\footnote{This is the last footnote}
\end{document}

Этот код выводит следующий результат:

правильный вывод

Но затем я добавляю текст с еще одной сноской перед таблицей:

% ===========================================================
% Toggle the next line
Subsequently added text with a new footnote \footnote{additional footnote}
% ===========================================================

и я получаю это:

вывод с ошибками

Теперь неверны не только цифры в сносках внизу страницы, но и цифры в самой таблице.

решение1

\documentclass{scrbook}
\usepackage{scrlayer-scrpage}
\begin{document}
Text before the table\footnote{This is the 1st footnote}

\begin{tabular}{cl}
$k_B$ & Boltzmann constant\footnotemark[2]\  $k_B = 1,380649 \cdot 10^{23} J/K$\\ 
$f$ & degrees of freedom\footnotemark[3] \\ 
\end{tabular}

\addtocounter{footnote}{2}
\footnotetext[2]{named after Boltzmann}
\footnotetext[3]{Another word for possibilities}

Text after the table\footnote{This is the last footnote}

\end{document}

Редактировать

Некоторый тип автоматической настройки по запросу возможен, создавая новую среду для заметок таблицы, когда (1) вы не используете это в плавающих элементах, и (2) конечно, количество \tablefootnotemarks одинаково \tablefootnotextдля каждой таблицы:

мве

\documentclass[a6paper,twocolumn]{scrbook}
\usepackage{scrlayer-scrpage}
\usepackage{lipsum,calc,booktabs,parskip}
\newcounter{tablefootnote}
\newcommand\tablefootnotemark{\footnotemark\addtocounter{tablefootnote}{1}} %
\newenvironment{foo}%
{\edef\ntnotes{\thetablefootnote}\setcounter{footnote}%
{\value{footnote}-\value{tablefootnote}}}%
{\edef\ntnotes{\thefootnote}\setcounter{tablefootnote}{0}}
\newcommand\tablefootnotext[1]{\addtocounter{footnote}{1}   \footnotetext{\texttt{[table]} #1}}

\begin{document}
\raggedright
Bla \footnote{footnote 1} bla \footnote{footnote 2} Bla, \footnote{footnote 3} before the table.

\begin{tabular}{cl}\toprule
$foo$ & bah\tablefootnotemark \\ 
$foo$ & bah\tablefootnotemark \\ 
$foo$ & bah\tablefootnotemark \\ 
$foo$ & bah\tablefootnotemark \\\bottomrule
\end{tabular}
\begin{foo}
\tablefootnotext{footnote 4}
\tablefootnotext{footnote 5}
\tablefootnotext{footnote 6}
\tablefootnotext{footnote 7}
\end{foo}

Bla \footnote{footnote 8} bla \footnote{footnote 9} Bla, \footnote{footnote 10} after the table.

\begin{tabular}{cl}\toprule
$foo$ & bah\tablefootnotemark \\ 
$foo$ & bah\tablefootnotemark \\ 
$foo$ & bah\tablefootnotemark \\\bottomrule
\end{tabular}
\begin{foo}
\tablefootnotext{footnote 11}
\tablefootnotext{footnote 12}
\tablefootnotext{footnote 13}
\end{foo}

Bla \footnote{footnote 14} bla \footnote{footnote 15} Bla, \footnote{footnote 16} after the second table.

\begin{tabular}{cl}\toprule
$foo$ & bah\tablefootnotemark \\ 
$foo$ & bah\tablefootnotemark \\\bottomrule
\end{tabular}
\begin{foo}
\tablefootnotext{footnote 17}
\tablefootnotext{footnote 18}
\end{foo}

Bla \footnote{footnote 19} bla \footnote{footnote 20} Bla, \footnote{footnote 21} after the third table.

\end{document}

решение2

Сноски работают нормально с longtable. СмотретьСноски в таблицах:

\documentclass{scrbook}
\usepackage{longtable}
\begin{document}
Text before the table\footnote{This is the 1st footnote}

\begin{longtable}{cl}
$k_B$ & Boltzmann constant\footnote{named after Boltzmann} $k_B = 1,380649 \cdot 10^{23} J/K$\\ 
$f$ & degrees of freedom\footnote{Another word for possibilities} \\ 
\end{longtable}

Text after the table\footnote{This is the last footnote}
\end{document}

В качестве альтернативы, если вы хотите придерживаться среды tabular, добавьте footnotehyperпакет:

\documentclass{scrbook}
\usepackage{footnotehyper}
\begin{document}
Text before the table\footnote{This is the 1st footnote}

\begin{tabular}{cl}
$k_B$ & Boltzmann constant\footnote{named after Boltzmann} $k_B = 1,380649 \cdot 10^{23} J/K$\\ 
$f$ & degrees of freedom\footnote{Another word for possibilities} \\ 
\end{tabular}

Text after the table\footnote{This is the last footnote}
\end{document}

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