在绘制以通用方式声明的开花树的过程中,出现了问题。请帮我分离中间节点并在每个节点上放置带边框的框。
\begin{tikzpicture}[text width=5cm, align=flush center,node distance=70mm, level 1/.style={sibling distance =30 mm}, level 2/.style={sibling distance =30 mm}, level 3/.style={sibling distance =30 mm}]
\node{Static}
child { node[color=red] {Node1}}
child {
node{Static}
child[color=brown] {
node {Node2}
node[color=green]{dynamic}
child[color=brown] { node {Node3}}
child[color=gray] { node {Rest}}
}
}
;
\end{tikzpicture}
答案1
我想向你推荐强大的forest
包:它建立在 TikZ 之上,并提供了更清晰、更简短的语法(以及许多其他有用的功能)。
这里有两个版本的代码:第一个版本使用你的 TikZ 树方法,第二个版本使用forest
:
\documentclass{article}
\usepackage{forest}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[
every node/.style={draw,align=center},
node distance=70mm,
level 1/.style={sibling distance =30 mm},
level 2/.style={sibling distance =30 mm},
level 3/.style={sibling distance =30 mm}
]
\node{Static}
child { node[color=red] {Node1}}
child {
node{Static}
child[color=brown] { node {Node2}}
child {
node[color=green]{dynamic}
child[color=brown] { node {Node3}}
child[color=gray] { node {Rest}}
}
}
;
\end{tikzpicture}\par\bigskip
\begin{forest}
for tree={
draw,
s sep=20mm
}
[Static
[Node1,red
]
[Static
[Node2,brown]
[Dynamic,green
[Node3,brown]
[Rest,gray]
]
]
]
\end{forest}
\end{document}
结果: