1 Sep 2006 16:29
Re: Implementation of hyphenation-keep property
Andreas L Delmelle <a_l.delmelle <at> pandora.be>
2006-09-01 14:29:22 GMT
2006-09-01 14:29:22 GMT
On Sep 1, 2006, at 14:45, Jeremias Maerki wrote: >> <snip /> >> I got the idea while debugging the behavior when processing the >> disabled testcase 'page-breaking_4.xml'. >> Notice that the FlowLM's getNextKnuthElements() is currently only >> called once, which triggers line-breaking for the entire page- >> sequence given a LayoutContext with ipd equal to that of the first >> page's region-body. The second page is only prepared after all line- >> breaks and the first page-break have been computed. > > Doesn't sound like total-fit anymore, more like best-fit. Vincent and > Simon said total-fit for page breaking is very important. I understand and completely agree, which is why I explicitly looked for options that would, by default, come down roughly to the same thing we have now, only refined/corrected. To me it looks like right now we have a total-fit page-breaking, combined with a possible non-fit line-breaking. Since line-breaking is unaware of available bpd, it cannot take into account any overflows in that direction (and implied ipd-changes for the next lines). As you point out, available ipd can only change in case of forced breaks/span changes. But even then it seems like we cannot precisely determine which page we're on, unless we'd run the PageBreaker over the element-list up to that point. That's something I'd like to avoid, since this would break the total-fit page-breaking (unless the page-breaks are recomputed afterwards...) If the goal is to achieve a total-fit for both line- and page-breaks, and we don't want to waste resources on a whole bunch of unnecessary break computations, then it seems like the wisest thing to do first, is to try and see if we can move the page-generation in such a way that the line-breaking algorithm is always aware of the 'current' page, while still no actual page-breaks are computed. The latter can still wait until we have collected the full list of line-breaks. Could get quite tricky, though. Seems like the line-breaking algorithm would also need to take into account space-before/-after, in order to register correct bp-advancements... bp-advancement is not simply line-height, but line-height + resolved space-before + resolved space-after. :/ Later, Andreas
RSS Feed