如何在树节点中绘制和填充网格?

如何在树节点中绘制和填充网格?

我想在顶部树节点中绘制一个 1x3 的网格,然后填充网格最左边的两个单元格。

这是我的代码:

\node {\tikz\draw[step=.2cm] (0, 0) grid (.6, .2); \tikz\fill (0,0) rectangle (.4,.2)}
    child {node {\tikz\draw[step=.2cm] (0, 0) grid (.6, .2);}
    child {node {\tikz\draw[step=.2cm] (0, 0) grid (.6, .2);};

它输出的是:

在此处输入图片描述

我怎样才能让矩形填充网格内部?

答案1

你的方法嵌套了tikzpictures,这是不支持的。相反,你可以使用path picture节点来绘制网格。此外,我建议forest绘制树(但grid下面定义的节点样式在普通 Ti 中有效当然还有 Z)。

\documentclass{article}
\usepackage{forest}
\tikzset{grid/.style args={#1/#2}{draw,minimum height=1ex,minimum width=#1*1ex,
path picture={\foreach \XX in {1,...,\the\numexpr#1-1}
{\draw ([xshift=\XX*1ex]path picture bounding box.south west) --
([xshift=\XX*1ex]path picture bounding box.north west);
 }
\ifnum#2>0 
\foreach \XX in {1,...,#2}
{\fill ([xshift=1ex-\XX*1ex]path picture bounding box.south east) rectangle
([xshift=-\XX*1ex]path picture bounding box.north east);
 }
\fi  
}}}
\begin{document}
\begin{forest}
[,grid=5/2,
 [,grid=3/0]
 [,grid=3/0]
]
\end{forest}
\end{document}

在此处输入图片描述

相关内容