表中存在意外空间

表中存在意外空间

我尝试在乳胶中创建一个表格,但是,一些列之间的空间非常出乎意料。

这是我的工作示例:

\begin{table}[H]
    \centering
    \begin{tabular}{c c c c c c}
    \hline \hline
    & & The title of my table is long & &  \\ \hline \hline
     Criteria & M$_{1}$&  M$_{2}$ & M$_{3}$& M$_{4}$& M$_{5}$\\
    1 & 1400 & 1450& 300 &3340 & \\ 
    2 & & & & & \\
    3 & & & & & 
    \\ 
    \hline 
    \hline 
    \end{tabular}
    \caption{Caption}
    \label{tab:my_label}
\end{table}

输出如下

如果表格的标题很短那么就没有问题。

请问有什么帮助吗?

答案1

表格的标题被视为第 3 列中的元素。这是一个可能的解决方案:

\documentclass{article}
\begin{document}
\begin{table}
    \centering
    \begin{tabular}{cccccc}
        \hline\hline
        \multicolumn{6}{c}{The title of my table is long}\\ 
        \hline\hline 
        Criteria & $M_1$ & $M_2$ & $M_3$ & $M_4$ & $M_5$ \\ 
        1        & 1400  & 1450  & 300   & 3340  & 0     \\
        2        &       &       &       &       &       \\
        3        &       &       &       &       &       \\
        \hline\hline
    \end{tabular}
    \caption{Caption}
\end{table}
\end{document}

在此处输入图片描述

答案2

正如@DũngVũ 已经指出的那样这个答案,问题的直接原因是您将字符串“我的表格标题很长”分配给了六列表格的第三列。因此,第三列的宽度被设置为显示标题字符串所需的宽度。

解决此问题的一种方法是tabular通过\multicolumn{6}{c}{...}指令让标题字符串跨越环境的所有 6 列。此方法“有效”,但前提是标题字符串的宽度小于其余表格材料的宽度。第二种,在我看来更强大的修复方法是首先认识到标题字符串在结构上是标题的一部分,table并且它不应放在环境中tabular。相反,它应该放在参数中\caption,并且\caption语句应该放在tabular材料的上方而不是下方。

在此过程中,您可能还希望通过将语句替换\hline为由以下代码提供的\toprule\midrule\bottomrule-- 宏来改善表格的“外观”。书签包裹。

以下屏幕截图显示了 3 个表格:(1) OP 的原始方法,(2) 通过使用实现的修复\multicolumn,以及 (3) 通过将标题移出环境tabular(并使用包的线条绘制宏booktabs)实现的修复。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage[skip=0.333\baselineskip]{caption} % optional
\begin{document}

\begin{table}[ht!]  %% OP's original code
    \centering
    \begin{tabular}{c c c c c c}
    \hline \hline
    & & The title of my table is long & &  \\ 
    \hline \hline
    Criteria & M$_{1}$ & M$_{2}$ & M$_{3}$& M$_{4}$& M$_{5}$\\
    1 & 1400 & 1450& 300 &3340 & 4400  \\ 
    2 & & & & & \\
    3 & & & & & \\ 
    \hline \hline 
    \end{tabular}
    \caption{Caption}
    \label{tab:my_label_1}
\end{table}

\begin{table}[h]  %% using \multicolumn to fix the spacing issue
    \centering
    \begin{tabular}{c c c c c c}
    \hline \hline
    \multicolumn{6}{c}{The title of my table is long}\\ 
    \hline \hline
    Criteria & M$_{1}$&  M$_{2}$ & M$_{3}$& M$_{4}$& M$_{5}$\\
    1 & 1400 & 1450& 300 &3340 & 4400  \\ 
    2 & & & & & \\
    3 & & & & & \\ 
    \hline \hline 
    \end{tabular}
    \caption{Caption}
    \label{tab:my_label_2}
\end{table}

\begin{table}[h]  %% using \caption and the macros of the booktabs package
    \caption{The title of my table}
    \label{tab:my_label_3}
    \centering
    \begin{tabular}{@{} *{6}{c} @{}}
    \toprule
    Criteria & M\textsubscript{1}&  M\textsubscript{2} & M\textsubscript{3}& M\textsubscript{4}& M\textsubscript{5}\\
    \midrule
    1 & 1400 & 1450& 300 &3340 & 4400  \\ 
    2 & & & & & \\
    3 & & & & & \\ 
    \bottomrule
    \end{tabular}
\end{table}
\end{document}

相关内容