![Tikz 四组](https://linux22.com/image/374304/Tikz%20%E5%9B%9B%E7%BB%84.png)
我的目标是制作如下流程图但是我无法添加这四个框并将顶部框放在中间。另请注意,顶部框应该是一个完整的框。如果可以的话,请帮忙!
[,name=Parent
[,name=Parent1
[,no edge,name=Child1
[,no edge,name=GrandChild1]
]
[,no edge,name=Child2
[,no edge,name=GrandChild2]
]
[,no edge,name=Child3
[,no edge,name=GrandChild3]
]
[,no edge,name=Child4
[,no edge,name=GrandChild4]
]
] ]
**\draw[->] (Parent.west) -| (Parent1.north);**
答案1
这是一种可能性:让森林放置盒子,抑制边缘,然后绘制它们。
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{calc}
\usepackage{forest}
\begin{document}
\tikzset{>=latex}
\begin{forest}
for tree={inner sep=2pt,outer
sep=0pt,align=center,font=\sffamily\footnotesize,draw,minimum width=3cm,
minimum height=0.5cm},
[,name=Parent
[,no edge,name=Child1
[,no edge,name=GrandChild1]
]
[,no edge,name=Child2
[,no edge,name=GrandChild2]
]
[,no edge,name=Child3
[,no edge,name=GrandChild3]
]
[,no edge,name=Child4
[,no edge,name=GrandChild4]
]
]
\draw[->] (Parent.west) -| (Child1.north);
\coordinate (x2) at ($(Child2.north)!0.5!(Child2.north east)$);
\draw[->] (Parent.south -| x2) -- (x2);
\coordinate (x3) at ($(Child3.north)!0.5!(Child3.north west)$);
\draw[->] (Parent.south -| x3) -- (x3);
\draw[->] (Parent.east) -| (Child4.north);
\foreach \X in {1,...,4}
{\draw[->] (Child\X) -- (GrandChild\X);}
\end{forest}
\end{document}
请注意,你也可以在森林中完成整个事情,例如这里,但我想说的是,这需要付出更多努力。