Re: Feedback on hyphenation properties

Simon Fraser:

> We have reviewed the hyphenation-related properties in the GCPM module

Is it relevant whom “we” includes bedsides yourself?

> Do we really need both "hyphenate-before" and "hyphenate-after" properties,
> or would a single "hyphenation-min-fragment-length" property suffice?

In <> I suggested <length> as an optional value type for these properties, but now I believe it should be the sole value type. That would require to introduce the ‘ch’ unit and it being a <length>.

In MS Word the only (length) variable a user can alter is the ‘hyphenation zone’ which is the maximum “amount of space to leave between the end of the last word in a line and the right margin” (which doesn’t make much sense in justified or RtoL paragraphs).

I think “push” and “remain”, like Håkon quoted from XSL, are better to understand than “before” and “after”, but ‘hyphenation-remain-character-count’ and ‘…-push-…’ are too long, though very self-descriptive.

Since only minimums are interesting here and “min” usually comes paired with “max”, “limit” seems the better alternative (or it could be left out altogether).

        … stands for “s”, “ate”, “ation” or whatever

  hyphen…-limit-remain: 4ch; /* remainder on first line, excluding(?) ‘hyphen…-char’ */
  hyphen…-limit-push:   3ch; /* pushed to second line */
  hyphen…-limit-length: 8ch; /* minimum word length to consider breaking at all */
  /* in this example 5ch+3ch and 4ch+4ch are effective minimums */

“-limit” should actually come at the end (linguistic-wise), but I think ‘hyphen…-limit” would be a useful shorthand property.

  hyphen…-limit: 8ch 4ch 3ch;   /* word, remain, push */
  hyphen…-limit: 8ch 4ch;       /* word, remain; push = remain */
  hyphen…-limit: 8ch;           /* word; remain = push = word / 2
                   or: remain = ceil(word/2), push = floor(word/2) */

> "hyphenate-lines" also doesn't convey its purpose very well.

For consecutive broken lines only a maximum makes sense to specify. “0” would effectively turn off hyphenation even at literal hyphens, whereas “none” means no limit, i.e. infinity. 
I dislike unitless numbers, so I suggest to also introduce the unit ‘ln’ which would usually give the current (default) line height but in this case acts more like a number (similar to ‘ch’ for character width).

  hyphen…-limit-consecut…: 3ln; /* maximum number of consecutive broken lines */
  hyphen…-limit: 8ch, 3ln;      /* word, lines; note the comma */

> Finally "hyphenate-character"

By the way, are there orthographies where the pushed part (instead or additionally) is preceded by a string?

PS: Most users would be happy with any automatic hyphenation at all.

Received on Thursday, 5 August 2010 17:08:13 UTC