\newcommand 中的花括号

\newcommand 中的花括号

我想绘制许多不同的图表,但它们都有共同的特征。我想将颜色、形状、大小的参数放在一个单独的地方,这样我可以在最后摆弄它们,所有的图表都会改变。

据我所知,定义“变量”的唯一方法是多种的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}

enter image description here

相关内容