![Beamer - 在列中显示一列中的图片,在另一列中的文本之前和之后](https://linux22.com/image/236779/Beamer%20-%20%E5%9C%A8%E5%88%97%E4%B8%AD%E6%98%BE%E7%A4%BA%E4%B8%80%E5%88%97%E4%B8%AD%E7%9A%84%E5%9B%BE%E7%89%87%EF%BC%8C%E5%9C%A8%E5%8F%A6%E4%B8%80%E5%88%97%E4%B8%AD%E7%9A%84%E6%96%87%E6%9C%AC%E4%B9%8B%E5%89%8D%E5%92%8C%E4%B9%8B%E5%90%8E.png)
我正在用 beamer 做演示,我想知道是否可以在两列中,让文本首先出现在左列,然后在第二次单击时我会在右列中得到一张图片,然后我继续显示左列中的文本?
我现在的做法是,右栏中的图片将出现在左栏中的文本之后:
\begin{frame}
\frametitle{Prva probna valna funkcija}
Varijacionu metodu započinjemo sljedećom probnom valnom funkcijom\pause
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{itemize}
\item\begin{equation*}
\varphi_1(x)=\left(\frac{b}{\sqrt{\pi}}\right)^{1/2}e^{-\frac{b^2}{2}x^2}
\end{equation*}
\pause
\item Očekivana vrijednost energije\pause
\begin{equation*}
E(b)=\langle\varphi_1|\hat{H}|\varphi_1\rangle,
\end{equation*}
\end{itemize}
\end{column}\pause
\begin{column}{0.5\textwidth}
\centerline{\includegraphics[width=0.9\textwidth]{valfun1.eps}}
\end{column}
\end{columns}
\end{frame}
我希望它首先显示第一个等式,然后显示右边的图片,然后显示左边的一些文字...
谢谢您的任何建议。
答案1
您可以使用\onslide
:
\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\begin{document}
\begin{frame}
\frametitle{Prva probna valna funkcija}
Varijacionu metodu započinjemo sljedećom probnom valnom funkcijom\pause
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{itemize}
\item\onslide<1->{\begin{equation*}
\varphi_1(x)=\left(\frac{b}{\sqrt{\pi}}\right)^{1/2}e^{-\frac{b^2}{2}x^2}
\end{equation*}}
\item\onslide<4>{Očekivana vrijednost energije\pause
\begin{equation*}
E(b)=\langle\varphi_1|\hat{H}|\varphi_1\rangle,
\end{equation*}}
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\onslide<2->{\centerline{\includegraphics[width=0.9\textwidth]{valfun1.eps}}}
\end{column}
\end{columns}
\end{frame}
\end{document}
我使用该行\PassOptionsToPackage{demo}{graphicx}
来使我的示例可供所有人编译;不要在实际代码中包含该行。
答案2
您可以将覆盖规范添加到许多环境和宏中——column
特别\item
是在 beamer 中(此类命令/环境称为覆盖规范感知)。这样就不需要很多\onslide
宏了。因此,Gonzalo 的代码可以稍微精简一点:
\documentclass[draft]{beamer}
\begin{document}
\begin{frame}
\frametitle{Prva probna valna funkcija}
Varijacionu metodu započinjemo sljedećom probnom valnom funkcijom
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{itemize}
\item<2->\begin{equation*}
\varphi_1(x)=\left(\frac{b}{\sqrt{\pi}}\right)^{1/2}e^{-\frac{b^2}{2}x^2}
\end{equation*}
\item<4-> Očekivana vrijednost energije
\uncover<5->{\begin{equation*}
E(b)=\langle\varphi_1|\hat{H}|\varphi_1\rangle,
\end{equation*}}
\end{itemize}
\end{column}
\begin{column}<3->{0.5\textwidth}
\centerline{\includegraphics[width=0.9\textwidth]{valfun1.eps}}
\end{column}
\end{columns}
\end{frame}
\end{document}
(该draft
选项使其在没有图形文件的情况下进行编译。)
规范的<n->
意思是“从幻灯片中展示这些内容n以后。”唯一无法将其附加到命令或环境的情况是equation*
您想要揭示的环境。所以我使用了\uncover
。
您还可以使用增加的覆盖规范,其中<+->
表示“将幻灯片计数加一,然后显示幻灯片中的这些内容n等等”。我有点喜欢这个,因为这意味着你可以插入东西,而不必更改所有数字。如果你只是把这些放在<n->
上面所有的地方,你就会回到原来的问题,然而:东西会按照编码的顺序被发现,而不是你想要的顺序。但括号里的数字后如果数字为负数,则表示+
幻灯片计数增加(或减少)相应数量。因此,您也可以这样做:
\documentclass[draft]{beamer}
\begin{document}
\begin{frame}
\frametitle{Prva probna valna funkcija}
Varijacionu metodu započinjemo sljedećom probnom valnom funkcijom
\begin{columns}
\begin{column}<+->{0.5\textwidth}
\begin{itemize}
\item<+->\begin{equation*}
\varphi_1(x)=\left(\frac{b}{\sqrt{\pi}}\right)^{1/2}e^{-\frac{b^2}{2}x^2}
\end{equation*}
\item<+(1)-> Očekivana vrijednost energije
\uncover<+(1)->{\begin{equation*}
E(b)=\langle\varphi_1|\hat{H}|\varphi_1\rangle,
\end{equation*}}
\end{itemize}
\end{column}
\begin{column}<+(-2)->{0.5\textwidth}
\centerline{\includegraphics[width=0.9\textwidth]{valfun1.eps}}
\end{column}
\end{columns}
\end{frame}
\end{document}
要弄清楚它是如何工作的,首先要在<+->
每个地方都输入。我在第一列输入了一个虚拟的 1,因为我需要从零开始增加幻灯片计数。我们希望将图片在序列中向上移动两步——在第二张\item
和\uncover
ed之前equation*
。所以我们从那里的默认幻灯片计数中减去 2。但我们还需要将第二张\item
和\uncover
edequation*
向下移动以便为图片腾出空间(否则图形和第二张\item
会同时出现。)所以我们除了那里的增量之外还加了 1。
优点是,如果我在移位图形之前或最后一个\uncover
编辑之后插入内容equation*
,则无需调整覆盖规范。但两者之间的内容则需要调整。
(有关此内容,请阅读 3.10 beamer 手册的第 9 章。实际上,您可能需要阅读几遍。\smiley
)