![表格长度设置 latex \hbox 溢出](https://linux22.com/image/278510/%E8%A1%A8%E6%A0%BC%E9%95%BF%E5%BA%A6%E8%AE%BE%E7%BD%AE%20latex%20%5Chbox%20%E6%BA%A2%E5%87%BA.png)
我有这个 Latex 代码
\begin{table}[!hbp]
\begin{tabular*}{\linewidth}{| m{0.20\linewidth} | m{0.20\linewidth} |
m{0.20\linewidth} | m{0.40\linewidth} |}
\hline
Title & Machine Name & Field Type & Widget \\
\hline
\hline
Title & title & Node module element & (used from the module) \\
\hline
Activity Type & field\_activity\_type & Term reference & Check boxes/radio
buttons \\
\hline
Contact & field\_contact & Link & Link \\
\hline
\end{tabular*}
\caption{Activities field table}
\label{Activities Table}
\end{table}
我正在使用这些包:
\documentclass[11pt, a4paper]{book}
\usepackage{color}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{url}
\usepackage{style}
\usepackage{wrapfig}
\usepackage{tabularx}
\usepackage{array}
\usepackage[innercaption]{sidecap}
我收到了错误
Underfull \vbox (badness 10000) has occured while \output is active []
Underfull \vbox (badness 1694) in paragraph
Underfull \hbox (badness 10000) in paragraph
Overfull \hbox (49.993pt too wide) in alignment
我在这个表中添加了 m{},以避免之前遇到的 Overfull 错误。它与我在这个表中遇到的错误相同:
\begin{table}[!hbp]
\begin{center}
\begin{tabular}{ l | l | l | l }
Title & Machine Name & Field Type & Widget \\
\hline
\hline
Title & title & Node module element & (used from the module) \\
URL path settings & path & Path module element & (used from the
module) \\
Tags & field\_tags & Term reference & Auto-complete term widget
(tagging) \\
\end{tabular}
\end{center}
\caption{Article fields table}
\label{Article table}
\end{table}
这给了我错误:
Overfull \hbox (49.38527pt too wide) in paragraph
我认为表格的尺寸有些问题。我只是不知道如何让它适合文本而不会“抱怨”。据我所知,如果我不设置宽度,表格对于页面来说会太大。如果我设置宽度,文本对于表格来说会太小。
有人有煽动吗?
答案1
超满的 \hbox 意味着存在连字或对齐问题:将行上的最后一个单词移到下一行将使行中的空格比当前限制更宽;将单词保留在行上将使空格小于当前限制,因此单词留在行上,但单词之间保留允许的最小空格,这会使行超出边缘。
如果“超额”单词包含正斜杠,例如“input/output”,则应将其正确排版为“input\slash output”。使用 \slash 与使用“/”字符具有相同的效果,但它可以构成一行的结尾(后面的单词出现在下一行的开头)。“/”字符通常用于单位,例如“mm/year”字符,不应将其拆分为多行。
当未包含 \end{document} 标签和/或将其删除时,也会发出警告。
例子:
水平盒子过满 [101] 段落第 860-861 行的 \hbox 过满(太宽 9.11617pt) []\LY1/brm/m/n/10 Windows,\LY1/brm/m/it/10 参见 \LY1/brm/m/n/10 X Win-
给出警告是为了让您找到代码中导致问题的行(在本例中为 860-861)并修复它。本例中的行长略大于 9pt。所选的连字符点可最小化错误,显示在行尾(Win-)。行号和页码与之前一样。在本例中,9pt 太多了,无法忽略(超过 3mm),需要进行手动更正(例如更改连字符),或者需要更改灵活性设置
答案2
警告 1
Underfull \vbox (badness 10000) has occured while \output is active []
这是指分页期间发生的某些事情,因此它与表格仅有边缘关系;它通常意味着 LaTeX 必须过度拉伸页面,因为下一页中的大对象使得无法输出好的页面。
警告 2
Underfull \vbox (badness 1694) in paragraph
这可能是由于sidecap
,但如果没有更多的信息就很难说(style
您加载的包在这里不可用)。
警告 3
Underfull \hbox (badness 10000) in paragraph
这肯定是由于某个单元格的排版问题造成的,因为窄列的对齐比较困难。
警告 4
Overfull \hbox (49.993pt too wide) in alignment
你的表格太宽;规格
| m{0.20\linewidth} | m{0.20\linewidth} | m{0.20\linewidth} | m{0.40\linewidth} |
要求\linewidth
加上八倍\tabcolsep
(LaTeX 在单元格的两侧插入\tabcolsep
空格)和五倍\arrayrulewidth
;因为参数的正常值是
\tabcolsep=6pt
\arrayrulewidth=0.4pt
计算 6*6+5*0.4 得出 50pt 的盈余,与发现的超额相对应(TeX 使用二进制算术,因此预计会出现一些舍入误差)。
calc
通过装载包裹并考虑到额外的空间,你会更幸运:
\usepackage{calc}
并在文件中,
\begin{tabular}{
|
>{\raggedright}m{0.2\linewidth-2\tabcolsep-\arrayrulewidth}|
>{\raggedright}m{0.2\linewidth-2\tabcolsep-\arrayrulewidth}|
>{\raggedright}m{0.2\linewidth-2\tabcolsep-\arrayrulewidth}|
>{\raggedright\arraybackslash}m{0.4\linewidth-2\tabcolsep-2\arrayrulewidth}|
}
注意tabular
而不是tabular*
(仅当您添加可伸缩的列间空间时才有意义)。
当然,它field\_activity\_type
永远无法容纳文本宽度的五分之一;TeX 不会破坏它,因此您必须找到补救措施:可能在后面添加一个零空格,\_
以便可以找到断点。