我想default
在switch
语句中实现类似的东西,但针对的是.is choice
pgf 键。我知道有一个错误键处理程序/errors/unknown choice value
,但我不知道如何使用它。或者有没有不实现此处理程序的解决方案?
我想要的是当我定义例如时test/.is choice
,能够定义对任何设置为(例如如果不是选择)test/.else style={...}
执行类似的操作。test=<unknown choice>
#1
<unknown choice>
test
\documentclass[tikz,border=7pt]{standalone}
\tikzset{
test/.is choice,
test/1/.style={red},
test/2/.style={blue},
% test/.else style={yellow} <-- how to implement this ?
}
\begin{document}
\begin{tikzpicture}
\fill[test=1] circle(3);
\fill[test=2] circle(2);
\fill[yellow] circle(1); % I would like [test=007]
\end{tikzpicture}
\end{document}
笔记:我在写作的时候问过自己这个问题这个答案。
编辑后答案@TeXnician 我想指定我希望能够声明类似的东西test/.else style={#1}
然后像这样使用它test=yellow
(这个参数对我很重要)。
答案1
您不是搜索.else
,而是搜索.unknown
(请参阅 TikZ 手册中的第 82.3.6 节)。
\documentclass[tikz,border=7pt]{standalone}
\tikzset{
test/.is choice,
test/1/.style={red},
test/2/.style={blue},
test/.unknown/.style={yellow}
}
\begin{document}
\begin{tikzpicture}
\fill[test=1] circle(3);
\fill[test=2] circle(2);
\fill[test=007] circle(1); % I would like [test=007]
\end{tikzpicture}
\end{document}
至于要求二:使用给定的密钥,您可以将其用作\pgfkeyscurrentname
,例如:
\documentclass[tikz,border=7pt]{standalone}
\tikzset{
test/.is choice,
test/1/.style={red},
test/2/.style={blue},
test/.unknown/.style={\pgfkeyscurrentname}
}
\begin{document}
\begin{tikzpicture}
\fill[test=1] circle(3);
\fill[test=2] circle(2);
\fill[test=yellow] circle(1); % I would like [test=007]
\end{tikzpicture}
\end{document}