代码

代码

我需要将两棵树(包森林)并排放置,但我没有找到有关包文档的任何信息。

\begin{forest}
[P1
   [SN
      [N[Mary]]]

   [VP
      [V[loves]]
      [N[Luke]]
]]

\end{forest}

\begin{forest}
[P2
   [NP
      [Pro[This]]]
   [VP
      [V[is]]
      [NP
      [Det[a]]
      [N[xx]]
]]]

\end{forest}

答案1

无需幻影:使用adjustbox及其功能移动盒子。由 制成的树forest的参考点位于底部,我们可以在顶部用 对齐valign=t

\documentclass{article}
\usepackage{forest,adjustbox}

\begin{document}
\begin{adjustbox}{valign=t}
\begin{forest}
[P1
   [SN
      [N[Mary]]]
   [VP
      [V[loves]]
      [N[Luke]]
]]
\end{forest}
\end{adjustbox}\qquad
\begin{adjustbox}{valign=t}
\begin{forest}
[P2
   [NP
      [Pro[This]]]
   [VP
      [V[is]]
      [NP
      [Det[a]]
      [N[xx]]
]]]
\end{forest}
\end{adjustbox}

\end{document}

在此处输入图片描述

答案2

您的代码中有两个错误,排除了两棵树位于同一水平线上的可能性:

  1. 环境之间有一个空行forest,TeX 会将其解释为新段落。删除该空行或插入%
  2. 您的forest环境中有空行。这会阻止 TeX 编译您的代码,因为它会破坏解析器forest。与上述相同的规则有效。

现在,两forest棵树都在同一水平线上。由于 TeX 将树(底层的 TikZ 图片)视为两个大框,其基线位于底部,因此树的根部不是垂直对齐的。

baseline您可以使用选项(forest此处为选项,也存在 TikZbaseline选项)更改此设置。在您使用该baseline选项的任何节点,都会设置整个树的基线。这样,您可以将选项提供baselineVP第一棵树中的节点和Det第二棵树中的节点,以垂直对齐这些节点处的图片。如果将选项作为环境选项提供forest,则该选项将应用于根节点。

如果你想让两棵树都出现在一张图片中(以便于在它们之间绘图),phantom选项可能会有帮助。您可能需要包含几个phantom级别,以便将子树对齐到不同的级别,如之前的示例所示。

代码

\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest} baseline
[P1
   [SN
      [N[Mary]]]
   [VP
      [V[loves]]
      [N[Luke]]
]]
\end{forest}\hspace{1cm}
\begin{forest} baseline
[P2
   [NP
      [Pro[This]]]
   [VP
      [V[is]]
      [NP
      [Det[a]]
      [N[xx]]
]]]
\end{forest}
\end{document}

答案3

这有点棘手。你将两棵树都画成phantom父树的分支。这个想法是从forest 文档

\documentclass[tikz,border=2mm]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
[, phantom, s sep = 1cm
 [P1
    [SN [N  [Mary]]]
    [VP [V  [loves]]
        [N  [Luke]]]
 ]
 [P2
   [NP [Pro [This]]]
   [VP [V [is]]
       [NP [Det [a]]
       [N  [xx]]]]
 ]
]
\end{forest}
\end{document}

在此处输入图片描述

答案4

与 Ignasi 的想法类似,你可以绘制一条“幻影”边缘,使较矮的树与较高的树具有相同的级别。这样就可以实现两种forest环境。

代码

\documentclass{article}
\usepackage{forest}

\begin{document}
\begin{forest}
[P1
   [SN
      [N[Mary]]]
   [VP
      [V[loves]]
      [N[Luke
        [,no edge] % phantom edge to increase tree level
      ]]
]]
\end{forest}
\begin{forest}
[P2
   [NP
      [Pro[This]]]
   [VP
      [V[is]]
      [NP
      [Det[a]]
      [N[xx]]
]]]
\end{forest}
\end{document}

输出

在此处输入图片描述

相关内容