我排版了下表:
如您所见,我将表格水平拆分,因为这样可以让数据更好地适应信纸大小的纸张。这样,表格就可以轻松地浮动在页面的顶部或底部。一切都很好。
我的问题是如何在桌子的两半之间留出空间。我看到本表格指南使用一个额外的列,该列中有\hphantom{abc}
。幻像元素对我来说非常丑陋,所以我用空格代替了它\quad
。但是,我仍然想知道额外的列是否是实现此目的的最佳方法。
那么,排版这种表格的标准方法是什么?
梅威瑟:
\documentclass{standalone}
\usepackage{booktabs}
\usepackage{siunitx}
\newcommand{\mean}[0]{\bar}
\begin{document}
\begin{tabular}{rSSSSScrSSSSS}
\toprule
{Hour} & {$x_1$} & {$x_2$} & {$x_3$} & {$\mean x$} & {$R$} & \quad & {Hour} & {$x_1$} & {$x_2$} & {$x_3$} & {$\mean x$} & {$R$} \\
\cmidrule{1-6} \cmidrule{8-13}
1 & 0.36 & 0.39 & 0.36 & 0.370 & 0.03 && 11 & 0.36 & 0.32 & 0.36 & 0.347 & 0.04 \\
2 & 0.33 & 0.35 & 0.30 & 0.327 & 0.05 && 12 & 0.38 & 0.47 & 0.35 & 0.400 & 0.12 \\
3 & 0.51 & 0.41 & 0.42 & 0.447 & 0.10 && 13 & 0.29 & 0.45 & 0.39 & 0.377 & 0.16 \\
4 & 0.42 & 0.37 & 0.34 & 0.377 & 0.08 && 14 & 0.44 & 0.38 & 0.43 & 0.417 & 0.06 \\
5 & 0.39 & 0.38 & 0.38 & 0.383 & 0.01 && 15 & 0.38 & 0.37 & 0.37 & 0.373 & 0.01 \\
6 & 0.33 & 0.41 & 0.45 & 0.397 & 0.12 && 16 & 0.31 & 0.43 & 0.38 & 0.373 & 0.12 \\
7 & 0.43 & 0.39 & 0.41 & 0.410 & 0.04 && 17 & 0.39 & 0.49 & 0.35 & 0.410 & 0.14 \\
8 & 0.41 & 0.32 & 0.32 & 0.350 & 0.09 && 18 & 0.43 & 0.36 & 0.38 & 0.390 & 0.07 \\
9 & 0.37 & 0.42 & 0.36 & 0.383 & 0.06 && 19 & 0.40 & 0.45 & 0.32 & 0.390 & 0.13 \\
10 & 0.26 & 0.42 & 0.32 & 0.333 & 0.16 && 20 & 0.40 & 0.40 & 0.32 & 0.373 & 0.08 \\
\midrule
\multicolumn{13}{r}{%
$\mean{\mean x} \approx 0.3813$
\qquad
$\mean R = 0.0835$
} \\
\bottomrule
\end{tabular}
\end{document}
答案1
我不确定是否有标准排版表格的方法。除了保持 (a)booktabs
包的宏提供的开放外观(以及不存在任何垂直规则)和 (b) 数字列的十进制对齐(通过S
包的列类型siunitx
),我还会
删除两个主要六列组之间的第 13 个“虚拟”列,并在表头中将其替换为指令
@{\quad}
;提供有关列中有效数字的数量的额外信息,以便让 LaTeX 对数字列进行更紧密的排版;
使用
tabular*
而不是tabular
环境 来确保表格实际上适合当前文本块。(您的代码使用standalone
document 类,掩盖了这个重要方面。)环境tabular*
将环境的预期宽度作为其参数之一;在这里,我选择\textwidth
。看起来有些复杂的术语@{\extracolsep\fill}
以及指令\setlength\tabcolsep{0.1pt}
可用于使表格自动适合。
\documentclass{article}
\usepackage{booktabs,siunitx}
\newcommand{\mean}[1]{\bar{#1}}
\begin{document}
\begin{table}
\sisetup{table-format=1.2}
\setlength\tabcolsep{0.1pt}
\begin{tabular*}{\textwidth}{@{} r @{\extracolsep{\fill}}
*{3}{S}S[table-format=1.3]S @{\quad} r
*{3}{S}S[table-format=1.3]S @{}}
\toprule
Hour & {$x_1$} & {$x_2$} & {$x_3$} & {$\mean x$} & {$R$} &
Hour & {$x_1$} & {$x_2$} & {$x_3$} & {$\mean x$} & {$R$} \\
\cmidrule(r){1-6} \cmidrule{7-12}
1 & 0.36 & 0.39 & 0.36 & 0.370 & 0.03 & 11 & 0.36 & 0.32 & 0.36 & 0.347 & 0.04 \\
2 & 0.33 & 0.35 & 0.30 & 0.327 & 0.05 & 12 & 0.38 & 0.47 & 0.35 & 0.400 & 0.12 \\
3 & 0.51 & 0.41 & 0.42 & 0.447 & 0.10 & 13 & 0.29 & 0.45 & 0.39 & 0.377 & 0.16 \\
4 & 0.42 & 0.37 & 0.34 & 0.377 & 0.08 & 14 & 0.44 & 0.38 & 0.43 & 0.417 & 0.06 \\
5 & 0.39 & 0.38 & 0.38 & 0.383 & 0.01 & 15 & 0.38 & 0.37 & 0.37 & 0.373 & 0.01 \\
6 & 0.33 & 0.41 & 0.45 & 0.397 & 0.12 & 16 & 0.31 & 0.43 & 0.38 & 0.373 & 0.12 \\
7 & 0.43 & 0.39 & 0.41 & 0.410 & 0.04 & 17 & 0.39 & 0.49 & 0.35 & 0.410 & 0.14 \\
8 & 0.41 & 0.32 & 0.32 & 0.350 & 0.09 & 18 & 0.43 & 0.36 & 0.38 & 0.390 & 0.07 \\
9 & 0.37 & 0.42 & 0.36 & 0.383 & 0.06 & 19 & 0.40 & 0.45 & 0.32 & 0.390 & 0.13 \\
10 & 0.26 & 0.42 & 0.32 & 0.333 & 0.16 & 20 & 0.40 & 0.40 & 0.32 & 0.373 & 0.08 \\
\midrule
\multicolumn{12}{r @{}}{%
$\mean{\mean x} \approx 0.3813
\qquad
\mean R = 0.0835$
} \\
\bottomrule
\end{tabular*}
\end{table}
\end{document}