假设我有:
\documentclass[tikz, border=1cm]{standalone}
\tikzset{
particle/.style={%
draw=none,
fill=blue,
circle,
minimum size=3mm
}
}
\begin{document}
\begin{tikzpicture}
\node[particle] at (0, 0) {};
\end{tikzpicture}
\end{document}
如果我希望粒子有更浅的蓝色填充,我可以这样写:
\node[particle, fill=blue!20] at (0, 0) {};
但是,如果我在全局样式中更改填充颜色(例如改为红色)怎么办?那么我需要记住将上面的代码改为:
\node[particle, fill=red!20] at (0, 0) {};
我的问题:可以写类似的东西吗whatevercolor!20
?
答案1
使用带有参数的样式是实现此目的的一种方法。
一种可能的方法是:
\documentclass[tikz, border=1cm]{standalone}
\tikzset{
particle/.style=
{
draw=none,
fill=blue!#1,
circle,
minimum size=3mm
},
particle/.default=100,
}
\begin{document}
\begin{tikzpicture}
\node[particle] at (0, 0) {};
\node[particle=70] at (1, 0) {};
\node[particle=40] at (2, 0) {};
\end{tikzpicture}
\end{document}
答案2
在 中tikz
,有一个xcolor
软件包的仿真,在定义颜色时可以实现类似的功能。(pgf
手册第 15.2 节有帮助地指出,该仿真非常基础)。它对 LaTeX 来说已经足够好了。
对于纯 TEX 用户来说,指定颜色并不容易,因为纯 TEX 没有“标准化”的颜色命名机制。因此,pgf 模拟了 xcolor 包,尽管模拟非常基础(更确切地说,我可以在大约两个小时内完成)。
根据手册,支持灰色和 rgb 颜色模型。可以使用 来调亮或调暗您定义的颜色!<number>
。数字表示百分比,范围从[0,200]
到0
白色200
到 黑色。一些颜色是预定义的。示例:
\documentclass[tikz]{standalone}
\definecolor{mycolor}{RGB}{104,120,54}
\begin{document}
\begin{tikzpicture}
\fill[mycolor!50] (0,0) rectangle (1,1);
\fill[mycolor!100] (1,0) rectangle ++(1,1);
\fill[mycolor!150] (2,0) rectangle ++(1,1);
\end{tikzpicture}
\end{document}