![tabularx 表格中的 \hbox 未满(不良率 10000)](https://linux22.com/image/472983/tabularx%20%E8%A1%A8%E6%A0%BC%E4%B8%AD%E7%9A%84%20%5Chbox%20%E6%9C%AA%E6%BB%A1%EF%BC%88%E4%B8%8D%E8%89%AF%E7%8E%87%2010000%EF%BC%89.png)
我在使用下面提供的代码时遇到了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}
随便选一个吧。我推荐最后一个。