mirror of
https://github.com/dtinth/comic-mono-font.git
synced 2024-12-23 16:01:59 +00:00
monospacify, adjusted metrics, update readme, added comic-shanns-dtinth
This commit is contained in:
parent
77a1224ba3
commit
54a992f899
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
vendor
|
||||||
|
*.pyc
|
@ -1,6 +1,11 @@
|
|||||||
# What it is
|
# What it is
|
||||||
A classy font.
|
A classy font.
|
||||||
|
|
||||||
|
## Changes in dtinth’s fork
|
||||||
|
1. All glyphs have been adjusted to have exactly the same width (using code based on [monospacifier](https://github.com/cpitclaudel/monospacifier))
|
||||||
|
2. The glyph metrics have been adjusted to make it display better alongside system font.
|
||||||
|
3. The name is changed to `Comic Shanns dtinth`.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
You can download it and install it like any other font.
|
You can download it and install it like any other font.
|
||||||
|
|
||||||
|
BIN
comic-shanns-dtinth.otf
Normal file
BIN
comic-shanns-dtinth.otf
Normal file
Binary file not shown.
57
dtinth.py
Normal file
57
dtinth.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#!/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')
|
Loading…
Reference in New Issue
Block a user