Hi Jeremias,

Jeremias Maerki wrote:
> Hi Vincent
> Looks like you uncovered one of my past mistakes. Looking again at all
> this stuff, I have to agree that the table's outer border has to lie
> outside the table's content-rectangle, and that content-rectangle is
> inset relative to the parent reference area by start-indent. Like it
> happens with fo:block. Right now, fo:table (border-collapse=separate)
> behaves differently from fo:block. There's only a difference here if
> border-collapse is collapse, but not for the "separate" case.
> The stuff about the "outermost grid boundary line" is covered by the
> normal FO box model with the speciality that fo:table has no padding.
> http://www.w3.org/TR/xsl11/#area-stackblock

Well I’ve never really understood that section since, to my knowledge, 
space-start doesn’t apply to block areas. The formula makes sense only 
by replacing space-start with start-indent. The sentence would be 
rephrased like this:
    “the start-edge of its allocation-rectangle is parallel to the 
    start-edge of the content-rectangle of R (where R is the closest 
    ancestor reference-area of B), and offset from it inward by 
    a distance equal to the block-area's start-intrusion-adjustment (as 
    defined below), minus its border-start and padding-start”
Since (assuming writing modes are the same) the start-edge of the 
content rectangle is offset from the start-edge of the allocation 
rectangle inward by start-indent, that leads to a sensible result. Do 
you agree?

So according to you the outermost grid boundary line should coincide 
with the content rectangle? In which case, in addition to the table’s 
border, half of the border-separation should lie in the margin. This is 
also my interpretation but that’s not what XSL Formatter is doing.

> Out of this follows: The following test cases have to be revisited:
> table_border-collapse_separate_border-spacing_1.xml
> table_border-collapse_separate_border-spacing_2.xml

That’s quite strange because not specifying any margin on the table, you 
get the outer border in the margin (but the border-separation is 
currently not taken into account —indeed half of it is missing in the 
table’s outer border). As soon as you specify margin=0 like in the above 
testcases the layout goes wrong. Hmmm...


Reply via email to