TikZ一个节点上有多个循环

TikZ一个节点上有多个循环

我正在尝试绘制一个带有多个循环的单个节点,这些循环的大小、位置和标签各不相同。我可以做一些粗略的工作,尽管它存在一些问题。我查看了手册中有关循环的文档(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}

我想做两件事。

  1. 移动“a”和“b”的标签,使它们不会被循环截断。我相信这是 tikzset 命令的产物,但我不知道如何获得大小合适的循环好的标签。
  2. 我想要一个从“a”开始到“b”结束的循环,作为它们的组合。当然,如果它更大并且包含“a”和“b”对,那将是最好的。这是注释掉的路径。

任何帮助表示感谢

答案1

  1. 添加auto到节点选项。

  2. 除了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}

在此处输入图片描述

相关内容