learning about fonts

dkg's picture
| |

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.

now in debian lenny

so this package is now officially part of debian's upcoming Lenny release. You should use debian's repositories to pull the package in, if you want it.

I've moved my experimental work on the package to the CMRG apt repository, in its fonts component.

sha1sum issues

hey d --

I just downloaded the .deb, but when I run

> sha1sum ttf-fifthhorseman-dkg-handwriting_0.008_all.deb
8d03d28edb3b359e26bab5211556b52ee93875f5 ttf-fifthhorseman-dkg-handwriting_0.008_all.deb

which isn't what I expect.

did I do something wrong?

fixed sha1sums

Whoops! no, you didn't do anything wrong. i just hadn't updated the sha1sum posted on this page.

I took the opportunity to make a couple more fixes to the build process, and i've posted version 0.009, with a proper sha1sum above (the 0.009 .deb should have an sha1sum of: 21f51e77513f253332337c881ea1d5ce49d88694)

Thanks for catching this!

I've now also set up a font-specific apt repository which you can use to pull in my font package, and get the latest updates. You can add it to your sources.list with the following lines:

deb http://lair.fifthhorseman.net/~dkg/fonts/apt sid main
deb-src http://lair.fifthhorseman.net/~dkg/fonts/apt sid main

It is signed with my gpg key (which you can also get with gpg --keyserver pgp.mit.edu --recv-key A54B6365)

neat!

I added the

deb http://lair.fifthhorseman.net/~dkg/fonts/apt sid main

line to my Ubuntu sources (in the "third party" dialog box -- no editing /etc/apt/* directly for me if I can avoid it) and once I installed your GPG key in the administrator keyring it worked fine.

However, please note that there's something funky happening in defoma (perhaps your scripts want to set some variable? can you replicate these warnings?):

$ sudo apt-get install ttf-fifthhorseman-dkg-handwriting
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
ttf-fifthhorseman-dkg-handwriting
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 230kB of archives.
After unpacking 434kB of additional disk space will be used.
Get:1 http://lair.fifthhorseman.net sid/main ttf-fifthhorseman-dkg-handwriting 0.009 [230kB]
Fetched 230kB in 4s (56.6kB/s)
Selecting previously deselected package ttf-fifthhorseman-dkg-handwriting.
(Reading database ... 161973 files and directories currently installed.)
Unpacking ttf-fifthhorseman-dkg-handwriting (from .../ttf-fifthhorseman-dkg-handwriting_0.009_all.deb) ...
Setting up ttf-fifthhorseman-dkg-handwriting (0.009) ...
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
Use of uninitialized value in print at /var/lib/defoma/scripts/gs.defoma line 108.
opendir: No such file or directory
Regenerating fonts cache... done.

$
I should add that it worked: the font is installed and viewable through (e.g.) gucharmap. Yay!

Hey folks -- i've done some f

Hey folks -- i've done some fixes and updates, so the links above should now point to the new versions.

Fixed are:

  • completed the ISO 8859-1 charset, including basic latin accented characters

  • providing bold, italic, and bold italic versions of the font
  • debian package is now generated from the fontforge file with a script

it's so very nice  &nbs

it's so very nice
    that you've made a font
the true-type
 works
  wonderfully
     in the OS-
-X.

I actually *can* imagine how much time it took.

You're a punk if you don't think that dkg-handwriting is a "real" font.

Check out Robert Bringhurst's The Elements of Typographic Style for a bit of pure analysis of typography. As the says: "Good typography is like bread: ready to be admired, appraised an dissected before it is consumed." -- and you know I know a good bread. Possibly more to your liking is a book that I picked up during my days at SRI - Donald E. Knuth's Digital Typography. If you get the whole Computers & Typesetting set I'd be happy to borrow 'em from you when I move to NYC next year.

Why doesn't yer blog allow <pre> tags?

looks beautiful. your handwr

looks beautiful. your handwriting is a lot nicer (and more interesting than most) than you give it credit for.

Awesome! I have used it in W

Awesome! I have used it in Windows; I'll try installing it in Linux later on today if I get a chance.

It works fine, except for the apostrophe. When I type I'm I get a right bracket, like this: ] when I type the apostrophe. This seems to be true with the shift key on AND with it off. It doesn't look like a character from your set either, it looks like a standard bracket.

I guess that's what you mean in your point about the things still to be done.

I can't even imagine how much time this took! Very cool!! It really does look like your (execrable) handwriting (not that mine is much better these days. Too much typing!

The great thing about this is

The great thing about this is that I can enlarge the font! That's the biggest problem with your handwriting. It's so darn small! When enlarged to a readable (by me) size, it's really quite attractive!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.