﻿<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text" xml:lang="en">Typography</title>
  <link type="application/atom+xml" href="https://d.moonfire.us/tags/typography/atom.xml" rel="self" />
  <link type="text/html" href="https://d.moonfire.us/tags/typography/" rel="alternate" />
  <updated>2026-03-07T17:43:17Z</updated>
  <id>https://d.moonfire.us/tags/typography/</id>
  <author>
    <name>D. Moonfire</name>
  </author>
  <rights>Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International</rights>
  <entry>
    <title>Creating Unicode charts for fonts</title>
    <link rel="alternate" href="https://d.moonfire.us/blog/2013/03/20/creating-unicode-charts-for-fonts/" />
    <updated>2013-03-20T05:00:00Z</updated>
    <id>https://d.moonfire.us/blog/2013/03/20/creating-unicode-charts-for-fonts/</id>
    <category term="graphics" scheme="https://d.moonfire.us/categories/" label="Graphics" />
    <category term="programming" scheme="https://d.moonfire.us/categories/" label="Programming" />
    <category term="writing" scheme="https://d.moonfire.us/categories/" label="Writing" />
    <category term="flight-of-the-scions" scheme="https://d.moonfire.us/tags/" label="Flight of the Scions" />
    <category term="fontforge" scheme="https://d.moonfire.us/tags/" label="FontForge" />
    <category term="fonts" scheme="https://d.moonfire.us/tags/" label="Fonts" />
    <category term="python" scheme="https://d.moonfire.us/tags/" label="Python" />
    <category term="sand-and-blood" scheme="https://d.moonfire.us/tags/" label="Sand and Blood" />
    <category term="typography" scheme="https://d.moonfire.us/tags/" label="Typography" />
    <content type="html">&lt;p&gt;So, one of the major goals for &lt;em&gt;Sand and Blood&lt;/em&gt; (SAB) is to create my own font. Yeah, it is a "pie in the sky" as it were, but it is something I'm enjoying doing during my lunch breaks. However, I decided I needed something a bit more complicated than just creating the glyphs by hands. And I wrote a Unicode chart generator to help me do it.&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h1&gt;Parametric Fonts&lt;/h1&gt;
&lt;p&gt;It wasn't something I was going to really get into, but I got dragged into a number of discussions about &lt;a href="http://en.wikipedia.org/wiki/Metafont"&gt;MetaFont&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/MetaPost"&gt;MetaPost&lt;/a&gt;. I love the idea of MetaFont except that I haven't found a good way of translating it &lt;a href="http://en.wikipedia.org/wiki/OpenType"&gt;OpenType&lt;/a&gt; fonts or TrueType fonts.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Side note: Getting the impression there are a lot of PascalCaseNames in software?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;One of the neatest things about MetaFont is that it is parametric. You adjust a few dials and you get a different font. I can make a serif version of a sans-serif but keep the same x-height (much like &lt;a href="http://www.myfonts.com/fonts/emigre/mrs-eaves-ot/"&gt;Mrs. Eaves&lt;/a&gt; and &lt;a href="http://www.myfonts.com/fonts/emigre/mr-eaves-sans-opentype/"&gt;Mr. Eaves&lt;/a&gt;). I could also have one with more of an italic bent. They will be similar (that's the point), but visually different.&lt;/p&gt;
&lt;p&gt;The biggest problem MetaFont is the inability to get it into TrueType. That includes getting good hinting and kerning set up so the font looks &lt;em&gt;good&lt;/em&gt; in print in addition to being distinctive.&lt;/p&gt;
&lt;p&gt;Somewhere deep in the vast repository of knowledge I have, I remembered that &lt;a href="http://fontforge.org/"&gt;FontForge&lt;/a&gt; had a Python API and it could do almost everything I could do in person. FontForge also writes out OTF and TTF fonts. And, in a previous job of writing computerized sewing software, I actually created a system of creating sewing patterns based on detailed measurements along with a system of abstracting those metrics to make it easier to work with.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Another side note: Yes, I sew. I used to make dresses and costumes when I was a teenager.&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;FontForge&lt;/h1&gt;
&lt;p&gt;I'm fairly decent at FontForge. Well, not great but I've created three fonts already with it. Most of them were trivial (for a game I wrote) but I enjoy working with it. I also did the &lt;a href="http://d.moonfire.us/blog/2012/10/29/miwafu-glyphs"&gt;Miwāfu glyphs&lt;/a&gt; in it, but didn't like the results so far.&lt;/p&gt;
&lt;p&gt;Yesterday at lunch, I got the basics of a Python-based system for generating &lt;a href="https://github.com/dmoonfire/fedran-fontforge"&gt;Fedran fonts&lt;/a&gt;. It is &lt;em&gt;very&lt;/em&gt; rough at this point, but I think I'll hit the first peak in a week or so. I'm making it text-based so it is easy to track how things change, but also so I can reuse aspects of the font for various glyphs (like serifs).&lt;/p&gt;
&lt;p&gt;This is the fun part, when all the ideas are bubbling in my head. It helps distract from the serial, which I can't work at lunch on and I can't really get the time to focus during the week. So, I'm getting my writing in on the weekend. Still maintaining the 10-20k words/week, but just cramming it into three days.&lt;/p&gt;
&lt;h1&gt;Preview&lt;/h1&gt;
&lt;p&gt;Last night, I wrote up a quick Python-based program under the new umbrella of &lt;a href="https://github.com/dmoonfire/mfgames-font-python"&gt;MfGames Font Python&lt;/a&gt;. This uses my tools framework, but basically generates a PDF of a Unicode range of an arbitrary font. Which is great when I want to see the results of my work. And since I use &lt;code&gt;evince&lt;/code&gt;, which automatically reloads PDF files that change, I have a very fast development cycle of hitting F5 to build and seeing the result in 2-3 seconds.&lt;/p&gt;
&lt;p&gt;There is a bunch that still needs to be done, but I think it is a good start to play around. I might not finish, but it is moving down the direction I want to go with both SAB and FOTS, but also longer-term plans.&lt;/p&gt;
&lt;h1&gt;Purpose&lt;/h1&gt;
&lt;p&gt;Speaking of SAB, this actually advances that project. In Fedran (the world &lt;em&gt;Sand and Blood&lt;/em&gt; is set), there are a number of of languages including Volis, Miwāfu, and Lorban. In SAB, there is only one language, Miwāfu, but in &lt;em&gt;Flight of the Scions&lt;/em&gt; there are all three plus telepathy. Most of them are notationally translated (e.g., you don't have to know three made up languages to read my book), but I want a different visual appearance.&lt;/p&gt;
&lt;p&gt;I could drop one of them, though I think it is nice flavor and leads into the next book. If I did that, it would be fairly easy to have two languages with one italic and telepathy which I use «guillemets» to distinguish it (thanks to &lt;a href="http://en.wikipedia.org/wiki/So_You_Want_to_Be_a_Wizard"&gt;So You Want to be A Wizard&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;But, I want to see how this turns out. Even if it doesn't, I'm having fun. I think it will look good, but it is something I won't know until I typeset. I've had enough trouble finding a font that handles all of the Miwāfu accents well (áéíóúńàèìòùǹāēīōūn̄) and has a serif and sans-serif version. As long as I avoid the "n" accents (ńǹn̄), basic fonts work so I can still put it on Kindle and other readers.&lt;/p&gt;
&lt;p&gt;Like most of my projects, I'm willing to set it aside if it doesn't work. I have contingency plans for just about everything left in SAB. Since I have an editor scheduled for May, I figured I have a few months to just... play.&lt;/p&gt;
</content>
  </entry>
</feed>
