我有一个相对复杂的表格,其中包含相当多的子标题。我正在尝试调整列间距,以便单独的“组”更加明显。
以下是我当前的表格的一部分:
\documentclass[8pt,a4paper]{extreport}
\usepackage{etoolbox,siunitx,booktabs,threeparttable,multirow,array,graphicx}
\usepackage[margin=2.5cm]{geometry}
\robustify\bfseries
\setlength{\tabcolsep}{2pt}
\setlength\extrarowheight{3pt}
\sisetup{
detect-weight = true,
detect-inline-weight = math,
table-align-text-post = false,
input-open-uncertainty = ,
input-close-uncertainty = ,
tight-spacing = true,
table-figures-integer = 2,
}
\begin{document}
\begin{table}
\caption{}
\centering
\begin{threeparttable}[b]
\begin{tabular}{cc S[table-format=+2.1]S S[table-format=+2.1]S S[table-format=+2.1]S S[table-format=+2.1]S}
\toprule
&& \multicolumn{8}{c}{La Ni\~{n}a}\\ \cmidrule(l){3-10}
ENSO & Time & \multicolumn{4}{c}{First} & \multicolumn{4}{c}{Second}\\ \cmidrule(lr){3-6}\cmidrule(l){7-10}
Index & Period & \multicolumn{2}{c}{Terciles} & \multicolumn{2}{c}{Quartiles} & \multicolumn{2}{c}{Terciles} & \multicolumn{2}{c}{Quartiles}\\
\midrule
\multicolumn{10}{l}{\textit{Annual (Jan-Dec) data}}\\
SOI & 1901--2011 & 1.6 & (24) & 3.0 & (17) & \bfseries 7.3 & (13) & \bfseries 8.5 & (11)\\
SOI & 1901--1950 & 3.2 & (12) & \bfseries 4.0 & (9) & \bfseries 8.0 & (5) & \bfseries 9.7 & (4)\\
\bottomrule
\end{tabular}
\begin{tablenotes}[flushleft]
\item Insert notes here
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
理想情况下,我想要 3 个不同大小的列间隙(按升序排列):
- 数字与后面括号内的数字之间的差距
- “三分位数”和“四分位数”组之间的间隙(以及第 1 列和第 2 列之间的间隙)
- “第一”组和“第二”组之间的间隙(以及“时间段”列和第 3 列之间的间隙)
我确实在这里找到了另一个关于如何做类似事情的例子(改善此表的列间距),但当我尝试将它应用到我的桌子上时,它看起来很糟糕!!如果有人能帮忙,我将不胜感激:)
答案1
如果你把序言改成
\begin{tabular}{c@{b}c@{c} S[table-format=+2.1]@{a}S
@{b}S[table-format=+2.1]@{a}S
@{c}S[table-format=+2.1]@{a}S
@{b}S[table-format=+2.1]S}
然后你得到
然后只需将a
b
其c
更改\hspace{...}
为您想要的任何空间。
答案2
因此,解决这个问题的最好方法似乎是(对我来说)使用添加空列p{...pt}
(其中...被我想要的空间替换,并将列分隔设置为\setlength{\tabcolsep}{0pt}
。
这使得将\cmidrule
标题置于线上中心位置变得更容易。
我之前曾尝试使用该选项添加空白列,但这并没有达到我想要的效果。在提出问题之前,c
我还没有尝试使用该选项。p{...}
感谢您的其他建议 - 我相信它们对其他人也会有用:)