
Estou usando o tikz para traçar gráficos, cada aresta deve ter um rótulo de aresta. Esta etiqueta de borda deve estar próxima aoCentroda borda.
Coloquei um edge node
em cada borda. Deveria haver um pequenoortogonaldistância da etiqueta ao centro da borda. Então, começando do centro da aresta, percorra uma distância especificada ao longo da direção ortogonal da aresta e coloque a etiqueta lá.
Até agora eu consegui aquilo que não funciona bem.
\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}
Responder1
Que tal usar a quotes
biblioteca em vez de edge nodes
? Então você pode especificar o nó da borda dentro da própria borda por edge["1"]
. A posição do nó da borda é então controlada pela chave auto
que pode receber left
ou right
.
O significado de left
e right
para a auto
chave é que o nó será colocado à esquerda do caminho respeitando sua direção (por exemplo, auto=left
se o caminho estiver indo da esquerda (0,0)
para a direita, (1,0)
o nó será colocado no meio do caminho e acima).
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}
Responder2
Uma alternativa para uma boa resposta deGuilherme Zanotelli(com menos consideração do 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}