Наложение не работает с изображениями при использовании фигурных скобок

Наложение не работает с изображениями при использовании фигурных скобок

Следующий код работает так, как и ожидалось, при этом два изображения отображаются на двух разных слайдах в одном и том же месте:

\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отличается, если есть аргумент или нет. Цитата из руководства пользователя проектора:

Поведение этой команды зависит от того, указан ли необязательный аргумент ⟨текст⟩ или нет (обратите внимание, что необязательный аргумент указан в обычных фигурных скобках, а не в квадратных). Если он присутствует, ⟨модификатор⟩ может быть либо a+, либо a*.

[...]

Если присутствует аргумент ⟨text⟩, \onslide (без ⟨модификатора⟩) сопоставляется с \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}

введите описание изображения здесь

Связанный контент