On Thu, 2002-11-21 at 14:20, Rhett Aultman wrote:
> IIRC, in my "8778 experiment", the break being offered was never null.  The best 
>break is always being offered, but the best break is at the beginning of the 
>offending block.  Either way, this resolves only the most trivial of the examples 
>without paying attention to the greater issue, which is that such layout issues are 
>rooted in constraints that conflict.  Is your intention to wait for such cases to 
>come in and just write special-case code for each and every one of them at the time?

No, in the design the best break cannot be before the block, there is no
break before everything on the page.

It doesn't matter how many constraints there are, there will always be a
best break on the page that will place some contents on the page. The
next page will therefore have less to layout and will also place some
contents on its page, therefore an infinite loop is impossible.

Now to find the best break. This could simply be done within the context
of the current page. Best break is:
- at least first available break
- of a lower keep constraint
- closer to the optimum page bpd

Now to extend that to a more general situation. It will need to find
every break in the page sequence and compare the constraints that are
broken. Then attempt to adjust those breaks so fewer constraints are
broken.

So how will this be done. The PageLayoutManager can collect all "best"
breaks as they are created. Then look at the constraints and available
moving room. I can't define any specifics because I would need to think
about it more. But I am certain there would be some sort of formula that
could aid in this process. Like: this page has optimum spacing and
breaks no constraints - therefore it can only be adjust between min and
max spacing. This page break is less than the min and the next page
breaks within an always keep so it should attempt to break the keep on
the first page and get closer to opt distance while having a normal
break on the next page.

Of course a force page break is definite so it could segment parts of
the flow, do the layout and add the pages.

Why do you think that it cannot be extended to handle this.

The question to me is how to organise this in a good way that does not
mean using lots of memory and processing at many levels while still
being able to handle the tricky parts.




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to