Crie uma tabela com regiões hachuradas uma e duas vezes e chaves

Crie uma tabela com regiões hachuradas uma e duas vezes e chaves

Tento fazer a próxima tabela com esta hachura, linhas tracejadas de células e chaves em Latex: insira a descrição da imagem aqui Já vi muitos exemplos diferentes neste site:Defina o fundo da tabela hachurado e sombreado usando tikz(eclosão),Tabelas com células coloridas e linhas tracejadas(linhas tracejadas de células),Como misturar coloração e hachura na mesma célula em um ambiente tabular?(eclosão+coloração).

Mas não encontrei células de hachura com ambos os tipos de hachura (nordeste + noroeste) e combinações inteiras de recursos, o que é necessário no meu exemplo.

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}         
\usepackage[english, russian]{babel}
\usepackage{amssymb,amsmath}
\usepackage{amsthm}
\usepackage{colortbl}
\usepackage{arydshln}
\usepackage{hhline}
\usepackage{multirow,bigdelim}
\usepackage{graphicx}
\usepackage[margin=2cm]{geometry} % just for the example 
\usepackage{fourier} 
\usepackage[table]{xcolor} 
\usepackage{array}
\usepackage{tabularx}
\usepackage{tikz}
\usepackage{lipsum}
\usetikzlibrary{calc,shadings,patterns}

\graphicspath{{pictures/}}

\makeatletter
\tikzset{%
  remember picture with id/.style={%
    remember picture,
    overlay,
    save picture id=#1,
  },
  save picture id/.code={%
    \edef\pgf@temp{#1}%
    \immediate\write\pgfutil@auxout{%
      \noexpand\savepointas{\pgf@temp}{\pgfpictureid}}%
  },
  if picture id/.code args={#1#2#3}{%
    \@ifundefined{save@pt@#1}{%
      \pgfkeysalso{#3}%
    }{
      \pgfkeysalso{#2}%
    }
  }
}

\def\savepointas#1#2{%
  \expandafter\gdef\csname save@pt@#1\endcsname{#2}%
}

\def\tmk@labeldef#1,#2\@nil{%
  \def\tmk@label{#1}%
  \def\tmk@def{#2}%
}

\tikzdeclarecoordinatesystem{pic}{%
  \pgfutil@in@,{#1}%
  \ifpgfutil@in@%
    \tmk@labeldef#1\@nil
  \else
    \tmk@labeldef#1,(0pt,0pt)\@nil
  \fi
  \@ifundefined{save@pt@\tmk@label}{%
    \tikz@scan@one@point\pgfutil@firstofone\tmk@def
  }{%
  \pgfsys@getposition{\csname save@pt@\tmk@label\endcsname}\save@orig@pic%
  \pgfsys@getposition{\pgfpictureid}\save@this@pic%
  \pgf@process{\pgfpointorigin\save@this@pic}%
  \pgf@xa=\pgf@x
  \pgf@ya=\pgf@y
  \pgf@process{\pgfpointorigin\save@orig@pic}%
  \advance\pgf@x by -\pgf@xa
  \advance\pgf@y by -\pgf@ya
  }%
}
\newcommand\tikzmark[2][]{%
\tikz[remember picture with id=#2] {#1;}}
\makeatother
% end of Andrew's code

\newcommand\HatchedCell[4][0pt]{%
  \begin{tikzpicture}[overlay,remember picture]%
    \fill[#4] ( $ (pic cs:#2) + (0,1.9ex) $ ) rectangle ( $ (pic cs:#3) + (0pt,-#1*\baselineskip-.8ex) $ );
  \end{tikzpicture}%
}%

\newcommand\HatchedCellw[4][0pt]{%
  \begin{tikzpicture}[overlay,remember picture]%
    \fill[#4] ( $ (pic cs:#2) + (0,1.9ex) $ ) rectangle ( $ (pic cs:#3) + (0pt,-#1*\baselineskip-.8ex) $ );
  \end{tikzpicture}%

}%

\begin{document}


\HatchedCell{start3}{end3}{%
  pattern color=black!70,pattern=north east lines}

\HatchedCellw{start4}{end4}{%
  pattern color=black!70,pattern=north west lines}

\begin{tabular}[t]{|l|c|c|c|c|c|c|c|c|c|}
\cdashline{5-5} \hhline{----~----}
& $1$ & $2$ & $3$ & \hspace{0.4in} & $a_i$ & $a_i+1$ & $a_i+2$ & \hspace{0.4in} & $B$\\
\cdashline{5-5} \hhline{----~----}
\ldelim\{{5}{1mm}[$k<l_i$]  $1$ & & & & & & & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start4}}c!{\vrule\tikzmark{end4}}}{} &\multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start4}}c!{\vrule\tikzmark{end4}}}{} \rdelim\}{9}{1mm}[$k<j-a_i$]\\
\cdashline{5-5} \hhline{----~----}
$2$ & $\infty$ & & & & & & & & $\infty$ \\
\cdashline{5-5} \hhline{----~----}
$3$ & $\infty$ & $\infty$ & & & & & &\\
\cdashline{5-5} \hhline{----~----}
\multicolumn{1}{:c:}{} & \multicolumn{1}{c:}{$\infty$} & \multicolumn{1}{c:}{$\infty$} & \multicolumn{1}{c:}{$\infty$} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{}\\
\multicolumn{1}{:c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{}\\
\cdashline{5-5} \hhline{----~----}
$l_i-1$ & $\infty$ & $\infty$ & $\infty$ & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start4}}c!{\vrule\tikzmark{end4}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start4}}c!{\vrule\tikzmark{end4}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start4}}c!{\vrule\tikzmark{end4}}}{} & & $\infty$ \\
\cdashline{5-5} \hhline{----~----}
$l_i$ & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start4}}c!{\vrule\tikzmark{end4}}}{}  & & & & $\infty$ \\
\cdashline{5-5} \hhline{----~----}
$l_i+1$ & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & & & & &\\
\cdashline{5-5} \hhline{----~----}
\multicolumn{1}{:c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{}\\
\multicolumn{1}{:c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{}\\
\cdashline{5-5} \hhline{----~----}
$B-a_i-1$ & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & & & & &\\
\cdashline{5-5} \hhline{----~----}
$B-a_i$ & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & & & & &\\
\cdashline{5-5} \hhline{----~----}
$B-a_i+1$ & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & & & & &\\
\cdashline{5-5} \hhline{----~----}
\multicolumn{1}{:c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{}\\
\multicolumn{1}{:c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{} & \multicolumn{1}{c:}{}\\
\cdashline{5-5} \hhline{----~----}
$B$ & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} & \multicolumn{1}{!{\hspace*{-0.4pt}\vrule\tikzmark{start3}}c!{\vrule\tikzmark{end3}}}{} &  & & & &\\
\cdashline{5-5} \hhline{----~----}
\multicolumn{1}{c}{} & \multicolumn{8}{c}{\upbracefill}\\[-1ex]
\multicolumn{1}{c}{} & \multicolumn{8}{c}{$\scriptstyle k>j$}\\
\end{tabular}


\end{document}

Nos locais onde é necessário aquecimento duplo coloquei símbolo do infinito, mas é melhor olhar na foto acima.

PS: Desculpe pelo meu inglês. Não é bom o suficiente.

Responder1

Proponho uma solução baseada em tabularx, bigdelime pstricks-add A ideia geral é definir nós vazios nas células relevantes, deslocados para o canto inferior esquerdo da célula a que pertence, e depois ligar essas células por caminhos poligonais fechados, que são preenchidos com um dos estilos de preenchimento de hachura.

\documentclass[t12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[english, russian]{babel}
\usepackage{amssymb,amsmath}
\usepackage{amsthm}
\usepackage{arydshln}
\usepackage{hhline}
\usepackage{multirow, bigdelim}
\usepackage{graphicx}
\usepackage[margin=2cm]{geometry} % just for the example
\usepackage[upright]{fourier}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\newcolumntype{Y}{>{$}X<{$}}
\usepackage{tikz}
\usetikzlibrary{calc,shadings,patterns}
\usepackage{pstricks-add}
\newcommand{\mynode}[1]{\pnode[-6.2pt, -5.6pt]{#1}}
\newcommand{\mycline}{\cline{2-5}\cdashline{6-6}[2.5pt/2pt]\cline{7-9}\cdashline{10-10}[2.5pt/2pt]\cline{11-11}}

\begin{document}

\renewcommand{\arraystretch}{1.5}
\setlength{\dashlinedash}{3pt}
\setlength{\dashlinegap}{2pt}
\noindent \begin{tabularx}{\linewidth}{l|>{$}p{15mm}<{$}|*{9}{Y|}l}
    \mycline
    & &\mynode{H01} 1 & 2 & 3 & \mynode{D0} ... & a_i & a_i + 1 & \mynode{H07} a_i + 2 & \mynode{H08} ... & B & \mynode{B1}\\
    \mycline
     \ldelim\{{5.2} {3.3em}[$ k < l_i $]& 1 &\mynode{H11} & \mynode{H12}& & & & & \mynode{H17} & \mynode{H18} & &\hskip-0.33em\rdelim\}{9.4}{*}[ $ k < j-a_i $]\\
    \mycline
    & 2 & & \mynode{H22}& \mynode{H23} & & & & & \mynode{H28}& \mynode{H29}\\
    \mycline
    & 3 & & & \mynode{H33} & \mynode{D3} & & & & & \\
    \mycline
     & ⋮& & & & & & & & & \\
    \mycline
    & l_{i-1} & \mynode{H51}& & & \mynode{D5} & & & & & \mynode{H59} \\
    \mycline
    & l_i & & & & & & & & &\mynode{H69} & \mynode{B6}\\
    \mycline
    & l_{i + 1} & & & & & & & & & \\
    \mycline
     & ⋮ & \mynode{H81} & & & \mynode{D8} \mynode{H85} &\mynode{H86} & & & & \\
    \mycline
    & B-a_i - 1 & & & & \mynode{H95} & \mynode{H96} & \mynode{H97}& & &\mynode{H9a} & \mynode{B9}\\
    \mycline
    & B-a_i & & & & & \mynode{Ha6} & \mynode{Ha7} & \mynode{Ha8}& & \\
    \mycline
    & B-a_i + 1 & & & & & & \mynode{Hb7} & \mynode{Hb8} & \mynode{Hb9}& \\
    \mycline
   & ⋮ & & & & & & & \mynode{Hc8} & \mynode{Hc9} & \mynode{Hca} \\
    \mycline
   & B &\mynode{B} & & & & & & &\mynode{Hd9} & \mynode{Hda} \\
    \mycline 
        \end{tabularx}
    \psset{linestyle=none, hatchwidth=0.4pt, hatchsep=1.6pt}
    \pspolygon[fillstyle=vlines] (H01)(H11)(H12)(H22)(H23)(H33)(D3)(D5)(H59)(H29)(H28)(H18)(H17)(H07)%(K) %
    \psset{fillstyle=hlines}
    \pspolygon(H51)(D5)(H85)(H86)(H96)(H97)(Ha7)(Ha8)(Hb8)(Hb9)(Hc9)(Hca)(Hda)(B)
    \pspolygon(H69)(B6)(B9)(H9a)
    \psset{fillstyle=crosshatch*,fillcolor=black, hatchcolor=white,hatchwidth=1.6pt,hatchsep=1.6pt, hatchangle=0}
    \pspolygon(H11)(H12)(H22)(H23)(H33)(D3)(D5)(H51)
    \pspolygon(H07)(H17)(H18)(H28)(H29)(H69)(B6)(B1)
    \psbrace[ref=c, nodesepB=0.5em, braceWidthInner=4pt, braceWidthOuter=6pt](B)(Hda){$k > j$}

\end{document} 

insira a descrição da imagem aqui

informação relacionada