Por que o iterador no foreach não funciona?

Por que o iterador no foreach não funciona?

Dividi um GIF animado em quadros e os salvei como uma sequência PNG. Utilizo a beamerclasse e quero carregar as imagens da sequência, substituindo umas às outras sem animação de inicialização automática.

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

A saída do compilador diz que

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

O nome do arquivo deveria ser dbgp-setup2-0.png, dbgp-setup2-1.pngetc. Por que \xnão funciona?

Responder1

O analisador não analisa \x+1, então você precisa fazer isso sozinho. Neste caso \x+1coincide com a contagem, então podemos usar isto. (É claro que não tenho suas imagens, então renomeei algumas imagens padrão.)

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

insira a descrição da imagem aqui

Responder2

Não sei por que fazer a coisa tão complicada:

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

insira a descrição da imagem aqui

informação relacionada