No subject
Wed Jan 29 08:39:57 CET 2020
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.
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.
=20
Would it be fair to state as a primary goal:
A "composite font" is necessary to work around the restrictions of the
maximum number of glyph ids that can be supported by some of the tables
of an OpenType(tm) font.
=20
Beyond that primary goal, things get a bit more fuzzy for me. I have
questions such as:
1. should the client of a font engine see and treat a composite
font as a single font without any changes necessary to the client and
its application software?
2. what are the defining metrics (e.g. max ascender, descender,
leading) of the composite font and how closely do the components of a
composite need to adhere to these metrics?
3. which component of the composite font would be responsible for
providing the "no-glyph glyph" when a particular character is not found
anywhere?
4. what are the limitations and/or flexibility with regard to
character encodings, for example, one component supporting Unicode CMAP
table "3,10" and another only "3,1"?
5. how will the composite refer to the components in different
deployments, e.g. ROM based fonts, disk files, dynamically-memory mapped
fonts, resource file offsets, etc.?
6. when the client includes OpenType Layout (advanced typographic
extension) processing, how will the composite present related tables
(GSUB, GPOS, GDEF, etc.) to the layout engine?
7. would layout engines, which are generally independent of the
font engines, need updating to support glyph ids outside of the current
64K range?
8. and others...
=20
We (Monotype) have some experience with trying to address related
questions, but more for flexibility of component font delivery,
component font glyph repair, and other features, and not for the purpose
of working around the max number of glyphs allowed in OpenType fonts.
But, our solution to our needs is similar to what has been discussed.
=20
Our solution tries to avoid the need of any knowledge of the composite
nature of the font above the font engine. The font engine serves the
glyphs of the composite font as though the font components had been
physically merged into one and provides "merged" OpenType metric and
layout tables.
=20
When "compositing" fonts, there may be need to provide a "master metric
font", that is, tag one of the component fonts as the "metric font". Is
this something being considered?
=20
Also, the component fonts may have overlapping Unicode ranges.
Specifying from which component font a Unicode character or range should
be retrieved is important. And, this decision affects the lookups or
rule sets that may exist in layout (GSUB, GPOS, etc.) tables in the
component fonts. For example, it may be desirable for a component
font's set of Latin numerals to be priority in the composite font. But
if another font in the set which contains, for example, Indic also
contains nominal Latin numerals as well as some stylized Latin numerals
that would be substituted in within a specific language/script context
using a GSUB table, then knowledge and interaction of these rules must
be handled in the composite font usage scenario. I've seen mention of
the issue of specifying Unicode ranges per component in these
discussions, but I don't believe I've seen mention of the layout tables
and the interaction thereof.
=20
=20
My response to an email thread that was active months ago has been long
in coming. I'm sorry about that. In fact, there was a specific
question to me and/or Monotype that asked "[what] do [I] think of Ken's
proposal: the definition of portable "Composite Font"?". At this point
I'd have to better understand the proposal, WPF, the goals (of font
deployment, of limiting affect to font engine client/application level
code, of OpenType Layout) that this group is after in order to give a
thorough answer.
=20
But, in the mean time, I hope this email gives some other considerations
into the problem.
=20
Thanks,
=20
=20
Jeff
=20
=20
=20
Jeff Carey
Principal Software Engineer
Monotype Imaging Inc.
jeff.carey at monotypeimaging.com
(781) 970-6073
www.monotypeimaging.com
-----Original Message-----
From: mpsuzuki at hiroshima-u.ac.jp [mailto:mpsuzuki at hiroshima-u.ac.jp]=20
Sent: Wednesday, December 03, 2008 11:37 PM
To: Michelle Hill
Cc: Mikhail.Leonov at microsoft.com; tseung at apple.com; lunde at adobe.com;
prubini at adobe.com; tphinney at adobe.com; wchao at windows.microsoft.com;
sergeym at windows.microsoft.com; simonda at windows.microsoft.com;
srirams at microsoft.com; Rob.Relyea at microsoft.com; lofting at apple.com;
kgaddas at adobe.com; sppatel at adobe.com; fenwick at apple.com;
plotka at apple.com; juliog at apple.com; mikew at microsoft.com;
lemon at adobe.com; Levantovsky, Vladimir; Carey, Jeff
Subject: Re: Composite Fonts
=20
Dear Michelle,
=20
I'm glad to hear further involvement of the experts. Did
they receive the previous messages in this discussion?
=20
I want to ask their comments on the issues being discussed
since this summer:
=20
The composite font in WPF has automatic fallback
and no restriction about the file format of the
component fonts. Ken from Adobe proposed to distinguish
2 differnt requirements,
=20
[Fallback Font]
with automatic fallback, no restriction of the
file format of the component font (a composite
font can be a component of another composite font).
even if all related files are transferred from
the producers to the consumers, its interpretation
may be still implementation-specific.
=20=20=20
[Composite Font]
without automatic fallback (missing glyph should cause
an error or serious warning), and the component fonts
are restricted to OpenType with Unicode cmap only.
it is intended to be portable as far as possible -
its ambiguity is only that comes from OpenType font
driver implementation.
=20
The most remarkable implementation-specific inter-
pretations would be the encoding problems. I guess,
everybody in this discussion agreed that the character
ranges to assign a component font (please think about
"Unicode" property in WPF FontFamilyMap) should be
specified by Unicode, but it is still arguable whether
the component font is required to have builtin Unicode
interface. Some platforms can access a character by Unicode
codepoint even if the font has legacy encodings only
(PostScript Type1 font might be typical example) by
using internal encoding conversion.
=20
In my personal opinion, even if "Fallback Font" is the most
wanted one, the standardization of composite font should
clarify the coverage of portable functionalities. Also I want
the standard to provide a define to check if non-standardized
functionalities are included, so the standardization of
portable functionalities (Ken calls its coverage as
"Composite Font") is important for me.
=20
I want to ask Vladimir and Jeff - how do you think of Ken's
proposal: the definition of portable "Composite Font"?
=20
Regards,
mpsuzuki
=20
On Wed, 3 Dec 2008 10:54:48 -0800
Michelle Hill <mihill at microsoft.com> wrote:
=20
>I just spoke with Vladimir Levantovsky and Jeff Carey from Monotype.
They are both very interested in being involved in this discussion. I've
added them to this email thread.
>=20
>Thanks!
>Michelle
>=20
>=20
>-----Original Message-----
>From: mpsuzuki at hiroshima-u.ac.jp [mailto:mpsuzuki at hiroshima-u.ac.jp]
>Sent: Thursday, November 27, 2008 12:48 AM
>To: Mikhail Leonov
>Cc: tseung at apple.com; lunde at adobe.com; prubini at adobe.com;
tphinney at adobe.com; Michelle Hill; Worachai Chaoweeraprasit; Sergey
Malkin; Simon Daniels; Sriram Subramanian; Rob Relyea;
lofting at apple.com; kgaddas at adobe.com; sppatel at adobe.com;
fenwick at apple.com; plotka at apple.com; juliog at apple.com; Michael Warning;
lemon at adobe.com
>Subject: Re: Composite Fonts
>=20
>Dear Mikhail,
>=20
>In our discussion about composite font format, we took
>WPF composite font in XML format as an example. During
>the discussion, I had wrong bias and (mis-)understood as
>=20
>* when a language is specified, the Unicode ranges of
> all "FontFamilyMap" elements have no intersection.
>=20
>But, when I checked the methods of FontFamilyMap class
>and FontFamilyMapCollection class, I could not find such
>restriction (e.g. I expected some notes like "an insertion
>of FontFamilyMap with overlapping Unicode range causes
>an error XXX"). On the other hand, when I searched the
>examples of WPF composite font XML, I could find such
>overlapping examples:
>=20
> <!-- CHS -->
> <FontFamilyMap
> Unicode =3D "0590-06FF, 0750-077F, FB1D-FDCF,
FDF0-FDFF, FE70-FEFE"
> Language =3D "zh-Hans"
> Target =3D "Microsoft Uighur, Times New Roman"
> Scale =3D "1.0"/>
> <!-- Other -->
> <FontFamilyMap
> Unicode =3D "0000-052F, 0590-06FF, 0750-077F,
1D00-1FFF, FB00-FB0F, FB1D-FDCF, FDF0-FDFF, FE20-FE2F, FE70-FEFE"
> Target =3D "Times New Roman"
> Scale =3D "1.0"/>
>=20
> There's no FontFamilyMap element for
> Unicode =3D=3D "0000-052F" && Language =3D=3D "zh-Hans".
>=20
>I guess, when the language is set to zh-Hans and Arabic
>characters are requested, this XML would be interpreted as:
>=20
>1. Microsoft Uighur is scanned.
>2. If appropriate glyph could not be found, Times New Roman
> (in the zh-Hans-specific element) is scanned.
>3. If appropriate glyph could not be found, Times New Roman
> (in language-independent element) is scanned.
>=20
>So, now I think there's no problem in the overlapping of Unicode
>ranges among the elements. The order of the FontFamilyMap
>elements in XML specifies the order of the glyph availability
>checking. I'm correctly understanding?
>=20
>If my understanding is correct, the validator of Composite
>Font (without implicit fallback, the format Ken proposed)
>should guarantee that there's no overlapped Unicode range
>specification. I think it's slightly troublesome work, in
>comparison with the checking if all component is in
>OpenType font file format.
>=20
>Regards,
>mpsuzuki
>=20
>On Thu, 27 Nov 2008 15:30:51 +0900
>mpsuzuki at hiroshima-u.ac.jp wrote:
>=20
>>Dear Tony,
>>=20
>>I attached a figure to explain how each groups are
>>processed by font drivers. I wish it's easier than
>>my lengthy text. I attached PNG, SVG and Adobe
>>Illustrator (browsible by PDF viewer), all files
>>have same figure.
>>=20
>>Regards,
>>mpsuzuki
>=20
------_=_NextPart_001_01C9A1DD.925F6A20
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc=
hemas-microsoft-com:office:word" xmlns:st1=3D"urn:schemas-microsoft-com:off=
ice:smarttags" xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
name=3D"City"/>
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
name=3D"place"/>
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
name=3D"PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
span.EmailStyle18
{mso-style-type:personal-compose;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 77.95pt 1.0in 77.95pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:1540508531;
mso-list-type:hybrid;
mso-list-template-ids:793172260 -1649655250 67698713 67698715 67698703 676=
98713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:60.0pt;
mso-level-number-position:left;
margin-left:60.0pt;
text-indent:-24.0pt;}
@list l0:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=3DEN-US link=3Dblue vlink=3Dpurple>
<div class=3DSection1>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>I am trying to wrap my head around all of this. I like Mikhai=
l’s
idea of breaking different talking points into different threads. I&#=
8217;d
like to suggest it start with a requirements thread.<o:p></o:p></span></fon=
t></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>From Mikhail Leonov:<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 color=3D"#1f497d" face=3D"Courier Ne=
w"><span
style=3D'font-size:11.0pt;color:#1F497D'>The general goal is to create an
industry wide specification for a composite font format that specifies rule=
s
that map Unicode ranges accompanied by language information to fonts.</span=
></font><o:p></o:p></p>
<p class=3DMsoPlainText><font size=3D2 color=3D"#1f497d" face=3D"Courier Ne=
w"><span
style=3D'font-size:11.0pt;color:#1F497D'>To be successful and useful, such =
format
should be reasonably easy to implement, and it should address key motivatin=
g 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></font></p>
<p class=3DMsoPlainText><font size=3D2 color=3D"#1f497d" face=3D"Courier Ne=
w"><span
style=3D'font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></font></p=
>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Would it be fair to state as a primary goal:<o:p></o:p></span></fon=
t></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>A “composite font” is necessary to work around the
restrictions of the maximum number of glyph ids that can be supported by so=
me
of the tables of an OpenType™ font.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Beyond that primary goal, things get a bit more fuzzy for me. =
I
have questions such as:<o:p></o:p></span></font></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>1.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>should the cli=
ent of
a font engine see and treat a composite font as a single font without any
changes necessary to the client and its application software?<o:p></o:p></s=
pan></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>2.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>what are the
defining metrics (e.g. max ascender, descender, leading) of the composite f=
ont
and how closely do the components of a composite need to adhere to these
metrics?<o:p></o:p></span></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>3.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>which componen=
t of
the composite font would be responsible for providing the “no-glyph g=
lyph”
when a particular character is not found anywhere?<o:p></o:p></span></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>4.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>what are the
limitations and/or flexibility with regard to character encodings, for exam=
ple,
one component supporting Unicode CMAP table “3,10” and another =
only
“3,1”?<o:p></o:p></span></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>5.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>how will the
composite refer to the components in different deployments, e.g. ROM based
fonts, disk files, dynamically-memory mapped fonts, resource file offsets, =
etc.?<o:p></o:p></span></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>6.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>when the clien=
t
includes OpenType Layout (advanced typographic extension) processing, how w=
ill
the composite present related tables (GSUB, GPOS, GDEF, etc.) to the layout
engine?<o:p></o:p></span></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>7.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>would layout
engines, which are generally independent of the font engines, need updating=
to
support glyph ids outside of the current 64K range?<o:p></o:p></span></p>
<p class=3DMsoPlainText style=3D'margin-left:60.0pt;text-indent:-24.0pt;mso=
-list:
l0 level1 lfo2'><![if !supportLists]><font size=3D2 face=3D"Courier New"><s=
pan
style=3D'font-size:10.0pt'><span style=3D'mso-list:Ignore'>8.<font size=3D1
face=3D"Times New Roman"><span style=3D'font:7.0pt "Times New Roman"'> =
;
</span></font></span></span></font><![endif]><span dir=3DLTR>and othersR=
30;<o:p></o:p></span></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>We (Monotype) have some experience with trying to address related
questions, but more for flexibility of component font delivery, component f=
ont
glyph repair, and other features, and not for the purpose of working around=
the
max number of glyphs allowed in OpenType fonts. But, our soluti=
on
to our needs is similar to what has been discussed.<o:p></o:p></span></font=
></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Our solution tries to avoid the need of any knowledge of the compos=
ite
nature of the font above the font engine. The font engine serves the
glyphs of the composite font as though the font components had been physica=
lly
merged into one and provides “merged” OpenType metric and layou=
t
tables.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>When “compositing” fonts, there may be need to provide =
a “master
metric font”, that is, tag one of the component fonts as the
“metric font”. Is this something being considered?<o:p></=
o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Also, the component fonts may have overlapping Unicode ranges. &nbs=
p;Specifying
from which component font a Unicode character or range should be retrieved =
is
important. And, this decision affects the lookups or rule sets that m=
ay
exist in layout (GSUB, GPOS, etc.) tables in the component fonts. For
example, it may be desirable for a component font’s set of Latin nume=
rals
to be priority in the composite font. But if another font in the set
which contains, for example, Indic also contains nominal Latin numerals as =
well
as some stylized Latin numerals that would be substituted in within a speci=
fic
language/script context using a GSUB table, then knowledge and interaction =
of
these rules must be handled in the composite font usage scenario. I&#=
8217;ve
seen mention of the issue of specifying Unicode ranges per component in the=
se
discussions, but I don’t believe I’ve seen mention of the layou=
t
tables and the interaction thereof.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>My response to an email thread that was active months ago has been =
long
in coming. I’m sorry about that. In fact, there was a spe=
cific
question to me and/or Monotype that asked “[what] do [I] think of Ken=
's
proposal: the definition of portable "Composite Font"?”.&nb=
sp; At
this point I’d have to better understand the proposal, WPF, the goals=
(of
font deployment, of limiting affect to font engine client/application level
code, of OpenType Layout) that this group is after in order to give a thoro=
ugh
answer.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>But, in the mean time, I hope this email gives some other
considerations into the problem.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Thanks,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Jeff<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Jeff Carey<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Principal Software Engineer<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Monotype Imaging Inc.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>jeff.carey at monotypeimaging.com<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>(781) 970-6073<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>www.monotypeimaging.com<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>-----Original Message-----<br>
From: mpsuzuki at hiroshima-u.ac.jp [mailto:mpsuzuki at hiroshima-u.ac.jp] <br>
Sent: Wednesday, December 03, 2008 11:37 PM<br>
To: Michelle Hill<br>
Cc: Mikhail.Leonov at microsoft.com; tseung at apple.com; lunde at adobe.com;
prubini at adobe.com; tphinney at adobe.com; wchao at windows.microsoft.com;
sergeym at windows.microsoft.com; simonda at windows.microsoft.com;
srirams at microsoft.com; Rob.Relyea at microsoft.com; lofting at apple.com;
kgaddas at adobe.com; sppatel at adobe.com; fenwick at apple.com; plotka at apple.com;
juliog at apple.com; mikew at microsoft.com; lemon at adobe.com; <st1:PersonName w:s=
t=3D"on">Levantovsky,
Vladimir</st1:PersonName>; Carey, Jeff<br>
Subject: Re: Composite Fonts<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Dear Michelle,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>I'm glad to hear further involvement of the experts. Did<o:p></o:p>=
</span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>they receive the previous messages in this discussion?<o:p></o:p></=
span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>I want to ask their comments on the issues being discussed<o:p></o:=
p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>since this summer:<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>The composite font in WPF has automatic fallback<o:p></o:p></span><=
/font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>and no restriction about the file format of the<o:p></o:p></span></=
font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>component fonts. Ken from Adobe proposed to distinguish<o:p></o:p><=
/span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>2 differnt requirements,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> [Fallback Font]<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> with automatic fallback, no restriction of=
the<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> file format of the component font (a compo=
site<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> font can be a component of another composi=
te
font).<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> even if all related files are transferred =
from<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> the producers to the consumers, its
interpretation<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> may be still implementation-specific.<o:p>=
</o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> <o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> [Composite Font]<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> without automatic fallback (missing glyph
should cause<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> an error or serious warning), and the
component fonts<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> are restricted to OpenType with Unicode cm=
ap
only.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> it is intended to be portable as far as
possible -<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> its ambiguity is only that comes from Open=
Type
font<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> driver implementation.<o:p></o:p></span></=
font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> The most remarkable implementation-specific inter-<o:p=
></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> pretations would be the encoding problems. I guess,<o:=
p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> everybody in this discussion agreed that the character=
<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> ranges to assign a component font (please think about<=
o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> "Unicode" property in WPF FontFamilyMap) sho=
uld
be<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> specified by Unicode, but it is still arguable whether=
<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> the component font is required to have builtin Unicode=
<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> interface. Some platforms can access a character by
Unicode<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> codepoint even if the font has legacy encodings only<o=
:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> (PostScript Type1 font might be typical example) by<o:=
p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'> using internal encoding conversion.<o:p></o:p></span><=
/font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>In my personal opinion, even if "Fallback Font" is the mo=
st<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>wanted one, the standardization of composite font should<o:p></o:p>=
</span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>clarify the coverage of portable functionalities. Also I want<o:p><=
/o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>the standard to provide a define to check if non-standardized<o:p><=
/o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>functionalities are included, so the standardization of<o:p></o:p><=
/span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>portable functionalities (Ken calls its coverage as<o:p></o:p></spa=
n></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>"Composite Font") is important for me.<o:p></o:p></span><=
/font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>I want to ask <st1:City w:st=3D"on"><st1:place w:st=3D"on">Vladimir=
</st1:place></st1:City>
and Jeff - how do you think of Ken's<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>proposal: the definition of portable "Composite Font"?<o:=
p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Regards,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>mpsuzuki<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>On Wed, 3 Dec 2008 10:54:48 -0800<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>Michelle Hill <mihill at microsoft.com> wrote:<o:p></o:p></span>=
</font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>I just spoke with Vladimir Levantovsky and Jeff Carey from Mono=
type.
They are both very interested in being involved in this discussion. I've ad=
ded
them to this email thread.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Thanks!<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Michelle<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>-----Original Message-----<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>From: mpsuzuki at hiroshima-u.ac.jp
[mailto:mpsuzuki at hiroshima-u.ac.jp]<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Sent: Thursday, November 27, 2008 12:48 AM<o:p></o:p></span></f=
ont></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>To: Mikhail Leonov<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Cc: tseung at apple.com; lunde at adobe.com; prubini at adobe.com;
tphinney at adobe.com; Michelle Hill; Worachai Chaoweeraprasit; Sergey Malkin;
Simon Daniels; Sriram Subramanian; Rob Relyea; lofting at apple.com; kgaddas at a=
dobe.com;
sppatel at adobe.com; fenwick at apple.com; plotka at apple.com; juliog at apple.com;
Michael Warning; lemon at adobe.com<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Subject: Re: Composite Fonts<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Dear Mikhail,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>In our discussion about composite font format, we took<o:p></o:=
p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>WPF composite font in XML format as an example. During<o:p></o:=
p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>the discussion, I had wrong bias and (mis-)understood as<o:p></=
o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>* when a language is specified, the Unicode ranges of<o:p></o:p=
></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> all "FontFamilyMap" elements have no intersect=
ion.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>But, when I checked the methods of FontFamilyMap class<o:p></o:=
p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>and FontFamilyMapCollection class, I could not find such<o:p></=
o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>restriction (e.g. I expected some notes like "an insertion=
<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>of FontFamilyMap with overlapping Unicode range causes<o:p></o:=
p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>an error XXX"). On the other hand, when I searched the<o:p=
></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>examples of WPF composite font XML, I could find such<o:p></o:p=
></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>overlapping examples:<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> <!-- CHS --><o=
:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> <FontFamilyMap<o:=
p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> &nb=
sp;
Unicode =3D
"0590-06FF, 0750-077F, FB1D-FDCF, FDF0-FDFF, FE70-FEFE"<o:p></o:p=
></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> &nb=
sp;
Language =3D "zh-Hans&=
quot;<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> &nb=
sp;
Target =3D
"Microsoft Uighur, Times New Roman"<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> &nb=
sp;
Scale =3D
"1.0"/><o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> <!-- Other -->=
<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> <FontFamilyMap<o:=
p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> &nb=
sp;
Unicode =3D
"0000-052F, 0590-06FF, 0750-077F, 1D00-1FFF, FB00-FB0F, FB1D-FDCF, FDF=
0-FDFF,
FE20-FE2F, FE70-FEFE"<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> &nb=
sp;
Target =3D
"Times New Roman"<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> &nb=
sp;
Scale =3D
"1.0"/><o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> There's no FontFamil=
yMap
element for<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> Unicode =3D=3D
"0000-052F" && Language =3D=3D "zh-Hans".<o:p><=
/o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>I guess, when the language is set to zh-Hans and Arabic<o:p></o=
:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>characters are requested, this XML would be interpreted as:<o:p=
></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>1. Microsoft Uighur is scanned.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>2. If appropriate glyph could not be found, Times New Roman<o:p=
></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> (in the zh-Hans-specific element) is scanned.<o:p>=
</o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>3. If appropriate glyph could not be found, Times New Roman<o:p=
></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>> (in language-independent element) is scanned.<o:p>=
</o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>So, now I think there's no problem in the overlapping of Unicod=
e<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>ranges among the elements. The order of the FontFamilyMap<o:p><=
/o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>elements in XML specifies the order of the glyph availability<o=
:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>checking. I'm correctly understanding?<o:p></o:p></span></font>=
</p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>If my understanding is correct, the validator of Composite<o:p>=
</o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Font (without implicit fallback, the format Ken proposed)<o:p><=
/o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>should guarantee that there's no overlapped Unicode range<o:p><=
/o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>specification. I think it's slightly troublesome work, in<o:p><=
/o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>comparison with the checking if all component is in<o:p></o:p><=
/span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>OpenType font file format.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>Regards,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>mpsuzuki<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>On Thu, 27 Nov 2008 15:30:51 +0900<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>mpsuzuki at hiroshima-u.ac.jp wrote:<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>Dear Tony,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>I attached a figure to explain how each groups are<o:p></o:=
p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>processed by font drivers. I wish it's easier than<o:p></o:=
p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>my lengthy text. I attached PNG, SVG and Adobe<o:p></o:p></=
span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>Illustrator (browsible by PDF viewer), all files<o:p></o:p>=
</span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>have same figure.<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>><o:p> </o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>Regards,<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>>>mpsuzuki<o:p></o:p></span></font></p>
<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span style=3D'=
font-size:
10.0pt'>><o:p> </o:p></span></font></p>
</div>
</body>
</html>
------_=_NextPart_001_01C9A1DD.925F6A20--
More information about the mpeg-otspec
mailing list