
함수에 대한 인수로 제공된 공백으로 구분된 항목 목록을 반복하기 위해 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
사용됩니다.