📄 mmderiv.htm
字号:
<HTML>
<HEAD>
<TITLE>The 'MMMD' Table</TITLE>
<STYLE>
<!--
BODY {background: #FFFFFF; link: #000080}
H1 {font-size: 24pt; color: #c60029}
H2 {font-size: 18pt; color: black}
H3 {font-size: 16pt; color: black}
H4 {font-size: 14pt; color: black}
CAPTION {font-size: 16pt; font-weight: Bold}
A:link {text-decoration: none}
-->
</STYLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000080">
<TABLE WIDTH=480 CELLPADDING=8 CELLSPACING=0 BORDER=0>
<TR><TD><IMG WIDTH=100 HEIGHT=1 ALT="" SRC="/truetype/otspec/pixel.gif" BORDER=0></TD>
<TD><H1>Table Formats</H1></TD></TR>
<TR><TD></TD><TD ALIGN=TOP>
<H2>Multiple Master Metrics Derivation</H2>
<p>Some of the required an optional tables store metric
data of one kind or another but were designed before multiple master
fonts were developed and are therefore incapable of representing multiple master
metric values. Therefore, multiple master fonts store single values corresponding
to the default instance in these fields. The metric values for other instances can be derived
from data stored within the CFF, MMSD, and MMFX tables and supplied by the
font driver via the IFIMetrics structure. This derivation is described below.<BR>
<TABLE BGCOLOR="#F0F0F0" WIDTH="50%" BORDER=0 CELLPADDING=3>
<THEAD>
<TR><TH BGCOLOR="#C0C0C0">Existing field</TH><TH BGCOLOR="#C0C0C0">Derivable metric</TH></TR>
<TBODY>
<TR><TD>head.xMin</TD><TD>CFF.FontBBox[0]</TD></TR>
<TR><TD>head.yMin</TD><TD>CFF.FontBBox[1]</TD></TR>
<TR><TD>head.xMax</TD><TD>CFF.FontBBox[2]</TD></TR>
<TR><TD>head.yMax</TD><TD>CFF.FontBBox[3]</TD></TR>
<TR><TD>hhea.Ascender</TD><TD>MMFX.ascent</TD></TR>
<TR><TD>hhea.Descender</TD><TD>MMFX.descent</TD></TR>
<TR><TD>hhea.LineGap</TD><TD>MMFX.lineGap</TD></TR>
<TR><TD>hhea.advanceWidthMax</TD><TD>CFF.CharStrings</TD></TR>
<TR><TD>hhea.minLeftSideBearing</TD><TD>CFF.CharStrings</TD></TR>
<TR><TD>hhea.minRightSideBearing</TD><TD>CFF.CharStrings</TD></TR>
<TR><TD>hhea.xMaxExtent</TD><TD>CFF.CharStrings</TD></TR>
<TR><TD>hhea.caretSlopeRise</TD><TD>*1</TD></TR>
<TR><TD>hhea.caretSlopeRun</TD><TD>*1</TD></TR>
<TR><TD>hmtx.longHorMetrics</TD><TD>CFF.CharStrings</TD></TR>
<TR><TD>hmtx.leftSideBearing</TD><TD>CFF.CharStrings</TD></TR>
<TR><TD>OS/2.sTypoAscender</TD><TD>MMFX.ascent</TD></TR>
<TR><TD>OS/2.sTypoDescender</TD><TD>MMFX.descent</TD></TR>
<TR><TD>OS/2.sTypoLineGap</TD><TD>MMFX.lineGap</TD></TR>
<TR><TD>OS/2.usWinAscent</TD><TD>CFF.FontBBox[3]</TD></TR>
<TR><TD>OS/2.usWinDescent</TD><TD>CFF.FontBBox[1]</TD></TR>
<TR><TD>post.ItalicAngle</TD><TD>CFF.ItalicAngle</TD></TR>
<TR><TD>post.UnderlinePosition</TD><TD>CFF.UnderlinePosition</TD></TR>
<TR><TD>post.UnderlineThickness</TD><TD>CFF.UnderlineThickness</TD></TR>
</TABLE> <P>
*1)The caret slope rise and run are computed from
the interpreted CFF.ItalicAngle as follows:
<CODE><PRE>
if (CFF.ItalicAngle == 0)
{
hhea.caretSlopRise = 1;
hhea.caretSlopeRun = 0;
}
else
{
hhea.caretSlopeRise = 1000;
hhea.caretSlopeRun =
round(tan(CFF.ItalicAngle/57.2958) * 1000);
}
</CODE></PRE>
<br> <br>
<FONT FACE="Arial, Helvetica" SIZE=1>
Microsoft Typography Web Site <A HREF="/truetype/otspec/CPYRIGHT.htm">© 1996 Microsoft Corporation</A>
<BR>
Comments to the Microsoft Typography group: <A HREF="mailto:ttwsite@microsoft.com">ttwsite@microsoft.com</A>
<BR>
<A HREF="/truetype/default.htm">Home</a> | <a href="/truetype/creators.htm">Information for Developers</a>
<BR>
Last updated 05 September 1996
</FONT>
</TD></TABLE>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -