使用 enotez 将尾注与文本分离

使用 enotez 将尾注与文本分离

我正在尝试使用以下功能来格式化尾注:

  • 尾注文本与正文分开定义。我可能会将其拉入单独的 .tex 文件中。
  • 每章都有单独的尾注。
  • 尾注可以在一章内被引用多次。
  • 超链接是有效的,至少从参考注释来看是有效的。

我最初使用的是 sepfootnotes 包,但无法让超链接与 \xnotecontent、\xnote、\thexnotes 一起使用。

为了让超链接正常工作,我改用了 enotez,并成功创建了 MWE,但我对为每个尾注定义新宏的方法并不满意。理想情况下,我希望有一个专门定义新尾注的命令,如 sepfootnote 的 \xnotecontent{}{}。

有没有更好的方法来实现我忽略的这个功能集?提前谢谢。

梅威瑟:

\documentclass{report}
\usepackage[reset]{enotez}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=blue}

\begin{document}
\chapter{The first chapter}

\newcommand{\myendnotea}{First endnote.}

I'm about to reference an endnote\endnote{\myendnotea\label{firstendnote}}.

Now I'm going to reference the same endnote again\textsuperscript{\ref{firstendnote}}.

\clearpage
\printendnotes

\clearpage
\chapter{The second chapter}
\newcommand{\myendnoteb}{Second endnote.}

In this chapter I'm going to reference a different endnote\endnote{\myendnoteb}.

\clearpage
\printendnotes
\end{document}

答案1

您让这种方式变得复杂,并且误用了重置选项。试试这个:

\documentclass{report}
\usepackage{enotez}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=blue}

\setenotez{%
reset = true,
}

\makeatletter
\def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}}
\def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}}
\makeatother

\newcommand{\enm}[1]{\endnotemark[\ref{#1}]}

\begin{document}
\chapter{The first chapter}

I'm about to reference an endnote\endnote{First endnote}\label{firstendnote}.

Now I'm going to reference the same endnote again\enm{firstendnote}

\clearpage
\printendnotes

\clearpage
\chapter{The second chapter}

I'm about to reference an endnote\endnote{Second endnote}\label{secondendnote}.

\clearpage
\printendnotes
\end{document}

如果您确实想将尾注与文本分开定义,那么您将需要宏定义或类似文本外的键值对(这似乎是您的反对意见) - 很难找到任何解决方法。如果您确实想完全独立于文本定义尾注(可能是一个坏主意),而根本不需要任何宏定义,您可以使用 bibtex 字段来定义尾注,并在 bib 文件中定义它们。

相关内容