因此,在设计 beamer 主题时,我偶然发现了通过 pagestyle 选择页面特定模板的巧妙解决方案(标题页脚注不同的主题)。虽然这对很多模板都有效,但它对模板不起作用frametitle
,正如你在我的 MWE 中看到的那样:
\documentclass{beamer}
\defbeamertemplate*{frametitle}{regular}{Regular Frametitle}
\defbeamertemplate{frametitle}{special}{Special Frametitle}
\makeatletter
\def\ps@navigation@sectionpage{%
\setbeamertemplate{headline}{Special Headline}
\setbeamertemplate{frametitle}[special]
\setbeamertemplate{footline}{Special Footline}
}
\makeatother
\begin{document}
\begin{frame}
\frametitle{~}
This page shall have the regular frametitle
\end{frame}
\begin{frame}
\frametitle{~}
This page shall have the special headline, frametitle and footline
\makeatletter\thispagestyle{navigation@sectionpage}\makeatother
\end{frame}
\begin{frame}
\frametitle{~}
This page shall have the regular frametitle
\end{frame}
\end{document}
我想要实现的是,通过某种自动方式使包含的幻灯片的 framtitle 有所不同\tableofcontents
,因此我想引入一个宏来选择特殊的页面样式然后弹出\tableofcontents
。也许这不是最明智的解决方案,但是有没有其他方法可以实现与此页面样式选择相同的行为frametitle
?
答案1
frametitle 的问题在于,它由 beamer 专门处理。正如您在当前版本第 75 页上看到的(https://mirror.kumi.systems/ctan/macros/latex/contrib/beamer/doc/beameruserguide.pdf):
遇到命令时,框架标题不会立即排版
\frametitle
。相反,命令的参数存储在内部,并且只有在读取完整个框架后才会排版框架标题。这样您就可以访问可能使用该命令引入的⟨frame title text⟩
和。⟨subframe title text⟩
\framesubtitle
因此基本上这里发生了一些魔法,因此所描述的工作流程毫无用处。不过我找到了一种方法来实现我想要的行为,正如你可以在我怎样才能在 beamer 中的议程页面上自动显示框架标题?