将目录作为 PDF 书签,但没有列表列表

将目录作为 PDF 书签,但没有列表列表

我想让“目录”部分显示为 PDF 书签。

我已经发现这个问题,并且以下通常有效:

\makeatletter
\usepackage{etoolbox}
\pretocmd{\tableofcontents}{%
  \if@openright\cleardoublepage\else\clearpage\fi
  \pdfbookmark[0]{\contentsname}{toc}%
}{}{}%
\makeatother

现在我有一个新问题。它还为“列表列表”添加了一个书签。我有以下序列:

\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings

我想仅有的第一个项目 ( \tableofcontents) 显示为 PDF 书签。有趣的是,图表列表和表格列表没有书签,这很好。但不幸的是,列表列表似乎以不同的方式实现,并且确实出现了。我怎样才能让列表列表再次从我的 PDF 书签中消失?


我已经有了这种定制,也许可以进一步调整?

\renewcommand\lstlistlistingname{List of Listings}

或者我可以“撤消”\pretocmd之前的操作\lstlistoflistings

答案1

不要使用\pretocmd,只需直接将内容添加到 即可\tableofcontents。这样,列表不会受到影响。所以:

\if@openright\cleardoublepage\else\clearpage\fi%
\pdfbookmark[0]{\contentsname}{toc}%
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings

相关内容