您可以定义一个变量,然后将其用作 \foreach 循环的元素列表吗?

您可以定义一个变量,然后将其用作 \foreach 循环的元素列表吗?

我有一段代码,用于迭代项目列表,但我在几个地方都这样做,并且想避免每次都重新定义该列表。这是我的工作:

\foreach \f in {193, 87, 88, 85, 80, 81, 79, 89}{                                      
     \includegraphics{\f.png}  
} 

我希望能够做这样的事情:

\foreach \f in \allfs{                                      
     \includegraphics{\f.png}
}   

有没有办法定义\allfs这样我可以迭代它?我试过只做\newcommand\allfs{{193, 87, 88, 85, 80, 81, 79, 89}}但那不起作用。它会查找文件{193, 87, 88, 85, 80, 81, 79, 89}.png

抱歉,如果这是一个重复的问题,我很难找到正确的搜索方式

答案1

我宁愿\foreach使用/.listkey,这样就不需要像\f循环变量这样的宏,也不需要组。在这种情况下,它特别方便,因为它可以与 key 配对/.expanded

\documentclass{article}
\usepackage{pgffor}
\usepackage{graphicx}
\begin{document}
\newcommand\allfs{{a,b,c,duck}}
\pgfkeys{include graphics/.code={\includegraphics{example-image-#1.pdf}\par}}% \par is only added for this example
\pgfkeys{include graphics/.list/.expanded=\allfs}
\end{document}

相关内容