우분투, 크롬북 그리고 나눔 폰트

youknowit의 이미지

작년 우분투 한국 사용자그룹 메일링 리스트에서 상당히 오랫동안 한글 기본 폰트를 현재의 은폰트에서 나눔폰트로 바꾸는 문제를 논의했었습니다. https://lists.ubuntu.com/mailman/private/ubuntu-ko/ 은폰트가 우분투의 기본 글꼴로 채용된 것은 2007.9월부터 였습니다. 물론 그 당시에는 은폰트가 가장 나은 '자유'폰트였지만, 2010년부터 나눔폰트가 Open Font License를 채택하였고, 나눔 한자체도 그사이 완비되었고, 고정폭 나눔글꼴도 이제 우분투 패키지로 존재합니다(ttf-nanum-coding). 따라서 이제는 나눔폰트를 한글 기본 폰트로 채택하는 것이 현명한 선택일 것이라는 점에 대하여 콘센서스가 있는 것으로 보고 있습니다.

최근 2011.5월부터는 구글도 나눔폰트를 크롬북의 한글 기본 폰트로 채택하였습니다. http://code.google.com/p/chromium-os/issues/detail?id=8643 많은 분들이 이 소식을 반갑게 여기고 있는 것 같습니다. 제가 사용하는 크롬북도 오늘 추가 업데이트를 했고, 정말 깔끔하게 한글이 표시되어서 좋습니다.

물론 크롬북은 우분투 기반의 운영체제이기도 하고, 이제는 우분투의 한글 기본 폰트도 나눔으로 변경할 때가 무르익은 것 같습니다.

수정이 필요한 패키지는 다음과 같습니다.
* ubuntu-desktop : ttf-unfonts-core 를 빼고, ttf-nanum을 넣고,
* language-support-fonts-ko : ttf-unfonts-core, ttf-unfonts-extra, ttf-alee, ttf-nanum-coding 을 포함시키고,
* fontconfig : 설정파일 중, 한글 부분을 http://ubuntuone.com/p/xV2/ 에 있는 것과 같이 수정.

이 세개의 패키지는 모두 우분투 핵심 개발자(Ubuntu Core Developers)가 관리하는 것입니다.

우분투 한국 사용자 그룹과 동시에 KLDP에 이 글을 올리는 이유는 여러분들의 참여와 도움을 구하기 위함입니다. fontconfig 의 해당 파일을 설치하시고 테스트 해보시고, 별다른 문제가 없는지를 확인해 주시면 감사하겠습니다.

그리고, 또 한가지, 홈 폴더에 여기 첨부한 .fonts.conf 파일을 만들어서 신정식님께서 채용하신 방법으로 autohinting 을 끄면, 크롬북에서 그려지는 것과 똑같이 그려지는데, 이것이 더 좋은지, 아니면 autohinting 은 그대로 두는 것이 더 좋은지 의견을 좀 주십시오(그리고, fonts.conf 파일 대신에 /etc/fonts/conf.avail 폴더에 설정파일을 어떻게 수정해야 같은 효과를 거둘 수 있는지도 좀 알려주세요 ^^)

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 
<!-- https_//wiki.ubuntu.com/Fonts -->
<!-- http_//kldp.org/book/export/html/92122 -->
<!-- Set preferred Korean fonts -->
<match target="pattern">
	<test name="lang" compare="contains">
      		<string>ko</string>
    	</test>
	<test qual="any" name="family">
		<string>serif</string>
	</test>
	<edit name="family" mode="prepend" binding="strong">
		<string>NanumMyeongjo</string>
	</edit>
</match>
 
<match target="pattern">
        <test name="lang" compare="contains">
                <string>ko</string>
        </test>
	<test qual="any" name="family">
	 	<string>sans-serif</string>
	</test>
	<edit name="family" mode="prepend" binding="strong">
                <string>NanumGothic</string>
	</edit>
</match>
 
<match target="pattern">
        <test name="lang" compare="contains">
                <string>ko</string>
        </test>
        <test name="family">
                <string>monospace</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
                <string>Dejavu Sans Mono</string>
                <string>NanumGothicCoding</string>
        </edit>
</match>
 
<!-- From  http_//gerrit.chromium.org/gerrit/#change,1781 Turn on BCI (turn off autohint) for Nanum fonts -->
<match target="font">
    	<test name="family"><string>NanumGothic</string></test>
    	<edit name="hinting" mode="assign"><bool>true</bool></edit>
   	<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
    	<edit name="autohint" mode="assign"><bool>false</bool></edit>
</match>
<match target="font">
    	<test name="family"><string>NanumMyeongjo</string></test>
    	<edit name="hinting" mode="assign"><bool>true</bool></edit>
    	<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
    	<edit name="autohint" mode="assign"><bool>false</bool></edit>
</match>
 
 <!-- Set minimum font pixel size for cjk to 13px. -->
  <match target="font">
    <test name="lang" compare="contains">
      <string>zh</string><string>ko</string>
    </test>
    <test compare="less_eq" name="pixelsize" >
      <int>13</int>
    </test>
    <edit mode="assign" name="pixelsize" >
      <int>13</int>
    </edit>
  </match>
 
</fontconfig>
wkpark의 이미지

나눔글꼴은 힌팅이 들어있어서 오토힌팅을 꺼준것 같네요.
반면 은글꼴은 힌팅이 fontforge에 의해 자동으로 들어간거라서 리눅스상에서는 힌팅을 끄고 오토힌팅 처리하는게 차라리 낫죠.

사실 나눔글꼴은 약간 스타일리쉬합니다. 크롬OS의 기본 글꼴로 포함된 이유는 글꼴의 품질때문도 있겠지만 OFL이라서 들어갔을 확률이 높은 것 같습니다.
은글꼴의 남은 장점은 이제 옛한글 지원, 돋움,바탕,궁서체 모두 BOLD를 함께 지원하는 점, 돋움,바탕,궁서체 모두 한자를 지원하는 점, ko.TeX의 기본 글꼴인점,
상당수의 메이저 배포판의 기본 글꼴인 점 등등이 있겠습니다.

작년에 은글꼴 돋움체에 옛한글지원을 추가한게 아직 커밋도 못한 채 제 하드에서 잠자고 있네요;;

온갖 참된 삶은 만남이다 --Martin Buber

권순선의 이미지

글을 끌어올리기 위해서 답글 답니다. :-) 관심있는 분들의 적극적인 참여 기대합니다~

Fe.head의 이미지

저 글이 직관적이지 않아서

찾아서 하지 않는이상 무엇을 해야할지 모르겠군요.

fontconfig 명령을 쳐서 해야하는건가요?

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

익명 사용자의 이미지

http://openweb.or.kr/wp-content/uploads/2011/06/conf_avail.tar 파일을 풀어서...
/etc/fonts/conf.avail 에 복사해서 테스트해야 됩니다.
중복되는 파일이 있으니까... 테스트 전에 파일들을 백업해야 됩니다.

그 후 X 윈도우 껐다 키고 기본 폰트로

serif 나눔명조
sans 나눔고딕
monospace DejaVu Sans Mono, 나눔코딩

으로 화면에 제대로 그려지는지 확인하면 되는 것 같습니다.

Fe.head의 이미지

감사합니다.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

익명 사용자의 이미지

제 기억으로는 font.conf 고치고 나서 fc-cache 한번 실행시켜주면 바로 적용될겁니다.
물론 나눔 글꼴은 따로 설치하셔야 하고요 (글꼴 경로에 글골이 들어있기만 하면 됨)

fc-list | grep Nanum 이라고 나오면 될 듯.

익명 사용자의 이미지

폰트 설치 없이 *.conf 만 수정한 경우 fc-cache 할 필요는 없으나..
Desktop 일부에 적용 안 될 경우가 있습니다.

X 윈도우를 껐다 켜야 됩니다.

그리고

30-cjk-aliases.conf

파일은 수정돼야 합니다. 현재 수정 중이고 곧 파일을 올리겠습니다.

snowall의 이미지

이 글은 자유게시판이 더 어울릴 것 같은 느낌인데요..

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

그렇게 생각할 수도 아닐수도 있지요.

wkpark의 이미지

Fedora Core 14, 15에도 나눔글꼴이 4월에 추가되었네요.

나눔글꼴 https://fedoraproject.org/wiki/NHN_Nanum_fonts
나눔고딕 코딩 https://fedoraproject.org/wiki/NHN_Nanum_Gothic_Coding_fonts

참고로 은글꼴은 https://fedoraproject.org/wiki/UN_fonts

버그질라 항목
https://bugzilla.redhat.com/show_bug.cgi?id=691997
https://bugzilla.redhat.com/show_bug.cgi?id=692395

아직 한글 기본글꼴은 아닙니다만, 글꼴이 추가되었으니 브라우저 등등에서 글꼴을 바꿀 수는 있겠네요

온갖 참된 삶은 만남이다 --Martin Buber

익명 사용자의 이미지

중국, 일본 설정 참고하여 논리적으로 바꾸었습니다.
AR MingtiM KSC 는 한자 때문에 있는 것 같고, AppleGothic 도 들어있네요.
AppleGothic 이 빠져야 되지 않나... 그렇게 생각되네요.
나머지는 다른 분에게 넘깁니다.

diff -Naur 30-cjk-aliases.conf 30-cjk-aliases.conf-new

--- 30-cjk-aliases.conf	2011-06-03 13:48:28.000000000 +0900
+++ 30-cjk-aliases.conf-new	2011-06-04 00:20:03.727124186 +0900
@@ -11,40 +11,43 @@
         <family>궁서</family>
         <family>GungsuhChe</family>
         <family>궁서체</family>
-	<family>Myeongjo</family>
+        <family>Myeongjo</family>
         <family>명조</family>
         <family>MyeongjoChe</family>
         <family>명조체</family>
-        <family>AR MingtiM KSC</family>
-	<family>나눔명조</family>
         <accept>
-	    <family>NanumMyeongjo</family>
+            <family>NanumMyeongjo</family>
             <family>UnBatang</family>
+            <family>AR MingtiM KSC</family>
         </accept>
     </alias>
     <alias>
         <family>Dotum</family>
         <family>돋움</family>
-        <family>DotumChe</family>
-        <family>돋움체</family>
         <family>Gothic</family>
         <family>고딕</family>
-        <family>GothicChe</family>
-        <family>고딕체</family>
-	<family>Malgun Gothic</family>
+        <family>Malgun Gothic</family>
         <family>맑은 고딕</family>
-	<family>Gulim</family>
+        <family>Gulim</family>
         <family>굴림</family>
+        <accept>
+            <family>NanumGothic</family>
+            <family>UnDotum</family>
+            <family>AppleGothic</family>
+        </accept>
+    </alias>
+    <alias>
+        <family>DotumChe</family>
+        <family>돋움체</family>
+        <family>GothicChe</family>
+        <family>고딕체</family>
         <family>GulimChe</family>
         <family>굴림체</family>
-	<family>AppleGothic</family>
-        <family>애플고딕</family>
-	<family>나눔고딕</family>
         <accept>
-	    <family>NanumGothic</family>
-            <family>UnDotum</family>
+            <family>NanumGothicCoding</family>
         </accept>
     </alias>
+
 <!-- Aliases for Japanese Windows fonts -->
     <alias>
         <family>MS Gothic</family>
익명 사용자의 이미지

가만보니까... AppleGothic 이 alias 위치에 들어 있어야 할 것 같네요.

<alias>
    ...
    <family>AppleGothic</family>
    <family>애플고딕<family>
    ...
    <accept>
        ...
    </accept>
</alias>
익명 사용자의 이미지

서울시 한강체, 남산체는 라이센스가 어떻게 되죠?
아 이런 거 세금으로 만든 거일텐데.. 이런 게 OFL 폰트가 되야 하는데..

wkpark의 이미지

한글 글꼴 시대는 바야흐로 백묵글꼴 이전 시대와 백묵글꼴 이후 시대로 나눌 수 있지요 :>
백묵글꼴이 나온지 얼마 안되어서 광속같은 속도로 대부분의 주류 배포판은 백묵글꼴을 기본 탑재했었습니다.

그러다가 은글꼴이 나와서 얼마후에 백묵글꼴을 거의 완전히 대체했고요.

최근 몇년동안 공짜 글꼴이 우후죽순 등장했지만, 나눔글꼴 말고는 기업/공공기관에서 공개한 완벽한 공개 글꼴은 없었다고 보시면 됩니다.
- 나눔글꼴 시리즈 및 나눔코딩(OFL) : NHN에서 공개함
- http://dev.naver.com/projects/nanumfont (나눔코딩)
- http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip (나눔글꼴 시리즈 - 개발피드백 사이트 따로 없음)
- 은글꼴(GPL) : 은광희씨 개인이 원래 HLaTeX을 위해 만든 글꼴 http://kldp.net/projects/unfonts/
- 백묵글꼴(BSD) : font21사에서 공개 (당시 "미지리서치"에서 적극적으로 후원함)
- 랙시굴림(GPL ?) : 랙시테크에서 만든 글꼴 (kldp에 렉시테크에서 특허논쟁이 있었음. GPL인지 아닌지 명확한 라이선스 설명이 홈페이지에 없음)
- Alee체 (Artistic 라이선스) : Alee님 개인이 만듦

이 글꼴 외에 완벽하게 공개된 한글 공개글꼴은 없습니다. 다른 공짜 글꼴들은 물론 공짜로 쓰게해줘서 고맙긴 하지만.. 공짜라는 허울뿐이죠.

온갖 참된 삶은 만남이다 --Martin Buber

youknowit의 이미지

Bug Report 를 론치패드에 올렸습니다. https://bugs.launchpad.net/ubuntu/+source/ubuntu-meta/+bug/792471 방문하셔서 subscribe 하고 관심을 가져주시면 감사하겠습니다. 댓글까지 남겨 주심 더욱 좋고요.

익명 사용자의 이미지

나눔폰트가 상당히 잘 만들어진 것은 분명하지만, 사실 기본폰트로 지정하기에는 조금 무리입니다.
기본폰트는 무릇 아무리 봐도 질리지 않아야 하죠. 그런데 나눔고딕같은 경우는 호불호가 있습니다.
나눔명조 역시 이걸 기본폰트로 보기에는 무리죠. 원래 명조가 인기가 없기도 하지만, 나눔 명조는 이름이 명조답지 않게 조금 튑니다.
(나눔명조는 같은 폰트회사에서 만든것도 아닙니다. 하나는 아시아이고 하나는 산돌일겁니다. 그래서 약간 일관성면에서 부족)

그나마 freetype라이브러리가 훌륭해서 힌팅도 제대로 없는 은고딕을 기본폰트로 잘 보여주고 있어서 큰불만이 없는것같군요.
안드로이드에 내장한 DroidSans의 한글폰트는 그 원래 출처가 어딘지 잘 모르겠지만 이것도 사실 쓸만한 것 같기는 합니다.
아직 제대로 쓸만한 기본폰트세트가 없다는 사실이 좀 서글퍼지기도 하지만 그나마 은폰트가 기본폰트세트로는 훌륭하고 이만한 것도 없죠.
모든 배포판을 아우르고 있는 현재의 은폰트를 그대로 둔다에 한표입니다.
다만 나눔폰트를 옵션으로 추가하는거야 말릴 이유는 없겠죠.

cwryu의 이미지

은글꼴에 대한 호불호는 나눔글꼴보다 더 갈립니다. 힌팅이 없이 aa만 적용해서 쓰는 건 애플 고딕과 비슷한데 애플고딕에 대한 평가가 엇갈리는 것과 비슷합니다. (아 휴대폰에서 힌팅 없는 Droid 폰트가 별 문제가 없는 것처럼, 100 DPI도 안 되는 데스크톱 화면이 휴대폰 LCD만큼 300 DPI까지 높은 디스플레이가 일반화된다면 힌팅 없어도 충분하다고 말할 수 있겠지만 수년은 걸리겠지요.)

그리고 이런 상황이 앞으로 개선될 여지가 있느냐 하면 전혀 없습니다. 수많은 오래된 프로젝트가 그렇듯이 은글꼴은 현재 심각한 관리 문제를 겪고 있고 프로젝트 주인이 없습니다. 글꼴의 글리프를 추가하거나 편집할 수 있는 사람은 처음부터 없었고 HLaTeX 폰트 변환 이후 바뀐 것은 없습니다. 이것저것 구성만 바꾸는 실험만 했지만 릴리스는 결국 안 했습니다. kldp.net에 피드백을 남겨도 주인 없는 메아리일 뿐이고요. (나눔 글꼴도 딱히 좋지는 않지만.)

나눔 글꼴 역시 문제점이 많지만 적어도 현재 상황에서 최선이라고 생각합니다.

wkpark의 이미지

네 은글꼴은 아직 프로젝트가 정리조차 안된 실정입니다.

라이선스문제만 하더라도 KTUG분들과 몇번 메일만 오가다가 만 상태에서 tarball 업데이트도 안되었고,
새로 개선된 옛한글 GSUB지원도 스냅샷상태로만 있지 이게 릴리스된 것도 아니고,
CVS 소스레포지터리경우는 2년전 정리하려고 기존 소스를 지우고
새 버전의 fontforge로 다시 변환한 것을 올리는 과정에서 뭔가 꼬인 상태로 그대로 버려둔지 2년여가 흘러버렸네요;;
그래도 피드백해주는 분은 cwryu님 한분이셨는데 제가 그것도 한참 지난 상태에서 봤네요. 올려주신건만해도 감사합니다.
올해 안으로는 꼭 손보도록 노력해보겠습니다.
이미 언급하신 힌팅문제때문에 출력물의 경우에는 만족할만 하지만 스크린글꼴을 쓰기에는 부족한 부분이 많은것이 사실이라서
신경도 잘쓰이지 않고 손이 잘 가지 않았던 것 같습니다.

이 상황이기때문에 현재 상태에서는 좋은 나눔글꼴을 놔두고 그냥 썩히기에는 아깝지요.

온갖 참된 삶은 만남이다 --Martin Buber

youknowit의 이미지

그 사이 ubuntu-ko 메일링 리스트에서 논의한 결과 /etc/fonts/conf.avail 폴더에 있는 69-language-selector-ko-kr.conf 파일을 다음과 같이 하는 것이 좋겠다는 쪽으로 수렴하고 있습니다. 물론, 아래 내용을 .fonts.conf 라는 이름으로 저장하여 홈 폴더에 두셔도 비슷한 효과...

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 
<!-- Set preferred Korean fonts -->
	<match target="pattern">
		<test name="lang" compare="contains">
                	<string>ko</string>
        	</test>
		<test name="family">
			<string>serif</string>
		</test>
		<edit name="family" mode="prepend_first" binding="strong">
			<string>NanumMyeongjo</string>
		</edit>
	</match>
	<match target="pattern">
		<test name="lang" compare="contains">
                	<string>ko</string>
        	</test>
		<test name="family">
			<string>sans-serif</string>
		</test>
		<edit name="family" mode="prepend_first" binding="strong">
			<string>NanumGothic</string>
		</edit>
	</match>
	<match target="pattern">
		<test name="lang" compare="contains">
                	<string>ko</string>
        	</test>
		<test name="family">
			<string>monospace</string>
		</test>
		<edit name="family" mode="prepend" binding="strong">
			<string>NanumGothicCoding</string>
			<string>NanumGothic</string>
		</edit>
	</match>
<!-- Turn on BCI (turn off autohint) for Nanum fonts. 
From http_//gerrit.chromium.org/gerrit/#change,1781 -->
<!-- Nanum font does not require autohinting. 
These instructions are better given in the ttf-nanum package's config file. 
But until then, we give the instructions here. --> 
	<match target="font">
        	<test name="family" qual="any">
			<string>NanumGothic</string>
			<string>NanumMyeongjo</string>
			<string>NanumGothicCoding</string>
		</test>
        	<edit name="hinting" mode="assign"><bool>true</bool></edit>
        	<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
        	<edit name="autohint" mode="assign"><bool>false</bool></edit>
	</match>
 
</fontconfig>

/etc/fonts/conf.avail 에 있는 파일 중 수정되어야 할 나머지 3개의 파일은 첨부하였습니다. 물론, 이들 4개의 파일은 /etc/fonts/conf.d 에 심링크되어 있어야 합니다^^

사용해 보시고 소감을 말씀해주시면 감사.

댓글 첨부 파일: 
첨부파일 크기
Binary Data conf.avail_.FINAL_.tar.gz3.11 KB