Fopdevs,

With reference to the discussion of footnotes in http://xml.apache.org/fop/design/alt.design/footnotes.html
I have been thinking about the notion of a layout transaction. Inthe case of footnotes, a transaction is the addition of a line-area containing a footnote. In the case of the first footnote on the page, the transaction incurs the Region b-p-d impact, as noted in Figure 2.


Such a transaction has a minimum and a maximum impact. Assuming that we must place the first line of the footnote on the same page, the minimum impact would be the Main b-p-d impact + Footnote b-p-d impact of the first line of the footnote (which may include the footnote separator). The line-area generator would pass this information up for the decision to be made about committing the transaction to the page, requesting a transaction with a smaller impact, or declaring the page full, and passing the request for a new "canvas" area up the tree to the page factory. In the latter case, the line-area generator would subsequently iniatiate a transaction involving only the remainder of the footnote.

This notion of the transaction and the tranaction impact can be extended directly to the layout of before-floats and keeps, and, possibly, indirectly to side-floats.

Before-floats are handled analogously to footnotes. They have a before-float b-p-d impact (possibly incuding a separator), and a Main b-p-d impact. In the case of before-floats, the float can be postponed to the next page, so the minimum impact would include only the triggering line-area.

Keeps (including widow and orphan control) can be expressed as a transaction involving a number of line areas. The page and column contexts are available, and the appropriate context can be engaged in laying out the transaction. I'll have to give some more thought to the way keep strength could be handled in such a scenario.

Peter
--
Peter B. West  http://www.powerup.com.au/~pbwest/resume.html


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



Reply via email to