У меня есть следующий код для генерации дерева с использованием пакета forest:
\documentclass{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={circle,draw}
[A
[B
[C
[E]
[F]]
[D]]
[G
[H]
[I
[J]
[K
[L]
[M]]]]]
\end{forest}
\end{document}
Получившийся рисунок дерева выглядит так:
Вы можете заметить, что окружности, окружающие каждый узел, немного отличаются по размеру. Это наиболее заметно в случае соседних узлов H и I, а также L и M.
Можно утверждать, что это желательное поведение, поскольку оно гарантирует, что буква в каждом узле окружена одинаковым количеством отступов. Однако я считаю, что это выглядит плохо, и хотел бы, чтобы все круги имели одинаковый радиус.
Я пробовал различные варианты управления размером круга, но безуспешно. Как мне сделать так, чтобы все круги были одинакового размера? Кроме того, я думаю, что круги немного велики, как они есть сейчас, поэтому я хотел бы уменьшить отступ внутри круга. Было бы неплохо, если бы я мог задать это в опции, чтобы я мог экспериментировать с разными значениями, чтобы увидеть, что выглядит лучше всего.
решение1
Так как forest
основано на tikz
, вы можете использовать tikz
определение формы как
minimum size
, text width
, font
, и т.д. в определениях стилей узлов леса в for tree={...}
:
\documentclass[margin=5mm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
for tree={circle, draw,
minimum size=1.5em, % <-- added
inner sep=1pt} % <-- added
[A
[B
[C
[E]
[F]]
[D]]
[G
[H]
[I
[J]
[K
[L]
[M]]]]]
\end{forest}
\end{document}