How to make a Roadsign Font

If you want a road sign font, you can pay $800 (for the full set) or you can make your own. You also have several other options like Blue Highway or the roadgeek fonts, although the latter is often criticized for being poorly put together (badly authored.) The creator of that set simply traced the existing fonts. I have no idea why, because you can download the "Manual on Uniform Traffic Control Devices" which contains all the outlines.

Unfortunately, the document is provided only as a PDF. Fortunately, it seems that the font info was included as outlines, not as a font. This means that we can (theoretically) just copy the outlines right out of the PDF. Taking this apart on Linux is, of course, fun and exciting. So far the most efficient way I've found is to load the PDF in Scribus and then copy the letters into new documents, save as SVG, import into fontforge, and massage from there. Some paths might not be closed (e.g. the B-200 Capital "A" character's inner triangle) so you might get to do some "make line" action. Figuring out fontforge is up to you.

Your best bet for opening PDFs and copying data out of them is Adobe Illustrator, but I think you need a Creative Suite version (no antiques) to even read a PDF - You might even need CS2. Otherwise, select and export each page from Scribus in turn (as SVG) which will let you load each page into Inkscape for carving up. Once you get into Inkscape, you can select each line of characters (~3-5 characters per line; 3 for biggest caps, ~5 for smaller punctuation) and save the entire line to its own SVG file. Do not perform any scaling unless it will be uniform to all characters. Once you have imported the entire character set in its little groups, you can import these groups into fontforge. Import each one into the glyph for the first letter included in each file. Import every file before continuing. Now perform this simple trick in order to scale the font:

Move a character which should rest on the baseline to the baseline. Rounded parts of characters drop past the baseline 1/20". Work out your own scaling factors. If you set the font size property to 1024 (as you will be asked to if you save as a truetype - a good reason to save your SFD file and even generate an empty font of your chosen output type before actually doing any work) then the characters will be 819 units tall. The example character spacings in the Alphabets.pdf file are given for 4" letters, so divide 819 by 4 to get your conversion factor. Just multiply this factor by the letter spacing to find out how much kern space to leave on the sides of the characters for the authentic (and accurate!) look. Now you can select all, then unselect and reselect a point (shift-click it twice) which should appear at the top-line of the glyph. (Again, characters with rounded portions will ascend above the line 1/20" at a 4" letter height.) The status bar will tell you the coordinates; you want the Y coord. Divide 819 (the character height) by this number, and multiply the result by 100. Now again shift-double-click a point, this time a point on the baseline. Finally, from the object menu, select "transform -> transform" and perform a uniform scale transformation, from the last clicked point, whose percentage is (819/characterheight*100). If this makes the character appropriately tall, undo the last operation, close the glyph window, select every glyph in your font in the font window, and then perform the same transform on the entire font. Now your font is properly scaled and you only have to move fonts to the baseline (easy) and kern them (tedious.)

I am working my way slowly down the character set and I'm working on a set of fonts. The roadgeek fonts are for noncommercial use only; I intend to release mine under a creative commons license or similar. We The People paid for the creation of the fonts in question, and we have a right to use the font design, although not the name of the font perhaps. I intend to name the fonts after the series numbers, which are the creation of the federal government, and thus in the public domain.

So far I have a series E-2000 font, and a worse one (which I intend to recreate) for series B-2000. The E-2000 font is attached - it may still need attention. The font is licensed under the Creative Commons Attribution-Share Alike 3.0 United States License - unlike the roadgeek fonts, this font is acceptable for commercial use.

File attachments: 
AttachmentSize
Package icon SAFTCDSeriesE2000.zip0 bytes

Add new comment

(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Default

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • You may link to images on this site using a special syntax
  • Web page addresses and e-mail addresses turn into links automatically.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Filtered words will be replaced with the filtered version of the word.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <q>

Issue

  • Lines and paragraphs break automatically.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>

Drinking Game

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <pre> <h2> <h3> <h4>
  • Images may be embedded like: [image:node_id align=alignment hspace=n vspace=n border=n size=label width=n height=n nolink=(0|1) class=name style=style-data node=id] Leave off any attributes you don't want.
  • [img_assist|...] tags will be displayed, maybe. Please don't make more of them.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.