Finn Bock wrote:
I was taking a look at the issue where the text in a fo:block has a leading space added. I thought that by default, the initial spaces and LFs for such a block should be suppressed, but I can't quite find the place in the spec where it is defined.

It is not explicitely spelled out anywheree. The common interpretation is that 1. spaces are suppressed around line *breaks* (not line feed characters) for the default value of white-space-treatment 2. the start and end of a block are considered to constitute line breaks Specifically 1 means you don't get underlined spaces at the end of a line. If the following <fo:block text-decoration="underline">foo bar</fo:block> wraps after foo (i.e. there is a line break) the space is suppressed and you don't get foo_ bar (with underlined "foo" and "bar") but foo bar (with underlined "foo" and "bar").

Before you ask the other obvious question:
  <fo:block>foo    <fo:wrapper
    text-decoration="underline">     bar</fo:block>
is rendered as
  foo _bar
(with an underlined "bar"). There is a single non-underlined and a single
underlined space between the two (subject to space adjustment). Consecutive
spaces are *not* collapsed if they are "marked" differently (different
text decoration and perhaps different background etc.)
This isn't in the published spec, and unfortunately I couldn't find it
in the errata either, however, it is part of the spec anyway, according to
some w3 list members.

Anybody dares to interpret how the followung is rendered?
 <fo:block background-color="red" font-site="20pt">
   <fo:inline background-color="blue" font-site="10pt">foo
   </fo:inline><fo:inline background-color="green"
    font-site="15pt">bar</fo:inline></fo:block>
I think this should generate two spaces between  "foo" and "bar".

J.Pietschmann




Reply via email to