![属性列表键的 LaTeX 等效于 \str_if_eq:nnTF 吗?](https://linux22.com/image/438000/%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8%E9%94%AE%E7%9A%84%20LaTeX%20%E7%AD%89%E6%95%88%E4%BA%8E%20%5Cstr_if_eq%3AnnTF%20%E5%90%97%EF%BC%9F.png)
这是一个纯 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 代码进行测试时,我该如何破解?