在嵌套表格中,如何使内部表格拉伸以适合其列?

在嵌套表格中,如何使内部表格拉伸以适合其列?

我正在尝试设计一个表格嵌套表格的布局,但无法让表格对齐。这个问题与如何使内部表格的宽度使用外部表格的整列宽度?除了我没有tabularx参与——我希望让桌子本身伸展。我认为解决方案将包含两个部分:

  • 有一定的弹性\tabcolsep
  • 以某种方式告诉外表不要填充左侧和右侧

我一直想不出如何才能达到这样的效果。

这是一个最小的工作示例:

\documentclass{article}
\begin{document}
\begin{tabular}{cc}
  A relatively wide line& Thin \\
  \begin{tabular}{@{}ll@{}}
    \hline
    A&B\\
    \hline
    C&D\\
    \hline
  \end{tabular}&
  Thicker\\
The ABCD table should stretch to fit&Thickest\\
\end{tabular}
\end{document}

结果表如下

MWE 输出

但我想要的是让 ABCD 表拉伸其列的整个宽度(尽管在这种情况下看起来很糟糕)。

通过考虑以下非最小示例中的错位,可以说明我实际上想要完成的任务:

我正在尝试解决的实际问题

我希望的两个结果是

  • 部分自动拉伸至与部分宽度相同
  • 部分G自动拉伸至与上方内容相同的宽度

有谁知道如何实现这一点?

答案1

如果您想要拉伸,则不能使用表格。

\documentclass{article}
\newlength{\columnA}
\newlength{\columnB}
\newsavebox{\tempbox}
\begin{document}

\settowidth{\columnA}{The ABCD table should stretch to fit}
\settowidth{\columnB}{Thickest}

\savebox{\tempbox}{%
\parbox[t]{\columnA}{\centering
A relatively wide line\\
\rule[1.5ex]{\columnA}{.5pt}\vspace{-1.5ex}
A \hfil B\\
\rule[1.5ex]{\columnA}{.5pt}\vspace{-1.5ex}
C \hfil D\\
\rule[1.5ex]{\columnA}{.5pt}\vspace{-1.5ex}
The ABCD table should stretch to fit}%
}%
\usebox{\tempbox}\hspace{\columnsep}%
\parbox[t][\dimexpr \ht\tempbox + \dp\tempbox][s]{\columnB}{\centering
Thin\vfill
Thicker\vfill
Thickest}

\end{document}

从头开始的表

相关内容