如何在没有标题的 Beamer 框架中垂直居中文本?

如何在没有标题的 Beamer 框架中垂直居中文本?

我想要一个没有标题的普通 Beamer 框架,并有一些垂直和水平居中、突出的文本。以下代码

\documentclass{beamer}
\begin{document}
\begin{frame}[c]
  \begin{center}
    Thank you
  \end{center}
\end{frame}
\end{document}

产生以下结果

在此处输入图片描述

其中文本明显更靠近框架顶部而不是底部。但是,如果我添加标题(使用命令使其不可见但仍占据垂直和水平空间,\phantom以清楚地显示正文文本的不同垂直定位)​​,如下所示

\documentclass{beamer}
\begin{document}
\begin{frame}[c]{\phantom{Title}}
  \begin{center}
    Thank you
  \end{center}
\end{frame}
\end{document}

文本似乎(更接近)垂直居中:

在此处输入图片描述

我希望没有标题和可选参数的普通框架的正文c完全垂直居中 - 而不是相反。有人能告诉我如何实现这一点吗?

最好的情况下,解决方案不要诉诸于使用 TikZ 等外部包;我希望该beamer课程能够为这个(在我看来)基本问题提供一个简单的解决方案,即在演示文稿幻灯片上完美对齐正文。

答案1

您可以使用 tikz 来根据页面定位您的文本:

\documentclass{beamer}
\usepackage{tikz}

\setbeamertemplate{background canvas}{
\begin{tikzpicture}[remember picture,overlay]
\draw[lightgray] (current page.south west) -- (current page.north east);
\draw[lightgray] (current page.south east) -- (current page.north west);
\end{tikzpicture}}

\begin{document}
\begin{frame}
\begin{tikzpicture}[remember picture,overlay]
\node at (current page.center) {Thank you};
\end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

或者您可以使用[s]可拉伸框架选项(需要 beamer v3.65 或更新版本):

\documentclass{beamer}
\usepackage{tikz}

\setbeamertemplate{background canvas}{
\begin{tikzpicture}[remember picture,overlay]
\draw[lightgray] (current page.south west) -- (current page.north east);
\draw[lightgray] (current page.south east) -- (current page.north west);
\end{tikzpicture}}

\begin{document}
\begin{frame}[s]
\vfill

\centering Thank you

\vfill
\end{frame}
\end{document}

在此处输入图片描述

或者您可以重新定义[c]entred框架选项,使其顶部和底部具有相同的可拉伸性:

\documentclass{beamer}
\usepackage{tikz}

\setbeamertemplate{background canvas}{
\begin{tikzpicture}[remember picture,overlay]
\draw[lightgray] (current page.south west) -- (current page.north east);
\draw[lightgray] (current page.south east) -- (current page.north west);
\end{tikzpicture}}

\makeatletter
\define@key{beamerframe}{c}[true]{% centered
  \beamer@frametopskip=0pt plus 1fill\relax%
  \beamer@framebottomskip=0pt plus 1fill\relax%
  \beamer@frametopskipautobreak=0pt plus .4\paperheight\relax%
  \beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax%
}
\makeatother

\begin{document}
\begin{frame}[c]
\centering Thank you
\end{frame}
\end{document}

在此处输入图片描述

相关内容