如何在 expl3 中扩展 clist_if_in 参数

如何在 expl3 中扩展 clist_if_in 参数

如何扩展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成立BB类别代码为 11(“字母”)的 A 在 中\l_some_clist,但B类别代码为 12 的 A 不在。

相关内容