我在处理一个图表时遇到了一些麻烦。我不知道如何让第二个节点的分叉与第六个节点处于同一层级,并且文本不重叠。
\documentclass[a4paper,12pt]{report}
\begin{tikzpicture}
\node {Sous-préfet}
[style=edge from parent fork down]
[level distance=5cm]
child {
node {Secrétaire Général}
[level distance=5cm]
child { node {Bureau de la sécurité et des titres} }
child { node {Bureau de l'ingénierie territorial} }
}
child { node {Secrétariat particulier} }
;
目前看起来是这样的:
我想要的最终产品是这样的(没有颜色):
答案1
如果forest
是一个选项,它将自动为您计算出间距。
\documentclass[tikz,border=10pt,multi]{standalone}
\usepackage{array}
\usepackage[edges]{forest}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\begin{forest}
forked edges,
for tree={
align={c},
inner xsep=0pt,
draw,
}
[Sous-préfet
[Secrétaire Général, calign with current edge
[Bureau de la sécurité et des titres\\\hline Something further here\\\hline And some more
]
[Bureau de l'ingénierie territorial\\\hline {More here, too}\\\hline Yet further stuff\\\hline Some final thoughts
]
]
[Secrétariat particulier, no edge, tikz+={\draw [\forestoption{edge}] (.west) -- (!s.east);}
]
]
\end{forest}
\end{document}
编辑
对于 Forest 版本 1,替换
\usepackage[edges]{forest}
经过
\usepackage{forest}
和
forked edges,
for tree={
align={c},
inner xsep=0pt,
draw,
}
和
for tree={
align={c},
inner xsep=0pt,
draw,
edge path={%
\noexpand\path [\forestoption{edge}] (!u.parent anchor) -- ++(0,-5pt) -| (.child anchor)\forestoption{edge label};},
}
除非我输入错误,否则它应该可以工作。
答案2
看来您需要 sibling distance
使用level distance
...看看下面的代码是否能给出您想要的内容:
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{trees}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{tikzpicture}[
edge from parent fork down,
sibling distance = 44mm,
level distance = 22mm,
every node/.style = {text width=33mm, inner sep=1mm,
anchor=north, align=flush center}
]
\node {Sous-préfet}
child {
node {Secrétaire\\ Général}
child { node {Bureau de la sécurité et des titres} }
child { node {Bureau de l'ingénierie territorial} }
}
child { node {Secrétariat particulier} }
;
\end{tikzpicture}
\end{document}