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