<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=us-ascii">
<meta name=Generator content="Microsoft Word 12 (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";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
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";
color:#1E66AE;
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:572742321;
mso-list-type:hybrid;
mso-list-template-ids:1051201360 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l1
{mso-list-id:1050377372;
mso-list-template-ids:-1804591420;}
@list l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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;}
@list l2
{mso-list-id:1858545338;
mso-list-type:hybrid;
mso-list-template-ids:-891648076 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
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'>Dear all,<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>It is exciting to resume this conversation.<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’d like to recap some of the previous talking points on
this issue.<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'>The general goal is to create an industry wide specification for
a composite font format that specifies rules that map Unicode ranges accompanied
by language information to fonts.<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'>To be successful and useful, such format should be reasonably
easy to implement, and it should address key motivating scenarios such as multi-lingual
font fallback and cases that are currently served by technologies such as WPF
composite fonts and Adobe composite fonts used in Illustrator and InDesign.<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'>Some issues to discuss:<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Physical font format. I believe at this point most people lean
towards using standard XML, as it has advantages of being human readable and supported
by numerous platforms, tools and libraries. Other ideas were to extend the
existing OpenType file specification by introducing a new table or an
additional ‘cmap’ subtable, or to use XAML format introduced by
WPF. I advocated the latter approach because of the additional versioning features
provided by XAML. However, I recognize that implementing support for XAML is
costlier in practice than implementing support for standard XML, and this may
hamper the adoption of the composite font format. At this point I would like to
retract the proposal to specifically use XAML, and instead I suggest using regular
XML for the composite font format.<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Versioning. I believe the composite font format should contain explicit
provisions and recommendations regarding how future enhancements and additions to
it will interact with software that interprets the first revision of the
format.<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Naming of the composite font itself. Many scenarios require
composite fonts themselves to have human readable names, so that they can be
selected and manipulated by the end user. There are different opinions on
whether composite font name is a mandatory or an optional feature. My
preference is for the composite font to always be named. In addition, I suggest
ability to include multiple localized names for a composite font. This is
somewhat similar to OpenType ‘name’ table behavior.<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Target font scaling. There should be a provision to normalize the
size of various target fonts so that they look reasonably well when used together
to render a page of international text.<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>5.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Language information for Unicode ranges. To successfully
disambiguate between overlapping CJK ranges, the format needs to include
language information as well. Existing xml:lang syntax seems to be sufficient
for this purpose. Here is an example from WPF composite font (exact syntax and
naming in the new composite font format may be different, but the conceptual
idea is the same):<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'> <!-- CHS --><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
<FontFamilyMap <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Unicode =
"2000-202E, 2030-20CF, 2100-23FF, 2460-27BF, 2980-29FF"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Language = "zh-Hans"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Target =
"Microsoft YaHei, Meiryo, Segoe UI, SimSun, MS Gothic, Tahoma"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Scale =
"1.0"/><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'> <!-- CHT --><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
<FontFamilyMap <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Unicode =
"2000-202E, 2030-20CF, 2100-23FF, 2460-27BF, 2980-29FF"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Language = "zh-Hant"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Target =
"Microsoft JhengHei, Meiryo, Segoe UI, MingLiU, MS Gothic, Tahoma"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Scale =
"1.0"/><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'> <!-- JA --><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
<FontFamilyMap <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Unicode = "2000-202E,
2030-20CF, 2100-23FF, 2460-27BF, 2980-29FF"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Language = "ja"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Target =
"Meiryo, Segoe UI, MS Gothic, Tahoma"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Scale =
"1.0"/><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'> <!-- KO --><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
<FontFamilyMap <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Unicode =
"2000-202E, 2030-20CF, 2100-23FF, 2460-27BF, 2980-29FF"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Language = "ko"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Target =
"Malgun Gothic, Segoe UI, Gulim, MS Gothic, Tahoma"<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>
Scale =
"1.0"/><o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>6.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Target font formats. A hard requirement is that the target font
format needs to support Unicode. However, this requirement can be interpreted in
different ways. Some may require Unicode to be an integral part of the target
font format specification – OpenType format satisfies this requirement,
and so does composite font format itself if we are to allow recursion (more on
that later.) Others may simply require a way to infer Unicode support from the
target font format, which may enable composite fonts to support older formats
such as Type 1 and .FON. This is an open area with lots of details to settle even
if we were to only allow OpenType target fonts.<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>7.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Recursion. The issue is whether a composite font can refer to
other composite fonts in the target font section. Ken Lunde prefers a flat
non-recursive format for simplicity reasons.<br>
I prefer the approach that allow recursion because it allows for more
flexibility on the application and platform side. To quote my previous email on
the subject:<br>
<br>
“While I understand that some platforms don't require recursive fallback
and are not built to support it, in the long run I feel that not
supporting recursion in this format would be a serious limitation. For example,
imagine a font vendor or a high end design application installing a pre-set
composite font A that provides great uniform appearance of multi-lingual text
in general, but doesn't include Indic scripts. I chose Indic here because the
support for it varies widely today across multiple platforms and applications. Next,
imagine an email application or a word processor that defines a stylistically
consistent set of multi-lingual text that has wider coverage than composite
font A and supports Indic scripts (the said application may have installed
additional Indic fonts for this purpose.)<br>
<br>
If a user pastes or imports a rich text paragraph that primarily uses composite
font A into the email application/word processor, it may create on the fly
composite font B that prefers using A for the supported scripts, and its own
set of fonts for other scripts such as Indic. Note that this is all done before
the system default fallback takes place. I believe there has to be at least one
level of recursion possible in order to make this scenario work. Obviously,
with more nesting and document interop/import there will be more levels of
recursion required.”<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>8.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Font family or font face. Does a composite font specify a font
family or a font face? I believe so far the assumption has been that it defines
a font family. One benefit of this approach is ability to define one set of
rules that covers a large number of font weight/width/slope combinations. However,
we have not specified what face grouping approach will be used. OpenType, for
example, defines several sets of family and face names for various platforms.
Microsoft’s long term preference is to group faces into families using
weight/width/slope rules introduced by WPF. However, other platforms use different
font family grouping rules. This is something we need to rationalize,
especially if composite fonts end up supporting multiple target font formats.<o:p></o:p></span></p>
<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo3'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>9.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Cross font properties. This is related to issue 4. It may be
desirable to have some shared properties that override target font properties,
for example one may want to have a single underline position and thickness for a
line of text render using several target fonts. Another important property is
line spacing – it is usually desired to have uniform line spacing in a
paragraph of text even if multiple fonts are used inside it.<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 would like to make a suggestion on subsequent discussions. Let’s
create new topics for each open issue, with its brief description in the
subject line. For example, we can create “Target font formats” or “Composite
font recursion” topics to limit the scope to these particular issues. How
does this sound?<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>
<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>Levantovsky, Vladimir<br>
<b>Sent:</b> Thursday, February 19, 2009 2:45 PM<br>
<b>To:</b> Ken Lunde<br>
<b>Cc:</b> mpeg-OTspec@yahoogroups.com; Karsten Luecke<br>
<b>Subject:</b> RE: [mpeg-OTspec] AHG on Open Font Format kick off<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>Dear Ken,<br>
<br>
First of all, addressing the last point in your email - I've sent an<br>
invitation to Karsten to join this group. I also would like to remind<br>
people once again that the participation in this group is open to any<br>
individual, regardless of their affiliation. A participant does not need<br>
to receive an invitation in order to join the group - it can be done<br>
either through the web (<a
href="http://tech.groups.yahoo.com/group/mpeg-OTspec/">http://tech.groups.yahoo.com/group/mpeg-OTspec/</a>)<br>
or by sending email to <br>
<a href="mailto:mpeg-OTspec-subscribe%40yahoogroups.com">mpeg-OTspec-subscribe@yahoogroups.com</a><br>
<br>
Thank you for providing the summary of Adobe composite fonts solution.<br>
Since prior discussions happened outside the scope of this AHG, I think<br>
that in order to have a productive discussion we should make an effort<br>
to bring everyone up to date regarding different ideas and proposals<br>
discussed earlier. Your email is a very good step in this direction and<br>
I would like to ask other participants to present their views and ideas<br>
on this subject on this email list. Alternatively, any participant may<br>
prepare a document outlining your views and ideas, and upload it to AHG<br>
file storage for further review and discussion on this email list.<br>
<br>
Thank you,<br>
Vladimir<br>
<br>
> -----Original Message-----<br>
> From: Ken Lunde [mailto:<a href="mailto:lunde%40adobe.com">lunde@adobe.com</a>]
<br>
> Sent: Thursday, February 19, 2009 5:06 PM<br>
> To: Levantovsky, Vladimir<br>
> Cc: <a href="mailto:mpeg-OTspec%40yahoogroups.com">mpeg-OTspec@yahoogroups.com</a>;
Karsten Luecke<br>
> Subject: Re: [mpeg-OTspec] AHG on Open Font Format kick off<br>
> <br>
> Vladmir,<br>
> <br>
> Many thanks for setting up this AHG. I have a lot of irons in <br>
> the fire at the moment, and I am guessing that others can say <br>
> the same.<br>
> <br>
> Still, it is important for this project to move forward.<br>
> <br>
> One of the sticking points in previous discussions, which may <br>
> have caused them to stall, was our insistence that the <br>
> resulting fonts be cross-platform, which meant limiting the <br>
> font format of the component fonts, and requiring built-in <br>
> Unicode support. After discussing this point with key people <br>
> from Apple, we now agree to lift this restriction. Instead, I <br>
> would strongly recommend that the format supports a flag that <br>
> indicates that the Composite Font format is intended to be <br>
> cross-platform, and if it is enabled, some aspects become <br>
> more strict, such as limiting the font format to those that <br>
> can be cross-platform (this would exclude OCF, sfnt-CID, and <br>
> any resource- fork font) and requiring built-in Unicode <br>
> support. With this flag turned off, correctly handling the <br>
> component fonts then becomes the responsibility of the <br>
> client, which may be an OS.<br>
> <br>
> As stated in previous discussions, Adobe Systems has <br>
> implemented Composite Font support in several ways. Our ATC <br>
> (Adobe Type Composer) application was a rather simple <br>
> front-end to our AdobeTypeComposer ProcSet that allowed <br>
> various components to be used together, and was limited to <br>
> Shift-JIS encoding with its user-defined region. Some of our <br>
> flagship applications, such as InDesign and Illustrator, <br>
> include built-in Composite Font support that allows customers <br>
> to select a Base Font, then select other fonts to serve as <br>
> replacements for various character classes, such as Latin, <br>
> symbols, punctuation, and kana. At a high level, perhaps for <br>
> Composite Fonts that are not declared to be cross-platform, <br>
> script-based labels can suffice. But, for those that have <br>
> been declared for cross-platform use, the script-based labels <br>
> should function to specify specific Unicode ranges. The <br>
> format itself should also allow the granularity to be at the <br>
> code point level, meaning that specific code points, not code <br>
> point ranges, should be permitted. Specifying language also <br>
> has value, in that it allows this format to accommodate the <br>
> building of Pan-CJK fonts.<br>
> <br>
> One of my preferences, as conveyed in previous discussions, <br>
> is that Composite Font definitions be flat, meaning that a <br>
> Composite Font cannot use another Composite Font as a <br>
> component. A front-end for creating Composite Font <br>
> definitions could allow a user to specify a Composite Font as <br>
> a component, but that it would need to be flattened. <br>
> Considering how complex fonts can become, limiting (or <br>
> preventing, in this case) recursion is probably a good thing.<br>
> <br>
> In terms of the file format itself, for obvious reasons it <br>
> should be XML, which means that it can be human- and machine-readable.<br>
> <br>
> Lastly, I would like to request that Karsten Luecke <br>
> (<a href="mailto:karsten.luecke%40kltf.de">karsten.luecke@kltf.de</a><br>
> ) be added to this discussion. His insights and opinions will <br>
> be valuable.<br>
> <br>
> Regards...<br>
> <br>
> -- Ken<br>
> <br>
> On 2009/02/17, at 10:58, Levantovsky, Vladimir wrote:<br>
> <br>
> ><br>
> > Dear AHG OFF members,<br>
> ><br>
> > First of all, I would like to welcome our new members of <br>
> the group and <br>
> > thank all group members for their contributions and continued <br>
> > participation.<br>
> ><br>
> > This message is an official kick off of the new AHG exploration <br>
> > activities.<br>
> > The AHG mandates, as established at the 87th WG11 meeting are:<br>
> > 1. To explore possible ways to overcome the 64K limit of <br>
> the number of <br>
> > glyphs in the existing font format specification. The preferred way <br>
> > should not adversely affect any existing implementations <br>
> and should be <br>
> > backward compatible with the existing OFF specification.<br>
> ><br>
> > 2. To produce a report outlining the results of the exploration <br>
> > activities and propose a way forward for WG11 to achieve <br>
> stated goals.<br>
> ><br>
> > All activities of the AHG will be conducted on this reflector; a <br>
> > telephone conference call can be arranged and, if <br>
> necessary, should be <br>
> > scheduled with advanced two-week notice. The group members <br>
> also have <br>
> > unrestricted access to Web-based message archive <br>
> > (<a href="http://tech.groups.yahoo.com/group/mpeg-OTspec/messages">http://tech.groups.yahoo.com/group/mpeg-OTspec/messages</a><br>
> > ) and file storage <br>
> > (<a href="http://tech.groups.yahoo.com/group/mpeg-OTspec/files/">http://tech.groups.yahoo.com/group/mpeg-OTspec/files/</a><br>
> > ).<br>
> ><br>
> > The subject of 64K limit in OFF/OpenType/TrueType fonts have been <br>
> > raised a number of times in the past. Many of AHG participants have <br>
> > voiced their opinions on the issue and I would like to <br>
> invite all of <br>
> > you to contribute your ideas and suggestions to this group for <br>
> > continued discussion. Our goal is to come up with the <br>
> recommendations <br>
> > and working draft of the future specification that will help to <br>
> > eliminate or overcome the restriction of 64K glyphs in a font.<br>
> ><br>
> > Thank you very much for your efforts.<br>
> > With kind regards,<br>
> > Vladimir<br>
> ><br>
> ><br>
> > <br>
> <br>
> <o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span style='color:white'><o:p></o:p></span></p>
</div>
</div>
</body>
</html>