如何区分表格中的列并使表格稍微变小

如何区分表格中的列并使表格稍微变小

我如何明确区分此表中的 $M_1$ 和 $M_2$ 列。另外,如果可能的话,我如何使表格稍微小一点?

平均能量损失

\documentclass{article}

\begin{document}

\begin{table}[!]
\caption{Results} % title name of the table
\centering % centering table
\begin{tabular}{l rrr rrrrrr} % creating 10 columns
\hline\hline % inserting double-line
 &\multicolumn{3}{c}{$M_1$}  &\multicolumn{6}{c}{$M_2$}
\\ [0.5ex]
\hline 
$i$ & 1 & 2 & 3 & 1 & 2 & 3 & 4 & 5 & 6 \\ [0.5ex]
$r_i$ & 170 & 0 & 130 & 170 & 0 & 0 & 0 & 130 & 0 \\ [0.5ex]
$\int_0^T g_i(x(t))$ & 204178.8 & 580.7 & 580.7 & 45840.7 & 158338.1 & 580.7 & 0 & 580.7 & 0 \\
 [1ex] 
\hline 
\end{tabular}
\end{table}

\end{document}

答案1

像这样?

在此处输入图片描述

(红线显示页面布局)。对于这个表格,我使用booktabs水平规则包,makecell以便在单元格内容周围留出更多垂直空间,并siunitxS列提供小数点对齐数字的功能。

表格宽度由文本宽度规定tabular*。列之间的分隔由自动调整@{\extracolsep{\fill}}

\documentclass{article}
\usepackage{booktabs, makecell}
\setcellgapes{3pt}
\usepackage{siunitx}
\usepackage[skip=1ex]{caption}

\begin{document}
    \begin{table}[htb]
\caption{Results} % title name of the table
    \setlength\tabcolsep{0pt}
    \makegapedcells
    \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}
                    >{$}l<{$}
                        S[table-format=6.1]
                   *{2}{S[table-format=3.1]}
                        S[table-format=5.1]
                        S[table-format=6.1]
                   *{2}{S[table-format=3.1]
                        S[table-format=1.0]}
                    } % creating 10 columns
    \toprule
    & \multicolumn{3}{c}{$M_1$} & \multicolumn{6}{c}{$M_2$} \\
    \cmidrule{1-1}
    \cmidrule{2-4}
    \cmidrule{5-10}
i   & 1 & 2 & 3 & 1 & 2 & 3 & 4 & 5 & 6 \\
r_i & 170 & 0 & 130 & 170 & 0 & 0 & 0 & 130 & 0 \\
\int_0^T g_i(x(t))
    & 204 178.8 & 580.7 & 580.7 & 45 840.7 & 158 338.1 & 580.7 & 0 & 580.7 & 0 \\
    \bottomrule
\end{tabular*}
    \end{table}
\end{document}

相关内容