所以,我对使用 Forest 还很陌生,我发现很难理解这个包。我目前正在尝试制作一棵树,其路径在水平移动时会向水平方向弯曲,但在严格垂直移动时不会弯曲。然而,我这样做的尝试最终导致路径彼此略微偏移,我不确定为什么。
如果我的意思不清楚,以下是我认为的最小工作示例,显示了我遇到的错位问题。从根到中间的垂直线略微偏向其他两条路径的左侧,但我更希望它们都在同一条线上。如果这很重要,我在 texmaker 中使用 XeLaTeX。
\documentclass{article}
\usepackage[a4paper,left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry}
\usepackage{tikz}
\usepackage[linguistics]{forest}
\begin{document}
\begin{center}
\begin{forest}
for tree={
font=\sffamily\bfseries,
line width=1pt,
align=center,
child anchor=north,
parent anchor=south,
l sep+=90pt,
}
[{\large Root}
[{\large Left},
edge path={
\noexpand\path[rounded corners=15pt, line width=1.5pt, \forestoption{edge}]
(!u.parent anchor) -- +(0,-37.5pt) -| (.child anchor)\forestoption{edge label};
}]
[{\large Middle},
edge path={
\noexpand\path[line width=1.5pt, \forestoption{edge}]
(!u.parent anchor) -| (.child anchor)\forestoption{edge label};
}]
[{\large Right},
edge path={
\noexpand\path[rounded corners=15pt, line width=1.5pt, \forestoption{edge}]
(!u.parent anchor) -- +(0,-67.5pt) -| (.child anchor)\forestoption{edge label};
}]
]
\end{forest}
\end{center}
\end{document}
另外,既然我们已经讨论过了,我想问一个较小的话题,但我认为它本身不足以成为一个问题:是否可以在路径上添加装饰?例如,小叶子从路径中长出来,使其看起来像藤蔓。
答案1
添加calign with current edge
到中间节点。问题是父节点的父锚点与子节点的子锚点没有完全对齐。'左'和'右'的宽度不一样,并且锚点默认不对齐。如果您想要非默认对齐,则必须说明。(有很多不同的变化......)