Aumentando o espaçamento entre nós irmãos em uma árvore

Aumentando o espaçamento entre nós irmãos em uma árvore

Estou desenhando uma árvore com este comando:

\documentclass{article}
\usepackage{forest}

\begin{document}
\begin{forest}
[S [a]  [S [S [a] [S  [$\varepsilon$ ]] [b] ] [S [a] [S  [$\varepsilon$ ]] [b] ] ]   [b] ]
\end{forest}

\end{document}

O que eu quero que aconteça é que o “a” no segundo nível seja o nó mais à esquerda em relação a todos os outros nós. Além disso, "b" no segundo nível deve ser o nó mais à direita em relação a todos os outros nós.

Responder1

Dê uma olhada parahttp://ctan.space-pro.be/tex-archive/graphics/pgf/contrib/forest/forest-doc.pdfna página 10. Você pode usar s sep=20mm.

opção s, controla a distância entre as âncoras (do nó) de um nó e seu pai.

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{forest}

\begin{document}
\begin{forest}
[S,s sep=20mm, [a]  [S [S [a] [S  [$\varepsilon$ ]] [b] ] [S [a] [S  [$\varepsilon$ ]] [b] ] ]   [b] ]
\end{forest}

\end{document}

insira a descrição da imagem aqui

Responder2

Observe que o nó raiz está no nível 0. A julgar pela resposta que você aceitou, presumo que você quis dizer nível 1 em vez de nível 2 como 'o segundo nível'.

A melhor maneira de conseguir isso é provavelmente usar fit=bandpara os filhos do nó raiz, ou seja, aqueles no nível 1. Isso evita a necessidade de codificar qualquer aumento de propagação entre os nós do primeiro nível: se mais conteúdo for adicionado à árvore, Forest irá aumentar automaticamente a separação para manter livre o espaço vertical sob o primeiro e o último filho no nível 1, uma vez que estes não têm filhos.

Por padrão, Forest usa fit=tight. fit=rectanglee fit=bandsão alternativas. fit=bandevita que qualquer coisa que não seja os próprios descendentes do nó invada o espaço vertical abaixo dele (em uma árvore crescente Norte-Sul).

\documentclass[border=10pt]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
  [S, for children={fit=band} [a]  [S [S [a] [S  [$\varepsilon$ ]] [b] ] [S [a] [S  [$\varepsilon$ ]] [b] ] ]   [b] ]
\end{forest}
\end{document}

ajuste diferente

informação relacionada