Martin Doucha updated FOP-2438:
    Attachment: test.fo

Example of the bug. The only relevant part are lines 3 and 4:

<fo:block xmlns:d="http://docbook.org/ns/docbook"; text-align="start" 
text-align-last="justify">Test Test&nbsp;Test</fo:block>
<fo:block xmlns:d="http://docbook.org/ns/docbook"; text-align="justify" 
text-align-last="justify">Test Test&nbsp;Test</fo:block>

Line 3 triggers the bug, line 4 gets rendered correctly. The actual file 
contains U+00A0 instead of &nbsp;, I've changed it here to highlight which 
space is which.

> Non-breaking space causes alignment problems with text-align-last="justify"
> ---------------------------------------------------------------------------
>                 Key: FOP-2438
>                 URL: https://issues.apache.org/jira/browse/FOP-2438
>             Project: Fop
>          Issue Type: Bug
>    Affects Versions: 1.1, trunk
>            Reporter: Martin Doucha
>         Attachments: test.fo
> Non-breaking spaces are not included in stretch factor calculation under 
> special circumstances but they are stretched by the resulting (oversized) 
> stretch factor, leading to text overflowing out of block. Those special 
> circumstances are:
> - text-align-last="justify"
> - text-align="start" (or anything else other than justify)
> - the non-breaking space has to get positioned on the last line of the block
> Here's Knuth sequence for block "Test Test&nbsp;Test" with the above 
> alignment settings:
> <KnuthSequence [box w=17220, glue w=2500 stretch=1250 shrink=0, box w=17220, 
> aux. box w=2500, box w=17220, penalty p=-INFINITE w=0 (forced break, ??? 
> (-1))]>
> Notice that the second space is represented as box instead of glue with 
> penalty.
> Here's Knuth sequence for the same block but this time with alignment 
> justify/justify:
> <KnuthSequence [box w=17220, glue w=2500 stretch=1250 shrink=833, box 
> w=17220, aux. box w=0, aux. penalty p=INFINITE w=0, glue w=2500 stretch=1250 
> shrink=833, box w=17220, penalty p=-INFINITE w=0 (forced break, ??? (-1))]>
> This gets rendered correctly.

This message was sent by Atlassian JIRA

Reply via email to