W3C home > Mailing lists > Public > xsl-editors@w3.org > April to June 2008

Breaks and Borders, Successive Break Contexts

From: Vincent Hennebert <vincent.hennebert@anyware-tech.com>
Date: Thu, 15 May 2008 11:46:03 +0100
Message-ID: <482C146B.4050508@anyware-tech.com>
To: xsl-editors@w3.org
CC: fop-dev@xmlgraphics.apache.org

Dear XSL-FO Editors,

The following situations are not explicitly described by the XSL-FO 1.1
Recommendation and no consistent behaviour could be found among the
various implementations:

Given the following FO snippet:
    <fo:block border-before-color="black"
      border-before-style="double"
      border-before-width="1pt">
      <fo:block break-before="page">
         Some text.
      </fo:block>
    </fo:block>

If the outer block is not leading in the page-reference-area (‘does not
start a page’), what is the expected rendering? Should the border-before
lie on page n and the inner block on page n+1:
    ______________  ______________
    |            |  |            |
    |  ...       |  | Some text. |
    | Content    |  |            |
    | before     |  |            |
    | ...        |  |            |
    |            |  |            |
    | ========== |  |            |
    |            |  |            |
    |____________|  |____________|

... or should both be found on page n+1?
    ______________  ______________
    |            |  |            |
    |  ...       |  | ========== |
    | Content    |  | Some text. |
    | before     |  |            |
    | ...        |  |            |
    |            |  |            |
    |            |  |            |
    |            |  |            |
    |____________|  |____________|

In other words: if the first child of an fo:block has a forced (page)
break, should this block still produce an empty area (that here will
hold a before border) on the current page, or should it be deferred to
the next page along with its child’s area(s)?


As another illustration of this issue, in the following case, and
assuming that we have a two-column page setup:
    <fo:block break-before="column" border-top="1pt solid red">
      <fo:block break-before="page" border-top="1pt solid blue">
        Some text.
      </fo:block>
    </fo:block>
Let’s assume that when the outer block is reached we are inside the
first column of page n. Should (1) the red border be found at the top of
column #2 on page n, and the blue border at the top of column #1 on page
n+1? Or should (2) both borders be found at the top of column #1 on page
n+1?

If empty areas must be produced, then case (1) would win; otherwise this
would be case (2).


On a slightly different topic, there is a small uncertainty in cases
like the following:
    <fo:block break-before="page">
      <fo:block break-before="page">
        Some text.
      </fo:block>
    </fo:block>
Should an empty page be generated? In which case the outer block would
generate an empty area on page n+1, and the inner block its area(s) on
page n+2.
If not, then both blocks would generate their areas on page n+1. Both
behaviours are compliant with the Recommendation I think. But within the
FOP team we couldn’t reach a consensus on which one should be
privileged.


Thanks,
Vincent Hennebert


--
Vincent Hennebert                            Anyware Technologies
http://people.apache.org/~vhennebert         http://www.anyware-tech.com
Apache FOP Committer                         FOP Development/Consulting
Received on Thursday, 15 May 2008 10:47:04 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 11:00:00 GMT