我对森林环境中节点高度的配置有问题。
如您所见,中间子节点没有与其余子节点在底部对齐。
这是我的 MWE。
我需要能够控制更下方的子节点,因此tier/.wrap pgfmath arg={tier #1}{level()}
\begin{figure}[ht!]
\centering
\begin{adjustbox}{max width=\textwidth}
\begin{forest}
for tree={
edge label={node[above,fill=white, yshift=2mm, font=\footnotesize]{100\%}},
fill=red!100,
l sep=3em,
s sep=5pt,
minimum height=3em,
minimum width=9em,
text width=9em,
text centered,
text=white,
rounded corners,
tier/.wrap pgfmath arg={tier #1}{level()},
},
forked edges,
% Indsæt her:
[Company A \\ ~\\ Finland
[Company X \\ ~\\ Denmark]
[Company Y \\ ~\\ Norway]
[Company Z \\ ~\\ Sweden]
]
\end{forest}
\end{adjustbox}
\end{figure}
我得出结论,一定是“y”i“Norway”导致了问题,因为当我删除它时,它就对齐了。我尝试更改节点的最小高度,但这没有帮助。
当我使用以下内容作为我的 for 树时,问题不存在,但是我无法按照我想要的方式控制进一步向下的子节点。
for tree={
fill=Red!100,
l sep=2em,
s sep=5pt,
minimum height=3em,
minimum width=9em,
text=white,
align=center,
rounded corners,
},
有没有办法用“比文本低 0.2em”或类似的东西来锁定节点?
答案1
您可以将 添加execute at begin node={\strut}, execute at end node={\strut},
到选项列表中for tree
。这将\strut
在每个节点的文本前后插入一个,这将有助于文本的垂直对齐。
请始终提供可编译MWE 如下:
\documentclass[border=10pt]{standalone}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
for tree={
edge label={
node[above, fill=white, yshift=2mm, font=\footnotesize]{100\%}
},
fill=red!100,
l sep=3em,
s sep=5pt,
minimum height=3em,
minimum width=9em,
text width=9em,
text centered,
text=white,
rounded corners,
tier/.wrap pgfmath arg={tier #1}{level()},
execute at begin node={\strut},
execute at end node={\strut},
},
forked edges,
% Indsæt her:
[Company A \\ ~\\ Finland
[Company X \\ ~\\ Denmark]
[Company Y \\ ~\\ Norway]
[Company Z \\ ~\\ Sweden]
]
\end{forest}
\end{document}