![如何在树中添加额外的边?](https://linux22.com/image/401366/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%A0%91%E4%B8%AD%E6%B7%BB%E5%8A%A0%E9%A2%9D%E5%A4%96%E7%9A%84%E8%BE%B9%EF%BC%9F.png)
我想画一棵带有一些边的树。请参阅下面给出的代码。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[level distance=1.5cm,
level 1/.style={sibling distance=3cm},
level 2/.style={sibling distance=1.5cm}]
\node {$1$}
child {node {$2$}
child {node {$4$}}
child {node {$5$}}
}
child {node {$3$}
child {node {$6$}}
child {node {$7$}}
};
\end{tikzpicture}
\end{document}
问题 :我想把节点做成小圆圈,如何在节点 4 和节点 5 之间插入边?
答案1
像这样:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
level distance=1.5cm,
level 1/.style={sibling distance=3cm},
level 2/.style={sibling distance=1.5cm},
every node/.style = {circle, draw, minimum size=1.2em, inner sep=2pt}
]
\node {$1$}
child {node {$2$}
child {node (n4) {$4$}}
child {node (n5) {$5$}}
}
child {node {$3$}
child {node (n6) {$6$}}
child {node {$7$}}
};
\draw (n4) -- (n5);
\end{tikzpicture}
\end{document}
附录:
有了包forest
代码就更简单了:
\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree = {
circle, draw, minimum size=1.2em, inner sep=2pt,
l sep = 12mm,
s sep = 12mm,
math content
}
[1
[2
[4, name=n4]
[5, name=n5]
]
[3
[6, name=n6]
[7]
]
]
\draw (n4) -- (n5);
\end{forest}
\end{document}
附录(2): 连接节点 4 和 6 并避开节点 5:
为此,您需要为节点“6”添加广告名称并绘制如下线条:
\draw (n4) to [bend right] (n6);