有没有办法决定给定的键是否已.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