<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.left
        {mso-style-name:left;}
span.bld
        {mso-style-name:bld;}
p.ad, li.ad, div.ad
        {mso-style-name:ad;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.ad1, li.ad1, div.ad1
        {mso-style-name:ad1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.ad2, li.ad2, div.ad2
        {mso-style-name:ad2;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.ad3, li.ad3, div.ad3
        {mso-style-name:ad3;
        mso-margin-top-alt:auto;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
p.replbq, li.replbq, div.replbq
        {mso-style-name:replbq;
        margin:2.4pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.yshortcuts
        {mso-style-name:yshortcuts;}
p.ad4, li.ad4, div.ad4
        {mso-style-name:ad4;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.ad5, li.ad5, div.ad5
        {mso-style-name:ad5;
        mso-margin-top-alt:auto;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.ad6, li.ad6, div.ad6
        {mso-style-name:ad6;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.yshortcuts1
        {mso-style-name:yshortcuts1;
        font-family:"Verdana","sans-serif";
        font-weight:bold;}
span.yshortcuts2
        {mso-style-name:yshortcuts2;
        font-family:"Verdana","sans-serif";
        font-weight:normal;}
span.EmailStyle35
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
/* List Definitions */
@list l0
        {mso-list-id:846938948;
        mso-list-template-ids:-1231676364;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue vlink=purple><div class=Section1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi John,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>We at Microsoft are also interested in potentially using composite fonts to make font selection decisions based on the font size range.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I believe this can be achieved by introducing a new optional attribute that describes the desired font size range for a ComponentFont element.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Another suggestion I have is to provide optional attributes for adjusting font selection parameters for a ComponentFont element. For example, some script and font combinations don’t support emboldening and italicization, so ComponentFont entries for such combinations could explicitly suppress these. This way, an application does not have to special case scripts and fonts for such adjustments.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Best regards,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Mikhail Leonov<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Microsoft<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> mpeg-OTspec@yahoogroups.com [mailto:mpeg-OTspec@yahoogroups.com] <b>On Behalf Of </b>John Hudson<br><b>Sent:</b> Saturday, June 27, 2009 10:58 AM<br><b>To:</b> mpeg-OTspec@yahoogroups.com<br><b>Subject:</b> [mpeg-OTspec] Optically-tuned font size in composite fonts<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div id=ygrp-mlmsg><div id=ygrp-msg><div id=ygrp-text><p class=MsoNormal><br><br><br><o:p></o:p></p><p>Dear All,<br><br>So far, we've been looking at composite fonts primarily in terms of <br>overcoming the 64K glyph set limit and providing multi-script support <br>from different source fonts within a single composite font. I'd like to <br>consider the possibility of using composite fonts to support multiple <br>optically-tuned fonts for different sizes of text. I presume the <br>participants of this group are familiar with the desirability of <br>optically-tuned fonts (also referred to as 'optical scaled' fonts or <br>'optical size' fonts), i.e. designs that are intended to be used at <br>specific sizes or ranges of sizes, often within a coordinated family of <br>optically-tuned fonts for e.g. display, subhead, text, captions/notes or <br>more precisely tuned fonts for individual sizes. [Anyone seeking a <br>better understanding of these things should order a copy of Tim Ahren's <br>very good book _Size-specific adjustments to type designs_.]<br><br>In metal type, type was by its nature size-specific and usually <br>optically-tuned, either in the letter design stage or during <br>punchcutting. In digital type, the most common mechanism to date has <br>been the production of independent fonts for different size ranges. <br>Conceivably, the optically tuned glyphs for different sizes could be <br>contained within a single font, addressed through a substitution <br>mechanism, or a single set out outlines could be parametrically or <br>individually manipulated for different sizes (or a combination of these <br>approaches could be used, e.g. applying substitution for basic sizing <br>and then hinting for device dependent adjustments).<br><br>Attendant on any implementation of optically-tuned fonts is the problem <br>of letting txt layout engines and applications know which font (or which <br>set of glyphs within a font) to use for which size(s). Leaving aside, <br>for now, models in which all the optically-tuned glyphs reside in the <br>same source font (since this implies possible impact of the 64K TT/OT <br>glyph set limit, and hence cannot be considered a scaleable solution (no <br>pun intended)), there are a number of possible ways in which fonts might <br>contain information usable by engines and applications to select an <br>appropriately tuned design for a particular size. [I'm also leaving <br>aside, for now, the tricky issue of nominal (pt) sizes in a variety of <br>low resolutions, implying cruder scaling factors that accounted for in <br>outline designs for higher resolution output.]<br><br>1. There exists in the current registered OpenType Layout feature set a <br>nominal GPOS feature <size> that can be used to store information <br>indicating at what sizes the font is intended to be used. I consider <br>this a hack. It isn't really a GPOS feature; rather, the GPOS lookup <br>structure is hijacked to store some basic size information. Since <br>selecting an optically-tuned font is a pre-layout requirement, one is <br>left with a mechanism in which this one GPOS feature needs to be <br>consulted by an engine or app before any other features are applied, <br>contrary to all other GPOS features, which are normally processed <br>down-stream of GSUB features. There are also tool issues surrounding <br>this feature, which means that only Adobe, to my knowledge, have <br>consistently included support for this feature in their optically tuned <br>fonts.<br><br>2. The idea has been put forward (on the OpenType developer list, <br>Typophile forums, and during development of the OT 1.6 spec) of a <br>dedicated 'size' table, which would contain information about both the <br>size(s) at which the individual font should be used and also its <br>relationship to other fonts in the same family. [In theory, this <br>information could also be put into an extension of an existing table, <br>e.g. OS/2.] Specification of such a table seems stalled by disagreement <br>over what it should contain.<br><br>I would like to consider the possibility of building optically-tuned <br>font selection information into the headers of the composite font, <br>alongside the script selection information that it, in many ways, <br>parallels (with the obvious implication that there may be quite complex <br>interaction between these sets of information, e.g. a composite font may <br>contain source fonts for different scripts with different sets of <br>optically-tuned designs, or might provide optically-tuned designs for <br>some scripts but not for others.<br><br>There are two ways in which this might be considered:<br><br>a) as a higher-level mechanism for optically-tuned font selection, <br>overriding whatever mechanism might be defined within the source fonts <br>('size' table or <size> feature); this offers users creating composite <br>fonts the possibility to assert their own preferences against the <br>decisions of the font developers;<br><br>b) as *the* mechanism for optically-tuned font selection, i.e. we give <br>up on the idea of including size selection information in the source <br>fonts and say that the way to define use of optically-tuned fonts is <br>through their inclusion in a composite font.<br><br>Regards, John<br><br>-- <br><br>Tiro Typeworks www.tiro.com<br>Gulf Islands, BC <a href="mailto:tiro%40tiro.com">tiro@tiro.com</a><br><br>Car le chant bien plus que l'association d'un texte<br>et d'une mélodie, est d'abord un acte dans lequel<br>le son devient l'expression d'une mémoire, mémoire<br>d'un corps immergé dans le mouvement d'un geste<br>ancestral. - Marcel Pérès<o:p></o:p></p></div><div><p class=MsoNormal><span style='color:white'><o:p></o:p></span></p></div></div></body></html>