我在处理以下文档时遇到了问题,pdflatexUnderfull \hbox (badness 10000) in alignment at lines 3--7
在这个示例中不断发出抱怨,但原始文档中的更多行却没有出现问题。
我已读过它与代码有关\\
,但据我所知,它是在表格上下文中完成一行的方式,如果我删除它们,它就不会编译。
\documentclass{article}
\begin{document}
\begin{tabular*}{0.9\textwidth}{l}
\hline
Test \\
\hline
\end{tabular*}
\end{document}
答案1
LaTeX 本质上是在告诉你,你想要一个\textwidth
有大小的表格,但只提供 4 个字符长的内容。也许下面的例子显示了问题所在:
\begin{tabular*}{0.9\textwidth}{|l|}
\hline
Test \\
\hline
\end{tabular*}
这产生了
这通常不是预期的结果。解决此问题的最简单方法是使用tabularx
同名包中的环境并使用X
列类型(这会增加填充空间)。
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{0.9\textwidth}{|X|}
\hline
Test\\
\hline
\end{tabularx}
\end{document}
您的示例没有编译的原因\\
是\hline
必须将其放在行的开头。删除两者\\
后,以下\hline
代码可以编译,但会出现相同的问题。
答案2
这是你使用 的方式tabular*
。只有一列的带星号的版本是没有意义的。在这种情况下,应该使用带有 -column 说明符的无星号版本p
。如果至少有两列,tabular*
你就不会得到未满的框。
\documentclass{article}
\begin{document}
\begin{tabular*}{0.9\textwidth}{l@{\extracolsep{\fill}}r}\hline
Test & Test\\\hline
\end{tabular*}
\bigskip
\begin{tabular}{p{0.9\textwidth}}\hline
Test \\\hline
\end{tabular}
\end{document}