Desenhando árvores de sintaxe abstrata simples com floresta, sem que pareçam estranhas

Desenhando árvores de sintaxe abstrata simples com floresta, sem que pareçam estranhas

Estou tendo problemas ao criar algumas árvores de sintaxe abstratas com o pacote Forest. Como fica claro abaixo, há uma grande lacuna entre os irmãos, embora não haja necessidade de tal lacuna, mas não consigo encontrar nada na documentação sobre esse assunto.

Isso é o que consigo criar no TeX

Abaixo você pode ver como criei a árvore atual. Estou pensando que preciso alinhar os nós à esquerda de alguma forma, se quiser obter uma árvore parecida com o meu desenho no final deste post.

\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}

Isto é o que estou procurando, mas não consigo criar:

Desenho

Responder1

Eu acho que você precisa da for treeopção calign=first. Ou seja

\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}

Saídas:

insira a descrição da imagem aqui

informação relacionada