我正在使用 footmisc 包来引用脚注。我遇到的问题是,当我引用不同页面上的脚注时,latex 不会在该页面上重现脚注,我希望它能够重现该脚注,这样就无需返回该页面查看脚注了。
\documentclass{article}
\usepackage{footmisc}
\begin{document}
Example\footnote{\label{test}Some footnote}
\newpage
Example\footref{test}
\end{document}
例如,上面的文本创建了一个有 2 页的文档,我希望脚注出现在每一页上。在这里我强制分页,但在我的文档中,分页符可以出现在任何地方。
答案1
我想这就是你想要的。
基本思路是制作自定义\footnote
宏\footref
。自定义\footnote
宏在插入脚注之前保存当前页码和脚注文本。然后自定义宏\footref
检查当前页面是否与脚注首次出现的页面不同。如果不同,它会插入一个具有正确编号的新脚注,否则它只会插入引用。
\documentclass{article}
\usepackage{etoolbox}
\usepackage{refcount}
\usepackage{footmisc}
% temporary counter to save footnote number
\newcounter{foottmpcnt}
% custom \footnote command
% #1: label
% #2: footnote text
\newcommand{\myfootnote}[2]{%
\csgdef{footnote@text@#1}{#2}%
\global\newcounter{footnote@page@#1}%
\setcounter{footnote@page@#1}{\value{page}}%
\footnote{\label{#1}#2}}
% custom \footref command
% #1: label
\newcommand{\myfootref}[1]{%
\footref{#1}%
\ifnumcomp{\value{footnote@page@#1}}{=}{\value{page}}
{}
{\setcounter{foottmpcnt}{\value{footnote}}%
\setcounter{footnote}{\getrefnumber{#1}}%
\footnotetext{\csuse{footnote@text@#1}}%
\setcounter{footnote}{\value{foottmpcnt}}%
\setcounter{footnote@page@#1}{\value{page}}}}
\begin{document}
Example\myfootnote{testa}{Some footnote}
Example\myfootnote{testb}{Some footnote}
Example\myfootref{testa}
\newpage
Example\myfootnote{testc}{Some footnote}
Example\myfootref{testa}
Example\myfootnote{testd}{Some footnote}
Example\myfootref{testc}
Example\myfootref{testa}
\newpage
Example\myfootref{testa}
Example\myfootref{testc}
\end{document}