以前Juiseeフォントの設定をカスタマイズしてビルドするの記事を書いたりしていたが,先月バージョン0.1.0が出たらしい。
最近うっかりubuntuを24.04にバージョンアップしてしまったので,
Juiseeフォントのビルドに必要なfontforgeのバージョンである20230101
がインストール可能となった。
そこで,Julia言語を使って気軽にビルドできるようなものを作ってみた。
ツールのソースリスト
""" setup_juisee_build_env(tarball="juisee-0.1.0.tar.gz", env_path="env_juisee"; python_os="/user/bin/python3") Juiseeフォントをビルドする環境をセットアップする * `tarball`: juiseeのソースアーカイブファイル * `env_path`: pythonの仮想環境をどこに作成するか。 展開したフォルダの中からの相対パスを指定 * `python_os`: OSのpythonバイナリを指定 # Examples ```julia-repl julia> cd(joinpath(ENV["HOME"], "Downloads")) julia> setup_juisee_build_dev("juisee-0.1.0.tar.gz") ``` """ function setup_juisee_build_env( tarball="juisee-0.1.0.tar.gz", env_path="env_juisee"; python_os="/usr/bin/python3") _oldcd = pwd() run(`tar xzf $tarball`) build_dir = chopsuffix(tarball, raw".tar.gz") cd(build_dir) run(`$(python_os) -m venv $(env_path)`) run(`$(env_path)/bin/pip install -r requirements.txt`) run(`$(env_path)/bin/pip install setuptools`) cd(_oldcd) end """ build_juisee(options=[], workdir=pwd(); ff="fontforge", python="env_juisee/bin/python") juiseeフォントをビルドする * `options`: オプションの配列を代入する `["--slashed-zero", "--invisible-zenkaku-space", "--half-width"]`等 * `workdir`: juiseeのソースがあるフォルダを指定する * `ff`: fontforgeの実行ファイル * `python`: ビルド用のpython実行ファイルへのパス # Examples ```julia-repl julia> cd(joinpath(ENV["HOME"], "Downloads", "juisee-0.1.0")) julia> build_juisee(["--slashed-zero", "--half-width"]) ``` """ function build_juisee(options=[], workdir=pwd(); ff="fontforge", python="env_juisee/bin/python") _olddir = pwd() cd(workdir) run(`$ff --lang=py -script $(joinpath(".", "fontforge_script.py")) $options`) ttfs = filter(f -> occursin(r"fontforge_Juisee.*\.ttf", f), readdir("build")) for ttf in ttfs f_ttf = abspath(joinpath("build", ttf)) run(`$python -m ttfautohint --dehint --no-info $(f_ttf) $(f_ttf)`) end run(`$python fonttools_script.py`) cd(_olddir) end
とまぁこんな感じ。build
フォルダ内にフォントが作成される。
基本的にはpythonの仮想環境をセットアップしているだけなので,
sudo apt install fontforge
等でfontforge
をあらかじめ別途インストールしておく必要がある。