Beamer Style:仅更改 ToC 样式

Beamer Style:仅更改 ToC 样式

我想修改 Beamer 主题,以便在每张幻灯片中添加一些文本,但不在 ToC(内容表)页面中添加一些文本。

因此,我想我需要在我的主题中使用类似“if/then”的条件,如下所示(伪代码样式):

if(we are not in a ToC page)
     addText()
 else
     do nothing

但是我完全不知道如何在 Beamer 中写入它,而且在互联网上也找不到它。

你知道我该怎么写吗?

谢谢!


为了回应我收到的评论,以下是一些精确信息:我想要修改的 Beamer 主题由我的公司提供。我想在每个幻灯片的顶部添加一个标题(就在顶部栏的下方,上面有公司徽标和标题)。所以我在 frametitle 部分编辑了 Beamer 主题的外部 .sty 文件,添加了一个 beamerbox。它看起来像这样:

 \defbeamertemplate*{frametitle}{watermelon theme}
 { 
     [...]
     \begin{beamercolorbox}[wd=.95\paperwidth,ht=0.0cm,leftskip=.1\paperwidth]{section title}
     \begin{flushleft}
     {\usebeamercolor[fg]{frametitle}\usebeamerfont{framesubtitle}\insertsection\par}%
     \end{flushleft}
     \end{beamercolorbox}
     [...]
}

但是,这个 beamerbox 在每个幻灯片中都会显示,甚至在 ToC 中也是如此。因此,我认为如果我有办法在这个 beamercolorbox 之前写一个“if(我们不在 ToC 页面中)”,这将是让它工作的最简单的方法。

够了吗?


根据 samcarter 的回答,我在代码中测试了以下解决方法(现在对我来说足够了,直到我终于找到时间学习 latex/beamer):在更改部分时,我写道:

 \setbeamertemplate{frametitle}[default]
 \section{My title}
 \setbeamertemplate{frametitle}[My company theme]

谢谢 !

答案1

如果部分页面应使用不同于常规框架的其他框架标题模板,您可以将其添加到部分页面的定义中。为了保持其本地化,请将其包装到附加层中{}

\documentclass{beamer}

\defbeamertemplate*{frametitle}{watermelon}
{ 
     \begin{beamercolorbox}[wd=.95\paperwidth,ht=0.0cm,leftskip=.1\paperwidth]{section page}
     \begin{flushleft}
         {\color{red} \usebeamerfont{framesubtitle}\insertsection\par}%
     \end{flushleft}
     \end{beamercolorbox}
}

\AtBeginSection{%
{
    \setbeamertemplate{frametitle}[default] 
    \begin{frame}
        \frametitle{toc}
    \end{frame}
}
}

\begin{document}


\section{bla}
\begin{frame}
\frametitle{bla}
    abc
\end{frame}

\section{blub}
\begin{frame}
\frametitle{blub}
    abc
\end{frame}     

\end{document}

相关内容