If you’ve been paying attention lately you’ve probably noticed the raging dispute concerning how many spaces are appropriate at the end of a sentence. If you learned to type on an actual typewriter you were taught the hard and fast rule that the correct answer is two. If you’re a typography geek you almost certainly believe—equally strongly—that the correct answer is one.1
The typography geeks claim that using two spaces evolved because of monospaced typewriter script but that it doesn’t make any sense with proportional fonts and that, in fact, typographers have never adhered to the two space rule. Most people appear to accept that explanation even if they insist on two spaces out of a long ingrained habit.
You’d think that would be the end of it but the two-space partisans have pushed back challenging the conventional history and claiming that the one space rule was all about publishers trying to save some paper. According to this telling of the story, the real historical practice was to have slightly larger spaces between sentences and that the one space rule is less than 60 years old.
As it turns out, the third way actually exists. In the Troff typesetting system it’s traditional in preparing the input to end each sentence with a period followed by a newline. In Groff, this allows one to specify how much space to put between sentences. For example, both my books were typeset with 1.5 spaces between sentences. If the production people had complained too loudly (they really do like one space), I could have simply adjusted a single parameter to get the desired spacing. Thus, at least in some circumstances, the third way is the best way.
Even these conventions are not as rigid as some believe. See the Wikipedia sentence spacing article on the history of sentence spacing practice. The French, for example, favored a single space even in typewritten text and up until the late 1990s many printers used 1.5 spaces. Although partisans on both sides are emphatic that their choice renders text more legible, scientific studies don’t support this.