Aumentar el espacio entre nodos hermanos en un árbol

Aumentar el espacio entre nodos hermanos en un árbol

Estoy dibujando un árbol con 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}

Lo que quiero que suceda es que la "a" en el segundo nivel sea el nodo más a la izquierda con respecto a todos los demás nodos. Además, "b" en el segundo nivel debería ser el nodo más a la derecha con respecto a todos los demás nodos.

Respuesta1

Echa un vistazo ahttp://ctan.space-pro.be/tex-archive/graphics/pgf/contrib/forest/forest-doc.pdfen la página 10. Puede utilizar s sep=20mm.

Opción s, controla la distancia entre los anclajes (nodos) de un nodo y su padre.

ingrese la descripción de la imagen aquí

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

ingrese la descripción de la imagen aquí

Respuesta2

Tenga en cuenta que el nodo raíz está en el nivel 0. A juzgar por la respuesta que aceptó, voy a suponer que se refiere al nivel 1 en lugar del nivel 2 con "el segundo nivel".

La mejor manera de lograr esto es probablemente usarlo fit=bandpara los hijos del nodo raíz, es decir, aquellos en el nivel 1. Esto evita la necesidad de codificar cualquier mayor dispersión entre los nodos del primer nivel: si se agrega más contenido al árbol, Forest aumenta automáticamente la separación para mantener libre el espacio vertical debajo del primer y último niño en el nivel 1, ya que estos no tienen hijos.

De forma predeterminada, Forest utiliza fit=tight. fit=rectangley fit=bandson alternativas. fit=bandevita que cualquier otra cosa que no sean los propios descendientes del nodo invada el espacio vertical debajo de él (en un árbol que crece de Norte a Sur).

\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

información relacionada