Набор грамматических деревьев зависимостей с прерывистыми составляющими

Набор грамматических деревьев зависимостей с прерывистыми составляющими

Мне удалось набрать простые деревья грамматики зависимостей (Набор Деревья грамматики зависимости), но теперь хотим иметь непроективные графы. Решение следующее 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 выше правой. Есть ли способ поместить их на одну линию? Эта разница вызвана тем, что у фантомов нет высоты?

решение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}

измененное дерево

Связанный контент