修改目录中的超链接

修改目录中的超链接

我正在使用具有可点击链接hyperref的包\tableofcontents

有没有办法强制超链接\tableofcontents指向给定的页面而不是自动选择的页面?

假设您的 PDF 输出中有一章从第 2 页开始,但您希望目录创建相应的可点击链接以显示第 3 页。

(我在这里寻找一个一般性的答案,因此没有代码/标题)

答案1

也许我完全误解了这个问题:

应该有一个hyperlink看起来像章节条目的东西,但是不是章节的起始页,而是指向其他地方。

我已经完成了一个\nottocchapter像通常的编号章节一样的操作,但被踢出了\addcontentsline那里。

然后我定义了\lookslikeachapterentrybutpointstosomewhereelse(这个名字对于误用适当名称的用户来说很痛苦;-)),它稍后会添加相关的章节条目,并显示其出现的页码。

我推荐这一切吗?不 ;-)

\documentclass{book}

\usepackage{blindtext}
\usepackage{xparse}


\makeatletter

\let\latex@chapter\chapter

\def\currentchaptername{}

\NewDocumentCommand{\notocchapter}{om}{%
  \IfValueTF{#1}{%
    \def\currentchaptername{#1}
  }{%
    \def\currentchaptername{#2}
  }%
  \begingroup
  \renewcommand{\addcontentsline}[3]{}% Do nothing for this chapter
  \IfValueTF{#1}{%
    \latex@chapter[#1]{#2}
  }{%
    \latex@chapter{#2}
  }%
  \endgroup
}

\NewDocumentCommand{\lookslikeachapterentrybutpointstosomewhereelse}{o}{%
  \phantomsection
  \IfValueTF{#1}{%
    \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}%
  }{%
    \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}\currentchaptername}
  }%
}

\makeatother

\usepackage[linktocpage]{hyperref}


\begin{document}

\tableofcontents

\notocchapter{Some chapter}

\blindtext[20] 

\lookslikeachapterentrybutpointstosomewhereelse

\chapter{Some other chapter}

\notocchapter{Another chapter}

\blindtext[40] 

\lookslikeachapterentrybutpointstosomewhereelse[And now for something completely different]


\end{document}

相关内容