Beamer:如何仅在主题的标题页上设置背景颜色

Beamer:如何仅在主题的标题页上设置背景颜色

我正在开发 Beamer 主题,我想让标题页的背景颜色变成一种颜色,而让所有其他幻灯片具有不同的颜色。

我有成立我可以使用以下方法更改幻灯片的背景颜色:

\setbeamercolor{background canvas}{bg=violet}

我想在 beamer 主题样式文件中执行此操作,而不是在 latex 文档中,但我不知道如何做到这一点。


我知道我可以像这样更改幻灯片 1 上的背景颜色:

\setbeamertemplate{background}{%
    \ifnum\c@framenumber=1%
        \begin{tikzpicture}[background rectangle/.style={fill=blue}, show background rectangle]
            \hspace*{20em}
            \node[opacity=0.45, scale=5.6]{\includegraphics{background}};
        \end{tikzpicture}
    \else%
    \begin{tikzpicture}[background rectangle/.style={fill=white}, show background rectangle]
            \hspace*{20em}
            \node[opacity=0.09, scale=5.6]{\includegraphics{background}};
        \end{tikzpicture}
    \fi%

如果标题幻灯片是第一张幻灯片,这种方法就有效——几乎总是如此。如果将多张标题幻灯片放在同一个文件中,这种方法就无效,我有时这样做。


这就是我想要实现的目标。在这个例子中,我使用了出色的 Metropolis 主题。这个例子表明,我可以在同一演示文稿中拥有两个不同的标题幻灯片。它确实不是显示标题幻灯片中有不同的背景颜色。当然,我想在自己的主题中实现这一点。(很抱歉我不能分享我的所有样式文件。)

\documentclass{beamer}

\usetheme{metropolis}

\begin{document}
\title{First Title}
\begin{frame}
  \maketitle
\end{frame}

\begin{frame}{Some title}
  Some content here
\end{frame}

\title{Second Title}
\begin{frame}
  \maketitle
\end{frame}

\end{document}

1型 微波辐射计 3型

答案1

您可以向绘制背景的模板tikzpicture中添加一个title page,直接使用以下坐标current page

示例输出

beamerthememytheme.sty

\usetheme{metropolis}

\usetikzlibrary{backgrounds}

\addtobeamertemplate{title page}{%
\begin{tikzpicture}[remember picture, overlay]
  \draw[fill=violet!20!white] (current page.south west) rectangle
  (current page.north east);
\end{tikzpicture}%
}{}

主文件

\documentclass{beamer}

\usetheme{mytheme}

\begin{document}
\title{First Title}
\begin{frame}
  \maketitle
\end{frame}

\begin{frame}{Some title}
  Some content here
\end{frame}

\title{Second Title}
\begin{frame}
  \maketitle
\end{frame}

\end{document}

答案2

\setbeamercolor{background canvas}{bg=violet}确实有效,但我还没有找到在其中使用它的方法setbeamertemplate

它可以用于框架之间的文档,以改变其背景,如下所示:

\begin{document}

% Switch to custom background color for title frame
\setbeamercolor{background canvas}{bg=violet}

\title{First Title}
\begin{frame}
  \maketitle
\end{frame}

% Set back the background color for other frames.
\setbeamercolor{background canvas}{bg=white}

\begin{frame}{Some title}
  Some content here
\end{frame}

\title{Second Title}
\begin{frame}
  \maketitle
\end{frame}

\end{document}

相关内容