如何停用特定部分的 AtBeginSection?

如何停用特定部分的 AtBeginSection?

我一直使用 AtBeginSection 在新章节的开头插入标题页(按照以下答案这个问题)。标题页遵循 Beamer 主题的格式。但是,我想停用此自动标题页或更改某些特定部分的格式。我该怎么做?

答案1

您可以使用可选参数和在某些章节的开头插入不同的代码。因此,对于没有自动标题页的特定章节,您可以使用空的可选参数\AtBeginSection和。\section*\AtBeginSection\section*

\documentclass{beamer}
\usetheme{Madrid}

\AtBeginSection[]{
  \begin{frame}
  \vfill
  \centering
  \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
    \usebeamerfont{title}\insertsectionhead\par%
  \end{beamercolorbox}
  \vfill
  \end{frame}
}

\title{The Title}
\author{The Author}
\institute{The Institute}

\begin{document}

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

\section{Test section one}
\begin{frame}
test frame for section one
\end{frame}

\section*{Test section two}
\begin{frame}
test frame for section two
\end{frame}

\section{Test section three}
\begin{frame}
test frame for section three
\end{frame}

\end{document}

结果:

在此处输入图片描述


更新

\section如果您因为需要书签而无法使用带星号的版本,那么也许您可以使用\newif和定义命令来切换到下一部分或所有以下部分:

\documentclass{beamer}
\usetheme{Madrid}

\newif\ifSectionTitlePage
\newcommand*\SectionTitlePagedefault{\SectionTitlePagefalse}

\newcommand\AllSectionsWithTitlePage{%
  \SectionTitlePagetrue
  \renewcommand*\SectionTitlePagedefault{\SectionTitlePagetrue}%
}
\newcommand\AllSectionsWithoutTitlePage{%
  \SectionTitlePagefalse
  \renewcommand*\SectionTitlePagedefault{\SectionTitlePagefalse}%
}
\newcommand\NextSectionWithTitlePage{\SectionTitlePagetrue}
\newcommand\NextSectionWithoutTitlePage{\SectionTitlePagefalse}

\AtBeginSection[]{%
  \ifSectionTitlePage
    \begin{frame}
    \vfill
    \centering
    \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
      \usebeamerfont{title}\insertsectionhead\par%
    \end{beamercolorbox}
    \vfill
    \end{frame}
  \fi
  \SectionTitlePagedefault
}

\AllSectionsWithTitlePage% <- enable the title pages

\title{The Title}
\author{The Author}
\institute{The Institute}

\begin{document}

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

\section{Test section one}
\begin{frame}
test frame for section one
\end{frame}

\NextSectionWithoutTitlePage% <- disable the title page for the next section
\section{Test section two}
\begin{frame}
test frame for section two
\end{frame}

\section{Test section three}
\begin{frame}
test frame for section three
\end{frame}
\end{document}

结果与上面相同,但也带有第 2 部分的书签。

答案2

如果你出于某种原因不想使用星号部分(我个人会使用esdd 解决方案),您可以\AtBeginSection[]{}在组内重新定义:

\documentclass{beamer}
\usetheme{Madrid}

\AtBeginSection[]{
  \begin{frame}
  \vfill
  \centering
  \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
    \usebeamerfont{title}\insertsectionhead\par%
  \end{beamercolorbox}
  \vfill
  \end{frame}
}

\title{The Title}
\author{The Author}
\institute{The Institute}

\begin{document}

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

\section{Test section one}
\begin{frame}
test frame for section one
\end{frame}

{
\AtBeginSection[]{}
\section{Test section two}
\begin{frame}
test frame for section two
\end{frame}
}

\section{Test section three}
\begin{frame}
test frame for section three
\end{frame}

\end{document}

相关内容