나눔글꼴: 같은 글꼴인데 윈도와 리눅스에서 다르게 보이는 이유가 뭘까요?

nulluser의 이미지

데스크탑으로 리눅스를 써온 지 몇 년이나 됐지만, 여전히 글꼴은 어렵네요.
나눔글꼴을 윈도와 리눅스에서 쓰려고 하는데, 같은 글꼴인데 윈도와 리눅스에서 서로 다르게 보이는 문제를 해결하고 싶습니다.

윈도는 당연히 Cleartype을 설정했고,
리눅스에서는 fontconfig-2.6.0, freetype-2.3.7, libXft-2.1.13, cairo-1.8.0이 설치돼 있고, fontconfig에서는 hintstyle은 hintfull, autohint는 false, antialias는 true로 설정했습니다.
(저게 다 뭐 하는 건지도 모르겠네요. 설정옵션 중에 autofit라는 것도 있는데 이건 false돼 있습니다.)

특이한 것은 글꼴마다 무슨 차이가 있는지 어떤 글꼴은 윈도와 리눅스에서 거의 같게 보이는데, 어떤 글꼴은 차이가 아주 크고요...
맑은고딕은 윈도나 리눅스에서 거의 비슷하게 표현되는데,
나눔고딕은 Bold는 서로 차이가 크고 나눔명조는 Regular나 Bold 모두 차이가 심합니다.

스크린샷을 찍었습니다.

<img src="http://img252.imageshack.us/img252/558/ngr09mm2.png" alt="" class="bb-image" />
나눔고딕 Regular 9
<img src="http://img252.imageshack.us/img252/6986/ngr24nx9.png" alt="" class="bb-image" />
나눔고딕 Regular 24
: 나눔고딕의 Regular는 리눅스나 윈도나 큰 차이가 없습니다만,

<img src="http://img362.imageshack.us/img362/42/ngb09tp3.png" alt="" class="bb-image" />
나눔고딕 Bold 9
<img src="http://img362.imageshack.us/img362/8494/ngb24ts6.png" alt="" class="bb-image" />
나눔고딕 Bold 24
: 나눔고딕의 Bold는 리눅스에서 너무 많이 번져 있습니다.

<img src="http://img407.imageshack.us/img407/1360/nmr09ag7.png" alt="" class="bb-image" />
나눔명조 Regular 9
<img src="http://img518.imageshack.us/img518/2660/nmb09aq1.png" alt="" class="bb-image" />
나눔명조 Bold 9
: 나눔명조는 크기 9에서 리눅스의 경우 Regular와 Bold를 구분할 수 없을 정도이고,

<img src="http://img136.imageshack.us/img136/6506/nmr24vq4.png" alt="" class="bb-image" />
나눔명조 Regular 24
<img src="http://img136.imageshack.us/img136/3627/nmb24ms7.png" alt="" class="bb-image" />
나눔명조 Bold 24
: 크기를 24정도로 키우니까 Bold가 좀 번져 보이기는 해도 Regular와 구분이 됩니다.

이런 문제는 글꼴에 문제가 있는 건가요(맑은고딕은 별문제가 없는 것으로 보아 글꼴의 문제도 있지 않나 싶은데요...), 제 설정에 문제가 있는 건가요, 아니면 리눅스와 윈도의 글꼴 표현 방식의 차이로 어쩔 수 없는 건가요?
리눅스에서 fontconfig를 통해서 글꼴을 바인딩하거나 글꼴마다 다른 설정을 할 수 있는 등 세세한 설정이 가능해서 편리하기는 하나,
cleartype을 좀 더 좋아하는 편인데, 리눅스에서도 윈도에서처럼 보이게 설정하고 싶습니다.

글꼴 설정 잘해서 쓰시는 분이 계시면 팁을 부탁합니다.

danskesb의 이미지

안티앨리어싱 알고리즘의 차이입니다. 어쩔 수 없습니다. 당장 맑은 고딕도 윈도와 리눅스에서 다르게 보입니다.

그래서 안티앨리어싱 알고리즘을 ClearType과 상당히 비슷하게 만들어 주는 패치가 있었으나 요즘에는 관리가 되고 있지 않고, 무작위적인 오류도 발생해서 추천하지 않습니다.

---- 절취선 ----
http://blog.peremen.name

sorcerer의 이미지

freetype 라이브러리가 상용의 알고리즘들을 쓰게 설정하고 빌드하면 좀 나아지지 않을까 하네요.

한번 깔아볼까...

SOrCErEr

sorcerer의 이미지

이걸로도 해결되진 않는군요...ㅡ.,ㅡ;

SOrCErEr

noblepylon의 이미지

윈도에서 GDI++를 사용하면 리눅스와 비슷한 렌더링을 보여줍니다.
Cleartype대신 Freetype2로 렌더링을 해줍니다.

GDI++ 공식 홈페이지
아름다운 한글 글꼴, 제대로 보기
Tutorial - GDI++; Some Tips and Tricks.

굴림을 나눔고딕으로 치환해서 쓰고 있는데 정말 마음에 듭니다.
---
“내게 능력주시는 자 안에서 내가 모든 것을 할 수 있느니라.”(빌립보서 4:13)

---
“내게 능력주시는 자 안에서 내가 모든 것을 할 수 있느니라.”(빌립보서 4:13)

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

ClearType은 LCD 화면을 위한 서브픽셀 렌더링을 합니다. fontconfig에도 비슷한 설정이 있으니 한번 해보세요. (그놈 환경이라면, 글꼴 설정에 들어가서 할 수 있고요.)

       <match target="font">
         <edit name="rgba" mode="assign"><const>rgb</const></edit>
       </match>
nulluser의 이미지

이크, 제가 설명이 부족했군요.
rgba는 rgb로 설정했고, freetype의 옵션 중에 BCI도 enable해서 설치했네요.
그리고 peremen님이 말씀하신 lcd filter 패치도 적용한 상태입니다.

맑은고딕은 리눅스와 윈도에서의 차이가 나눔글꼴에 비해 아주 작습니다.

<img src="http://img100.imageshack.us/img100/8259/mgr09hq7.png" alt="" class="bb-image" />
: Regular 9
 
<img src="http://img100.imageshack.us/img100/438/mgb09rv3.png" alt="" class="bb-image" />
: Bold 9
 
<img src="http://img441.imageshack.us/img441/1126/mgr24ck4.png" alt="" class="bb-image" />
: Regular 24
 
<img src="http://img441.imageshack.us/img441/2198/mgb24xa1.png" alt="" class="bb-image" />
: Bold 24
보다시피 나눔글꼴의 차이에 비해 맑은고딕은 차이가 전혀 없다고 말해도 무방할 만큼 흡사합니다.
그렇다면, 안티알리아스 알고리듬과 폰트의 문제가 되는 건가요? :-(

noblepylon님이 소개해주신 GDI++는 처음 보는데다 흥미롭습니다만 저는 윈도의 안티알리아스가 좀 더 마음에 드네요. 소개해주셔서 고맙습니다.

김도현의 이미지

나눔글꼴 볼드체의 이름정보에 문제가 있어서 리눅스에서는 볼드체를 볼드체로 인식하지 못하고 있는듯 합니다. 위 그림의 모양은 본래의 볼드체를 렌더링한 것이 아니라 레귤러체를 fakebold 처리하여 보여주고 있는 것입니다. 분명 이것은
http://kldp.org/node/98704#comment-461178 이 포스트가 제기한 문제와 유관하다고 봅니다.

이를 해결하려면 나눔글꼴 볼드체의 이름정보를 수정해야 하는데 라이선스상 이는 오직 저작권자만 할 수 있으므로 네이버가 수정판을 내놓기 전까지 그냥 참고 쓰든가 아니면 각자 알아서 고쳐 쓰실 수밖에 없습니다.

김도현의 이미지

만족스럽게 고치고 싶은 것 다 고친 건 아니지만 최소한의 수정만을 나름대로 가해보았습니다.
우선 작업에 들어가기 전에 fonttools를 설치해야 합니다.

sudo apt-get install fonttools

그리고 작업을 시작합니다. 우선 홈디렉토리에 나눔 볼드 글꼴 두 개를 복사해 놓았습니다. 이후 제가 작업한 절차를 그대로 옮겨봅니다.

nomos@debian:~$ ttx -t OS/2 NanumGothicBold.ttf
Dumping "NanumGothicBold.ttf" to "NanumGothicBold.ttx"...
Dumping 'OS/2' table...
nomos@debian:~$ cp NanumGothicBold.ttx NanumGothicBold.ttx.orig
nomos@debian:~$ vi NanumGothicBold.ttx
nomos@debian:~$ diff NanumGothicBold.ttx.orig NanumGothicBold.ttx
7c7
&lt;     &lt;usWeightClass value="400"/&gt;
---
&gt;     &lt;usWeightClass value="700"/&gt;
nomos@debian:~$ ttx -t name NanumGothicBold.ttf
Dumping "NanumGothicBold.ttf" to "NanumGothicBold#1.ttx"...
Dumping 'name' table...
nomos@debian:~$ cp NanumGothicBold#1.ttx NanumGothicBold#1.ttx.orig
nomos@debian:~$ vi NanumGothicBold#1.ttx
nomos@debian:~$ diff NanumGothicBold#1.ttx.orig NanumGothicBold#1.ttx
9c9
&lt;       NanumGothic Bold
---
&gt;       NanumGothic
12c12
&lt;       Regular
---
&gt;       Bold
57c57
&lt;       &amp;#45208;&amp;#45588;&amp;#44256;&amp;#46357; Bold
---
&gt;       &amp;#45208;&amp;#45588;&amp;#44256;&amp;#46357;
60c60
&lt;       Regular
---
&gt;       Bold
nomos@debian:~$ ttx -t OS/2 -m NanumGothicBold.ttf  NanumGothicBold.ttx
Compiling "NanumGothicBold.ttx" to "NanumGothicBold#1.ttf"...
Parsing 'OS/2' table...
nomos@debian:~$ ttx -t name -m NanumGothicBold#1.ttf NanumGothicBold#1.ttx
Compiling "NanumGothicBold#1.ttx" to "NanumGothicBold#2.ttf"...
Parsing 'name' table...
nomos@debian:~$ mv NanumGothicBold#2.ttf .fonts/NanumGothicBold.ttf 
 
nomos@debian:~$ ttx -t OS/2 NanumMyeongjoBold.ttf 
Dumping "NanumMyeongjoBold.ttf" to "NanumMyeongjoBold.ttx"...
Dumping 'OS/2' table...
nomos@debian:~$ cp NanumMyeongjoBold.ttx NanumMyeongjoBold.ttx.orig
nomos@debian:~$ vi NanumMyeongjoBold.ttx
nomos@debian:~$ ttx -t name NanumMyeongjoBold.ttf
Dumping "NanumMyeongjoBold.ttf" to "NanumMyeongjoBold#1.ttx"...
Dumping 'name' table...
nomos@debian:~$ cp NanumMyeongjoBold#1.ttx NanumMyeongjoBold#1.ttx.orig
nomos@debian:~$ vi NanumMyeongjoBold#1.ttx
nomos@debian:~$ diff NanumMyeongjoBold#1.ttx.orig NanumMyeongjoBold#1.ttx
9c9
&lt;       NanumMyeongjo Bold
---
&gt;       NanumMyeongjo
12c12
&lt;       Regular
---
&gt;       Bold
57c57
&lt;       &amp;#45208;&amp;#45588;&amp;#47749;&amp;#51312; Bold
---
&gt;       &amp;#45208;&amp;#45588;&amp;#47749;&amp;#51312;
60c60
&lt;       Regular
---
&gt;       Bold
nomos@debian:~$ ttx -t name -m NanumMyeongjoBold.ttf NanumMyeongjoBold#1.ttx
Compiling "NanumMyeongjoBold#1.ttx" to "NanumMyeongjoBold#1.ttf"...
Parsing 'name' table...
nomos@debian:~$ mv NanumMyeongjoBold#1.ttf .fonts/NanumMyeongjoBold.ttf 
nomos@debian:~$ fc-cache 
nomos@debian:~$ fc-list |grep -i nanum
나눔명조,NanumMyeongjo:style=Bold
나눔고딕,NanumGothic:style=Bold
나눔명조,NanumMyeongjo:style=Regular
나눔고딕,NanumGothic:style=Regular

나눔명조 볼드는 OS/2 테이블에 이미 볼드라는 정보를 가지고 있어서 name 테이블만 수정하였습니다. 어쨌든 이렇게 수정하니 볼드체가 좀더 보기 좋아졌습니다.

nulluser의 이미지

고맙습니다.
간단히 해결됐네요.

netkiss의 이미지

좀전에 적용해봤는데, 이제 볼드도 엄청 깔끔하게 나옵니다. 감사합니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 20081013-nanumgothic.png266.75 KB
yjcho의 이미지

최근에 시스템을 새로 설치하고 나눔글꼴을 설치하기 위해서 이 글을 보고 다시 똑 같이 따라했는데, 네이버에서 글꼴을 업데이트 했는지 수정할 위치가 맞지 않아요.

다시 한 번 봐주실 수 있을까요?

nulluser의 이미지

나눔글꼴이 조금 수정됐나 봅니다.
버전을 올리면서 이 문제도 해결했으면 좋았을 텐데...

하여튼 김도현님의 글을 따라서 해봤습니다.
어쨌든 저는 잘 되네요.

제가 수정한 글꼴의 버전은 1.500입니다.

69c69
<       NanumGothic Bold
---
>       NanumGothic
72c72
<       &#45208;&#45588;&#44256;&#46357; Bold
---
>       &#45208;&#45588;&#44256;&#46357;
75c75
<       Regular
---
>       Bold
78c78
<       Regular
---
>       Bold
69c69
<       NanumMyeongjo Bold
---
>       NanumMyeongjo
72c72
<       Regular
---
>       Bold
114c114
<       &#45208;&#45588;&#47749;&#51312; Bold
---
>       &#45208;&#45588;&#47749;&#51312;
117c117
<       Regular
---
>       Bold
김도현의 이미지

요즘엔 귀찮아서 앞부분만, 즉 OS/2 테이블의 weight 정보를 400에서 700으로 고치는 작업만 해서 쓰고 있습니다(적어도 그렇게 기억합니다). 글꼴 이름 수정은 손대지 않아도 별 문제 없이 잘 나오더군요. 다른 분들은 어떠신지...

agstanti의 이미지

업체에서는 왜 이러한 오류를 수정하지 않는지...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.