[mpeg-OTspec] Toward a Composite Font format specification
Ken Lunde
lunde at adobe.com
Sat Aug 15 03:07:29 CEST 2009
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
>
>
> 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
>
>
>
>
>
More information about the mpeg-otspec
mailing list