简单最小文档
\documentclass[a4paper,10pt]{scrbook}
\usepackage{hyperref}
\begin{document}
\chapter*{Preface}
This is the preface.
\tableofcontents
\chapter{Chapter One}
This is chapter one.
\end{document}
通过使用hyperref
,pdflatex 会在 PDF 文件中生成一个“目录”部分。这个方便的导航器不包含目录本身,对于此文档,它仅包含“第一章”。我希望我的 PDF 目录包含指向页面目录的链接。(当然,我不希望页面目录包含其自身。)这可能吗?
答案1
软件包tocbibind
会将 添加ToC
到ToC
本身,因为已加载,书签本身中hyperref
会有条目。如果不应出现在 中,则暂时将计数器减少到这意味着不会将任何内容写入,请使用旧命令并将计数器的增加值写入文件。ToC
ToC
ToC
tocdepth
-2
ToC
\latextableofcontents
tocdepth
ToC
\documentclass[a4paper,10pt]{scrbook}
\usepackage{tocbibind}
\usepackage{hyperref}
\usepackage{bookmark}
\AtBeginDocument{%
\let\latextableofcontents\tableofcontents
\renewcommand{\tableofcontents}{%
\addtocontents{toc}{\protect\setcounter{tocdepth}{-2}}
\latextableofcontents%
\addtocontents{toc}{\protect\setcounter{tocdepth}{3}}
}
}
\begin{document}
\chapter*{Preface}
This is the preface.
\tableofcontents
\chapter{Chapter One}
This is chapter one.
\end{document}
答案2
您可以使用在目录标题前\BeforeTOCHead
添加。 您需要在 前添加一个,否则书签将添加到章节前言的最后一页。\pdfbookmark
\cleardoublepage
\pdfbookmark
\documentclass[a4paper,10pt]{scrbook}
\usepackage{hyperref}
\BeforeTOCHead[toc]{\cleardoublepage\pdfbookmark{\contentsname}{toc}}
\begin{document}
\chapter*{Preface}
This is the preface.
\tableofcontents
\chapter{Chapter One}
This is chapter one.
\end{document}
如果您希望对图表列表或表格列表进行类似的添加,您可以使用:
\BeforeTOCHead[lof]{\cleardoublepage\pdfbookmark{\listfigurename}{lof}}
\BeforeTOCHead[lot]{\cleardoublepage\pdfbookmark{\listtablename}{lot}}
或者,您可以添加选项listof=totoc
,\documentclass
这会将这些列表也添加到目录中。但不要同时使用两者!