나무의 잎을 정렬

나무의 잎을 정렬

가장 왼쪽의 휴가가 동기화되지 않은 다음 트리가 있습니다.

\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실제로 모든 잎에는 두 줄이 있으므로 여기에서는 옵션이 필요하지 않습니다.

관련 정보