
У меня небольшая проблема с некоторыми стрелками, но я не могу найти решение. Обратите внимание, что этот вопрос отличается отУстановка цвета заливки только для кончиков стрелок TikZ (а не для самого пути), так как автор имел в виду сделать всю стрелку одного цвета.
Если бы я хотел, чтобы наконечник стрелки был черным, а траектория стрелки — цветной, я бы просто сказал: draw=black
а мне нужно наоборот — черная траектория с цветным наконечником.
Итак, вот что я получаю:
А это мой код:
\documentclass[10pt]{article}
\usepackage[a4paper, margin=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{rotating}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{arrows,backgrounds,decorations,shapes,shapes.multipart,positioning}
\pgfplotsset{compat=1.7}
\begin{document}
\definecolor{blue}{RGB}{0,127,255}
\tikzset{
opera/.style={fill=white, inner sep=0pt, right=3mm, text width= 5cm,font=\footnotesize},
tear/.style={draw=black, fill=blue, -*},.
}
\begin{tikzpicture}
\draw[tear] (12, 5) -- (12,4) -- (10,3) -- (10,2) node[opera] at (10,2){Not the path!};
\end{tikzpicture}
\end{document}
Я постарался удалить как можно больше, чтобы сделать код минимальным, поэтому не волнуйтесь, если увидите неиспользуемые пакеты или библиотеки.
Я думал, что возможным решением будет добавить опцию, как >=stealth
но пытаюсь установить цвет с помощью o
или *
стрелок. Ни один не сработал.
решение1
следующий ответ основан на markings
и postaction
.
\documentclass[10pt]{article}
\usepackage[a4paper, margin=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{rotating}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{arrows,backgrounds,decorations.markings,shapes,shapes.multipart,positioning}
\pgfplotsset{compat=1.7}
\begin{document}
\definecolor{blue}{RGB}{0,127,255}
\tikzset{
opera/.style={fill=white, inner sep=0pt, right=3mm, text width= 5cm,font=\footnotesize},
tear/.style={draw=black,-,
decoration={markings,mark=at position 1 with {\arrow[draw=black,fill=blue]{*}}},
postaction=decorate},.
}
\begin{tikzpicture}
\draw[tear] (12, 5) -- (12,4) -- (10,3) -- (10,2);
\end{tikzpicture}
\end{document}
который производит:
Я удалил наконечник стрелки из вашего tear
стиля и добавил decoration={markings,mark=at position 1 with {\arrow[draw=black,fill=blue]{*}}}
и postaction=decorate
. Таким образом наконечник стрелки рисуется как украшение в конце вашего сегмента, без заполнения пути. Вам также нужно загрузить украшение как с postaction
, postaction=decorate
чтобы перезаписывался только наконечник стрелки, а не вся линия.
Редактировать:Предыдущий подход теперь (с выходом PGF 3.0.0) устарел:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\definecolor{myblue}{RGB}{0,127,255}
\tikzset{
opera/.style={
fill=white,
inner sep=0pt,
right=3mm,
text width= 5cm,
font=\footnotesize
},
tear/.style={
-{Circle[fill=myblue]} %new code, requires arrows.meta and at least PGF 3.0.0
},
}
\begin{document}
\begin{tikzpicture}
\draw[tear] (12, 5) -- (12,4) -- (10,3) -- (10,2) node[opera] {Not the path!};
\end{tikzpicture}
\end{document}