Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

How to avoid using \sloppy document-wide to fix overfull \hbox problems?

overfull \hbox

This is my minimal working example.

\documentclass[12pt]{report}
 \usepackage[english,ngerman]{babel}
 \usepackage[a4paper,inner=25mm,outer=25mm,top=30mm,bottom=30mm]{geometry}
 \usepackage{lipsum}

 \begin{document}
  \lipsum[2]
  Have a look at this URL ignoring the page margin within the text flow \textit{example.com/donc\_oe/longurl} lorem ipsum.\par
  The very strange plugin Java-JDT (\textit{en. Java Development Toolkit}) "`Plugin-Entwicklungsumgebung"' -- what's wrong with this german word?\par
  \lipsum[2]
 \end{document}

With \sloppy it looks better.

enter image description here

But I got told it's (obviously) better to avoid using it document-wide. What else can I do?

share|improve this question
1  
For the first one, you could use \url from the url package. –  Gonzalo Medina Jun 8 '12 at 21:21
    
You should be saying \usepackage[ngerman]{babel}; so input the offending long word as Plugin"-Entwicklungsumgebung, using the "- shorthand: a hyphen allowing hyphenation in the rest of the word. –  egreg Jun 8 '12 at 21:41
1  
Nobody suggests microtype? That won't help you there but it is always good to consider when typing text –  topskip Jun 8 '12 at 22:06
1  
The word "Plugin-Entwicklungsumgebung" should be written as Plugin"=Entwicklungsumgebung –  topskip Jun 8 '12 at 22:27

3 Answers 3

up vote 10 down vote accepted
  • When typesetting URLs, use the url package, since it provides adequate line-breaking support. If needed, you can change the typeface it uses in its display (default is \ttfamily).

  • Words not covered by default hyphenation (or that provided by babel can be incorporated in an ad-hoc way using \- or globally using \hypenation{<this-is-an-awk-ward-ly-long-word>}.

enter image description here

\documentclass[12pt]{report}
\usepackage[english,ngerman]{babel}% http://ctan.org/pkg/babel
\usepackage[a4paper,inner=25mm,outer=25mm,top=30mm,bottom=30mm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{url}% http://ctan.org/pkg/url
\begin{document}
\lipsum[2]
Have a look at this URL ignoring the page margin within the text flow \url{example.com/donc_oe/longurl} lorem ipsum.\par
The very strange plugin Java-JDT (\textit{en. Java Development Toolkit}) "`Plugin-Ent\-wick\-lungs\-umge\-bung"' -- what's wrong with this German word?\par
\lipsum[2]
\end{document}
share|improve this answer
1  
If you write Plugin"=Entwicklungsumgebung the second problem should go away by itself. It is always good to write "= instead of - on long German words with -. –  topskip Jun 8 '12 at 22:32

another tactic, after fixing urls as described by Werner, is to wrap the environment \begin{sloppypar} ... \end{sloppypar} around just those paragraphs that still have problems.

this does much the same thing as setting \emergencystretch, with preset values.

share|improve this answer

Also, you might want to set

\setlength{\emergencystretch}{2pt}

or something similar. Explanation: if TeX can't typeset a paragraph without bad boxes, and \emergencystretch is nonzero, it tries once again, but this time increasing the stretchability of the space by the value of this parameter.

share|improve this answer

Your Answer

 
discard

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.