如何创建边缘没有方向的自循环?
\path[every node/.style={font=\sffamily\small}]
(3) edge[loop] node {$e_{1}$} (3);
创建我想要的循环但有一个方向。
答案1
由于某种原因,TikZevery loop
样式包含一个箭头。因此您只需将其删除即可:
\begin{tikzpicture}[every loop/.style={}]
\node (3) {(3)};
\path[every node/.style={font=\sffamily\small}]
(3) edge[loop] node {$e_{1}$} (3);
\end{tikzpicture}
或者使用以下方法全局删除
\tikzset{every loop/.style={}}
在序言中。
答案2
还有另一种可能性。loop
和every loop
是简单的样式,可以重新定义 loop
而不是every loop
。如果你有很多循环,并且想要一些特定的选项,那么这很有趣
来自 pgf 的代码
% Loops \tikzstyle{loop}= [to path={ \pgfextra{\let\tikztotarget=\tikztostart} [looseness=8,min distance=5mm,every loop] \tikz@to@curve@path }] \tikzstyle{every loop}= [->,shorten >=1pt]
我的修改
\documentclass{article}
\usepackage{tikz}
\makeatletter
\tikzset{my loop/.style = {to path={
\pgfextra{\let\tikztotarget=\tikztostart}
[looseness=12,min distance=10mm]
\tikz@to@curve@path},font=\sffamily\small
}}
\makeatletter
\begin{document}
\begin{tikzpicture}
\node (3) {(3)} ;
\path (3) edge[my loop] node[above] {$e_{1}$} (3);
\end{tikzpicture}
\end{document}