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:

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

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

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

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

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

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

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

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.

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
>   Log:
>   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
>   
>          http://www.apache.org/licenses/LICENSE-2.0
>   
>     Unless required by applicable law or agreed to in writing, software
>     distributed under the License is distributed on an "AS IS" BASIS,
>     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>     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 $ -->
>   <testcase>
>     <info>
>       <p>
>         This test checks indents on block-containers.
>       </p>
>     </info>
>     <fo>
>       <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
> xmlns:svg="http://www.w3.org/2000/svg";>
>         <fo:layout-master-set>
>           <fo:simple-page-master master-name="normal" page-width="5in" 
> page-height="5in">
>             <fo:region-body/>
>           </fo:simple-page-master>
>         </fo:layout-master-set>
>         <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-container>
>                 <fo:block 
> background-color="orange">fo:block|fo:block-container|fo:block</fo:block>
>               </fo:block-container>
>             </fo:block>
>           </fo:flow>
>         </fo:page-sequence>
>       </fo:root>
>     </fo>
>     <checks>
>       <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"/-->
>     </checks>
>   </testcase>
>   
>   
>   


Jeremias Maerki

Reply via email to