A impressão sobreposta não funciona com imagens ao usar aparelho

A impressão sobreposta não funciona com imagens ao usar aparelho

O código a seguir funciona conforme o esperado, onde duas imagens aparecem em dois slides diferentes no mesmo local:

\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}

No entanto, se eu adicionar colchetes após o onslidecomando, ele não funcionará mais:

\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}

Por que é isso? Para fins de contexto, estou incluindo colchetes porque quero poder usar \onslidecomandos fora do overprintambiente. um MWE do meu objetivo final é:

\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}

As duas instâncias separadas de onslidenão parecem funcionar, a menos que eu inclua colchetes, mas isso faz com que overprintparem de funcionar.

Responder1

O comportamento de \onslideé diferente se houver uma discussão ou não. Para citar o guia do usuário do beamer:

O comportamento deste comando depende se o argumento opcional ⟨text⟩ é fornecido ou não (observe que o argumento opcional é fornecido entre colchetes normais, não entre colchetes). Se presente, o ⟨modificador⟩ pode ser a+ ou a*.

[...]

Se um argumento ⟨text⟩ estiver presente, \onslide (sem um ⟨modificador⟩) é mapeado para \uncover, \onslide+ é mapeado para \visible e \onslide* é mapeado para \only.

Isso significa que se você quiser usar um argumentoequiser que o argumento não ocupe espaço, então você deve usar \onslide*.

(pessoalmente, acho muito mais fácil usar diretamente \only{}, \uncover{}etc., então sabe-se diretamente o que faz pelo nome)

\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}

insira a descrição da imagem aqui

informação relacionada