TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Often, TeX outputs underfull hbox and vbox warnings when running and in the generated log file. What are these and how can I get rid of them?

share|improve this question
See also the very related question What does “overfull hbox” mean?. Maybe these questions can be merged, someday. – ShreevatsaR Jul 26 '10 at 20:41
up vote 70 down vote accepted

TeX puts elements (letters, lines, paragraphs, pictures,...) in boxes and joins them together on pages using glue (put between them) that can stretch, e.g., to make sure that lines are justified, or that pages are filled to their specified height. In the first example, the line is put in a hbox (horizontal box, or box with material arranged horizontally with respect to one another, words in this case), in the second, the page is put in a vbox (vertical box, or box with material arranged vertically with respect to one another, usually paragraphs and displayed equations in this case).

Such a box is underfull in case TeX has to stretch the glue more than what is specified to be (aestethically) acceptable. In that case there will, e.g., be much whitespace between words of a line (hbox case) or extra whitespace between paragraphs (vbox case).

To avoid underfull hboxes (and also overfull ones), one can, in LaTeX, use the microtype package, which, when used in pdflatex mode (directly generating a .pdf file, and not a .dvi one), can stretch letters as well, which allows TeX to get acceptable whitespace in lines more often.

Another, manual route is to reformulate sentences and paragraphs, or add explicit hyphenation (e.g., hyphen\-ation) to get better linebreaks. One can sometimes even fix bad pagebreaks (overfull vboxes) in this way as well, by shortening or lengthening paragraphs with one line.

share|improve this answer
BTW, you can also explicit hyphenation by adding \hyphenation{con-sti-tu-tion-al} to the preamble, as long as you use the fontenc package (with option T1, I believe). This is useful if you don't want to bother trying to guess where LaTeX should break the word in order to adjust the line width. – Waldir Leoncio Aug 1 '14 at 21:06
@WaldirLeoncio The point here is to do hyphenation explicitly to fix a local problem, so your comment is off-topic, albeit correct. – equaeghe Aug 2 '14 at 21:30

An underfull hbox means LaTeX couldn't space the line wide enough to fill the entire width of the page, without increasing word spacing beyond the allowed maximum; the opposite is an overfull hbox, where a line couldn't be broken and extends past the edge of the printable area. Usually it happens if you forced a linebreak yourself (with \\), so if you avoid doing that this should be pretty rare (other causes are weird tabular environments or forced blank lines)

share|improve this answer
I would add that the overfull/underfull vboxes occur when TeX cannot break the page at the right place. This almost never happens if you have enough text on the page, but with lots of tabulars or equation arrays they can appear. – finrod Jul 26 '10 at 20:49
Do I need a package for installation to get rid of this? – Rishika May 12 '15 at 9:34

Typically \\ will cause this because you have a blank line with no content (where the TeX algorithm expects content). You could get rid of those and space correctly (if you want extra space between paragraphs, use, e.g., \setlength{\parskip}{6pt}). It also can occur when you have a really long object in a paragraph that is not enough to fill it completely (hence "underfull"). Lastly, in some cases, if you have really long words, the TeX algorithm has a difficult time finding a proper way to justify the paragraph without having underfull boxes (the text doesn't meet the very end of the line). You can avoid this by using some shorter words or rewriting some stuff to accommodate the algorithm.

share|improve this answer
Using \setlength{\parskip}{...} is great if you want extra space between every paragraph. If you want some extra space to appear in one spot but not all the time, you can also use \vspace{...}. – DGrady Feb 9 '13 at 0:03
In addition to what @DGrady said, you can use \bigskip or \medskip which are basically \vspace{predefined_val} – shailenTJ Aug 21 '14 at 15:17

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.