
У меня есть следующее дерево, в котором самый левый лист не синхронизирован:
\documentclass{minimal}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}
\tikzset{level 1+/.style={level distance=3\baselineskip}}
\tikzset{level 2+/.style={level distance=2\baselineskip}}
\tikzset{frontier/.style={distance from root=8\baselineskip}}
\tikzset{every tree node/.style={align=left, anchor=north}}
\tikzset{every leaf node/.append style={text depth=0pt}}
\Tree[.S
[.NP er\\he ]
[.NP
[.Det das\\the ]
[.N Buch\\book ] ]
[.NP
[.Det der\\the ]
[.N Frau\\woman ] ]
[.V gibt\\gives ] ]
\end{tikzpicture}
\end{document}
Я последовал за
выравнивание нескольких деревьев по базовой линии
и добавил \tikzset{every leaf node/.append style={text depth=0pt}}
, но это не имеет никакого эффекта.
решение1
Если вы готовы использовать мощныйforest
пакет (внутренне использует PGF/TikZ):
\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
parent anchor=south,
child anchor=north,
align=left,
base=bottom
},
where n children=0{tier=word}{}
[S
[NP [er\\he] ]
[NP
[Det [das\\the] ]
[N [Buch\\book] ]
]
[NP
[Det [der\\the] ]
[N [Frau\\woman] ]
]
[V [gibt\\gives] ]
]
\end{forest}
\end{document}
Чтобы выровнять содержимое всех узлов по центру, измените align=left на align=center (конечно, это можно сделать только для листьев или в ином случае).
\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
parent anchor=south,
child anchor=north,
align=center,
base=bottom
},
where n children=0{tier=word}{}
[S
[NP [er\\he] ]
[NP
[Det [das\\the] ]
[N [Buch\\book] ]
]
[NP
[Det [der\\the] ]
[N [Frau\\woman] ]
]
[V [gibt\\gives] ]
]
\end{forest}
\end{document}
base=bottom
На самом деле эта опция здесь не обязательна, поскольку все ваши листья имеют две линии.