在开始新章节的幻灯片上仅显示章节概述

在开始新章节的幻灯片上仅显示章节概述

我怎样才能让 Beamer 只显示部分概述/导航/进度(例如,在每张幻灯片顶部显示的内容)华沙主题) 出现在特定的幻灯片上?具体来说,我希望它只出现在开始新部分的幻灯片上。

(这个问题似乎与一些已经提出并回答过的问题非常接近,所以如果我忽略了一些东西,我很抱歉。)

答案1

我不确定我是否理解了这个问题,但是你在序言中尝试过类似的事情吗?

\AtBeginSection[] 
{%
\begin{frame} %% ToC
\tableofcontents[currentsection]
\end{frame}
}

答案2

这个答案有一些问题,但也许有人可以在这个基础上进行构建,所以我会写下我发现的内容。

Warsaw 主题中的小 TOC(如您所称)是在外部主题shadow(特别是其headline模板)中定义的。这是在另一个主题(split)中定义并修改的,但现在我们可以忘记修改并专注于模板split theme的版本headline

原则上,我认为在您想要显示“小目录”的幻灯片之前设置此模板并在其后设置默认模板就足够了(假设默认的 beamer 主题,因为您没有另行指定)。我尝试这样做,结果是标题和框架标题重叠(如果为框架标题设置了背景颜色,则标题被覆盖)。

为了解决这个问题,我尝试使用 强制 beamer 重新计算页眉(和页脚)的高度 \beamer@calculateheadfoot。现在,框架标题已正确移动,但新问题是当前框架后添加了一个空框架,我不知道如何解决它。

无论如何,这是迄今为止我尝试过的代码。

\documentclass{beamer}
\makeatletter
% This is to the headline template from beamerouterthemesplit.sty
\setbeamertemplate{section in head/foot}{\hfill\insertsectionhead}
\setbeamertemplate{section in head/foot shaded}{\hfill\color{fg!50!bg}\insertsectionhead}

\defbeamertemplate{headline}{split theme}
{%
  \leavevmode%
  \@tempdimb=2.4375ex%
  \ifnum\beamer@subsectionmax<\beamer@sectionmax%
        \multiply\@tempdimb by\beamer@sectionmax%
  \else%
    \multiply\@tempdimb by\beamer@subsectionmax%
  \fi%
  \ifdim\@tempdimb>0pt%
    \advance\@tempdimb by 1.825ex%
    \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}%
      \vbox to\@tempdimb{\vfil\insertsectionnavigation{.5\paperwidth}\vfil}%
    \end{beamercolorbox}%
    \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{subsection in head/foot}%
      \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}%
    \end{beamercolorbox}%
  \fi%
}

% New frame environment with the header
\newenvironment{framewithheader}{
\setbeamertemplate{headline}[split theme]%
% Without the following line the headline and frame title overlap
% but with it an empty extra frame is generated.
\beamer@calculateheadfoot%
\begin{frame}
}{
\end{frame}%
% Reset the previous template: this should be changed if a different theme is used
\setbeamertemplate{headline}[default]
}
\makeatother

\begin{document}
\section{Section Title}
\begin{frame}
  \frametitle{First frame}
  Sample text
\end{frame}

\section{Other Section}
\begin{framewithheader}
  \frametitle{Frame with header}
  Sample text
\end{framewithheader}

\begin{frame}
  \frametitle{Another frame}
  Sample text
\end{frame}
\end{document}

相关内容