我如何确定某个密钥是否已应用 .value forbidden?

我如何确定某个密钥是否已应用 .value forbidden?

有没有办法决定给定的键是否已.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的值发送到。\pgfkeysnovalue{}\pgfkeyscurrentpath

相关内容