我需要显示相应的页码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}