Почему итератор в foreach не работает?

Почему итератор в foreach не работает?

Я разделил анимированный GIF на кадры и сохранил их как последовательность PNG. Я использую класс beamerи хочу загрузить изображения из последовательности, заменяя друг друга без автостарта анимации.

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

Вывод компилятора говорит, что

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

Имя файла должно быть dbgp-setup2-0.pngи dbgp-setup2-1.pngт.д. Почему \xне работает?

решение1

Парсер не разбирает \x+1, поэтому вам нужно сделать это самостоятельно. В данном случае \x+1совпадает с подсчетом, поэтому мы можем это использовать. (Конечно, у меня нет ваших изображений, поэтому я переименовал некоторые стандартные изображения.)

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

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

решение2

Я не совсем понимаю, зачем делать это так сложно:

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

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

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