[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