表格中的可变列间距

表格中的可变列间距

我有一个相对复杂的表格,其中包含相当多的子标题。我正在尝试调整列间距,以便单独的“组”更加明显。

以下是我当前的表格的一部分:

\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. “三分位数”和“四分位数”组之间的间隙(以及第 1 列和第 2 列之间的间隙)
  3. “第一”组和“第二”组之间的间隙(以及“时间段”列和第 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 bc 更改\hspace{...}为您想要的任何空间。

答案2

因此,解决这个问题的最好方法似乎是(对我来说)使用添加空列p{...pt}(其中...被我想要的空间替换,并将列分隔设置为\setlength{\tabcolsep}{0pt}

这使得将\cmidrule标题置于线上中心位置变得更容易。

我之前曾尝试使用该选项添加空白列,但这并没有达到我想要的效果。在提出问题之前,c我还没有尝试使用该选项。p{...}

感谢您的其他建议 - 我相信它们对其他人也会有用:)

相关内容