表格长度设置 latex \hbox 溢出

表格长度设置 latex \hbox 溢出

我有这个 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 不会破坏它,因此您必须找到补救措施:可能在后面添加一个零空格,\_以便可以找到断点。

相关内容