简单的数学树

简单的数学树

我必须画出许多简单的树,类似于第 128 页或第 133 页所描绘的树。这本漂亮的书作者是 Cheng 和 Lauda。我以前对这个包有一些了解森林,但不幸的是,我现在意识到我已经忘记了大部分内容(尽管我想我应该玩一下圆圈或者包围选项,不知何故)。

最好的是使用一个简单的宏森林或者配额树允许绘制这些向上生长的、未标记的树。

答案1

你可以从这里开始:

\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
  for tree={%
    label/.option=content,
    grow=north,
    content=,
    circle,
    fill,
    minimum size=3pt,
    inner sep=0pt,
  }
  [
    [ [][] ]
    [ [][][][] ]
  ]
\end{forest}
\end{document}

在此处输入图片描述

答案2

我没有经验forest(DG 的回答似乎是一个很好的起点),但使用 tikztrees库(仅)重新创建了书中的一个图形,以防您认为森林包不是必需的和/或已经熟悉在 tikz 中绘图。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees} 
\begin{tikzpicture}[
level 1/.style={grow via three points={one child at (0,1) and two children at (-.5,1) and (.5,1)}},
level 2/.style={grow via three points={one child at (0,1) and two children at (-.25,1) and (.25,1)}},
level 3/.style={grow via three points={one child at (0,1) and two children at (-.125,1) and (.125,1)}},
every node/.style={circle, fill=black, inner sep = .25ex, minimum size=.25ex}]
\node {} 
child{
    node {} 
    child{
        node {}
        child{node {}}
        child[very thick]{node {}}
        child{node {}}
        }
    child{
        node {}
        }
    }
child{
    node {} 
    child{
        node {}
        child foreach \x in {1,2,3} {node {}}
        }
    child{
        node {}
        }
    }
child{
    node {} 
    child{
        node {}
        child[red]{node {}}
        child[missing]
        }
    child{
        node {}
        }
    }
child{
    node {} 
    child{
        node {}
        }
    child{
        node {}
        child{node {}}
        child[missing]
        child{node {}}
        }
    child{
        node {}
        }
    };
\end{tikzpicture}

树示例

tikz 手册第 21 节“让树木生长”中解释了如何使用 tikz 绘制树木。此示例中值得注意的是:

  • style图片开头的坐标决定了孩子在相应级别的位置
  • 各个子节点(边)和节点(顶点)可以有自己的样式(例如very thick
  • missing键可用于创建“占用空间”但不可见的子项(例如,与上面用红色突出显示的边缘相邻的子项)
  • 如果所有子项都相同,则可以使用foreach构造

相关内容