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:
jeremias2005/01/13 07:07:02
Added: test/layoutengine/testcases block-container3.xml
Log:
Testcase for checking start-indent inheritance across block-containers.
Revision ChangesPath
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=yellowfo:block|fo:block/fo:block
fo:block-container
fo:block background-color=orangefo:block|fo:block-container|fo:block/fo:block
/fo:block-container
/fo:block
/fo:flow
/fo:page-sequence
/fo:root
/fo
checks
eval expected=35 xpath=/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@ipd/
eval expected=36 xpath=/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[1]/@ipda/
!-- TODO Complete checks after clarifying interpretation --
!--eval expected=35 xpath=/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[2]/block[1]/@ipd/
eval expected=35 xpath=/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/block[2]/block[1]/@ipda/--
/checks
/testcase
Peter