我有以下代码。
\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 自动放置这些边的名称,而不会互相干扰,也不需要我指定位置。实现此目的的最佳方法是什么?我认为可以使用自动,但不确定如何使用。
答案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}