
私は TikZ (および LaTeX) を初めて使用しており、ノードを含むグラフを作成しようとしています。
マニュアルを読んで、図と同じ方法でグラフを作成しました。エッジにラベルを付けたいのですが、マニュアルのようにラベルを付けようとしてもうまくいきません。
私のコードは以下の通りです。助けてください!!
\begin{tikzpicture}
[node/.style = {circle,draw}]
\node[node] (B) {B};
\node[node] (A) [below of=B, xshift = -20mm] {A}
edge [-] {1} (B); % would like to label this edge "1"
\node[node] (C) [below of=B] {C}
edge [-] {1} (A); % would like to label this edge "1"
\node[node] (D) [below of=C] {D}
edge [-] {1} (A); % would like to label this edge "1"
\node[node] (E) [below of=B, xshift = 20mm] {E}
edge [-] {1} (B) % would like to label this edge "1"
edge [-] {1} (C) % would like to label this edge "1"
edge [-] {1} (D); % would like to label this edge "1"
\end{tikzpicture}
答え1
1 つの方法は、quotes
ライブラリを使用することです。(babel
パッケージを使用する場合は、ライブラリもロードする必要がありますbabel
。)
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[node/.style = {circle,draw}]
\node[node] (B) {B};
\node[node] (A) [below of=B, xshift = -20mm] {A}
edge [-,"1"] (B); % would like to label this edge "1"
\node[node] (C) [below of=B] {C}
edge [-,"1"] (A); % would like to label this edge "1"
\node[node] (D) [below of=C] {D}
edge [-,"1"] (A); % would like to label this edge "1"
\node[node] (E) [below of=B, xshift = 20mm] {E}
edge [-,"1"] (B) % would like to label this edge "1"
edge [-,"1"] (C) % would like to label this edge "1"
edge [-,"1"] (D); % would like to label this edge "1"
\end{tikzpicture}
\end{document}
答え2
TikZ ライブラリautomata
、positioning
およびを使用するとquotes
、ノードとパスは別々に描画され、ノードの配置にはライブラリで決定された構文が使用されますpositioning
。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{automata,
positioning,
quotes}
\begin{document}
\begin{tikzpicture}[
node distance = 15mm, on grid,
every state/.style={semithick, minimum size=1em, inner sep=2pt},
every edge/.append style = {-},
every edge quotes/.append style = {auto, font=\footnotesize, inner sep=2pt}
]
\begin{scope}[nodes={state}]
\node (C) {C};
\node (A) [ left=of C] {A};
\node (B) [above=of C] {B};
\node (E) [right=of C] {E};
\node (D) [below=of C] {D};
\end{scope}
%
\path (A) edge ["1"] (B)
(B) edge ["1"] (E)
(E) edge ["1"] (D)
(D) edge ["1"] (A)
%
(A) edge ["1"] (C)
(C) edge ["1"] (E);
\end{tikzpicture}
\end{document}