
Ich verwende Tikz zum Zeichnen von Graphen. Jede Kante soll eine Kantenbeschriftung haben. Diese Kantenbeschriftung sollte neben derCenterder Kante.
Ich habe edge node
an jeder Kante ein eingefügt. Es sollte ein kleinersenkrechtAbstand vom Etikett zur Mitte der Kante. Gehen Sie also ausgehend von der Mitte der Kante eine bestimmte Distanz entlang der orthogonalen Richtung der Kante und platzieren Sie das Etikett dort.
Bis jetzt habe ich das bekommen, was aber nicht richtig funktioniert.
\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}
Antwort1
Wie wäre es, die quotes
Bibliothek anstelle von zu verwenden edge nodes
? Dann können Sie den Randknoten innerhalb des Rands selbst durch angeben edge["1"]
. Die Position des Randknotens wird dann durch den Schlüssel gesteuert, der oder auto
annehmen kann .left
right
Die Bedeutung von left
und right
für den auto
Schlüssel besteht darin, dass der Knoten unter Berücksichtigung seiner Richtung links vom Pfad platziert wird (wenn der Pfad beispielsweise von links nach rechts auto=left
verläuft, wird der Knoten in der Mitte und darüber auf dem Pfad platziert).(0,0)
(1,0)
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}
Antwort2
Eine Alternative zur netten Antwort vonGuilherme Zanotelli(mit weniger Berücksichtigung von 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}