fontmake
さまざまなソース ( .glyphs
、 .ufo
、 designspace
) からのフォントをバイナリ ( .otf
、 .ttf
) にコンパイルします。これを使用して、静的インスタンスと可変フォントを作成できます。
Fontmake には Python 3.8 以降が必要です。
リリースは PyPI で入手でき、pip でインストールできます。
pip3 install fontmake
-U
、 --upgrade
オプションを使用して、fontmake とその依存関係を利用可能な最新リリースに更新します。
pip3 install -U fontmake
インストール後、 fontmake
実行可能ファイルを使用できるようになります。
たとえば、Glyphs ソース ファイルから可変フォントをコンパイルするには、次を使用します。
fontmake MyFont.glyphs -o variable
fontmake
実行可能ファイルに対する最も重要なコマンド ライン引数は、位置引数として、または-g
/ -u
/ -m
フラグのいずれかを使用して指定される必須の入力と、出力ファイル形式を選択するオプションの-o
フラグです。
ソース ファイルを指定するには 2 つの方法があります。
次の相互に排他的なフラグを使用できます。
-g filename.glyphs
: Glyphs ソース ファイルをバイナリに変換します。-u filename.ufo ...
: 1 つ以上の UFO(Z) ファイルをバイナリに変換します。-m filename.designspace
: Designspace ファイルをバイナリに変換します。 ( -m
、設計空間を処理するための古い Python ライブラリであるmutatormath
を表します。)あるいは、フラグを付けずに入力を位置引数として指定し、fontmake にファイル拡張子からソース形式を推測させることもできます ( fontmake MyFont.designspace
など)。
注: 位置引数の前に 1 つ以上の引数を取るオプションがある場合は、特殊な--
区切り文字を使用して後続のすべての引数を位置 (非オプション) としてマークする必要があります。そうしないと、パーサーが混乱します。たとえば、 -i
オプションは 0 または 1 つの引数を取ります (詳細については以下を参照)。 --
がないと、argparse は入力がなかったとみなします。
fontmake -i -- MyFont.designspace
どちらのアプローチを使用しても、入力のタイプは 1 つだけ指定できます/指定する必要があります。
-o
オプションの後に 1 つ以上の出力ファイル形式を指定できます。たとえば、 -o otf ttf
入力ファイル内のマスターごとに OTF および TTF バイナリ フォント ファイルを作成します。
次の出力ファイル形式が利用可能です。
otf
: マスターごとの OTF (CFF アウトライン) バイナリ。 master_otf/
ディレクトリに配置されます。ttf
: マスターごとの TTF (TrueType-outline) バイナリ。 master_ttf/
ディレクトリに配置されます。otf-cff2
: CFF2 アウトラインを備えたマスターごとの OTF バイナリ。 master_otf/
ディレクトリに配置されます。variable
: TrueType 可変フォント。 variable_ttf/
ディレクトリに配置されます。variable-cff2
: CFF2 アウトラインのバリアブル フォント。 variable_otf/
ディレクトリに配置されます。次の出力ファイル形式も使用できますが、通常は上記の出力のいずれかの中間ステップとして fontmake によって内部的に使用されます。
otf-interpolatable
: 可変フォントへのマージに適した OTF バイナリ。 master_otf_interpolatable/
ディレクトリに配置されます。 (これらは、アウトラインが最適化されていないという点でotf
とは異なります。)ttf-interpolatable
: 可変フォントへのマージに適した TTF バイナリ。 master_ttf_interpolatable/
ディレクトリに配置されます。 (輪郭は補間互換の方法で二次曲線に変換されます。)ufo
: グリフ ソースは、UFO または--save-ufo-as-zip
フラグを使用して UFO zip ( .ufoz
) 形式に変換できます。 master_ufo/
ディレクトリに配置されます。形式オプションが指定されていない場合、デフォルトは-o otf ttf
です。
-i
(インスタンスの補間): マスターごとのバイナリがあることは、常に期待どおりであるとは限りません。 Glyphs ファイルにインスタンス (「エクスポート」) を定義している場合、それらはデフォルトでは生成されません。これらを生成するには、静的インスタンスを補間する-i
フラグを渡し、必要に応じて、 instance_ttf/
またはinstance_otf/
ディレクトリに配置します。
--output-dir <some_directory>
: すべての出力を、上記の形式ごとのディレクトリではなく、指定されたディレクトリに配置します。
--output-path <filename>
: これは、出力が単一のバイナリ ファイルであり、指定されたファイル名に出力を書き込む場合にのみ有効です。
-f
(コンポーネントの平坦化): コンポーネントを含むグリフが、それ自体にコンポーネントを含むグリフが単一のレベルに分解されるようにします。特定のレンダリング環境ではネストされたコンポーネントが正しく処理されないため、これをお勧めします。詳細については、このリンクを参照してください。
USAGE.md
参照してください。
TROUBLESHOOTING.md
.md を参照してください。
開発者は、git リポジトリのクローンを作成することで、 fontmake
の最新バージョンを入手できます。
git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .
再インストールせずにソース コードへの変更をすばやくテストしたい開発者は、ローカル ソース チェックアウトからインストールするときに「--editable」オプションを使用できます。
pip install -e .
fontmake の依存関係とグローバルにインストールされている他のモジュールとの間の競合を防ぐために、fontmake を仮想環境内にインストールすることをお勧めします。
pipx ツールを使用して、隔離された環境での fontmake などの Python アプリのインストール/アップグレードを自動化することもできます。
git tag -a v3.1.1
git push origin v3.1.1
のようにタグをプッシュします。ここで、 origin
、バージョンをプッシュする通常のリモートの名前です。