Beamer 中的这些空白是从哪里来的?

Beamer 中的这些空白是从哪里来的?

我正在尝试自定义投影仪演示文稿,并尝试使用以下代码来设置框架标题的外观:

\setbeamertemplate{frametitle}{
    \begin{beamercolorbox}[left, wd = \paperwidth, ht = 1em]{palette frame title}
        \usebeamerfont{frametitle}
        \textbf{\insertframetitle}
    \end{beamercolorbox}
    
    \begin{beamercolorbox}[wd = \paperwidth, ht = .15em]{palette frame title}
        \rule{\paperwidth}{.15em}
    \end{beamercolorbox}
}

结果如下(我已经bg = yellow在调色板中设置以beamercolorbox可视化它们的尺寸):

在此处输入图片描述

如果有人能向我解释一下这两个空白从何而来,我将不胜感激:第一个框上方的空白beamercolorbox和两个框之间的空白。我注意到,修改框的高度似乎会改变这些空白的大小,这在我看来是一种奇怪的行为,并且很难准确定位事物。

答案1

您可以查看默认的 beamer 主题,了解它们如何根据背景颜色的存在删除行间跳跃,例如https://github.com/josephwright/beamer/blob/main/base/themes/outer/beamerouterthemedefault.sty#L164

\documentclass{beamer}

\setbeamertemplate{frametitle}{%
  \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
  \begin{beamercolorbox}[left,wd=\paperwidth,ht=2.5ex,dp=1ex]{frametitle}
    \usebeamerfont{frametitle}%
    \strut\insertframetitle
  \end{beamercolorbox}%
  
  \ifbeamercolorempty[bg]{lower separation line head}{}{\nointerlineskip}%
  \begin{beamercolorbox}[colsep=1.5pt,wd=\paperwidth]{lower separation line head}
  \end{beamercolorbox}%
}

\setbeamercolor{frametitle}{bg=yellow,fg=blue}
\setbeamerfont{frametitle}{series=\bfseries}
\setbeamercolor{lower separation line head}{bg=blue}

\begin{document}

\begin{frame}
\frametitle{titgle}
  abc
\end{frame}

\end{document}

在此处输入图片描述

相关内容