我正在尝试绘制一个带有多个循环的单个节点,这些循环的大小、位置和标签各不相同。我可以做一些粗略的工作,尽管它存在一些问题。我查看了手册中有关循环的文档(52.4 循环)。这让我开始思考,因为我不知道如何修改该部分中未讨论的选项。
目前,我有以下 MWE:
\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\tikzset{every loop/.style={min distance=10mm,looseness=10}}
\begin{tikzpicture}
\node [] (star) {$*$} ;
\path[->] (star) edge [in=70,out=100,loop] node {$a$} ();
\path[->] (star) edge [in=0,out=30,loop] node {$b$} ();
%\path[->] (star) edge [in=0,out=100,loop] node{$a \cdot b$} ();
\path[->] (star) edge [loop below] node {e} ();
\end{tikzpicture}
\end{document}
我想做两件事。
- 移动“a”和“b”的标签,使它们不会被循环截断。我相信这是 tikzset 命令的产物,但我不知道如何获得大小合适的循环和好的标签。
- 我想要一个从“a”开始到“b”结束的循环,作为它们的组合。当然,如果它更大并且包含“a”和“b”对,那将是最好的。这是注释掉的路径。
任何帮助表示感谢
答案1
添加
auto
到节点选项。除了
edge
,您还可以使用to
具有更大值的循环路径distance
。
代码:
\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\tikzset{every loop/.style={min distance=10mm,looseness=10}}
\begin{tikzpicture}
\node [] (star) {$*$} ;
\path[->] (star) edge [in=70,out=100,loop] node[auto] {$a$} ();
\path[->] (star) edge [in=0,out=30,loop] node[auto] {$b$} ();
\path[->,draw] (star) to [in=-10,out=110,loop,distance=4.5cm] node[auto] {$a\cdot b$} (star);
\path[->] (star) edge [loop below] node[auto] {e} ();
\end{tikzpicture}
\end{document}