Dibujar árboles de sintaxis abstracta simple con bosque, sin que parezcan extraños

Dibujar árboles de sintaxis abstracta simple con bosque, sin que parezcan extraños

Tengo problemas al crear algunos árboles de sintaxis abstracta con el paquete Forest. Como queda claro a continuación, existe una gran brecha entre los hermanos, aunque no es necesaria, pero no puedo encontrar nada en la documentación sobre este tema.

Esto es lo que puedo crear en TeX.

A continuación puedes ver cómo he creado el árbol actual. Estoy pensando que necesito alinear los nodos a la izquierda de alguna manera, si quiero que un árbol se parezca a mi dibujo al final de esta publicación.

\begin{forest}
for tree={
    before typesetting nodes={content=\texttt{#1}}
}
[<regexp>, s sep=0pt
    [(seq]
    [<regexp>, edge={draw=none}
        [(atom 1)]
    ]
    [<regexp>), edge={draw=none}
        [(seq]
        [<regexp>, edge={draw=none}
            [(atom 2)]
        ]
        [<regexp>), edge={draw=none}
            [(seq]
            [<regexp>, edge={draw=none}
                [(atom 3)]
            ]
            [<regexp>), edge={draw=none}]
        ]
    ]
]
\end{forest}

Esto es lo que estoy buscando, pero no puedo crear:

Dibujo

Respuesta1

Creo que necesitas la for treeopción calign=first. Es decir

\documentclass{book}
\usepackage[linguistics]{forest}
\begin{document}
\begin{forest}
for tree={
    before typesetting nodes={content=\texttt{#1},
    calign=first}
}
[<regexp>, s sep=0pt
    [(seq]
    [<regexp>, edge={draw=none}
        [(atom 1)]
    ]
    [<regexp>), edge={draw=none}
        [(seq]
        [<regexp>, edge={draw=none}
            [(atom 2)]
        ]
        [<regexp>), edge={draw=none}
            [(seq]
            [<regexp>, edge={draw=none}
                [(atom 3)]
            ]
            [<regexp>), edge={draw=none}]
        ]
    ]
]
\end{forest}
\end{document}

Salidas:

ingrese la descripción de la imagen aquí

información relacionada