使用 tikz 在 TeX 中生成根树

使用 tikz 在 TeX 中生成根树

我正在尝试在 TeX 中绘制有根树。我发现了以下示例:

\begin{tikzpicture}
  \node {root}
    child {[fill] circle (2pt)}
    child {[fill] circle (2pt)};
\end{tikzpicture}

我的问题是:如何填充根?以下方法无效:

\begin{tikzpicture}
  \node {[fill] circle (2pt)}
    child {[fill] circle (2pt)}
    child {[fill] circle (2pt)};
\end{tikzpicture}

我正在尝试手动完成,即通过

\begin{tikzpicture}
  \node {$\bullet$}
    child {[fill] circle (2pt)}
    child {[fill] circle (2pt)};
\end{tikzpicture}

但它在根部和边缘之间留有一个间隙。

如何以简单的方式做到这一点(无需额外的软件包)?

答案1

您混淆了节点和简单形状。它们看起来相似,但行为却不同。

为了填充根节点,您需要将其放在花括号之前,花括号内是用来包含文本而不是选项的。

\begin{tikzpicture}
  \node[fill, circle] {}
    child {[fill] circle (2pt)}
    child {[fill] circle (2pt)};
\end{tikzpicture}

不过,我认为forest这会让你更容易画树。就像写方括号一样简单!

输出

在此处输入图片描述

代码

\documentclass[tikz, border=5pt]{standalone}
\usepackage{forest}

\begin{document}
  \begin{forest}
    for tree={
        circle,
        draw,
        fill,
        minimum width=2pt, % size
        inner sep=0pt,
        parent anchor=center,
        child anchor=center,
        s sep+=25pt, % distance between children
    }
[ 
    [ ]
    [ ]
]
\end{forest}
\end{document}

答案2

喜欢阿莱南诺,我会推荐 Forest,但是,如果这不是一个选择,这里有一个非 Forest 且不需要额外包的解决方案,尽管它需要比 Forest 的语法更多的输入。

\documentclass[border=10pt,tikz,multi]{standalone}
\begin{document}
\begin{tikzpicture}
  [
    my circle/.style={draw, fill, circle, minimum size=2pt, inner sep=0pt}
  ]
  \node [my circle] {}
    child { node [my circle] {}}
    child { node [my circle] {}};
\end{tikzpicture}
\end{document}

不是森林树

相关内容