我不明白如何使用 实现我想要的垂直放置beamer
。让我先给你我的 MWE:
\documentclass[t]{beamer}
\usepackage{tikz}
\setbeamertemplate{frametitle}{%
\begin{tikzpicture}%
\node[anchor=north west,fill=red,inner sep=0pt,outer sep=0pt] at (0,0) {\insertframetitle};%
\end{tikzpicture}%
}
\begin{document}
\begin{frame}
\frametitle{This is the title}
Test
\end{frame}
\begin{frame}
%\frametitle{This slide has no title}
Test
\end{frame}
\end{document}
我想通过框架标题将其直接放置在幻灯片的顶部,但是在我的框之前出现了一个小的白色跳跃,因此框没有放置在我期望的位置:
我想要实现的第二件事是,无论是否有标题,每个内容幻灯片的主要内容都放在同一个框中或同一个位置。但据我所知,如果没有\frametitle
,beamer 就不会使用frametitle
模板,所以我看不出有办法实现这种行为。
感谢任何建议、意见、改进或解决方案建议!
答案1
这里发生了很多事情。要删除框之间的所有空白,以下是适当的设置:
\documentclass[t]{beamer}
\usepackage{tikz}
\makeatletter
\define@key{beamerframe}{t}[true]{% top
\beamer@frametopskip=0pt\relax%
\beamer@framebottomskip=0pt plus 1fill\relax%
\beamer@frametopskipautobreak=\beamer@frametopskip\relax%
\beamer@framebottomskipautobreak=\beamer@framebottomskip\relax%
}
\makeatother
\setbeamertemplate{frametitle}{%
\nointerlineskip%
\begin{tikzpicture}%
\node[anchor=north west,fill=red,inner sep=0pt,outer sep=0pt] at (0,0) {\insertframetitle};%
\end{tikzpicture}%
\vspace*{-0.25ex}%
}
\begin{document}
\begin{frame}
\frametitle{This is the title}
\nointerlineskip
Test
\end{frame}
\begin{frame}
\nointerlineskip
Test
\end{frame}
\end{document}
因此基本上\vspace{0.25ex}
总是通过 beamer 在框架标题和内容之间引入,我们必须将其删除。并且也会\nointerlineskip
在各种 vbox 之间被抑制。然后我们得到最小间距。