[mpeg-OTspec] Toward a Composite Font format specification

Mikhail Leonov mleonov at microsoft.com
Tue Aug 25 22:12:50 CEST 2009

I agree, these properties need to have distinct names that emphasize the difference in how metrics are scaled, as opposed to how scale factors are specified.

In addition, should glyph magnification property have separate X and Y scale factors as well? I don't have concrete scenarios in mind that would use this feature yet, but it makes sense in terms of symmetry.

Best regards,
Mikhail Leonov

From: mpeg-OTspec at yahoogroups.com [mailto:mpeg-OTspec at yahoogroups.com] On Behalf Of Daniel Strebe
Sent: Friday, August 21, 2009 5:04 PM
To: Ken Lunde; mpeg-OTspec at yahoogroups.com
Subject: Re: [mpeg-OTspec] Toward a Composite Font format specification


As I explained in my earlier message found at the bottom of this e-mail, the two kinds of scaling are independent and mutually compatible operations. Both are necessary simultaneously for a good recipe in some situations.

ScaleFactorX/ScaleFactorY use the baseline as an anchor and scale everything concerning the glyph, including the outline, kerning, escapements, and advance.

Uniform scaling, on the other hand, scales from the center of the ideographic box, and does not affect anything but the glyph impression. Most importantly, it does not affect horizontal or vertical advance.

Both kinds of scaling are needed simultaneously when adjusting component fonts of an ideographic script when the component fonts contain ideographic boxes of differing aspect ratios and differing "color". Color refers to the foreground/background ratio of a glyph as determined by of amount of the advance width that the average glyph consumes, and the design weight of the typeface.

They should be given distinct names to distinguish the semantics. Perhaps:

Glyph magnification, in place of "uniform scaling"
Character scaling, to refer to ScaleFactorX/ScaleFactorY


- daan Strebe
Senior Computer Scientist
Adobe Systems Incorporated

On 09/08/21 13:59, "Ken Lunde" <lunde at adobe.com> wrote:


While I cannot answer for daan, I have observed that InDesign's
Composite Font dialog allows all three to be applied independent of
one another. My gut feeling is that their use should be mutually
exclusive, meaning ScaleFactor to be applied to both axes, or
ScaleFactorX+ScaleFactorY as a pair to be set independent of one
another. Perhaps daan can describe a usage scenario in which both
forms of scaling are required.

I would think that any use of both forms of scaling could also be
adequately described in terms of only ScaleFactorX+ScaleFactorY as a


-- Ken

On 2009/08/21, at 13:53, Mikhail Leonov wrote:

> Ken and Daan,
> Do you think ScaleFactorX+ScaleFactorY pair and ScaleFactor should
> be mutually exclusive, or are there examples where using both forms
> of scaling in the same entry provides value to the recipe creator?
> Mikhail Leonov
> Microsoft
> -----Original Message-----
> From: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com>  [mailto:mpeg-
> OTspec at yahoogroups.com <mailto:OTspec%40yahoogroups.com> ] On Behalf Of Ken Lunde
> Sent: Friday, August 14, 2009 6:07 PM
> To: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com>
> Subject: Re: [mpeg-OTspec] Toward a Composite Font format
> specification
> daan,
> Thank you. This is exactly the sort of use-scenario description that
> I was hoping to elicit with my post.
> Two additional <ComponentFont> attributes should be added:
>   ScaleFactorX
>   ScaleFactorY
> Regards...
> -- Ken
> On 2009/08/14, at 15:58, Daniel Strebe wrote:
>> Ken,
>> Thanks for wading into this.
>> I think we should look at Adobe InDesign's scaling in more detail.
>> What InDesign provides relevant to this discussion is:
>>      * Adjust baseline of a component font.
>>      * Scale glyphs in a component font horizontally.
>>      * Scale glyphs in a component font vertically.
>>      * Scale glyphs in a component font uniformly with respect to the
>> glyph's center while preserving its width.
>> You cannot fully replicate both semantics by dropping any of the
>> three
>> provisions. The purpose of (2) and (3) is to adjust a component font
>> whose glyphs normally run along some baseline, such as Latin-script
>> or
>> Indic-script fonts. The adjustment applies to the glyph outline as
>> well as its horizontal and vertical advance. The purpose of (4) is to
>> adjust a component font whose glyphs run along a center line, such as
>> Chinese ideographs. The adjustment applies to the glyph outline but
>> not its horizontal or vertical advance.
>> To elaborate, in Latin-script composite fonts, it is common to scale
>> glyphs of a component font horizontally, and this scaling typically
>> applies to all behavior of the font: the amount of horizontal space
>> the glyph takes up, kerning amounts, escapements. In ideographic
>> fonts, normally ideographs are considered fixed-width for typographic
>> purposes, and you do not want mixed widths regardless of which
>> component fonts the glyphs came from. Yet meanwhile you must balance
>> the space of the ideographs for two or more different source fonts,
>> each of which has a different idea of "color" for the font.
>> (Color, meaning, the amount of whitespace consumed by the "average"
>> glyph in the ideographic repertoire.) Therefore you scale from the
>> center of the ideographic box but leave the metrics alone.
>> The reason InDesign allows both forms of scaling is because (4) may
>> be
>> required to balance the color, while (2) and/or (3) may be required
>> to
>> adjust for a non-square construction of the fixed-width ideographic
>> glyphs. While square in most fonts, especially in the past, some are
>> not, and this practice is increasing. Hence, it is not so exotic
>> for a
>> well-constructed composite font to require all of (1), (2), (3), and
>> (4).
>> Regards,
>> - daan Strebe
>> Senior Computer Scientist
>> Adobe Systems Incorporated


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

More information about the mpeg-otspec mailing list