我正在尝试使用以下功能来格式化尾注:
- 尾注文本与正文分开定义。我可能会将其拉入单独的 .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 文件中定义它们。