تتوفر وثائق المستخدم ووثائق المطور في قراءة المستندات.
يتطلب FontTools إصدار Python 3.8 أو إصدار أحدث. نحن نحاول اتباع نفس الجدول الزمني لدعم الحد الأدنى لإصدار Python مثل NumPy (انظر NEP 29).
الحزمة مدرجة في Python Package Index (PyPI)، لذا يمكنك تثبيتها باستخدام النقطة:
pip install fonttools
إذا كنت ترغب في المساهمة في تطويره، يمكنك استنساخ المستودع من GitHub، وتثبيت الحزمة في الوضع "القابل للتحرير" وتعديل كود المصدر في مكانه. نوصي بإنشاء بيئة افتراضية باستخدام وحدة virtualenv أو 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 .
لا تحتوي حزمة fontTools
حاليًا على أي تبعيات خارجية (مطلوبة) إلى جانب الوحدات المضمنة في مكتبة Python القياسية. ومع ذلك، هناك بعض التبعيات الإضافية التي تتطلبها بعض وحداته، والتي تكون ضرورية لفتح الميزات الاختيارية. يدعم توزيع fonttools
PyPI أيضًا ما يسمى بـ "الإضافات"، أي مجموعة من الكلمات الرئيسية التي تصف مجموعة من التبعيات الإضافية، والتي يمكن استخدامها عند التثبيت عبر النقطة، أو عند تحديد المتطلبات. على سبيل المثال:
pip install fonttools[ufo,lxml,woff,unicode]
سيقوم هذا الأمر بتثبيت Fonttools، بالإضافة إلى التبعيات الاختيارية المطلوبة لفتح الميزات الإضافية المسماة "ufo"، وما إلى ذلك.
Lib/fontTools/misc/etree.py
تصدر الوحدة واجهة برمجة تطبيقات تشبه ElementTree لقراءة/كتابة ملفات XML، وتسمح باستخدام وحدة xml.etree
المدمجة أو lxml كواجهة خلفية. ويفضل استخدام الخيار الأخير كلما كان موجودًا، لأنه بشكل عام أسرع وأكثر أمانًا.
اضافية: lxml
Lib/fontTools/ufoLib
حزمة لقراءة وكتابة ملفات مصدر UFO؛ يتطلب:
pyfilesystem2
) طبقة تجريد نظام الملفات.enum
المضمنة (مطلوب فقط في Python <3.4). اضافية: ufo
Lib/fontTools/ttLib/woff2.py
وحدة لضغط/فك ضغط خطوط الويب WOFF 2.0؛ يتطلب:
اضافية: woff
Lib/fontTools/ttLib/sfnt.py
لضغط خطوط الويب WOFF 1.0 بشكل أفضل، يمكن استخدام الوحدة التالية بدلاً من مكتبة zlib
المدمجة:
اضافية: woff
Lib/fontTools/unicode.py
لعرض أسماء أحرف Unicode عند تفريغ جدول cmap
باستخدام ttx
نستخدم وحدة unicodedata
في المكتبة القياسية. يختلف الإصدار المضمن بين إصدارات Python المختلفة. لاستخدام أحدث البيانات المتاحة، يمكنك تثبيت:
unicodedata
لـ Python 3.x إلى أحدث إصدار Unicode 15.0. اضافية: unicode
Lib/fontTools/varLib/interpolatable.py
وحدة للعثور على ترتيب كفاف/مكونات خاطئ بين أساتذة مختلفين. يتطلب الأمر إحدى الحزم التالية لحل ما يسمى "مشكلة المطابقة المثالية للوزن الأدنى في الرسوم البيانية الثنائية"، أو مشكلة التعيين:
لرسم النتائج بتنسيق PDF أو HTML، تحتاج أيضًا إلى تثبيت:
اضافية: interpolatable
Lib/fontTools/varLib/plot.py
وحدة لتصور DesignSpaceDocument وVariationModel الناتج.
اضافية: plot
Lib/fontTools/misc/symfont.py
وحدة متقدمة لتحليل إحصائيات الخطوط الرمزية؛ يتطلب:
اضافية: symfont
Lib/fontTools/t1Lib.py
للحصول على منشئ الملف ونوع خطوط Macintosh PostScript Type 1 على Python 3، يتعين عليك تثبيت الوحدة التالية، حيث لم تعد وحدة MacOS
القديمة مضمنة في Mac Python:
اضافية: type1
Lib/fontTools/ttLib/removeOverlaps.py
تبسيط الحروف الرسومية TrueType عن طريق دمج الخطوط والمكونات المتداخلة.
اضافية: pathops
Lib/fontTools/pens/cocoaPen.py
و Lib/fontTools/pens/quartzPen.py
تتطلب أقلام رسم الحروف الرسومية باستخدام Cocoa NSBezierPath
أو CGPath
ما يلي:
Lib/fontTools/pens/qtPen.py
قلم لرسم الحروف الرسومية باستخدام QPainterPath
الخاص بـ Qt، يتطلب ما يلي:
Lib/fontTools/pens/reportLabPen.py
يتطلب القلم لرسم الحروف الرسومية كصور PNG ما يلي:
Lib/fontTools/pens/freetypePen.py
يتطلب القلم لرسم الحروف الرسومية باستخدام FreeType كصور نقطية ما يلي:
Lib/fontTools/ttLib/tables/otBase.py
يتطلب استخدام مكتبة Harfbuzz لإجراء تسلسل GPOS/GSUB باستخدام طريقة hb_repack
ما يلي:
اضافية: repacker
NEWS.rst
بجميع التغييرات منذ الإصدار الأخير. اكتب إدخالاً في سجل التغيير لكل PR، مع جملة أو جملتين قصيرتين تلخصه، بالإضافة إلى روابط إلى PR والقضايا ذات الصلة التي يتناولها PR. لا تضع عنوانًا جديدًا، فالأمر التالي سيفعل ذلك نيابةً عنك.pip install -r dev-requirements.txt
، ثم قم بتشغيل أمر python setup.py release
من طرف الفرع main
. افتراضيًا، يؤدي هذا إلى ظهور الرقم الثالث أو "التصحيح" فقط، إلا إذا قمت بتمرير --major
أو --minor
لإرجاع الرقم الأول أو الثاني على التوالي. يؤدي هذا إلى زيادة سلسلة إصدار الحزمة، واستخراج التغييرات منذ الإصدار الأحدث من NEWS.rst
، واستخدام هذا النص لإنشاء علامة git مشروحة (أو علامة git موقعة إذا قمت بتمرير خيار --sign
وكان حساب git وGithub الخاص بك تم تكوينه لتوقيع الالتزامات باستخدام مفتاح GPG). كما أنه يرتكب أيضًا نتوءًا إضافيًا للإصدار يفتح الفرع الرئيسي لدورة التطوير اللاحقةgit push --follow-tags
. ملحوظة: قد يؤدي ذلك إلى دفع علامات محلية أخرى أيضًا، كن حذرًا.بالترتيب الأبجدي:
أشميتز، أوليفييه بيرتن، سامياك بوتا، إريك فان بلوكلاند، بيتر فان بلوكلاند، جيلي بوسما، ساشا براور، توم بيرر، أنطونيو كافيدوني، فريديريك كوفير، فنسنت كوناري، ديفيد كوربيت، سيمون كوزينز، ديف كروسلاند، سيمون دانيلز، بيتر ديكرز، بهداد اصفهبود، بهنام اسفهبود، هانس فاميرا، سام فيشمان، مات فونتين، تاكاكي فوجي، روب هاغمانز، يانيس هارالامبوس، جريج هيتشكوك، جيريمي هورنوس، خالد حسني، جون هدسون، دينيس مويوجو جاكيري، جاك جانسن، توم كاتفينسكي، جينس كوتيلك، أنطوان ليكا، فيرنر ليمبيرج، تال ليمينج. ، بيتر لوفتينج، كوزيمو لوبو، أولي ماير، ماسايا ناكامورا، ديف أوبستاد، لورانس بيني، روزبيه بورنادير، غاريت ريجر، ريد روبرتس، كولين روفلس، غيدو فان روسوم، جاست فان روسوم، أندرياس سايدل، جورج سيفرت، كريس سيمبكينز، ميغيل سوزا، آدم تواردوش، أدريان تيتار، فيتالي فولكوف، بول. حكيم.
حقوق الطبع والنشر (ج) 2000 BeOpen.com. جميع الحقوق محفوظة.
حقوق الطبع والنشر (ج) 1995-2001 مؤسسة المبادرات البحثية الوطنية. جميع الحقوق محفوظة.
حقوق الطبع والنشر (ج) 1991-1995 مؤسسة Stichting Mathematisch Centrum، أمستردام. جميع الحقوق محفوظة.
استمتع!