\clist_set_from_seqについて

\clist_set_from_seqについて

- ijaradnam の投稿
返信数: 2
例えば
\tl_set:Nn \l_my_tl {abc,def,ghi,jkl}
\clist_set_from_seq:NN \l_you_clist \l_my_tl
\typeout{\l_you_clist}
のように文字列をclistに変換しようとすると
{c , def , ghi , jkl }
のように最初の2文字が欠けたリストが返ってきます。
私の使い方が根本的に違っている様な気もしますが
正しく出力にはどう使い方をするのでしょうか?
ijaradnam への返信

Re: \clist_set_from_seqについて

- Z. R. の投稿

「clist型の値」というのは要するに「コンマで区切った文字列(トークン列)そのもの」のことです。従って、

abc,def,ghi,jkl

自体が「clist型の値」です。なので、何も“変換”をせずに単純に代入を行う\clist_set:Nnを使うのが正解です。

\clist_set:Nn \l_you_clist {abc,def,ghi,jkl}
\int_show:n { \clist_count:N \l_you_clist } %=>4
% コンマ区切りでそのまま出てくる
\typeout{\l_you_clist} %=>abc,def,ghi,jkl

※ちなみに、\clist_set_from_seq:NNは「seq型の値(sequence)からclistに変換する」関数です。従って、これを使うなら第2引数には「seq型の変数」を指定する必要があります。