在 TikZ 中为节点着色时出现颜色名称错误

在 TikZ 中为节点着色时出现颜色名称错误

我正在尝试绘制一个有向图,其中每个顶点和每个箭头都可以用特定颜色单独着色。我有一个代码大多作品:

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta,decorations.markings}
\begin{document}

\begin{tikzpicture}[
       decoration = {markings,mark=at position .5 with {\arrow{Stealth[length=2mm]}}},
       Bullet/.style = {circle, fill=#1,label=#1,draw=black!80, line width=0.2mm,
       inner sep=2.4pt, node contents={},},
every edge/.style = {draw, postaction=decorate}
                        ]
%
\node (a) at (0,2) [Bullet=red, label=below left:$a$];
\node (b) at (2,4) [Bullet=MidnightBlue, label=above:$b$];
%
\path  
(a) edge [Plum] (b) ;
\end{tikzpicture}
\end{document}

问题是,当编译时(使用 Overleaf),它几乎产生了我想要的结果,除了还在节点顶部打印节点(顶点)颜色的名称:

图像

我做错了什么导致这个结果?我该如何删除颜色名称?谢谢阅读!


为了解释装饰设置,我希望边缘中间有一个箭头(如图所示),并且我还希望节点(顶点)上有一个黑色轮廓,这也是我试图在本节中写的内容。

答案1

正如 @SandyG 在评论中所说的那样,您在Bullet/.style第一次使用颜色名称,fill=#1第二次使用颜色名称label=#1fill=#1设置填充颜色。将label=#1颜色名称输出为标签。因此,删除label=#1, 可以解决您的问题:

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta,decorations.markings}
\begin{document}

\begin{tikzpicture}[
       decoration = {markings,mark=at position .5 with {\arrow{Stealth[length=2mm]}}},
       Bullet/.style = {circle, fill=#1,draw=black!80, line width=0.2mm,
       inner sep=2.4pt, node contents={},},
every edge/.style = {draw, postaction=decorate}
                        ]
%
\node (a) at (0,2) [Bullet=red, label=below left:$a$];
\node (b) at (2,4) [Bullet=MidnightBlue, label=above:$b$];
%
\path  
(a) edge [Plum] (b) ;
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容