Warum funktioniert der Iterator in foreach nicht?

Warum funktioniert der Iterator in foreach nicht?

Ich habe ein animiertes GIF in Einzelbilder aufgeteilt und diese als PNG-Sequenz gespeichert. Ich verwende die beamerKlasse und möchte die Bilder aus der Sequenz laden und sie gegenseitig ersetzen, ohne dass eine Animation automatisch gestartet wird.

\begin{frame}\frametitle{FooBar}
\foreach \x in {0,...,5} {
   \includegraphics<\x+1>[width=0.95\textwidth]{dbgp-setup2-\x.png}
}
\end{frame}

Die Compilerausgabe besagt, dass

Latexmk: Missing input file: 'dbgp-setup2-.png' from line

Der Dateiname sollte usw. sein dbgp-setup2-0.png. dbgp-setup2-1.pngWarum \xfunktioniert das nicht?

Antwort1

Der Parser analysiert nicht \x+1, also müssen Sie das selbst tun. In diesem Fall \x+1stimmt es mit der Anzahl überein, also können wir das verwenden. (Natürlich habe ich Ihre Bilder nicht, also habe ich einige Standardbilder umbenannt.)

\documentclass{beamer}
\usepackage{pgffor}
\begin{document}
\begin{frame}\frametitle{FooBar}
\foreach \x [count=\y] in {0,...,3} {
   \includegraphics<\y>[width=0.95\textwidth]{dbgp-setup2-\x}
}
\end{frame}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Ich bin nicht sicher, warum die Sache so kompliziert ist:

\documentclass{beamer}
\usepackage{pgffor}
\begin{document}
\begin{frame}\frametitle{FooBar}
\foreach \x in {0,...,3} {%
   \includegraphics<+>[width=0.95\textwidth]{dbgp-setup2-\x}%
}
\end{frame}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen