Merge pull request #97 from dougfelt/vmtx

Add vhea/vmtx to NotoColorEmoji.
pull/99/head
dougfelt 2017-02-23 11:18:18 -08:00 committed by GitHub
commit ae7b319bbd
2 changed files with 35 additions and 4 deletions

View File

@ -193,6 +193,33 @@
<mtx name="space" width="2550" lsb="0"/>
</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>
<tableVersion version="0"/>
<cmap_format_12 platformID="3" platEncID="10" language="0" format="12" reserved="0" length="1" nGroups="1">

View File

@ -139,7 +139,7 @@ def get_font_cmap(font):
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
a cmap entry for each single-codepoint sequence. Seqs not in seq_to_advance
will get a zero advance."""
@ -161,6 +161,7 @@ def add_glyph_data(font, seqs, seq_to_advance):
cmap = get_font_cmap(font)
hmtx = font['hmtx'].metrics
vmtx = font['vmtx'].metrics
# 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
@ -181,6 +182,7 @@ def add_glyph_data(font, seqs, seq_to_advance):
cmap[seq[0]] = name
advance = seq_to_advance.get(seq, 0)
hmtx[name] = [advance, 0]
vmtx[name] = [vadvance, 0]
if name not in reverseGlyphMap:
font.glyphOrder.append(name)
updatedGlyphOrder=True
@ -325,10 +327,10 @@ def add_ligature_sequences(font, seqs, aliases):
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."""
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_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)
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)