Hi Jan > On 22 Jul 2015, at 00:36, Jan Tosovsky <j.tosov...@email.cz> wrote: > > <snip /> > But 'Item 2.1' is wrapped by BasicLinkLM and during its processing in > TextLayoutManager.addMappingAreas() a special treatment is performed as > context.getIPDAdjust() returns non zero value. So instead of width 39743 > (21395 + 3058 + 15290) one gets 41102. And this difference matches that > shift of the page number. > > What does that IPDAdjust represent?
While I cannot immediately say what the "ipd adjustment" is supposed to represent, I did notice something that does influence the result: the extra layer of fo:inlines, that only seem to be there to carry the keep-together.within-line property. If you remove those, the overall alignment already looks much better. Could be that IPDAdjust gets that value due to the parent fo:inline. Checking the usages of LayoutContext.setIPDAdjust(), I only get two: one in ContentLayoutManager.addAreas() --always to 0.0-- and one in LineLayoutManager.addInlineArea() --to LineBreakPosition.ipdAdjust. I suspect the latter is causing the problem. KR Andreas