Font-Line은 OpenType 수직 메트릭보고 및 명령 줄 기반 글꼴 라인 간격 수정을위한 Libre의 오픈 소스 명령 줄 도구입니다. .ttf 및 .otf 글꼴 빌드를 지원합니다.
$ pip3 install font-line$ font-line report [font path]$ font-line percent [integer %] [font path]$ font-line --help Font-Line은 Python으로 제작되었으며 Python 3.7+ 통역사를 지원합니다. 명령이있는 명령 줄에서 설치된 Python 버전을 확인하십시오.
$ python3 --version
다음 방법 중 하나를 사용하여 시스템에 글꼴을 설치하십시오.
최신 Font-Line 릴리스는 Python 패키지 인덱스를 통해 제공되며 PIP와 함께 설치할 수 있습니다.
$ pip3 install font-line
PIP 설치 후 새 버전의 Font-Line으로 업그레이드하려면 pip3 install --upgrade font-line 명령을 사용하십시오.
현재 리포지토리 버전 (PYPI 릴리스에 앞서있을 수 있음)은 저장소를 다운로드하거나 git로 복제하여 설치할 수 있습니다.
git clone https://github.com/source-foundry/font-line.git
최상위 저장소 디렉토리로 이동하여 다음 명령을 입력하십시오.
$ pip3 install .
이 접근 방식으로 설치하는 경우 동일한 지침에 따라 새 버전의 애플리케이션으로 업그레이드하십시오.
Font-Line은 하위 명령을 통해 font-line Command Line 실행 파일로 작동합니다. 다음 하위 명령을 사용할 수 있습니다.
percent - 글꼴의 라인 간격을 승천 대 하계 거리의 퍼센트로 수정합니다.report - 글꼴에 대한 OpenType 메트릭 값을보고합니다이 하위 명령의 사용은 아래에 자세히 설명되어 있습니다.
다음 OpenType 수직 메트릭 값과 이러한 데이터에서 파생 된 계산 된 값은 report 하위 명령과 함께 표시됩니다.
report명령에 하나 이상의 글꼴 경로 인수를 입력하십시오.
$ font-line report [fontpath 1] <fontpath ...>
다음은 해킹 서체 파일 Hack-Regular.ttf 로 생성 된 보고서의 예입니다.
$ font-line report Hack-Regular.ttf
=== Hack-Regular.ttf ===
Version 3.003;[3114f1256]-release
SHA1: b1cd50ba36380d6d6ada37facfc954a8f20c15ba
::::::::::::::::::::::::::::::::::::::::::::::::::
Metrics
::::::::::::::::::::::::::::::::::::::::::::::::::
[head] Units per Em: 2048
[head] yMax: 2027
[head] yMin: -605
[OS/2] CapHeight: 1493
[OS/2] xHeight: 1120
[OS/2] TypoAscender: 1556
[OS/2] TypoDescender: -492
[OS/2] WinAscent: 1901
[OS/2] WinDescent: 483
[hhea] Ascent: 1901
[hhea] Descent: -483
[hhea] LineGap: 0
[OS/2] TypoLineGap: 410
::::::::::::::::::::::::::::::::::::::::::::::::::
Ascent to Descent Calculations
::::::::::::::::::::::::::::::::::::::::::::::::::
[hhea] Ascent to Descent: 2384
[OS/2] TypoAscender to TypoDescender: 2048
[OS/2] WinAscent to WinDescent: 2384
::::::::::::::::::::::::::::::::::::::::::::::::::
Delta Values
::::::::::::::::::::::::::::::::::::::::::::::::::
[hhea] Ascent to [OS/2] TypoAscender: 345
[hhea] Descent to [OS/2] TypoDescender: -9
[OS/2] WinAscent to [OS/2] TypoAscender: 345
[OS/2] WinDescent to [OS/2] TypoDescender: -9
::::::::::::::::::::::::::::::::::::::::::::::::::
Baseline to Baseline Distances
::::::::::::::::::::::::::::::::::::::::::::::::::
hhea metrics: 2384
typo metrics: 2458
win metrics: 2384
[OS/2] fsSelection USE_TYPO_METRICS bit set: False
::::::::::::::::::::::::::::::::::::::::::::::::::
Ratios
::::::::::::::::::::::::::::::::::::::::::::::::::
hhea metrics / UPM: 1.16
typo metrics / UPM: 1.2
win metrics / UPM: 1.16
이 보고서에는 글꼴 버전 문자열, 글꼴 파일의 SHA-1 해시 다이제스트 및 글꼴의 라인 간격과 관련된 OpenType 테이블 메트릭이 포함됩니다.
Unix/Linux/OS X 사용자는이 보고서를 > 명령 줄 관용구와 함께 파일에 쓸 수 있습니다.
$ font-line report TheFont.ttf > font-report.txt
선택한 파일 경로 문자열로 위의 font-report.txt 파일 경로를 수정하십시오.
BTBD (Baseline to Baseline Distouge) 계산은 OpenType Fonts 및 OpenType OS/2 테이블 사양에 대한 Microsoft 권장 사항에 따라 수행됩니다.
BTBD = hhea.Ascent + abs(hhea.Descent) + hhea.LineGap
BTBD = OS/2.typoAscent + abs(OS/2.typoDescent) + OS/2.typoLineGap
BTBD = OS/2.winAscent + OS/2.winDescent + [External Leading]
외부 선두가 다음과 같이 정의되는 경우
MAX(0, hhea.LineGap - ((OS/2.WinAscent + OS/2.winDescent) - (hhea.Ascent - hhea.Descent)))
Font-Line은 EM 메트릭 당 단위의 사용자 정의 비율로 자동 라인 간격 수정을 지원합니다. 이 값은 아래의 UPM으로 축약됩니다.
percent명령의 첫 번째 인수로 UPM의 원하는 비율을 입력하십시오. 이것은 정수 값으로 입력 해야합니다. 그런 다음 글꼴 메트릭 변경 사항을 적용하려는 하나 이상의 글꼴 경로를 입력하십시오.
$ font-line percent [percent change] [fontpath 1] <fontpath ...>
서체 디자이너가 사용하는 일반적인 기본값은 20% UPM입니다. UPM 메트릭의 20%에서 TheFont.ttf 에서 글꼴을 수정하려면 다음 명령을 입력합니다.
$ font-line percent 20 TheFont.ttf
정수 값을 높이거나 줄여 라인 간격을 증가 시키거나 줄입니다.
원래 글꼴 파일은 수정되지 않은 버전으로 보존되며 수정 된 파일 쓰기는 [original filename]-linegap[percent].[ttf|otf] . 파일 경로는 수정이 완료된 후 표준 출력에서 귀하에게보고됩니다. Font-Line은 글리프 세트 또는 글꼴에 적용되는 힌트를 수정하지 않습니다. 응용 프로그램이 글꼴 파일에서 사용될 때 발생하는 OpenType 테이블 수정에 대한 설명은 아래 세부 사항 섹션을 참조하십시오.
report 하위 명령으로 새 글꼴 파일의 수직 메트릭을 검사 할 수 있습니다 (위의 사용 참조).
percent 로 변경됩니다 이러한 다중 수직 메트릭 값의 해석 및 표시는 플랫폼 및 응용 프로그램 의존적입니다. 광범위하게 받아 들여지는 "최고의"접근법은 없습니다. 따라서 글꼴은 percent 명령 백분율로 수정 될 때 글꼴에서 원래 메트릭 설계를 보존하려고 시도합니다.
Font-Line은 현재 일반적으로 사용되는 세 가지 수직 메트릭 접근법을 지원합니다.
수직 지표 접근법 1 :
메트릭은 다음과 같이 정의됩니다.
Font-Line은 명령 줄에 정의 된 % UPM 값에 따라 총 예상 높이에 대한 델타 값을 계산합니다. 이 값과 [OS/2]에 걸친 윈스 센트 값에 걸친 관찰 된 단위의 차이는 절반으로 나눈 다음 (선 간격을 증가시키기 위해) (감소 된 라인 간격을 위해) 세트의 3 세트의 승천/여종 값 각각에서 첨가된다. [OS/2] 오피 폴린 갭 및 [HHEA] LINEGAP 값은 수정되지 않았습니다.
수직 메트릭 접근 2
메트릭은 다음과 같이 정의됩니다.
Font-Line은 명령 줄에 정의 된 % UPM 값에 따라 총 예상 높이에 대한 델타 값을 계산합니다. 이 값과 [OS/2]에 걸친 윈스 센트 값에 걸친 관찰 된 단위의 차이는 절반으로 나눈 다음 (선 간격을 증가시키기 위해) (OS/2] WinASC/Windesc 및 [HHEA] ASC/DESC 값을 감소 시키거나 (감소 된 라인 간격을 위해) 빼냅니다. [OS/2] 오타 오스 오스/타이 포스 값은 수정되지 않았으며 크기 = upm 값의 정의를 유지합니다. [OS/2] 오피 폴린 갭 및 [HHEA] LINEGAP 값은 수정되지 않았습니다.
수직 메트릭 접근 3
메트릭은 다음과 같이 정의됩니다.
글꼴의 메트릭 값 변경은 다음과 같이 정의됩니다 .
내부 주요 수정은 [HHEA] 상승 및 하강 값과 [OS/2] Winascent & Windentest 값을 가로 질러 고르게 분할됩니다. 이러한 새로운 메트릭 속성을 정의하기 위해 새로운 [OS/2] 오피 폴리 네그 값의 절반을 원래 [OS/2] 오타 오스펜더 또는 인쇄물에 추가합니다. [HHEA] linegap 값은 항상 0으로 정의됩니다.
새로 정의 된 수직 지표 값은 올바르게 정의되지 않은 경우 Glyph 구성 요소의 클리핑으로 이어질 수 있습니다. 글꼴 라인에는 이것이 발생하지 않는다는 확신을 제공하기위한 테스트가 없습니다. 우리는 응용 프로그램을 사용하기 전에 이러한 문제에 사용자가 정통하고 수정 된 글꼴이 프로덕션 환경에서 사용되기 전에이 테스트를 설계자 / 사용자에게 맡깁니다.
프로젝트 저장소에 대한 새로운 이슈 보고서를 제출하십시오.
Font-Line은 환상적인 FontTools Python 라이브러리로 제작되었습니다.
MIT 라이센스. 자세한 내용은 License.md를 참조하십시오.