tikzset pic 中的几个参数

tikzset pic 中的几个参数

我想向用 \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 argsstyle n argsstyle 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}

在此处输入图片描述

相关内容