123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import sys
- from fontTools.ttLib import TTFont
- from nototools import font_data
- from scripts import *
- def main(font_path):
- font = TTFont(font_path, recalcBBoxes=False)
- glyf = font["glyf"]
- # turn off round-to-grid flags in certain problem components
- # https://github.com/google/roboto/issues/153
- ellipsis = glyf['ellipsis']
- for component in ellipsis.components:
- component.flags &= ~(1 << 2)
- # Add first 32 control chars to font.
- # Has been specifically requested by Android team. They are
- # seeing tofus in Android's layout libs. This should be fixed in
- # the libs but it is easier for us to tweak the fonts.
- for table in font["cmap"].tables:
- for uni in range(32):
- if uni in table.cmap:
- continue
- table.cmap[uni] = "uni0002"
- font_data.delete_from_cmap(font, [
- 0x20E3, # COMBINING ENCLOSING KEYCAP
- 0x2191, # UPWARDS ARROW
- 0x2193, # DOWNWARDS ARROW
- ])
- # Update vertical metrics to match v2.136
- update_attribs(
- font,
- **android_and_cros_vert_metrics
- )
- update_psname_and_fullname(font, include_year=True)
- update_font_version(font)
- font.save(font_path)
- main(sys.argv[1])
|