以双列格式使用 parbox

以双列格式使用 parbox

我正在尝试将两个表格以两列格式并排放置。但我收到了错误

! 缺失数字,视为零。l l.460 \end{tabular*} }

不幸的是,它没有告诉我哪里出了问题。有人能帮我修复下面的代码吗

\begin{table*}
    \setlength{\tabcolsep}{2.5pt}
    \parbox{0.5\textwidth}{
        \centering
        \caption{Data1}
        \label{tab:res1}
        \begin{tabular*}{l*{6}{c}}
            \hline \\ 
            Baseline &   SMC &  RMC  &  PMF  &  MOD  &  SCA  & RSR  \\
            \hline \\ 
            M1     & 0.641 & 0.772 & 0.333 & 0.314 & 0.305 & 0.356 \\
            M2      & 0.301 & 0.372 & 0.853 & 0.814 & 0.805 & 0.846 \\
            \hline
        \end{tabular*}   }
    \hfill
    \parbox{0.5\textwidth}{
    \centering
    \caption{Data 2}
    \label{tab:res2}
    \begin{tabular*}{*{6}{c}}
        \hline \\ 
          SMC  &  RMC  &  PMF  &  MOD  &  SCA  &  RSR \\
        \hline \\ %[-1.55ex]
         0.131 & 0.272 & 0.663 & 0.634 & 0.635 & 0.736 \\
         0.311 & 0.362 & 0.853 & 0.564 & 0.555 & 0.866 \\
        \hline
    \end{tabular*}   }
\end{table*}

答案1

您的问题已通过评论解决,但我会按照以下方式写出您的表格:

\documentclass[twocolumn]{article}

\usepackage{booktabs, tabularx}
\usepackage[skip=1ex]{caption}
\usepackage{siunitx}

\usepackage{lipsum}

\begin{document}
    \begin{table*}
    \setlength\tabcolsep{5pt}
\begin{tabularx}{\linewidth}{@{}*{2}{>{\centering\arraybackslash}X}@{}}
    \caption{Data1}
    \label{tab:res1}
\begin{tabular}{l*{6}{c}}
    \toprule
Baseline &   SMC &  RMC  &  PMF  &  MOD  &  SCA  & RSR  \\
    \midrule
M1      & 0.641 & 0.772 & 0.333 & 0.314 & 0.305 & 0.356 \\
M2      & 0.301 & 0.372 & 0.853 & 0.814 & 0.805 & 0.846 \\
    \bottomrule
\end{tabular}
    &
    \caption{Data 2}
    \label{tab:res2}
\begin{tabular}{*{6}{c}}
    \toprule
SMC     &  RMC  &  PMF  &  MOD  &  SCA  &  RSR \\
    \midrule
0.131   & 0.272 & 0.663 & 0.634 & 0.635 & 0.736 \\
0.311   & 0.362 & 0.853 & 0.564 & 0.555 & 0.866 \\
    \bottomrule
\end{tabular}
    \end{tabularx}
\end{table*}

\begin{table*}
    \sisetup{table-format=1.3}
    \setlength\tabcolsep{5pt}
\begin{tabularx}{\linewidth}{@{}*{2}{>{\centering\arraybackslash}X}@{}}
    \caption{Data1}
    \label{tab:res1}
\begin{tabular}{l*{6}{S}}
    \toprule
Baseline & {SMC}& {RMC} & {PMF} & {MOD} & {SCA} & {RSR}  \\
    \midrule
M1      & 0.641 & 0.772 & 0.333 & 0.314 & 0.305 & 0.356 \\
M2      & 0.301 & 0.372 & 0.853 & 0.814 & 0.805 & 0.846 \\
    \bottomrule
\end{tabular}
    &
    \caption{Data 2}
    \label{tab:res2}
\begin{tabular}{*{6}{S}}
    \toprule
{SMC}   & {RMC} & {PMF} & {MOD} & {SCA} & {RSR} \\
    \midrule
0.131   & 0.272 & 0.663 & 0.634 & 0.635 & 0.736 \\
0.311   & 0.362 & 0.853 & 0.564 & 0.555 & 0.866 \\
    \bottomrule
\end{tabular}
    \end{tabularx}
\end{table*}
\end{document}

在此处输入图片描述

第二个示例是使用包中S的列siunitx将数字在小数点对齐。由于表中的所有数字都具有相同的位数,因此表格没有差异。但是,如果您有例如带有两位整数部分的数字,它可能会变得方便。然后您需要将 S 列格式更改为table-format=2.3(其中2是整数位数和3小数位数)。

相关内容