
En el siguiente mwe, declaro una clave /tikz/my key/radius
y la configuro /tikz/my key
para que el uso my key={radius=50pt}
funcione.
Este es un patrón común, por ejemplo decorate, decoration={lots of options here}
.
Editar: estoy buscando una .is directory
bandera, para que escribir /tikz/my key/.is directory
sea equivalente a /tikz/my key/.code={\pgfkeys{/tikz/my key/.cd,#1}}
.
Intenté configurar /tikz/my key
con /tikz/my key/.is family
, pero esto afecta a todas las opciones siguientes en el nodo, por ejemplo, intenta volver a conectar debug my key
a /tikz/my key/debug my key
en lugar de solo /tikz/debug my key
.
¿Existe un controlador de claves similar al .is family
que configura la clave para aceptar una lista de subclaves, pero que no se aplica .cd
a las otras opciones?
\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}
Respuesta1
Puede usar \pgfkeys dentro del código (si entendí su pregunta correctamente, no estoy muy seguro de por qué quiere/necesita el .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}
Por cierto: puedes buscar en pgfmodulesdecoration.code.tex para descubrir que allí también se hizo de esta manera:
/pgf/decoration/.code={\pgfkeys{/pgf/decoration/.cd,#1}},