キーに .value forbidden が適用されているかどうかをどのように判断すればよいですか?

キーに .value forbidden が適用されているかどうかをどのように判断すればよいですか?

特定のキーにハンドラーが適用されているかどうかを判断する方法はありますか.value forbidden?

たとえば、.onlyキーに適用してBeamerの\only機能をシミュレートできるハンドラーを書きたいとします。最初の試みは次のようになります。

\pgfkeys{/handlers/.only/.code args={<#1>#2}{%
  \only<#1>{\pgfkeysalso{\pgfkeyscurrentpath = {#2}}}}%
}

ただし、これは適用済みのキーに対しては失敗します。以下を実行すると、実際にはスライド 2 で発生する.value forbiddenため、エラーが発生します。myred={}

\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送信できます。\pgfkeysnovalue{}\pgfkeyscurrentpath

関連情報