对齐来自森林中单个节点的路径

对齐来自森林中单个节点的路径

所以,我对使用 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到中间节点。问题是父节点的父锚点与子节点的子锚点没有完全对齐。'左'和'右'的宽度不一样,并且锚点默认不对齐。如果您想要非默认对齐,则必须说明。(有很多不同的变化......)

相关内容