Add vhea/vmtx to NotoColorEmoji.
The vertical advance is a little over the horizontal lineheight. Fixes noto-emoji#94.pull/97/head
parent
1c0ce222a4
commit
3a39580522
|
@ -193,6 +193,33 @@
|
||||||
<mtx name="space" width="2550" lsb="0"/>
|
<mtx name="space" width="2550" lsb="0"/>
|
||||||
</hmtx>
|
</hmtx>
|
||||||
|
|
||||||
|
<vhea>
|
||||||
|
<tableVersion value="0x00010000"/>
|
||||||
|
<ascent value="1275"/>
|
||||||
|
<descent value="-1275"/>
|
||||||
|
<lineGap value="0"/>
|
||||||
|
<advanceHeightMax value="2500"/>
|
||||||
|
<minTopSideBearing value="0"/>
|
||||||
|
<minBottomSideBearing value="0"/>
|
||||||
|
<yMaxExtent value="2400"/>
|
||||||
|
<caretSlopeRise value="0"/>
|
||||||
|
<caretSlopeRun value="1"/>
|
||||||
|
<caretOffset value="0"/>
|
||||||
|
<reserved1 value="0"/>
|
||||||
|
<reserved2 value="0"/>
|
||||||
|
<reserved3 value="0"/>
|
||||||
|
<reserved4 value="0"/>
|
||||||
|
<metricDataFormat value="0"/>
|
||||||
|
<numberOfVMetrics value="1"/>
|
||||||
|
</vhea>
|
||||||
|
|
||||||
|
<vmtx>
|
||||||
|
<mtx name=".notdef" height="2500" tsb="0"/>
|
||||||
|
<mtx name="null" height="0" tsb="0"/>
|
||||||
|
<mtx name="nonmarkingreturn" height="2500" tsb="0"/>
|
||||||
|
<mtx name="space" height="2500" tsb="0"/>
|
||||||
|
</vmtx>
|
||||||
|
|
||||||
<cmap>
|
<cmap>
|
||||||
<tableVersion version="0"/>
|
<tableVersion version="0"/>
|
||||||
<cmap_format_12 platformID="3" platEncID="10" language="0" format="12" reserved="0" length="1" nGroups="1">
|
<cmap_format_12 platformID="3" platEncID="10" language="0" format="12" reserved="0" length="1" nGroups="1">
|
||||||
|
|
|
@ -139,7 +139,7 @@ def get_font_cmap(font):
|
||||||
return font['cmap'].tables[0].cmap
|
return font['cmap'].tables[0].cmap
|
||||||
|
|
||||||
|
|
||||||
def add_glyph_data(font, seqs, seq_to_advance):
|
def add_glyph_data(font, seqs, seq_to_advance, vadvance):
|
||||||
"""Add hmtx and GlyphOrder data for all sequences in seqs, and ensures there's
|
"""Add hmtx and GlyphOrder data for all sequences in seqs, and ensures there's
|
||||||
a cmap entry for each single-codepoint sequence. Seqs not in seq_to_advance
|
a cmap entry for each single-codepoint sequence. Seqs not in seq_to_advance
|
||||||
will get a zero advance."""
|
will get a zero advance."""
|
||||||
|
@ -161,6 +161,7 @@ def add_glyph_data(font, seqs, seq_to_advance):
|
||||||
|
|
||||||
cmap = get_font_cmap(font)
|
cmap = get_font_cmap(font)
|
||||||
hmtx = font['hmtx'].metrics
|
hmtx = font['hmtx'].metrics
|
||||||
|
vmtx = font['vmtx'].metrics
|
||||||
|
|
||||||
# We don't expect sequences to be in the glyphOrder, since we removed all the
|
# We don't expect sequences to be in the glyphOrder, since we removed all the
|
||||||
# single-cp sequences from it and don't expect it to already contain names
|
# single-cp sequences from it and don't expect it to already contain names
|
||||||
|
@ -181,6 +182,7 @@ def add_glyph_data(font, seqs, seq_to_advance):
|
||||||
cmap[seq[0]] = name
|
cmap[seq[0]] = name
|
||||||
advance = seq_to_advance.get(seq, 0)
|
advance = seq_to_advance.get(seq, 0)
|
||||||
hmtx[name] = [advance, 0]
|
hmtx[name] = [advance, 0]
|
||||||
|
vmtx[name] = [vadvance, 0]
|
||||||
if name not in reverseGlyphMap:
|
if name not in reverseGlyphMap:
|
||||||
font.glyphOrder.append(name)
|
font.glyphOrder.append(name)
|
||||||
updatedGlyphOrder=True
|
updatedGlyphOrder=True
|
||||||
|
@ -325,10 +327,10 @@ def add_ligature_sequences(font, seqs, aliases):
|
||||||
add_ligature(lookup, cmap, seq, name)
|
add_ligature(lookup, cmap, seq, name)
|
||||||
|
|
||||||
|
|
||||||
def update_font_data(font, seq_to_advance, aliases):
|
def update_font_data(font, seq_to_advance, vadvance, aliases):
|
||||||
"""Update the font's cmap, hmtx, GSUB, and GlyphOrder tables."""
|
"""Update the font's cmap, hmtx, GSUB, and GlyphOrder tables."""
|
||||||
seqs = get_all_seqs(font, seq_to_advance)
|
seqs = get_all_seqs(font, seq_to_advance)
|
||||||
add_glyph_data(font, seqs, seq_to_advance)
|
add_glyph_data(font, seqs, seq_to_advance, vadvance)
|
||||||
add_aliases_to_cmap(font, aliases)
|
add_aliases_to_cmap(font, aliases)
|
||||||
add_ligature_sequences(font, seqs, aliases)
|
add_ligature_sequences(font, seqs, aliases)
|
||||||
|
|
||||||
|
@ -369,7 +371,9 @@ def update_ttx(in_file, out_file, image_dirs, prefix, ext, aliases_file):
|
||||||
map_fn = get_png_file_to_advance_mapper(lineheight)
|
map_fn = get_png_file_to_advance_mapper(lineheight)
|
||||||
seq_to_advance = remap_values(seq_to_file, map_fn)
|
seq_to_advance = remap_values(seq_to_file, map_fn)
|
||||||
|
|
||||||
update_font_data(font, seq_to_advance, aliases)
|
vadvance = font['vhea'].advanceHeightMax if 'vhea' in font else lineheight
|
||||||
|
|
||||||
|
update_font_data(font, seq_to_advance, vadvance, aliases)
|
||||||
|
|
||||||
font.saveXML(out_file)
|
font.saveXML(out_file)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue