xparse SplitList 参数扩展

xparse SplitList 参数扩展

我需要从变量(实际上是数据文件)中分离逗号分隔的字符串以便进一步处理。

有 MWE:

\documentclass{article}
\usepackage{csvsimple}
\usepackage{xparse}
\usepackage{filecontents}

\begin{filecontents*}{sample.csv}  
colA;  
A,B,C;  
\end{filecontents*}

\NewDocumentCommand{\myfunc}{ >{\SplitList{,}} m }{\ProcessList{#1}{\func}}
\NewDocumentCommand{\func}{m}{\fbox{#1}}

\newcommand{\textA}{a,b,c}

\begin{document}
\parindent=0pt

(1) \myfunc{a,b,c}\\  % OK
(2) \myfunc{\textA}\\ % Wrong
(3) \expandafter\myfunc\expandafter{\textA}\\ % OK

\csvreader[
head to column names,
separator=semicolon
]{sample.csv}{}%
{
(4) \expandafter\myfunc\expandafter{\colA} % Wrong (how to correct?)
}
\end{document}

以与 (1) 或 (3) 相同的方式扩展案例 (4) 中的论点的正确方法是什么?

非常感谢您的任何帮助或建议!

此致,

卢博斯

答案1

这与 关系不大xparse,而是与\csvreader设置为\colA包含您要查找的内容的宏有关,因此需要将其扩展两次。一种方法是执行

\expandafter\expandafter\expandafter\myfunc
\expandafter\expandafter\expandafter{\colA}

而不仅仅两个\expandafter

相关内容