在投影仪演示中,通过唯一命令交换大小相同的图片时,它们的位置会有所不同

在投影仪演示中,通过唯一命令交换大小相同的图片时,它们的位置会有所不同

我想要相同的基本幻灯片,但图片不同。为此,我尝试使用 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-imageYour_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}

相关内容