
Есть ли способ определить, был ли .value forbidden
применен обработчик к данному ключу?
Например, я хотел бы написать обработчик .only
, который можно применить к клавишам для имитации функциональности Beamer \only
. Первая попытка будет
\pgfkeys{/handlers/.only/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{\pgfkeyscurrentpath = {#2}}}}%
}
Однако это не срабатывает для ключей, которые были .value forbidden
применены. Выполнение следующего приводит к ошибке, поскольку myred={}
это фактически то, что происходит на слайде 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}
Если бы существовал какой-то способ определить, \pgfkeyscurrentpath
было ли .value forbidden
применено has, то я мог бы использовать эту информацию для отправки значения \pgfkeysnovalue
, а не {}
, в \pgfkeyscurrentpath
.