Source Code Pro에 합자 추가하기

즐겨 쓰는 글꼴인 Source Code Pro는 합자(ligature)를 지원하지 않는다. 요청하는 사용자가 있지만 진행하는 것 같지도 않다. 대안으로 Hasklig가 있어 써 봤는데 뭔가 손이 가지 않는다. 이름이 달라서인가…

찾아 보면서 Source Code Pro 글꼴에 Fira Code의 합자를 이식(?)하는 방법도 봤지만 역시 뭔가 해야 하는 건 귀찮아서 당시엔 넘겼는데 여전히 지지부진한 합자 지원 때문에 결국 글꼴을 수정하고 간단히 정리해 본다.

Ligaturizer

글꼴에 합자를 추가하는 파이썬 프로그램이다. 해당 저장소에 있는 설명이면 충분하지만 나중에 기억을 되살리며 다시 영어를 읽는 건 귀찮으니까. 참, 리눅스에서 하는 게 편한 듯하다. 아래 내용 역시 우분투에서 했다.

fontforge 설치

글꼴 변환하는 데 필요하다. 파이썬 바인딩이 필요하다는데 fontforge 설치하는 걸로 충분했다.

Ligaturizer 저장소 복제

설명 대로 하위 저장소까지 복제해도 fonts/fira, fonts/plex 디렉터리 내용을 체크아웃하지 못한다. 얕은(shallow) 복제를 하는데 원 저장소 이력이 바뀌어 지정한 커밋이 없기 때문이다. git submodule update --init 으로 각 하위 모듈을 업데이트한다. 하위 모듈로 연결한 글꼴 버전이 낮을 수 있으므로 필요하면 각 글꼴을 최신 버전으로 바꾼다.

글꼴 만들기

make를 실행하면 fonts/output 디렉터리에 합자를 추가한 폰트를 만든다. 필요한 것만 만들고 싶으면 build.py 파일에서 prefixed_fontsrenamed_fonts내용을 수정하면 된다.prefixed_fonts에 추가한 폰트는 원래 이름 앞에 Liga를 추가하며 renamed_fonts는 저작권 때문에 원래 폰트 이름을 쓰지 못할 때 지정한 이름으로 바꿀 수 있다.

난 혼자 쓸 거니까 Source Code Pro 글꼴을 fonts 디렉터리에 넣고 간단히 다음 내용만 고쳤다.

참고로 Ligaturizer 저장소에도 Source Code Pro 글꼴을 기본으로 포함하고 있는데 버전이 조금 낮다.

그 외

Source Code Variable 글꼴이 나왔길래 같이 변환해 봤는데 고정폭 글꼴도 아니고 무엇보다 모양이 이전과 다르다. 변환은 했지만 쓸 일은 없을 듯하다.

합자로 사용할 글자는 ligatures.py 파일에서 선택할 수 있는데 기본 그대로 사용하기로 했다.