如何修改框架标题以添加徽标?

如何修改框架标题以添加徽标?

在 beamer 中设置帧标题非常复杂。我找到了一些建议的解决方案,但效果不佳。基本上,我想覆盖

\defbeamertemplate*{frametitle}{default}[1][left]

(位于beamerouterthemedefault.sty

在我的公司 sty 文件中。我想复制默认设置并添加一个小型迷你页面,其中包含我的公司徽标、2em 空间,然后是框架标题。我知道在哪里添加迷你页面,但我不知道如何覆盖 beamer 模板。

显然,没有\redef函数。我不想使用,\setbeamertemplate因为我认为#1这实际上是为颜色框计算的文本高度。我想用自己的函数覆盖或重新定义默认函数。一个不太理想的解决方案是简单地将图像导入我的框架标题,但我真的想避免对每个框架都这样做。

我如何覆盖一个\defbeamertemplate*函数?

答案1

如果你查阅\defbeamertemplate手册,你会看到它之前有一个描述\addtobeamertemplate

\documentclass{beamer}

\begin{document}
\addtobeamertemplate{frametitle}{\includegraphics[width=2em]{example-image-duck}%
\hspace*{2em}}{}

\begin{frame}[t]{I am a frame with a pic in the title}
But why does it have to be a duck?
\end{frame}
\end{document}

在此处输入图片描述

如果你想垂直对齐鸭子,你可以这样做

\documentclass{beamer}

\begin{document}
\addtobeamertemplate{frametitle}{%
$\vcenter{\hbox{\includegraphics[width=2em]{example-image-duck}}}$%
\hspace*{2em}}{}

\begin{frame}[t]{I am a frame with a pic in the title}
But why does it have to be a duck?
\end{frame}
\end{document}

如果您加载tikz,您将拥有许多附加选项。特别是,您可以使用覆盖等。此外,您可以加载tikzmarmots包并在标题中使用土拨鼠!

在此处输入图片描述

相关内容