
저는 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
한 가지 방법은 도서관을 이용하는 것입니다 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
automata
TikZ 라이브러리 및 를 사용하면 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}