<HTML>
<HEAD>
<TITLE>Re: [mpeg-OTspec] Toward a Composite Font format specification</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Ken,<BR>
<BR>
Thanks for wading into this.<BR>
<BR>
I think we should look at Adobe InDesign’s scaling in more detail. What InDesign provides relevant to this discussion is:<BR>
<BR>
</SPAN></FONT><OL><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Adjust baseline of a component font.
</SPAN></FONT><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Scale glyphs in a component font horizontally.
</SPAN></FONT><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Scale glyphs in a component font vertically.
</SPAN></FONT><LI><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Scale glyphs in a component font uniformly with respect to the glyph’s center while preserving its width.<BR>
</SPAN></FONT></OL><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
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.<BR>
<BR>
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.<BR>
<BR>
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).<BR>
<BR>
Regards,<BR>
<BR>
— daan Strebe<BR>
Senior Computer Scientist<BR>
Adobe Systems Incorporated<BR>
<BR>
<BR>
On 09/08/14 14:03, "Ken Lunde" <<a href="lunde@adobe.com">lunde@adobe.com</a>> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'> <BR>
 <BR>
 <BR>
<BR>
All,<BR>
<BR>
In an effort to move the discussions forward, I would like to  <BR>
enumerate the primary functional tags, along with my initial ideas  <BR>
about what properties or attributes can be specified for each. I have  <BR>
already floated these ideas, but now that we're in basic agreement  <BR>
about some principles, I am able to condense this into a more readable  <BR>
format.<BR>
<BR>
Here we go:<BR>
<BR>
Tag: <ComponentFont><BR>
 Attribute: Target (required; a unique name for the font)<BR>
 Attribute: ScaleFactor (optional; scaling factor, expressed as a  <BR>
percentage)<BR>
 Attribute: BaselineShift (optional; baseline shift, expressed as a  <BR>
percentage)<BR>
<BR>
Tag: <Language> (optional)<BR>
 Attribute: Target (required; an IETF language tag, as specified by  <BR>
RFC 4646)<BR>
<BR>
Tag: <Encoding> (optional)<BR>
 Attribute: Target (required; the Unicode ranges to be used in the  <BR>
Composite Font)<BR>
 Attribute: Original (optional; the encoding ranges in the Component  <BR>
Font, if different than the "Target" attribute)<BR>
<BR>
Of course, an appropriate XML namespace will need to be specified.<BR>
<BR>
In looking at the Composite Font feature of Adobe InDesign, there are  <BR>
two types of scaling factors, both of which are independent from one  <BR>
another, meaning that both can be specified. One is a uniform scaling,  <BR>
applying to both the X- and Y-axis. The other is axis-independent  <BR>
scaling. While I am all for giving people enough rope to hang  <BR>
themselves, I consider this to be comparable to supplying the  <BR>
developer with razor-impregnated rope, and strongly suggest that the  <BR>
specification allows for only uniform scaling for the "ScaleFactor"  <BR>
attribute for the <ComponentFont> tag.<BR>
<BR>
To everyone in this discussions, please think about additional  <BR>
attributes for these three functional tags.<BR>
<BR>
Regards...<BR>
<BR>
-- Ken<BR>
<BR>
  <BR>
    <BR>
<FONT COLOR="#FFFFFF"><BR>
</FONT><BR>
</FONT></SPAN></BLOCKQUOTE>
</BODY>
</HTML>