我想将两个值的列表作为关键参数传递,并能够在自己定义的命令中任意访问和使用它们。
例如,我想要一个使用以下语法绘制圆弧的命令
\MyCircle[angles={0,45},radius=1]{(2,2)}
为了得到以 (2,2) 为中心、起始角 0°、终止角 45° 和半径 1 的圆弧图,即
\draw (2,2) arc(0:45:1) ;
我如何拆分角度列表以访问其单个值并在命令中任意使用它们?我在处理单个键值参数时没有任何困难。我目前正在使用 keycommand 包,但 pgfkey 包也可以。
答案1
如果您必须使用解析器设置现有的 TikZ 键,那么您可以使用style args
。如果您需要执行自定义代码,那么您也可以使用code args
并从那里继续。
对于具体的例子,一种可能的方法是:
\tikzset{angles/.style args={#1,#2}{start angle=#1, end angle=#2}}
\def\MyCircle[#1]#2{\draw #2 arc [#1];}
\begin{tikzpicture}
\MyCircle[angles={0,45},radius=1]{(2,2)}
\end{tikzpicture}