是否有一个选项可以同时设置 TikZ 节点的绘制和填充颜色?
就像是:
\node[rectangle,drawandfill=red]{test};
实际问题如下:我有许多相邻的矩形节点,它们的填充颜色不同。每个矩形都有不同的填充颜色。
现在我需要去除每个矩形周围的微小白色边框,并且我希望每个矩形的绘图颜色等于其填充颜色。
因为为每个矩形重写会很麻烦draw=<color name>
,所以我希望有一个类似的命令,fillanddrawn=<color name>
这样我可以使用一些搜索和替换功能来一次添加所有的绘图颜色。
答案1
您可以定义自己的参数化样式来执行此操作,
\tikzset{drawandfill/.style={draw=#1,fill=#1}}
完整示例:
\documentclass[tikz]{standalone}
\begin{document}
\tikzset{drawandfill/.style={draw=#1,fill=#1}}
\begin{tikzpicture}
\node[rectangle,drawandfill=red] at (0,0) {test};
\node[rectangle,fill=red,draw=red] at (1,0) {test};
\end{tikzpicture}
\end{document}
两个节点相同:
答案2
我怀疑您是否希望填充和绘制颜色相同,因为您将看不到任何东西!
下面是一个例子(绘图颜色只是作为节点颜色给出,填充颜色用指定fill=...
):
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[blue,fill=red, rectangle]at (0,0){test};
\node[blue,fill=blue, rectangle]at (1,0){test};
\end{tikzpicture}
\end{document}
答案3
使用正则表达式的查找/替换(编辑器的功能,而不是 TeX 的功能)将任何出现的“fill=colorx,”替换为“fill=colorx,draw=colorx,”。在 Winedt 中,我刚刚确认搜索
fill=\(*\),
并替换为
fill=\0,draw=\0,
将转向
\node[fill=red,rectangle]at (0,0){test};%
进入
\node[fill=red,draw=red,rectangle]at (0,0){test};%