强制在所有其他 pgfkey 之前执行 pgfkey

强制在所有其他 pgfkey 之前执行 pgfkey

我正在执行 pgfkeys 列表 \pgfkeys{key1=val1, key2=val2, ...}key2存储val2到某个变量中\myval,该变量在执行时使用key1。这行不通,因为键的顺序错误。但是,键列表是由另一个命令组合在一起的,我不能简单地更改它们的顺序。

是否可以key2这样定义,使其在列表中所有其他键之前执行?或者,是否可以key1这样定义,使其“提前查看”存储的值key2

答案1

exe您可以按照指定顺序的样式包装密钥,并exe最后执行。 在此处输入图片描述

\documentclass[tikz, border=1cm]{standalone}
\tikzset{
  first/.style={},
  second/.style={},
  exe/.style={first, second},
  a/.style={first/.append style={test=#1}},
  b/.style={second/.append style={test=#1}},
  test/.store in=\test, test=0,
}

\begin{document}
\begin{tikzpicture}
  \node at (0, 0) {\test};
  \node[a=1, b=2, exe] at (1, 0) {\test};
  \node[b=2, a=1, exe] at (2, 0) {\test};
\end{tikzpicture}
\end{document}

相关内容