Beamer:为“部分页面”框架定义背景颜色

Beamer:为“部分页面”框架定义背景颜色

我正在尝试制作一个 .sty 模板,但我无法弄清楚如何为“部分页面”框架定义专用的背景画布。

这里 (如何仅向标题框添加背景并仅向最后一框添加其他背景?) 是一种可以根据帧号来表征背景的解决方案,但它不能应用于我的情况。

那么有没有办法测试框架的“类型”?(例如“标题页”、“部分页”等)。如果是,则意味着我可以做与 sandoche 问题的解决方案相同的事情。如果没有,有人能想到解决方法吗?

答案1

据我所知,背景画布是在读取框架的实际内容之前绘制的。因此\frame{\partpage},在 中,背景是在 beamer 看到\partpage并意识到框架是部分页面之前绘制的。

如果您想要\frame{\partpage}在每个之后立即执行\part{},那么您可以简单地挂接到\AtBeginPart

\documentclass{beamer}

\AtBeginPart{%
    {%  start a group to keep the template change local
        \setbeamertemplate{background canvas}{%
            \color{red!50}\rule{\paperwidth}{\paperheight}%
        }%
        \frame{\partpage}%
    }%  end group
}

\begin{document}
\part{The first part}
\frame{...}
\frame{...}
\part{The second part}
\frame{...}
\frame{...}
\end{document}

result

答案2

Caramdir 提供的解决方案不允许在输入时为部分页面获取不同的背景颜色

\begin{frame}
  \partpage
\end{frame}

假设部分页面的背景由部分标题的背景颜色给出(这很容易调整)。这里有个窍门。我们首先定义一个将用于部分页面的新页面样式。然后将此页面样式添加到部分页面模板中。

为了方便起见,我们还添加了一个键,以便可以使用该bgcolor键轻松插入背景颜色。


这是一个完整的例子。

\documentclass{beamer}

\makeatletter
\def\ps@navigation@partpage{%
  \setbeamercolor{background canvas}{use=part title,bg=part title.bg}%
  \@nameuse{ps@navigation}}
\addtobeamertemplate{part page}{\thispagestyle{navigation@partpage}}{}
\define@key{beamerframe}{bgcolor}[]{%
  \ifx#1\@empty\else\setbeamercolor{part title}{bg=#1}\fi}
\makeatother

\setbeamercolor{part title}{bg=pink} % default color

\begin{document}

\part{First Part}

\begin{frame}
  \partpage
\end{frame}

\part{Second Part}

\begin{frame}[bgcolor=yellow]
  \partpage
\end{frame}

\end{document}

第一部分页面具有默认的粉红色背景颜色,第二部分页面具有黄色背景颜色。修改上例中的背景颜色的另一种方法是通过\setbeamercolor

\setbeamercolor{part title}{bg=yellow}
\begin{frame}
  \partpage
\end{frame}

相关内容