Latex Beamer 的垂直居中稍微有点向上

Latex Beamer 的垂直居中稍微有点向上

众多 MWE 中的一个(带或不带普通框架选项、带或不带 vfill、带或不带 c 框架选项等):

\documentclass[10pt]{beamer}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{}
\begin{document}
\begin{frame}[c]{}
\vfill
\rule{\textwidth}{1pt}
\vfill
\end{frame}
\end{document}

这样会生成一条不完全居中的水平线(使用文本代替也不行)。在这种情况下,线上方和下方的空间比例约为 4.5/5.5。为什么?

PS:通过 TikZ 居中,如下所示问题 208633工作正常。

答案1

除了坎帕答案

frametopskip通过对和的对称定义,也可以实现与 campa 第三框架相同的结果framebottomskip

\documentclass[10pt]{beamer}

\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{}

\begin{document}

% from https://tex.stackexchange.com/a/354503/36296
\begin{frame}[c]{} % this works
\null\vfill\null
ace\rule[.5ex]{.5\textwidth}{.5pt}
\vfill
\end{frame}

\makeatletter
\define@key{beamerframe}{c}[true]{% centered
  \beamer@frametopskip=0pt plus 1fill\relax%
% \beamer@framebottomskip=0pt plus 1.5fill\relax%
  \beamer@framebottomskip=0pt plus 1fill\relax%
}
\makeatother
\begin{frame}[c]
aba\rule[.5ex]{.5\textwidth}{.5pt}abc
\end{frame}

\end{document}

答案2

这只是个不成熟的回答,因为我并不确切知道其背后的行为。一个(小)问题是\rule在基线上画了一条线,但这不是真正的问题。考虑以下示例

\documentclass[10pt]{beamer}

\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{}

\begin{document}

\begin{frame}[c]{} % the problem
\vfill
ace\rule[.5ex]{.5\textwidth}{.5pt}
\vfill
\end{frame}

\begin{frame}[c]{} % slightly better
\null\vfill
ace\rule[.5ex]{.5\textwidth}{.5pt}
\vfill
\end{frame}

\begin{frame}[c]{} % this works
\null\vfill\null
ace\rule[.5ex]{.5\textwidth}{.5pt}
\vfill
\end{frame}

\end{document}

第一帧不是居中的。根据经验,我知道仅仅调用\vfill某个地方可能会产生意想不到的结果(TeX 模式),所以我在帧的开头放了一个空框。这给出了上面示例中的第二帧,它稍好一些,但还没有真正居中。为了得到我们想要的结果,我不得不放其他空盒子\vfill我必须承认,我很困惑为什么……

在此处输入图片描述

相关内容