tabularx 表格中的 \hbox 未满(不良率 10000)

tabularx 表格中的 \hbox 未满(不良率 10000)

我在使用下面提供的代码时遇到了Underfull \hbox (badness 10000)错误。通过测试代码,我注意到当将第一列减少到每个单元格一个单词时错误就会消失。但是,我需要在第一列单元格中有多个单词。你能解释一下这个问题的根本原因吗?

\documentclass[12pt, letterpaper]{article}
\usepackage{tabularx}

\begin{document}
\begin{table}[htbp]
    \begin{tabularx}{\textwidth}{XXXX}
        \hline
        Dataset (Year)      & Image size & Bands & Class Number\\ 
        \hline
        Indian Pines (1992) & 145 × 145  & 200   & 16\\
        \hline
    \end{tabularx}
\end{table}             
\end{document}
    

答案1

您可以添加\raggedright第一列(以及\centering其他三列),但要留出足够的空白。

我不认为等宽的列会增加表格的清晰度,因此我提出了另外两种实现方式:一种是将表格扩展到文本宽度,最后一种是将表格设置为其自然宽度。

\documentclass[12pt, letterpaper]{article}
\usepackage{tabularx,booktabs}

\begin{document}

\begin{table}[htbp]

\begin{tabularx}{\textwidth}{
  @{}
  >{\raggedright}X
  >{\centering}X
  >{\centering}X
  >{\centering\arraybackslash}X
}
\toprule
Dataset (Year)      & Image size & Bands & Class Number \\
\midrule
Indian Pines (1992) & 145 × 145  & 200   & 16 \\
\bottomrule
\end{tabularx}

\caption{This is with \texttt{tabularx}}

\end{table}

\begin{table}[htbp]

\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l
  c
  c
  c
  @{}
}
\toprule
Dataset (Year)      & Image size & Bands & Class Number \\
\midrule
Indian Pines (1992) & 145 × 145  & 200   & 16 \\
\bottomrule
\end{tabular*}

\caption{This is with \texttt{tabular*}}

\end{table}

\begin{table}[htbp!]
\centering

\begin{tabular}{
  @{}
  l
  c
  c
  c
  @{}
}
\toprule
Dataset (Year)      & Image size & Bands & Class Number \\
\midrule
Indian Pines (1992) & 145 × 145  & 200   & 16 \\
\bottomrule
\end{tabular}

\caption{This is at its natural width}

\end{table}

\end{document}

随便选一个吧。我推荐最后一个。

在此处输入图片描述

相关内容