Catch-22 with fo:sequence-specifier-alternating

Subject: Catch-22 with fo:sequence-specifier-alternating
From: pandeng@xxxxxxxxxxxx (Steve Schafer)
Date: Fri, 24 Sep 1999 02:54:14 GMT
I'm curious as to the nature of the pagination algorithm the XSL
designers had in mind when they gave page-master-last-even and
page-master-last-odd properties to fo:sequence-specifier-alternating.

Consider the following scenario: 

In a particular flow object tree, page-master-even and page-master-odd
both specify page layouts that happen to have relatively large
fo:region-body areas, while page-master-last-even and
page-master-last-odd both specify page layouts that happen to have
quite small fo:region-body areas. The formatter processes the flow
object tree, and finds itself near the end of the document with about
a half-page of text left to go, with this text to be placed on an even
page. This amount of text fits just fine in the page-master-even
layout, but won't fit in the page-master-last-even layouts. 

The formatter is now faced with a dilemma: It can use the
page-master-even layout, and fit all of the text, but that means the
last page of the document will have used the wrong page master. Or it
can use the page-master-last-even layout, and not fit all of the text,
but that means a non-last page will have used the wrong page master.

The above scenario is somewhat contrived, of course, but it points out
another problem, which is quite real: In general, there is no way to
know ahead of time whether or not the flow object tree is going to
"run out" on a certain page. The only way to know for sure is to
format the flow objects onto the page. But this means that in practice
nearly _every_ page must be laid out twice, first as a potential last
page, and then, if it turns out that it wasn't the last page after
all, as a normal page.

-Steve Schafer


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread