LaTeX3: no se puede convertir una lista separada por espacios en una lista

LaTeX3: no se puede convertir una lista separada por espacios en una lista

Quiero convertir una lista de elementos separados por espacios, dada como argumento de una función, en una variable clist para poder iterar sobre ellos. Sin embargo, no puedo crear una variable clist utilizable como lo demuestra el siguiente ejemplo de código. \clist_map_inline:Nnsiempre toma la lista completa en lugar de separar los elementos. ¿Qué estoy haciendo mal?

\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}

Respuesta1

Yo mismo descubrí el error. Usar ##1en el cuerpo de la función \clist_map_inline:Nnfunciona. De lo contrario, \parselist:nse utiliza el argumento original tal como se proporciona .

información relacionada