属性列表键的 LaTeX 等效于 \str_if_eq:nnTF 吗?

属性列表键的 LaTeX 等效于 \str_if_eq:nnTF 吗?

这是一个纯 l3 代码:我创建一个属性列表,其中包含 2 个键a和条目b。然后我循环遍历这些条目并中断键a排版“YES”。

\documentclass{article}
\begin{document}
\ExplSyntaxOn
\prop_new:N \myProp
\prop_set_from_keyval:Nn \myProp {
  a=A,
  b=B,
}
\prop_map_inline:Nn \myProp {
  \str_if_eq:nnTF{#1}{a}
    {\prop_map_break:n {YES}}
    {NO}
}
\ExplSyntaxOff
\end{document}

可以定义新的 prop 相关命令来使用更高级的 LaTeX 语法。 可以\str_if_eq:nnTF用 代替,\ifthenelse{\equal{...}{...}}{...}{...}但在这里不起作用:循环永远不会中断

\documentclass{article}
\usepackage{ifthen}
\begin{document}
\ExplSyntaxOn
\prop_new:N \myProp
\prop_set_from_keyval:Nn \myProp {
  a=A,
  b=B,
}
\prop_map_inline:Nn \myProp {
  \ifthenelse{\equal{#1}{a}}
    {\prop_map_break:n {YES}}
    {NO}
}
\ExplSyntaxOff
\end{document}

属性键看起来非常特殊,因为测试值确实会破坏循环:

\documentclass{article}
\usepackage{ifthen}
\begin{document}
\ExplSyntaxOn
\prop_new:N \myProp
\prop_set_from_keyval:Nn \myProp {
  a=A,
  b=B,
}
\prop_map_inline:Nn \myProp {
  \ifthenelse{\equal{#2}{A}}
    {\prop_map_break:n {YES}}
    {NO}
}
\ExplSyntaxOff
\end{document}

当密钥a仅使用 LaTeX 代码进行测试时,我该如何破解?

相关内容