我收到此错误并且表无法生成。
\documentclass{IEEEtran}
\usepackage{booktabs, makecell, multirow, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage[figuresright]{rotating}
\setlength{\rotFPtop}{0pt plus 1fil}
\renewcommand{\theadfont}{\footnotesize\bfseries}
\renewcommand\theadgape{}
\usepackage{lipsum} % for dummy text filler
\begin{document}
\begin{table}
\centering
\caption{The consolidated accuracy of the system}
\label{tab:Precision}
\begin{tabular}{ >{\bfseries}c c c c l }
\toprule
\thead{Risk level} &\thead{Precision} & \thead{Recall} & \thead{f1-score} & \thead{Support}\\
\midrule
& High & .95 & .93 & 1.00 & 60\\
\addlinespace
& Medium & .99 & .92 & .93 & 60\\
\addlinespace
& Low & .95 & .99 & .96 & 60\\
\addlinespace
& None & .99 & .95 & 1.00 & 60\\
\bottomrule
\end{tabular}
\end{table}
\lipsum
\end{document}
请帮忙。我也尝试过 tabularx 和 L 的组合,但没有成功。
答案1
该错误表明使用的列数超出了指定值。在您的案例中
\begin{tabular}{ >{\bfseries}c c c c l }
指定五列:四c
列和一l
列。在第一行中:
\thead{Risk level} &\thead{Precision} & \thead{Recall} & \thead{f1-score} & \thead{Support}\\
您确实在使用这五列。但其他所有列,例如:
& High & .95 & .93 & 1.00 & 60\\
使用六列:第一列之前有一列空列&
,其余五列为内容列。
因此,您要么必须再指定一列,要么删除除第一行之外每行的空列。查看内容,恕我直言,删除空列是最好的。此外,我建议对除第一列之外的所有列使用S
包列siunitx
:
\documentclass{IEEEtran}
\usepackage{booktabs,makecell,siunitx}
\renewcommand{\theadfont}{\footnotesize\bfseries}
\usepackage{lipsum} % for dummy text filler
\begin{document}
\begin{table}
\centering
\caption{The consolidated accuracy of the system}
\label{tab:Precision}
\begin{tabular}{>{\bfseries}c*4S}
\toprule
\thead{Risk level} & {\thead{Precision}} & {\thead{Recall}} & {\thead{f1-score}} & {\thead{Support}}\\
\midrule
High & .95 & .93 & 1.00 & 60\\
\addlinespace
Medium & .99 & .92 & .93 & 60\\
\addlinespace
Low & .95 & .99 & .96 & 60\\
\addlinespace
None & .99 & .95 & 1.00 & 60\\
\bottomrule
\end{tabular}
\end{table}
\lipsum
\end{document}
例如,对于最后一列,指定小数可能很有用。siunitx
有关更多信息,请参阅手册。