扫描带有线条的表格单元格

扫描带有线条的表格单元格

在乳胶中是否有任何方法可以用水平线、垂直线、对角线扫描表格的单元格?

我想要类似下图的东西。

谢谢。

桌子

答案1

类似这样的内容。matrix of nodes用于table定义样式,然后每个节点都可以拥有自己的图案,并赋予其着色功能。一种称为的特殊图案mixed被定义为一个宏,采用两个单元格位置参数

在此处输入图片描述

代码

\documentclass[border=10pt]{standalone}%{article}
\usepackage{tikz,siunitx}
\usetikzlibrary{matrix,positioning,calc}
\usetikzlibrary{patterns}
\tikzset{ 
table/.style={
  matrix of nodes,
  row sep=-\pgflinewidth,
  column sep=-\pgflinewidth,
  nodes={draw,rectangle,text width=2cm,align=center},
  text depth=1.5ex,
  text height=4.5ex,
  nodes in empty cells
}
}

\newcommand{\mixed}[2]{
\foreach \i in {1,2,...,11}
{
\draw[] ([xshift=\i mm]mat-#1-#2.south west) -- ([xshift=\i mm]mat-#1-#2.north west);
}
\fill[pattern=horizontal lines]([xshift=11 mm]mat-#1-#2.south west)-- (mat-#1-#2.north east)--(mat-#1-#2.south east);
\fill[pattern=north east lines]([xshift=11 mm]mat-#1-#2.south west)-- (mat-#1-#2.north east) -- ([xshift=11 mm]mat-#1-#2.north west);
}

\begin{document}

\begin{tikzpicture}
% the matrix entries
\matrix (mat) [table]
{
 \node[pattern=fivepointed stars,pattern color=green,]{};  &   & 
 \node[pattern=crosshatch dots,pattern color=red]{};       &  &  \\
   &   \node[pattern=dots,pattern color=blue]{};           &  &
  \node[pattern=north west lines,pattern color=red]{};  &        \\
   &   &\node[pattern=north east lines,pattern color=brown]{};  &  
      \node[pattern=horizontal lines]{}; &                       \\
   & \node[pattern=bricks,pattern color=red]{};  &  &
      \node[pattern=vertical lines,pattern color=red]{}; 
   &                                                             \\
};
\mixed{4}{1}
\mixed{3}{5}
\end{tikzpicture}

\end{document}

答案2

你可以很容易地做到这一点tikz/PGF。我所画的比您的图表稍微方一点,但您可以根据需要缩放它(例如,使用\begin{tikzpicture}[xscale=1.2])。

在此处输入图片描述

这是乳胶代码(唯一稍微有点棘手的部分是三角形):

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{patterns}

\begin{document}

\begin{tikzpicture}
  \draw(0,0) grid (4,4);
  \filldraw[pattern=horizontal lines] (0,1) rectangle (1,2);
  \filldraw[pattern=vertical lines] (1,0) rectangle (1.25,1);
  \filldraw[pattern=vertical lines] (2,0) rectangle (3,1);
  \fill[pattern=horizontal lines](1.25,0)--(2,1)--(2,0);
  \fill[pattern=north east lines](1.25,0)--(2,1)--(1.25,1);
  \filldraw[pattern=north east lines](2,2)rectangle(3,3);
\end{tikzpicture}

\end{document}

我使用的网格间距是tikz默认的。如果您需要更改它以使其更像您的图片,请查看具有尺寸参数的 TikZ 图案

相关内容