
У меня есть следующий код.
\begin{tikzpicture}
[auto,
vertex/.style={circle,draw=black!100,fill=black!100,thick,inner sep=0pt,minimum size=1mm}]
\node (v1) at ( 1,1) [vertex,label=left:$v_1$] {};
\node (v2) at ( 0,0) [vertex,label=left:$v_2$] {};
\node (v3) at ( 2,0) [vertex,label=right:$v_3$] {};
\draw [-] (v1) to (v2);
\draw [-] (v2) to (v3);
\draw [-] (v1) to (v3);
\draw [-] [loop below] (v1) to (v1);
\end{tikzpicture}
Теперь это рисует мой граф красиво с тремя вершинами. Моя проблема в том, что я хочу дать имена ребрам v_1v_2,v_2v_3,v_1v_3,v_1v_1 как e_1,e_2,e_3,e_4 соответственно. Эти имена должны быть расположены около ребер. Более того, я хочу, чтобы TikZ автоматически размещал имена для этих ребер, не мешая друг другу и без указания мной позиций. Как лучше всего это сделать? Я думаю, для этого используется auto, но не уверен, как.
решение1
Что-то вроде этого?
\documentclass[tikz]{standalone}
\usetikzlibrary{automata}
\begin{document}
\begin{tikzpicture}[auto, vertex/.style={circle,draw=black!100,fill=black!100, thick,
inner sep=0pt,minimum size=1mm}]
\node (v1) at ( 1,1) [vertex,label=left:$v_1$] {};
\node (v2) at ( 0,0) [vertex,label=left:$v_2$] {};
\node (v3) at ( 2,0) [vertex,label=right:$v_3$] {};
\draw [-] (v1) --node[inner sep=0pt,swap]{$e_1$} (v2);
\draw [-] (v2) --node[inner sep=2pt,swap]{$e_2$} (v3);
\draw [-] (v1) --node[inner sep=0pt]{$e_3$} (v3);
\draw [-] [loop below] (v1) to node[inner sep=0pt]{$e_4$} (v1);
\end{tikzpicture}
\end{document}