![在 beamer 中将徽标与页码对齐](https://linux22.com/image/305494/%E5%9C%A8%20beamer%20%E4%B8%AD%E5%B0%86%E5%BE%BD%E6%A0%87%E4%B8%8E%E9%A1%B5%E7%A0%81%E5%AF%B9%E9%BD%90.png)
如何将徽标和页码对齐在同一级别?现在徽标似乎位于页码之上。
\documentclass[t]{beamer}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
\logo{\makebox[1\paperwidth]{\includegraphics[width=.5cm,keepaspectratio]{logo.png}}}
\begin{document}
\begin{frame}[c]{Hello world}
\begin{itemize}
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{frame}
\end{document}
输出:
答案1
如果您希望徽标显示在页脚的中央,则需要重新定义footline
由选项实现的模板frame number
(原始代码在 中beamerbaseauxtemplates.sty
),并将sidebar right
模板设置为空(这是徽标在主题中出现的模板default
)。以下示例显示了此重新定义(您可能需要调整 中的长度\raisebox
以满足您的需要):
\documentclass[t]{beamer}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
\logo{\includegraphics[width=.5cm,keepaspectratio]{tux}}
\setbeamertemplate{sidebar right}{}
\defbeamertemplate*{footline}{logo-frame number}
{
\rlap{\raisebox{-1.75ex}[0pt][0pt]{\makebox[\paperwidth]{\insertlogo}}}%
\hfill%
\usebeamercolor[fg]{page number in head/foot}%
\usebeamerfont{page number in head/foot}%
\insertframenumber\,/\, \inserttotalframenumber\kern1em\vskip2pt%
}
\begin{document}
\begin{frame}[c]{Hello world}
\begin{itemize}
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{frame}
\end{document}
结果:
如果您所要做的只是将徽标移到左侧,那么您所要做的就是摆脱 \makebox:
\documentclass[t]{beamer}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
\logo{\includegraphics[width=.5cm,keepaspectratio]{tux}}
\begin{document}
\begin{frame}[c]{Hello world}
\begin{itemize}
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{frame}
\end{document}
结果:
答案2
默认情况下\makebox
居中对齐。因此你必须使用
\makebox[\paperwidth][r]{....}
将内容刷新到右侧。另一种更简单的方法是:
\pgfdeclareimage[height=0.5cm]{logo}{logo.png}
\logo{\pgfuseimage{logo}\quad}
我添加了`\quad 来将图像稍微向左推,以便与页码对齐。
\documentclass[t]{beamer}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
%\logo{\makebox[\paperwidth][r]{\includegraphics[width=.5cm,keepaspectratio]{logo.png}\quad}}
\pgfdeclareimage[height=0.5cm]{logo}{logo.png}
\logo{\pgfuseimage{logo}\quad}
\begin{document}
\begin{frame}[c]{Hello world}
\begin{itemize}
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{frame}
\end{document}
答案3
要将徽标放在您希望的任何地方,我们可以使用以下 pgf:
\documentclass[t]{beamer}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
\usepackage{pgf}
\logo{\pgfputat{\pgfxy(0,7)}{\pgfbox[right,base]{\includegraphics[width=1.6cm]{logo.png}}}}
\begin{document}
\begin{frame}[t]{Hello world}
\begin{itemize}
\item item 1 Test line with loooooooooooooooooooooong text to cross the image
\item item 2
\item item 3
\end{itemize}
\end{frame}
\end{document}
输出:
还有一些问题:
- pgf 坐标看起来很奇怪,(0,7)现在位于右上角。
- 希望使用页面高度变量来替换 7,但仍然没有得到。