Beamer:顶部对齐框架和非框架页面的间距

Beamer:顶部对齐框架和非框架页面的间距

通常,Beamer 文档中的所有页面都是由框架生成的,但 Beamer 也适用于没有框架的文档或混合文档。任何不属于框架的内容都会被打印出来,就像使用此选项打印在顶部对齐的框架上一样allowframebreaks。这对于从不打算用作演示文稿的源生成的文档特别有用。显然,这些“非框架”不支持叠加,但如果只需要在某些幻灯片上使用叠加,这不是问题。

然而,这些“非框架”的行为并不完全像框架,例如,对于顶部对齐的真实框架,标题(如果有)和框架内容之间的间隙更宽:

\documentclass{beamer}

% \makeatletter
%   \define@key{beamerframe}{t}[true]{% top
%     \beamer@frametopskip=-0.9mm\relax%
%     \beamer@framebottomskip=0pt plus 1fill\relax%
%     \beamer@frametopskipautobreak=\beamer@frametopskip\relax%
%     \beamer@framebottomskipautobreak=\beamer@framebottomskip\relax%
%   }
% \makeatother

\begin{document}
x
\begin{frame}[t]
  x
\end{frame}
\end{document}

上述示例创建了两个仅包含一个 x 的页面,但第二个(实际框架)上的 x 位置较低。查看 beamer 内部,可以通过\beamer@frametopskip对顶部对齐的框架使用负片(注释掉)来规避此问题。

这有两个缺点:

  • 内部结构可能会发生变化,因此该代码将来可能会损坏。
  • 所选的值\beamer@frametopskip是一个粗略的猜测,可能取决于某些长度、跳过或主题。

因此我的问题是: 是否有一种强大的方法可以使非框架和顶部对齐框架的行为尽可能相似,特别是相对于顶部边距(即标题内容距离)?

如果没有,那么至少获取最佳值以\beamer@frametopskip撤消在常规帧上插入的每个跳过等会有所帮助。

PS:像常规框架一样处理“非框架”的解决方案也是可以的,我不需要最小边距,只需要一致性。

相关内容