这是一个纯 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 代码进行测试时,我该如何破解?