
Я хочу иметь больше одной сноски в таблице. Но тогда счетчик сносок увеличился слишком много раз к тому времени, как я добрался до первой \footnotetext
. Как лучше всего заставить это работать правильно?
\documentclass{article}
\begin{document}
\ \vfill\
\begin{tabular}{|r|l|}
\hline
First & footnote.\footnotemark \\
Second & footnote.\footnotemark \\
Third & footnote.\footnotemark \\
\hline
\end{tabular}
\footnotetext{First} \footnotetext{Second} \footnotetext{Third}
Fourth footnote.\footnote{Four}
\
\end{document}
решение1
\footnotemark
Значение счетчика увеличивается , но при использовании footnote
происходит рассинхронизация .\footnotetext
Нужно сбросить footnote
счетчикпослеокружающая tabular
среда для государствадо. Это можно сделать вручную, но это может стать утомительным, если значения изменятся, или с помощью фиктивного счетчика, который хранит счетчик footnote
до tabular
и затем восстанавливает исходное число после tabular
(здесь это делается с помощью команд \AtBeginEnvironment
и \AfterEndEnvironment
из etoolbox
пакета).
Однако \footnotetext
не увеличивает footnote
. Либо используйте pretocmd
подход --, либо используйте макрос-обертку \myfootnotetext
, который выполняет этот шаг автоматически. (Или делайте это вручную.)
\documentclass{article}
\newcommand{\myfootnotetext}[1]{%
\stepcounter{footnote}\footnotetext{#1}%
}
\newcounter{dummycounter}
\usepackage{etoolbox}
\AtBeginEnvironment{tabular}{%
\setcounter{dummycounter}{\value{footnote}}%
}
\AfterEndEnvironment{tabular}{%
\setcounter{footnote}{\value{dummycounter}}%
}
\begin{document}
\begin{tabular}{|r|l|}
\hline
First & footnote.\footnotemark \\
Second & footnote.\footnotemark \\
Third & footnote.\footnotemark \\
\hline
\end{tabular}
\myfootnotetext{First}
\myfootnotetext{Second} \myfootnotetext{Third}
Fourth footnote.\footnote{Four}
%\
\end{document}
решение2
Если вы хотите рассмотреть возможность использования table
среды, tablefootnote
пакет решит вашу проблему:
\documentclass[colorlinks]{article}%
\usepackage{footnotebackref}
\usepackage{tablefootnote}
\begin{document}
\mbox{}\vfill
A first footnote\footnote{First}
\begin{table}[htbp]
\renewcommand\arraystretch{1.5}
\begin{tabular}{|r|l|}
\hline
First & footnote.\tablefootnote{Second} \\
Second & footnote.\tablefootnote{Third} \\
Third & footnote.\tablefootnote{Fourth} \\
\hline
\end{tabular}
\end{table}
Fifth footnote.\footnote{Fifth}
\end{document}