我正在使用 hyperref 包在输出文件中启用 PDF 链接和书签。我想实现以下行为([]
表示可点击区域}
1 [The first chapter] .............. 3
2 [The second chapter] ............. 8
当使用linktoc=section
hyperref 中的选项时,我可以实现这一点:
[1 The first chapter] .............. 3
[2 The second chapter] ............. 8
这并不是我真正想要的。
有人知道解决方案吗?
答案1
下面的补丁应该有效:
\usepackage{etoolbox}
\makeatletter
\def\process@contentsline#1#2{#1#2\hyper@linkstart{link}{\toc@link@target}\bgroup}
\patchcmd{\contentsline}{\hyper@linkstart{link}{#4}{#2}\hyper@linkend}{\def\toc@link@target{#4}\process@contentsline#2\egroup\hyper@linkend}{}{}
\patchcmd{\contentsline}{\hyper@linkstart{link}{#4}{#2}\hyper@linkend}{\def\toc@link@target{#4}\process@contentsline#2\egroup\hyper@linkend}{}{}
\makeatother
加载软件包后插入此代码hyperref
。它修补了hyperref
版本的contentsline
宏(两次,因为要替换的部分出现了两次):
不是\hyper@linkstart
直接调用创建可点击链接的命令,\process@contentsline
而是调用新创建的宏。它直接输出两个参数,没有链接 - 这些参数创建节号。之后,它启动将包含内容行其余文本的链接。