考虑以下简单流程图。我喜欢使用 TikZ 中的图形绘制库,因为它简单且语义清晰:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphdrawing}
\usegdlibrary{trees}
\begin{document}
\tikz[>=latex]
\graph[
tree layout,
node pre sep = 0.2em,
grow=right,
},
]
{
A -> B -> C -> D -> E -> (A.south)
};
\end{document}
此代码连接了一个从E.west
到 的箭头A.south
,该箭头与其他节点相交。我如何创建一个循环,从E.south
或开始E.east
,然后向下进入A.south
或 ,也许A.west
再次进入最后?
答案1
三个选项:
\documentclass[border=6pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}[>=latex]
\graph[
tree layout,
node pre sep = 0.2em,
grow=right,
]
{
A -> B -> C -> D -> E ->[bend left] A
};
\end{tikzpicture}\quad
\begin{tikzpicture}[>=latex]
\graph[
tree layout,
node pre sep = 0.2em,
grow=right,
]
{
A -> B -> C -> D -> E ->[out=-90,in=-90] A
};
\end{tikzpicture}\quad
\begin{tikzpicture}[>=latex]
\graph[
tree layout,
node pre sep = 0.2em,
grow=right,
]
{[name=str]
A -> B -> C -> D -> E
};
\draw[-] (str E.east) to[out=0,in=0] ([yshift=-15pt]str C);
\draw[<-] (str A.west) to[out=180,in=180] ([yshift=-15pt]str C);
\end{tikzpicture}
\end{document}
前两个选项使用了可以使用语法->[...]
来修改路径的事实;第三个选项使用[name=<string>]
图形节点的前缀,然后使用两个适当的\draw
命令。