前天我发现了 TikZ,现在我尝试创建一个有 10 列和 10 行的网格。用颜色以恒定且清晰的方式填充网格框会很方便。我希望从网格矩阵之外做到这一点。
我能够用 (M) 命名矩阵。在 pgf 的用户手册中,我只能找到一个使用命名命令的实例。
在下图中,您可以看到直接访问两个节点产生的一条水平黑线。
我怎样才能使用命令“填充”而不是“绘制”,以便以清晰的方式填充一个单元格?
谢谢。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[matrix of nodes, nodes={draw,minimum size=1cm}, nodes in empty cells,column sep=-\pgflinewidth, row sep=-\pgflinewidth](M){
|[fill=green]| & |[fill=red]| & |[fill=blue]| & |[fill=purple]| \\
|[fill=yellow]| & |[fill=orange]| & |[fill=green]| & |[fill=brown]| \\
};
\draw[black] (M-1-1) -- (M-1-3) ;
\end{tikzpicture}
\end{document}
答案1
欢迎来到 TeX.SE!如果我理解正确的话,那么你应该关注以下内容:
编辑:
真尴尬,我之前的解释是错的,所以我删除了它并从第一个解决方案中恢复了最后一个例子。你有正确的矩阵设置……
在第一次尝试中,我忽略了绘制单元格边框的问题。关于它,使用矩形覆盖边框。因此,只有当矩形填充为黑色(as are cells' borders), at other fill colors, borders of colored cells are covered by
填充. This can be avoided by use
适合库并且仅在边框内绘制单元格时,才能获得视觉上正确的结果:
\documentclass[border=3.141592, varwidth]{standalone}
\usepackage{tikz}
\usetikzlibrary{fit,
matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of nodes,
nodes={draw, minimum size=1cm},
nodes in empty cells,
column sep=-\pgflinewidth, % <---
row sep=-\pgflinewidth] % <---
{
& & & \\
& & & \\
};
\node[fill, inner sep=-\pgflinewidthpt, fit=(m-2-3)] {}; % <---
\end{tikzpicture}
\begin{tikzpicture}
\matrix (m) [matrix of nodes,
nodes={draw, minimum size=1cm},
nodes in empty cells,
column sep=-\pgflinewidth, % <---
row sep=-\pgflinewidth] % <---
{
& & & \\
& & |[fill=teal]| & \\
};
\end{tikzpicture}
\end{document}