![Beamer 的 ToC 显示/隐藏子部分不在同一垂直位置](https://linux22.com/image/372525/Beamer%20%E7%9A%84%20ToC%20%E6%98%BE%E7%A4%BA%2F%E9%9A%90%E8%97%8F%E5%AD%90%E9%83%A8%E5%88%86%E4%B8%8D%E5%9C%A8%E5%90%8C%E4%B8%80%E5%9E%82%E7%9B%B4%E4%BD%8D%E7%BD%AE.png)
Beamer
带有该选项的框架t
应该:
- 垂直对齐在顶部,
- 因此将它们的第一行显示在相同的垂直位置。
然而,对于包含目录的框架来说情况并非如此,这取决于这些目录是否显示子部分,如下面的 MCE 所指出的那样。
你知道发生了什么吗?
\documentclass{beamer}
\begin{document}
\section{Section 1}
\subsection{Subsection 1 of section 1}
\subsection{Subsection 2 of section 1}
\section{Section 2}
\subsection{Subsection 1 of section 2}
\subsection{Subsection 2 of section 2}
\begin{frame}[t]
\tableofcontents
\end{frame}
\begin{frame}[t]
\tableofcontents[hideallsubsections]
\end{frame}
\end{document}
答案1
While[t]
将框架配置为顶部对齐,\tableofcontents
并自行添加一些间距。它在正常情况下分配各节之间的空间,并1.5em
在各节之间设置空间hideallsections
。这beamerbasetoc.sty
在\beamer@sectionintoc
宏中是硬编码的:重要的部分是
\ifx\beamer@toc@ooss\beamer@hidetext
\vskip1.5em
\else
\vfill
\fi
您可以\vspace{0pt plus 1filll}
在框架的底部添加\tableofcontents
以强制它们进行顶部对齐,但随后正常的\tableofcontents
开始位置会高于\tableofcontents[hideallsubsections]
并且第一个命令的部分之间没有间距,因此看起来不太好。
如果您只关心对齐第一行,则可以\vspace{1.5em plus -1fill}
在之前添加\tableofcontents
以对齐它们:
答案2
tocdepth
手动设置和顶部对齐的小页面的组合似乎可以对齐目录:
\documentclass{beamer}
\begin{document}
\section{Section 1}
\subsection{Subsection 1 of section 1}
\subsection{Subsection 2 of section 1}
\section{Section 2}
\subsection{Subsection 1 of section 2}
\subsection{Subsection 2 of section 2}
\begin{frame}[t]
\begin{minipage}[t]{\textwidth}
\tableofcontents
\end{minipage}
\end{frame}
\setcounter{tocdepth}{1}
\begin{frame}[t]
\begin{minipage}[t]{\textwidth}
\tableofcontents
\end{minipage}
\end{frame}
\end{document}
结果: