我想从文本宽度的 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
,所以它无关紧要。因此,该行最终由以下内容组成
- 表格宽度为文本宽度的 0.49;
\end{tabular*}
标准的词间间距(和之间的间距\hskip
;- 粘合文本宽度的 0.01;
- 表格宽度为文本宽度的 0.49;
\end{tabular*}
标准的单词间距(和之间的间距\hfill
)。
当心不需要的空间。
队伍实际上已经满了,所以第二行段落的文字不够完整,因为里面没有任何内容。你可能没有注意到
Overfull \hbox (13.77411pt too wide) in paragraph at lines 9--17
答案2
还有许多其他更好的选择可以避免此类警告,例如,像您所做的tabularx
那样在 s 内使用普通的tabular
sminipage
等等。但是,要了解这些警告的来源,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}