我正在尝试使用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}