Etiquetar un borde en TikZ

Etiquetar un borde en TikZ

Soy nuevo en TikZ (y LaTeX) y estoy intentando crear un gráfico con nodos.

Estuve leyendo el manual y creé un gráfico usando el mismo método en la imagen. Ahora me gustaría etiquetar mis bordes, pero cuando intento etiquetarlos como lo hacen en el manual, no funciona.

pgfmanual.pdf

Mi código está debajo. ¡¡Por favor ayuda!!

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

Respuesta1

Una forma es utilizar la quotesbiblioteca. (Si usa el babelpaquete, también necesita cargar la babelbiblioteca).

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

Respuesta2

Con el uso de las bibliotecas TikZ automatay , los nodos y las rutas se dibujan por separado; en el posicionamiento de los nodos se utiliza la sintaxis determinada en positioningla biblioteca:quotespositioning

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

ingrese la descripción de la imagen aquí

información relacionada