如何在 beamer frametitle 中使用 \hspace

how to use \hspace in beamer frametitle

我想将我的标题向右调整几毫米,但是当我尝试这样做时:

\addtobeamertemplate{frametitle}{\hspace{5mm}}

我的标题刚刚向下移动。我不明白为什么:

我也试过用这个:

\setbeamertemplate{frametitle}{\hspace{4mm}\insertframetitle}

但是我的整个标题默认向右移动了很多:

您在 frametitle 模板开头附加 space 的方法将不起作用,因为 frametitle 通常设置在跨越整个模板的 beamercolorbox 中页。如果在它前面添加 space ,它将不再适合该行,因此乳胶会在它之前添加一个换行符。最好的方法是重新定义模板,使框变小。

假设你使用默认的frametitle模板(通过更改我用<- change value here标记的行来调整位置):

\documentclass{beamer}

\makeatletter
\setbeamertemplate{frametitle}{%
  \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
  \@tempdima=\textwidth%
  \advance\@tempdima by\beamer@leftmargin%
  \advance\@tempdima by\beamer@rightmargin%
  \advance\@tempdima by-4cm% <- change value here
  \hfill%
  \begin{beamercolorbox}[sep=0.3cm,left,wd=\the\@tempdima]{frametitle}
    \usebeamerfont{frametitle}%
    \vbox{}\vskip-1ex%
    \if@tempswa\else\csname beamer@fteleft\endcsname\fi%
    \strut\insertframetitle\strut\par%
    {%
      \ifx\insertframesubtitle\@empty%
      \else%
      {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\strut\insertframesubtitle\strut\par}%
      \fi
    }%
    \vskip-1ex%
    \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
  \end{beamercolorbox}%
}
\makeatother

\begin{document}
    
\begin{frame}
  \frametitle{title}
    abc
\end{frame} 
    
\end{document}