如何在用 tikz 绘制的方块中写文字?

如何在用 tikz 绘制的方块中写文字?

我曾使用 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}

相关内容