Victor Mote wrote:
Unless the spec indicates something different, my naive solution would be to distribute it in proportion to their pre-existing (optimal) size.
The spec basically leaves it to the implementation. There is only a vague comment "User agents may choose to use the value of 'leader-length.optimum' to determine where to break the line" (sect. 7.20.4, nicely repeated in Leader.java)
So with 3 leaders, A, B, & C: new sizeA = sizeA + (sizeA / (sizeA + sizeB + sizeC) * slack) Compute the above for each leader, limiting each to the max. If any max out, they are completed, and the excess returns to the pool. Repeat this for remaining leaders until excess is used up or all of them max out. Don't apply your rounding until the end. If all of them max out, it would seem reasonable to distribute any remaining slack equally as space between the leaders.
This is an excellent formulation of what was only vaguely forming in my head. Thanks! J.Pietschmann --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]