表格中的数字超出范围

表格中的数字超出范围

我使用“elsarticle”类,我想创建一个表,但最后一列超出了表的边界。

 \documentclass[review]{elsarticle}

 \usepackage{graphicx}
 \usepackage{tabularx,booktabs}

\begin{table*}
    \caption{some words }
        \label{table1}
    \begin{tabularx}{\textwidth}{@{}l*{12}{C}c@{}}
        \toprule
        Datasets     & a & b & c & d & e & f & g& h & i & j &k & l \\ 
        \midrule
        a   & 0.7291      & 0.0.7499          & 0.7499   & 0.7326  & 0.7499    & 0.7499   & 0.4726    & 0.7499     & 0.7499    & 0.7499 & 0.7499 & 0.7499\\ 
        
        \bottomrule
    \end{tabularx}
    \end{table*}

如何修复。

与@Zarko 的第一个答案相关的错误:

答案1

如果您的文档只有一列,那么可能的解决方案是将数字四舍五入为三位小数并使用\small字体大小:

编辑:

  • 在 MWE(最小工作示例)中使用S列(在\siunitx添加到 MWE 的包中定义),这允许对单元格中的数字进行舍入。有关更多详细信息,\siunitx您可以在其文档中找到,该文档是 LaTeX 安装的一部分,也可以在 CTAN 上找到,例如这里
\documentclass[review]{elsarticle}
\usepackage{booktabs}
\usepackage{siunitx}            % added package, used for S columns
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}

\begin{document}
    \begin{table}
\caption{some words}
\label{table1}
    \small
    \setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} 
                            l
                      *{12}{S[round-mode=places,
                              round-precision=3,
                              table-format=1.4]} }
    \toprule
Datasets    
    & {a} & {b} & {c} & {d} & {e} & {f} & {g} & {h} & {i} & {j} & {k} & {l}     \\
    \midrule
a   & 0.7291    & 0.7499    & 0.7499    & 0.7326    & 0.7499    & 0.7499   
    & 0.4726    & 0.7499    & 0.7499    & 0.7499    & 0.7499    & 0.7499        \\
    \bottomrule
\end{tabular}
    \end{table}    
\lipsum[1]
\end{document}

在此处输入图片描述

(红线表示页面布局)

  • 如果您认为表格中的所有小数都必不可少,那么解决方案可能是使用更小的字体大小,并将\footnotesize第一列标题中的文本分成两行。在这种情况下,使用包是有意义的makecell
\documentclass[review]{elsarticle}
\usepackage{graphicx}
\usepackage{booktabs, 
            makecell}   % added package
\usepackage{siunitx}    % added package
\usepackage{lipsum}

\begin{document}
    \begin{table}
\caption{some words}
\label{table1}
    \footnotesize
    \setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}
                            l
                      *{12}{S[table-format=1.4]} }
    \toprule
\makecell[l]{Data\\[-2ex] sets}
    & {a} & {b} & {c} & {d} & {e} & {f} & {g} & {h} & {i} & {j} & {k} & {l}     \\
    \midrule
a   & 0.7291    & 0.7499    & 0.7499    & 0.7326    & 0.7499    & 0.7499
    & 0.4726    & 0.7499    & 0.7499    & 0.7499    & 0.7499    & 0.7499        \\
    \bottomrule
\end{tabular*}
    \end{table}
\lipsum[1]
\end{document}

在此处输入图片描述

但是,在您的 MWE 中,您使用table*浮点数,浮点数用于两列文档。在这种情况下,使用makecell 包是有意义的

\documentclass[review, twocolumn]{elsarticle}
\usepackage{graphicx}
\usepackage{tabularx,booktabs}
\usepackage{siunitx}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}

\begin{document}
    \begin{table*}
\caption{some words}
\label{table1}
    \setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} l*{12}{S[table-format=1.4]} }
    \toprule
Datasets    
    & {a} & {b} & {c} & {d} & {e} & {f} & {g} & {h} & {i} & {j} & {k} & {l}     \\
    \midrule
a   & 0.7291    & 0.7499    & 0.7499    & 0.7326    & 0.7499    & 0.7499   
    & 0.4726    & 0.7499    & 0.7499    & 0.7499    & 0.7499    & 0.7499        \\
    \bottomrule
\end{tabular*}
    \end{table*}    
\lipsum
\end{document}

在此处输入图片描述

相关内容