迭代来自变量的列表

迭代来自变量的列表

我想遍历存储在变量内的值列表。

问题在于,要迭代的项目列表(\myList在 MWE 中)是先前声明的变量的值(\mydata)。

如 MWE 所示,此嵌套声明会破坏迭代。事实上,迭代 over\myData不会产生任何问题,而迭代 over\myList会产生问题。

MWE 输出

\documentclass{article}
\usepackage{pgffor}
\setlength\parindent{0pt}
\def\myData{1,2}
\def\myList{\myData}

\begin{document}
\section*{Variables}

Mydata : \myData

Mylist : \myList

\section*{Iteration over myList} 
Somewhere this is broken due to the variable declaration...

\foreach \x in \myList
{
    Item \x \\
}

\section*{Iteration over myData}

\foreach \x in \myData
{
    Item \x \\
}
\end{document}

如何使变量重新定义不破坏迭代?我无法做到这一点,因为这个 MWE 是一个更广泛项目的摘录。

答案1

这是一个扩展问题。如果你使用 \edef\myList{\myData}或,\edef\myList{\myData}则你的代码将起作用:

\documentclass{article}
\usepackage{pgffor}
\setlength\parindent{0pt}
\def\myData{1,2}
\edef\myList{\myData}

\begin{document}
\section*{Variables}

Mydata : \myData

Mylist : \myList

\section*{Iteration over myList}
Somewhere this is broken due to the variable declaration...

\foreach \x in \myList
{
    Item \x \\
}

\section*{Iteration over myData}

\foreach \x in \myData
{
    Item \x \\
}
\end{document}

相关内容