tikz ライン上に不透明な円 (テキスト付き) を描画します。

tikz ライン上に不透明な円 (テキスト付き) を描画します。

現在、次のコードがあります -

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

出力を見ると、円の中に不要な線が入っています。また、線を2つの部分に分けて描画したくありません(つまり、

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

ここに画像の説明を入力してください

白で塗りつぶしたくない場合は、1つのパスで行うことができます。

\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

線を 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}

ここに画像の説明を入力してください

関連情報