我正在处理一个演示文稿,我需要将徽标放在标题的右上角。这是我的代码灵感来源的 MWE:
\documentclass{beamer}
\usetheme{metropolis}
\makeatletter
\setbeamertemplate{frametitle}{%
\nointerlineskip%
\begin{beamercolorbox}[%
wd=\paperwidth,%
sep=0pt,%
leftskip=\metropolis@frametitle@padding,%
rightskip=\metropolis@frametitle@padding,%
]{frametitle}%
\metropolis@frametitlestrut@start%
\insertframetitle%
\nolinebreak%
\metropolis@frametitlestrut@end%
\hfill
\raisebox{-0.6ex}{\includegraphics[height=3ex,keepaspectratio]{example-image-duck}}
\end{beamercolorbox}%
}
\makeatother
\begin{document}
\begin{frame}{My frame title}
\begin{block}{Some itemize}
\begin{itemize}
\item \alert{Item 1}
\item Item 2
\end{itemize}
\end{block}
\begin{block}{Some maths}
\[\sum_{n=1}^{\infty}\frac{1}{n^2}=\frac{\pi^2}{6}=\zeta(2)\]
\end{block}
\end{frame}
\end{document}
我想知道如何控制徽标在标题中的水平位置。我的意思是,\raisebox
允许控制垂直位置,那么我应该使用哪个命令来实现水平控制?我需要稍微向左移动徽标,因为我的实际代码将徽标放置在太靠近右边缘的位置。
答案1
更新
在您的 MWE\hfill
中用(负)水平空间替换。
在代码设置\rightgap
中将徽标移动到框架的左侧。
\documentclass{beamer}
\newlength{\rightgap}
\setlength{\rightgap}{30pt} % adjust to move the logo to the left<<<<<<<
\usetheme{metropolis}
\makeatletter
\setbeamertemplate{frametitle}{%
\nointerlineskip%
\begin{beamercolorbox}[%
wd=\paperwidth,%
sep=0pt,%
leftskip=\metropolis@frametitle@padding,%
% rightskip=\metropolis@frametitle@padding,%
]{frametitle}%
\metropolis@frametitlestrut@start%
\parbox{0.85\paperwidth}{\insertframetitle}% changed <<<<<
\nolinebreak%
\metropolis@frametitlestrut@end%
% \hfill
\hspace*{-\rightgap} % move the logo to the left<<<<<<<
\raisebox{-0.8ex}{\includegraphics[height=3ex,keepaspectratio]{example-image-duck}}
\end{beamercolorbox}%
}
\makeatother
\begin{document}
\begin{frame}{My frame title}
\begin{block}{Some itemize}
\begin{itemize}
\item \alert{Item 1}
\item Item 2
\end{itemize}
\end{block}
\begin{block}{Some maths}
\[\sum_{n=1}^{\infty}\frac{1}{n^2}=\frac{\pi^2}{6}=\zeta(2)\]
\end{block}
\end{frame}
\begin{frame}{My frame long long long long long long long title}
\begin{block}{Some itemize}
\begin{itemize}
\item \alert{Item 1}
\item Item 2
\end{itemize}
\end{block}
\begin{block}{Some maths}
\[\sum_{n=1}^{\infty}\frac{1}{n^2}=\frac{\pi^2}{6}=\zeta(2)\]
\end{block}
\end{frame}
\end{document}