我曾使用 tikz 绘制过如下图所示的图表:
$$\begin{tikzpicture}
\draw (0,0) -- (0.6,0) -- (0.6,0.6) -- (0,0.6) -- (0,0);
\draw (0.6,0) -- (1.2,0) -- (1.2,0.6) -- (0.6,0.6) -- (0.6,0);
\draw (1.2,0) -- (1.8,0) -- (1.8,0.6) -- (1.2,0.6) -- (1.2,0);
\draw (1.8,0) -- (2.4,0) -- (2.4,0.6) -- (1.8,0.6) -- (1.8,0);
\draw (0,-0.6) -- (0.6,-0.6) -- (0.6,0) -- (0,0) -- (0,-0.6);
\draw (0.6,-0.6) -- (1.2,-0.6) -- (1.2,0) -- (0.6,0) -- (0.6,-0.6);
\draw (1.2,-0.6) -- (1.8,-0.6) -- (1.8,0) -- (1.2,0) -- (1.2,-0.6);
\draw (0,-1.2) -- (0.6,-1.2) -- (0.6,-0.6) -- (0,-0.6) -- (0,-1.2);
\draw (0,-1.8) -- (0.6,-1.8) -- (0.6,-1.2) -- (0,-1.2) -- (0,-1.8);
\end{tikzpicture}$$
这给出了以下结果:
但现在我想在每个单元格或方块的中心放置一个文本。我不知道该怎么做。我尝试了类似帖子中的技巧,但还没有奏效。
答案1
使用matrix
库:
\documentclass[margin=3mm, varwidth]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\[
\begin{tikzpicture}
\matrix [matrix of nodes,
nodes={draw, minimum size=1.4em, anchor=center},
column sep=-\pgflinewidth, row sep=-\pgflinewidth]
{
1 & 2 & 3 & 4 \\
5 & 6 & 7 & \\
8 & & & \\
9 & & & \\
};
\end{tikzpicture}
\]
\end{document}
答案2
您可以使用positioning
库来简化操作。然后定位节点并使用其标签文本。请注意,您可能只能在 6 毫米的正方形中容纳大约 3 个字符,但您可以通过更改轻松调整大小minimum size
。
使用-\pgflinewidth
将使node distance
正方形的边界重叠。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[every node/.style={draw, minimum size=6mm, inner sep=0}, node distance=-\pgflinewidth]
\node(a1){1};
\node[right=of a1](a2){2};
\node[right=of a2](a3){3};
\node[right=of a3](a4){4};
\node[below=of a1](b1){5};
\node[right=of b1](b2){6};
\node[right=of b2](b3){7};
\node[below=of b1](c1){8};
\node[below=of c1](d1){9};
\end{tikzpicture}
\end{document}