只是为了集中注意力,我正在考虑减少circuitikz
包装到一个合理的范围内;现在例如 30 多个生成器中的每一个都有一个不同的键来设置宽度,我发现这是不合理的;晶体管等也是如此。
我想警告用户有关更改,所以我正在考虑更改
\tikzset{/one/two/four/.initial=0.5}
进入
\def\deprecationwarning{\PackageWarning{circuitikz}{%
Please look at the manual: the key /one/two/four is deprecated}}
\tikzset{/one/two/four/.code=\deprecationwarning}
.initial=.*}
(这很容易做到,只需在某个区域进行搜索和替换即可)。
问题是: 是否可以检索宏中的键的名称\deprecationwarning
? 这样我就可以.initial=blah}
用固定字符串替换吗?
如果后续\pgfkeysvalueof
使用密钥时出现错误,则可以获得加分......
这是 MWE 用来玩弄这个想法...
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\def\deprecationwarning{\PackageWarning{circuitikz}{%
Please look at the manual: the key /one/two/four is deprecated}}
\tikzset{/one/two/three/.initial=0.5}
% \ctikzset{one/two/four/.initial=0.5}
\tikzset{/one/two/four/.code=\deprecationwarning}
\begin{document}
\tikzset{/one/two/three=3}
\tikzset{/one/two/four=4}
\Huge
*\pgfkeysvalueof{/one/two/three}*\quad *\pgfkeysvalueof{/one/two/four}*
\end{document}
答案1
抱歉造成混淆,我认为您正在寻找\pgfkeyscurrentpath
。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\def\deprecationwarning{\PackageWarning{circuitikz}{%
Please look at the manual: the key \pgfkeyscurrentpath\space is deprecated}}
\tikzset{/one/two/three/.initial=0.5}
% \ctikzset{one/two/four/.initial=0.5}
\tikzset{/one/two/four/.code=\deprecationwarning}
\begin{document}
\tikzset{/one/two/three=3}
\tikzset{/one/two/four=4}
\Huge
*\pgfkeysvalueof{/one/two/three}*\quad *\pgfkeysvalueof{/one/two/four}*
\end{document}