
Estoy usando tikz para trazar gráficos, cada borde tendrá una etiqueta de borde. Esta etiqueta de borde debe estar al lado de lacentrodel borde.
Puse un edge node
en cada borde. Debería haber un pequeñoortogonaldistancia desde la etiqueta hasta el centro del borde. Entonces, comenzando desde el centro del borde, recorra una distancia específica a lo largo de la dirección ortogonal del borde y coloque la etiqueta allí.
Hasta ahora tengo eso que no funciona bien.
\documentclass[12pt,a4paper,oneside,listof=totoc,bibliography=totoc,BCOR=4mm,DIV=12,]{scrartcl}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture} [scale=0.75]
\begin{scope}[every node/.style={circle,draw,fill=white}]
\node (5) at (0.5,4.5) {1};
\node (6) at (3.5,4.5) {3};
\node (7) at (1.5,6) {3};
\node (8) at (4.5,6) {1};
\end{scope}
\begin{scope}[>=latex,
every node/.style={midway},
every edge/.style={draw=black,thick}]
\path [-] (5) edge[right] node {\footnotesize $1$} (6);
\path [-] (6) edge[right] node {\footnotesize $1$} (7);
\path [-] (6) edge[right] node {\footnotesize $1$} (8);
\end{scope}
\end{tikzpicture}
\end{document}
Respuesta1
¿Qué tal usar la quotes
biblioteca en lugar de edge nodes
? Luego puede especificar el nodo de borde dentro del propio borde mediante edge["1"]
. La posición del nodo de borde se controla mediante la tecla auto
que puede tomar left
o right
.
El significado de la clave left
y right
hacia auto
es que el nodo se colocará a la izquierda del camino respetando su dirección (por ejemplo, auto=left
si el camino va de izquierda (0,0)
a derecha, (1,0)
el nodo se colocará en el camino a mitad del camino y arriba).
MWE
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture} [scale=0.75]
\begin{scope}[every node/.style={circle,draw,fill=white}]
\node (5) at (0.5,4.5) {1};
\node (6) at (3.5,4.5) {3};
\node (7) at (1.5,6) {3};
\node (8) at (4.5,6) {1};
\end{scope}
\begin{scope}[
>=latex,
every node/.style={font=\footnotesize},
every edge/.style={auto=right, draw=black,thick}]
\path [-] (6) edge["1"] (5);
\path [-] (6) edge["1"] (7);
\path [-] (6) edge["1"] (8);
\end{scope}
\end{tikzpicture}
\end{document}
Respuesta2
Una alternativa a la buena respuesta deGuilherme Zanotelli(con menos consideración de OP MWE):
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[
every edge quotes/.style = {auto, inner sep=1pt, font=\footnotesize},
]
\begin{scope}[every node/.style = {circle,draw}]
\node (5) at (0.5,4.5) {1};
\node (6) at (3.5,4.5) {3};
\node (7) at (1.5,6) {3};
\node (8) at (4.5,6) {1};
\end{scope}
\draw[thick] (5) to ["$1$"] (6)
(7) to ["$1$"] (6)
(6) to ["$1$"] (8);
\end{tikzpicture}
\end{document}