我怎样才能在 A4 纸上制作这个表格

我怎样才能在 A4 纸上制作这个表格

在此处输入图片描述

我目前拥有的代码是:

\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

在此处输入图片描述

相关内容