나는 간단한 종속성 문법 트리(조판 종속성 문법 트리), 하지만 이제는 비투영 그래프를 원합니다. 해결 방법은 다음과 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}