LaTeX3:無法將空格分隔的清單轉換為 clist

LaTeX3:無法將空格分隔的清單轉換為 clist

我想將作為函數參數給出的空格分隔的項目列表轉換為 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使用給定的原始參數。

相關內容