我正在使用具有可点击链接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}