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.
\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}
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=band
para 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=rectangle
e fit=band
são alternativas. fit=band
evita 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}