[ 
https://issues.apache.org/jira/browse/FOP-2438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15830043#comment-15830043
 ] 

Martin Doucha commented on FOP-2438:
------------------------------------

block_uax14_linebreaking.xml and block_white-space_3.xml simply need to be 
updated because the expected behavior has changed. But I don't know what to do 
with block_white-space_nbsp_1.xml. I suppose that trailing non-breaking spaces 
should be preserved so this patch does indeed introduce a bug in 
LineLayoutManager::addInlineArea() which I don't know how to fix.

> [PATCH] 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, 2.0, trunk, 2.1
>            Reporter: Martin Doucha
>         Attachments: nbsp.patch, 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 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
(v6.3.4#6332)

Reply via email to