Syllabification

Syllabification or syllabication, also known as hyphenation, is the separation of a word into syllables, whether spoken, written or signed.

Overview
The written separation into syllables is usually marked by a hyphen when using English orthography (e.g., syl-la-ble) and with a period when transcribing the actually spoken syllables in the International Phonetic Alphabet (e.g., ). For presentation purposes, typographers may use an interpunct (Unicode character U+00B7, e.g., syl·la·ble), a special-purpose "hyphenation point" (U+2027, e.g., syl‧la‧ble), or a space (e.g., syl la ble).

At the end of a line, a word is separated in writing into parts, conventionally called "syllables", if it does not fit the line and if moving it to the next line would make the first line much shorter than the others. This can be a particular problem with very long words, and with narrow columns in newspapers. Word processing has automated the process of justification, making syllabification of shorter words often unnecessary.

In some languages, the spoken syllables are also the basis of syllabification in writing. However, possibly due to the weak correspondence between sounds and letters in the spelling of modern English, written syllabification in English is based mostly on etymological or morphological, instead of phonetic, principles. For example, it is not possible to syllabify "learning" as lear-ning according to the correct syllabification of the living language. Seeing only lear- at the end of a line might mislead the reader into pronouncing the word incorrectly, as the digraph ea can hold many different values. The history of English orthography accounts for such phenomena.

English written syllabification therefore deals with a concept of "syllable" that does not correspond to the linguistic concept of a phonological (as opposed to morphological) unit.

As a result, even most native English speakers are unable to syllabify words according to established rules without consulting a dictionary or using a word processor. Schools usually do not provide much more advice on the topic than to consult a dictionary. In addition, there are differences between British and US syllabification and even between dictionaries of the same English variety.

In Finnish, Italian, Portuguese, Japanese (Romaji), Korean (Romanized) and other nearly phonemically spelled languages, writers can in principle correctly syllabify any existing or newly created word using only general rules. In Finland, children are first taught to hyphenate every word until they produce the correct syllabification reliably, after which the hyphens can be omitted.

Algorithm
A hyphenation algorithm is a set of rules, especially one codified for implementation in a computer program, that decides at which points a word can be broken over two lines with a hyphen. For example, a hyphenation algorithm might decide that impeachment can be broken as impeach-ment or im-peachment but not impe-achment.

One of the reasons for the complexity of the rules of word-breaking is that different dialects of English tend to differ on hyphenation: American English tends to work on sound, but British English tends to look to the origins of the word and then to sound. There are also a large number of exceptions, which further complicates matters.

Some rules of thumb can be found in the Major Keary's "On Hyphenation – Anarchy of Pedantry." Among the algorithmic approaches to hyphenation, the one implemented in the TeX typesetting system is widely used. It is thoroughly documented in the first two volumes of Computers and Typesetting by Donald Knuth and in Franklin Mark Liang's dissertation. The aim of Liang's work was to get the algorithm as accurate as possible and to keep exceptions to a minimum.

In TeX's original hyphenation patterns for American English, the exception list contains only 14 words.

In TeX
Ports of the TeX hyphenation algorithm are available as libraries for several programming languages, including Haskell, JavaScript, Perl, PostScript, Python, Ruby, C#, and TeX can be made to show hyphens in the log by the command.

In LaTeX, hyphenation correction can be added by users by using:

\hyphenation{words}

The  command declares allowed hyphenation points in which words is a list of words, separated by spaces, in which each hyphenation point is indicated by a   character. For example,

\hyphenation{fortran er-go-no-mic}

declares that in the current job "fortran" should not be hyphenated and that if "ergonomic" must be hyphenated, it will be at one of the indicated points.

However, there are several limits. For example, the stock  command accepts only ASCII letters by default and so it cannot be used to correct hyphenation for words with non-ASCII characters (like ä, é, ç), which are very common in many  languages. Simple workarounds exist, however.