On 25 Mar 2009, at 00:33, Maria2009 wrote:

Hi Maria

this is good news indeed. I will look for these recommendations and come
back to this forum again.

Some follow-up on this:
Hope you have better luck than I did. I could have sworn I had read something like that... :-/

Maybe I'm mixing up things, and the reference I remember is not Unicode at all.

Any help and further advise then is appreciated! I
am learning all this by doing.

At any rate, my original intention was not so much to 'correct' as to 'inform'. XSL-FO mentions absolutely nothing about non-XML white-space characters. The only references to be found are to the four codepoints I mentioned earlier. As far as XSL-FO is concerned, a zero-width space is just another character. On the other hand, things like Unicode line-separators or paragraph- breaks aren't spoken about either, but FOP does deal with them as an end-user would expect.

In the meantime, I have re-read your original post, and:

Now, for some of these nested elements I have to create special whitespace (like non-breaking small spaces), so I do not need the whitespace from the normalization. In other words: Instead of "text_text-from- element_text"
(with _ for normal spaces between the elements), I want
"text*text-from-element_text" (with * for non breaking whitespaces) but get
"text_*text-from-element_text".

What does the generated FO look like *exactly*? If there is any indentation or a linefeed, one regular space-character will always survive default settings for "white-space-collapse", "white-space- treatment" and "linefeed-treatment". You could experiment by setting the property 'linefeed- treatment="ignore"' on the surrounding block. If that relieves the issue, then it means that an unnecessary linefeed is present in the FO. For example the FO looks like (literally):

<fo:block>
  text
    <fo:inline>*text-from-element</fo:inline>
...

The white-space between the word 'text' and the fo:inline would yield one space that survives, since from the point-of-view of the processor (FOP) it just appears in between two characters.

If you were to make that:

<fo:block>text<fo:inline>*text-from-element</fo:inline>
...

then the output would be precisely what you seem to expect. Could be that this particular issue is solvable by adhering to best practices and simply producing processor-friendly (as opposed to human-readable) XML.

In other words: make sure the FO result does not contain ANY white- space that you don't want there, and FOP will behave. It treats regular spaces as XSL-FO prescribes, and for the rest, it only assumes that every other type of space is there because it was intended.


HTH!

Andreas

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to