如何处理 pgfkeys 中的颜色键

如何处理 pgfkeys 中的颜色键

我正在尝试使用pgfkeys来解析一组宏中的参数。我需要使用一些颜色参数。但是,我收到一个错误,xcolor提示我定义的键不是有效的(未定义的)颜色。

那么,在 中定义和处理颜色键的正确方法是什么pgfkeys?此外,如果我做错了什么pgfkeys(例如没有遵循最佳实践),请提供建议。

另外,我发现使用其他路径可能很麻烦,但我想除了 中的键之外还有其他键/tikz。因此,如果您能就解决问题和保留其他路径提出建议,那也很好。

\documentclass{article}
\usepackage{tikz}

\pgfkeys{
  /test/.cd,
  my color/.default=red
}

\newcommand{\makenode}[2][]{
\pgfkeys{/test/.cd,#1}
\begin{tikzpicture}
\node[draw=my color]{#2};
\end{tikzpicture}
}

\pagestyle{empty}
\begin{document}

\makenode{testing}
\makenode[my color=blue]{testing blue}

\end{document}

错误:

! 包 xcolor 错误:未定义颜色“我的颜色”。

答案1

一个非常简单的备忘清单:

  • .initial是为了价值
  • .default是为了行动,使用 声明.code
  • .style代表风格 --- 您可以放入里面的东西[]

侧面标记:\newcommand如有,则不需要.code

\documentclass[tikz,border=10]{standalone}
\pgfkeys{
  /test/.cd,
  my color/.initial=red,
}
\newcommand\makenode[2][]{
    \pgfkeys{/test/.cd,#1}
    \begin{tikzpicture}
        \node[draw=\pgfkeysvalueof{/test/my color}]{#2};
    \end{tikzpicture}
}
\begin{document}
    \makenode{testing}
    \makenode[my color=blue]{testing blue}
\end{document}

相关内容