我尝试使用 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}