Ich möchte folgendes Bild einstellen:
Der folgende forest
Code erledigt es fast:
\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={fit=band,parent anchor=south,child anchor=north}
[ForceP
[]
[Force$'$
[Force$^0$]
[TopP
[]
[Top$'$
[Top$^0$]
[FocP
[]
[Foc$'$
[Foc$^0$]
[TopP
[]
[Top$'$
[Top$^0$]
[FinP
[]
[Fin$'$
[Fin$^0$]
[IP/AgrSP]]]]]]]]]]]
\end{forest}
\end{document}
Allerdings haben die Bögen, die nach links gehen, nicht den richtigen Winkel:
Nun stellt sich die Frage: Muss ich \strut
zu allen s ein s hinzufügen empty node
oder gibt es eine nettere Art auszudrücken, dass die empty node
s die gleiche Höhe haben wie ihre Schwestern auf der rechten Seite?
Antwort1
Hier ist eine alternative Methode, die für mich besser aussieht, wenn ich den sn edges
Stil auch zum Baum hinzufüge. Anstatt den nice empty nodes
Trick zu verwenden, shape
auf zu setzen coordinate
, erstellt dies Phantominhalt für die leeren Knoten (nur ein X
) und verwendet eine Standardtexthöhe für alle Knoten im Baum, um die Ausrichtung beizubehalten.
\documentclass[tikz,border=5pt]{standalone}
\usepackage{forest,calc}
\begin{document}
\newlength\mytextheight
\settototalheight{\mytextheight}{XpX$^0$X$'$}
\begin{forest}
delay={
where content={}{
content={\phantom{X}}
}{},
},
for tree={
text height=\mytextheight,
fit=band,
parent anchor=south,
child anchor=north,
}
[ForceP
[]
[Force$'$
[Force$^0$]
[TopP
[]
[Top$'$
[Top$^0$]
[FocP
[]
[Foc$'$
[Foc$^0$]
[TopP
[]
[Top$'$
[Top$^0$]
[FinP
[]
[Fin$'$
[Fin$^0$]
[IP/AgrSP]
]
]
]
]
]
]
]
]
]
]
\end{forest}
\end{document}
Antwort2
nice empty nodes
Sie können einen Stil wie auf Seite 52 des Handbuchs definieren forest
.
\documentclass{article}
\usepackage{forest}
\forestset{
nice empty nodes/.style={
for tree={calign=fixed edge angles},
delay={where content={}{for parent={for children={anchor=north}}}{}}
}}
\begin{document}
\begin{forest}
for tree={fit=band}
[ForceP, nice empty nodes
[]
[Force$'$
[Force$^0$]
[TopP
[]
[Top$'$
[Top$^0$]
[FocP
[]
[Foc$'$
[Foc$^0$]
[TopP
[]
[Top$'$
[Top$^0$]
[FinP
[]
[Fin$'$
[Fin$^0$]
[IP/AgrSP]]]]]]]]]]]
\end{forest}
\end{document}