'EBSC'
tableThe 'EBSC'
table provides a mechanism for forcing the TrueType scaler to
use a particular size of embedded bitmap when generating glyphs
for a different point size.
The 'EBSC'
table is used only for bitmap-only TrueType fonts. Fonts which
have outline data will always use the outlines to generate glyphs
for a point size if there is no embedded bitmap available.
If the font has no glyph outlines, then embedded bitmaps are the
only mechanism the TrueType scaler can use to provide a glyph
for a charater. If there is an embeded bitmap for the requested
size, that will be used; otherwise, the scaler will have to create
one from the bitmap for another point size. The TrueType scaler
has an algorithm it uses to determine which point size is appropriate
to use in such a case; the 'EBSC'
table allows the font designer to override this default algorithm.
The 'EBSC'
table begins with a header describing the point size overrides
it contains:
Type | Name | Description |
---|---|---|
Fixed | version | Version number of the table (0x00020000 for the initial version). |
UInt32 | numSizes | The number of EBSCScaleTable in this table. |
variable | scaleTables[numSizes] | Subtables indicating how to override the TrueType scaler's default algorithm for finding a point size to use when generating a glyph for a point size not in the font. |
The header is followed immediately by the scaleTables array. The numSizes in the header indicates the number of EBSCScaleTable in the array. Each override is defined by one EBSCScaleTable.
Type | Name | Description |
---|---|---|
BLOCLineMetrics | hori | Horizontal line metrics for this point size (not used on the Mac OS). |
BLOCLineMetrics | vert | Vertical line metrics (not used on the Mac OS). |
UInt8 | ppemX | The horizontal point size for this EBSCScaleTable |
UInt8 | ppemY | The vertical point size for this EBSCScaleTable |
UInt8 | substitutePpemX | The horizontal point size to use when generating glyphs for the point size in the ppemX field. |
UInt8 | substitutePpemY | The vertical point size to use when generating glyphs for the point size in the ppemY field. |
For example, suppose a font has 9-point and 24-point embedded
bitmaps. Ordinarly, the TrueType scaler would use the 9-point
bitmaps as a source of data if trying to generate an 18-point
bitmap. The 'EBSC'
table can be used to override this, however, by including an
EBSCScaleTable with the ppemX equal to 18 and the substitutePpemX
equal to 24.
This table is used in the TrueType scaler included with Mac OS 8.5. It is not used by prior versions of the Mac OS.
The Mac OS does not use the horizontal and vertical line metrics fields. See documentation on the bitmap location table to see how these fields are structured.
Newton fonts are bitmap-only, but the Newton OS does not use the
'EBSC'
table.
If an 'EBSC'
table is present in a font, the font must be a bitmap-only font.
That is, it should also have 'bdat'
and 'bloc'
tables. The font must have no 'head'
or 'glyf'
tables. Bitmap only fonts use the 'bhed'
table to store information ordinarily found in the 'head'
table.
Fonts with bitmaps may require external fbit ("marukan") files to work properly on East Asian systems. Fbit files can be generated with TrueEdit.
No tools are currently configured to edit the 'EBSC'
table. Hexadecimal edits are possible using TrueEdit.