在 beamer 中将徽标与页码对齐

在 beamer 中将徽标与页码对齐

如何将徽标和页码对齐在同一级别?现在徽标似乎位于页码之上。

\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,但仍然没有得到。

相关内容