The mkttf.py
script converts a set of BDF files into
a TTF file, automatically generating the required scalable outlines
(actually, any font format supported by FontForge is accepted).
Call it with the -h
option for usage help.
The mkttf.sh
script generates medium (normal), bold and italic versions
of the Terminus font. It will create three directories ("Normal", "Bold"
and "Italic") in the current working directory.
To use mktff.py
, you need the following tools installed in your PATH:
- FontForge: This tool and its Python extension enable me to modify the font using Python. You need a version that has Python 3 support enabled (i. e. provides a Python 3 extension).
- Potrace: To generate the scalable outlines.
- A recent version of Python 3.
- ImageMagick: To upscale the bitmaps before tracing them with Potrace. This is done to improve the accuracy of the Potrace algorithm.
- Bash: Should be already installed on most Linux systems.
To use mkttf.sh
, you additionally need the following programs in your path:
- mkitalic: To generate the italic font.
The mkttf.sh
script takes two mandatory arguments:
- The directory containing the Terminus BDF files. The italic versions of the BDF files will be placed there.
- The font version which will be included in the file names of the generated files and in the font files themselves (so it can be e. g. shown to the user).
All other arguments are passed directly to mkttf.py
.
Additionally to generating TTF fonts, the script will also generate an SFD file (FontForge's native file format) for each font weight so that the generated fonts can be easily modified, if necessary.
If you want to generate TTF versions of other fonts, you should only need
to modify mkttf.sh
-- the mkttf.py
script is completely generic.
Have fun!
Windows, and native Windows programs like Visual Studio, will only use the bitmaps
embedded in the TTF fonts generated by mkttf
if certain Hiragana characters are
present in the fonts (for full details, see
Raster fonts in Visual Studio 2010).
mkttf
can ensure that those Hiragana characters are present in the generated
fonts. To enable this feature, pass the --visual-studio-fixes
(or just -s
)
option to your invocations of mkttf.sh
or mkttf.py
.
Caveat: mkttf
will not add real Hiragana glyphs to the font! Instead,
it will try to add a fake glyph for every required Hiragana character that is
missing from the font to fool Windows into thinking that the font is an Asian
font for which bitmaps should be used.
In detail, mkttf
will ensure that glyphs for the following Hiragana
characters are present:
- U+3044 "HIRAGANA LETTER I"
- U+3046 "HIRAGANA LETTER U"
- U+304B "HIRAGANA LETTER KA"
- U+3057 "HIRAGANA LETTER SI"
- U+306E "HIRAGANA LETTER NO"
- U+3093 "HIRAGANA LETTER N"
For missing Hiragana characters, mkttf
will simply re-use the glyph for another
character from the font; it will use the first character from the following list that exists
in the font:
Doing this has one big drawback: For the above Hiragana characters,
the "fake" glyphs will be used instead of real Hiragana glyphs
from another suitable font -- i. e. falling back to another font will not work,
and those characters will not be displayed correctly. This of course is an issue
if you actually need those Hiragana characters to display correctly, so you cannot
use this mkttf
feature in that case.