fontmake
mengkompilasi font dari berbagai sumber ( .glyphs
, .ufo
, designspace
) ke dalam binari ( .otf
, .ttf
). Anda dapat menggunakannya untuk membuat instance statis dan font variabel.
Fontmake memerlukan Python 3.8 atau lebih baru.
Rilis tersedia di PyPI dan dapat diinstal dengan pip.
pip3 install fontmake
Gunakan opsi -U
, --upgrade
untuk memperbarui fontmake dan dependensinya ke rilis terbaru yang tersedia:
pip3 install -U fontmake
Setelah instalasi, Anda akan dapat menggunakan fontmake
yang dapat dieksekusi.
Misalnya, untuk mengkompilasi font variabel dari file sumber Glyphs, gunakan:
fontmake MyFont.glyphs -o variable
Argumen baris perintah yang paling penting untuk fontmake
yang dapat dieksekusi adalah masukan yang diperlukan, yang ditentukan sebagai argumen posisi atau menggunakan salah satu tanda -g
/ -u
/ -m
, dan tanda -o
opsional, yang memilih format file keluaran.
Ada dua cara untuk menentukan file sumber atau file:
Seseorang dapat menggunakan tanda berikut yang saling eksklusif:
-g filename.glyphs
: Mengonversi file sumber Glyphs menjadi biner.-u filename.ufo ...
: Mengonversi satu atau lebih file UFO(Z) menjadi biner.-m filename.designspace
: Mengonversi file Designspace menjadi biner. ( -m
adalah untuk mutatormath
, perpustakaan Python lama untuk menangani ruang desain.) Alternatifnya, seseorang dapat menentukan masukan sebagai argumen posisi tanpa tanda, membiarkan fontmake menyimpulkan format sumber dari ekstensi file: misalnya fontmake MyFont.designspace
, dll.
Catatan: jika argumen posisi didahului oleh opsi yang mengambil satu atau lebih argumen, Anda perlu menggunakan pemisah --
khusus untuk menandai semua argumen berikut sebagai argumen posisional (non-opsi), jika tidak, parser akan bingung. Misalnya, opsi -i
mengambil nol atau satu argumen (lihat lebih lanjut di bawah untuk rinciannya); tanpa --
, argparse mengira Anda tidak memberikan masukan apa pun:
fontmake -i -- MyFont.designspace
Tepatnya satu jenis masukan dapat/harus ditentukan, menggunakan pendekatan mana pun.
Anda dapat memberikan satu atau lebih format file keluaran setelah opsi -o
. Misalnya, -o otf ttf
membuat file font biner OTF dan TTF untuk setiap master di file input Anda.
Format file keluaran berikut tersedia:
otf
: Biner OTF per-master (garis besar CFF). Ditempatkan di direktori master_otf/
.ttf
: Biner TTF (TrueType-outline) per-master. Ditempatkan di direktori master_ttf/
.otf-cff2
: Biner OTF per-master dengan garis besar CFF2. Ditempatkan di direktori master_otf/
.variable
: Font variabel TrueType. Ditempatkan di direktori variable_ttf/
.variable-cff2
: Font variabel dengan garis CFF2. Ditempatkan di direktori variable_otf/
.Format file keluaran berikut juga tersedia, namun umumnya digunakan secara internal oleh fontmake sebagai langkah perantara ke salah satu keluaran di atas:
otf-interpolatable
: Biner OTF yang cocok untuk digabungkan menjadi font variabel. Ditempatkan di direktori master_otf_interpolatable/
. (Ini berbeda dari otf
karena garis besarnya tidak dioptimalkan.)ttf-interpolatable
: Biner TTF cocok untuk digabungkan menjadi font variabel. Ditempatkan di direktori master_ttf_interpolatable/
. (Garis besarnya diubah menjadi kurva kuadrat dengan cara yang kompatibel dengan interpolasi.)ufo
: Sumber mesin terbang dapat dikonversi ke UFO, atau ke format UFO zip ( .ufoz
) dengan flag --save-ufo-as-zip
. Ditempatkan di direktori master_ufo/
. Jika tidak ada opsi format yang ditentukan, defaultnya adalah -o otf ttf
.
-i
(Interpolasi contoh): Memiliki biner per-master tidak selalu seperti yang Anda harapkan; jika Anda telah menentukan instance ("ekspor") di file Glyphs Anda, instance tersebut tidak akan dibuat secara default. Untuk menghasilkannya, teruskan flag -i
, yang menginterpolasi instance statis, dan menempatkannya di direktori instance_ttf/
atau instance_otf/
jika diperlukan.
--output-dir <some_directory>
: Menempatkan semua output di direktori tertentu, bukan di direktori per format yang disebutkan di atas.
--output-path <filename>
: Ini hanya valid jika outputnya adalah file biner tunggal, dan menulis output ke nama file yang diberikan.
-f
(Ratakan komponen): Memastikan bahwa mesin terbang apa pun yang berisi komponen yang berisi komponen didekomposisi ke satu tingkat. Hal ini direkomendasikan karena lingkungan rendering tertentu tidak menangani komponen bertumpuk dengan benar - lihat tautan ini untuk detail selengkapnya.
Lihat USAGE.md
.
Lihat TROUBLESHOOTING.md
.
Pengembang bisa mendapatkan fontmake
versi terbaru dengan mengkloning repositori git:
git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .
Pengembang yang ingin menguji perubahan pada kode sumber dengan cepat tanpa menginstal ulang dapat menggunakan opsi "--editable" saat menginstal dari checkout sumber lokal:
pip install -e .
Disarankan untuk menginstal fontmake di dalam lingkungan virtual untuk mencegah konflik antara dependensinya dan modul lain yang diinstal secara global.
Anda juga dapat menggunakan alat pipx untuk mengotomatiskan instalasi/peningkatan aplikasi python seperti fontmake di lingkungan yang terisolasi.
git tag -a v3.1.1
git push origin v3.1.1
, di mana origin
adalah nama remote yang biasa Anda ingin gunakan versinya.