WORKPLACE FONTS - DEVELOPMENT NOTES Updated 2010-07-29 This file contains some pointers for people wishing to contribute to the development of Workplace Sans and Workplace Gothic. DESIGN Even though these are TrueType fonts, I create all the outlines using cubic (PostScript) splines. These are automatically converted to quadric splines when the TrueType font is generated. (There's no particular technical reason for doing it this way; I just happen to find cubic splines easier to work with when designing.) All of the fonts use a base UPM of 1000. This is mostly for historical reasons (also, it's what TypeTool defaults to). Stroke Positions In designing these fonts to closely reflect the existing bitmap glyphs of WarpSans, I found it useful to imagine each glyph as a conceptual grid, in which each square corresponds to a pixel in the 9-point (120dpi) version of WarpSans. According to this system, one "pixel" corresponds to 65 upm horizontally, or 67.5 upm vertically. See below for a table of the specific values. In practise, there is some variation, and many lines do not match this grid perfectly; in general, visual consistency and balance are given higher priority than rigid adherence to the grid. (It should be noted that the vertical metric lines don't perfectly match these points, although they come close.) The character boundaries are a slightly special case. Characters can generally be placed in two categories: those with a "pixel" of whitespace on either side (e.g. "a", "b", "o"), and those without (e.g. "v", "w", "x"). (A few glyphs, such as "C", "E", and "F", have such whitespace on one side but not on the other.) Characters without whitespace margins start with the first stroke at the 10 upm position; those with margins start at slightly different coordinates depending on the font and character: Workplace Sans: Lowercase characters 65 upm; uppercase characters 70 upm Workplace Sans Bold: Lowercase characters 65 upm; uppercase characters 75 upm Workplace Gothic is generally the same, but I've varied it a bit more on a character-by-character basis in order to achieve as even a text spacing as possible. The conceptual grid can thus be summarized as follows: DIR. APPROXIMATE STROKE POSITIONS (in upm) ------------------------------------------------------------------------------------------------------ Horz*: 65 130 195 260 325 390 455 520 585 650 715 780 845 910 975 Horz@: 10 75 140 205 270 335 400 465 530 595 660 725 790 855 920 985 Vert: -202 -135 -67 0 68 135 202 270 338 405 472 540 608 675 742 810 878 945 1012 * The first position may vary slightly between upper/lowercase characters (see above) @ Use this line when the character should have no leading whitespace at 9 pt Stroke Width The actual width of strokes does not perfectly match the grid squares. Generally, I try to put the left or bottom edge of the stroke at or near the grid point, and let the right/top edges fall where they will according to the proper width of the stroke. (With horizontal strokes at the top of the glyph, I try to make sure that the top edge is flush with the metric guide-lines.) In Workplace Sans, vertical strokes should be 50 upm wide, and horizontal strokes should be 48 upm high. In Workplace Sans Bold, vertical strokes should be 140 upm wide, and horizontal strokes 65 upm high. In Workplace Gothic, vertical strokes are 60 upm wide, and horizontal strokes are 55 upm high. In the current release of Workplace Gothic Bold, vertical strokes are around 110 upm wide (with horizontal strokes remaining at 55 upm high). However, I am working on a new release of Workplace Gothic Bold which will widen all strokes significantly. In both font families, the width of diagonal strokes will depend on the angle of slant, but should generally try to achieve a consistent appearance with the verticals. SOFTWARE I develop all the Workplace fonts using FontLab TypeTool: http://www.fontlab.com/font-editor/typetool/ Development work is done using TypeTool version 3. At present, I'm using version 2 to actually build the final TTF files, as various users reported problems with the hinting when I used to build with version 3. (TypeTool automatically generates hints/instructions for each glyph; the autohinting logic was apparently redesigned between versions 2 and 3, so fonts produced by the two versions exhibit slightly different results.) The only real feature from version 3 that I depend on is the ability to create composite glyphs from pre-existing components (for instance, creating a diacritical form by linking a base character plus an accent). Fortunately, since this feature is inherited from FontLab Studio (with which both versions of TypeTool are designed to be compatible), TypeTool version 2 is capable of recognizing and preserving such glyphs even though it cannot actually create them itself. Unfortunately, TypeTool provides no way of manually hinting glyphs. The "professional" version of the software, FontLab Studio, does, but at present it's a bit beyond my price range. I use FontForge to create the BDF (bitmap font) files and import them into the TTF files: http://fontforge.sourceforge.net/ CMAPS TypeTool generates TTF fonts with two cmaps (codepoint-to-glyph mapping tables) in the font header. One is always Unicode, the other is customizable. I've taken to generating my fonts with OS2UGL (the OS/2 Universal Glyph List) as the second cmap. This probably isn't necessary, as the OS/2 TypeType drivers will generally get their mapping information in other ways, but it could conceivably be useful in some circumstances (at least as a fallback). The version of OS2UGL I use is based on the "extended" (merged) version included in all versions of OS/2 since Aurora. TypeTool doesn't include a codepage table for this version (although it does have them for some of the older, non-merged versions), so I have provided my own. Actually, I've provided two (available on my website): - OS2EUGL.CPG is a direct conversion of the OS2UGL-to-Unicode mapping used by OS/2, albeit with a couple of errors corrected. East Asian characters are mapped to their canonical ("fullwidth") equivalents. - OS2EUGLH.CPG is the same except that instead of mapping East Asian characters (Japanese, Korean, and CJK symbols) to the standard "fullwidth" versions, they are mapped to the single-byte "halfwidth" versions instead. Doing this effectively simulates the character map used by SBCS OS/2 bitmap fonts. I can't really recommend one over the other; as noted, in practise the OS2UGL cmap probably won't be used anyway. To use these files, copy them into the directory where TypeTool keeps its codepage definition files (the location varies according to the version). They should then be available in the list of codepages shown in "index" mode. LICENSE Copyright (c) 2010 Alexander Taylor: http://www.socis.ca/~ataylo00 These fonts are licensed under the SIL Open Font License, Version 1.1; see the font header (viewable in the VFB file) or the documentation distributed with each compiled font file for details.