我想使用超链接来显示页码和目录中的相应条目,这\usepackage[linktoc=all]{hyperref}
对我来说非常方便。我遇到的唯一问题是,我试图使用包tocloft
和将条目分成不同的“部分”,这些部分代表标题\cftaddtitleline
。每个部分可以包含多个条目,如下所示:
由于某种原因,我的标题也有一个超链接,这是不想要的。我希望超链接仅适用于条目和页码,而不是标题。现在我知道我可以使用 来隐藏标题的超链接\usepackage[linktocpage=true]{hyperref}
,但这也会删除条目的超链接。这不是我想要的,“第一个条目”、“第二个条目”和“0.1 第三个条目”仍应有超链接。
这是我的代码。为了重复使用,您必须在存储 tex 文件的本地目录中创建一个名为“folder”的文件夹,其中包含两个不同的 pdf 文件,分别名为“file1.pdf”和“file2.pdf”。或者您当然可以使用而\section
不是\includepdf
(当然还要删除相应的参数)。
\documentclass{scrreprt} % notice this is a KOMA-script class
\usepackage{pdfpages}
\usepackage{tocloft}
\usepackage[linktoc=all]{hyperref}
\begin{document}
% Dummy Page
\chapter*{Dummy Page}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.
% Table of contents linking to pdfs
\clearpage
\tableofcontents
% Assign the TOC entries to different sections of TOC
\cftaddtitleline{toc}{part}{First section of table of content}{}
\includepdf[pages=-, addtotoc={
1,addsec,1,First entry,p1}]{folder/file1.pdf}
\cftaddtitleline{toc}{part}{Second section of table of content}{}
\includepdf[pages=-, addtotoc={
1,addsec,1,Second entry,p1}]{folder/file2.pdf}
\section{Third entry}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.
\end{document}
提前感谢任何帮助!
答案1
我能够根据此处的答案解决我的问题: https://tex.stackexchange.com/a/301490/206040
\addtocontents
这是使用并\contentsline
转换它们以使超链接成为可能的新完整代码hyperref
。对于标题,我创建了一个名为的新命令\tocheader
,可以将标题名称作为参数给出。此外,此解决方案不再需要使用包tocloft
。
\documentclass{scrreprt} % notice this is a KOMA-script class
\usepackage{pdfpages}
\let\origcontentsline\contentsline
\let\origaddtocontents\addtocontents
\usepackage[linktoc=all]{hyperref}
\newcommand{\tocheader}[1]{\origaddtocontents{toc}{\protect\origcontentsline{chapter}{#1}{}}}
\begin{document}
% Dummy Page
\chapter*{Dummy Page}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.
% Table of contents linking to pdfs
\clearpage
\tableofcontents
% Assign the TOC entries to different sections of TOC
\tocheader{First section of table of content}
\includepdf[pages=-, addtotoc={
1,addsec,1,First entry,p1}]{folder/file1.pdf}
\tocheader{Second section of table of content}
\includepdf[pages=-, addtotoc={
1,addsec,1,Second entry,p1}]{folder/file2.pdf}
\section{Third entry}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.
\end{document}
现在的输出看起来就像我想要的那样: