Beamer:控制徽标在标题中的水平位置

Beamer:控制徽标在标题中的水平位置

我正在处理一个演示文稿,我需要将徽标放在标题的右上角。这是我的代码灵感来源的 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中将徽标移动到框架的左侧。

w1

\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}

相关内容