如何多次引用同一个脚注?

如何多次引用同一个脚注?

我正在使用这个memoir课程。

在页面的某些部分,有多个地方需要用相同的脚注进行注释。

Lorem ipsum dolor[1] sit amet, consectetur adipiscing elit[2], sed do eiusmod tempor incididunt ut labore et dolore[1] magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor[1] in reprehenderit in voluptate velit esse cillum dolore[1] eu fugiat nulla pariatur。 excepteur sint occaecat cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。


1:附录关于痛苦

2:附录:精英

目前,我正在手动指定脚注,例如ipsum dolor\footnote[1]{See \emph{Appendix on dolors}.} sit amet。然后我必须手动添加其他脚注标记:labore et dolore\textsuperscript{1} magna aliqua

但我不想手动跟踪脚注的编号。它们经常被移动,我总是忘记。此外,我不应该手动跟踪编号,Latex 应该会帮我做这件事。

我可以使用什么命令来多次引用同一个脚注,以便脚注自动编号?

答案1

使用 Andrews MWE 并添加一些 Heiko 魔法:

\documentclass{memoir}
\usepackage[height=30mm]{geometry}%
\usepackage{refcount}
\begin{document}
  One footnote\footnote{A wonderful footnote!\label{foot}}
  and a second one\footnote{A less wonderful footnote!\label{toe}}.

  The last footnote, \ref{foot}, is really nice. I like
  footnote~\ref{foot} more than footnote \ref{toe}. Here is another
  footnote with the first footnote marker\footnotemark[\getrefnumber{foot}]
  and a second footnote with the second foot note
  marker\footnotemark[\getrefnumber{toe}].

\end{document}

关键是\ref{...}给出数字 + \hbox{},因此\footnotemark不喜欢它,因为它期望一个数字。

如果使用数字以外的其他内容来标记脚注,则解决方案可能会失败。

注意如何\label添加里面脚注。

答案2

\label使用标准和命令确实应该能够做您想做的事情\ref,但是,这并不起作用,因为\footnote没有设置\@currentlabelLaTeX 用来“记住”最后一个标签的内容。

显而易见的解决方法是记住\footnote最后使用的标签,它调用\@thefnmark。您可以使用\apptocmdetoolbox 包

\makeatletter
\apptocmd{\@footnotetext}{\def\@currentlabel{\@thefnmark}}{}{}
\makeatother

(事实证明这\@footnotetext就是需要改变的事情。)这是完整的 MWE:

在此处输入图片描述

以及随附的代码:

\documentclass{memoir}
\usepackage[height=30mm]{geometry}%
\usepackage{etoolbox}
\makeatletter
\apptocmd{\@footnotetext}{\def\@currentlabel{\@thefnmark}}{}{}
\newcommand\footnoteref[1]{\ifcsmacro{r@#1}{\footnotemark[\ref{#1}]}{$^{??}$}}
\makeatother
\begin{document}
  One footnote\footnote{A wonderful footnote!}\label{foot}
  and a second one\footnote{A less wonderful footnote!}\label{toe}.

  The last footnote, \ref{foot}, is really nice. I like
  footnote~\ref{foot} more than footnote \ref{toe}. Here is another
  footnote with the first footnote marker\footnoteref{foot}
  and a second footnote with the second foot note
  marker\footnoteref{toe}.
\end{document}

编辑该宏\footnoteref对于放置重复的脚注标签很方便,但它也是必需的,因为如果没有它,当您第一次定义新标签时,代码将无法编译,尽管在后续的所有传递中它都会正常。在第一次传递时,当标签未定义时,MWE 会产生以下内容:

在此处输入图片描述

正如@dalief 指出的那样,最好加上脚注里面 \footnote{...}而不是\@footnotemark像我上面所做的那样重新定义。

答案3

一个解决方案可能是包fixfoot

平均能量损失

\documentclass[12pt]{memoir}
\usepackage[bmargin=20cm,lmargin=6cm,rmargin=6cm]{geometry}
\usepackage{fixfoot,xspace}
\usepackage[colorlinks]{hyperref}

\DeclareFixedFootnote{\foobar}{Run \texttt{pdflatex} two times.}
\DeclareFixedFootnote*{\foo}{A wonderful footnote!}
\DeclareFixedFootnote*{\baz}{A more wonderful footnote!}

\begin{document}

Compile this twice \foobar. One footnote,\foo and another.\baz 
The last footnote\baz is really nice. I like this footnote\baz 
more than footnote\foo, but check that the PDF is correctly 
generated.\foobar 

\end{document}

答案4

由于创建脚注后需要重复脚注引用,因此实际上不需要运行两次 LaTeX 的\label/系统。相反,可以将计数器的当前值保存在宏中,并且带有数字的宏将成为 的参数:\reffootnote\footnotemark

\documentclass{memoir}
\usepackage[height=30mm]{geometry}%

\begin{document}
  Lorem ipsum dolor%
  \footnote{See \emph{Appendix on dolors}}%
  \edef\thefndolors{\the\value{footnote}}
  sit amet, consectetur adipiscing elit%
  \footnote{See \emph{Appendix on elites}},%
  sed do eiusmod tempor incididunt ut labore et
  dolore\footnotemark[\thefndolors] magna aliqua. Ut enim ad minim
  veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
  ea commodo consequat. Duis aute irure dolor\footnotemark[\thefndolors]
  in reprehenderit in voluptate velit esse cillum
  dolore\footnotemark[\thefndolors] eu fugiat nulla pariatur.
  Excepteur sint occaecat cupidatat non proident, sunt in culpa
  qui officia deserunt mollit anim id est laborum.
\end{document}

结果

相关内容