我有一个 LaTeX 文档,其中我使用“hyperref”包在文档的不同部分之间创建链接。链接从一个单词指向另一个部分中的某段文本。我使用“book”文档类。在我创建目录之前,链接工作正常。一旦我创建了目录,链接就不再指向目标中的文本,而是指向目录中的相应部分。
我怎样才能继续使用目录并创建直接指向文档中某段文本的链接?
编辑:最低限度的工作示例
\documentclass{book}
\usepackage[dvipdfm]{hyperref}
% Defining a new command for safely creating targets in the section title
\newcommand{\targetInTitle}[2]{\texorpdfstring{\protect\hypertarget{#1}{#2}}{}}
\begin{document}
\tableofcontents
\newpage
\section{\targetInTitle{section1}{Section 1}}
Here is a \hyperlink{section1}{link} which suppose to show me the title of this section on the top of page 2 but, instead, it refers me to the table of contents on page 1.
\end{document}
dvipdfm 操作中还有一个警告,
$ dvipdfm test.dvi
test.dvi -> test.pdf
[1][2
xdvipdfmx:warning: Object @section1 already defined.
]
9131 bytes written
答案1
由于目标也移动到了目录中,因此您创建了两次目标。例如,您可以使用 NoHyper 环境来隐藏目录中的目标:
\documentclass{book}
\usepackage[dvipdfm]{hyperref}
% Defining a new command for safely creating targets in the section title
\newcommand{\targetInTitle}[2]{\texorpdfstring{\protect\hypertarget{#1}{#2}}{}}
\begin{document}
\begin{NoHyper}
\tableofcontents
\end{NoHyper}
\newpage
\section{\targetInTitle{section1}{Section 1}}
Here is a \hyperlink{section1}{link} which suppose to show me the title of this section on the top of page 2 but, instead, it refers me to the table of contents on page 1.
\end{document}