[mpeg-OTspec] Composite Font, transformation matrix vs scaling

Daniel Strebe dstrebe at adobe.com
Fri Oct 2 00:15:43 CEST 2009


Karsten,

Thank you very much for calling attention to the mark attachment case. To restate the problem, applying the x/y metric scaling to the anchor positions does not yield correct results. Is that a correct statement of your thesis? I agree this is a problem.

If I understand your solution correctly, you think we should apply the glyph transformation matrix to the anchor points and not just to the glyph outlines. I agree that solves the problem. Metric scaling is not applicable to glyph construction, but only to placement and scaling of the fully constructed glyph.

I have less of a feel for how burdensome this requirement is. One method is to construct the glyph first, including all marks, and then to apply the general transformation. The other is to work in transformed space. They yield the same results.

If a ligature gets built up as a series of marks (does this happen?) then obviously glyph rotation would be wrong and meaningless; it would cause the elements of the ligature to move off the baseline. Indeed this is true of normal ligatures as well, and so it seems that  the ligature must be broken into component characters before applying a transformation matrix that includes rotation. Shear (obliquing), on the other hand, seems like it could apply to any character in any script, and without harming ligatures.

Regards,

- Daniel "daan" Strebe
Senior Computer Scientist
Adobe Systems Incorporated



On 09/09/19 3:40, "Karsten Luecke" <karstenluecke at yahoo.de> wrote:





Hello Mr Lunde and Mr Strebe,

discussion has moved on but I want to go back to:

> Perhaps we should apply a transformation matrics to the glyph,
 > and a separate x/y scaling to the metrics.

It occurred to me that in some circumstances, marks may get positioned
not at the desired place e.g. when using a transformation matrics to
slant outlines but not to metrics: As soon as mark attachment involves
an y-shift of the mark from its original position, the mark will be off
its ideal horizontal position.

I made four screenshots for illustration. Each time with base glyph to
the left, mark glyph in the middle, and to the right is the result of
attachment. The little circles to the left and in the middle symbolize
anchor/attachment points.

1.a
The mark sits on destined height already, the y value of anchors in both
base and mark glyph are 0:
http://www.kltf.de/OFF/1a_same_y_in_base_and_mark_anchors_not_slanted.jpg

1.b
In this case, slanting outlines but not anchor points is no problem
since both base and mark glyph would be slanted "in tune".
http://www.kltf.de/OFF/1b_same_y_in_base_and_mark_anchors_slanted.jpg

2.a
The mark does not sit on destined height -- imagine lowercase marks used
on uppercase letters. The y value of anchors in base and mark glyph differ.
http://www.kltf.de/OFF/2a_diff_y_in_base_and_mark_anchors_not_slanted.jpg

2.b
In this case, slanting outlines but not anchor points results in
mal-aligned marks.
http://www.kltf.de/OFF/2b_diff_y_in_base_and_mark_anchors_slanted.jpg

What do you think about a transformation matrics (rather than mere
scaling) for metrics too? Or would this be too complicated to implement?
Really crazy transformations may lead to nonsense results anyway in
terms of mark attachment, but slanting seems like something that people
are likely to make use of. (And in my opinion, mark attachment will be
"standard" in future fonts so should be taken into consideration.)

Best wishes,
Karsten




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20091001/3c67bb66/attachment.html>


More information about the mpeg-otspec mailing list