我想添加一个全宽图像,与带有框架标题的框架顶部对齐。问题是,我无法消除橙色框架标题标题和狮子图像之间的一行空白。
\documentclass[t]{beamer}
% Frames are 128x96mm and top-aligned by default.
% Calculate with \sidebarwidth
\usepackage{calc}
\newlength{\sidebarwidth}
% Theme
\setlength{\sidebarwidth}{28mm}
\usetheme[height=16mm, right, width=\sidebarwidth]{Goettingen}
% Hence, a full frame image is 100x80mm
\usecolortheme{crane}
% Include full-width graphics
\usepackage{graphicx}
\newcommand{\includefullwidthgx}[2][]{%
\noindent\makebox[\columnwidth]{\includegraphics[width=128mm-\sidebarwidth, #1]{#2}}%
}%
\begin{document}
\begin{frame}
\frametitle{frame title text}
\includefullwidthgx{lion.jpg}
\end{frame}
\end{document}
答案1
您看到的垂直空间由两部分组成,这两部分都以某种方式指定beamerbaseframe.sty
:
如果 frametitle 非空,beamer 会将 a 附加
\vskip0.25em
到\beamer@frametitlebox
(第 122 行)。这是硬编码的,但可以通过不指定 frametitle 来避免。在第 142 行或第 144 行,beamer 发出
\vskip\beamer@frametopskip
(autobreak
)。此跳过取决于垂直帧对齐 (t
/c
/b
);对于t
(top),它是0.2cm plus…
。它设置在\define@key{beamerframe}{t}[true]
(第 258 行) 中,可以通过修改或覆盖此 来更改\define@key
。
这两个组件加起来就是您示例中的垂直空间。Beamer 没有提供直接的方法来消除它,所以它可能认为这是一件好事。
答案2
我通过添加 来帮助自己\vspace{-9.5pt}
。该值似乎不会随标准主题而改变。标题中是否存在副标题也无关紧要。不过,我发现这是一个不通用的、不太理想的解决方案。谁做得更好?
\documentclass[t]{beamer}
% Frames are 128x96mm and top-aligned by default.
% Calculate with \sidebarwidth etc.
\usepackage{calc}
\newlength{\sidebarwidth}
% Theme
\setlength{\sidebarwidth}{28mm}
\usetheme[height=16mm, right, width=\sidebarwidth]{Goettingen}
% Hence, a full frame image is 100x80mm
\usecolortheme{crane}
% Include full-width graphics
\usepackage{graphicx}
\newcommand{\includefullwidthgx}[2][]{%
\vspace{-9.5pt}
\noindent\makebox[\columnwidth]{\includegraphics[width=128mm-\sidebarwidth, #1]{#2}}%
}%
\begin{document}
\begin{frame}
\frametitle{Sub-optimal solution.}
\framesubtitle{Anyone does better?}
\includefullwidthgx{lion.jpg}
\end{frame}
\end{document}