在 beamer 模板中添加多个徽标

在 beamer 模板中添加多个徽标

假设我有一个 beamer 模板,我想显示两个徽标,一个在左上角,另一个在右上角。我\pgfdeclareimage在 sty 文件中使用它来声明图像:

footlinecolor{} % Default: no footline
\pgfdeclareimage[width=0.13\paperwidth]{blacklogo}{images/lille.png}
\pgfdeclareimage[width=0.13\paperwidth]{redlogo}{images/circular_rgb.png}
\pgfdeclareimage[width=0.09\paperwidth]{whitelogo}{images/circular_white.png}
\pgfdeclareimage[width=0.09\paperwidth]{nologo}{images/placeholder.png}
\newcommand{\@UIClogo}{redlogo}
\newcommand{\@UIClogob}{blacklogo}

然后,我将徽标放在正确的位置:

\setbeamertemplate{headline}{\vspace{0.03\textwidth}\hspace{0.04\textwidth}\pgfuseimage{\@UIClogo}}
\setbeamertemplate{headline}{\vspace{0.03\textwidth}\hspace{0.85\textwidth}\pgfuseimage{\@UIClogob}}

但是,第一个徽标没有出现在我的幻灯片中,只有第二个徽标(右上)出现,如下图所示: 仅出现黑色徽标

WHich 只显示了blacklogo出现,而redlogo应该出现在左侧的没有出现。有办法解决这个问题吗?

谢谢,

答案1

该宏\setbeamertemplate{headline}{...}将用 替换所有先前的内容...。因此,在第二次调用中,您将用第二张图片替换第一张图片。

如果您想要两张图片,请同时添加它们:

\documentclass{beamer}

\makeatletter
\pgfdeclareimage[width=0.13\paperwidth]{blacklogo}{example-image-duck}
\pgfdeclareimage[width=0.13\paperwidth]{redlogo}{example-image}

\newcommand{\@UIClogo}{redlogo}
\newcommand{\@UIClogob}{blacklogo}

\setbeamertemplate{headline}{\vspace{0.03\textwidth}\hspace{0.04\textwidth}\pgfuseimage{\@UIClogo}\hfill\pgfuseimage{\@UIClogob}\hspace{0.04\textwidth}\mbox{}}
\makeatother

\begin{document}

\begin{frame}
  abc
\end{frame}

\end{document}

或者,您可以使用\addtobeamertemplate{headline}{<before>}{<after>}将内容添加到现有模板而不覆盖它:

\documentclass{beamer}

\makeatletter
\pgfdeclareimage[width=0.13\paperwidth]{blacklogo}{example-image-duck}
\pgfdeclareimage[width=0.13\paperwidth]{redlogo}{example-image}

\newcommand{\@UIClogo}{redlogo}
\newcommand{\@UIClogob}{blacklogo}

\setbeamertemplate{headline}{\vspace{0.03\textwidth}\hspace{0.04\textwidth}\pgfuseimage{\@UIClogo}}
\addtobeamertemplate{headline}{}{\hfill\pgfuseimage{\@UIClogob}\hspace{0.04\textwidth}\mbox{}}
\makeatother

\begin{document}

\begin{frame}
  abc
\end{frame}

\end{document}

相关内容