Spif - An Outline (Spline) Font Editor

What spif was, is and will be

Spif is intended to be an editor of outline fonts for Unix under X.

Some of the examples below are examples of sessions using an older version of spif. This version could load and display Adobe Type 1 font format (ascii) files. The outlines could be edited but not saved although I managed to use it to add a few extra glyphs to Times-Roman for my sister's honours thesis dealing with Middle English texts.

I am currently reworking spif. Spif was originally written using libXg. It is being rewritten to use GTK+. At present it is written in Python using pygtk.

Here is a screen snapshot of the new spif editing the lowercase `a' glyph from Melior. The scroll bars are active and will let one move around the canvas. Points may be selected and interactively moved. The data was entered by hand.

The toolbox is a plug-in architecture. Currently I have ellipse and box tools, a zoom tool and a hand tool for moving the canvas around. These plugins took about 5 minutes to write.

I finally hope to have spif handle Adobe Type 1 formats in all their various guises including hybrid, composite (Type 0) and multiple-master fonts. As well it should be possible to use spif to generate font metric files.

The original version of spif had been implemented to the point where it was capable of showing character outlines with hints (include hint replacements). These hints can been seen here in an image of Utopia-Regular `oe'. Spif also kept track of tangent matching points in an outline as well as flexion points. The points where control segments are colinear are clearly visible in the lowercase `g' from Utopia-Italic marked with small `t' characters. Flexion points are marked similarly with a small `f'.

The new version of spif is more grand in scope--I am intending a fully functional vector graphics programme akin to Illustrator. Preparing characters will be a special case.

The availability of spif

Unfortunately, spif is not yet available for general use. I may be interested in beta testers at some point but that is down the track. Possibly way down the track depending on how much real work I have to do. Let me know if you are interested, however, and I shall add you to a list to be mailed when spif is in a fit state to be tested.


James Matthew Farrow