Hyphenation (source code)

= Hyphenation

\b[Hyphenation] permits a word to be divided at an appropriate internal position during <line breaking>, usually displaying a hyphen when that division is taken. A <hyphenation opportunity> is a permitted choice, rather than an instruction to break every occurrence. The choice can help a narrow <text paragraph> fit without excessive <word spacing>.

A <soft hyphen>, <Unicode> U+00AD, marks such an optional position: in a suitable context, `ex` followed by a <soft hyphen> and `ample` can display as `example` on one line or as `ex-` followed by `ample` on the next. The <soft hyphen> normally remains invisible when no split is taken. An always-visible hyphen already present in the word has different display behaviour.<CSS Text Module Level 3 by World Wide Web Consortium>[§5.3: conditional hyphens, visible hyphens and language-sensitive hyphenation]{ref}

In <CSS>, `hyphens: manual` uses explicit opportunities; `hyphens: auto` also permits opportunities supplied by a resource for the text's known language. The <hyphenation> resource and the <line breaking> algorithm answer different questions: where a split is linguistically allowed, and which allowed split best fits the layout. A <discretionary break> can also account for material inserted or replaced at the chosen split.<CSS Text Module Level 3 by World Wide Web Consortium>[§5.3: manual/auto values and content-language requirement]{ref}