Due to traditional sentence spacing rules, TeX normally generates a large space after a period (and some other punctuation marks), but disables this behavior when the letter preceding the period is a capital letter: TeX assumes that such a period is used as part of an acronym, thus does not usually end a sentence. This supposition no longer tends to be true nowadays, since periods are almost no longer used in acronyms.
Now one needs to correct this behavior when TeX's guess is wrong. There are two cases:
A period after a lowercase letter
does not end a sentence. For instance, this can occur after
the abbreviations e.g.
or
i.e.
, and a common solution is
to put a backslash before the following space. \@
after
the period may be
semantically cleaner,
and safer if automatic word-wrapping is used when editing the TeX/LaTeX
source (the backslash must not be at the end of a source line).
A tilde in the source (non-breaking space) may be a better choice
after Dr.
and
Mr.
, as suggested on
this page.
A period after an uppercase letter
ends a sentence. This generally occurs when a sentence ends with
an acronym. Many users suggest to add \@
before the period,
like at the first link above. But as explained on
this page,
\@
destroys kerning, thus should not be used. A solution
given in a comment yields an error, but a slightly modified code seems
to work: \spacefactor=\sfcode`\.{}
after the period (see
my tests below).
I've done some tests. Here's the LaTeX source space-after-period.tex and the generated PDF file (zoom in to better see the differences).
Information about the ae and aeguill packages below is obsolete as these packages have drawbacks and thus should no longer be used. To get real accented characters and correct hyphenation nowadays, a solution is to use the Latin Modern fonts:
\usepackage[T1]{fontenc} \usepackage{lmodern}
The tilde \textasciitilde
from the Computer
Modern fonts (used via the ae or
aeguill package) is too high. To get a tilde at
a better height, one can define virtual fonts, as described below.
Thanks to Josselin
Noirel for his help.
Such virtual fonts based on the ae package can be created from this simple shell script. Then the generated files must be installed in standard directories or directories listed in the environment variables TFMFONTS (for the *.tfm) and VFFONTS (for the *.vf).
To use these virtual fonts, install the
ltae.sty
file in a standard directory or a directory listed in the
environment variable TEXINPUTS, and add to your LaTeX
file: \usepackage{ltae}
.
Note: ltae automatically includes ae
and can be used in addition to aeguill.