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 "Martin Doucha (JIRA)" <ji...@apache.org> on 2015/01/08 21:50:34 UTC

[jira] [Comment Edited] (FOP-2438) Non-breaking space causes alignment problems with text-align-last="justify"

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

Martin Doucha edited comment on FOP-2438 at 1/8/15 8:50 PM:
------------------------------------------------------------

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. In both blocks, the first space is normal ASCII space, the second one is non-breaking.


was (Author: next_ghost):
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
(v6.3.4#6332)