当使用 beamer 时,我发现我的子部分没有显示在 PDF 书签中。
我可以使用\setcounter{tocdepth}{4}
或\hypersetup{bookmarksdepth=4}
来修复它。但我不知道为什么。
在此回答,据说:
由于
subsubsections
处于第 4 级,因此 tocdepth 必须设置为 4。
但我们知道子小节属于第 3 级,此图来自latex2e.pdf
第 38 页:
此外,我发现 PDF 书签似乎总是比计数器“少一级” tocdepth
,因为如果你使用\setcounter{tocdepth}{2}
更改tocdepth
为 2,甚至小节的书签也会消失。
您可以使用此 MWE 来测试 PDF 书签和目录的行为。
(我正在使用 TeX Live 2022,用于latexmk -xelatex ...
编译。)
\documentclass{beamer}
\hypersetup{bookmarksdepth=4} % this let PDF bookmarks show subsubsections
%\setcounter{tocdepth}{2} % this let TOC frame don't show subsubsections, but also cause subsections not shown in PDF bookmarks
% (try comment both, or comment the former and uncomment the latter)
\usetheme{Berlin}
\begin{document}
\begin{frame} % TOC frame here!
\tableofcontents
\end{frame}
\section{a}
\subsection{aaa}
\subsubsection{aaaaa}
\begin{frame}a\end{frame}
\subsubsection{aaabb}
\begin{frame}a\end{frame}
\subsection{abb}
\subsubsection{abbaa}
\begin{frame}a\end{frame}
\subsubsection{abbbb}
\begin{frame}a\end{frame}
\section{b}
\subsection{baa}
\subsubsection{baaaa}
\begin{frame}a\end{frame}
\end{document}
答案1
beamer 改变了数字。它将 1 分配给 part,将 2 分配给 section。您可以在 beamerbasesection.sty 中找到相关代码,例如:
% in the \part definition
\Hy@writebookmark{\the\c@part}{#1}{Outline\the\c@part}{1}{toc}%
% in \beamer@@section
\Hy@writebookmark{\the\c@section}{\secname}{Outline\the\c@part.\the\c@section}{2}{toc}%