回到 Powerpoint 时代,我遇到了一种典型的四分之一布局,它只是将幻灯片主体水平和垂直平铺成大小相同的块,内容任意:
-----------------------
| *bla | texttext |
| | texttext |
| | texttext |
-----------------------
| | 1. stuff |
| IMAGE | 2. stuff |
| | 3. stuff |
-----------------------
我尝试重现此问题,但目前失败了。我的第一步是采用列环境并插入垂直空格:
\documentclass{beamer}
\begin{document}
\begin{frame}{foo}{bar}
\begin{columns}[t]
\begin{column}{0.5\textwidth}
\begin{minipage}[t][0.35\textheight]{\textwidth}
sdjfls\\
sdjfk\\
sd
\end{minipage}
\begin{minipage}[t][0.35\textheight]{\textwidth}
sd
\end{minipage}
\end{column}
\begin{column}{0.5\textwidth}
\begin{minipage}[t][0.35\textheight]{\textwidth}
sdjfls\\
sd
\end{minipage}
\begin{minipage}[t][0.35\textheight]{\textwidth}
sdjfls\\
sdjfk\\
sd
\end{minipage}
\end{column}
\end{columns}
\end{frame}
\end{document}
但手动调整0.35\textheight
并不是我真正想要的,因为我必须为每个新主题调整数字 0.35。更好的解决方案是类似0.5\columnheight
或0.5\beamerslidebodyheight
。这个假设可能没有更好的解决方案,请参阅问题为什么 vfill 在 beamer 列内不起作用?。
我愿意接受完全不同的解决方案。
一种可能性是定义一个新的长度:
\newlength{\restofpage}
\setlength{\restofpage}{\textheight}
\addtolength{\restofpage}{-\pagetotal}
0.35\textheight
并用替换所有0.5\restofpage
,但我不认为这适用于脚线。
答案1
我刚刚查看了构建框架的代码,发现不需要一些非常复杂的魔法,这不可能!
被\pageheight
划分为主要区域以及顶部和底部的位。您需要知道所有这些位才能定义长度\restofpage
。可以知道其中一些,例如页眉和页脚,但直到后框架已经搭建好了。这就是框架标题。直到框架收集并组合在一起后,框架标题才会构建。这是因为可以指定框架标题任何地方在幻灯片中。
如果你尝试代码:
\begin{frame}
\message{building the frame}
\lipsum[1]
\frametitle{Quartered Layout\message{in title}}
\message{more building work going on}
\end{frame}
然后您会收到以下消息:building the frame more building work going on in title
显示\frametitle
在帧处理完毕后才会进行处理。
当然,也许可以解决这个问题,比如坚持将框架标题作为参数,\begin{frame}
并在框架开始时构建(和测量)框架标题。但我认为可能有比这更简单的方法来划分内容。
为了反驳 Seamus 的观点,仅仅因为你可以在 Powerpoint 中做到这一点并不意味着这是件坏事。我之前使用 Beamer 的一次尝试就是使用列来呈现一个想法的两个方面:http://www.math.ntnu.no/~stacey/Seminars/infgeom.html(源代码可在该页面上找到)。我最近使用的用于划分页面的块之一:http://www.crcg.de/wiki/Higher_Structures_in_Topology_and_Geometry_V(查找我的名字;来源不可用,但对于制作积木的特定部分,没有涉及任何魔法)。如果您喜欢其中某个外观但自己无法弄清楚,请随时在这里或私下询问。
很抱歉这不是一个更积极的答案!