使用大括號時疊印不適用於影像

使用大括號時疊印不適用於影像

以下程式碼按預期工作,其中兩個圖像出現在同一位置的兩張不同幻燈片上:

\documentclass[aspectratio=169]{beamer}
\begin{document}

\begin{frame}[t]
  \frametitle{Test}
    \begin{overprint}
      \onslide<1>\includegraphics{pictures/test1.png}
      \onslide<2>\includegraphics{pictures/test2.png}
    \end{overprint}
\end{frame}
\end{document}

但是,如果我在onslide命令後添加大括號,它就不再起作用:

\documentclass[aspectratio=169]{beamer}
\begin{document}

\begin{frame}[t]
  \frametitle{Test}
    \begin{overprint}
      \onslide<1>{\includegraphics{pictures/test1.png}}
      \onslide<2>{\includegraphics{pictures/test2.png}}
    \end{overprint}
\end{frame}
\end{document}

為什麼是這樣?對於上下文,我包含大括號,因為我希望能夠在環境\onslide之外使用命令overprint。我的MWE最終目標是:

\documentclass[aspectratio=169]{beamer}
\begin{document}

\begin{frame}[t]
  \frametitle{Test}
  \begin{itemize}
  \onslide<1> {\item Slide 1}
  \onslide<2> {\item Slide 2}
  \end{itemize}
    \begin{overprint}
      \onslide<1>{\includegraphics{pictures/test1.png}}
      \onslide<2>{\includegraphics{pictures/test2.png}}
    \end{overprint}
\end{frame}
\end{document}

除非我包含大括號,否則這兩個單獨的實例onslide似乎不起作用,但這樣做會導致overprint停止工作。

答案1

\onslide無論是否存在爭論,行為都會有所不同。引用投影機使用者指南:

此命令的行為取決於是否給出可選參數 ⟨text⟩ (請注意,可選參數在普通大括號中給出,而不是在方括號中)。如果存在,⟨modifier⟩ 可以是 a+ 或 a*。

[...]

如果存在 ⟨text⟩ 參數,則 \onslide (不含 ⟨modifier⟩)映射到 \uncover,\onslide+ 映射到 \visible,而 \onslide* 映射到 \only。

這意味著,如果您想使用參數希望參數不佔空間,那麼您應該使用\onslide*.

(我個人覺得直接使用等等比較方便\only{}\uncover{}從名字就知道它是做什麼的)

\documentclass[aspectratio=169]{beamer}
\begin{document}

\begin{frame}[t]
  \frametitle{Test}
  \begin{itemize}[<only@+>]
  \item Slide 1
  \item Slide 2
  \end{itemize}
    \begin{overprint}
      \onslide*<1>{\includegraphics[page=1]{example-image-duck}}
      \onslide*<2>{\includegraphics[page=2]{example-image-duck}}
    \end{overprint}
\end{frame}
\end{document}

在此輸入影像描述

相關內容