learning about fonts
i've been learning more about fonts and how they work. To that end, i've created a simple font that mimics my own handwriting. It's far from perfect, and it doesn't properly handle some of the characters that i'd like it to, but it's a start. If you'd like to see an example of what it currently looks like, you can see Lewis Carroll's Jabberwocky (pdf) rendered in the font.
I enjoy the balance that fonts give between artistic/aesthetic decisions, rigorous formal requirements, and arcane technical minutiae. I also find it really amusing to be able to search for text in a pdf reader and have it pick out characters of what looks like my (terrible) handwriting.
At the moment, i'm providing the font itself both as TrueType fonts and as a debian package. If you use Windows or Macintosh and you want to try this font out, you should download the zipfile full of TrueType fonts, extract them, and put them in your system's font directory. If you use The One True Operating System, you should be able to just download the .deb and install it (the sha1sum for that package should be: 21f51e77513f253332337c881ea1d5ce49d88694 ).
i'd be happy to hear reports of how it works (or doesn't) for people.
I owe a huge thanks to the makers of the following software and documentation, without which this project would have taken me much much longer:
- XSane, which made it easy for me to scan in the initial, handwritten character set.
- Inkscape, which made it very simple for me to convert the scans into vector format (SVG), and to subtly manipulate the SVG paths to get them roughly how i wanted them.
- FontForge, which let me put all the glyphs together and export them as a valid TrueType Font. The FontForge documentation is also a wealth of information about what fonts are, and the peculiarities of various technological implementations of them.
- Lastly, i used the debian packages for the Bitstream Vera fonts as a guide to creating the .deb for the dkg-handwriting font. That package's source is elegant and simple, and made it easy for me to copy-n-paste my way to what appears to be a functional .deb.
Among the things i'd still like to do on this project:
- tune the debian installation: i don't like that the source package currently being generated contains only the .ttf file. at this stage of the game, the .sfd is my preferred form for modification, so i'd really like to include that instead, and script fontforge to generate the .ttf from that. This would make fontforge a Build-Depends:, of course, but that's OK. it also would mean that i'd need to learn how to at least trivially script fontforge, which would be good.
- more characters! the font is embarrassingly limited. in particular, the characters for underscore, quote, apostrophe, and backtick are just plain wrong -- i forgot those chars when i was doing the initial handwriting sample. But i've also not provided any characters for high-ascii (accented characters, for example). I should fix that.
- Learn more about ligatures, char-specific kerning, and how to provide for these features from fontforge
- make a "real" font, one that doesn't look so ratty. this would require doing some actual planning and detailed tweaking of the glyphs, of course.
- find some publicly-available fonts and package them as a contribution to debian.
NOTE: on 12 Oct, i updated the links above to work for the new packages containing the full ISO 8859-1 charset, bold, and italics.
UPDATE: on 22 Sep, 2006, i updated the link to the debian package above to the new package which builds without lintian errors or warnings on debian etch.
MORE UPDATES: on 27 Dec, 2006, i rebuilt the fonts and the package using good hints from George Williams. I updated the sha1sum properly this time as well.