[파이썬+폰트포지] 우분쿠 크롬에서 나눔코딩글꼴 버그 수정.
By suapapa
요 몇 년 사이에 쓸만한 공짜(나눔코딩의 경우 무려 자유!)글꼴들이 많이 등장했는데, 매번 일일이 복사해다가 설정하기 번거로와서, 짬나는 대로 끌어모아 각각 deb패키지로 만들어 제 PPA에 쌓아두고 있습니다.
지금까지 모은 글꼴들은…
- 신영복엽서체 `ttf-araea`
- 아리따체 `ttf-aridda`
- 다음체 `ttf-daum`
- 함초롱체(한컴체) `ttf-hancom`
- 한겨레결체(한결체) `ttf-hankc`
- 나눔글꼴 `ttf-nanum`
- **나눔고딕코딩체**(나눔코딩체) `ttf-nanum-coding`
- 네이버사전체 `ttf-naverdic`
입니다. 글꼴 이름 뒤의 ttf-로 시작하는 영어이름은 패키지명이니까. 위의 ppa를 추가하신 후 패키지명으로 검색해서 설치하면 되요.
공짜글꼴이지만 위의 리스트에 없는 글꼴들은, 제 레이더에 잡히지 않았거나, 재배포를 막았거나, 다운로드 링크를 크롬브라우져에서 접근할 수 없는 경우 처럼 왠지 맘에 들지 않거나한 경우 입 니다. 🙂
이들 중 특히 나눔글꼴은 화면용 기본글꼴로, 한결체는 인쇄물에 잘 쓰고 있습니다.
그리고, 또 하나 이 포스팅의 주제인 고정폭 글꼴 나눔코딩 글꼴에 대해 말해 보도록 하겠습니다.
글자들의 너비가 동일한 글꼴을 고정폭(monospace) 글꼴이라고 합니다. 모바일 장치들도 다 외관선 폰트들을 쓰는 세상(그리고 보통은 가변폭이 더 보기 좋으니까)이라 이젠 고정폭 글꼴을 찾기가 어려워 졌는데, 아스키 글자들로 그린 다이어그램, 회로도, 악보들을 볼 때나 코딩시 소스의 가독성을 높이기 위해 고정폭 글꼴은 여전히 필요합니다.
고정폭 글꼴은 그 태생 상 비트맵 글꼴이거나 영문만 준비되어 있는 경우가 많아서 (이 경우 한글글꼴과 조합하여 사용할 수 있지만 일관성이 떨어져서)안 예쁘죠.
이런 와중에 나눔코딩글꼴은 한글이 포함된 고정폭 외곽선 폰트인데다 가독성과 완성도도 높습니다. 좋은 글꼴을 만든 산돌커뮤니케이션과 이 글꼴을 자유에 모므로(OFL) 내놓아 준 네이버에게 감사드려요!!
해서, 우분투의 기본 고정폭로 설정해 두고 잘 쓰고 있지만 한가지 문제점이 있었습니다.
유독 크롬 브라우져에서만 나눔코딩의 영문 자간이 벌어져 보인다는 것 입니다.
찾아보니 네이버 개발센터 나눔 코딩 프로젝트의 게시판에도 이 문제가 보고(http://dev.naver.com/projects/nanumfont/forum/5513)된 바 있지만… 영향력 없는 OS의 영향력 없는 브라우져에서만 나타나는 이 현상을 알아서 고쳐줄 리 만무하지요. 1등만 신경쓰는 더러운 세상. ㅋ. 하지만 이 글꼴의 경우 OFL라이센스의 수정이 가능한 자유 글꼴이기 때문에 알아서 고쳐 쓸 수 있습니다.
자, 그럼 무엇이 문제인지 알아 내고, 고쳐 봅시다.
얼마간의 삽질 후에 그놈 데스크탑은 Fontconfig](http://ubuntu.or.kr/viewtopic.php?f=9&t=791)를 사용해서 폰트를 그리고, 크롬은 별개로[skia를 사용해 폰트를 그린다는 것을 알게 되었습니다.
**그럼 크롬의 버그일까요?**
헌데, 크롬에서 다른 글꼴들은 이런 문제가 나타나지 않는다는 것이죠. 해서 FontForge를 사용해 문제가 없는 글꼴과 비교해 뭐가 다른지 찾아 봤습니다. 그랬더니…
“Element” -> “Font Info” -> “OS/2” -> “Panose” -> “Proportion” 가 Monospace로 설정되어 있는 차이점이 보이더군요.
그래요.
**나눔글꼴은 고정폭 글꼴이 아닙니다.** 사실 모든 한글 고정폭 글꼴은 고정폭이 아니라 한글이 영문보다 딱 두배 넓죠. 그런 Proportion은 **Even Width**(짝수 너비)가 되야 할 것 같은 느낌이 들어 바꿔 보니…
논 아직 자유의 모미 아냐
FontForge는 기능적으로는 모자란 곳 없는(없어 보이는) 폰트 툴이지만 사용하기 편리한 툴은 아닙니다. 오래되었고 불편해요. 이런 문제가 있는 폰트를 만날 때 마다 FontForge를 열어서 -그때쯤이면 까먹었을- 메뉴 위치를 찾아 해매는 것은 유쾌한 일이 아니죠.
다행히 파이썬의 손길이 이 외진 곳 까지 뻐쳐 있었습니다. 아래와 같이 관련 패키지를 설치하고,
$ sudo apt-get install python-fontforge
폰트포지-파이썬 문서로 개념 탑재를 한 후,
굴려 봅니다. 여기서는 저작권 정보를 출력해 보았습니다.
import fontforge
font = fontforge.open(‘NanumGothic_Coding_Bold.ttf’) print font.copyright
Copyright © 2009 NHN Corporation. All rights reserved. Font designed by Sandoll Communications Inc.
문서 상에는 proportion에 대한 내용이 부실했지만, 쉽게 어딜 고쳐야 하는지 알 수 있었습니다. GUI의 순서와 같은 네번째 항목이네요. 역시 리스트 메뉴의 순서대로 9->4로 수정합니다.
font.os2_panose
(2, 13, 0, 9, 0, 0, 0, 0, 0, 0) font.os2_panose = (2, 13, 0, 4, 0, 0, 0, 0, 0, 0) font.generate(‘output.ttf’)
이렇게 FontForge를 직접 실행하지 않고도 폰트의 속성을 바꿀수 있게 되어, 나눔코딩체의 우분투 패키징시에 이 변경 내용을 적용하도록 스크립트를 추가해 두었습니다.
스크립트의 내용이 궁금하신 분은 apt-get source ttf-nanum-coding 으로 소스패키지를 받으셔서 debian 폴더를 살펴 보세요.
삽질 정리
윈도나 그놈데스크탑에서 문제가 없었던 것은 이런 문제가 있는 글꼴들의 오류를 잘 피해 가도록 폰트엔진에 땜빵 처리가 되어 있었기 때문인 것 같습니다. 이걸 나눔 코딩의 문제라고 봐야 하는지, 그런 예외처리를 하지 못한 skia엔진의 문제라고 해야 할 지… 지금은 곤란해서 판단할 수가 ㅇ벗네요.
참고: 현재는 skia가 개선되어 이런 수정이 없이도 크롬에서 문제가 발생하지 않는 것으로 알고 있습니다. 🙂