我设法排版了简单的依赖语法树(排版依存语法树),但现在想要有非投影图。 的解决方案forest
如下:
\documentclass{article}
\usepackage{forest}
\forestset{
dg edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=bottom,where n children=0{tier=word,edge=dotted,calign with current edge}{}}},
}
\begin{document}
\begin{forest}
dg edges
[V
[N, phantom,no edge
[L1, phantom,no edge
[L2, phantom,no edge
[L3, phantom,no edge [ N,name=nacc [wen\\who] ] ] ] ] ]
[glaubst\\believes]
[N [du\\you] ]
[Subjunction
[dass\\that]
[V-fin
[V-prt, name=vprt
[N [ich\\I ] ]
[gesehen\\seen] ]
[habe\\have] ] ] ]
\draw (vprt.south)--(nacc.north);
\end{forest}
\end{document}
由此得出下图:
我用幻像节点填充空树位置,并添加no edge
以使这些幻像节点不相连。此外,我还手工从vprt
到画了一条线nacc
。
差不多就是这样了,但我有两个问题:
可以做得更好(更简单)吗?
两个 N 的对齐有问题。最左边的 N 比右边的 N 高。有没有办法把它们放在同一条线上?这种差异是因为幻影没有高度吗?
答案1
no edge
除了 之外,您不需要phantom
。您可以使用另一个选项对齐两个 N tier
:
\documentclass{article}
\usepackage{forest}
\forestset{
dg edges/.style={%
for tree={%
parent anchor=south,
child anchor=north,
align=center,
base=bottom,
where n children=0{%
tier=word,
edge=dotted,
calign with current edge}{}
}
},
}
\begin{document}
\begin{forest}
dg edges
[V
[N, phantom
[L1, phantom
[L2, phantom
[L3, phantom [N, name=nacc, tier=mytier [wen\\who] ] ] ] ] ]
[glaubst\\believes]
[N [du\\you] ]
[Subjunction
[dass\\that]
[V-fin
[V-prt, name=vprt
[N, tier=mytier [ich\\I ] ]
[gesehen\\seen] ]
[habe\\have] ] ] ]
\draw (vprt.south)--(nacc.north);
\end{forest}
\end{document}