TikZ에서 가장자리에 라벨 지정

TikZ에서 가장자리에 라벨 지정

저는 TikZ(및 LaTeX)를 처음 사용하고 노드가 있는 그래프를 만들려고 합니다.

설명서를 읽고 그림과 같은 방법으로 그래프를 만들어봤습니다. 이제 가장자리에 라벨을 붙이고 싶은데, 매뉴얼에서 하는 것처럼 라벨을 붙이려고 하면 작동하지 않습니다.

pgfmanual.pdf

내 코드는 다음과 같습니다. 도와주세요!!

\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

automataTikZ 라이브러리 및 를 사용하면 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}

여기에 이미지 설명을 입력하세요

관련 정보