我有一个 Beamer 演示文稿并使用 PaloAlto 主题。如您在代码示例中所见,我有两个徽标相互重叠。我想将一个放在左侧,另一个放在右侧。请帮忙?
\logo{\includegraphics[height=0.8cm]{images/city_magazine_custom_logo}\hspace{-60pt}
\includegraphics[height=0.8cm]{images/ses50}\hspace{-10pt}
}
答案1
这里有重新定义headline
主题使用的模板的一种可能性PaloAlto
;我定义了一个\logoii
用于第二个徽标的命令,其方式完全类似于标准 \logo 命令(我在我的示例中对两个徽标使用了相同的图像,但是,当然,您可以使用任何您想要的图像):
\documentclass{beamer}
\usetheme{PaloAlto}
\makeatletter
\newcommand\insertlogoii{}
\newcommand\logoii[1]{\renewcommand\insertlogoii{#1}}
\setbeamertemplate{headline}
{%
\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%
\vrule width\beamer@sidebarwidth height \beamer@headheight%
\hskip-\beamer@sidebarwidth%
\hbox to \beamer@sidebarwidth{\hss\vbox to
\beamer@headheight{\vss\hbox{\color{fg}\insertlogoii}\vss}\hss}%
\else%
\vrule width0pt height \beamer@headheight%
\fi%
\end{beamercolorbox}
}
\makeatother
\title{The Title}
\subtitle{CTAN lion drawing by Duane Bibby}
\author{The Author}
\logo{\includegraphics[height=0.8cm]{ctanlion}}
\logoii{\includegraphics[height=0.8cm]{ctanlion}}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\end{document}
答案2
这是一个肮脏的黑客,但可以尝试类似的东西
\logo{%
\makebox[1.85\paperwidth]{%
\hfill%
\hspace{3em}
\includegraphics[width=1cm,keepaspectratio]{example-image-a}%
\hfill%
\includegraphics[width=1cm,keepaspectratio]{example-image-b}%
}%
}
想法:徽标位于左上角的中央。如果框足够大(约为页面宽度的 2 倍),它将延伸到右上角。然后将徽标放在框的中心和右端。
答案3
此答案是从使用 Berkeley 主题的重复答案中移出的。代码实际上与 Gonzalo Medina 的代码相同(因为两个主题都使用侧边栏外部主题),但也许它为感兴趣的读者增加了一些价值(右侧没有背景颜色,徽标的宽度/高度)
这可能会有用:
我将添加一个更长的解释来说明我是如何得出这个解决方案的(我是 Beamer 专家),以便其他人可以看到如何解决这样的问题。
首先,您会看到使用的主题是“Berkeley”,因此进入定义文件beamerthemeBerkeley.sty
(只需谷歌搜索,您就会找到代码)。
在那里我们可以看到外部主题(负责侧边栏和标题等的主题)是“侧边栏”,所以接下来我们查看beamerouterthemesidebar.sty
并搜索关键字logo
,看看它是否用于标题定义。
然后我所做的就是编辑定义以在logoright
右侧添加另一个徽标(通过复制和粘贴\hfill
)并定义一些命令来设置徽标。只需根据您的喜好调整图像的大小即可。
如果您想要调整标题/侧边栏图像的高度或宽度(或两者),您可以通过以下方式设置徽标:
\makeatletter
\logo{\includegraphics[width=\beamer@sidebarwidth,height=\beamer@headheight]{example-image-a}}
\logoright{\includegraphics[width=\beamer@sidebarwidth,height=\beamer@headheight]{example-image-b}}
\makeatother
\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}
答案4
动机在首页和幻灯片中定位徽标我决定使用包发布答案tikz
。如果决定使用 tikz 包,他可以在幻灯片的不同部分添加不同的徽标。代码实际上与 Gonzalo Medina 的作品相同,但我添加了几行。
\documentclass{beamer}
\usetheme{Berkeley}
\usepackage{tikz}
\title{The Title}
\author{The Author}
\institute{The Institute}
\begin{document}
{
\setbeamertemplate{logo}{}
\begin{frame}
\maketitle
\end{frame}
}
\addtobeamertemplate{frametitle}{}{%
\begin{tikzpicture}[remember picture,overlay]
\node[anchor=north west,yshift=-4pt] at (current page.north west) {\includegraphics[height=0.9cm]{example-image-a}};
\end{tikzpicture}}
\addtobeamertemplate{frametitle}{}{%
\begin{tikzpicture}[remember picture,overlay]
\node[anchor=north east,yshift=-4pt] at (current page.north east) {\includegraphics[height=0.9cm]{example-image-b}};
\end{tikzpicture}}
\begin{frame}{Motivation}
Now the logo is visible
\end{frame}
\begin{frame}{Motivation}
\framesubtitle{A}
Now the logo is visible
\end{frame}
\end{document}