made changes to run with python3
[proportionaltomonofont] / generate.py
old mode 100644 (file)
new mode 100755 (executable)
index 634f907..65bbe5a
@@ -1,24 +1,23 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
 """
-Generates the Comic Mono font files based on Comic Shanns font.
-
+Generates the Mono font files based on a proportional font
 Required files:
-- vendor/comic-shanns.otf
-- vendor/Cousine-Regular.ttf
-
+- vendor/fonttobechanged.ttf
+- vendor/referencefont.ttf
 Based on:
 - monospacifier: https://github.com/cpitclaudel/monospacifier/blob/master/monospacifier.py
 - YosemiteAndElCapitanSystemFontPatcher: https://github.com/dtinth/YosemiteAndElCapitanSystemFontPatcher/blob/master/bin/patch
+- https://github.com/dtinth/comic-mono-font
+- Comic Mono: https://github.com/dtinth/comic-mono-font
+
 """
 
 import os
 import re
 import sys
 
-reload(sys)
-sys.setdefaultencoding('UTF8')
 
 import fontforge
 import psMat
@@ -41,34 +40,43 @@ def adjust_height(source, template, scale):
                 ]:
         setattr(source, attr, getattr(template, attr))
     source.transform(psMat.scale(scale))
-
-font = fontforge.open('vendor/comic-shanns.otf')
+#change the next to lines to the font you want to convert and the reference font
+# make sure those two fonts are in the vendor directory
+font = fontforge.open('vendor/Lexend-Regular.ttf')
 ref = fontforge.open('vendor/Cousine-Regular.ttf')
 for g in font.glyphs():
     uni = g.unicode
-    category = unicodedata.category(unichr(uni)) if 0 <= uni <= sys.maxunicode else None
+    category = unicodedata.category(chr(uni)) if 0 <= uni <= sys.maxunicode else None
     if g.width > 0 and category not in ['Mn', 'Mc', 'Me']:
-        target_width = 510
+                # change target width to either make characters norrow or wide
+        target_width = 750
         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
-
-font.familyname = 'Comic Mono'
+# change next 4 lines to desired information
+font.familyname = 'Lexend Mono'
 font.version = '0.1.1'
 font.comment = 'https://github.com/dtinth/comic-mono-font'
 font.copyright = 'https://github.com/dtinth/comic-mono-font/blob/master/LICENSE'
-
+#change number in adjust_height to make font shorter or taller
 adjust_height(font, ref, 0.875)
 font.sfnt_names = [] # Get rid of 'Prefered Name' etc.
-font.fontname = 'ComicMono'
-font.fullname = 'Comic Mono'
-font.generate('ComicMono.ttf')
+#change to desired font name
+font.fontname = 'LexendMono'
+#change to desired full name
+font.fullname = 'Lexend Mono'
+#change to desired file name
+font.generate('LexandMono.ttf')
 
 font.selection.all()
-font.fontname = 'ComicMono-Bold'
-font.fullname = 'Comic Mono Bold'
+#Bold section
+#change to desired font name
+font.fontname = 'LexendMono-Bold'
+#change to desired full name
+font.fullname = 'Lexend Mono Bold'
 font.weight = 'Bold'
 font.changeWeight(32, "LCG", 0, 0, "squish")
-font.generate('ComicMono-Bold.ttf')
\ No newline at end of file
+#change to desired file name
+font.generate('LexendMono-Bold.ttf')