Today’s xkcd strip is hilarious, all the more so because it lampshades one of the biggest annoyances I’ve had with e-books. I am annoyed, not without justification, with full justification.
The thing about full justification is that it’s theoretically supposed to make it easier to read stuff when your eye can tell that everything begins at the same width and ends at the same width. And in printed books, where the margins are fairly wide and the typesetters have full control over hyphenation and kerning, it works fine. Take any book off your shelf and open it, and the odds are very good you won’t even notice some lines have fewer characters than others.
With e-books, it’s not so simple, for a number of reasons. Most e-reading apps simply can’t kern line by line, which means the only tool they’re left with is adjusting spaces between the words. And since screens are frequently smaller than the printed page—or at least narrower—there’s less room to average out the gaps left by really long words. (Though it’s not as much of a problem on the iPad Mini, with its wider portrait screen.)
It usually ends up with some lines that have really huge gaps between words, which looks awkward and always pulls me out of the story. I end up turning justification off when the app I’m using lets me, or using Calibre to recompile e-books I download to turn off full justification when I can’t. I’d rather have a ragged right margin than all those rivers of whitespace in the middle of what I’m reading.
As xkcd demonstrates, there isn’t any really good way to do full justification with narrow screens. The strip takes an extreme example by using a narrow column and a really long word in the next line, but I’ve seen justification by letter spacing show up in magazines such as TV Guide that had articles with narrow columns and occasional long words. Hyphenation helps, but sometimes even that can be distracting.
Given how often real-life coders take inspiration from xkcd, I’m waiting for someone to write an e-reading app that implements full justification using variable-length snakes. I’m sure it will happen. Who knows, it might even be useful.