View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000930||luatex||feature request||public||2015-04-08 10:58||2015-10-06 16:07|
|Reporter||eroux||Assigned To||Hans Hagen|
|Target Version||Fixed in Version||0.80.1|
|Summary||0000930: Add \totalhyphenmin to prevent hyphenation of small words|
|Description||In many languages, small words shouldn't be hyphenated, and this is not always possible with \left/righthyphenmin. For instance, most languages (Spanish for example) won't hyphenate words of 4 letters or less, but would like to have \left/righthyphenmin = 2.|
Example of the desired hyphenation: "come" (no hyphen), "co-mi-da".
If \left/righthyphenmin == 2, this will hyphen "co-me" (which is not the desired behaviour), and with \left/righthyphemin == 3, it will not hyphen "comida".
Currently it doesn't seem possible to have the desired behaviour. The request would be to add \totalhyphenmin (name to be discussed of course), that would set the minimal character length of a word to be hyphenated. In the example, having \totalhyphenmin = 4 and \left/righthyphenmin = 2 would make the right output.
For the record, LibreOffice has a similar option.
|Tags||No tags attached.|
Trying to build a patch, the lang_data structure seems to be full. There is:
- 1 bit for uchyph
- 15 bits for lang
- 8 bits for lefthyphenmin
- 8 bits for righthyphenmin
What would be the best solution to insert totalhyphenmin? Would it seem reasonable to have
- 1 bit for uchyph
- 13 bits for lang
- 6 bits for lefthyphenmin
- 6 bits for righthyphenmin
- 6 bits for totalhyphenmin
Another (better I belive) idea from
\shorthyphenpenalty : A hyphenation penalty to apply for short words,
defaulting to something big but not impossible.
\shorthyphenlen : length of a word to consider short.
I can see this being a useful approach - it doesn't hyphenate short words
normally, but it *can* if the alternative is really terrible (e.g. a small
column which would otherwise be an overfull box).
\shorthyphenlen would default to 1 so that existing documents are unaffected.
I think it still requires shorthyphenlen to be in the lang_data structure (and thus to change it). What do you think?
The current version for TEXLive 2015 is 0.80.0,
0.79.1 looks quite old.
addign penalties and acting on it will complicate the already complex par builder so that is not an option (e.g. would it be an extra pass? a can fo worms)
now, originally the 'min' values were not in the glyph node but it gives some control
if we add \totalhyphenmin or better \hyphenateminwordsize or so, that can be a regular parameter, language specific
consider this: say that you want this applied this locally to a word, then one can as well set the min values very high which then will be applied to that word
also, one can do a pass over a node list vand check for specific words if needed, or add exeptions to the hyphenation table ... as it's unlikely that one will hyphenate ab-cd in one place and inhibit in an other
so, at this moment, implementing a minimum wordlength makes most sense (and is also not intrusive)
||Sounds good to me!|
|2015-04-08 10:58||eroux||New Issue|
|2015-04-08 11:29||eroux||Note Added: 0001352|
|2015-04-08 11:33||eroux||Note Edited: 0001352||View Revisions|
|2015-04-08 11:44||eroux||Note Edited: 0001352||View Revisions|
|2015-04-08 12:20||eroux||Note Edited: 0001352||View Revisions|
|2015-04-09 10:06||eroux||Note Added: 0001353|
|2015-04-09 10:07||eroux||Note Edited: 0001353||View Revisions|
|2015-04-10 00:21||luigi scarso||Note Added: 0001354|
|2015-05-14 13:24||Hans Hagen||Assigned To||=> Hans Hagen|
|2015-05-14 13:24||Hans Hagen||Status||new => assigned|
|2015-09-11 22:17||Hans Hagen||Note Added: 0001399|
|2015-09-12 08:34||eroux||Note Added: 0001400|
|2015-10-06 16:07||Hans Hagen||Status||assigned => closed|
|2015-10-06 16:07||Hans Hagen||Resolution||open => fixed|
|2015-10-06 16:07||Hans Hagen||Fixed in Version||=> 0.80.1|