編集:

編集:

私のコードは次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.styloaded inの定義は次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

さて、41 ページのドキュメントを開くと、hyperref次のことがわかります。

ここに画像の説明を入力してください

また、すでにリンクされている質問のこの回答

ただし、パッケージを呼び出した後に使用したコードを削除/コメントすると、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 は次のようになります。

リンク付きページ1

赤い円内のリンクをクリックすると、要求どおりにページ 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 を変更せずに、次の結果が得られました。これは、青いリンクを含め、あなたの結果と同じようです。

結果の脚注

関連情報