我想在 Beamer 中创建一个演示文稿。例如这问题,我想在 beamer 的对面放置两个徽标,但我的模板也有侧边栏。我也用过这问题是如何在 Beamer 课程中防止徽标出现在标题页上。但问题是其中一个徽标超出了幻灯片范围。
我尝试使用\centering
命令然后在徽标之间添加空格,这样它们就会设置在相对的两侧,但这没有帮助。我认为一个可能的解决方案是使用 PGF 包,但这是我的最后手段。
\documentclass{beamer}
\usetheme{Berkeley}
\logo{%
\makebox[0.2\paperwidth]{%
\includegraphics[width=1cm,keepaspectratio]{example-image-a}%
\hfill%
\includegraphics[width=1cm,keepaspectratio]{example-image-b}%
}%
}
\title{The Title}
\author{The Author}
\institute{The Institute}
\begin{document}
{
\setbeamertemplate{logo}{}
\begin{frame}
\maketitle
\end{frame}
}
\begin{frame}
test
\end{frame}
\end{document}
我想要的就是这样的东西。
答案1
这可能会有用:
我将添加一个更长的解释来说明我是如何得出这个解决方案的(我是 Beamer 专家),以便其他人可以看到如何解决这样的问题。
首先,您会看到使用的主题是“Berkeley”,因此进入定义文件beamerthemeBerkeley.sty
(只需谷歌搜索,您就会找到代码)。
在那里我们可以看到外部主题(负责侧边栏和标题等的主题)是“侧边栏”,所以接下来我们查看beamerouterthemesidebar.sty
并搜索关键字logo
,看看它是否用于标题定义。
然后我所做的就是编辑定义以在logoright
右侧添加另一个徽标(通过复制和粘贴\hfill
)并定义一些命令来设置徽标。只需根据您的喜好调整图像的大小即可。
\documentclass{beamer}
\usetheme{Berkeley}
\def\insertlogoright{\usebeamertemplate*{logoright}}
\def\logoright{\setbeamertemplate{logoright}}
\makeatletter
\defbeamertemplate*{headline}{mycustom theme}
{%
\begin{beamercolorbox}[wd=\paperwidth]{frametitle}
\ifx\beamer@sidebarside\beamer@lefttext%
\else%
\hfill%
\fi%
\ifdim\beamer@sidebarwidth>0pt%
\usebeamercolor[bg]{logo}%
\vrule width\beamer@sidebarwidth height \beamer@headheight%
\hskip-\beamer@sidebarwidth%
\hbox to \beamer@sidebarwidth{%
\hss%
\vbox to \beamer@headheight{%
\vss\hbox{\color{fg}\insertlogo}\vss%
}%
\hss}%
\hfill%
\hbox to \beamer@sidebarwidth{%
\hss%
\vbox to \beamer@headheight{%
\vss\hbox{\color{fg}\insertlogoright}\vss%
}%
\hss}%
\else%
\vrule width0pt height \beamer@headheight%
\fi%
\end{beamercolorbox}
}
\makeatother
\logo{\includegraphics[width=1.2cm,keepaspectratio]{example-image-a}}
\logoright{\includegraphics[width=1.2cm,keepaspectratio]{example-image-b}}
\title{The Title}
\author{The Author}
\institute{The Institute}
\begin{document}
{
\setbeamertemplate{logo}{}
\setbeamertemplate{logoright}{}
\begin{frame}
\maketitle
\end{frame}
}
\begin{frame}{this}
test
\end{frame}
\end{document}
答案2
这是一种肮脏的黑客行为,但如果你想避免 pgf,请尝试这个
\logo{%
\makebox[1.85\paperwidth]{%
\hfill%
\hspace{3em}
\includegraphics[width=1cm,keepaspectratio]{example-image-a}%
\hfill%
\includegraphics[width=1cm,keepaspectratio]{example-image-b}%
}%
}
想法:徽标位于左上角的中央。如果框足够大(约为页面宽度的 2 倍),它将延伸到右上角。然后将徽标放在框的中心和右端。