我有一个命令(超出了我的控制范围)评估为一个标记列表,并且我想将它与给定的字符串进行比较,我尝试遵循这回答并创建一个变体\tl_if_eq
:
\ExplSyntaxOn
\NewDocumentCommand{\cmp}{mm}
{
\tl_set:Nn \l_r_tl { #1 }
\cs_generate_variant:Nn \tl_if_eq:nnTF { o }
\tl_if_eq:onTF { \l_r_tl } { #2 } { True } { False }
%% I also tried:
% \tl_if_eq:onTF { #1 } { #2 } { True } { False }
}
\tl_new:N \l_r_tl
% The actual command I am using retrieve values using `\sys_get_shell`, so I don't have control over it
\NewDocumentCommand{\dummy}{m}{
\tl_set:Nn \l_d_tl { #1 }
\l_d_tl
}
\tl_new:N \l_d_tl
\ExplSyntaxOff
但如果我的值通过“虚拟”的话,这似乎不起作用:
\begin{document}
\maketitle
\cmp{test}{test} % True
\cmp{\dummy{test}}{test} % False
\dummy{test} % test
\end{document}
tl
即使我传递了来自不同命令的消息,如何才能让它评估为“True” ?
编辑:根据要求添加 MWE:
\documentclass[12pt,reqno]{article}
\usepackage{expl3}
\ExplSyntaxOn
\NewDocumentCommand{\cmp}{mm}
{
\tl_set:Nn \l_r_tl { #1 }
\cs_generate_variant:Nn \tl_if_eq:nnTF { o }
\tl_if_eq:onTF { \l_r_tl } { #2 } { True } { False }
%% I also tried:
% \tl_if_eq:onTF { #1 } { #2 } { True } { False }
}
\tl_new:N \l_r_tl
% The actual command I am using retrieve values using `\sys_get_shell`, so I don't have control over it
\NewDocumentCommand{\dummy}{m}{
\tl_set:Nn \l_d_tl { #1 }
\l_d_tl
}
\tl_new:N \l_d_tl
\ExplSyntaxOff
\begin{document}
\cmp{test}{test} % True
\cmp{\dummy{test}}{test} % False
\dummy{test} % test
\end{document}