我正在尝试在 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}