![我怎样才能在 A4 纸上制作这个表格](https://linux22.com/image/462640/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E5%9C%A8%20A4%20%E7%BA%B8%E4%B8%8A%E5%88%B6%E4%BD%9C%E8%BF%99%E4%B8%AA%E8%A1%A8%E6%A0%BC.png)
我目前拥有的代码是:
\documentclass{article}
\usepackage{geometry}
\geometry{a4paper, % note: 'a4paper', not 'a3paper'
showframe, % omit 'showframe' option in real document
%total={170mm,300mm},
%left=20mm, top=20mm,
margin=20mm
}
\usepackage{siunitx,booktabs}
\newcolumntype{T}[1]{S[table-format=#1]}
\begin{document}
\begin{center}
\sisetup{round-mode=places,round-precision=2}
\begin{tabular}{ @{}
T{1.2}
*{5}{T{2.2}}
S[table-format=2.3,round-precision=3]
S[table-format=1.3,round-precision=2] X @{}}
\toprule
{Mass/ $m$, \unit{\kilo\gram}} &
\multicolumn{6}{c}{Frequency/ $f$, \unit{\hertz} $\pm 0.001$} & {\shortstack{uncertainty in \\ average value,$f$ /\unit{\hertz}}} & {\shortstack{Tension \\/ $T$, \unit{\newton}}}& {$\Delta$T/ $T$, \unit{\newton}} \\
\cmidrule(lr){2-7}
& {Trial 1} & {Trial 2} & {Trial 3} & {Trial 4} & {Trial 5} & {Average} \\
\midrule
0.050 & 16.200 & 16.630 & 16.560 & 16.840 & 16.550 & 16.556 & 0.32 & 0.491 & 0.098 \\
0.100 & 23.650 & 22.800 & 22.810 & 22.970 & 22.700 & 22.986 &
0.48 & 0.981 & 0.098\\
0.150 & 28.060 & 27.650 & 27.600 & 27.470 & 27.440 & 26.644 &
0.31 & 1.472 & 0.098\\
0.200 & 34.300 & 32.030 & 32.340 & 32.380 & 32.030 & 32.616 & 1.14 & 1.962 & 0.098\\
0.250 & 35.500 & 35.480 & 35.420 & 35.520 & 35.350 & 35.454 & 0.09 & 2.453 & 0.098\\
0.300 & 38.780 & 38.820 & 38.580 & 39.000 & 38.790 & 38.794 & 0.21 & 2.943 & 0.098\\
0.350 & 41.800 & 42.050 & 41.750 & 41.980 & 41.950 & 41.906 & 0.15 & 3.434 & 0.098\\
0.400 & 44.400 & 44.760 & 44.670 & 45.020 & 44.900 & 44.750 & 0.31 & 3.924 & 0.098\\
0.450 & 47.450 & 47.550 & 47.520 & 47.500 & 47.650 & 47.534 & 0.10 & 4.415 & 0.098\\
0.500 & 50.350 & 50.190 & 49.840 & 50.170 & 49.900 & 50.090 & 0.25 & 4.905 & 0.098\\
\bottomrule
\end{tabular}
\end{center}
我怎样才能实现这个目标?
答案1
- 对于最后一列
X
,您使用未定义的列(您未加载tabularx
包。 - 定义表列的数量(9)和使用的列数(10)不匹配,补救措施是在其定义中添加一列。
- 为了更好地间隔文本块中的表格,请在多行单元格中写入合理的正弦列标题(第一个和最后一个三个):
\documentclass{article}
\usepackage{geometry}
\geometry{a4paper, % note: 'a4paper', not 'a3paper'
showframe, % omit 'showframe' option in real document
%total={170mm,300mm},
%left=20mm, top=20mm,
margin=20mm
}
\usepackage{booktabs, siunitx}
\newcolumntype{T}[1]{S[table-format=#1]}
\usepackage{multirow}
\begin{document}
\begin{center}
\sisetup{round-mode=places,round-precision=2}
\begin{tabular}{ @{}
T{1.2}
*{5}{T{2.2}}
S[table-format=2.3,round-precision=3]
S[table-format=1.3,round-precision=2]
c
c % <--- added
@{}}
\toprule
{\multirow{2}{*}{\shortstack{Mass $m$\\ \unit{\kilo\gram}}}}
& \multicolumn{6}{c}{Frequency $f$, \unit{\hertz} $\pm 0.001$}
& {\multirow{2}{*}{\shortstack{uncertainty\\[-2pt] in average\\[-2pt] value,$f$ \unit{\hertz}}}}
& {\multirow{2}{*}{\shortstack{Tension $T$\\ \unit{\newton}}}}
& {\multirow{2}{*}{\shortstack{$\Delta T/T$,\\ \unit{\newton}}}} \\
\cmidrule(lr){2-7}
& {Trial 1}
& {Trial 2}
& {Trial 3}
& {Trial 4}
& {Trial 5}
& {Average}
& & & \\ % added missed ampersands
\midrule
0.050 & 16.200 & 16.630 & 16.560 & 16.840 & 16.550 & 16.556 & 0.32 & 0.491 & 0.098 \\
0.100 & 23.650 & 22.800 & 22.810 & 22.970 & 22.700 & 22.986 & 0.48 & 0.981 & 0.098 \\
0.150 & 28.060 & 27.650 & 27.600 & 27.470 & 27.440 & 26.644 & 0.31 & 1.472 & 0.098 \\
0.200 & 34.300 & 32.030 & 32.340 & 32.380 & 32.030 & 32.616 & 1.14 & 1.962 & 0.098\\
0.250 & 35.500 & 35.480 & 35.420 & 35.520 & 35.350 & 35.454 & 0.09 & 2.453 & 0.098\\
0.300 & 38.780 & 38.820 & 38.580 & 39.000 & 38.790 & 38.794 & 0.21 & 2.943 & 0.098\\
0.350 & 41.800 & 42.050 & 41.750 & 41.980 & 41.950 & 41.906 & 0.15 & 3.434 & 0.098\\
0.400 & 44.400 & 44.760 & 44.670 & 45.020 & 44.900 & 44.750 & 0.31 & 3.924 & 0.098\\
0.450 & 47.450 & 47.550 & 47.520 & 47.500 & 47.650 & 47.534 & 0.10 & 4.415 & 0.098\\
0.500 & 50.350 & 50.190 & 49.840 & 50.170 & 49.900 & 50.090 & 0.25 & 4.905 & 0.098\\
\bottomrule
\end{tabular}
\end{center}
\end{document}
附录:
- 使用 `tabular* 表格可以更好地在文本中留出空间,
- 由于某些列中的所有数字都具有相同的格式,因此它们也可以在
c
列中很好地对齐(就像现在已经在最后两列中一样),MWE 可以简化为:
\documentclass{article}
\usepackage{geometry}
\geometry{a4paper,
margin=20mm,
showframe,
}
\usepackage{booktabs, multirow, siunitx}
\begin{document}
\begin{center}
\setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{ @{\extracolsep{\fill}} *{10}{c} @{}}
\toprule
\multirow{2}{*}{\shortstack{Mass $m$\\ \unit{\kilo\gram}}}
& \multicolumn{6}{c}{Frequency $f$, \unit{\hertz} $\pm 0.001$}
& \multirow{2}{*}{\shortstack{uncertainty\\[-2pt] in average\\[-2pt] value, $f$ \unit{\hertz}}}
& \multirow{2}{*}{\shortstack{Tension $T$\\ \unit{\newton}}}
& \multirow{2}{*}{\shortstack{$\Delta T/T$,\\ \unit{\newton}}} \\
\cmidrule(lr){2-7}
& Trial 1
& Trial 2
& Trial 3
& Trial 4
& Trial 5
& Average
& & & \\ % added missed ampersands
\midrule
% rest of table body is the same as before