Inkscape Becomes an SVG Font Editor?

I hope I can inspire people to patch Inkscape to make it suitable for drawing type :-)

SVG Fonts isn’t supported much anywhere, but Chris Lilley’s talk at LGM2008 has got me thinking :-)

Could Inkscape become an SVG Font Editor?

Designing type involves working at four scales:

  1. designing individual letters (“drawing letters”)
  2. designing letters that look like they belong together (“drawing type”)
  3. designing letters that fit together to form words (“designing metrics”)
  4. designing letters that fit together to form paragraphs (“looking at typeset text”)

I think Inkscape could be good at all four of these.

Inkscape already has a template “fontforge_glyph” that sets up a canvas suitable for drawing a single letter - (A)

One way of making (B) possible could be through layers. SVG has “svg fonts” already, and this could work by having each glyph appear to be a layer. It would be possible to write a simple program to output an XML tree with the glyphs you want to design, and have a bunch of SVG Font templates for various common scripts. For this to really be useful though, Inkscape needs to have a new kind of layer-specific guideline. Inkscape doesn’t appear to have this right now, but since it has global ones, this ought to be simple to add. (If it isn’t again the SVG spec, it can be in the Inkscape-specific namespace.) Then, if the layers palette and “duplicate window” features could be extended to make it easy to compare layers (and thus glyphs) - stacking them, seeing them side by side, and so on.

The FontForge tutorial explains a little about designing metrics - (C). Having the left and right bearings appear as the page size (width) would be simple - and then Inkscape would be extended to allow changing the page size’s width directly on the canvas, instead of via the document properties dialog, so just like moving a guideline. But perhaps having layers with different page sizes is against the SVG spec… Although that would be the most straightforward way of setting the sidebearings from a UI perspective, if that isn’t possible, having the metrics appear as layer-specific guides with “left bearing” and “right bearing” IDs or Class could do the same job easily enough.

But what is really needed is to create a special “metrics” dialog. This could re-use the “duplicate window” feature to grab the glyph’s outline and render it on another canvas, a special one where the left and right bearings can be adjusted in the context of several letters next to each other in a word. (Again, see the FontForge tutorial if you’re not familiar with font editor programs.)

For typesetting text with the font, it would be straightforward to write some (python) glue scripts that open the SVG Font within FontForge, compile it into a system font format (Type 1, OpenType CFF) and then generate a PDF ‘specimen’ sheet to be printed. But eventually Inkscape will have to be able to render SVG Fonts directly on the canvas, and then it will be simple to have a “paragraph view” layer with some text that uses the glyphs from the self SVG.

Creative Commons License
The Inkscape Becomes an SVG Font Editor? by David Crossland, except the quotations and unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.


Leave a Reply