tikz「ディレクトリ」またはキーのグループを宣言する方法

tikz「ディレクトリ」またはキーのグループを宣言する方法

以下の mwe では、キーを宣言し、を使用して動作するように/tikz/my key/radius設定します。/tikz/my keymy key={radius=50pt}

decorate, decoration={lots of options here}これはよくあるパターンです。たとえば、

編集: フラグを探しているので.is directory、その記述は/tikz/my key/.is directoryと同等です/tikz/my key/.code={\pgfkeys{/tikz/my key/.cd,#1}}

/tikz/my keyで設定しようとしました/tikz/my key/.is familyが、これはノード上の後続のすべてのオプションに影響します。たとえば、だけではなくdebug my keyにreslove しようとします。/tikz/my key/debug my key/tikz/debug my key

.is familyサブキーのリストを受け入れるようにキーを設定するが、.cd他のオプションには適用されない、同様のキー ハンドラーはありますか?

\documentclass{article}
\usepackage{tikz}
\begin{document}

\tikzset{
  %/tikz/my key/.is family,
  /tikz/my key/.code={
    \tikzset{%
      my key/.cd,%
      #1%
    }
  },
  /tikz/my key/radius/.initial=10pt,
  /tikz/my key/radius/.default=10pt,
}

\tikzset{
  debug my key/.style={
    my key/radius/.show value,
  }
}

\tikz\node[my key={radius=50pt}, debug my key] {};

\end{document}

答え1

コード内で \pgfkeys を使用できます (質問を正しく理解していれば、なぜ が必要なのかよくわかりません.is family)

\documentclass{article}
\usepackage{tikz}
\begin{document}

\tikzset{
  /tikz/my key/.is family,
  /tikz/my key/.code={
    \pgfkeys{/tikz/my key/.cd,#1}
    }
  ,
  /tikz/my key/radius/.initial=10pt,
  /tikz/my key/radius/.default=10pt,
}

\tikzset{
  debug my key/.style={
    my key/radius/.show value,
  }
}

\tikz\node[my key={radius=50pt}, debug my key, line width=2pt,draw] {blblblb };

\end{document}

ちなみに、pgfmodulesdecoration.code.tex を見ると、そこでも同じように行われていることがわかります。

 /pgf/decoration/.code={\pgfkeys{/pgf/decoration/.cd,#1}},

関連情報