如何在“多列”内获得等距的列?

如何在“多列”内获得等距的列?

我有一张表格,前 N 行有 6 列,最后变为 4 列,最左边的列保持不变。我试图在最后使用多列来实现这一点。

但是,我无法让多列部分正确留出空间?我意识到这里有很多关于类似问题的问题,但是似乎没有一个解决方案可以解决我遇到的问题。

梅威瑟:

 \begin{tabular*}{\textwidth}{r|@{\extracolsep{\fill}}ccccc}
 & A & B & C & D & E\\ 
\hline  
Much text, many words &   0\%    &  0\% (-20)   & 45\% (-10)    & 50\% (+25)    &  5\% ( +5)    \\ 
& \multicolumn{5}{c}{\begin{tabular*}{.6\linewidth}{@{\extracolsep{\fill}} c @{\extracolsep{\fill}} c @{\extracolsep{\fill}} c @{\extracolsep{\fill}}} F & G & H \end{tabular*}} \\ 
Other, quite different words & \multicolumn{5}{c}{\begin{tabular*}{.6\linewidth}{ @{\extracolsep{\fill}} c @{\extracolsep{\fill}} c @{\extracolsep{\fill}} c }  5\% ( +0)   & 70\% (-15)    & 25\% (+15)    \end{tabular*}} \\ 
\end{tabular*}

以上内容给了我以下信息:

在此处输入图片描述 我希望顶部列的间距均匀,并且底部列(FH)均匀使用 AE 空间。

我希望这个问题有意义。

编辑:在油漆中乱涂乱画,这大概是我想要的安排:

在此处输入图片描述

答案1

以下 MWE 包含两种呈现数据的方式。第一种接近您想要实现的布局。在第二种中,我包含了一种不同类型的表格,这可能有助于更清晰地呈现数据(为了对齐数字,也可以使用包siunitx):

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx}
\usepackage{geometry}
\usepackage{calc}
\usepackage{ragged2e}
\usepackage{booktabs}
\newcolumntype{C}{>{\Centering}X}

\begin{document}
\noindent
\begin{tabular}{>{\RaggedRight}p{4cm}|@{}p{\linewidth-4cm-2\tabcolsep-\arrayrulewidth}@{}}
Much text, many words  &    \begin{tabularx}{\linewidth}{CCCCC}
                             A & B & C & D & E \\
                             0\% & 0\% (-20) & 45\% (-10) & 50\% (+25) &  5\% ( +5)\\
                            \end{tabularx} \\
Other, quite different words & \begin{tabularx}{\linewidth}{CCC}
                                 F & G & H \\
                                 5\% ( +0) & 70\% (-15) & 25\% (+15)\\
                               \end{tabularx}\\
\end{tabular}


\bigskip

\begin{tabular}{llrr}
\toprule
Question & Answer & Chosen by & Change\\
\midrule
Much text, many words & A & 0\% \\
                      & B & 0\%  & -20 \\
                      & C & 45\% & -10 \\
                      & D & 50\% & +25 \\
                      & E & 5\%  &  +5 \\ \addlinespace
Other, quite different words & F & 5\%  &  +0 \\
                             & G & 70\% & -15 \\
                             & H & 25\% & +15 \\
\bottomrule
\end{tabular}

\end{document}

答案2

每当一种信息的呈现方式显得笨拙时,人们就应该寻找一种看起来更为优雅的相同信息的其他呈现方式。

  • 也许您可以使用两列表格,左列表示 AH,右列表示您的数据。然后,您可以在表格标题中描述 AE 与 FH 之间的独特之处。
  • 或者,您可以将表格分成两个不同的表格,将 AE 的信息放在一个表格中,将 FH 的信息放在另一个表格中。
  • ETC。

如果您绝对想坚持您正在做的事情,您可以使用这个 MWE 来满足您的规范。为此,我计算了 AE 占用的列和 FH 占用的列的 LCM,然后使用 LCM 作为单个列的总数。然后,对于每个单元格 AE 和 FH,我指定了 LCM 的适当除数。由于前两行中有五个多列,后两行中有三个多列,LCM 为 15,因此我将 AE 的每个单元格的宽度设为 15/5 = 3 列,将 FH 的每个单元格的宽度设为 15/3 = 5 列。

此 MWE 的一个问题是,您可能会遇到框过满的情况,并且行会超出表格线,具体取决于文档中的空间大小。当有足够的空间时,此 MWE 会与您的模型匹配。

\documentclass[letterpaper]{article}

\begin{document}
\begin{tabular*}{\textwidth}{r|@{\extracolsep{\fill}}*{15}{c}}
& \multicolumn{3}{c}{A} & \multicolumn{3}{c}{B} & \multicolumn{3}{c}{C} & \multicolumn{3}{c}{D} & \multicolumn{3}{c}{E} \\
\hline
Much text, many words & \multicolumn{3}{c}{0\%} & \multicolumn{3}{c}{0\% (-20)} & \multicolumn{3}{c}{45\% (-10)} & \multicolumn{3}{c}{50\% (+25)} & \multicolumn{3}{c}{5\% (+5)} \\
& \multicolumn{5}{c}{F} & \multicolumn{5}{c}{G} & \multicolumn{5}{c}{H} \\
Other, quite different words & \multicolumn{5}{c}{5\% (+0)} & \multicolumn{5}{c}{70\% (-15)} & \multicolumn{5}{c}{25\% (+15)}
\end{tabular*}
\end{document}

相关内容