You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Luca Furini <lf...@cs.unibo.it> on 2005/04/08 18:52:22 UTC

Error in LabelEndFunction?

I was trying to make lists work in the most general situation when I
stumbled across this strange bug: it seems that the label-end() function
(implemented in fo/expr/labelEndFunction.java) does not compute the right
value.

It should compute the end-indent of a list-item-label, which is defined to
be (7.28.3)

  ipd of the reference area
  - (provisional-distance-between-starts
     + start-indent
     + start-intrusion-adjustment
     - provisional-label-separation)

It seems to me that the method LabelEndFunction.eval() computes rightly
the inner expression between the brackets, but fails to get the right
reference ipd.

The overall effect is that the end-indent stored inside a
CommonMarginBlock object is bigger than the available ipd, and the stack
limit set by the BlockLM for the LineLM is < 0.

Any idea about how to fix this (should it really be a bug)?

Regards
    Luca




Re: Error in LabelEndFunction?

Posted by Jeremias Maerki <de...@greenmail.ch>.
Hmm, I guess that has something to do with the layoutDimension mechanism
[1] that I suggested to Glen to have a look at a few days ago [2].

It may very well be that with the changes due to the Knuth approach the
layoutDimension stuff was broken. I didn't pay a lot of attention and
decided to look at it again later.

[1] http://marc.theaimsgroup.com/?t=110630668800003&r=1&w=2
[2] http://www.mail-archive.com/fop-dev@xmlgraphics.apache.org/msg00210.html

On 08.04.2005 18:52:22 Luca Furini wrote:
> 
> I was trying to make lists work in the most general situation when I
> stumbled across this strange bug: it seems that the label-end() function
> (implemented in fo/expr/labelEndFunction.java) does not compute the right
> value.
> 
> It should compute the end-indent of a list-item-label, which is defined to
> be (7.28.3)
> 
>   ipd of the reference area
>   - (provisional-distance-between-starts
>      + start-indent
>      + start-intrusion-adjustment
>      - provisional-label-separation)
> 
> It seems to me that the method LabelEndFunction.eval() computes rightly
> the inner expression between the brackets, but fails to get the right
> reference ipd.
> 
> The overall effect is that the end-indent stored inside a
> CommonMarginBlock object is bigger than the available ipd, and the stack
> limit set by the BlockLM for the LineLM is < 0.
> 
> Any idea about how to fix this (should it really be a bug)?
> 
> Regards
>     Luca
> 
> 



Jeremias Maerki