On Fri, 2002-11-15 at 19:48, Victor Mote wrote: > Just to be clear, I should point out that there is not a layout that is > impossible to perform. The standard allows (and would have to) > implementation-specific handling of what they call "over-constrained" > requirements. In other words, requirements can be prioritized and allowed to > slip when they are contradictory or "impossible". > > >From a design standpoint, the best ideas I have seen/heard revolve around > some scoring system. I think the HZ program, TeX, and Lout all use this > approach. To do this, you would need for each break manager to return not > just the best break, but a collection of possible breaks with some ranking > mechanism. Ideally, somebody at the highest level (page-sequence) decides > what is best, based on information that percolates up from the lower levels. > This implies to me that we can see the entire page-sequence sub-tree at one > time, which may not be true in our SAX event-based model. It seems that the > page-sequence would attempt to lay itself out using the "best" breaks that > came up from sub-nodes, then adjust if over-constrained, perhaps with the > concept of a layout Plan or Proposal.
The idea of the best break is that it is the best break, not just an allowed break. So if there is a block with keep together always it could have the best break inside it simply because the previous best break was also a keep always and it was further from the optimum distance. The key is, as you put it, percolate the information up from the lower levels. We don't want to do it for every single possible break but in some cases it does need to do that. I am sure I know how to find the best break in a page, the problem is how to write code to do that when there are lots of difficult things like floats, footnotes, page columns etc. > I know it is easier said than done, and may already be done. Please pardon > my ignorance of the current design. I would offer it as my $.02 worth, but > someone would want a nickel change ($.05). --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]