在 Forest 中将三个不同宽度的孩子置于中心

在 Forest 中将三个不同宽度的孩子置于中心

我是森林的新手,正在尝试弄清楚一些更精细的细节。我有一棵树,其中根节点有三个子节点。我希望根节点位于中间子节点上方的中心。以下是代码:

\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[normalem]{ulem}

\usepackage{forest}

\begin{document}

\begin{forest}
[S
   [S
      [DP[John]]
      [VP
         [V[likes]]
         [DP[\sout{opera}]]
      ]
   ]
   [and%, before computing xy={s/.average={s}{siblings}}
   ]
   [S
      [DP[Mary]]
      [VP
         [V[dislikes]]
         [DP[opera]]
      ]
   ]
]
\end{forest}

\end{document}

结果如下:

在此处输入图片描述

calign=center或其变体将不起作用,因为三个子树的宽度不同。我可以手动调整s sep,但如果我必须做多棵树,那就很麻烦了。根据森林文档(以及这个问题),我应该能够添加, before computing xy={s/.average={s}{siblings}}到包含“and”的节点并得到我想要的结果。但是,当我尝试这样做时,我收到错误“Package pgfkeys 错误:我不知道您传递了“{s}{siblings}”的键“/forest/s/.average”,我将忽略它。也许你拼错了。”

这是怎么回事?这是我的第一个问题,如果您需要更多信息,请告诉我。

相关内容