我想将作为函数参数传入的空格分隔的项目列表转换为 clist 变量,以便对其进行迭代。但是,我无法创建可用的 clist 变量,如以下代码示例所示。\clist_map_inline:Nn
始终采用整个列表,而不是分隔元素。我做错了什么?
\documentclass{minimal}
\usepackage{expl3}
\ExplSyntaxOn
\cs_new:Nn\parselist:n{
\tl_set:Nx\l_csv_tl{#1}
\tl_replace_all:Nnn\l_csv_tl{~}{,}
\clist_set:Nx\l_csv_clist\l_csv_tl
\clist_map_inline:Nn\l_csv_clist{
\noindent Name:~#1\par
}
}
\ExplSyntaxOff
\begin{document}
\def\csv{fred jane albert}
\ExplSyntaxOn
\parselist:n\csv
\parselist:n{john~peter~linda}
\ExplSyntaxOff
\end{document}
答案1
我自己发现了错误。##1
在的函数体中使用\clist_map_inline:Nn
就可以了。否则将\parselist:n
使用给出的原始参数。