مع Opentype Feature Freezer ، يمكنك "تجميد" بعض ميزات Opentype في خط.
تكون هذه الميزات "على افتراضي" ، لذا فإن الأحرف التي يمكن الوصول إليها مسبقًا من خلال ميزات Opentype فقط (مثل SmallCaps ، أو أرقام Oldstyle أو النماذج المترجمة) ستكون متاحة الآن حتى في التطبيقات التي لا تدعم ميزات Opentype ، مثل Libreoffice ، أو OpenOffice ، أو في التطبيقات التي لا تدعم ميزة معينة ، مثل Microsoft Office.
ملاحظة: تقوم هذه الأداة فعليًا بإعادة تجديد جدول cmap للخط عن طريق تطبيق ميزات GSUB المحددة. لن ينجح مع بدائل حيث لا يوجد أي إدخالات cmap . يتم دعم بدائل واحدة فقط وبديلة.
تأتي هذه الأداة في نسختين: otfeaturefreezer : تطبيق بسيط (رسومية) لـ MacOS و Windows يمكنك تنزيله وتشغيله دون أي perparations خاصة ، وتطبيق Pyftfeateze : A CLI (خط أوامر) يتطلب Python 3.6 أو الأحدث مثبتًا على الكمبيوتر الخاص بك.
الإصدار الحالي: 1.32
تتطلب هذه الأداة تثبيت Python 3.6 أو أعلى أولاً. احصل عليه من https://www.python.org أو مدير الحزمة.
نوصي باستخدام PIPX لتثبيت أدوات سطر أوامر Python. يقوم Pipx بإبعادهم بدقة على جهاز الكمبيوتر الخاص بك ويمنحك طريقة سهلة لإضافة أدوات Python وتحديثها وإزالتها على جميع الأنظمة الأساسية ، دون ترك فوضى في تثبيت Python.
pipx install opentype-feature-freezer
تثبيته مع pip ، مثل أي حزمة Python أخرى.
# This is best done inside a virtual environment, so you don't pollute
# your Python installation and need no special privileges to install anything.
pip install --upgrade opentype-feature-freezer
إذا لم ينجح هذا ، فحاول:
python3 -m pip install --user --upgrade opentype-feature-freezer
pip install --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
إذا لم ينجح هذا ، فاستخدم:
python3 -m pip install --user --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
pip install --upgrade configparser قبل التثبيت دعنا نقول أن لديك الخط Charissil-R.TTF (مع اسم القائمة "Charis Sil") ، ويتضمن هذا الخط SmallCaps الحقيقي الذي يمكن الوصول إليه من خلال ميزات تخطيط Opentype c2sc (للأحرف الكبيرة) و smcp (للصرف الصغير). دعنا نقول أنك ترغب في إنشاء خط ثانٍ حيث تتوفر SmallCaps الحقيقية افتراضيًا. فقط الجري:
pyftfeatfreeze -f 'c2sc,smcp' -S -U SC -R 'Charis SIL/Charix,CharisSIL/Charix' CharisSIL-R.ttf CharixSC-R.ttf
ستحصل على خط جديد Charissil-R.TTF (مع اسم القائمة "Charix SC"). سيحتوي هذا الخط على SmallCaps بدلاً من الأحرف الصغيرة والأحرف الكبيرة المتوفرة في جميع التطبيقات.
نظرًا لأن خط "Charis Sil" مرخص له تحت OFL ، ويستخدم أسماء الخطوط المحجوزة "Charis" و "Sil" ، فقد حددت خيار -R لاستبدال سلاسل الأسماء Charis SIL و CharisSIL مع Charix . وبهذه الطريقة ، فإن الخط المعدل متوافق مع OFL ويمكنني توزيعه.
المثال التالي يعيد إعادة الخط بحيث تتوفر النماذج المترجمة البلغارية افتراضيًا في جميع التطبيقات (سيتم إضافة لاحقة "BG" إلى اسم القائمة):
pyftfeatfreeze -f 'locl' -s 'cyrl' -l 'BGR ' -S -U BG SomeFont.ttf SomeFontBG.ttf
ملاحظة: لإعادة تجديد الميزات من البرامج النصية المتعددة أو أنظمة اللغات ، قم بتشغيل الأداة عدة مرات (مع أخذ إخراج التشغيل السابق كمدخل). استخدم خيار -S فقط على المدى النهائي.
يستبدل ما يلي السلسلة Lato بواسطة Otal في جميع أسماء الخطوط الداخلية ( name وجداول CFF ) ، دون القيام بأي "تجميد ميزة". يمكن استخدام هذا لتغيير بعض أسماء الخطوط الداخلية بسرعة:
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
usage: pyftfeatfreeze [-h] [-f FEATURES] [-s SCRIPT] [-l LANG] [-z] [-S]
[-U USESUFFIX] [-R REPLACENAMES] [-i] [-r] [-n] [-v]
[-V]
inpath [outpath]
With pyftfeatfreeze you can "freeze" some OpenType features into a font. These
features are then "on by default", even in apps that don't support OpenType
features. Internally, the tool remaps the "cmap" table of the font by applying
the specified GSUB features. Only single and alternate substitutions are
supported.
positional arguments:
inpath input .otf or .ttf font file
outpath output .otf or .ttf font file (optional)
optional arguments:
-h, --help show this help message and exit
options to control feature freezing:
-f FEATURES, --features FEATURES
comma-separated list of OpenType feature tags, e.g.
'smcp,c2sc,onum'
-s SCRIPT, --script SCRIPT
OpenType script tag, e.g. 'cyrl' (default: 'latn')
-l LANG, --lang LANG OpenType language tag, e.g. 'SRB ' (optional)
-z, --zapnames zap glyphnames from the font ('post' table version 3,
.ttf only)
options to control font renaming:
-S, --suffix add a suffix to the font family name (by default, the
suffix will be constructed from the OpenType feature
tags)
-U USESUFFIX, --usesuffix USESUFFIX
use a custom suffix when --suffix is provided
-R REPLACENAMES, --replacenames REPLACENAMES
search for strings in the font naming tables and
replace them, format is
'search1/replace1,search2/replace2,...'
-i, --info update font version string
reporting options:
-r, --report report languages, scripts and features in font
-n, --names output names of remapped glyphs during processing
-v, --verbose print additional information during processing
-V, --version show program's version number and exit
Examples: pyftfeatfreeze -f 'c2sc,smcp' -S -U SC OpenSans.ttf OpenSansSC.ttf
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
نصيحة: يخرج الخيار -n قائمة مفصولة بالفضاء من الحروف الرسومية "المجمدة". إذا قمت بإعادة توجيهه إلى ملف ، فيمكنك استخدام هذه القائمة كمدخل لـ pyftsubset لإنشاء خط صغير يتضمن فقط الرسوم الحرارية "المجمدة".
للإبلاغ عن مشكلة ، افتح مشكلة . تحتاج إلى حساب github.
هذه الأداة مرخصة "كما هي" بموجب ترخيص Apache ، الإصدار 2.0. باستخدام الأداة ، يمكنك قبول جميع شروط الترخيص ، بما في ذلك إخلاء المسئولية عن الضمان والتقييد من المسؤولية. إذا كنت تستخدم هذه الأداة ، فيرجى الرجوع إلى ما إذا كان EULA الخاص بخطك يسمح بالتعديلات. إذا كان الخط مرخصًا تحت OFL ويستخدم اسم الخط المحجوز ، فيرجى استخدام خيار -R لتغيير اسم الخط المحجوز إلى شيء آخر.
هذه الأداة مكتوبة لـ Python 3.6+ ، وتستخدم fonttools/ttx.
-s (Script) بحيث إذا لم يتم توفيره ، فإن إعادة التقييم في جميع البرامج النصية.-S (لاحقة) بحيث إذا لم يتم توفيره ، فلا يتم إضافة أي sufix ، وإضافة تطبيقات واجهة المستخدم الرسومية.fonttools-utils هي الآن في fonttools-ttxjsonلبناء حزمة Python ، تثبيت الشعر:
pip install poetry
أو
python3 -m install --user --upgrade poetry
ثم في المجلد الرئيسي لمشروع المشروع:
poetry build
لبناء DMG & Exe ، تحتاج إلى MacOS. في المجلد الفرعي للتطبيق ، قم بتشغيل ./macdeploy all