Vergrößern des Abstands zwischen Geschwisterknoten in einem Baum

Vergrößern des Abstands zwischen Geschwisterknoten in einem Baum

Ich zeichne einen Baum mit diesem Befehl:

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

Ich möchte, dass das „a“ auf der zweiten Ebene der Knoten ganz links im Hinblick auf alle anderen Knoten ist. Außerdem sollte „b“ auf der zweiten Ebene der Knoten ganz rechts im Hinblick auf alle anderen Knoten sein.

Antwort1

Schauen Sie sich anhttp://ctan.space-pro.be/tex-archive/graphics/pgf/contrib/forest/forest-doc.pdfauf Seite 10. Sie können verwenden s sep=20mm.

Option(en) steuern den Abstand zwischen den (Knoten-)Ankern eines Knotens und seinem übergeordneten Knoten.

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

Antwort2

Beachten Sie, dass sich der Stammknoten auf Ebene 0 befindet. Aufgrund der von Ihnen akzeptierten Antwort gehe ich davon aus, dass Sie mit „der zweiten Ebene“ eher Ebene 1 als Ebene 2 meinten.

Der beste Weg, dies zu erreichen, besteht wahrscheinlich darin, fit=bandfür die untergeordneten Knoten des Stammknotens, also diejenigen auf Ebene 1, zu verwenden. Dadurch wird die Notwendigkeit vermieden, eine größere Streuung zwischen den Knoten der ersten Ebene fest zu codieren: Wenn dem Baum mehr Inhalt hinzugefügt wird, vergrößert Forest automatisch die Trennung, um den vertikalen Raum unter dem ersten und letzten untergeordneten Knoten auf Ebene 1 frei zu halten, da diese keine untergeordneten Knoten haben.

Standardmäßig verwendet Forest fit=tight. fit=rectangleund fit=bandsind Alternativen. fit=bandverhindert, dass etwas anderes als die eigenen Nachkommen des Knotens in den vertikalen Raum darunter eindringt (in einem von Nord nach Süd wachsenden Baum).

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

unterschiedliche Passform

verwandte Informationen