有没有办法将 LaTeX3 标记列表与字符串进行比较,而无需创建临时标记列表?我本想用它\tl_use:N
来获取标记列表的内容进行比较,但似乎行不通。
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\tl_new:N \my_tl
\tl_set:Nn \my_tl {foo}
\tl_if_eq:nnTF {\tl_use:N \my_tl} {foo} {True} {False}
\tl_new:N \my_ii_tl
\tl_set:Nn \my_ii_tl {foo}
\tl_if_eq:NNTF \my_tl \my_ii_tl {True} {False}
\ExplSyntaxOff
\end{document}
答案1
您想要创建一个变体,\tl_if_eq:nn(TF)
其将采用一个变量的值和一个文字第二个参数:
\cs_generate_variant:Nn \tl_if_eq:nnTF { V }
然后你可以做
\tl_if_eq:VnTF \my_tl { foo } { True } { False }
另一种方法是使用低级类型o
扩展,这将产生相同的效果
\cs_generate_variant:Nn \tl_if_eq:nnTF { o }
\tl_if_eq:onTF { \my_tl } { foo } { True } { False }