# Re: differnece between fop and xep: which is right?

```I read the two definitions in 7.28,3 and 7.28.4 as follows:

label-end() =
width of the content-rectangle of the reference-area into
which the list-block is placed
- (the value of the provisional-distance-between-starts
+ the value of the start-indent
- the value of the provisional-label-separation)
of the closest ancestor fo:list-block```
```
(that is, as printed in the spec) and

body-start() =
(the value of the start-indent
+ the value of the provisional-distance-between-starts)
of the closest ancestor fo:list-block

(that is, I added parentheses around the expression so that all are
evaluated on fo:list-block).

Then you can do some math:

label-end() =
width of the content-rectangle of the reference-area into
which the list-block is placed
- (body-start()
- the value of the provisional-label-separation)
of the closest ancestor fo:list-block

which gives:

width of the content-rectangle - label-end()
+ provisional-label-separation = body-start()

label-end() is counted from the end of the content-rectangle, and
therefore width of the content-rectangle - label-end() is the distance
of the label end to the start of the content-rectangle. Then

from start of content-rectangle to end of label
+ provisional-label-separation = body-start()

+-----------------------------------------------------+
|                                                     |
|   +-------+   +-------------------------------+     |
|   |       |   |                               |     |
|   +-------+   |                               |     |
|           .   |                               |     |
|           .   |                               |     |
|           .   |                                     |
|           .<--------------------------------------->|
.   |       label-end()                   |
<------------->|
body-start() |
<--------->.<->|
(1)   .(2)|

(1) = width of the content-rectangle - label-end()
(2) = provisional-label-separation
(1) + (2) = body-start()

This is the relation you would expect, which supports my
interpretation.

Sorry for still being at the level of ascii art. Read it in Courier.

Simon

On Tue, Feb 14, 2006 at 09:36:06AM +0100, Jeremias Maerki wrote:
>
> On 14.02.2006 07:24:03 Manuel Mall wrote:
> > Jeremias,
> >
> > I did read those sections of the spec at the time and that's how the
> > question arose. I didn't check the code though. Any way the spec says in
> > 7.28.4:
> >
> > body-start() = the value of the start-indent + start-intrusion-adjustment
> > + the value of the provisional-distance-between-starts of the closest
> > ancestor fo:list-block.
> >
> > The questions arises what is meant by 'the value of the start-indent',
> > i.e. the start-indent of which fo is suppose to be used? Does the suffix
> > 'of the closest ancestor fo:list-block' apply to all three terms
> > 'provisional-distance-between-starts' or only to
> > 'provisional-distance-between-starts'?.
>
> "start-indent" can't be the start-indent of the list-item-body, that
> much is clear. I always assumed it was inherited(start-indent). Anything
> else would make no sense (recursion). I guess the spec could be clearer.
> "of the closest anscestor fo:list-block" (at least for me) applies
> directly and only to "provisional-distance-between-starts". That
> property is inherited but only applies to fo:list-block. Furthermore,
> start-intrusion-adjustment is something that can't come from the
> list-block.
>
> > I assume now it means the further that is start-indent is to be taken from
> > the closest ancestor fo:list-block. Therefore my initial concern that we
> > have a recursive case here is probably not an issue.
>
> As I wrote above, I believe it's inherited(start-indent), i.e. comes
> from the parent fo:list-item, not the list-block. This is important
> because it allows you to indent individual list-items differently in the
> same list-block.

--
Simon Pepping