增加樹中兄弟節點之間的間距

增加樹中兄弟節點之間的間距

我用這個命令畫一棵樹:

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

我想要發生的是,第二級的「a」是所有其他節點的最左邊的節點。另外,第二級中的「b」應該是相對於所有其他節點而言最右邊的節點。

答案1

看看http://ctan.space-pro.be/tex-archive/graphics/pgf/contrib/forest/forest-doc.pdf第 10 頁s sep=20mm

選項 s,控制節點的(節點)錨點與其父節點之間的距離。

在此輸入影像描述

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

在此輸入影像描述

答案2

請注意,根節點位於 0 級。

實現這一點的最佳方法可能是用於fit=band根節點的子節點,即第1 級的子節點。加到樹中,森林將自動增加間隔,以保持第 1 層第一個和最後一個子項下的垂直空間空閒,因為它們沒有子項。

預設情況下,Forest 使用fit=tight.fit=rectanglefit=band都是替代方案。fit=band防止節點本身的後代以外的任何事物侵入其下方的垂直空間(在南北向生長的樹中)。

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

不同的適合

相關內容