AllSorts는 글꼴 파서, 쉐이핑 엔진 및 OpenType, Woff 및 Woff2의 서브 세트입니다. 이 저장소에는 AllSorts를 디버깅하고 테스트하고 사용의 예를 제공하기 위해 개발 된 도구가 포함되어 있습니다.
참고 : 이 도구는 데모, 참조 및 디버깅 목적을위한 것입니다. 생산 워크 플로우에 의존해서는 안됩니다.
사용 가능한 도구 :
bitmaps - 비트 맵 글꼴에서 비트 맵을 덤프합니다cmap - 글리프 매핑에 문자를 인쇄합니다dump - 덤프 글꼴 정보has-table 글꼴에 특정 테이블이 있는지 확인instance - 가변 글꼴에서 글꼴의 정적 인스턴스 생성layout-features -글꼴의 GSUB 및 GPOS 기능 목록을 인쇄shape - 글꼴에서 글리프에 쉐이핑을 적용하십시오specimen - 글꼴에 대한 HTML 글꼴 시편 생성subset - 서브 세트 글꼴validate - 제공된 글꼴을 구문 분석하여 실패를보고합니다variations - 가변 글꼴의 변형 축을 나열하십시오.view - 글리프에서 SVG를 생성합니다bitmaps bitmaps 도구는 EBLC / EBDT 또는 CBLC / CBDT 테이블에서 글리프 비트 맵을 포함하는 글꼴에서 비트 맵을 추출합니다.
-o 비트 맵을 작성하는 디렉토리의 경로입니다. 존재하지 않으면 생성됩니다. 이미지는 각 스트라이크 (크기)에 대한 하위 디렉토리에서 PNG로 작성됩니다. 형식은 {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 Index 항목에 덤프합니다. 테이블 인코딩이 유니 코드 인 경우 문자는 코드 포인트와 함께 인쇄됩니다. 그렇지 않으면 문자의 숫자 값 만 인쇄됩니다.
-f , --font 글꼴 파일의 경로를 지정합니다.-i , --index 덤프 to 덤프 (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 트루 타입 또는 OpenType 컨테이너로 감싸지 않은 CFF 글꼴 또는 테이블에 대한 정보를 인쇄하는 데 사용할 수 있습니다.-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 제공된 글꼴 파일에 -t 인수를 통해 전달 된 테이블이 포함 has-table 있는지 확인합니다. 글꼴에 테이블이 포함 된 경우 상태 성공 (0)으로 종료되는 경우, 글꼴에 테이블이 포함되어 있지 않으면 상태 1으로 종료됩니다.
이 도구는 원하는 테이블이있는 글꼴을 찾기 위해 find 와 함께 편리합니다.
-t , --table TABLE 테이블 확인-i , --index INDEX index to Check (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 도구는 변수 글꼴의 변동 축에 값 세트 (튜플)를 적용하여 해당 설정과 정적, 비 변량 글꼴을 생성합니다.
-t , --tuple 콤마 분리 된 값 목록입니다. variations 도구는 축, 순서 및 한계를 나열합니다.-o , --output 출력 글꼴로가는 경로입니다. 이 예에서는 글꼴에는 두 개의 축이 있습니다 : UNDO and 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 index the font to shape (ttc, woff2의 경우) (기본값 : 0)-s , --script SCRIPT 스크립트-l , --lang LANG 언어 모양--vertical 수직 수직 레이아웃, 기본값은 가로입니다 $ shape -f fonts/devanagari/AnnapurnaSIL-Regular.ttf -s deva -l HIN 'शब्दों और वाक्यों की तरह'
# output omitted
specimen specimen 도구는 글꼴에 샘플 텍스트를 포함하는 HTML 글꼴 시편 시트와 글꼴 및 지원되는 기능에 대한 정보를 생성합니다.
-i , --index INDEX index to subset (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 index to subset (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 Tool은 제공된 글꼴, 언어 및 스크립트에 따라 제공된 텍스트 또는 코드 포인트 목록을 형성합니다. 그런 다음 글리프의 SVG를 생성합니다.
-f , --font PATH 경로-s , --script SCRIPT 스크립트-l , --lang LANG 언어 모양--mark-origin--margin num 또는 top,right,bottom,left SVG 가장자리에 추가 할 여백을 지정합니다.--fg-colour rrggbbaa Glyphs의 채우기 색상을 설정합니다--bg-colour rrggbbaa 생성 된 SVG의 배경색 설정--fg-color rrggbbaa 대한 --fg-colour rrggbbaa 별칭--bg-color rrggbbaa 에 대한 --bg-colour RRGGBBAA 별칭-t , --text TEXT 텍스트-c , --codepoints CODEPOINTS comma-separated codepoints 목록 (16 진수 숫자)-i , --indices GLYPH_INDICES comma-separated 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
최소 지원되는 Rust 버전 : 1.70.0
도구를 구축하려면 녹이 설치되었는지 확인하십시오.
cargo build --releasecargo install --path . allsorts-tools 위한 AUR 패키지가 있습니다.
git clone https://aur.archlinux.org/allsorts-tools.git
cd allsorts-tools
makepkg -si
기부금을 환영합니다. 자세한 내용은 AllSorts 기고 가이드를 참조하십시오.
우리는 Rust Community 표준을지지하는 것을 목표로합니다.
우리는 성별, 성적 취향, 장애, 민족, 종교 또는 유사한 개인적 특성에 관계없이 모든 사람에게 친절하고 안전하며 환영하는 환경을 제공하기 위해 노력하고 있습니다.
우리는 녹 행동 강령을 따릅니다.
AllSorts 및 이러한 도구는 Apache 라이센스 (버전 2.0)의 조건에 따라 배포됩니다.
자세한 내용은 라이센스를 참조하십시오.