+++ /dev/null
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-
-"""Update the glyph metrics so that they all really have the same size."""
-
-# Based on
-# - monospacifier: https://github.com/cpitclaudel/monospacifier/blob/master/monospacifier.py
-# - YosemiteAndElCapitanSystemFontPatcher: https://github.com/dtinth/YosemiteAndElCapitanSystemFontPatcher/blob/master/bin/patch
-
-import os
-import re
-import sys
-
-reload(sys)
-sys.setdefaultencoding('UTF8')
-
-import fontforge
-import psMat
-import unicodedata
-
-def height(font):
- return float(font.capHeight)
-
-def adjust_height(source, template):
- source.selection.all()
- source.transform(psMat.scale(height(template) / height(source)))
- for attr in ['ascent', 'descent',
- 'hhea_ascent', 'hhea_ascent_add',
- 'hhea_linegap',
- 'hhea_descent', 'hhea_descent_add',
- 'os2_winascent', 'os2_winascent_add',
- 'os2_windescent', 'os2_windescent_add',
- 'os2_typoascent', 'os2_typoascent_add',
- 'os2_typodescent', 'os2_typodescent_add',
- ]:
- setattr(source, attr, getattr(template, attr))
- source.transform(psMat.scale(0.9))
-
-font = fontforge.open('comic-shanns.otf')
-ref = fontforge.open('vendor/Menlo.ttc')
-for g in font.glyphs():
- uni = g.unicode
- category = unicodedata.category(unichr(uni)) if 0 <= uni <= sys.maxunicode else None
- if g.width > 0 and category not in ['Mn', 'Mc', 'Me']:
- target_width = 510
- if g.width != target_width:
- delta = target_width - g.width
- g.left_side_bearing += delta / 2
- g.right_side_bearing += delta - g.left_side_bearing
- g.width = target_width
-
-adjust_height(font, ref)
-font.sfnt_names = [] # Get rid of 'Prefered Name' etc.
-font.fontname = 'Comic Shanns dtinth'
-font.familyname = 'Comic Shanns dtinth'
-font.fullname = 'Comic Shanns dtinth'
-font.generate('comic-shanns-dtinth.otf')
-font.generate('comic-shanns-dtinth.ttf')
\ No newline at end of file