[xep-support] Strange Behavior For Start-Before with fo:list

W. Eliot Kimber eliot at isogen.com
Mon Nov 11 04:17:00 PST 2002


W. Eliot Kimber wrote:
> David Tolpin wrote:
> 
>>> If I understand the meaning of "fence before", it means that the 
>>> space before for the initial blocks within a list item should have 
>>> conditional 
>>
>> list-items are not reference-areas. They do not impose a condition
>> that causes suppression of space-before/space-after. The fence means
>> that adjacent space-before/space-after do not interact with each other.
> 
> You seem to be correct--if your interpretation of "fence" is correct, 
> then I have to agree with your implementation. However, if "fence" also 
> implies the same behavior *as if* the fence was the edge of a reference 
> area, then I would not agree. But I can't find anything that defines the 
> meaning of fence in any other way than as you have interpreted it--it 
> doesn't appear to be a completely well-defined notion in the FO spec, 
> only being defined in the context of explaining the block stacking rules.

Based on the above discussion, I asked Antenna House whether they 
considered their implentation to be conforming or not. The net of their 
response is that fo:list-item should only be big enough to contain the 
*allocation rectangle* of the blocks, which does not include any space 
before or after (per 4.2.3), thus space before or after should *never* 
be preserved for leading or trailing blocks. In addition, such space 
should not affect the spacing between list items, which it currently 
does in XSL Formatter.

This response still doesn't fully address the last sentence in the last 
paragraph of the constraints section 6.8.3, the one about fences. So I'm 
still not completely convinced. I think this issue needs to be taken to 
the editors--if the three of us (me, RenderX, and Antenna House) can't 
arrive at a consistent intepretation, it's really ambiguous.

Here is Antenna House's full response:

> The result in XEP and in AXF are different.
> According to the XSL-FO Spec both implementations seem to be incorrect.
> 
> XSL-FO spec 6.8.3 fo:list-item says as follows:
> 
>     The block-progression-dimension of the content-rectangle of an area
>     generated by the fo:list-item is just large enough so that the
>     allocation-rectangles of all its child areas are contained in it.
>     In particular, the space-before and space-after of the child areas
>     have no effect on the spacing of the list item. For purposes of the
>     block-stacking constraints the areas generated by fo:list-item are
>     treated as if there they have a fence preceding and a fence
>     following them.
> 
> allcoation-rectangle of block-area doesn't contain space-before,
> space-after.(see also 4.2.3 Geometric Definitions) And it says that
> space-before, space-after don't affect the spacing of list-item. That is,
> such spaces should be ignored.

> e.g.
>     <fo:list-item>
>         <fo:list-item-label end-indent="label-end()">
>             <fo:block>-</fo:block>
>         </fo:list-item-label>
>         <fo:list-item-body start-indent="body-start()">
>             <fo:block space-before="12pt">Item 1</fo:block>
>         </fo:list-item-body>
>     </fo:list-item>
> 
> In the example above, spae-before="12pt" should be ignored. XEP's
> implementation makes an undesirable space inside list-item.
> 
> AXF's implementation also doesn't ignore the space, and has effect on
> the spacing of list item. (AXF implements the space resolution rule of
> the normal block.) In this sample, the correct implementation is that no
> space is generated between the list-item.

Cheers,

Eliot
-- 
W. Eliot Kimber, eliot at isogen.com
Consultant, ISOGEN International

1016 La Posada Dr., Suite 240
Austin, TX  78752 Phone: 512.656.4139

-------------------
By using the Service, you expressly agree to these Terms of Service http://www.renderx.com/tos.html



More information about the Xep-support mailing list