LaTeX3: Durch Leerzeichen getrennte Liste kann nicht in Clist konvertiert werden

LaTeX3: Durch Leerzeichen getrennte Liste kann nicht in Clist konvertiert werden

Ich möchte eine durch Leerzeichen getrennte Liste von Elementen, die als Argument an eine Funktion übergeben wird, in eine Clist-Variable umwandeln, um sie zu durchlaufen. Ich kann jedoch keine verwendbare Clist-Variable erstellen, wie das folgende Codebeispiel zeigt. \clist_map_inline:Nnnimmt immer die ganze Liste, anstatt die Elemente zu trennen. Was mache ich falsch?

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

Antwort1

Ich habe den Fehler selbst entdeckt. Die Verwendung ##1im Funktionskörper von \clist_map_inline:Nnfunktioniert. Andernfalls \parselist:nwird das ursprüngliche Argument verwendet, wie es angegeben wurde.

verwandte Informationen