我想绘制许多不同的图表,但它们都有共同的特征。我想将颜色、形状、大小的参数放在一个单独的地方,这样我可以在最后摆弄它们,所有的图表都会改变。
据我所知,定义“变量”的唯一方法是多种的Tikz 图片是使用 \newcommand。
我现在的问题是,如果我想设置一种类似的颜色{rgb:blue,1;white,2}
,它会抛出错误:“!非法计量单位(插入 pt)。”、“缺少数字,视为零。”等等。
更具体地说:如果我有
\filldraw[fill={rgb:red,1;white,2}] (0,0) circle (0.5cm) node {$Z$};
它工作正常,但是:
\newcommand\zcolour{{rgb:red,1;white,2}}
...
\filldraw[fill=\zcolour] (0,0) circle (0.5cm) node {$Z$};
抛出错误。这不是颜色的问题,因为
\newcommand\zcolour{white}
...
\filldraw[fill=\zcolour] (0,0) circle (0.5cm) node {$Z$};
工作正常。所以我认为是花括号的问题。
因此:我是否需要做一些特殊的事情来修复花括号,或者是否有更好的方法来为多个 Tikz 图片定义变量?
最小工作示例:
\documentclass{article}
\usepackage{tikz}
\newcommand\zcolour{{rgb:red,1;white,2}}
\newcommand\whitecolour{white}
\begin{document}
\begin{tikzpicture}
\filldraw[fill=\zcolour] (0,0) circle (0.5cm) node {$Z$};%doesn't work
\filldraw[fill=\whitecolour] (0,0) circle (0.5cm) node {$Z$};%works
\filldraw[fill={rgb:red,1;white,2}] (0,0) circle (0.5cm) node {$Z$};%works
\end{tikzpicture}
\end{document}
答案1
这就是.styles
用途。更改style
,图形就会改变。
\documentclass{article}
\usepackage{tikz}
\tikzset{
mystyle1/.style={
fill=red,
draw=blue,
line width=1mm,
text=green
},
mystyle2/.style={
fill=blue!30,
dashed,
},
mystyle3/.style={
fill=none,
draw=red,
line width=1mm,
densely dashed
},
}
%\newcommand\zcolour{{rgb:red,1;white,2}}
%\newcommand\whitecolour{white}
\begin{document}
\begin{tikzpicture}
\filldraw[mystyle1] (0,0) circle (0.5cm) node {$Z$};%doesn't work
\filldraw[mystyle2] (1.5,0) circle (0.5cm) node {$Z$};%works
\filldraw[mystyle3] (3,0) circle (0.5cm) node {$Z$};%works
\end{tikzpicture}
\end{document}