У меня проблема с созданием некоторых абстрактных синтаксических деревьев с помощью пакета Forest. Как видно ниже, между братьями и сестрами есть большой разрыв, хотя в таком разрыве нет необходимости, но я не могу найти ничего в документации по этой проблеме.
Ниже вы можете увидеть, как я создал текущее дерево. Я думаю, мне нужно как-то выровнять узлы по левому краю, если я хочу получить дерево, похожее на мой рисунок внизу этого поста.
\begin{forest}
for tree={
before typesetting nodes={content=\texttt{#1}}
}
[<regexp>, s sep=0pt
[(seq]
[<regexp>, edge={draw=none}
[(atom 1)]
]
[<regexp>), edge={draw=none}
[(seq]
[<regexp>, edge={draw=none}
[(atom 2)]
]
[<regexp>), edge={draw=none}
[(seq]
[<regexp>, edge={draw=none}
[(atom 3)]
]
[<regexp>), edge={draw=none}]
]
]
]
\end{forest}
Вот что я ищу, но не могу создать:
решение1
Я думаю, вам нужна for tree
опция calign=first
. Т.е.
\documentclass{book}
\usepackage[linguistics]{forest}
\begin{document}
\begin{forest}
for tree={
before typesetting nodes={content=\texttt{#1},
calign=first}
}
[<regexp>, s sep=0pt
[(seq]
[<regexp>, edge={draw=none}
[(atom 1)]
]
[<regexp>), edge={draw=none}
[(seq]
[<regexp>, edge={draw=none}
[(atom 2)]
]
[<regexp>), edge={draw=none}
[(seq]
[<regexp>, edge={draw=none}
[(atom 3)]
]
[<regexp>), edge={draw=none}]
]
]
]
\end{forest}
\end{document}
Выходы: