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

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

我有一个命令(超出了我的控制范围)评估为一个标记列表,并且我想将它与给定的字符串进行比较,我尝试遵循回答并创建一个变体\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}

相关内容