我的工作没有使用预定义的主题。
看来
\begin{frame}[c]
Hello world!
\end{frame}
文本没有完全垂直居中;它有点太高了。
我设法使用 minipage 环境解决了这个问题:
\begin{frame}[c]
\begin{minipage}[c][\textheight][c]{\linewidth}
Hello world!
\end{minipage}
\end{frame}
还有其他解决办法吗?
答案1
在中,我们可以找到框架选项beamerbaseframe.sty
的定义:c
\define@key{beamerframe}{c}[true]{% centered
\beamer@frametopskip=0pt plus 1fill\relax%
\beamer@framebottomskip=0pt plus 1.5fill\relax%
\beamer@frametopskipautobreak=0pt plus .4\paperheight\relax%
\beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax%
\def\beamer@initfirstlineunskip{}%
}
为了使文本完全垂直居中,我们只需要重新定义它,使\beamer@frametopskip
和\beamer@framebottomskip
具有相同fill
:
\documentclass{beamer}
\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%
\def\beamer@initfirstlineunskip{}%
}
\makeatother
\begin{document}
\begin{frame}[c]
Hello world!
\end{frame}
\end{document}