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
