需要尾注编号的超链接(尾注编号是页码)

需要尾注编号的超链接(尾注编号是页码)

我需要显示相应的页码endnotes而不是实际的endnote数字,为此,我修改了以下代码:

\documentclass{book}
\usepackage{lipsum,ragged2e}
\usepackage{endnotes}%
\usepackage{hyperref}

\makeatletter
\def\enoteformat{%
\leftskip\z@\RaggedRight\parindent=\z@\parskip\z@\def\@textsuperscript{}%
  \@hangfrom{\leavevmode{\hbox to 20\p@{\makeenmark\hss}\ignorespaces}}}%
\def\enoteheading{\chapter*{Notes}%
}%
\def\enotesize{\fontsize{9}{12}\selectfont}%
\let\theendnote=\thepage
\makeatother

\begin{document}
\chapter{Chapter 1}

\lipsum[1-1]\endnote{End note on first page}

\chapter{Chapter 2}

\lipsum[1-1]\endnote{End note on third page}

\clearpage

\theendnotes

\end{document}

输出

在此处输入图片描述

其中,我需要hyperlink数字endnote(相应的页码),请建议...

答案1

Hyperref 已经为表单页面page.1等提供了锚点。棘手的是它\theendnote给出的是当前页面,而不是原始页面。

您可以忽略\label\ref。我只是在试验。

\documentclass{book}
\usepackage{lipsum,ragged2e}
\usepackage{endnotes}%
\usepackage{hyperref}
\usepackage{etoolbox}

\makeatletter
\def\enoteformat{%
\leftskip\z@\RaggedRight\parindent=\z@\parskip\z@\def\@textsuperscript{}%
  \@hangfrom{\leavevmode{\hbox to 20\p@{\hyperlink{page.\@theenmark}{\makeenmark}\hss}\ignorespaces}}}%
\def\enoteheading{\chapter*{Notes}%
}%
\def\enotesize{\fontsize{9}{12}\selectfont}%
\let\theendnote=\thepage
\makeatother

\begin{document}
\chapter{Chapter 1}

\lipsum[1-1]\endnote{End note on first page\label{test}}

\ref{test}

\ref{second}

\chapter{Chapter 2}

\lipsum[1-1]\endnote{End note on third page\label{second}}

\clearpage

\theendnotes

\end{document}

相关内容