禁用单个条目的目录超链接

禁用单个条目的目录超链接

考虑以下 MWE,它创建了一个包含三个条目的目录,所有条目都链接到文档中各自的部分。

\documentclass{scrartcl}
\usepackage{hyperref}

\begin{document}

\tableofcontents
\clearpage
\section{Section with link}
\clearpage
\section{Section without link}
% \section*{Section without link}
% \addcontentsline{toc}{section}{Section without link}

\clearpage
\section{Section without link 2}

\end{document}

我想仅禁用后面条目的链接。有没有我找不到的解决方案?我很高兴收到任何提示!


背景: 在我的最终文档中,后面的部分将包含外部 PDF(参考信)。这意味着我将丢弃带有实际章节标题的页面,并将文档与其他 PDF 合并。这样目录中的页码将是正确的,但链接将指向第一页(因为实际页面不再存在)——因此我宁愿根本没有链接。

我知道我可以使用类似的方法pdfpages来直接包含 PDF,但是这会破坏所包含文档中的超链接,因此对我来说不是一个选择。

答案1

hyperref 中有一个包选项可以禁用目录中的链接。您可以在目录中途通过更改文件中linktoc=none相应宏的值来启用此选项。\Hy@linktoc.toc

这可以通过使用低级\addtocontents{ext}{...}宏来实现,该宏将第二个参数写入扩展名为的文件中ext。在本例中:

\addtocontents{toc}{\let\Hy@linktoc\Hy@linktoc@none}

完整的 MWE,\makeatletter包括\makeatother

\documentclass{scrartcl}
\usepackage{hyperref}

\begin{document}
\tableofcontents
\clearpage
\section{Section with link}
\clearpage
\makeatletter
\addtocontents{toc}{\let\Hy@linktoc\Hy@linktoc@none}
\makeatother
\section{Section without link}

\clearpage
\section{Section without link 2}

\end{document}

这将创建以下.toc文件:

\contentsline {section}{\numberline {1}Section with link}{2}{section.1}%
\let \Hy@linktoc \Hy@linktoc@none 
\contentsline {section}{\numberline {2}Section without link}{3}{section.2}%
\contentsline {section}{\numberline {3}Section without link 2}{4}{section.3}%

链接目标section.2仍然section.3会生成,但由于选项设置,它们不会显示为实际链接。

结果:

在此处输入图片描述

相关内容