我想要一张有两列的幻灯片。左边是一个子弹,右边两个例子是如何计算左边给出的函数:
\begin{frame}{Example Protocol}
\begin{columns}
\begin{column}{.49\textwidth}
\begin{itemize}
\item Consider the function:
\begin{align*}
&f: \{0, 1\}^2 \times \{0, 1\}^2 \to \{0, 1\},\\
&f(x, y) = \left\lbrace
\begin{array}{cl}
1, & \text{if } x_1 = y_1 \text{ or } y_2 = 1\\
0, & \text{else.}
\end{array}
\right.
\end{align*}\pause
\end{itemize}
\end{column}
\begin{column}{.49\textwidth}
\only<2>{
\begin{figure}
\centering
\input{figs/bp1s.tex}
\end{figure}
}\pause
\only<3>{
\begin{figure}
\centering
\input{figs/bp2s.tex}
\end{figure}
}
\end{column}
\end{columns}
\end{frame}
我的问题:在此设置中,当我进入下一个叠加层时,左侧的项目向下移动一行。我可以通过使用\onslide
而不是\only
来避免这种情况,但这会导致另一个问题,因为第一个图像会阻挡右边的整个空间而第二个图像会显示“超出界限”,而可见叠加层3上右列的一部分为空。
你有正确的方法来解决这个问题吗?
最佳, 尼古拉斯
答案 0 :(得分:1)
有几种可能性可以避免此问题。例如
一种方法是将图像放置在宽度和高度足够的overlayarea
中,以容纳最大的图像
\documentclass{beamer}
\begin{document}
\begin{frame}{Example Protocol 1}
\begin{columns}
\begin{column}{.65\textwidth}
\begin{itemize}
\item Consider the function:
\begin{align*}
&f: \{0, 1\}^2 \times \{0, 1\}^2 \to \{0, 1\},\\
&f(x, y) = \left\lbrace
\begin{array}{cl}
1, & \text{if } x_1 = y_1 \text{ or } y_2 = 1\\
0, & \text{else.}
\end{array}
\right.
\end{align*}
\end{itemize}
\end{column}
\begin{column}{.3\textwidth}
\begin{overlayarea}{\textwidth}{.45\textheight}
\only<2>{%
\begin{figure}
% \centering
\rule{.5\textwidth}{.4\textheight}
\end{figure}
}%\pause
\only<3>{%
\begin{figure}
% \centering
\rule{.5\textwidth}{.2\textheight}
\end{figure}
}
\end{overlayarea}
\end{column}
\end{columns}
\end{frame}
\begin{frame}[t]{Example Protocol 2}
\begin{columns}[T]
\begin{column}{.65\textwidth}
\begin{itemize}
\item Consider the function:
\begin{align*}
&f: \{0, 1\}^2 \times \{0, 1\}^2 \to \{0, 1\},\\
&f(x, y) = \left\lbrace
\begin{array}{cl}
1, & \text{if } x_1 = y_1 \text{ or } y_2 = 1\\
0, & \text{else.}
\end{array}
\right.
\end{align*}
\end{itemize}
\end{column}
\begin{column}{.3\textwidth}
\only<2>{%
\begin{figure}
% \centering
\rule{.5\textwidth}{.4\textheight}
\end{figure}
}%\pause
\only<3>{%
\begin{figure}
% \centering
\rule{.5\textwidth}{.2\textheight}
\end{figure}
}
\end{column}
\end{columns}
\end{frame}
\end{document}
或者使框架和列顶部对齐
\documentclass{beamer}
\begin{document}
\begin{frame}[t]{Example Protocol 2}
\begin{columns}[T]
\begin{column}{.65\textwidth}
\begin{itemize}
\item Consider the function:
\begin{align*}
&f: \{0, 1\}^2 \times \{0, 1\}^2 \to \{0, 1\},\\
&f(x, y) = \left\lbrace
\begin{array}{cl}
1, & \text{if } x_1 = y_1 \text{ or } y_2 = 1\\
0, & \text{else.}
\end{array}
\right.
\end{align*}
\end{itemize}
\end{column}
\begin{column}{.3\textwidth}
\only<2>{%
\begin{figure}
% \centering
\rule{.5\textwidth}{.4\textheight}
\end{figure}
}%\pause
\only<3>{%
\begin{figure}
% \centering
\rule{.5\textwidth}{.2\textheight}
\end{figure}
}
\end{column}
\end{columns}
\end{frame}
\end{document}