我怎样才能绘制这张表格?

我怎样才能绘制这张表格?

我尝试了在 latex 中绘制此表的基本方法,但我不喜欢结果,因为我不知道如何避免使用 来绘制每条线或边框array*。我只是想知道您是否知道绘制此表的更好方法,可能是使用阴影部分的颜色。我最严重的问题是每个单元格都有两行,接下来的问题是标题(前两行和两列)

在此处输入图片描述

我的代码:

\begin{center}
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l} \hline
 & &0&1&2&3&4&5&6&7&8 \\ \hline
 & & &1&0&0&1&0&1&0&1 \\ \hline
0& &0&0&0&0&0&0&0&0&0 \\ \hline
1&0&0&0 Sup&1 Diag&1 Diag&1 Izq&1 Diag&1 Izq&1 Diag&1 Izq \\ \hline
2&1&0&1 Diag&1 Sup&1 Sup&2 Diag&2 Izq&2 Diag&2 Izq&2 Diag \\ \hline
3&0&0&1 Sup&2 Diag&2 Diag&2 Sup&3 Diag&3 Izq&3 Diag&3 Izq \\ \hline
4&1&0&1 Diag&2 Sup&2 Sup&3 Diag&3 Sup&4 Diag&4 Izq&4 Diag \\ \hline
5&1&0&1 Diag&2 Sup&2 Sup&3 Diag&3 Sup&4 Diag&4 Sup&5 Diag \\ \hline
6&0&0&1 Sup&2 Diag&3 Diag&3 Sup&4 Diag&4 Sup&5 Diag&5 Sup \\ \hline
7&1&0&1 Diag&2 Sup&3 Sup&4 Diag&4 Sup&5 Diag&5 Sup&6 Diag \\ \hline
8&1&0&1 Diag&2 Sup&3 Sup&4 Diag&4 Sup&5 Diag&5 Sup&6 Diag \\ \hline
9&0&0&1 Sup&2 Diag&3 Diag&4 Sup&5 Diag&5 Sup&6 Diag&6 Sup \\ \hline
\end{tabular}
\end{center}

在此处输入图片描述

我怎样才能做这样的事情:

在此处输入图片描述

提前致谢。顺便说一句,这是动态规划技术的 LCS 表。

答案1

根据章节“5.3 使用矩阵对齐节点”手册我会尝试使用 TikZ 矩阵来重现这样的事情:

\documentclass{standalone}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes,shadows,arrows,matrix}

\begin{document}
    \begin{tikzpicture}
        \tikzstyle{minwidth} = [minimum width=8pt,minimum height=13pt]
        \tikzstyle{g1}=[minwidth,node distance=35pt,font=\footnotesize,text=green!80!black]
        \tikzstyle{g1c}=[g1,circle,draw=red]
        \tikzstyle{m1c}=[matrix of nodes,nodes={rectangle,draw,font=\tiny,minimum width=8pt,minimum height=12pt,text=blue!60!black}]

        \matrix [m1c] (m1)
        {
            0 & 0 & 0 & 0 \\
            0 & |(22) [draw,fill=yellow]| 0 & 0 & 0 \\
            0 & |(23) [draw,fill=yellow]| 1 & |(33) [draw,fill=yellow]| 1 & 1 \\
            0 & 1 & 1 & |(44) [draw,fill=yellow]|  2 \\
        };
        \draw[thick,->] (33.east) -- (23.west);
        \matrix [g1,draw=none, column sep=0cm,above of=m1] (m2)
        {
            \node {$y_j$}; & \node{B};\draw[red] (0,0) circle [radius=5pt]; & \node {D};  & \node {c};\draw[red] (0,0) circle [radius=5pt];\\
        };
        \matrix [draw=none, node distance=10pt,above of=m2,xshift=-8pt] (m5)
        {
            \node {j}; & \node{0}; & \node {1}; & \node{2}; & \node {3};\\
        };

        \matrix [g1,draw=none,, column sep=0cm,left of=m1] (m3)
        {
            \node {$x_i$}; \\  \node{A}; \\  \node {B};\draw[red] (0,0) circle [radius=5pt]; \\ \node {c};\draw[red] (0,0) circle [radius=5pt];  \\
        };
        \matrix [draw=none, node distance=10pt,left of=m3,yshift=8pt] (m4)
        {
            \node {i}; \\ \node {0}; \\  \node{1}; \\  \node {2}; \\ \node {3}; \\
        };
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容