我正在尝试将一些文本移到投影仪幻灯片的底部。为什么可以\vspace*{\fill}
并且vfill
不起作用?幸运的\begin{frame}[b]{Title}
是,它对我来说可以完成这项工作(至少对于大多数幻灯片来说),但我想知道为什么前面提到的命令无法完成这项工作。
\documentclass{beamer}
\begin{document}
\begin{frame}[b]{Title}
This text is correctly bottom aligned.
\end{frame}
\begin{frame}{Title}
Text\\
\vspace*{\fill}
This text is not correctly bottom aligned.
\end{frame}
\begin{frame}{Title}
Text
\vfill
This does not work either.
\end{frame}
\begin{frame}[c]{Title}
Now I am not able to vertically center this text anymore.\\
\vskip0pt plus 1filll
This text is now bottom aligned.
\end{frame}
\end{document}
答案1
似乎\vskip0pt plus 1filll
在文本之前和之后添加会强制其垂直对齐。但其他方法似乎都不起作用,\vspace*{\fill}
并且\vfill
似乎以相同的方式工作。
\begin{frame}[c]{Title}
\vskip0pt plus 1filll
This text is vertically aligned.\\
\vskip0pt plus 1filll
This text is bottom aligned.
\end{frame}
答案2
这一困难背后的动机是因为beamer
花费了相当大的精力来管理框架上的内容,并可以根据\pause
s 和/或叠加规范自动将它们分成不同的幻灯片。具体来说,它会在 的顶部和底部插入跳过frame
,这些会干扰您的跳过。
如果您希望内容分布在,frame
最好将其设置在minipage
适当高度内(根据其是否适合或是否过满进行猜测):
\documentclass{beamer}
\begin{document}
\begin{frame}[b]{Title}
This text is correctly bottom aligned.
\end{frame}
\begin{frame}[t]{Title}
\begin{minipage}[t][0.8715\textheight]{\textwidth}
Text
\vspace{\fill}% or \vfill
This text is correctly bottom aligned.
\end{minipage}
\end{frame}
\end{document}