如何定义未定义的关键选择风格?

如何定义未定义的关键选择风格?

我想defaultswitch语句中实现类似的东西,但针对的是.is choicepgf 键。我知道有一个错误键处理程序/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}

相关内容