-# What it is
-A classy font.
+# Comic Mono
+A monospaced font based on [Shannon Miwa](https://github.com/shannpersand)’s [Comic Shanns](https://github.com/shannpersand/comic-shanns).
-## Changes in dtinth’s fork
+## Changes from Comic Shanns
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`.
+2. The glyph metrics have been adjusted to make it display better alongside system font, based on [Cousine](https://fonts.google.com/specimen/Cousine)’s metrics.
+3. The name is changed to `Comic Mono`.
+4. A bold version of the font is generated using [FontForge’s Embolden](https://fontforge.github.io/Styles.html#Embolden)
+
+I have no font creation skills, just a software developer. The original font, [Comic Shanns](https://github.com/shannpersand/comic-shanns), is patched using a Python script, [`generate.py`](generate.py).
## Usage
You can download it and install it like any other font.
![image 2](https://user-images.githubusercontent.com/4615568/44279592-ca292e00-a206-11e8-9278-4a7566425c0c.png)
![image](https://user-images.githubusercontent.com/4615568/44279593-ca292e00-a206-11e8-9b25-a4533b50d471.png)
-## What's in it?
-`ABCDEFGHIJKLMNOPQRSTUVWXYZ`
-
-`abcdefghijklmnopqrstuvwxyz`
-
-`1234567890`
-
-`~!@#$%^&*()-—+=;:"'<>,.?/\|[]{}?`
-
----
-### I need help with it...
-File an issue, we'll see.
-
-### License
-It is licensed under the MIT License.
+## License
+It is licensed under the [MIT License](LICENSE).
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
-"""Update the glyph metrics so that they all really have the same size."""
+"""
+Generates the Comic Mono font files based on Comic Shanns font.
-# Based on
-# - monospacifier: https://github.com/cpitclaudel/monospacifier/blob/master/monospacifier.py
-# - YosemiteAndElCapitanSystemFontPatcher: https://github.com/dtinth/YosemiteAndElCapitanSystemFontPatcher/blob/master/bin/patch
+Required files:
+- vendor/comic-shanns.otf
+- vendor/Cousine-Regular.ttf
+
+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
def height(font):
return float(font.capHeight)
-def adjust_height(source, template):
+def adjust_height(source, template, scale):
source.selection.all()
source.transform(psMat.scale(height(template) / height(source)))
for attr in ['ascent', 'descent',
'os2_typodescent', 'os2_typodescent_add',
]:
setattr(source, attr, getattr(template, attr))
- source.transform(psMat.scale(0.9))
+ source.transform(psMat.scale(scale))
-font = fontforge.open('comic-shanns.otf')
-ref = fontforge.open('vendor/Menlo.ttc')
+font = fontforge.open('vendor/comic-shanns.otf')
+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
g.right_side_bearing += delta - g.left_side_bearing
g.width = target_width
-adjust_height(font, ref)
+font.familyname = 'Comic 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'
+
+adjust_height(font, ref, 0.875)
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
+font.fontname = 'ComicMono'
+font.fullname = 'Comic Mono'
+font.generate('ComicMono.ttf')
+
+font.selection.all()
+font.fontname = 'ComicMono-Bold'
+font.fullname = 'Comic Mono Bold'
+font.weight = 'Bold'
+font.changeWeight(32, "LCG", 0, 0, "squish")
+font.generate('ComicMono-Bold.ttf')