\label{uniqueID} 与 \pageref{uniqueID} 配合使用可以打印正确的页码,但会链接到错误的页面

\label{uniqueID} 与 \pageref{uniqueID} 配合使用可以打印正确的页码,但会链接到错误的页面

我需要构建一个类似于指数...但它并不完全是一个指数。

我几乎完成了我想要做的事情,用来\label{some unique ID}捕获页码...并\pageref{some unique ID}打印该页码。

然而,在以下 MWE 中, \pageref 确实打印了正确的页码......但它链接到了错误的页面(它链接到包含页面的章节的第一页some unique ID)。

我想(a)把它变成链接关闭(因为我的超链接无论如何都使用正确的超目标,...或(2)修复它以链接到正确的页面。

非常感谢您的帮助!

%&pdf laTeX
% !TEX encoding = UT F-8 Unicode
\documentclass[letter, 12pt]{book}

 
\usepackage{hyperref}

\newcommand{\mylink}[2]{ \hypertarget{#1}{#2} \label{#1}}


\begin{document}
    
    \chapter*{Chapter One}  
       \mylink{key for  link 1}{This} text on page one.
    
    \newpage
       \mylink{key for  link 2}{This} text on page two. 
    
    \newpage
       \mylink{key for  link 3}{This} text on page three.

    
    \newpage            
        \noindent \hyperlink{key for  link 1} {Item 1} ............ pg \pageref{key for  link 1}\\  
        \noindent \hyperlink{key for  link 2} {Item 2} ............ pg \pageref{key for  link 2}\\  
        \noindent \hyperlink{key for  link 3} {Item 3} ............ pg \pageref{key for  link 3}\\


\end{document}

答案1

\hypertarget 没有产生可被 \label 引用的目标。

\documentclass[letter, 12pt]{book}


\usepackage{hyperref}

\newcommand{\mylink}[2]{ \phantomsection#2\label{#1}}


\begin{document}

    \chapter*{Chapter One}
       \mylink{key for  link 1}{This} text on page one.

    \newpage
       \mylink{key for  link 2}{This} text on page two.

    \newpage
       \mylink{key for  link 3}{This} text on page three.


    \newpage
        \noindent \hyperref[key for  link 1] {Item 1} ............ pg \pageref{key for  link 1}\\
        \noindent \hyperref[key for  link 2] {Item 2} ............ pg \pageref{key for  link 2}\\
        \noindent \hyperref[key for  link 3] {Item 3} ............ pg \pageref{key for  link 3}\\


\end{document}

相关内容