You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2005/01/13 16:07:02 UTC

cvs commit: xml-fop/test/layoutengine/testcases block-container3.xml

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>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org


Re: start-indent inheritance

Posted by Jeremias Maerki <de...@greenmail.ch>.
Bloody little details! Thanks Peter. That was it. I'm going to fix this.

On 14.01.2005 20:19:36 Peter B. West wrote:
> Jeremias Maerki wrote:
> > 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..."


Jeremias Maerki


Re: start-indent inheritance

Posted by Chris Bowditch <bo...@hotmail.com>.
Jeremias Maerki wrote:
> There seems to have been some discussion about this in the CR phase:
> 
> http://www.w3.org/2001/08/28-XSL-PR-DOC.html (see comment 20)
> 
> It would seem that in the case of reference-area generating FOs
> start-indent should simply be inherited (comment 20, item 3). In my
> example the start-indent of the block-container would be 10pt, which is
> then inherited by the orange block. This amounts to an effective 20pt
> indent for the orange block and oops, AltSoft is suddenly right. I'm
> confused.

I would say that in the absence of any clear right or wrong in the spec and 
different interpretations by different commercial renderers, I would suggest 
that implementing the easiest approach would be the best way to go.

Chris


Re: start-indent inheritance (was: cvs commit: xml-fop/test/layoutengine/testcases block-container3.xml)

Posted by Jeremias Maerki <de...@greenmail.ch>.
There seems to have been some discussion about this in the CR phase:

http://www.w3.org/2001/08/28-XSL-PR-DOC.html (see comment 20)

It would seem that in the case of reference-area generating FOs
start-indent should simply be inherited (comment 20, item 3). In my
example the start-indent of the block-container would be 10pt, which is
then inherited by the orange block. This amounts to an effective 20pt
indent for the orange block and oops, AltSoft is suddenly right. I'm
confused.


Jeremias Maerki


Re: start-indent inheritance

Posted by "Peter B. West" <li...@pbw.id.au>.
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 +
> border-corresponding-width
> 
> 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
>>  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>

Peter

Re: cvs commit: xml-fop/test/layoutengine/testcases block-container3.xml

Posted by Jeremias Maerki <de...@greenmail.ch>.
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