--- Jeremias Maerki <[EMAIL PROTECTED]> wrote:

> Hi Luca,
> 
> the reason for the effect you're seeing is the
> inheritance of
> start-indent and end-indent. In your exapmle, if you
> specify a
> margin-left and margin-right on the
> simple-page-master, 

(margin-left and margin-right of 50pt each on
fo:s-p-m)

> this results
> (corresponding properties) in a start-indent and
> end-indent of 50pt each.

via the second set of formulas, because margins are
explicitly specified and fo:s-p-m does not generate
any area and hence does not generate a reference area
(although it is used by fo:page-sequence to do so): I
agree here.


> Now, because start|end-indent are inherited,
> region-body also starts
> with a start-indent and end-indent of 50pt which

I agree, but these properties are not explicitly
specified on fo:region-body, so the first two sets of
formulae are not relevant here.  Nor would they be
anyway because I don't believe fo:region-bodies
generate reference areas.


> together with the
> parent's start-indent accumulates 100pt because each
> of the FOs are
> generating a reference area. 

I don't think so here--I don't believe either fo:s-p-m
or fo:region-body generate reference areas--indeed, I
don't think anything located outside of
fo:page-sequence does.  The spec says they are *used*
to create a reference area, but they don't generate
one themselves.  So maybe your calculations here may
need changing--because different formulae in 5.3.2
would hence be activated.

Section 6.1 [1] says "There are three kinds of
formatting objects: (1) those that generate areas, (2)
those that return areas, but do not generate them, and
(3) those that are used in the generation of areas."

fo:s-p-m and fo:region-body are type (3), not type
(1).

fo:s-p-m text:  The fo:simple-page-master formatting
object generates no area directly. It is used in the
generation of pages by an fo:page-sequence. type (3)

fo:r-b text:  The fo:region-body formatting object is
used to generate one region-viewport-area and one
region-reference-area whenever an
fo:simple-page-master that has an fo:region-body as a
child is used to generate a page.  (i.e., type 3)


[1]
http://www.w3.org/TR/2001/REC-xsl-20011015/slice6.html#fo-section


> So in your case you could specify
> a margin="0pt" on
> the region-body which triggers the first formula
> given in 5.3.2. 

Again, I don't think so because fo:region-body never
generates a reference-area.  Hence, with no explicit
specification of margin properites, the third set of
formulas then activates:

margin-corresponding = start-indent -
inherited_value_of(start-indent) -
padding-corresponding - border-corresponding-width

with the additional rule that:  "If the "start-indent"
or "end-indent" properties are not specified their
inherited value is used in these formulae."

Since start-indent and end-indent were not specified,
then we have:

margin-corresponding =
inherited_value_of(start-indent) -
inherited_value_of(start-indent) -
padding-corresponding - border-corresponding-width,

or zero for the margin properties on fo:region-body. 
(i.e., we just rely on the 50pt. on
simple-page-master.)

So Luca is correct that both fo:simple-page-masters
should generate the same overall margins of 50 pt.
each, no?

Thanks,
Glen

Reply via email to