svgからufoを生成する
ひとまずオリジナルで作った「あ」「い」「う」の文字を含むフォントを作る
グリフとなるsvgアウトラインデータを作成
pip install fonttools
pip install ufoLib
python3 ./svg2glif.py original-svg/uni3042.svg LnNorthRound-Light.ufo/glyphs/cid00843.glif -w 1000 -H 1000 -u "3042" -t "1 0 0 -1 0 1000"
python3 ./svg2glif.py original-svg/uni3044.svg LnNorthRound-Light.ufo/glyphs/cid00845.glif -w 1000 -H 1000 -u "3044" -t "1 0 0 -1 0 1000"
python3 ./svg2glif.py original-svg/uni3046.svg LnNorthRound-Light.ufo/glyphs/cid00847.glif -w 1000 -H 1000 -u "3046" -t "1 0 0 -1 0 1000"
ln-north/font-engineering-playground/ufo2ft の吐き出した ufo を見ながら、 ufo/
に
- fontinfo.plist
- layercontents.plist
- lib.plist
- metainfo.plist
- glyphs/contents.plist
- glyphs/_notdef.glif
を以下のようにして作成し、UFOのSpecを見ながら編集。
cp ../ufo2ft/AFDKOSample-Light_min.ufo/*.plist ./LnNorthRound-Light.ufo/
cp ../ufo2ft/AFDKOSample-Light_min.ufo/glyphs/contents.plist ./LnNorthRound-Light.ufo/glyphs/
cp ../ufo2ft/AFDKOSample-Light_min.ufo/glyphs/_nodef.glif ./LnNorthRound-Light.ufo/glyphs/
ufo2ft でOTFを作る
pip install defcon
pip install ufo2ft
python3 publish.py
- 実装
- Unicode対応表
- Unicode CIDの対応表
- UFO仕様
- http://unifiedfontobject.org/versions/ufo3/fontinfo.plist/
- http://unifiedfontobject.org/versions/ufo3/layercontents.plist/
- http://unifiedfontobject.org/versions/ufo3/lib.plist/
- http://unifiedfontobject.org/versions/ufo3/metainfo.plist/
- http://unifiedfontobject.org/versions/ufo3/glyphs/contents.plist/
- svg2ufoの中身はあまり覗けていないが見てみたい
- 今回はufoの作成がメインだったので、fontinfoのメトリクス設定はもう少しちゃんとOpenType仕様と合わせて見る必要がありそう
- ufoとsvgはyの座標系が逆
- yを反転してheight分y方向にoffsetした
- 本当に合っているかメトリクスについてより深い理解が必要そう
- pythonはmodule名とファイル名が同名だとファイルを先に読みに行ってしまってmoduleまで読みに行けない(ハマった)