我以前曾使用过\footref
该footmisc
包中的命令来引用尾注。这与该endnotes
包结合使用效果很好:
\documentclass{article}
\usepackage{footmisc,endnotes}
\renewcommand{\footnote}{\endnote}
\begin{document}
\noindent Here is some text.\footnote{And here is an endnote.\label{foot.first}}\\
Here is more text.\footnote{And here is another endnote.\label{foot.second}}\\
Here is my final sentence.\footref{foot.first}\textsuperscript{,}\footref{foot.second}
\theendnotes
\end{document}
但现在我已切换到该enotez
包,它不再正常工作。在下面的 MWE 中,对第一个尾注的引用改为引用第二个尾注。
\documentclass{article}
\usepackage{footmisc,enotez}
\renewcommand{\footnote}{\endnote}
\begin{document}
\noindent Here is some text.\footnote{And here is an endnote.\label{foot.first}}\\
Here is more text.\footnote{And here is another endnote.\label{foot.second}}\\
Here is my final sentence.\footref{foot.first}\textsuperscript{,}\footref{foot.second}
\printendnotes
\end{document}
我怎样才能enotez
引用正确的尾注?
答案1
该enotez
命令\label
应位于尾注文本之外;请参阅第 3.1 节中的最后的示例。
您不需要,footmisc
因为您可以定义\footref
具有enotez
以下功能的命令:
\documentclass{article}
\usepackage{enotez}
\renewcommand{\footnote}{\endnote}
\newcommand{\footref}[1]{%
\enotezwritemark{\enmarkstyle\ref{#1}}%
}
\begin{document}
\noindent Here is some text.\footnote{And here is an endnote.}\label{foot.first}\\
Here is more text.\footnote{And here is another endnote.}\label{foot.second}\\
Here is my final sentence.\footref{foot.first}\textsuperscript{,}\footref{foot.second}
\printendnotes
\end{document}
如果您有多个实例\footref
,则可以考虑使用缩写语法:
\documentclass{article}
\usepackage{enotez}
\renewcommand{\footnote}{\endnote}
\ExplSyntaxOn
\NewDocumentCommand{\footref}{m}
{
\sverre_footref:n { #1 }
}
\seq_new:N \l_sverre_footrefs_seq
\cs_new_protected:Npn \sverre_footref:n #1
{
\seq_clear:N \l_sverre_footrefs_seq
\clist_map_inline:nn { #1 }
{
\seq_put_right:Nn \l_sverre_footrefs_seq
{ \enotezwritemark{\enmarkstyle\ref{##1}} }
}
\seq_use:Nn \l_sverre_footrefs_seq { \textsuperscript{,} }
}
\ExplSyntaxOff
\begin{document}
\noindent Here is some text.\footnote{And here is an endnote.}\label{foot.first}\\
Here is more text.\footnote{And here is another endnote.}\label{foot.second}\\
Here is my final sentence.\footref{foot.first,foot.second}
\printendnotes
\end{document}
答案2
或者(自 2022 年起),改用postnotes
,因为\label{...}
它以典型/逻辑的方式工作,并且该包具有您可能喜欢的进一步交叉引用功能。引用手册中的一段话:
使用后记进行交叉引用的工作方式非常标准:设置标签,然后引用它。但是,有两种方法可以为笔记设置标签。一个人可以使用 的选项设置标签
label
,\postnote
也可以直接使用 标准 将其\label
作为笔记内容的一部分进行设置。这两种方式都有效,但并不等效,它们具有不同的含义,因此行为也不同。[¶] 使用 选项设置的标签label
在 的位置设置\postnote
。笔记内容中 设置的标签\label
只是存储起来,只有在 处排版此内容时才会扩展\printpostnotes
。简而言之,label
选项属于“标记”,而\label
内容中的设置属于“文本”。
\documentclass{article}
\usepackage{footmisc,postnotes}
\renewcommand{\footnote}{\postnote}
\begin{document}
\noindent Here is some text.\footnote{And here is an endnote.\label{foot.first}}\\
Here is more text.\footnote{And here is another endnote.\label{foot.second}}\\
Here is my final sentence.\footref{foot.first}\textsuperscript{,}\footref{foot.second}
\printpostnotes
\end{document}