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".
Yes, but that still leaves some very difficult problems, especially where last-page, footnotes and floats are concerned.

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.
So scrap SAX. Or, to be more precise, reduce SAX to the role of XML event server to a top-down tree builder, which in turn provides event notification and read-only tree access to the top-down layout engine.

I know it is easier said than done,
Definitely.

 and may already be done.
Well, the part about reducing SAX to an event server has already been done, and the part about building the FO tree top-down is almost finished. The last bit, unfortunately, has not even been started. I was getting ready to post some details about this, but I wanted to finish the creation of the FO objects first. I will now post them this weekend.

Peter
--
Peter B. West [EMAIL PROTECTED] http://www.powerup.com.au/~pbwest/
"Lord, to whom shall we go?"


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

Reply via email to