Dokumentasi pengguna dan dokumentasi pengembang tersedia di Baca Dokumen.
FontTools memerlukan Python 3.8 atau lebih baru. Kami mencoba mengikuti jadwal dukungan versi minimum Python yang sama seperti NumPy (lihat NEP 29).
Paket ini tercantum dalam Indeks Paket Python (PyPI), sehingga Anda dapat menginstalnya dengan pip:
pip install fonttools
Jika Anda ingin berkontribusi pada pengembangannya, Anda dapat mengkloning repositori dari GitHub, menginstal paket dalam mode 'dapat diedit' dan memodifikasi kode sumber di tempatnya. Kami merekomendasikan untuk membuat lingkungan virtual, menggunakan modul virtualenv atau Python 3 venv.
# download the source code to 'fonttools' folder
git clone https://github.com/fonttools/fonttools.git
cd fonttools
# create new virtual environment called e.g. 'fonttools-venv', or anything you like
python -m virtualenv fonttools-venv
# source the `activate` shell script to enter the environment (Unix-like); to exit, just type `deactivate`
. fonttools-venv/bin/activate
# to activate the virtual environment in Windows `cmd.exe`, do
fonttools-venv S cripts a ctivate.bat
# install in 'editable' mode
pip install -e .
Paket fontTools
saat ini tidak memiliki dependensi eksternal (wajib) selain modul yang disertakan dalam Perpustakaan Standar Python. Namun, beberapa dependensi tambahan diperlukan oleh beberapa modulnya, yang diperlukan untuk membuka fitur opsional. Distribusi fonttools
PyPI juga mendukung apa yang disebut "ekstra", yaitu sekumpulan kata kunci yang menjelaskan sekelompok dependensi tambahan, yang dapat digunakan saat menginstal melalui pip, atau saat menentukan persyaratan. Misalnya:
pip install fonttools[ufo,lxml,woff,unicode]
Perintah ini akan menginstal fonttools, serta dependensi opsional yang diperlukan untuk membuka kunci fitur tambahan bernama "ufo", dll.
Lib/fontTools/misc/etree.py
Modul ini mengekspor API mirip ElementTree untuk membaca/menulis file XML, dan memungkinkan untuk menggunakan modul xml.etree
atau lxml bawaan sebagai backend. Yang terakhir ini lebih disukai jika ada, karena umumnya lebih cepat dan aman.
Ekstra: lxml
Lib/fontTools/ufoLib
Paket untuk membaca dan menulis file sumber UFO; itu membutuhkan:
pyfilesystem2
) lapisan abstraksi sistem file.enum
bawaan (hanya diperlukan pada Python <3.4). Tambahan: ufo
Lib/fontTools/ttLib/woff2.py
Modul untuk mengompres/mendekompresi font web WOFF 2.0; itu membutuhkan:
Ekstra: woff
Lib/fontTools/ttLib/sfnt.py
Untuk mengompresi font web WOFF 1.0 dengan lebih baik, modul berikut dapat digunakan sebagai pengganti pustaka zlib
bawaan:
Ekstra: woff
Lib/fontTools/unicode.py
Untuk menampilkan nama karakter Unicode saat membuang tabel cmap
dengan ttx
kami menggunakan modul unicodedata
di Perpustakaan Standar. Versi yang disertakan di dalamnya bervariasi antara versi Python yang berbeda. Untuk menggunakan data terbaru yang tersedia, Anda dapat menginstal:
unicodedata
untuk Python 3.x diperbarui ke Unicode versi terbaru 15.0. Ekstra: unicode
Lib/fontTools/varLib/interpolatable.py
Modul untuk menemukan urutan kontur/komponen yang salah antara master yang berbeda. Hal ini memerlukan salah satu paket berikut untuk menyelesaikan apa yang disebut "masalah pencocokan sempurna bobot minimum dalam grafik bipartit", atau masalah Penugasan:
Untuk memplot hasilnya ke format PDF atau HTML, Anda juga perlu menginstal:
Ekstra: interpolatable
Lib/fontTools/varLib/plot.py
Modul untuk memvisualisasikan DesignSpaceDocument dan VariationModel yang dihasilkan.
Ekstra: plot
Lib/fontTools/misc/symfont.py
Modul lanjutan untuk analisis statistik font simbolis; itu membutuhkan:
Ekstra: symfont
Lib/fontTools/t1Lib.py
Untuk mendapatkan pembuat file dan jenis font Macintosh PostScript Tipe 1 di Python 3 Anda perlu menginstal modul berikut, karena modul MacOS
lama tidak lagi disertakan dalam Mac Python:
Ekstra: type1
Lib/fontTools/ttLib/removeOverlaps.py
Sederhanakan mesin terbang TrueType dengan menggabungkan kontur dan komponen yang tumpang tindih.
Ekstra: pathops
Lib/fontTools/pens/cocoaPen.py
dan Lib/fontTools/pens/quartzPen.py
Pena untuk menggambar mesin terbang dengan Cocoa NSBezierPath
atau CGPath
memerlukan:
Lib/fontTools/pens/qtPen.py
Pena untuk menggambar mesin terbang dengan QPainterPath
Qt, membutuhkan:
Lib/fontTools/pens/reportLabPen.py
Pena untuk menggambar mesin terbang sebagai gambar PNG, memerlukan:
Lib/fontTools/pens/freetypePen.py
Pena untuk menggambar mesin terbang dengan FreeType sebagai gambar raster, memerlukan:
Lib/fontTools/ttLib/tables/otBase.py
Menggunakan perpustakaan Harfbuzz untuk membuat serial GPOS/GSUB menggunakan metode hb_repack
, memerlukan:
Ekstra: repacker
NEWS.rst
dengan semua perubahan sejak rilis terakhir. Tulis entri changelog untuk setiap PR, dengan satu atau dua kalimat pendek yang merangkumnya, serta link ke PR dan isu-isu relevan yang ditangani oleh PR. Jangan beri judul baru, perintah selanjutnya akan melakukannya untuk Anda.pip install -r dev-requirements.txt
, lalu jalankan perintah python setup.py release
dari ujung cabang main
. Secara default, ini hanya memasukkan digit ketiga atau 'patch' saja, kecuali Anda meneruskan --major
atau --minor
untuk masing-masing memasukkan digit pertama atau kedua. Ini akan mengubah string versi paket, mengekstrak perubahan sejak versi terbaru dari NEWS.rst
, dan menggunakan teks tersebut untuk membuat tag git beranotasi (atau tag git yang ditandatangani jika Anda meneruskan opsi --sign
dan akun git dan Github Anda adalah dikonfigurasi untuk penandatanganan komit menggunakan kunci GPG). Itu juga melakukan versi tambahan yang membuka cabang utama untuk siklus pengembangan berikutnyagit push --follow-tags
. Catatan: ini mungkin juga mendorong tag lokal lainnya, hati-hati.Dalam urutan abjad:
aschmitz, Olivier Berten, Samyak Bhuta, Erik van Blokland, Petr van Blokland, Jelle Bosma, Sascha Brawer, Tom Byrer, Antonio Cavedoni, Frédéric Coiffier, Vincent Connare, David Corbett, Simon Cozens, Dave Crossland, Simon Daniels, Peter Dekkers, Behdad Esfahbod, Behnam Esfahbod, Hannes Famira, Sam Fishman, Matt Fontaine, Takaaki Fuji, Rob Hagemans, Yannis Haralambous, Greg Hitchcock, Jeremie Hornus, Khaled Hosny, John Hudson, Denis Moyogo Jacquerye, Jack Jansen, Tom Kacvinsky, Jens Kutilek, Antoine Leca, Werner Lemberg, Tal Leming, Peter Lofting, Cosimo Lupo , Olli Meier, Masaya Nakamura, Dave Opstad, Laurence Penney, Roozbeh Pournader, Garret Rieger, Read Roberts, Colin Rofls, Guido van Rossum, Just van Rossum, Andreas Seidel, Georg Seifert, Chris Simpkins, Miguel Sousa, Adam Twardoch, Adrien Tétar, Vitaly Volkov, Paul Wise.
Hak Cipta (c) 2000 BeOpen.com. Semua Hak Dilindungi Undang-undang.
Hak Cipta (c) 1995-2001 Perusahaan Inisiatif Penelitian Nasional. Semua Hak Dilindungi Undang-undang.
Hak Cipta (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. Semua Hak Dilindungi Undang-undang.
Selamat bersenang-senang!