我想向用 \tikzset 定义的图片传递多个参数。
我尝试了这个并且有效:
\tikzset{
Piece/.pic={
\draw (0:1) -- (120:1) -- (240:1) -- cycle;
\draw (0,0) node {$\Gamma_#1$};
}
};
\pic {Piece={k}};
我得到以下图像:
但我真正需要的是有两个下标,如下所示:
但是,无论我在 \pic 命令中写入什么,它都会被视为字符串并与 #1 参数相关联。我想要类似这样的内容:
\tikzset{
Piece/.pic={
\draw (0:1) -- (120:1) -- (240:1) -- cycle;
\draw (0,0) node {$\Gamma_{#1,#2}$};
}
};
\pic {Piece={k,r}};
但这不起作用。
我如何指定两个不同且独立的参数?
先感谢您。
答案1
您可以切换到样式系列的替代定义,pic
例如,style 2 args
或style n args
,style args
常规pgfkeys
语法中的内容可用于参数。
\documentclass[tikz]{standalone}
\tikzset{
pics/Piece/.style n args={3}{
code = { %
\draw (0:1) -- (120:1) -- (240:1) -- cycle;
\draw (0,0) node[#2,#3] {$\Gamma_{#1}$};
}
}
}
\begin{document}
\begin{tikzpicture}
\pic {Piece={k}{draw=red}{fill=red!10}};
\end{tikzpicture}
\end{document}