Beamer:目录仅在包含小节的章节之前出现

Beamer:目录仅在包含小节的章节之前出现

我的演示文稿由多个部分组成。有些部分包含子部分,有些则不包含。我希望 Beamer 在每个子部分之前以及每个不包含其他子部分的部分之前显示目录。

目前,我在序言中写道:

\AtBeginSection[] {
    \begin{frame}<beamer>
    \frametitle{Inhalt} %
    \tableofcontents[currentsection]  
    \end{frame}
}

\AtBeginSubsection[] {
    \begin{frame}<beamer>
    \frametitle{Inhalt} %
    \tableofcontents[currentsubsection]  
    \end{frame}
}

因此,如果一个部分由多个子部分组成,则 Beamer 会在部分的第一个子部分之前显示两次目录,一次显示部分,一次显示子部分。我认为这太丑了。我该怎么办?

答案1

您可以非常简单地使用 TeX 条件。唯一的缺点(或功能)是,对于带有子节的节,第一个 ToC 不会“遮蔽”后面的子节。基本上,我们告诉 LaTeX:在节中,制作 ToC 并记住false。在子节中,如果您看到true制作 ToC,并记住true

\documentclass{beamer}

\newif\iflattersubsect

\AtBeginSection[] {
    \begin{frame}<beamer>
    \frametitle{Inhalt} %
    \tableofcontents[currentsection]  
    \end{frame}
    \lattersubsectfalse
}

\AtBeginSubsection[] {
    \iflattersubsect
    \begin{frame}<beamer>
    \frametitle{Inhalt} %
    \tableofcontents[currentsubsection]  
    \end{frame}
    \fi
    \lattersubsecttrue
}

\title{TITLE}
\author{AUTHOR}

\begin{document}

\begin{frame}\maketitle\end{frame}

\section{SECT I}
\subsection{I.1}
\begin{frame}I.1\end{frame}

\subsection{I.2}
\begin{frame}I.2\end{frame}

\section{SECT II}
\begin{frame}II frame 1\end{frame}
\begin{frame}II frame 2\end{frame}

\section{SECT III}
\subsection{III.1}
\begin{frame}III.1\end{frame}

\subsection{III.2}
\begin{frame}III.2\end{frame}

\end{document}

答案2

一个简单的测试可以检查是否sectionstartpage等于subsectionstartpage并采取相应的行动。下面的示例将在这种情况下隐藏部分的目录,但隐藏子部分的目录将以相同的方式工作。

\documentclass{beamer}

\AtBeginSection[] {
    \ifnum\insertsubsectionstartpage=\insertsectionstartpage
        \relax%
    \else%
      \begin{frame}<beamer>
      \frametitle{Inhalt} %
      \tableofcontents[currentsection]  
      \end{frame}
  \fi%
}

\AtBeginSubsection[] {
    \begin{frame}<beamer>
    \frametitle{Inhalt} %
    \tableofcontents[currentsubsection]  
    \end{frame}
}

\title{TITLE}
\author{AUTHOR}

\begin{document}

\begin{frame}\maketitle\end{frame}

\section{SECT I}
\subsection{I.1}
\begin{frame}I.1\end{frame}

\subsection{I.2}
\begin{frame}I.2\end{frame}

\section{SECT II}
\begin{frame}II frame 1\end{frame}
\begin{frame}II frame 2\end{frame}

\section{SECT III}
\subsection{III.1}
\begin{frame}III.1\end{frame}

\subsection{III.2}
\begin{frame}III.2\end{frame}

\end{document}

相关内容