使用:pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013)
当使用\tableofcontents
in beamer
、使用主题、Berkeley
选项以及隐藏子部分的选项时,它会错误地呈现目录。它会引入过多的空间来分隔部分名称。[hidesubsections]
[hideothersubsections]
目的是在每个章节开始前放一张幻灯片,目录中会突出显示当前章节并显示其子章节。
给出以下最小不工作示例(MnWE):
\documentclass[]{beamer}
\usetheme{Berkeley}
\begin{document}
\AtBeginSection[]{
\frame{
\tableofcontents[currentsection,hideothersubsections]
}
}
\begin{frame}
\tableofcontents[hidesubsections]
\end{frame}
\begin{frame}
\tableofcontents[currenthideallsubsections]
\end{frame}
\begin{frame}
\tableofcontents
\end{frame}
\section{section 1}
\subsection{subsection1}
\begin{frame}
subsection1
\end{frame}
\subsection{subsection2}
\begin{frame}
subsection1
\end{frame}
\section{section 2}
\subsection{subsection1}
\begin{frame}
subsection1
\end{frame}
\subsection{subsection2}
\begin{frame}
subsection1
\end{frame}
\section{section 3}hidesubsections
\begin{frame}
subsection1
\end{frame}
\section{section 4}
\begin{frame}
subsection1
\end{frame}
\section{section 5}
\begin{frame}
subsection1
\end{frame}
\section{section 6}
\begin{frame}
subsection1
\end{frame}
\section{section 7}
\begin{frame}
subsection1
\end{frame}
\section{section 8}
\begin{frame}
subsection1
\end{frame}
\end{document}
它将显示第一张和第三张幻灯片的以下图像。第二张与第一张相同:
带有 hidesubsections 选项的目录显示错误,部分名称之间的空格太多:
没有 hidesubsections 选项的 TOC,显示正确:
答案1
这是更新后的答案:
内部命令 \beamer@sectionintoc(在文件 beamerbasetoc.sty 中定义)控制如何在目录中排版章节条目;它发出 \vskip1.5em,在章节条目之间添加垂直间距。借助 etoolbox 包,您可以轻松修补该命令以减少垂直间距。
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip0.5em}{}{}
\makeatother
\title[Short Title]{My very long title that doesn't fix into the footer}
\author{Me}
\date{\today}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
\usetheme{CambridgeUS}
\AtBeginSection[]
{
\begin{frame}
\frametitle{Outline}
\tableofcontents[currentsection, hideothersubsections]
\end{frame}
}
\begin{document}
\maketitle
\clearpage
\begin{frame}
\frametitle{Outline}
\tableofcontents[hideothersubsections]
\end{frame}
\section{Intro}
\begin{frame}
\frametitle{Welcome}
...
\end{frame}
\section{Topic 1}
\begin{frame}
\frametitle{Topic 1}
...
\end{frame}
\section{Topic 2}
\begin{frame}
\frametitle{Topic 2}
...
\end{frame}
\subsection{Red}
\begin{frame}
\frametitle{Red}
...
\end{frame}
\subsection{Green}
\begin{frame}
\frametitle{Green}
...
\end{frame}
\subsection{Blue}
\begin{frame}
\frametitle{Blue}
...
\end{frame}
\section{Topic 3}
\begin{frame}
\frametitle{Topic 3}
...
\end{frame}
\section{Topic 4}
\begin{frame}
\frametitle{Topic 4}
...
\end{frame}
\section{Topic 5}
\begin{frame}
\frametitle{Topic 5}
...
\end{frame}
\section{Topic 6}
\begin{frame}
\frametitle{Topic 6}
...
\end{frame}
\section{Topic 7}
\begin{frame}
\frametitle{Topic 7}
...
\end{frame}
\section{Topic 8}
\begin{frame}
\frametitle{Topic 8}
...
\end{frame}
\section{The end}
\begin{frame}
\frametitle{The end}
End of file :-)
\end{frame}
\end{document}
我想这可能应该是正确的答案。