正如标题所述,如何在 latex 中绘制带环的图形?我了解到我可以使用森林在 latex 中绘制一棵树。例如,使用以下代码,我可以得到一棵简单的二叉树。1->2,1->3。
\begin{forest}
for tree={circle,draw}
[1[2][3]]
\end{forest}
然后,我想知道如何绘制带环的图形。例如,如何在 1 和 2 之间添加另一条边,以便节点 1 和 2 之间有一个环。1 -> 2,2->1。此外,我想知道如何绘制自环。即 1->1(从节点 1 开始到节点 1 结束的边)
答案1
Forest 是为绘制树木而设计的。如果您主要需要的是一棵树,您仍然可以使用它,只需进行一些手动干预。但是,如果您真的想绘制一个通用图表,最好使用为此设计的东西。
如果你想要的是基本上具有奇数非树位的树,这里有一个解决方案。
\documentclass[border=10pt,multi,tikz]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={%
circle,
draw,
edge={->},
}
[1, tikz+={\draw () edge [loop above] ();}
[2, edge path'={(!u.parent anchor) edge [bend right, <-] (.north) (!u.parent anchor) edge [bend left] (.north east)}]
[3]
]
\end{forest}
\end{document}
如果需要绘制通用图形,Ti钾Z 提供内置的图形绘制功能,由 LuaTeX 提供。下面是使用 的代码binary tree layout
,它对规范在技术上是否是树并不十分挑剔,如下所示。请注意,此代码必须使用 LuaTeX 进行编译 - 它将不是与其他引擎一起工作。
\RequirePackage{luatex85}
\documentclass[border=10pt,multi,tikz]{standalone}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph
[
binary tree layout,
nodes={draw, circle},
]
{
1 ->[bend right] 2 -> [bend right] 1 ->[loop above] 1 -> 3;
}
;
\end{tikzpicture}
\end{document}