etoolbox 中的多个列表

etoolbox 中的多个列表

我尝试使用 etoolbox 创建多个列表,并在文档末尾进行处理。这些列表可能数量庞大,而且我事先并不知道会有多少个,因此我一直尝试在列表名称中使用数字来跟踪所有内容。

对于下面的代码,我可能做了一些非常错误的事情,只是我不清楚那是什么。

\documentclass{article}
\usepackage{etoolbox}

\begin{document}
\csdef{foo1}{}
\csdef{foo2}{}

\listcsadd{\csname foo1\endcsname}{first}
\listcsadd{\csname foo2\endcsname}{second}

\dolistcsloop{\csname foo1\endcsname}

\end{document}

这会打印“firstsecond”,但我仅期望它打印“first”。如果我仅尝试打印第二个列表,也会发生同样的事情。我需要进行哪些更改才能使其表现如我所期望的那样?

答案1

...cs...命令的变体姓名宏而不是宏本身,所以你不想要那些\csname(它们是内部添加的)

\documentclass{article}
\usepackage{etoolbox}

\begin{document}
\csdef{foo1}{}
\csdef{foo2}{}

\listcsadd{foo1}{first}
\listcsadd{foo2}{second}

\dolistcsloop{foo1}

\end{document}

相关内容