如何扩展expl3 中条件l_element_b
中的参数clist_if_in
?这是我的 MWE:
\documentclass{article}
\ExplSyntaxOn
\clist_new:N \l_some_clist
\clist_set:Nn \l_some_clist {A,B}
\str_set:Nx \l_element_b {B}
\bool_set_false:N \l_a_bool
\clist_if_in:NoTF \l_some_clist {\l_element_b} {\bool_set_true:N \l_a_bool} {} % <-- false
\bool_set_false:N \l_b_bool
\clist_if_in:NoTF \l_some_clist {B} {\bool_set_true:N \l_b_bool} {} % <-- true
\ExplSyntaxOff
\begin{document}
\ExplSyntaxOn
\bool_if:NTF \l_a_bool {a:true} {a:false} \\
\bool_if:NTF \l_b_bool {b:true} {b:false} \\
\ExplSyntaxOff
\end{document}
答案1
也许您想要的是\tl_set:Nx \l_element_b_tl {B}
,而不是\str_set:Nx
。或者\tl_set:Nn
即使不需要x
进行 类型扩展。\edef
根据 latex3 文档 ( texdoc interface3
),第 16 章“包装l3str
:琴弦“
TeX 字符串(因此称为
expl3
字符串)是一系列字符,这些字符的类别代码为 12(“其他”),但空格字符除外,空格字符的类别代码为 10(“空格”)。因此,从技术层面上讲,TeX 字符串是具有相应类别代码的标记列表。在本文档中,这些简称为字符串。
因此,在\str_set:Nx \l_element_b {B}
(我建议将其命名为\l_element_b_str
)之后,类别代码为 12(“其他”)的 A\l_element_b
成立B
。B
类别代码为 11(“字母”)的 A 在 中\l_some_clist
,但B
类别代码为 12 的 A 不在。