18

Python+FontForge+Org: I made a font based on my handwriting

 3 years ago
source link: https://sachachua.com/blog/2020/06/pythonfontforgeorg-i-made-a-font-based-on-my-handwriting/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

I wanted to make a font based on my handwriting using only free software. It turns out that FontForge can be scripted with Python. I know just a little about Python and even less about typography, but I managed to hack together something that worked for me. If you’re reading this on my blog at https://sachachua.com/blog/ , you’ll probably see the new font being used on the blog post titles. Whee!

Screenshot_2020-06-04_23-49-38-280x52.png

My rough notes are at https://github.com/sachac/sachac-hand/ . I wanted to write it as a literate program using Org Babel blocks. It’s not really fully reproducible yet, but it might be a handy starting point. The basic workflow was:

q
sfnt2woff

I really liked being able to specify kerning classes through an Org Mode table like this:

None o,a,c,e,d,g,q,w f,t,x,v,y,z h,b,l,i,k j m,n,p,r,u s T zero None 0 0 0 0 0 0 0 0 0 f 0 -102 -61 -30 0 -60 0 -120 -70 t 0 -70 -41 -25 0 0 0 -120 -10 r 0 -82 -41 -25 0 -20 0 -120 29 k 0 -50 -81 -20 0 -20 -48 -120 -79 l 0 -41 -50 0 0 0 0 -120 -52 v 0 -40 -35 -30 0 0 0 -120 30 b,o,p 0 -20 -80 0 0 0 0 -120 43 a 0 -23 -60 0 0 0 0 -120 7 W 0 -40 -30 -20 0 0 0 -120 17 T 0 -190 -120 -60 0 -130 0 0 -188 F 0 -100 -90 -60 0 -70 -100 -40 -166 two 0 0 0 0 0 0 0 0 -53

I had a hard time defining classes using the FontForge interface because I occasionally ended up clearing my glyph selection, so it was great being able to just edit my columns and rows.

Clearly my kerning is still very rough–no actual values for j, for example–but it’s a start. Also, I can probably figure out how to combine this with character pair kerning and have two tables for easier tweaking.

A- insisted on tracing my handwriting template a few times, so I might actually be able to go through the same process to convert her handwriting into a font. Whee!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK