为什么 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.pngdbgp-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}

在此处输入图片描述

相关内容