Я пытаюсь нарисовать направленный граф, где каждая вершина и каждая стрелка могут быть окрашены индивидуально определенным цветом. У меня есть код, которыйпо большей частиработает:
\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=#1
. The fill=#1
задает цвет заливки. The 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}