我在使用下面提供的代码时遇到了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}
随便选一个吧。我推荐最后一个。