我使用脚注和尾注以及包尾注(尾注中也有脚注)。我想在尾注的末尾添加一个链接,链接回打开它的链接位置(除了定义尾注的位置外,其他尾注中也可能有对尾注的多个引用)。
\documentclass{article}
\usepackage[usenames]{color}
\usepackage{hyperref}
\hypersetup{
colorlinks=true, %RR colors links instead of ugly boxes
linkcolor=red
}
%% \ref replacement to color the term also eg \rrref{figure}{fig:blabla}
\def\rrref#1#2{\hyperref[#2]{#1\,}\ref{#2}}
%% multi-par endnote with label: #1=topicname #2=reflabel #3=notetext
\usepackage{endnotes}
%RR normal number https://tex.stackexchange.com/questions/202542/ = egreg
\renewcommand\enoteformat{%
\makebox[0pt][r]{\theenmark. \rule{0pt}{\dimexpr\ht\strutbox+\baselineskip}}}
\usepackage{mfirstuc}
\long\def\rrendnote#1#2#3{%
\phantomsection\label{#2main}% %RR up front to jump back to start
\stepcounter{endnote}%
\hyperref[#2]{[{\color{red}{\bf {\em \theendnote\ #1\/}}}]}%
{\endnotetext{\phantomsection\label{#2}% %RR StExch trick to jump correctly
\parindent=3ex
{\bf {\em \nopagebreak\xmakefirstuc{#1}\/}}\\[0.5ex]% %RR first upper case
{~\,#3}% %RR note body
~~\hyperref[#2main]{[{\em Main call\/}]}%
}}}
%RR fatter footnote numbers https://tex.stackexchange.com/questions/68580/
\makeatletter
\renewcommand{\@makefnmark}{\hbox{\textsuperscript{\bf\scriptsize{\@thefnmark}}}}
\makeatother
%RR clicking footnotenumber jumps back to text location (not for endnotes)
\usepackage{footnotebackref}
\begin{document}
\parindent=0ex
\parskip=3ex %% to make jump-to location clear
Bla bla bla \rrendnote{first endnote}{note:1}{%
This is the first endnote.}.
Bla bla bla \rrendnote{second endnote}{note:2}{%
This is the second endnote. In here I
refer to the first: see \rrref{endnote}{note:1}.
Now in endnote 1 I would like to add a clicker [Back] at the
end that jumps back to its link here, before the [Main call]
clicker that jumps back to the call in the main text.
There may be more such links to an endnote.}.
Bla bla bla.
%% endnotes
\begingroup
\def\enotesize{\normalsize} %RR normal readability
\newpage
\renewcommand*{\enoteheading}{} %RR get rid of default Notes
\section*{Notes}
\mbox{}\vspace*{-3ex} %RR fix white space, no idea why
~~\theendnotes %RR ~~ fix the first, no idea why
\endgroup
\end{document}
答案1
由于跳转到目标的链接不止一个,因此返回需要借助 pdf 查看器。最简单的返回方法是使用GoBack
通常通过 访问的Alt + left arrow
。
您可以添加与以下命令执行相同操作的操作\Acrobatmenu
:
\documentclass{article}
\usepackage[usenames]{color}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=red
}
\begin{document}
\section{Test}\label{test}
\Acrobatmenu{GoBack}{Back}
\newpage
Ref 1: \ref{test}
\newpage
Ref 2: \ref{test}
\end{document}
答案2
Ulrike Fischer 建议使用 \Acrobatmenu{GoBack}{Back} 就是答案:在上面的例子中,我在“%RR note body”行下方添加了“~~[\Acrobatmenu{GoBack}{\em Back\/}]”。它在每个尾注的末尾添加了一个 [Back] 点击器,它们可以完成工作 - 但只是部分工作:在 Ubuntu 中,它们可以在 acroread、xpdf、firefox pdf viewer 中使用,但不适用于 evince 和 chrome pdf viewer。在 macOS 中,它们可以在 Preview 和 Firefox pdf viewer 中使用,但不适用于 Safari pdf viewer。当它们不工作时,什么也不会发生(在 evince 中,我在启动 evince 的终端中收到一条可忽略的错误消息)。我可以接受这种部分成功,因为我的大多数目标读者都使用 macOS Preview。