TikZ 圖表中的文本

TikZ 圖表中的文本

我有以下程式碼。

\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}

在此輸入影像描述

相關內容