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.[ref]CSS Text Module Level 3 by World Wide Web Consortium. §5.3: conditional hyphens, visible hyphens and language-sensitive hyphenation
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.[ref]CSS Text Module Level 3 by World Wide Web Consortium. §5.3: manual/auto values and content-language requirement
A discretionary break describes an optional line breaking choice whose printed material may depend on whether the break is selected. In TeX,
\discretionary{pre}{post}{none} supplies material before a chosen break, after it, or in the unbroken case.[ref]TeX source code by Donald E. Knuth. disc_node: pre_break, post_break and replacement material
For a purely mechanical example,
ab\discretionary{-}{X}{Y}cd can produce abYcd without the break, or ab- followed on the next line by Xcd when it is selected. The arbitrary strings make all three branches visible. A common hyphenation case simply inserts a hyphen before the break and supplies no material afterward.Each alternative has its own geometry. A typesetting box used only in the pre-break branch must contribute its width when that branch is tested. The natural line width, typesetting glue and typesetting penalty calculation must therefore use the selected representation. Treating the choice merely as an invisible marker could miss the width of the inserted hyphen.
A soft hyphen, or SHY, is the Unicode character U+00AD. It marks a preferred optional division inside a word and normally has no visible shape when that division is unused. Selecting it invokes the language-appropriate presentation for an intraword break, which can involve more than adding one hyphen.[ref]
Unicode Line Breaking Algorithm by the Unicode Consortium. §5.4: invisible format character and language-dependent break presentation
For example, a suitable renderer can show
ex followed by SHY and ample as example on one line, or as ex- and ample on successive lines. The visible hyphen then belongs to the chosen layout. In languages with spelling changes at a division, the layout implementation may also need to modify the divided parts.[ref]Unicode Line Breaking Algorithm by the Unicode Consortium. §5.4: spelling changes and responsibility of the line-breaking implementation
A soft hyphen supplies a hyphenation opportunity; it does not force the line breaking algorithm to use it. The algorithm can retain the unbroken word when its typesetting line width and paragraph cost permit that choice.
A hyphenation opportunity is a position where the language and chosen hyphenation rules permit a word to be divided across lines. An explicit soft hyphen can supply one; automatic hyphenation can find others using a language-appropriate resource. These permitted positions become choices for line breaking.[ref]
CSS Text Module Level 3 by World Wide Web Consortium. §5.3: explicit and automatic language-appropriate hyphenation opportunities
Two tests must then be applied. First, is the division permitted by the linguistic rules? Second, does the resulting geometry and cost make it a useful choice? If the material before a break has width 20, an inserted hyphen adds 2, and the available typesetting line width is 21, the resulting 22-unit line fails the rigid-width fitting test despite the linguistic permission.
A discretionary break represents the alternative printed material. The Knuth-Plass line-breaking algorithm can compare that option with later or earlier permitted breaks using typesetting badness and typesetting penalties.
Articles by others on the same topic
There are currently no matching articles.