编辑

编辑

我在处理一个图表时遇到了一些麻烦。我不知道如何让第二个节点的分叉与第六个节点处于同一层级,并且文本不重叠。

\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}

在此处输入图片描述

相关内容