Allsorts هو محلل خطوط ، محرك تشكيل ، ومقعد فرعي لـ Opentype و Woff و Woff2 مكتوبة بالكامل في الصدأ. يحتوي هذا المستودع على أدوات تم تطويرها لتصحيح واختبار Allsorts وتقديم أمثلة على استخدامه.
ملاحظة: هذه الأدوات مخصصة لأغراض العرض والمرجعية والتصحيح. يجب ألا تعتمد عليهم في سير عمل الإنتاج.
الأدوات المتاحة:
bitmaps - تفريغ خلفات الصورة النقطية من خطوط صورة نقطيةcmap - طباعة الطابع إلى التعيينات الرسوميةdump - تفريغ معلومات الخطhas-table تحقق مما إذا كان الخط يحتوي على جدول معينinstance - إنشاء مثيل ثابت لخط من خط متغيرlayout-features -اطبع قائمة بميزات GSUB و GPOS الخاصة بخطshape - تطبيق التشكيل على الحروف الرسومية من خطspecimen - قم بإنشاء عرض خط HTML لخطsubset - مجموعة فرعية خطvalidate - تحليل الخط المقدم ، والإبلاغ عن أي إخفاقاتvariations - سرد محاور التباين لخط متغيرview - إنشاء SVGs من الحروف الرسوميةbitmaps تقوم أداة bitmaps باستخلاص صور نقطية من الخطوط التي تحتوي على صور نقطية رسومية في جداول EBLC / EBDT أو CBLC / CBDT .
-o هو الطريق إلى الدليل لكتابة نقطات إلى. سيتم إنشاؤه إذا لم يكن موجودًا. تتم كتابة الصور كـ PNGs في دليل فرعي لكل ضربة (حجم). التنسيق هو {ppem_x}x{ppem_y}@{bit_depth} ، تتم تسمية الملفات {glyph_id}.png :
terminus
├── 12x12@1
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
⋮ ⋮
├── 14x14@1
│ ├── 0.png
⋮ ⋮
└── 32x32@1
⋮ ⋮
allsorts bitmaps -o noto-color-emoji NotoColorEmoji.ttf
cmap تختار أداة cmap جدولًا فرعيًا cmap المفضل وتفريغ الحرف إلى إدخالات فهرس Glyph. إذا كان ترميز الجدول أحاديًا ، فسيتم طباعة الأحرف مع نقطة الكود ، وإلا يتم طباعة القيمة الرقمية للشخصية.
-f ، --font المسار إلى ملف الخط.-i ، --index هو فهرس الخط إلى تفريغ (ل TTC ، Woff2) (افتراضي: 0). $ allsorts cmap --font profontn.otb
cmap sub-table encoding: Unicode
'' U+0000 -> 0
'' U+0001 -> 1
'' U+0002 -> 2
⋮
'?' U+003F -> 63
'@' U+0040 -> 64
'A' U+0041 -> 65
'B' U+0042 -> 66
⋮
'»' U+00BB -> 187
'¼' U+00BC -> 188
'½' U+00BD -> 189
'¾' U+00BE -> 190
'¿' U+00BF -> 191
'À' U+00C0 -> 192
'Á' U+00C1 -> 193
'Â' U+00C2 -> 194
'Ã' U+00C3 -> 195
'Ä' U+00C4 -> 196
⋮
dump تقوم أداة dump بطباعة أو استخراج المعلومات من ملف الخط.
allsorts dump path/to/font يطبع معلومات حول الخط.
--name يتضمن البيانات الوصفية الموجودة في جدول name في الإخراج.-c لطباعة المعلومات حول خط CFF أو الجدول غير ملفوف في حاوية trueType أو Opentype.-t يستخرج الجدول المسماة من الخط الموردين. يجب إعادة توجيه الإخراج إلى ملف. مثل allsorts dump -t glyf > glyf.bin-g يطبع معلومات حول حروف رسومية معينة في خط.-l يطبع جميع الإزاحة في جدول loca في الخط. $ allsorts dump noto-subset.otd | head
TTF
- version: 0x4f54544f
- num_tables: 9
CFF (checksum: 0x625ba831, offset: 156, length: 166505)
OS/2 (checksum: 0x9f6306c8, offset: 166664, length: 96)
cmap (checksum: 0x131b2742, offset: 166760, length: 274)
head (checksum: 0x09e560e8, offset: 167036, length: 54)
hhea (checksum: 0x0c1109cf, offset: 167092, length: 36)
hmtx (checksum: 0x1b9b0310, offset: 167128, length: 52)
maxp (checksum: 0x000d5000, offset: 167180, length: 6)
name (checksum: 0x1f3037ad, offset: 167188, length: 418)
post (checksum: 0xff860032, offset: 167608, length: 32)
- CFF:
- version: 1.0
- name: NotoSansJP-Regular
- num glyphs: 13
- charset: Custom
- variant: CID
has-table تتحقق أداة has-table إذا كان ملف الخط المقدم يحتوي على الجدول الذي تم تمريره عبر وسيطة -t . إذا كان الخط يحتوي على الجدول ، فإنه يخرج بنجاح الحالة (0) ، إذا كان الخط لا يحتوي على الجدول ، فهو يخرج مع الحالة 1.
هذه الأداة مفيدة مع find ، لتحديد الخطوط التي تحتوي على الجدول المطلوب.
-t ، جدول --table TABLE للتحقق من ذلك-i ، --index INDEX من الخط للتحقق (لـ TTC ، Woff2) (افتراضي: 0)-p ، --print-file طباعة المسار إلى الخط إذا كان يحتوي على الجدول.-v ، --invert-match التي لا تحتوي على الجدول المعطى في هذا المثال ، نبحث في الدليل الحالي للملفات التي تنتهي في ttf أو otf أو otc ونتحقق لمعرفة ما إذا كانت تحتوي على جدول EBLC . إذا تم العثور على الجدول ، يتم طباعة المسار إلى الخط.
find . -regextype posix-extended -type f -iregex '.*.(ttf|otf|otc)$' -exec allsorts has-table -t EBLC -p {} ;
instance تطبق أداة instance مجموعة من القيم (tuple) على محاور الاختلاف لخط متغير لإنتاج خط ثابت وغير متغير مع تلك الإعدادات.
-t ، --tuple هي قائمة مفصولة بالقيم واحدة لكل محور تباين للخط. ستدرج أداة variations المحاور وترتيبها وحدودها.-o ، --output هو المسار إلى خط الإخراج. في هذا المثال ، يحتوي الخط على محورين: UNDO UNDS . نحن نوفر قيمة 500 لكل واحد ونكتب خط الإخراج إلى UnderlineTest.ttf .
allsorts instance --tuple 500,500 UnderlineTest-VF.ttf -o UnderlineTest.ttf
layout-featuresيطبع قائمة بادئة بميزات GSUB و GPOs الخاصة بخط.
$ layout-features fonts/devanagari/AnnapurnaSIL-Regular.ttf
Table: GSUB
Script: DFLT
Language: default
Feature: aalt
Lookups: 56
Feature: abvs
Lookups: 27,28,29,30
Feature: akhn
Lookups: 4
Feature: blwf
Lookups: 9
# additional output omitted
shape تقوم أداة shape بتشكيل النص المرفق وفقًا للخط المرفق واللغة والبرنامج النصي. يطبع الحروف الرسومية قبل وبعد تشكيل.
-f ، --font PATH إلى ملف الخط-i ، --index INDEX للخط لتشكيل (لـ TTC ، Woff2) (الافتراضي: 0)-s ، --script SCRIPT للنصوص لتشكيله-l ، --lang LANG Language لتشكيل--vertical الرأسي العاطفي ، الافتراضي أفقي $ shape -f fonts/devanagari/AnnapurnaSIL-Regular.ttf -s deva -l HIN 'शब्दों और वाक्यों की तरह'
# output omitted
specimen تقوم أداة specimen بإنشاء ورقة عينة FONT HTML تحتوي على نماذج نص عينة تم تعيينها في الخط بالإضافة إلى معلومات حول الخط والميزات المدعومة.
-i ، --index INDEX للخط إلى مجموعة فرعية (لـ TTC ، Woff2) (افتراضي: 0)--sample-text TEXT النصي للاستخدام في عينة الخط $ allsorts specimen ../allsorts/tests/fonts/bengali/Lohit-Bengali.ttf
subset تأخذ أداة subset خطًا مصدرًا وبعض النصوص وتكتب إصدارًا جديدًا من خط المصدر يحتوي فقط على الرسوم الحرارية المطلوبة للنص المقدم.
-t ، --text TEXT Subse Set -Font لتشمل الرسوم الحرارية من النص-a ، --all تشمل جميع الحروف الرسومية في خط المجموعة الفرعية-i ، --index INDEX للخط إلى مجموعة فرعية (لـ TTC ، Woff2) (افتراضي: 0) $ allsorts subset -t 'This a subsetting test' NotoSansJP-Regular.otf noto-subset.otf
Number of glyphs in new font: 13
validate تحاول أداة validate تحليل جميع الحروف الرسومية (أو الديكتات المختلفة في حالة CFF) في الخط المقدم. إنه يوضح أي أخطاء واجهتها ولكنها صامتة. كان هذا الأمر مفيدًا للاختبار بالجملة Allsorts ضد مجموعة كبيرة من خطوط العالم الحقيقي.
$ allsorts validate ../allsorts/tests/fonts/bengali/Lohit-Bengali.ttf
$ fd '.(ttf|otf|ttc)$' /usr/share/fonts | sort | parallel --bar allsorts validate {}
variations تسرد أداة variations معلومات حول خط متغير. تتضمن المعلومات:
يطبع هذا المثال معلومات التباين للخط في ../text-rendering-tests/fonts/TestHVARTwo.ttf .
$ allsorts variations ../text-rendering-tests/fonts/TestHVARTwo.ttf
Axes: (2)
- wght = min: 0, max: 1000, default: 0
- cntr = min: 0, max: 100, default: 0
Instances:
Subfamily: ExtraLight
PostScript Name: TestFont-ExtraLight
Coordinates: [0.0, 0.0]
Subfamily: Light
PostScript Name: TestFont-Light
Coordinates: [150.0, 0.0]
Subfamily: Regular
PostScript Name: TestFont-Regular
Coordinates: [394.0, 0.0]
Subfamily: Semibold
PostScript Name: TestFont-Semibold
Coordinates: [600.0, 0.0]
Subfamily: Bold
PostScript Name: TestFont-Bold
Coordinates: [824.0, 0.0]
Subfamily: Black
PostScript Name: TestFont-Black
Coordinates: [1000.0, 0.0]
Subfamily: Black Medium Contrast
PostScript Name: TestFont-BlackMediumContrast
Coordinates: [1000.0, 50.0]
Subfamily: Black High Contrast
PostScript Name: TestFont-BlackHighContrast
Coordinates: [1000.0, 100.0]
view تقوم أداة view بتشكيل النص أو قائمة نقاط الترميز الموردة وفقًا للخط واللغة والبرنامج النصي. ثم ، فإنه يولد SVG من الحروف الرسومية.
-f ، --font PATH إلى ملف الخط-s ، --script SCRIPT للنصوص لتشكيله-l ، --lang LANG Language لتشكيل--mark-origin ضع علامة على أصل كل رسول مع شعر متقاطع--margin num أو top,right,bottom,left حدد الهامش لإضافته إلى حافة SVG--fg-colour rrggbbaa ضبط لون الحشوة من الرسوف--bg-colour rrggbbaa اضبط لون الخلفية لـ SVG المتولد--fg-color rrggbbaa الاسم المستعار لـ- --fg-colour--bg-color rrggbbaa الاسم المستعار لـ- --bg-colour-t ، --text TEXT لتقديمه-c ، --codepoints CODEPOINTS الفاصلة الفاصلة للنقاط الرموز (كأرقام سداسية عشرية) لتقديمها-i ، --indices GLYPH_INDICES قائمة مفصولة بفواصل من مؤشرات الهرب-F ، --features FEATURES القائمة المفصولة بفواصل من ميزات Opentype لتمكينها (ملاحظة: تمكين هذه الميزات فقط) $ view -f fonts/devanagari/NotoSerifDevanagari-Regular.ttf -s deva -t 'खि'
# output omitted
$ allsorts view -f fonts/devanagari/NotoSerifDevanagari-Regular.ttf -s deva -c '916,93f'
# output omitted
في هذا المثال ، يتم تمكين ميزة Opentype pres ، والتي تتيح استبدال Glyph 30 بنموذج العرض التقديمي الخاص (Glyph 547).
$ view -f fonts/devanagari/NotoSerifDevanagari-Regular.ttf -s deva --features pres -i '30,54'
# output omitted
الحد الأدنى لنسخة الصدأ المدعومة: 1.70.0
لإنشاء الأدوات ، تأكد من تثبيت الصدأ.
cargo build --releasecargo install --path . هناك حزمة AUR allsorts-tools :
git clone https://aur.archlinux.org/allsorts-tools.git
cd allsorts-tools
makepkg -si
المساهمات موضع ترحيب ، يرجى الرجوع إلى دليل المساهمة في Allsorts لمزيد من التفاصيل.
نهدف إلى دعم معايير مجتمع الصدأ:
نحن ملتزمون بتوفير بيئة ودية وآمنة ومرحبة للجميع ، بغض النظر عن الجنس أو الميل الجنسي أو الإعاقة أو العرق أو الدين أو الخصائص الشخصية المماثلة.
نحن نتبع رمز السلوك الصدأ.
يتم توزيع Allsorts وهذه الأدوات بموجب شروط ترخيص Apache (الإصدار 2.0).
انظر الترخيص للحصول على التفاصيل.