[Tex/LaTex] smarter hyphenation for narrow columns

hyphenationline-breakingtypography

I know how to turn off hyphenation via \nohyphens{.....} (from hyphenat). But what I'd really like would be to hyphenate smartly. What I mean by this should hopefully be made clear by the following example.

On the left is a piece of text from a column in a table, rendered with the \nohyphens{...} command. This leaves a lot of open white space. On the right is the same text typeset by vanilla XeLaTeX. As you can see, it still leaves a big white space in the middle of the text, and it also introduces the rather strange hyphenation, "or-phaning", instead of, for example, the more natural "cor-rections".
No hyphenation at all Default behavior

Here is a smarter version that is made by me introducing "cor-rections" into the source code:

some by hand tweaking

To my eye at least, this seems much better than either of the versions above.

So the basic question is: Could I get LaTeX to do this for me automatically, for example by specifying the longest acceptable inter-word whitespace?

PS. Another more complex solution would be to specify a "target width" for the columns in my table, e.g. .25\textwidth and then have the system optimize to produce a table that brings me as close to my specified whitespace score and table width as possible, while minimizing the number of hyphenated words… but I don't know if LaTeX can do this sort of dynamic optimization in several variables! Here's one last image where I have gotten rid of the hyphenation entirely, by moving to .27\textwidth for columns. This seems to be the most readable version yet.

enter image description here

Best Answer

When trying to typeset text in very narrow measures, it's sometimes best (least worst?!) to use the \sloppy directive, as is done in the following example.

It can also be helpful in such situations to set \righthyphenmin2. (For English-language texts, the default value of this parameter is 3.)

enter image description here

\documentclass[12pt,letterpaper]{article}
\usepackage[showframe,margin=3.38in]{geometry} 
  % \textwidth = 8.5"-2*3.38" = 1.74"
\frenchspacing
\righthyphenmin2
\sloppy
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\begin{document}
\noindent
Quality control is handled with corrections and the ``orphaning'' mechanism in case 
of nonresponsive authors. Some articles are world-writeable, as in the wiki model.
\end{document}
Related Question