编辑:

编辑:

我的代码mwe.tex是:

\documentclass{book}

\usepackage{ragged2e}%
\usepackage[pdftex,bookmarks=false,bookmarksopen=false,colorlinks=true,citecolor=blue,linkcolor=blue,urlcolor=blue,breaklinks=true,linktocpage=true,hyperfootnotes=true]{hyperref}%
\usepackage{endnotes}%
\makeatletter
\newbox\endnotebox%
\setbox\endnotebox=\hbox{11}%

\newlength{\enotehangalign}%
\setlength{\enotehangalign}{13\p@}%

\AtBeginDocument{%
\def\enoteformat{%
\def\@makeenmark{\hbox to \wd\endnotebox{\hss{\normalfont\@theenmark}}}%
\rightskip\z@ \leftskip\z@ \parindent=\z@\parskip\z@\def\@textsuperscript{}\hangindent\enotehangalign%
  \leavevmode{\makeenmark\ignorespaces\enskip\ignorespaces}\RaggedRight}%
\def\enoteheading{\section*{Notes}%
}%
\def\enotesize{\fontsize{8}{10}\selectfont}%
}%
\@addtoreset{endnote}{chapter}%
\usepackage{hyperendnote}

\makeatother
\begin{document}

This is for test\endnote{Test}

\clearpage

\theendnotes
\end{document}

hyperendnote.sty并且loaded的定义mwe.tex是:

%%% hyperendnotes.sty
\makeatletter
\newif\ifenotelinks
\newcounter{Hendnote}
% Redefining portions of endnotes-package:
\let\savedhref\href
\let\savedurl\url
\def\endnotemark{%
\@ifnextchar[\@xendnotemark{%
\stepcounter{endnote}%
\protected@xdef\@theenmark{\theendnote}%
\protected@xdef\@theenvalue{\number\c@endnote}%
\@endnotemark
}%
}%
\def\@xendnotemark[#1]{%
\begingroup\c@endnote#1\relax
\unrestored@protected@xdef\@theenmark{\theendnote}%
\unrestored@protected@xdef\@theenvalue{\number\c@endnote}%
\endgroup
\@endnotemark
}%
\def\endnotetext{%
\@ifnextchar[\@xendnotenext{%
\protected@xdef\@theenmark{\theendnote}%
\protected@xdef\@theenvalue{\number\c@endnote}%
\@endnotetext
}%
}%
\def\@xendnotenext[#1]{%
\begingroup
\c@endnote=#1\relax
\unrestored@protected@xdef\@theenmark{\theendnote}%
\unrestored@protected@xdef\@theenvalue{\number\c@endnote}%
\endgroup
\@endnotetext
}%
\def\endnote{%
\@ifnextchar[\@xendnote{%
\stepcounter{endnote}%
\protected@xdef\@theenmark{\theendnote}%
\protected@xdef\@theenvalue{\number\c@endnote}%
\@endnotemark\@endnotetext
}%
}%
\def\@xendnote[#1]{%
\begingroup
\c@endnote=#1\relax
\unrestored@protected@xdef\@theenmark{\theendnote}%
\unrestored@protected@xdef\@theenvalue{\number\c@endnote}%
\show\@theenvalue
\endgroup
\@endnotemark\@endnotetext
}%
\def\@endnotemark{%
\leavevmode
\ifhmode
\edef\@x@sf{\the\spacefactor}\nobreak
\fi
\ifenotelinks
\expandafter\@firstofone
\else
\expandafter\@gobble
\fi
{%
\Hy@raisedlink{%
\hyper@@anchor{Hendnotepage.\@theenvalue}{\empty}%
}%
}%
\hyper@linkstart{link}{Hendnote.\@theenvalue}%
\makeenmark
\hyper@linkend
\ifhmode
\spacefactor\@x@sf
\fi
\relax
}%
\long\def\@endnotetext#1{%
\if@enotesopen
\else
\@openenotes
\fi
\immediate\write\@enotes{%
\@doanenote{\@theenmark}{\@theenvalue}%
}%
\begingroup
\def\next{#1}%
\newlinechar='40
\immediate\write\@enotes{\meaning\next}%
\endgroup
\immediate\write\@enotes{%
\@endanenote
}%
}%
\def\theendnotes{%
\immediate\closeout\@enotes
\global\@enotesopenfalse
\begingroup
\makeatletter
\edef\@tempa{`\string>}%
\ifnum\catcode\@tempa=12
\let\@ResetGT\relax
\else
\edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}%
\@makeother\>%
\fi
\def\@doanenote##1##2##3>{%
\def\@theenmark{##1}%
\def\@theenvalue{##2}%
\par
\smallskip %<-small vertical gap between endnotes
\begingroup
\def\href{\expandafter\savedhref}%
\def\url{\expandafter\savedurl}%
\@ResetGT
\edef\@currentlabel{\csname p@endnote\endcsname\@theenmark}%
\enoteformat
}%
\def\@endanenote{%
\par\endgroup
}%
% Redefine, how numbers are formatted in the endnotes-section:
\renewcommand*\@makeenmark{%
\hbox{\normalfont\@theenmark~}%
}%
% header of endnotes-section
\enoteheading
% font-size of endnotes
\enotesize
\input{\jobname.ent}%
\endgroup
}%
\def\enoteformat{%
\rightskip\z@
\leftskip1.8em
\parindent\z@
\leavevmode\llap{%
\setcounter{Hendnote}{\@theenvalue}%
\addtocounter{Hendnote}{-1}%
\refstepcounter{Hendnote}%
\ifenotelinks
\expandafter\@secondoftwo
\else
\expandafter\@firstoftwo
\fi
{\@firstofone}%
{\hyperlink{Hendnotepage.\@theenvalue}}%
{\makeenmark}%
}%
}%
% stop redefining portions of endnotes-package:
\makeatother
% Toggle switch in order to turn on/off back-links in the
% endnote-section:
\enotelinkstrue
%\enotelinksfalse

但是链接endnote不起作用,有人能指出我做错了什么吗?

hyperendnote.sty顺便说一句:我有来自的代码这个问题。

请参考尾注输出的图像,我需要设置:

在此处输入图片描述

答案1

hyperref好吧,如果你打开第 41 页的文档,你会发现:

在此处输入图片描述

并且还提到你已经链接的问题中的这个答案

尽管如此,如果您在调用包后删除/注释掉您使用的代码,则endnotes生成的 pdf 会显示一个链接的脚注 1,您可以单击它来显示脚注 1。

以下 MWE

\begin{filecontents*}{hyperendnote.sty}
%%% hyperendnotes.sty
\makeatletter
\newif\ifenotelinks
\newcounter{Hendnote}
% Redefining portions of endnotes-package:
\let\savedhref\href
\let\savedurl\url
\def\endnotemark{%
\@ifnextchar[\@xendnotemark{%
\stepcounter{endnote}%
\protected@xdef\@theenmark{\theendnote}%
\protected@xdef\@theenvalue{\number\c@endnote}%
\@endnotemark
}%
}%
\def\@xendnotemark[#1]{%
\begingroup\c@endnote#1\relax
\unrestored@protected@xdef\@theenmark{\theendnote}%
\unrestored@protected@xdef\@theenvalue{\number\c@endnote}%
\endgroup
\@endnotemark
}%
\def\endnotetext{%
\@ifnextchar[\@xendnotenext{%
\protected@xdef\@theenmark{\theendnote}%
\protected@xdef\@theenvalue{\number\c@endnote}%
\@endnotetext
}%
}%
\def\@xendnotenext[#1]{%
\begingroup
\c@endnote=#1\relax
\unrestored@protected@xdef\@theenmark{\theendnote}%
\unrestored@protected@xdef\@theenvalue{\number\c@endnote}%
\endgroup
\@endnotetext
}%
\def\endnote{%
\@ifnextchar[\@xendnote{%
\stepcounter{endnote}%
\protected@xdef\@theenmark{\theendnote}%
\protected@xdef\@theenvalue{\number\c@endnote}%
\@endnotemark\@endnotetext
}%
}%
\def\@xendnote[#1]{%
\begingroup
\c@endnote=#1\relax
\unrestored@protected@xdef\@theenmark{\theendnote}%
\unrestored@protected@xdef\@theenvalue{\number\c@endnote}%
\show\@theenvalue
\endgroup
\@endnotemark\@endnotetext
}%
\def\@endnotemark{%
\leavevmode
\ifhmode
\edef\@x@sf{\the\spacefactor}\nobreak
\fi
\ifenotelinks
\expandafter\@firstofone
\else
\expandafter\@gobble
\fi
{%
\Hy@raisedlink{%
\hyper@@anchor{Hendnotepage.\@theenvalue}{\empty}%
}%
}%
\hyper@linkstart{link}{Hendnote.\@theenvalue}%
\makeenmark
\hyper@linkend
\ifhmode
\spacefactor\@x@sf
\fi
\relax
}%
\long\def\@endnotetext#1{%
\if@enotesopen
\else
\@openenotes
\fi
\immediate\write\@enotes{%
\@doanenote{\@theenmark}{\@theenvalue}%
}%
\begingroup
\def\next{#1}%
\newlinechar='40
\immediate\write\@enotes{\meaning\next}%
\endgroup
\immediate\write\@enotes{%
\@endanenote
}%
}%
\def\theendnotes{%
\immediate\closeout\@enotes
\global\@enotesopenfalse
\begingroup
\makeatletter
\edef\@tempa{`\string>}%
\ifnum\catcode\@tempa=12
\let\@ResetGT\relax
\else
\edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}%
\@makeother\>%
\fi
\def\@doanenote##1##2##3>{%
\def\@theenmark{##1}%
\def\@theenvalue{##2}%
\par
\smallskip %<-small vertical gap between endnotes
\begingroup
\def\href{\expandafter\savedhref}%
\def\url{\expandafter\savedurl}%
\@ResetGT
\edef\@currentlabel{\csname p@endnote\endcsname\@theenmark}%
\enoteformat
}%
\def\@endanenote{%
\par\endgroup
}%
% Redefine, how numbers are formatted in the endnotes-section:
\renewcommand*\@makeenmark{%
\hbox{\normalfont\@theenmark~}%
}%
% header of endnotes-section
\enoteheading
% font-size of endnotes
\enotesize
\input{\jobname.ent}%
\endgroup
}%
\def\enoteformat{%
\rightskip\z@
\leftskip1.8em
\parindent\z@
\leavevmode\llap{%
\setcounter{Hendnote}{\@theenvalue}%
\addtocounter{Hendnote}{-1}%
\refstepcounter{Hendnote}%
\ifenotelinks
\expandafter\@secondoftwo
\else
\expandafter\@firstoftwo
\fi
{\@firstofone}%
{\hyperlink{Hendnotepage.\@theenvalue}}%
{\makeenmark}%
}%
}%
% stop redefining portions of endnotes-package:
\makeatother
% Toggle switch in order to turn on/off back-links in the
% endnote-section:
\enotelinkstrue
%\enotelinksfalse
\end{filecontents*}


\documentclass{book}

\usepackage{ragged2e}
\usepackage[%  
  pdftex,
  bookmarks=false,bookmarksopen=false,
  colorlinks=true,citecolor=blue,linkcolor=blue,urlcolor=blue,
  breaklinks=true,
  linktocpage=true,
  hyperfootnotes=true
]{hyperref}
\usepackage{endnotes}

%\makeatletter
%\newbox\endnotebox%
%\setbox\endnotebox=\hbox{11}%
%
%\newlength{\enotehangalign}%
%\setlength{\enotehangalign}{13\p@}%
%
%\AtBeginDocument{%
  %\def\enoteformat{%
  %\def\@makeenmark{\hbox to \wd\endnotebox{\hss{\normalfont\@theenmark}}}%
  %\rightskip\z@ \leftskip\z@ \parindent=\z@\parskip\z@\def\@textsuperscript{}\hangindent\enotehangalign%
    %\leavevmode{\makeenmark\ignorespaces\enskip\ignorespaces}\RaggedRight}%
  %\def\enoteheading{\section*{Notes}%
  %}%
  %\def\enotesize{\fontsize{8}{10}\selectfont}%
%}%
%\@addtoreset{endnote}{chapter}%
%\makeatother
\usepackage{hyperendnote}


\begin{document}

This is for test\endnote{Test}

\clearpage

\theendnotes
\end{document}

以及生成的pdf:

第一页有链接

点击红色圆圈内的链接后,您将看到所请求的第 2 页:

第2页

编辑:

添加代码

\chapter{Test 1}
This is for test\endnote{Test}. 
This is for test\endnote{Test 2}. 
This is for test\endnote{Test 3}. 
This is for test\endnote{Test 4}. 
This is for test\endnote{Test 5}. 
This is for test\endnote{Test 6}. 
This is for test\endnote{Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 
  Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 Test 7
  Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 Test 7 
  Test 7 Test 7 Test 7 Test 7}. 
This is for test\endnote{Test 8}. 
This is for test\endnote{Test 9}. 
This is for test\endnote{Test 10}. 
This is for test\endnote{Test 11}. 

并且我给出的初始 MWE 没有发生其他变化,我得到了以下结果,这似乎与您的结果(包括蓝色链接)相等:

产生的尾注

相关内容