blob: 11e3458ee8bbb6ae09e769a1e4e6bf6209faa1ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
<head>
<title>UK TeX FAQ -- question label hyphen</title>
</head><body>
<h3>How does hyphenation work in TeX?</h3>
<p/>Everyone knows what hyphenation is: we see it in most books we read,
and (if we’re alert) will spot occasional ridiculous mis-hyphenation
(at one time, British newspapers were a fertile source).
<p/>Hyphenation styles are culturally-determined, and the same language
may be hyphenated differently in different countries — for example,
British and American styles of hyphenation of English are very
different. As a result, a typesetting system that is not restricted
to a single language at a single locale needs to be able to change its
hyphenation rules from time to time.
<p/>TeX uses a pretty good system for hyphenation (originally designed
by Frank Liang — you may view his
<a href="http://tug.org/docs/liang/">Ph.D. thesis</a> online), and while
it’s capable of missing “sensible” hyphenation points, it seldom
selects grossly wrong ones. The
algorithm matches candidates for hyphenation against a set of
“hyphenation patterns”. The candidates for hyphenation must be
sequences of letters (or other single characters that TeX may be
persuaded to think of as letters) — things such as TeX’s
<code>\</code><code>accent</code> primitive interrupt hyphenation.
<p/>Sets of hyphenation patterns are usually derived from analysis of
a list of valid hyphenations (the process of derivation, using a tool
called <i>patgen</i>, is not ordinarily a participatory sport).
<p/>The patterns for the languages a TeX system is going to deal with
may only be loaded when the system is installed. To change the set of
languages, a <a href="FAQ-newlang.html">partial reinstallation</a> is necessary.
<p/>TeX provides two “user-level” commands for control of
hyphenation: <code>\</code><code>language</code> (which selects a hyphenation style), and
<code>\</code><code>hyphenation</code> (which gives explicit instructions to the hyphenation
engine, overriding the effect of the patterns).
<p/>The ordinary LaTeX user need not worry about <code>\</code><code>language</code>, since
it is very thoroughly managed by the <i>babel</i> package; use of
<code>\</code><code>hyphenation</code> is discussed in
the context of
<a href="FAQ-nohyph.html">hyphenation failure</a>.
<p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=hyphen">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=hyphen</a>
</body>
|