绘制虚线多列表格

绘制虚线多列表格

我想绘制一个多列表格,这样对于每一行,第二列和第三列被分成两部分,并且有一条虚线将这两部分分开。目前,我有这样的内容:

\documentclass[a4paper]{paper}

\usepackage{multirow}
\usepackage{makecell}
\usepackage{arydshln}

\begin{document}

\begin{table}[h]
\centering
\begin{tabular}{|*{7}{c|}}
\hline
\multirowcell{2}{Function} & \multicolumn{1}{c|}{Input(s)} & \multicolumn{1}{c|}{Output(s)} & \multicolumn{4}{c|}{Operations} \\
\cdashline{2-3} \cline{4-7}
& Type(s) & Type(s) & M & S & a & I \\
\hline
$\mathtt{j\_inv}$ & $(A, C)$ \\ $K \times K$ & $j(E)$ \\ $K$ & 3 & 4 & 8 & 1 \\ \hline
\end{tabular}
\caption{Summary of functions}
\label{tab:functions}
\end{table}

\end{document}

关键是表格标题完全符合我的要求,但当我开始在第二行实际写入值时,我不知道如何将第二列和第三列像其标题一样分成两部分,并用虚线分隔。简单地说,我在两部分之间放置了换行符,但这当然不会产生预期的效果。有什么想法可以实现我想要的吗?

答案1

我很可能漏掉了什么。您已经在标题中找到了如何拆分单元格的方法。为什么您不能重复一遍呢?

\documentclass[a4paper]{paper}

\usepackage{multirow}
\usepackage{makecell}
\usepackage{arydshln}

\begin{document}

\begin{table}[h]
\centering
\begin{tabular}{|*{7}{c|}}
\hline
\multirowcell{2}{Function} & \multicolumn{1}{c|}{Input(s)} & \multicolumn{1}{c|}{Output(s)} & \multicolumn{4}{c|}{Operations} \\
\cdashline{2-3} \cline{4-7}
& Type(s) & Type(s) & M & S & a & I \\
\hline
\multirowcell{2}{$\mathtt{j\_inv}$} & $(A, C)$ &
$K \times K$ & $j(E)$ & & &\\ 
\cdashline{2-3} \cline{4-7}
& $K$ & 3 & 4 & 8 & 1 &\\ 
\hline
\end{tabular}
\caption{Summary of functions}
\label{tab:functions}
\end{table}

\end{document}

在此处输入图片描述

如果这不是您想要的输出,您可以发布一个带注释的表格来解释您想要实现的目标。

答案2

这是一个{NiceTabular}使用 的解决方案nicematrix

在中{NiceTabular},您可以使用命令水平和垂直合并单元格\Block。对于行,您可以指定逻辑行数(而不是像 那样的物理行数\multicolumn)。

使用键hvlines,绘制所有规则,但块(由 构造\Block)除外。

由于nicematrix在数组的单元格、行和列下创建了 PGF/Tikz 节点,因此可以在构建数组后使用 Tikz 绘制所需的任何(虚线)规则。

\documentclass[a4paper]{paper}
\usepackage{nicematrix,tikz}

\begin{document}

\begin{table}[h]
\centering
\begin{NiceTabular}{ccccccc}[hvlines,cell-space-limits=3pt]
\Block{2-1}{Function} & \Block{2-1}{} Input(s) & \Block{2-1}{} Output(s) & Operations \\
& Type(s) & Type(s) & M & S & a & I \\
\Block{2-1}{$\mathtt{j\_inv}$} & \Block{2-1}{} $(A, C)$ & \Block{2-1}{} $K \times K$ & $j(E)$ \\
& $K$ & 3 & 4 & 8 & 1 \\ 
\CodeAfter
  \tikz \draw [dashed] (2-|2) -- (2-|4)   (4-|2) -- (4-|4) ;
\end{NiceTabular}
\caption{Summary of functions}
\label{tab:functions}
\end{table}

\end{document}

您需要多次编译(因为 PGF/Tikz 节点)。

上述代码的输出

相关内容