Now I know there are hyphenation differences between British and American English but in no dictionary, British or American, could I find the word "alternate" to be broken down to al·tern·ate instead of al·ter·nate (for example). And yet:
\documentclass[a5paper]{article}
\usepackage[british]{babel}
\begin{document}
alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate alternate
\end{document}
If you remove the babel
line or change it to american
, the hyphenation will be correct:
So how does the British hyphenation work? Is it a complete reimplementation that can be buggy? Or is it just a list of exceptions where British syllabification differs from American? If it is the latter, why would a wrong hyphenation of "alternate" be made part of that word list?
Best Answer
According to the Oxford dictionary the correct hyphenation in British English is
The pattern for British English were prepared in 1996 by Dominik Wujastik using a list of hyphenated words made available by Oxford University Press and is present on CTAN as
ukhyph.tex
. In 2008, the team in charge of maintaining hyphenation patterns for TeX Live made a reorganization of the material; here's the start ofhyph-en-gb.tex
:Some lines later we can read
so I argue that the hyphenation patterns have never changed from 1996, except for the addition of a hyphenation exception list that reads, in the original file,
and is exactly the same in the reorganized files.
It is true that
alternate
hyphenates asas the following file to be run with
pdflatex
shows:that prints
on the terminal.
Hyphenation in TeX doesn't examine a long list of words, but rather uses a method based on patterns, described in Appendix H of the TeXbook. The
patgen
program distills a set of patterns based on a list of hyphenated words, but some compromise has to be made for efficiency of the algorithm, so it's surely possible that some word slips off and turns out to be hyphenated incorrectly.That's what the hyphenation exception list is for. You can, until the problem is fixed by adding some suitable patterns or the word in the exception list, add it manually:
The command
\babelhyphenation
requiresbabel
version 3.9; for an earlier version one can usewhich has the same effect.