Desenhe um círculo opaco (com algum texto) em uma linha tikz

Desenhe um círculo opaco (com algum texto) em uma linha tikz

Eu tenho o seguinte código agora -

\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}

Se virmos a saída, o círculo terá a linha dentro dele que eu não quero. Além disso, não quero traçar a linha em duas partes (ou seja,

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

)

Esse código me dá a saída exatamente como eu quero, mas não quero fazer esse cálculo manualmente e desenhar tantas linhas em toda a imagem. Como ter um círculo opaco, mas também com algum texto?

Responder1

Uma forma de força bruta é preencher o círculo de branco. Para encurtar o código, o círculo é desenhado como um nó e colocado no meio do caminho.

\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}

insira a descrição da imagem aqui

Se você não quiser pintar nada de branco, você ainda pode fazer isso de uma maneira,

\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}

Responder2

Desenhar linhas em duas partes não necessita de cálculo manual de suas coordenadas internas, porém desenhos de mais linhas não podem ser evitados:

\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}

insira a descrição da imagem aqui

informação relacionada