freefont-bugs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Freefont-bugs] Combining Diacritical Marks (CDMs)


From: Josef W. Segur
Subject: Re: [Freefont-bugs] Combining Diacritical Marks (CDMs)
Date: Fri, 19 Sep 2003 21:53:28 -0400

On 19 Sep 03, at 12:06, Primoz wrote:

> Hello,
> 
> I apologize for such a late reply - I must have overlooked this mail in the 
> flood of email awaiting for me when I returned back from vacation.

You've put so much time and effort into this project a slight delay
is no problem at all.
 
> V petek 8. avgusta 2003 00:32 Josef W. Segur pi e:
> 
> > This Unicode range (U+0300 - U+036F) contains non-spacing marks
> > meant to be combined with almost any base character to add a
> > needed accent or other modification.
> > After the base character is drawn, the reference point is moved
> > by the width of the character. This implies that the outline of
> > a non-spacing mark should have negative horizontal values in
> > order to be combined with the base character. The "non-spacing"
> > also implies zero advance width for the mark so it does not move
> > the reference point.
> > TrueType fonts which support most of that range (Arial Unicode MS,
> > Caliban, Caslon, Code2000, Lucida Sans Unicode, Thryomanes) code
> > the glyphs as above with few exceptions. The Free fonts generally
> > don't.
> 
> Indeed. I have to admit I don't quite understand the mechanics of composite 
> char yet. Is it enough that the combining accents have negative horizontal 
> values and zero advance width, or do PfaEdit's "Anchor classes" came into 
> play.

Pfaedit's "Anchor classes" provide a way to give additional layout
information to rendering software that uses those OpenType features.
That works well for script blocks which contain base characters and
a set of marks to combine with them. For the Combining Diacritical
Marks to be accurately positioned you'd have to set anchor points
in all the base characters they might be combined with.

When using rendering which doesn't handle OpenType features, it seems
that all code points with the general codes Mn (Mark, non-spacing) and
Me (Mark, enclosing) should have zero advance width and negative
horizontal values (except those meant to be used with right to left
text need positive horizontal values). The amount of horizontal offset
depends on where the mark is supposed to be, but for proportional
fonts can't be really optimized for all base characters anyway.

> Do spacing modifier letters (U+02B0 - U+02FF) differ from combining 
> diacritical marks (U+0300 - U+036F) by having pozitive horizontal values and 
> non-zero advance width?

The Spacing Modifier Letters are base characters (combining class 0),
so they do differ. I'm not sure just how they're meant be used, though.

> > It is possible for a text layout engine to ignore those metrics,
> > as Microsoft's Uniscribe seems to do for a dozen or so of the CDMs.
> > I put together a little test using the first 40 CDMs and showing
> > the results with Lucida Sans Unicode and Code2000 on Win95:
> > <URL: http://users.westelcom.com/jsegur/cdmtst4.html >
> > For comparison, what can be done on my system with Free Serif and
> > Uniscribe is in the image:
> > <URL: http://users.westelcom.com/jsegur/ubpfserf.png >
> 
> I have taken a look. I am assured that the combining letters are an important 
> issue and should get fixed soon. I am willing to put my time into it, but I 
> am not quite sure if I understand already all the issues connected with it.

I certainly don't understand all the issues either. One I've thought of
is that some of those marks may be used as parts of composite characters,
and changing the horizontal positions would then make a mess of those
characters.

-- 
                                                 Joe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]