W3C home > Mailing lists > Public > www-xsl-fo@w3.org > March 2002

Re: Pushing the Limits

From: Paul Grosso <pgrosso@arbortext.com>
Date: Sat, 23 Mar 2002 16:27:47 -0600
Message-Id: <4.3.2.7.2.20020323155345.0247b9e0@172.27.10.30>
To: "Arved Sandstrom" <asandstrom@accesswave.ca>, "'Www-Xsl-Fo" <www-xsl-fo@w3.org>
At 23:24 2002 03 22 -0500, Arved Sandstrom wrote:
>I've got a question related to keeps. 

>Let's say that I have 2
>simple-page-masters defined: one called "small", with a fairly small
>region-body, and one called "large", with a larger region-body.
>
>The flow content looks like
>
><fo:block break-after="page">NOT MUCH STUFF</fo:block>
>
><fo:block keep-together.within-page="1">
>    .... QUITE A LOT OF STUFF ....
></fo:block>

What you probably want to have here for the sake of your
point is keep-together.within-page="always".  With any
lesser value, the implementation is allowed to say "well,
the stylesheet says it would be nice to keep it together,
but since there is too much to fit on the page, I guess
I'll break it anyway."  

Back to your question, implementations are not expected to decide 
what page master to use based on keeps and/or the page size.  The 
only conditions that are used to pick page masters are those "constraints
of the corresponding sub-sequence specifier" and "There are three 
traits, page-position, odd-or-even, and blank-or-not-blank that 
specify the sub-conditions on the use of the referenced page-master."

Therefore, an implementation would pick the page master based
on those three traits, find out that its height is "small",
discover that it's got a chunk kept together with a keep
condition of strength 1 and that that chunk's height is greater 
than the height of the page, so it realizes it must ignore that 
keep condition.  (The point of keep strengths is that, once keep 
conditions of strength 1 are ignored, then if there are sub-chunks 
of the whole chunk kept together with strength 2, the implementation
would obey those and break between subchunks--unless a single
subchunk were larger than a page, then it would have to ignore
the keep condition on that subchunk and look for a break within
that subchunk while attempting to obey all keep conditions
therein of strength 3 or greater, etc.)

If (and only if) the keep condition's strength were "always", then 
there would be an overflow condition on the page, and that would
be handled by the implementation depending on the value of
the overflow property (and note that only values of "auto"
[user agent dependent] and "visible" are required to be supported).
In no case would an overflow situation cause an implementation to
choose another page master.

paul

>The fo:flow, for sake of simplicity, contains these only. Simple-page-master
>(SPM) "small" cannot accommodate the second block, but SPM "large" can.
>Furthermore, the containing page-sequence maps to
>
><fo:page-sequence-master master-name="psm">
>    <fo:single-page-master-reference master-reference="small"/>
>    <fo:single-page-master-reference master-reference="small"/>
>    <fo:repeatable-page-master-reference master-reference="large"/>
></fo:page-sequence-master>
Received on Saturday, 23 March 2002 17:28:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 3 October 2007 16:06:09 GMT