
No mwe abaixo, declaro uma key /tikz/my key/radius
e configurei /tikz/my key
para que using my key={radius=50pt}
funcione.
Este é um padrão comum, por exemplo decorate, decoration={lots of options here}
.
Editar: estou procurando um .is directory
sinalizador, para que a escrita /tikz/my key/.is directory
seja equivalente a /tikz/my key/.code={\pgfkeys{/tikz/my key/.cd,#1}}
.
Tentei configurar /tikz/my key
com /tikz/my key/.is family
, mas isso afeta todas as opções a seguir no nó, por exemplo, ele tenta reativar debug my key
em /tikz/my key/debug my key
vez de apenas /tikz/debug my key
.
Existe um manipulador de chaves semelhante ao .is family
que define a chave para aceitar uma lista de subchaves, mas não se aplica .cd
às outras opções?
\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}
Responder1
Você pode usar \pgfkeys dentro do código (se eu entendi sua pergunta corretamente - não sei bem por que você deseja/precisa do .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}
A propósito: você pode procurar em pgfmodulesdecoration.code.tex para descobrir que isso também acontece lá:
/pgf/decoration/.code={\pgfkeys{/pgf/decoration/.cd,#1}},