我如何明确区分此表中的 $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
以便在单元格内容周围留出更多垂直空间,并siunitx
为S
列提供小数点对齐数字的功能。
表格宽度由文本宽度规定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}