调整并美化嵌套表格

调整并美化嵌套表格

我正在尝试创建一个表,其中其中一列的单元格包含一个嵌套表作为单元格值。

到目前为止我已经得到了这个:

\documentclass{article}
\usepackage{array,multirow}
\begin{document}
\begin{table}
    \begin{tabular}{|c|cccc|c|}\hline
    Col. A & Col. B & & & & Col. C \\ \cline{1-6}
\multirow{4}{*}
    {Val. 1} 
    &   & a & b & c \\
    & b & 2 &   &   \\
    & c & 2 & 3 &   \\
    & d & 2 & 3 & 4 \\ \hline
\multirow{4}{*}
    {Val. 2} 
    &   & a & b & c \\
    & b & 2 &   &   \\
    & c & 2 & 3 &   \\
    & d & 2 & 3 & 4 \\ \hline
\end{tabular}
\end{table}
\end{document}

这会创建如下内容:

在此处输入图片描述

我想修复/改进以下几点:

  1. 尽管只有 3 列,我还是想扩展表格以覆盖页面上的整个文本宽度?不需要跨越整个文本宽度,但外部列“A”和“C”应该可以轻松处理多行值。

  2. 在 中Col. B,我想“美化”内部表格结构,使其成为一个 4x4 的正方形,行和列之间的间距相等,并且整个表格位于单元格的中心。

  3. 如何使Col. B表头中的文本居中,并使单元格中的水平和垂直值(可能是多行)Col. C居中?

如果可能的话,我希望尽可能少使用额外的包。因此,如果可以使用arraymultirow(可能也可以multicol)做到这一点,那么我们就只使用它们吧。


更新:感谢@DavidCarlisle 的回答,我在我的输出中产生了以下内容:

在此处输入图片描述

我们如何才能使嵌套表格的形状变成Col. B正方形?我们可以以某种方式设置每个外列的宽度吗?

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{array}
\begin{document}
\begin{table}
\setlength\extrarowheight{2pt}
    \begin{tabular}{|c|c|c|}\hline
    Col. A & Col. B &  Col. C \\ \hline
Val. 1&
$\begin{array}{@{}cccc@{}}
 & a & b & c \\
 b & 2 &   &   \\
 c & 2 & 3 &   \\
 d & 2 & 3 & 4
 \end{array}$& \\ \hline
    Val. 2&
$\begin{array}{@{}cccc@{}}
    & a & b & c \\
  b & 2 &   &   \\
  c & 2 & 3 &   \\
  d & 2 & 3 & 4 
\end{array}$&\\ \hline
\end{tabular}
\end{table}
\end{document}

相关内容