我有一张表格,前 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}