多列比子列宽

多列比子列宽

我正在处理与表格中的多列相关的美学问题。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{booktabs}

\begin{document}

\begin{table}
\centering
\caption{Large Width Table}\label{ch1tab:rev}
%\renewcommand{\arraystretch}{1.3}

\begin{tabular}{|c|c|}
    \toprule
    \multicolumn{2}{c}{\textbf{RandomTextRandomText}} \\ %\cline{3-4}
    $t_1$                     & $t_1$     \\\midrule
    1&1\\
    1&1\\
    1&1 \\ \bottomrule
    \multicolumn{2}{c}{Lorem ipsum dolor sit amet, consectetur adipiscing elit}
\end{tabular}
\end{table}

\end{document}

问题在于多列(在本例中是整个表格)的宽度大于子列的总宽度,因此所有多余的宽度都放在最后一个子列中。

在此处输入图片描述

从一些答案来看,我似乎应该强制子列的宽度大于多列的宽度。有没有更优雅和自动化的解决方案?

谢谢

答案1

让我们将我的评论转换为答案:

\documentclass{article}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newsavebox\TB  % Table Box
\newlength\wdTB % width of TB

\usepackage{lipsum}
\begin{document}
\lipsum[11]
    \begin{table}[htb]
\sbox{\TB}{\textbf{Random Text Random Text}}
\setlength{\wdTB}{\wd\TB}
    \centering
\caption{Large Width Table}
\label{ch1tab:rev}
\begin{tabular}{|*{2}{>{\centering\arraybackslash}p{0.5\wdTB}|}}
    \hline
    \multicolumn{2}{|c|}{\usebox{\TB}}  \\
    \hline
    $t_1$   &   $t_1$   \\
    \hline
    1       &   1       \\
    1       &   1       \\
    1       &   1       \\
    \hline
\multicolumn{2}{p{\wdTB}}{Is this some comment to table contents?}
\end{tabular}
    \end{table}
\lipsum[12]
    \begin{table}[htb]
    \centering
\caption{Large Width Table}
\label{ch1tab:rev}
\begin{tabular}{|*{2}{C{15mm}|}}
    \hline
    \multicolumn{2}{|C{\dimexpr15mm+15mm+2\tabcolsep}|}{\textbf{Random Text Random Text}}  \\
    \hline
    $t_1$   &   $t_1$   \\
    \hline
    1       &   1       \\
    1       &   1       \\
    1       &   1       \\
    \hline
\multicolumn{2}{p{\dimexpr30mm+2\tabcolsep}}{Is this some comment to table contents?}
\end{tabular}
    \end{table}
\end{document}

第一个表格使用multicolumn单元格的测量,第二个表格打破此单元格的内容,使其宽度不大于跨度列的总和:

在此处输入图片描述

答案2

\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\newsavebox\TBox
\begin{document}

\begin{table}
\sbox\TBox{Lorem ipsum dolor sit amet, consectetur adipiscing elit}
\centering
\caption{Large Width Table}\label{ch1tab:rev}
\begin{tabular}{|>{\centering}p{0.5\wd\TBox}|c|}\toprule
    \multicolumn{2}{c}{\bfseries RandomTextRandomText} \\ %\cline{3-4}
    $t_1$                     & $t_1$     \\\midrule
    1&1\\
    1&1\\
    1&1 \\ \bottomrule
\multicolumn{2}{c}{Lorem ipsum dolor sit amet, consectetur adipiscing elit}\\
\end{tabular}
\end{table}

\end{document}

在此处输入图片描述

相关内容