Jeremias Maerki wrote:
I'm trying to figure out what the indent of the orange block under the
block-container may be, or rather if our current implementation is
really ok. It's clear that for the yellow block start-indent is 10pt.

5.3.2 says for FOs that don't generate a reference area (ex. fo:block)
the following is true:

Not quite. The following is true "[i]f the corresponding absolute "margin" property is specified on the formatting object and the formatting object does not generate a reference area..."

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

start-indent = 10pt = 10pt + 0pt + 0pt + 0pt

The corresponding margin property is not specified, so start-indent is inherited_value_of(start-indent), i.e. 10pt.

For the block-container a different rule applies because it generates a
reference area:

Same problem. "If the corresponding absolute "margin" property is specified on the formatting object and the formatting object generates a reference area..."

start-indent = margin-corresponding + padding-corresponding +

start-indent = 0pt = 0pt + 0pt + 0pt

start-indent = inherited_value_of(start-indent) = 10pt.

Then for the orange block the first formula is used again:

start-indent= 0pt = 0pt + 0pt + 0pt + 0pt

start-indent = inherited... = 10pt

Now, it's interesting to note that XEP and AltSoft interpret this
differently. XEP indents the orange block by 10pt while AltSoft indents
it by 20pt.

Go with AltSoft.

You could also note that start-indent is specified as "Inherited: yes"
which somewhat contradicts the second formula above.

XEP seems to use the inherited start-indent for the block-container.
AltSoft seems to do the same and even does the same for the orange block
although rendering then orients itself on the reference area established
by the block-container, thus indenting the orange block by 20pt. AltSoft
is certainly wrong. The question is if XEP is right. :-)

I googled a bit and indeed, there seems be a certain amount of confusion
how this should be handled.

Any thoughts?

On 13.01.2005 16:07:02 jeremias wrote:

jeremias    2005/01/13 07:07:02

Added: test/layoutengine/testcases block-container3.xml
Testcase for checking start-indent inheritance across block-containers.
Revision Changes Path
1.1 xml-fop/test/layoutengine/testcases/block-container3.xml
Index: block-container3.xml
<?xml version="1.0" encoding="UTF-8"?>
Copyright 2005 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.
<!-- $Id: block-container3.xml,v 1.1 2005/01/13 15:07:02 jeremias Exp $ -->
This test checks indents on block-containers.
<fo:root xmlns:fo=""; xmlns:svg="";>
<fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
<fo:page-sequence master-reference="normal" white-space-collapse="true">
<fo:flow flow-name="xsl-region-body">
<fo:block start-indent="10pt">
<fo:block background-color="yellow">fo:block|fo:block</fo:block>
<fo:block background-color="orange">fo:block|fo:block-container|fo:block</fo:block>
<eval expected="350000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@ipd"/>
<eval expected="360000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@ipda"/>
<!-- TODO Complete checks after clarifying interpretation -->
<!--eval expected="350000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[2]/block[1]/@ipd"/>
<eval expected="350000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[2]/block[1]/@ipda"/-->


Reply via email to