The smallest valid font for Windows
Posted: Mon Feb 03, 2014 12:25 pm
Most people don't care about the size of their fonts, but sometimes there is need for a small font.
FontCreator will try to keep the file size as low as possible, so to some extent it can be used for this purpose.
To really, really, make a font with the smallest file size, it will become a font which can't be used to actually display text, as we need to make it as bare as possible but still obey all requirements as found in the TrueType/OpenType specifications.
There are several specific parts that need attention:
The font naming values
Since a font needs to have a name, we will use a single character (s for small).
A glyph with an outline
We will keep the first glyph as the .notdef glyph, and will add another glyph mapped to the hyphen character. We avoid complexity as that would only increase the font file size, so the glyph will only have a single rectangle.
No advanced features
All things that are not required will be avoided, so we will not include kerning, hinting, or OpenType layout features.
The font generated by FontCreator 7.5 contains 696 bytes: We can even reduces the size some more by using FontCreator 6.5 as that version allows you to further fine-tune platform specific data. That font file has 552 bytes and is still valid according to Windows. This file can both be downloaded here: I'm sure there are some more ways to squeeze a byte or two (change the outline from a rectangle to a triangle), but 552 bytes is close to the limit for a valid Windows font. Excluding the internal OS/2 and post tables is another option, but then you end up with a legacy font which is beyond the limit in my opinion.
The main reason version 7.5 of our font editor produces slightly larger fonts, is the fact it is designed with the latest versions of the OpenType font specification in mind. However that is not the only reason. Since we continually improve our software, making it more intuitive, we also strive to simplify complex/technical parts of font design, which means you are less likely to make mistakes, and have more time to complete your fonts.
FontCreator will try to keep the file size as low as possible, so to some extent it can be used for this purpose.
To really, really, make a font with the smallest file size, it will become a font which can't be used to actually display text, as we need to make it as bare as possible but still obey all requirements as found in the TrueType/OpenType specifications.
There are several specific parts that need attention:
The font naming values
Since a font needs to have a name, we will use a single character (s for small).
A glyph with an outline
We will keep the first glyph as the .notdef glyph, and will add another glyph mapped to the hyphen character. We avoid complexity as that would only increase the font file size, so the glyph will only have a single rectangle.
No advanced features
All things that are not required will be avoided, so we will not include kerning, hinting, or OpenType layout features.
The font generated by FontCreator 7.5 contains 696 bytes: We can even reduces the size some more by using FontCreator 6.5 as that version allows you to further fine-tune platform specific data. That font file has 552 bytes and is still valid according to Windows. This file can both be downloaded here: I'm sure there are some more ways to squeeze a byte or two (change the outline from a rectangle to a triangle), but 552 bytes is close to the limit for a valid Windows font. Excluding the internal OS/2 and post tables is another option, but then you end up with a legacy font which is beyond the limit in my opinion.
The main reason version 7.5 of our font editor produces slightly larger fonts, is the fact it is designed with the latest versions of the OpenType font specification in mind. However that is not the only reason. Since we continually improve our software, making it more intuitive, we also strive to simplify complex/technical parts of font design, which means you are less likely to make mistakes, and have more time to complete your fonts.