Designing Swing Bold @ 18 point

Having decided to use my pantograph to try making a display matrix for my Monotype caster, and having chosen to make an at-sign (@) to match 18-point Swing Bold, the next task was to actually examine other letters in this font whose elements could be adapted to form the @.

Obviously, the lowercase ‘a’ is the starting point. To form the circle I also had a close look at uppercase ‘O’ and ‘C’ with the latter in particular providing the shape for the end of the tail.

Rather than designing the character on paper and having to fool around with the inevitable odd scaling to reduce it to the needed size, I used font-design software to make the outline, using photomicrographs from the specimen sheet as shape references.

The software I chose to use is the MS Windows version of FontForge, which is an open-source font editor available online.

Although the actual font design work is generally straightforward, there are several aspects of this program that are causing me some grief. Some of these may be due to the fact that the program does not use native windowing, but is actually an X Windows program, which launches an X Server to communicate with my screen, mouse, and keyboard.

One minor thing is that menus don’t cancel under the same circumstances as they do with native MSWindows programs, so when I decide I don’t want a menu after all, or want a different menu, the mouse clicks I would naturally use to do this don’t work here.

The Print dialog does not seem to contain the buttons required to actually do the printing. This could perhaps be something I could fix by playing with the X Windows configuration, but I haven’t had time to delve into that at all.

One big problem I’m having is that the various file open and file save dialogs don’t work well with drive letters and, as far as I can tell, don’t get along at all with UNC paths (\\computer\sharename\etc). I have at times been able to switch such dialogs to a different drive letter but even that is unreliable. I might be able to work around this by adding junction points (similar to Unix hard or symbolic links) to my file system so I can reach other places, but I would have to place such links on all the hard drives to ensure I could get anywhere regardless of where I started.

Another problem I find is that, when drawing the glyph outlines, the points that define the outline do not stand out enough. They are drawn in different shapes depending on what type of point they are (the point type constrains the reverse and forward tangents in various ways), some points (the curve start point, selected points) are specially marked by colour, and some points don’t actually define the outline but are annotations added by the program to mark inflection points and extrema. The actual point symbols are small, and weakly contrast with the background making them hard to distinguish. If you have a background image as a reference, the outline itself can also blend into that making it invisible. Having the ability to change the colurs and size of the points and colour of the contour would improve this dramatically.

I have also often found that I unexpectedly have more than one point selected, so when I move the point I wanted to move, several others move with it. If I notice this I can Undo to put things back and repeat the move with the correct selection, but if I were zoomed in enough that some of the selected points were off-screen I might not notice the mistake, continue with my work and later have to fix the points that “mysteriously” moved. I haven’t actually caught what causes these multiple selections, though.

One feature I would like to have (perhaps it is there but I just haven’t found it) is keyboard commands to select the next or previous point in the outline, and to select the forward or reverse control point for the current point. These are useful when the points are too close to make out without an extreme zoom in. Since two points can coincide (and a control point can coincide with the point it controls) it may be that no amount of zooming would help.

Although as mentioned above the Print dialog is unable to print, it can still export an image which I can then print using other programs. In this dialog you supply a text string along with a point size, a choice of rendering engine, and anti-aliasing choice (all of which can differ within the text). You also pick a value for resolution in pixels per inch, global to the entire string, and the rendered characters are shown on the screen. The bitmap can also be exported to a file.

One problem is that the saved image does not have the resolution specified in it, so opening the image in another program will show the letters the wrong size.

Another problem is that I want to use this feature to print oversize versions of the letters to make templates for the pantograph. The obvious way (at least, to me) to do this would be to select a resolution multiplied by the enlargement I want. So for instance if I wanted to see my 18 point @ sign at 10× magnification printed at 300dpi, I would ask the dialog to show me an 18-point @ sign at 3000 (10×300) dpi. That doesn’t work, though. Any time I change the resolution to any value above 300dpi the change is ignored. Instead I have to ask for a 180-point @ sign at 300dpi. In this case it amounts to the same result because I don’t currently have alternative outlines for different sizes. I do, however, plan to add the other sizes to the same font project, and each will have slightly different outlines. Then my only choice would be to generate and install the font as a Windows font, and use some other program (perhaps a custom one, or a PowerShell script) to draw the letter I want at the resolution I want.

This window also has problems if the generated bitmap is much larger than the window.

Finally, this form seems to scale my outlines so the interline spacing is the size I have selected, and despite all my attempts at removing extra vertical spacing, this form seems to insist on adding 200 design units (my design is drawn 1000 units tall) so I actually have to ask for a point size 20% larger than what I want. All this is ignoring the small error introduced by the fact that the point they are using is probably not 0.013833…″

Despite this rough start, I have an @ sign that looks good enough to work with, and I have the template outline printed off. I still have to work out the details of turning this into a template proper, selecting a cutting bit and tracer to match, and accounting for ink gain. Not to mention making a matrix blank to cut!

Leave a Reply

Your email address will not be published. Required fields are marked *