FontForge

FontForge는 글꼴의 개별 글리프를 만들고 수정하며 이를 실제 폰트 파일로 생성하는 자유·오픈 소스 글꼴 편집기다. George Williams가 개발을 시작했고 공개 개발 공동체에 의해 유지되어 왔다. 경로·베지어 윤곽선을 그린다는 점에서는 일반 벡터 그래픽 편집기와 유사하지만,...

작성 언어C
분류폰트 편집기, 벡터 윤곽선 편집 도구
원 개발자George Williams
개발·배포FontForge 개발 공동체
라이선스GPL 계열 자유·오픈 소스
주요 플랫폼Linux·macOS·Windows
폰트 형식TrueType·OpenType·PostScript
원본 편집 형식SFD
문자 표현글리프 윤곽선·베지어·참조 컴포넌트
타이포그래피메트릭·커닝·OpenType GSUB·GPOS
비트맵 폰트픽셀 글리프 편집·생성
스크립트Python 및 FontForge 스크립트
공식 문서FontForge

FontForge는 글꼴의 개별 글리프를 만들고 수정하며 이를 실제 폰트 파일로 생성하는 자유·오픈 소스 글꼴 편집기다. George Williams가 개발을 시작했고 공개 개발 공동체에 의해 유지되어 왔다. 경로·베지어 윤곽선을 그린다는 점에서는 일반 벡터 그래픽 편집기와 유사하지만, 여러 글리프의 문자 코드와 간격·합자, 표시 언어·스크립트 관련 정보를 함께 관리한다는 점이 다르다. TrueType·OpenType과 PostScript 기반 폰트 제작·변환에 활용할 수 있다.[1]

FontForge에서 한 글리프는 하나 이상의 윤곽선·참조 컴포넌트와 부가 메트릭으로 구성된다. 제작자는 점과 제어 핸들을 움직여 베지어 곡선의 형태를 지정하고 합성 문자에서 부품 글리프를 재사용할 수 있다. 글리프의 고유한 진폭이나 시각적인 폭 외에 advance width·좌우 사이드 베어링을 조절해 연속된 문자가 읽기 좋은 위치에 배치되도록 한다. 특정 문자 조합 사이의 간격인 커닝(kerning)은 단일 글리프 폭만 수정해서 해결하기 어려운 시각적인 간격 문제를 보정한다.[2]

OpenType 폰트에는 문자에 표시할 글리프의 대체·합자, 위치 조정과 발음 기호 부착 등을 정의하는 GSUB·GPOS 등 여러 레이아웃 테이블이 있다. FontForge는 이러한 기능을 편집하고 글리프 이름·문자 인코딩과 폰트 메타데이터를 관리한다. 원본 SFD는 글리프와 편집 정보를 보존하기 위한 파일 형식이고, 최종 TTF·OTF 등은 실제 렌더러에서 사용할 목적으로 생성된다. 글꼴을 배포할 때에는 윤곽선이 서로 교차하거나 코드 포인트가 중복되는지 등을 검사할 필요가 있다.[3]

FontForge는 명령행·Python 스크립트를 이용해 글리프의 모양이나 이름을 대량으로 수정하고 여러 형식의 폰트를 일괄 생성하는 작업도 지원한다. 스크립트 API를 사용하면 폰트를 열고 글리프 윤곽선·글리프 집합, 메트릭과 출력을 제어할 수 있어 반복적인 빌드와 폰트 자동 검증에 활용된다. 디자인 툴에서 개별 문자를 그림으로 저장하는 것과 달리 글꼴 전체의 문자 집합·타이포그래피 및 런타임 호환성을 통합 관리하는 전문 소프트웨어로 분류한다.[4]

역사

George Williams의 개발

공개 소스 프로젝트

폰트·글리프 모델

글리프·윤곽선

베지어 경로

참조 컴포넌트

문자 인코딩·유니코드

메트릭·커닝

advance width

사이드 베어링

커닝 쌍·클래스

OpenType 레이아웃

GSUB

GPOS

합자·대체

비트맵 폰트

원본·출력 형식

SFD

TTF·OTF·PostScript

자동화

Python API

명령행 빌드

폰트 검증과 호환성

플랫폼·라이선스

관련 문서

  1. FontForge 공식 사이트 ↩
  2. FontForge: 메트릭·간격·커닝 ↩
  3. FontForge: 공식 문서 ↩
  4. FontForge: Python Scripting ↩