将 LaTeX3 标记列表与字符串进行比较

将 LaTeX3 标记列表与字符串进行比较

有没有办法将 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 }

相关内容