Der folgende Code funktioniert wie erwartet, wobei zwei Bilder auf zwei verschiedenen Folien an derselben Stelle erscheinen:
\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}
Wenn ich jedoch nach dem onslide
Befehl Klammern hinzufüge, funktioniert es nicht mehr:
\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
Warum ist das so? Aus Gründen des Kontexts füge ich Klammern ein, weil ich Befehle außerhalb der Umgebung verwenden möchte overprint
. Ein MWE meines Endziels ist:
\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}
Die beiden separaten Instanzen onslide
scheinen nicht zu funktionieren, wenn ich keine Klammern einfüge. Wenn ich das jedoch tue, funktioniert es overprint
nicht mehr.
Antwort1
Das Verhalten \onslide
ist unterschiedlich, je nachdem, ob ein Argument vorhanden ist oder nicht. Um aus dem Beamer-Benutzerhandbuch zu zitieren:
Das Verhalten dieses Befehls hängt davon ab, ob das optionale Argument ⟨Text⟩ angegeben ist oder nicht (beachten Sie, dass das optionale Argument in normalen Klammern und nicht in eckigen Klammern angegeben wird). Falls vorhanden, kann der ⟨Modifikator⟩ entweder a+ oder a* sein.
[...]
Wenn ein ⟨Text⟩-Argument vorhanden ist, wird \onslide (ohne ⟨Modifikator⟩) auf \uncover, \onslide+ auf \visible und \onslide* auf \only abgebildet.
Das heißt, wenn Sie ein Argument verwenden möchtenUndWenn Sie möchten, dass das Argument keinen Platz einnimmt, sollten Sie verwenden \onslide*
.
\only{}
(ich persönlich finde es viel einfacher, direkt , etc. zu verwenden \uncover{}
, dann weiß man anhand des Namens direkt, was es macht)
\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}