
¿Hay alguna manera de decidir si se ha .value forbidden
aplicado el controlador a una clave determinada?
Por ejemplo, me gustaría escribir un controlador .only
que pueda aplicarse a claves para simular \only
la funcionalidad de Beamer. Un primer intento sería
\pgfkeys{/handlers/.only/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{\pgfkeyscurrentpath = {#2}}}}%
}
Sin embargo, esto falla para las claves que se han .value forbidden
aplicado. Ejecutar lo siguiente produce un error porque myred={}
es efectivamente lo que sucede en la diapositiva 2.
\documentclass{beamer}
\usepackage{tikz}
\pgfkeys{/handlers/.only/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{\pgfkeyscurrentpath = {#2}}}}%
}
\begin{document}
\begin{frame}
\begin{tikzpicture}[myred/.style={red}, myred/.value forbidden]
\draw [myred/.only=<2>] (0,0) circle (1.5cm);
\end{tikzpicture}
\end{frame}
\end{document}
Si hubiera alguna forma de decidir si \pgfkeyscurrentpath
se había .value forbidden
aplicado, entonces podría usar esa información para enviar un valor de \pgfkeysnovalue
, en lugar de {}
, a \pgfkeyscurrentpath
.