Quiero configurar la siguiente imagen:
El siguiente forest
código casi lo hace:
\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}
Sin embargo, los arcos que van hacia la izquierda no tienen el ángulo recto:
Ahora, la pregunta es: ¿Tengo que sumar \strut
s a todas empty node
las s o hay una forma más agradable de decir que las empty node
s tienen la misma altura que sus hermanas de la derecha?
Respuesta1
Aquí hay un método alternativo que me parece mejor cuando también agrego el sn edges
estilo al árbol. En lugar de usar el nice empty nodes
truco de establecer shape
en coordinate
, esto crea contenido fantasma para los nodos vacíos (solo un X
) y usa una altura de texto estándar para todos los nodos en el árbol para mantener las cosas alineadas.
\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}
Respuesta2
Puede definir un nice empty nodes
estilo como en la página 52 del forest
manual.
\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}