26

The line \sbox{\mybox}{\parbox{2cm}{\lipsum[1]}} causes some of the above messages (59):

\documentclass{article}

\usepackage{lipsum}

\newsavebox{\mybox}

\begin{document}

\sbox{\mybox}{\parbox{2cm}{\lipsum[1]}}

\end{document}

Do I need to fix them? If not: is it possible disable these messages for that line?

masu
  • 6,571
  • I don't think you should suppress them - it is valuable information. Perhaps your box contents should be {\raggedright\lipsum[1]} instead. – Andrew Swann Nov 12 '13 at 13:58
  • @AndrewSwann Why is it useful if I don't have a \usebox? The effect is the same with \raggedright. – masu Nov 12 '13 at 14:00
  • With \raggedright I get not underfull messages. Can you tell us why would you want to save this material if you are not going to issue a \usebox. – Andrew Swann Nov 12 '13 at 14:03
  • 2
    I don't know what you are trying to do, but you can use \hbadness=10000 before \sbox to avoid the warnings... – karlkoeller Nov 12 '13 at 14:09
  • @AndrewSwann I wanted to use the height for calculations, as egreg said it in his answer – masu Nov 12 '13 at 17:16
  • @masu I had no time at that moment to make it an answer. egreg has explained it better than I could have done, so thanks anyway. – karlkoeller Nov 13 '13 at 05:52

1 Answers1

30

TeX displays such warnings when the badness is above a threshold contained in the parameters \hbadness and \vbadness. You're interested in the first one:

\documentclass{article}

\usepackage{lipsum}

\newsavebox{\mybox}

\begin{document}

\sbox{\mybox}{\hbadness=10000 \parbox{2cm}{\lipsum[1]}}

\end{document}

Since the badness can never be above 10000, this effectively suppresses all Underfull \hbox messages. There might still be Overfull \hbox messages, which are suppressed by adding \hfuzz=\maxdimen inside the \parbox.

If the constructed box is used only for measuring it, these actions can be justified. Since the change to the parameters happens in a group, the values will automatically be restored at the end.

egreg
  • 1,121,712
  • May I bother with another question? I don't think that opening a new question is the right way. Are there pitfalls in using \hbadness=10000 inside \resizebox? Can I lose anything useful there? I don't really see the point of an underfull \hbox message inside a resizebox. – masu Nov 12 '13 at 19:31
  • 1
    @masu If you want to use the box, then messages are useful. If you only want to test whether it fits, then they are only distracting; but for the final setting I'd leave the normal value of \hbadness so as to know whether the typesetting is good or not. – egreg Nov 12 '13 at 20:20
  • I use the resizebox without a savebox. But I couldn't figure out how can a warning be useful inside resizebox. Or is it the error of resizebox itself even if \hbadness=10000 is specified inside it? – masu Nov 12 '13 at 20:23
  • @masu I don't understand what you're talking about. If a box is badly typeset it remains such also if resized. – egreg Nov 12 '13 at 20:40
  • By the way, I used your answer to construct this. – masu Nov 12 '13 at 20:55