没有顶部边缘的 tikz 网格

没有顶部边缘的 tikz 网格

在此代码中TikZ(有限)网格,每个单元格都有字符

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}
\draw[step=0.5cm,color=gray] (-1,-1) grid (1,1);
\matrix[matrix of nodes,nodes={inner sep=0pt,text width=.5cm,align=center,minimum height=.5cm}]{
A & B & C & D \\
E & F &  & H \\
I & J & K & L \\
M & N & O & P\\};
\end{tikzpicture}
\end{document}

我想删除网格的顶部和左侧边缘。

我找到了使用nodes 的解决方案,但更喜欢使用 的这个matrix

答案1

我们可以用\foreach

\documentclass[tikz]{standalone}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}
%\draw[step=0.5cm,color=gray] (-1,-1) grid (1,1);
\foreach \i in {-0.5,0,0.5,1} {
    \draw[gray] (-1,-\i)--(1,-\i);
    \draw[gray] (\i,-1)--(\i,1);
}
\matrix[matrix of nodes,nodes={inner sep=0pt,text width=.5cm,align=center,minimum height=.5cm}]{
A & B & C & D \\
E & F &  & H \\
I & J & K & L \\
M & N & O & P\\};
\end{tikzpicture}
\end{document}

在此处输入图片描述

老实说,我认为节点或矩阵在这里没有任何作用。


这种方法基于土拨鼠的创作方式,这更棒也更棘手:

\documentclass[tikz]{standalone}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}
\draw[step=0.5cm,color=gray] ({-1cm+0.2pt},-1) grid (1cm,{1cm-0.2pt});
\matrix[matrix of nodes,nodes={inner sep=0pt,text width=.5cm,align=center,minimum height=.5cm}]{
A & B & C & D \\
E & F &  & H \\
I & J & K & L \\
M & N & O & P\\};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

matrix另一种解决方案。它用节点绘制网格drawn。之后,左边框和上边框删除带有白色覆盖线。

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}
\matrix[matrix of nodes,nodes={draw=gray, anchor=center, minimum size=.6cm}, column sep=-\pgflinewidth, row sep=-\pgflinewidth] (A) {
A & B & C & D \\
E & F &  & H \\
I & J & K & L \\
M & N & O & P\\};
\draw[white] ([xshift=.5\pgflinewidth]A-4-1.south west)|-([yshift=-.5\pgflinewidth]A-1-4.north east);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容