<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=utf-8">
<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:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@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:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 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:#1E66AE;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#1E66AE;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:10.5pt;
font-family:Consolas;}
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.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;}
p.attach, li.attach, div.attach
{mso-style-name:attach;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:9.0pt;
font-family:"Arial","sans-serif";}
p.bold, li.bold, div.bold
{mso-style-name:bold;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:10.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.green, li.green, div.green
{mso-style-name:green;
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";
color:#628C2A;}
p.replbq, li.replbq, div.replbq
{mso-style-name:replbq;
margin:3.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
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.underline, li.underline, div.underline
{mso-style-name:underline;
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.yshortcuts
{mso-style-name:yshortcuts;}
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;
margin-bottom:7.5pt;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.underline1, li.underline1, div.underline1
{mso-style-name:underline1;
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";
text-decoration:underline;}
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.EmailStyle34
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:Consolas;}
.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:1663003534;
mso-list-template-ids:-657433046;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
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="#1E66AE" vlink="#1E66AE">
<div class=Section1>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Dear Ken, John, all,<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'>Thank you very much for looking into the CFF proposal and
providing with the suggested wording to clarify this in the OFF spec.<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 bring your attention to another email sent a while
ago to the public OpenType list, copied below (with some cosmetic editorial cuts):<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=MsoPlainText>On Tuesday, November 03, 2009 7:41 AM Manlio Perillo
wrote:<o:p></o:p></p>
<p class=MsoPlainText>> Subject: [OpenType] some questions about CFF data in
OpenType fonts<o:p></o:p></p>
<p class=MsoPlainText>> Message from OpenType list:<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> Hi.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> My name is Manlio Perillo, and I'm a freelance
Italian developer.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> I'm working on a PDF generation tool [1], in Python,
and recently I<o:p></o:p></p>
<p class=MsoPlainText>> have implemented support for OpenType and Compact
Font Format fonts <o:p></o:p></p>
<p class=MsoPlainText>> and Type 2 Charstring format.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> For OpenType, I'm using the ISO Open Font Format
specification.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> I have found some problems with the OFF
specification, for fonts with<o:p></o:p></p>
<p class=MsoPlainText>> CFF data.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> The specification only states:<o:p></o:p></p>
<p class=MsoPlainText>> This table contains a compact representation of a
PostScript Type 1, or<o:p></o:p></p>
<p class=MsoPlainText>> CIDFont and is structured according<o:p></o:p></p>
<p class=MsoPlainText>> to Adobe Technical Note #5176: "The Compact
Font Format Specification"<o:p></o:p></p>
<p class=MsoPlainText>> [5] and Adobe Technical Note #5177: "Type 2
Charstring Format" [4].<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> I thik that this statement is not sufficient to
describe CFF data<o:p></o:p></p>
<p class=MsoPlainText>> embedded in a OFF font, since additional constraints
SHOULD be placed<o:p></o:p></p>
<p class=MsoPlainText>> on the CFF data.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> 1) CFF data can contain multiple fonts in the
FontSet.<o:p></o:p></p>
<p class=MsoPlainText>> It is rather obvious, to me, that CFF data
embedded in OFF font<o:p></o:p></p>
<p class=MsoPlainText>> **can not** contain multiple fonts.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> The PDF specification, just to make an example,
explicitly forbids<o:p></o:p></p>
<p class=MsoPlainText>> embedding of CFF fonts containing multiple fonts.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> 2) The CFF font top DICT contains the CharstringType
entry, and this<o:p></o:p></p>
<p class=MsoPlainText>> entry can have values 1 and 2.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> Since the OFF spec references the "Type 2
Charstring Format", is<o:p></o:p></p>
<p class=MsoPlainText>> seems to be obvious that only type 2 is
supported;<o:p></o:p></p>
<p class=MsoPlainText>> however I think that the OFF spec should
explicitly state this.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> 3) Since the OFF "head" table contains the
`unitsPerEm` parameter, it<o:p></o:p></p>
<p class=MsoPlainText>> is<o:p></o:p></p>
<p class=MsoPlainText>> rather obvious that the FontMatrix array entry in
the CFF top DICT<o:p></o:p></p>
<p class=MsoPlainText>> **can only** have values:<o:p></o:p></p>
<p class=MsoPlainText>> [1/unitsPerEm 0 0 1/unitsPerEm 0 0].<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> Again, I think that this should be explicitly
stated by the OFF<o:p></o:p></p>
<p class=MsoPlainText>> specification.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> 4) Since an OFF has the cmap table, the encoding and
charset data in<o:p></o:p></p>
<p class=MsoPlainText>> the CFF font should no more be used and they may
only take<o:p></o:p></p>
<p class=MsoPlainText>> additional space.<o:p></o:p></p>
<p class=MsoPlainText>> This is the same for CIDFonts, but I'm not sure.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> The CFF specification allows compact
representation of these table,<o:p></o:p></p>
<p class=MsoPlainText>> for know encoding and charsets, but I think that
the OFF<o:p></o:p></p>
<p class=MsoPlainText>> specification should contain a recommendations
section dedicated to<o:p></o:p></p>
<p class=MsoPlainText>> CFF data embedded in an OFF font.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> Thanks Manlio Perillo<o:p></o:p></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'>Eric Muller from Adobe replied to this email with the following:<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=MsoPlainText>On Tuesday, November 03, 2009 1:30 PM Eric Muller wrote:<o:p></o:p></p>
<p class=MsoPlainText>> Subject: Re: [OpenType] some questions about CFF
data in OpenType fonts<o:p></o:p></p>
<p class=MsoPlainText>> Message from OpenType list:<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> I fully agree with your points 1, 2, 4, but I am not
so sure about 3:<o:p></o:p></p>
<p class=MsoPlainText>> > 3) Since the OFF "head" table
contains the `unitsPerEm` parameter, it is<o:p></o:p></p>
<p class=MsoPlainText>> > rather obvious that the FontMatrix array
entry in the CFF top DICT<o:p></o:p></p>
<p class=MsoPlainText>> > **can only** have values:<o:p></o:p></p>
<p class=MsoPlainText>> > [1/unitsPerEm 0 0 1/unitsPerEm 0 0].<o:p></o:p></p>
<p class=MsoPlainText>> ><o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> One could consider that there are two metric spaces
used by the font,<o:p></o:p></p>
<p class=MsoPlainText>> one for in htmx, OS/2, GPOS, etc. and the other for
CFF. They don't<o:p></o:p></p>
<p class=MsoPlainText>> need to be in the same units.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> Similar to your 4), there is the equivalent for
metrics: the values in<o:p></o:p></p>
<p class=MsoPlainText>> hmtx, OS/2, etc are "the truth" and the
metrics in the CFF dictionaries<o:p></o:p></p>
<p class=MsoPlainText>> are to be ignored outside the context of
rasterization.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> One additional constraint (may be the most
important?): the GIDs are<o:p></o:p></p>
<p class=MsoPlainText>> interpreted as charstring ids (in CFF)<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> Eric.<o:p></o:p></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 wording of the comment that John and Ken proposed and
agreed upon only addresses the point 1 of the original email. I would like to
ask everybody to review the text of the OFF specification and the rest of the
proposal from Manilo and Eric, in order to determine if any additional
clarification or comments would be useful in OFF specification.<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'>Thank you and best regards,<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Vladimir<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 style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>
<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>Ken Lunde<br>
<b>Sent:</b> Thursday, December 03, 2009 2:51 PM<br>
<b>To:</b> mpeg-OTspec@yahoogroups.com<br>
<b>Subject:</b> Re: [mpeg-OTspec] FW: [Proposal] Improve the definition of the
'CFF ' table<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<div id=ygrp-mlmsg>
<div id=ygrp-msg>
<div id=ygrp-text>
<p>Vladimir,<br>
<br>
I second John's suggested wording, which is clear and concise.<br>
<br>
-- Ken<br>
<br>
On 2009/12/02, at 16:41, John Hudson wrote:<br>
<br>
> Ken wrote:<br>
><br>
>> In any case, I agree that clarifying this limitation in the<br>
>> specification is a good thing.<br>
><br>
> Suggested wording:<br>
><br>
> Although Adobe's Compact Font Format Specification enables multiple<br>
> "FontSets" to be included in a CFF file, the implementation of
CFF<br>
> within OpenType is limited to a single FontSet. Hence, a CFF table <br>
> must<br>
> consist of exactly one name-keyed or CID-keyed font.<br>
><br>
> JH<br>
><br>
> --<br>
><br>
> Tiro Typeworks www.tiro.com<br>
> Gulf Islands, BC <a href="mailto:tiro%40tiro.com">tiro@tiro.com</a><mailto:tiro%40tiro.com><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>
</div>
</body>
</html>