On Dec 22, 2005, at 19:48, Florent Georges wrote:

<snip />
Ok, thanks.  Is it because the text nodes in blocks (between inlines)
are part of the block, or because newlines are treated in a special
way?

Both. The text nodes are indeed part of the block, and specifying linefeed-treatment="preserve" causes the newlines to be treated specially.

In fact, other alternatives include:

<fo:inline>...</fo:inline>#x0A;&#x0D;<fo:inline>...</fo:inline>
(for Windows users)

Since the carriage-return character is by default treated as a space, and spaces around linefeeds are by default discarded.

For Mac users, this means that, using their default platform encoding, will result in a space between the inlines... where Windows or Linux users will get a new line. :-)

Another possibility is to have an fo:inline followed by an fo:character with character="&#x0A;" followed by another fo:inline (situation which currently is not handled very well in FOP 0.90alpha)

  Can you please point me where this is stated in the REC.?

Check the definitions of the related properties:
white-space-treatment
linefeed-treatment

and, most importantly, the definition for fo:character.

If you interpret the Rec very strictly (and use default values for white-space-treatment, linefeed-treatment and white-space-collapse):

<fo:inline>abc</fo:inline>

should actually map to

<fo:inline>
  <fo:character character="a" />
  <fo:character character="b" />
  <fo:character character="c" />
</fo:inline>

and the 'invisible' newlines between the fo:inlines should actually be considered:

<fo:character character="&#x0A;" />

But, as I indicated, FOP 0.90 is still not fully compliant here...


Hope this helps to make it a bit clearer.

Cheers,

Andreas

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to