- From: Tavmjong Bah <tavmjong@free.fr>
- Date: Thu, 19 May 2011 21:45:36 +0200
- To: Vincent Hardy <vhardy@adobe.com>
- Cc: Cameron McCormack <cam@mcc.id.au>, "public-svg-wg@w3.org" <public-svg-wg@w3.org>
Hi all, As usual, my Internet provider's spam filter block's Cameron's messages, so I'll reply to Vincent's email. Ligature formation was discussed as part of Last Call Issue 2332: http://www.w3.org/Graphics/SVG/WG/track/issues/2332 At the time I sent an email summarizing the issue: http://lists.w3.org/Archives/Public/public-svg-wg/2010JulSep/0005.html and created a test: http://dev.w3.org/SVG/profiles/1.1F2/ua-tests/ligature-breaking.svg At the time, we decided to defer to SVG 1.1F3/2.0 further consideration of how ligatures should be treated. Tav On Thu, 2011-05-12 at 20:50 -0700, Vincent Hardy wrote: > Hi Cameron, > > On May 12, 2011, at 7:53 PM, Cameron McCormack wrote: > > > 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? > > (disclaimer: I had a bit of a long day, so I may not be processing this clearly enough :-) > > If I read the paragraph you quote and apply it to the example: > > a. the "f" and "i" characters map to a single 'fi' glyph (assuming the font has a ligature for the "f" + "i" character sequence). So characters at index i = 0 and i+1 = 1 map to a single glyph. > b. for i = 0, we should apply the x value at index 0, i.e., 10. > c. for i=1, we should ignore the value x, y and rotate, i.e., 20 is ignored. > > So I would say that the spec. says that in this case, the second x value is ignored. In implementation work I did (ok, that dates back a bit :-), I am pretty sure that is how I interpreted this. > > Cheers, > Vincent
Received on Thursday, 19 May 2011 19:46:09 UTC