根据手册,forest
它被开发来获得如下图右侧的树,而不是左侧的树:
通常我也想要稠密树,但有一种情况是其他树更合适。对于树邻接语法,人们希望有一种格式,允许将其他短语插入到叶节点中。这对于下图中的第二棵树不起作用:
所以,问题是:有没有办法在tag
下面的树的样式声明中指定第二个示例中的上部 NP 节点应放置在更靠左的位置,以便这两个 NP 下方没有其他材料?
\documentclass{minimal}
\usepackage{forest}
\forestset{
tag/.style={for tree={parent anchor=south, child anchor=north,align=center,base=top}},
% a style that creates an arrow pointing to the substitution node from a tree top node encoded as daughter
substitution/.style={edge={<-,dashed},l+=\baselineskip}}
\begin{document}
\begin{forest}
tag
[S
[NP$\downarrow$,
[NP, substitution
[John]]]
[VP
[V
[laughs]]]]
\end{forest}
\hspace{2em}
\begin{forest}
tag
[S
[NP$_2^2\downarrow$]
[S
[NP$_2^1\downarrow$]
[S
[NP
[PRO]]
[VP
[NP$_2^1$
[e]]
[NP$_2^2$
[e]]
[V$_2$
[zu überf\"uhren]]]]]]
\end{forest}
\end{document}
\end{forest}
我知道s
和s sep
,但我更喜欢一种对所有 TAG 树都执行此操作的样式规范,而我不知道如何实现这一点。
答案1
也许fit=rectangle
(第 29 页) 就是您正在寻找的:
\documentclass{standalone}
\usepackage{forest}
\forestset{
tag/.style={for tree={parent anchor=south, child anchor=north,align=center,base=top}},
% a style that creates an arrow pointing to the substitution node from a tree top node encoded as daughter
substitution/.style={edge={<-,dashed},l+=\baselineskip}}
\begin{document}
\begin{forest}
tag
[S
[NP$\downarrow$,
[NP, substitution
[John]]]
[VP
[V
[laughs]]]]
\end{forest}
\hspace{2em}
\begin{forest}
tag
[S
[NP$_2^2\downarrow$]
[S, fit=rectangle
[NP$_2^1\downarrow$]
[S, fit=rectangle,
[NP
[PRO]]
[VP
[NP$_2^1$
[e]]
[NP$_2^2$
[e]]
[V$_2$
[zu überf\"uhren]]]]]]
\end{forest}
\end{document}