Microsoft HomeProductsSearchSupportShopWrite Us Microsoft Home

Microsoft Typography | Developer... | OpenType specification | OpenType tables | The MMFX table


MMFX

This table stores multiple master metrics as self-delimiting Type 2 font programs. The metric value of a particular instance is found by interpreting the metric charstring at that instance yielding a metric value on the Type 2 interpreter stack.

The MMFX table consists of a header that contains a version number (version), initially set to 1.0 (0x00010000), the number of metrics stored in the table (nMetrics), an offset size (offSize), and an array of offsets (offset). The offSize field specifies the size of offset array elements, either 2- or 4-bytes, based on the maximum offset that is stored in the array. The offset array is followed by metric charstring data.

Type Name Description
Fixed version Version of MMFX table - Initially 0x00010000
uint16 nMetrics Number of metrics
uint16 offSize Offset size (bytes)
uint16/32 offset
[nMetrics]
Array of metric charstring offsets - from beginning of MMFX table

A metric id is used to index the offset array and thereby locate the corresponding charstring which is interpreted to yield the required metric.

The metrics stored within the table fall into two distinct categories called "named" and "unnamed" metrics. Named metrics have fixed id's that do not vary between fonts whereas unnamed metrics are font-specific and use id's specified by the GPOS, BASE, or GDEF tables.

Eight named metrics are defined for use with the version 1.0 MMFX table:

Id Name Description
0 Zero Evaluates to zero
1 Ascender MM equivalent of hhea.ascender
2 Descender MM equivalent of hhea.descender
3 LineGap MM equivalent of hhea.lineGap
4 AdvanceWidthMax MM equivalent of hhea.advanceWidthMax
5 AvgCharWidth MM equivalent of OS/2.xAvgCharWidth
6 xHeight MM equivalent of OS/2.xHeight
7 CapHeight MM equivalent of OS/2.CapHeight

These named metrics must all be present in an MMFX table. Unnamed metrics may or may not be present depending on whether the font contains a GPOS, BASE, or GDEF table that specifies a metric id. Unnamed metric id's begin with id 8.

The Type 2 font program attached to named metric id 0 must evaluate to 0 regardless of the instance in the design space of evaluation. Font clients who need to find the value of named metric id 0 can execute the font program and use the result or can avoid the execution and use the value 0. The result must be the same.



this page was last updated 22 October 1998
© 1998 Microsoft Corporation. All rights reserved. Terms of use.
comments to the MST group: ttwsite@microsoft.com

 

Microsoft Typography | Developer... | OpenType specification | OpenType tables | The MMFX table