在此代码中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}
我想删除网格的顶部和左侧边缘。
我找到了使用node
s 的解决方案,但更喜欢使用 的这个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}