[mpeg-OTspec] Toward a Composite Font format specification

Mikhail Leonov mleonov at microsoft.com
Fri Aug 21 22:53:51 CEST 2009

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

-----Original Message-----
From: mpeg-OTspec at yahoogroups.com [mailto:mpeg-OTspec at yahoogroups.com] On Behalf Of Ken Lunde
Sent: Friday, August 14, 2009 6:07 PM
To: mpeg-OTspec at yahoogroups.com
Subject: Re: [mpeg-OTspec] Toward a Composite Font format specification


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:



-- 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
> On 09/08/14 14:03, "Ken Lunde" <lunde at adobe.com> wrote:
> All,
> In an effort to move the discussions forward, I would like to
> enumerate the primary functional tags, along with my initial ideas
> about what properties or attributes can be specified for each. I have
> already floated these ideas, but now that we're in basic agreement
> about some principles, I am able to condense this into a more readable
> format.
> Here we go:
> Tag: <ComponentFont>
>  Attribute: Target (required; a unique name for the font)
>  Attribute: ScaleFactor (optional; scaling factor, expressed as a
> percentage)
>  Attribute: BaselineShift (optional; baseline shift, expressed as a
> percentage)
> Tag: <Language> (optional)
>  Attribute: Target (required; an IETF language tag, as specified by
> RFC 4646)
> Tag: <Encoding> (optional)
>  Attribute: Target (required; the Unicode ranges to be used in the
> Composite Font)
>  Attribute: Original (optional; the encoding ranges in the Component
> Font, if different than the "Target" attribute)
> Of course, an appropriate XML namespace will need to be specified.
> In looking at the Composite Font feature of Adobe InDesign, there are
> two types of scaling factors, both of which are independent from one
> another, meaning that both can be specified. One is a uniform scaling,
> applying to both the X- and Y-axis. The other is axis-independent
> scaling. While I am all for giving people enough rope to hang
> themselves, I consider this to be comparable to supplying the
> developer with razor-impregnated rope, and strongly suggest that the
> specification allows for only uniform scaling for the "ScaleFactor"
> attribute for the <ComponentFont> tag.
> To everyone in this discussions, please think about additional
> attributes for these three functional tags.
> Regards...
> -- Ken


Yahoo! Groups Links

More information about the mpeg-otspec mailing list