Allsorts เป็นตัวแยกวิเคราะห์แบบอักษรเครื่องยนต์รูปร่างและตัวเลือกย่อยสำหรับ Opentype, Woff และ Woff2 เขียนทั้งหมดในสนิม พื้นที่เก็บข้อมูลนี้มีเครื่องมือที่พัฒนาขึ้นเพื่อแก้ไขข้อบกพร่องและทดสอบ AllSorts และให้ตัวอย่างของการใช้งาน
หมายเหตุ: เครื่องมือเหล่านี้มีไว้เพื่อการสาธิตการอ้างอิงและการดีบัก คุณไม่ควรพึ่งพาพวกเขาสำหรับเวิร์กโฟลว์การผลิต
เครื่องมือที่มีอยู่:
bitmaps - บิตแมปถ่ายโอนข้อมูลจากบิตแมปแบบอักษรcmap - พิมพ์อักขระไปยัง Glyph Mappingsdump - ข้อมูลตัวอักษรถ่ายโอนข้อมูลhas-table -ตรวจสอบว่าตัวอักษรมีตารางเฉพาะหรือไม่instance - สร้างอินสแตนซ์แบบคงที่ของแบบอักษรจากตัวอักษรตัวแปรlayout-features พิมพ์รายการคุณสมบัติ GSUB และ GPOS ของตัวอักษรshape - ใช้รูปร่างกับร่ายมนตร์จากตัวอักษรspecimen - สร้างตัวอักษร HTML สำหรับแบบอักษรsubset - ชุดย่อยเป็นแบบอักษรvalidate - แยกวิเคราะห์แบบอักษรที่ให้มารายงานความล้มเหลวใด ๆvariations - แสดงรายการแกนการแปรผันของตัวอักษรตัวแปรview - สร้าง SVGs จากร่ายมนตร์bitmaps เครื่องมือ bitmaps สกัดบิตแมปจากแบบอักษรที่มีบิตแมป Glyph ในตาราง 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 หากการเข้ารหัสของตารางเป็น Unicode ตัวอักษรจะถูกพิมพ์พร้อมกับจุดรหัสมิฉะนั้นจะพิมพ์ค่าตัวเลขของอักขระ
-f , --font ระบุเส้นทางไปยังไฟล์ 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 ตรวจสอบว่าไฟล์ FONT ที่ให้มานั้นมีตารางที่ผ่านการอาร์กิวเมนต์ -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 และ GPO ของตัวอักษร
$ 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 To Shape--vertical การจัดวางแนวตั้งทางตรงค่าเริ่มต้นเป็นแนวนอน $ shape -f fonts/devanagari/AnnapurnaSIL-Regular.ttf -s deva -l HIN 'शब्दों और वाक्यों की तरह'
# output omitted
specimen เครื่องมือ specimen สร้างแผ่นตัวอย่าง HTML Font ที่มีชุดตัวอย่างที่ตั้งไว้ในแบบอักษรรวมถึงข้อมูลเกี่ยวกับตัวอักษรและคุณสมบัติที่รองรับ
-i , --index INDEX ของแบบอักษรเป็นเซตย่อย (สำหรับ TTC, WOFF2) (ค่าเริ่มต้น: 0)--sample-text TEXT ข้อความตัวอย่างที่จะใช้ในตัวอย่างตัวอักษร $ allsorts specimen ../allsorts/tests/fonts/bengali/Lohit-Bengali.ttf
subset เครื่องมือ subset ใช้แบบอักษรต้นทางและข้อความบางส่วนและเขียนแบบอักษรต้นฉบับเวอร์ชันใหม่ที่มีร่ายมนตร์ที่จำเป็นสำหรับข้อความที่ให้มา
-t , --text TEXT เพื่อรวมร่ายมนตร์จากข้อความ-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 พยายามที่จะวิเคราะห์ร่ายมนตร์ทั้งหมด (หรือ dicts ต่าง ๆ ในกรณีของ 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 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 มองรูปร่างข้อความที่ให้มาหรือรายการ codepoints ตามตัวอักษรที่ให้มาภาษาและสคริปต์ จากนั้นมันจะสร้าง SVG ของร่ายมนตร์
-f , --font PATH ไปยังไฟล์แบบอักษร-s , --script SCRIPT สคริปต์เพื่อกำหนดรูปร่าง-l , --lang LANG Language To Shape--mark-origin ทำเครื่องหมายต้นกำเนิดของร่ายมนตร์แต่ละอันด้วยขนข้าม--margin num หรือ top,right,bottom,left ระบุระยะขอบที่จะเพิ่มลงในขอบของ SVG--fg-colour rrggbbaa ตั้งค่าสีเติมของ glyphs--bg-colour rrggbbaa ตั้งค่าสีพื้นหลังของ SVG ที่สร้างขึ้น--fg-color rrggbbaa สำหรับ --fg-colour--bg-color rrggbbaa สำหรับ --bg-colour-t , --text TEXT เพื่อแสดงผล-c , --codepoints CODEPOINTS รายการ codepoints ที่คั่นด้วยเครื่องหมายจุลภาค (เป็นตัวเลขเลขฐานสิบหก) เพื่อแสดงผล-i , --indices GLYPH_INDICES รายการดัชนี Glyph ที่คั่นด้วยเครื่องหมายจุลภาคเพื่อแสดงผล-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
เพื่อสร้างเครื่องมือให้แน่ใจว่าคุณติดตั้ง Rust
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)
ดูใบอนุญาตสำหรับรายละเอียด