我想要相同的基本幻灯片,但图片不同。为此,我尝试使用 only 命令。我的最小工作示例是
\documentclass[12pt]{beamer}
\usetheme{Goettingen}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\begin{document}
\begin{frame}{My Example Frame}
\begin{itemize}
\item Text 1
\item Text 2
\item Text 3
\end{itemize}
\begin{columns}[C]
\column{.5\textwidth}
\begin{enumerate}
\item First
\item Second
\item Third
\end{enumerate}
\column{.5\textwidth}
\only<1>{
\includegraphics[width=\textwidth]{Your_Picture}}
\only<2>{
\includegraphics[width=\textwidth]{Your_Picture}}
\only<3>{
\includegraphics[width=\textwidth]{Your_Picture}}
\end{columns}
\end{frame}
\end{document}
目标是让所有图片具有完全相同的尺寸,并始终处于相同的位置。
第一张幻灯片与第二张幻灯片之间位置发生了变化。
有什么想法或解释吗?
答案1
使用\includegraphics<1>{....}
或\only<1>{% \includegraphics{...}}%
注意%
末尾的——省略会导致虚假空白,从而引起图像偏移!
\only<...>{...}
如果有更多的事情要做而不是仅仅提供另一幅图像,那么该版本可能会很有用!
\begin{column}[C]
据我所知是错误的!
\documentclass[12pt,demo]{beamer}
\usetheme{Goettingen}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
%\usepackage{graphicx}
\begin{document}
\begin{frame}{My Example Frame}
\begin{itemize}
\item Text 1
\item Text 2
\item Text 3
\end{itemize}
\begin{columns}
\column{.5\textwidth}
\begin{enumerate}
\item First
\item Second
\item Third
\end{enumerate}
\column{.5\textwidth}
\only<1>{%
\includegraphics[width=\textwidth]{Your_Picture}}%
\only<2>{%
\includegraphics[width=\textwidth]{Your_Picture}}%
\only<3>{%
\includegraphics[width=\textwidth]{Your_Picture}}%
\end{columns}
\end{frame}
\end{document}
答案2
编译时切勿忽略错误。替换example-image
,Your_Picture
我立即收到编译错误,抱怨 中的C
。\begin{columns}
因此,让我们首先进行以下更改:
\begin{columns}
稍微简化一下这个例子:
\documentclass{beamer}
\begin{document}
\begin{frame}{My Example Frame}
\begin{columns}%
\begin{column}{.5\textwidth}
\begin{enumerate}
\item First
\item Second
\item Third
\end{enumerate}
\end{column}%
\begin{column}{.5\textwidth}
\only<1>{%
\includegraphics[width=\linewidth]{example-image}}
\only<2>{%
\includegraphics[width=\linewidth]{example-image}}
\end{column}%
\end{columns}
\end{frame}
\end{document}
重现该问题。这样可以更容易地看到发生了什么。换行符是一个空格。因此,在第一张幻灯片中,我们有
\includegraphics[width=\linewidth]{example-image}
{}
它将被理解为图像后面跟着两个空格,而 TeX 则会将其折叠为图像后面跟着一个空格。
在第二张幻灯片中,我们有
{}
\includegraphics[width=\linewidth]{example-image}
它将被视为一个空格,后跟图像,再后跟一个空格。由于图像需要占据整个列的宽度,因此无法将其容纳在空格之后,因此将在图像之前插入换行符。
%
通过在行尾添加注释掉空格可以解决问题:
\only<1>{%
\includegraphics[width=\linewidth]{example-image}}%
\only<2>{%
\includegraphics[width=\linewidth]{example-image}}%
但是,使用覆盖规范作为参数更容易\includegraphics
:
\includegraphics<1>[width=\linewidth]{example-image}%
\includegraphics<2>[width=\linewidth]{example-image}%
上述最小化示例的完整代码及修复:
\documentclass{beamer}
\begin{document}
\begin{frame}{My Example Frame}
\begin{columns}%
\begin{column}{.5\textwidth}
\begin{enumerate}
\item First
\item Second
\item Third
\end{enumerate}
\end{column}%
\begin{column}{.5\textwidth}
\includegraphics<1>[width=\linewidth]{example-image}%
\includegraphics<2>[width=\linewidth]{example-image}%
\end{column}%
\end{columns}
\end{frame}
\end{document}