FontAudit is a set of algorithms that analyzes a glyph’s outline to easily spot odd points and suspicious curves or technical errors that may cause the glyph to not render as well on screen or in print.
To turn on FontAudit, go to the menu bar, and select View > Show > FontAudit. FontAudit will be visible in the Editor and Elements modes of the Glyph window.
You can check glyphs selected in the Font window as well: select several cells and choose Font > FontAudit Glyphs.
If FontAudit finds what it thinks is an error, it shows a red arrow error pointer in the editing field of the Glyph window.
Or it marks cells in the Font window with red marks in the right top corners:
Hover the mouse pointer over the mark to see the short name of the error. For a full description, click on the mark to see the FontAudit error details.
This dialog has two buttons, Fix and Fix All, which you can use to try to automatically fix an error (Fix button) or all errors in the glyph (Fix All). Sometimes correcting one error causes others, so on occasion when you press the Fix (or Fix All) button you will see even more errors. Use the Fix feature carefully and be prepared to Undo an automatic fix.
Here is a short description of each test and the error that it detects. Tests that are new in FontLab VI are listed first.
|Curvature||Node is located very close to the point of a smooth curvature connection. Use Genius connections to improve smoothness|
|Disproportional||Control points of this curve are unbalanced. The shape of the contour may benefit from reconfiguration of the curve|
|Empty lines and curves||Lines or curves that have no length (example: two nodes on top of each other)|
|Vectors on ClosePaths||Unnecessary straight segment on a contour, leaving a zero-length “ClosePath” between the last point and the first point in the path. In fonts with PostScript outlines this error can cause problems with rasterization|
|Flat curves||Curves that can be replaced with a straight segment without loss of quality (a “curve” that is really a straight line). Although if the curve is truly perfectly flat this will not cause rendering issues, but it makes the font file bigger for no reason, and makes it easier to cause the line to be accidentally curvy again|
|Collinear vectors||Two sequential straight segments are collinear; therefore the first straight segment can be removed. Collinear refers to a single straight line with one or more extra nodes in the middle|
|Inflections on curves||Detects curves that have inflections — points where the curve changes direction without a node present. It is better to break such a curve into two curves with a node at the inflection point|
|“Weak” extremum points||There are “invisible” extreme points on curves. This error can cause problems with rasterization of the glyph|
|“Normal” extremum points||Curves need nodes at extreme points|
|Incorrect smooth connection||A straight segment and curve or two curves are connected very close to a smooth connection, but not precisely. This refers to what looks like a smooth connection but is labeled as a sharp connection|
|Cusp curve||Сusp is a special version of the loop, where the curve loops as a single sharp point|
|Loop||Intersecting handles make the curve segment to loop which is almost always unwanted|
|Zero-length handles||Handles are present but have zero in their length field|
|Semi-horizontal and vertical vectors||This refers to the direction of the straight segment is close to vertical or horizontal but is not parallel to one of the axes (i.e. not exactly horizontal or vertical)|
|Contour is not closed||Contour visually appears to be closed but is defined as open|
|Object is too short||Line or curve is short enough to be deleted.|
You can switch off any of the FontAudit tests by switching off their check boxes in the FontAudit panel‘s options:
As you can see, FontAudit testing can detect errors that are invisible without your having to do a tough, lengthy analysis. On the other hand some errors are, in fact, warnings and do not necessarily impair the glyph’s outline quality.