--- Comment #15 from Vincent Hennebert <[EMAIL PROTECTED]>  2008-11-26 03:28:18 
PST ---
(In reply to comment #14)
> (In reply to comment #12)
> Sorry to chime in so late...
> > Based on my novice analysis, it appears the various KnuthElements provide 
> > the
> > following purposes:
> <snip />
> Entirely correct interpretation.
> A box is never a break-possibility, unless when preceded by a penalty
> indicating one. Glues are always a break-possibility, unless when preceded by 
> a
> penalty prohibiting one. That's the general idea. 

I'm afraid this is wrong. You can break only at two places:
- a penalty element whose penalty value is not infinite; then the width of the
penalty must be taken into account.
- a glue element that's immediately preceded by a box; then you discard the
glue's length, shrink and stretch.
Also, when an element is chosen as a breaking point, all the following glue and
penalty elements (if any) are discarded up to the next box element. The
presence of aux. box w=0 at places in the sequence is meant to prevent the
triggering of that mechanism.
See section “Breaking Rules” at the following page:

> For 2), I'm thinking of very extreme (and highly unusual) cases, where it
> becomes necessary to choose 'a' break, but the choice is between white-space
> characters only. If white-space treatment is "preserve",  a portion of
> white-space should, strictly speaking, be pushed to the next line, and
> influence alignment there... but ideally, if it all fits on one line, that
> possibility should obviously be preferred above all else.

This is probably the biggest issue. This may require to handle a sequence of
white spaces in its whole instead of each character individually. Sorry, I
don't have enough energy ATM to look at this issue into more details. Being
sure that every combination of white space options (white-space-treatment,
white-space-collapse, linefeed-treatment...) is handled correctly requires an
extensive study.


Configure bugmail:
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to