Beamer - 在列中显示一列中的图片,在另一列中的文本之前和之后

Beamer - 在列中显示一列中的图片,在另一列中的文本之前和之后

我正在用 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\uncovered之前equation*。所以我们从那里的默认幻灯片计数中减去 2。但我们还需要将第二张\item\uncoveredequation*向下移动以便为图片腾出空间(否则图形和第二张\item会同时出现。)所以我们除了那里的增量之外还加了 1。

优点是,如果我在移位图形之前或最后一个\uncover编辑之后插入内容equation*,则无需调整覆盖规范。但两者之间的内容则需要调整。

(有关此内容,请阅读 3.10 beamer 手册的第 9 章。实际上,您可能需要阅读几遍。\smiley

相关内容