森林重新指定分支位置 2

森林重新指定分支位置 2

上一个问题

示例问题:

\documentclass[margin=3mm]{standalone}%
\usepackage{forest}
\usetikzlibrary{positioning}

\begin{document}
    \begin{forest}
for tree={
inner xsep=0pt,
s sep=9mm,
l sep=7mm}
    [VP
    [DP]
      [V'
        [A, name=a]
        [DP]
      ]
]
\begin{scope}[inner xsep=0pt, node distance=7mm and 0mm]
\node (b) [right=of a] {B};
\node (c) [right=of b] {C};
\node (x) [below=of c] {XXX};
\draw (c) -- (x);
\end{scope}
    \end{forest}
\end{document}

XXX 现在位于 ABC 之下,但是如果我想在多个级别上进行此类重新排列(例如,XXX 现在应该指向下面级别节点中的 123 中的 1,然后 3 指向它下面的节点,我可以在森林中执行此操作吗,还是需要在 tikz 中手动构建树?

https://i.stack.imgur.com/rKXLl.png

答案1

你可以在森林里做这一切,而不必借助 Ti 来放置额外的东西Z 方法。一种可能性是使用锚点,注意有不同的锚点:节点锚点、子锚点和父锚点。

\documentclass[margin=3mm]{standalone}%
\usepackage{forest}
\usetikzlibrary{positioning}

\begin{document}
    \begin{forest}
for tree={
inner xsep=0pt,
s sep=9mm,
l sep=7mm}
    [VP
    [DP]
      [V'
        [ABC, name=a,parent anchor=-45
         [XXX,anchor=135]]
        [DP]
      ]
]
    \end{forest}
\end{document}

在此处输入图片描述

数字只是角度。为了V'连接,A只需ABC添加,child anchor=120

\documentclass[margin=3mm]{standalone}%
\usepackage{forest}
\usetikzlibrary{positioning}

\begin{document}
    \begin{forest}
for tree={
inner xsep=0pt,
s sep=9mm,
l sep=7mm}
    [VP
    [DP]
      [V'
        [ABC, name=a,parent anchor=-45,child anchor=120
         [XXX,anchor=135]]
        [DP]
      ]
]
    \end{forest}
\end{document}

在此处输入图片描述

相关内容