并排放置两个表格时 \hbox 未满

并排放置两个表格时 \hbox 未满

我想从文本宽度的 50% 开始进行正确的表格定位,因此我将 2 个稍小的表格并排放置,并用 ahskip和 a填充hfill以避免过度填充。

\documentclass[a4paper,10pt]{article}

\usepackage{tabularx}

\begin{document}

\section{Tables}

    \begin{tabular*}{.49\textwidth}{ll}
        a & b \\ [.375em]
        c & d
    \end{tabular*} \hskip .01\textwidth
    \begin{tabular*}{.49\textwidth}{ll}
        e & f \\ [.375em]
        g & h
    \end{tabular*} \hfill

\end{document}

然而,这会导致填充不足(在 xelatex 下)。

Underfull \hbox (badness 10000) in alignment at lines 9--12
Underfull \hbox (badness 10000) in alignment at lines 13--16
Underfull \hbox (badness 10000) in paragraph at lines 9--17

如何将这两个表格并排放置而不发出警告?

答案1

首先,having\section会让你忽略缩进。

如果您希望左表格从左边距开始而右表格从中间线开始,则可以使用两个适当大小的框。

\documentclass[a4paper,10pt]{article}

\begin{document}

\noindent
\makebox[.5\textwidth][l]{%
  \begin{tabular}{@{}ll@{}}
  a & b \\ [.375em]
  c & d
  \end{tabular}% <--- don't forget %
}% <--- don't forget %
\makebox[.5\textwidth][l]{%
  \begin{tabular}{@{}ll@{}}
  e & f \\ [.375em]
  g & h
  \end{tabular}% <--- don't forget %
}

% this is to show the center of the text width
\noindent
\rule{.5\textwidth}{0.4pt}%
\makebox[0pt]{\rule{0.4pt}{.5cm}}%
\rule{.5\textwidth}{0.4pt}

\end{document}

在此处输入图片描述

出现该Underfull \hbox消息的主要原因是由于tabular*没有提供灵活的柱间胶。

末尾的\hfill被删除,因为它后面跟着\par,所以它无关紧要。因此,该行最终由以下内容组成

  1. 表格宽度为文本宽度的 0.49;
  2. \end{tabular*}标准的词间间距(和之间的间距\hskip
  3. 粘合文本宽度的 0.01;
  4. 表格宽度为文本宽度的 0.49;
  5. \end{tabular*}标准的单词间距(和之间的间距\hfill)。

当心不需要的空间。

队伍实际上已经满了,所以第二行段落的文字不够完整,因为里面没有任何内容。你可能没有注意到

Overfull \hbox (13.77411pt too wide) in paragraph at lines 9--17

答案2

还有许多其他更好的选择可以避免此类警告,例如,像您所做的tabularx那样在 s 内使用普通的tabularsminipage等等。但是,要了解这些警告的来源,Underfull您需要更仔细地查看您的代码。

对于最后一个Underfull警告,请删除最后的\hfill\hfill应在文本之间使用,而不是在末尾。对于其他两个警告,表格中的文本太短,短于.49\textwidth。为避免这种情况,请添加到表格标题中。最后,不要在两个表格之间使用 ,@{\extracolsep{\fill}}而是使用,它将确保自动填满整个行宽。\hskip .01\textwidth\hfill

\documentclass[a4paper,10pt]{article}
\begin{document}

\section{Tables}

    \begin{tabular*}{.49\textwidth}{l@{\extracolsep{\fill}}l}
        a & b \\ [.375em]
        c & d 
    \end{tabular*} \hfill %\hskip .01\textwidth    
    \begin{tabular*}{.49\textwidth}{l@{\extracolsep{\fill}}l}
        e & f \\ [.375em]
        g & h
    \end{tabular*} 

\end{document}

在此处输入图片描述

答案3

这个问题可以通过使用两个小页面来解决。

\documentclass[a4paper,10pt]{article}

\usepackage{tabularx}

\begin{document}

\section{Tables}

    \begin{tabularx}{.5\textwidth}{ll@{\extracolsep{\fill}}l} % normal
        a & b \\ [.375em]
        c & d
    \end{tabularx}% <-- this is important to avoid overfull
    \begin{tabularx}{.5\textwidth}{@{}ll@{\extracolsep{\fill}}l} % no column separation
        e & f \\ [.375em]
        g & h
    \end{tabularx}

\end{document}

相关内容