- From: Cameron McCormack <cam@mcc.id.au>
- Date: Fri, 13 May 2011 14:53:01 +1200
- To: public-svg-wg@w3.org
The spec says that every x or y value on a <text> element starts a new
text chunk, and that ligatures do not get formed across text chunk
boundaries. However, in http://www.w3.org/TR/SVG/text.html#TSpanElement
just below the attribute definitions, there is this text:
The following additional rules apply to attributes ‘x’, ‘y’, ‘dx’,
‘dy’ and ‘rotate’ when they contain a list of numbers:
...
* When multiple XML characters map to a single glyph (e.g., when a
ligature is used) - Suppose that the i-th and (i+1)-th XML
characters map to a single glyph. In this case, the i-th value for
the ‘x’, ‘y’, ‘dx’, ‘dy’ and ‘rotate’ attributes all apply when
rendering the glyph. The (i+1)-th values, however, for ‘x’, ‘y’
and ‘rotate’ are ignored (exception: the final ‘rotate’ value in
the list would still apply to subsequent characters), whereas the
‘dx’ and ‘dy’ are applied to the subsequent XML character (i.e.,
the (i+2)-th character), if one exists, by translating the current
text position by the given amounts before rendering the first
glyph associated with that character.
You can never have a multiple XML characters mapping to a single glyph
when you have an x or y value specified for the second or subsequent XML
characters, because it would cause the ligature not to be formed.
<text x="10 20">fi</text>
Even with a font that would otherwise form a ligature here, the f should
be painted at x = 10 and the i at x = 20. I think the text quoted above
is misleading, then.
Can someone confirm my reading of the spec?
--
Cameron McCormack ≝ http://mcc.id.au/
Received on Friday, 13 May 2011 02:53:34 UTC