Нарисуйте непрозрачный круг (с текстом) на линии тикза.

Нарисуйте непрозрачный круг (с текстом) на линии тикза.

У меня сейчас есть следующий код:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (3,0);
\draw (1.5,0) circle (5pt) node{a};
\end{tikzpicture}
\end{document}

Если мы посмотрим на вывод, то круг имеет линию внутри, что мне не нужно. Также я не хочу рисовать линию в двух частях (т.е.

\begin{tikzpicture}
\draw (0,0) -- (1.3,0);
\draw (1.7,0) -- (3,0);
\draw (1.5,0) circle (5pt) node{a};
\end{tikzpicture}

)

Этот код дает мне результат, как раз такой, какой я хочу, но я не хочу делать этот расчет вручную и рисовать так много линий на всей картинке. Как сделать круг непрозрачным, но с текстом?

решение1

Метод грубой силы — заполнить круг белым цветом. Чтобы сократить код, круг рисуется как узел и помещается в середину пути.

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw (0,0) -- node[circle,minimum size=10pt,inner sep=0pt,fill=white,draw]{a} (3,0);
\end{tikzpicture}
\end{document}

введите описание изображения здесь

Если вы не хотите ничего закрашивать белым, вы все равно можете сделать это одним контуром,

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path (0,0) -- node[circle,minimum size=10pt,inner sep=0pt,draw](a){a} (3,0)
(a) edge (0,0)  edge  (3,0);
\end{tikzpicture}
\end{document}

решение2

Рисование линии из двух частей не требует ручного расчета их внутренних координат, однако рисования большего количества линий не избежать:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\path (0,0) -- node (n) [circle,draw,minimum size=10pt,inner sep=0pt] {a} (3,0);
\draw (0,0) -- (n)  (n) -- (3,0);
\end{tikzpicture}
\end{document}

введите описание изображения здесь

Связанный контент