在表格环境中在单元格之间绘制线条

在表格环境中在单元格之间绘制线条

我有一个表格环境,我想做的是在该环境中的单元格之间绘制一条路径 \emph{between}。本质上,我想显示矩阵的分区。

我的表格如下:

\begin{tabular}{c | c c c c c c}
& \textbf{$a_1$} & \textbf{$a_2$} & \textbf{$a_3$} & \textbf{$a_4$} & \textbf{$a_5$} & \textbf{$a_6$} \\
\hline
\textbf{$b_1$} & $a_1 b_1$ & $a_2 b_1$ & $a_3 b_1$ & $a_4 b_1$ & $a_5 b_1$ & $a_6 b_1$ \\
\textbf{$b_2$} & $a_1 b_2$ & $a_2 b_2$ & $a_3 b_2$ & $a_4 b_2$ & $a_5 b_2$ & $a_6 b_2$ \\
\textbf{$b_3$} & $a_1 b_3$ & $a_2 b_3$ & $a_3 b_3$ & $a_4 b_3$ & $a_5 b_3$ & $a_6 b_3$ \\
\textbf{$b_4$} & $a_1 b_4$ & $a_2 b_4$ & $a_3 b_4$ & $a_4 b_4$ & $a_5 b_4$ & $a_6 b_4$ \\
\textbf{$b_5$} & $a_1 b_5$ & $a_2 b_5$ & $a_3 b_5$ & $a_4 b_5$ & $a_5 b_5$ & $a_6 b_5$ \\
\textbf{$b_6$} & $a_1 b_6$ & $a_2 b_6$ & $a_3 b_6$ & $a_4 b_6$ & $a_5 b_6$ & $a_6 b_6$ \\
\end{tabular}

显示如下: 乘法值表的图像

我想要做的是绘制分割这张表的线条。例如,我可能想要绘制一条呈对角线状的路径。这样一来,在 a4b1 的右侧、a4b1 的下方、a3b2 的右侧、a3b2 的下方、a2b3 的右侧、a2b3 的下方、a1b4 的右侧和 a1b4 的下方都会有一条线。

如何实现这一点?此外,是否有办法将某些线条变成虚线、点线等?这不是关键,但如果有就更好了。

答案1

以下是一些可能性:

在此处输入图片描述

为了定位短水平和垂直规则,我使用了\cline\multicolumn{1}{c|}。我还使用 增加了行高\setlength\extrarowheight{3pt}

为了实现虚线,我arydshln结合使用了该包\cdashline\multicolumn{1}{c:}

由于表格中的所有内容都处于数学模式,并且不受影响\textbf,因此您也可以考虑使用array环境。

\documentclass{article}
\usepackage{array}
\usepackage{arydshln}
\usepackage{bm}
  \begin{document}
\setlength\extrarowheight{3pt}

\begin{tabular}{c | c c c c c c}
& $a_1$ & $a_2$ & $a_3$ & $a_4$ & $a_5$ & $a_6$ \\
\hline
$b_1$ & $a_1 b_1$ & $a_2 b_1$ & $a_3 b_1$ & \multicolumn{1}{ c|}{$a_4 b_1$} & $a_5 b_1$ & $a_6 b_1$ \\ \cline{5-5}
$b_2$ & $a_1 b_2$ & $a_2 b_2$ & \multicolumn{1}{ c|}{$a_3 b_2$} & $a_4 b_2$ & $a_5 b_2$ & $a_6 b_2$ \\
\cline{4-4}
$b_3$ & $a_1 b_3$ & \multicolumn{1}{ c|}{$a_2 b_3$} & $a_3 b_3$ & $a_4 b_3$ & $a_5 b_3$ & $a_6 b_3$ \\
\cline{3-3}
$b_4$ & \multicolumn{1}{ c|}{$a_1 b_4$} & $a_2 b_4$ & $a_3 b_4$ & $a_4 b_4$ & $a_5 b_4$ & $a_6 b_4$ \\
\cline{2-2}
$b_5$ & $a_1 b_5$ & $a_2 b_5$ & $a_3 b_5$ & $a_4 b_5$ & $a_5 b_5$ & $a_6 b_5$ \\
$b_6$ & $a_1 b_6$ & $a_2 b_6$ & $a_3 b_6$ & $a_4 b_6$ & $a_5 b_6$ & $a_6 b_6$ \\
\end{tabular}



\setlength\dashlinegap{0.75pt}

\begin{tabular}{c | c c c c c c}
& $a_1$ & $a_2$ & $a_3$ & $a_4$ & $a_5$ & $a_6$ \\
\hline
$b_1$ & $a_1 b_1$ & $a_2 b_1$ & $a_3 b_1$ & \multicolumn{1}{ c:}{$a_4 b_1$} & $a_5 b_1$ & $a_6 b_1$ \\ \cdashline{5-5}
$b_2$ & $a_1 b_2$ & $a_2 b_2$ & \multicolumn{1}{ c:}{$a_3 b_2$} & $a_4 b_2$ & $a_5 b_2$ & $a_6 b_2$ \\
\cdashline{4-4}
$b_3$ & $a_1 b_3$ & \multicolumn{1}{ c:}{$a_2 b_3$} & $a_3 b_3$ & $a_4 b_3$ & $a_5 b_3$ & $a_6 b_3$ \\
\cdashline{3-3}
$b_4$ & \multicolumn{1}{ c:}{$a_1 b_4$} & $a_2 b_4$ & $a_3 b_4$ & $a_4 b_4$ & $a_5 b_4$ & $a_6 b_4$ \\
\cdashline{2-2}
$b_5$ & $a_1 b_5$ & $a_2 b_5$ & $a_3 b_5$ & $a_4 b_5$ & $a_5 b_5$ & $a_6 b_5$ \\
$b_6$ & $a_1 b_6$ & $a_2 b_6$ & $a_3 b_6$ & $a_4 b_6$ & $a_5 b_6$ & $a_6 b_6$ \\
\end{tabular}


\[
\begin{array}{c | c c c c c c}
&  \bm{a_1}  &  \bm{a_2}  &  \bm{a_3}  &  \bm{a_4}  &  \bm{a_5}  & \bm{a_6}  \\
\hline
\bm{b_1}  &  a_1 b_1  &  a_2 b_1  &  a_3 b_1  & \multicolumn{1}{c|}{ a_4 b_1 } &  a_5 b_1  &  a_6 b_1  \\ \cline{5-5}
 \bm{b_2}  &  a_1 b_2  &  a_2 b_2  & \multicolumn{1}{c|}{ a_3 b_2 } &  a_4 b_2  &  a_5 b_2  &  a_6 b_2  \\
\cline{4-4}
\bm{b_3} &  a_1 b_3  & \multicolumn{1}{c|}{ a_2 b_3 } &  a_3 b_3  &  a_4 b_3  &  a_5 b_3  &  a_6 b_3  \\
\cline{3-3}
 \bm{b_4} & \multicolumn{1}{c|}{ a_1 b_4 } &  a_2 b_4  &  a_3 b_4  &  a_4 b_4  &  a_5 b_4  &  a_6 b_4  \\
\cline{2-2}
\bm{ b_5 } &  a_1 b_5  &  a_2 b_5  &  a_3 b_5  &  a_4 b_5  &  a_5 b_5  &  a_6 b_5  \\
\bm{b_6} &  a_1 b_6  &  a_2 b_6  &  a_3 b_6  &  a_4 b_6  &  a_5 b_6  &  a_6 b_6  \\
\end{array}
\]


\end{document}

答案2

{NiceTabular}这是使用 的解决方案nicematrix。该环境类似于经典环境{tabular}(包array),但在单元格、行和列下创建 PGF/Tikz 节点。然后,可以使用 Tikz 用这些节点绘制您想要的任何规则。

\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}

\begin{document}
\setlength\extrarowheight{3pt}

\begin{NiceTabular}{c | c c c c c c}
        & $a_1$     & $a_2$    & $a_3$     & $a_4$     & $a_5$     & $a_6$ \\
  \hline
  $b_1$ & $a_1 b_1$ & $a_2 b_1$ & $a_3 b_1$ & $a_4 b_1$ & $a_5 b_1$ & $a_6 b_1$ \\
  $b_2$ & $a_1 b_2$ & $a_2 b_2$ & $a_3 b_2$ & $a_4 b_2$ & $a_5 b_2$ & $a_6 b_2$ \\
  $b_3$ & $a_1 b_3$ & $a_2 b_3$ & $a_3 b_3$ & $a_4 b_3$ & $a_5 b_3$ & $a_6 b_3$ \\
  $b_4$ & $a_1 b_4$ & $a_2 b_4$ & $a_3 b_4$ & $a_4 b_4$ & $a_5 b_4$ & $a_6 b_4$ \\
  $b_5$ & $a_1 b_5$ & $a_2 b_5$ & $a_3 b_5$ & $a_4 b_5$ & $a_5 b_5$ & $a_6 b_5$ \\
  $b_6$ & $a_1 b_6$ & $a_2 b_6$ & $a_3 b_6$ & $a_4 b_6$ & $a_5 b_6$ & $a_6 b_6$ \\
\CodeAfter
  \tikz \draw (6-|2) -| (5-|3) -| (4-|4) -| (3-|5) -| (2-|6) ; 
\end{NiceTabular}

\end{document}

上述代码的输出

答案3

你可以使用多列和 cline 的组合来实现这一点。解释起来很麻烦。为什么不使用

https://tablesgenerator.com/

创建你的表格?

相关内容