KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
  • TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
    • 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
  • 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.

정보글 한글 폰트 설정하기. hangulfontset.

2014.06.09 21:38

nanim 조회 수:17965

XeTeX, LuaTeX이 도입된 이래 한글 폰트를 맘대로 쓸 수 있게 되어서 좋습니다.

그런데 의외로 \setmain... 어쩌구 하는 한글 폰트 설정 명령에 애를 먹는 분들이 계신가봐요.

사실 어렵지는 않은데 귀찮다고 할 수 있겠죠.


간단한 패키지를 하나 만들었습니다. 이름하여 hangulfontset.sty.


(1) 나눔글꼴 설정

\usepackage{hangulfontset} => 이것은 \usepackage[default]{hangulfontset}과 같습니다. 나눔명조/나눔고딕 한글이 설정됩니다.

\usepackage[defaultx]{hangulfontset} => 명조체 한글이 ExtraBold가 됩니다.

\usepackage[barun]{hangulfontset}  => 고딕체가 나눔바른고딕이 됩니다. (당연히 글꼴은 설치되어 있어야 합니다.)

\usepackage[barunx]{hangulfontset} => 고딕체를 나눔바른고딕으로 하고 명조체 볼드가 ExtraBold.

여기까지는 명조체에 한자가 나오지 않습니다.

\usepackage[nanum]{hangulfontset} => ExtraBold 명조와 한자. 한자는 NanumGothic의 것을 찍습니다.


(2) 사전설정된 글꼴 집합

\usepackage[hcr]{hangulfontset} => 함초롬LVT.


(3) 한글 글꼴 설정하기

[auto] 옵션: 볼드체를 자동으로 탐색합니다. 당연히 글꼴 가족이 정의되지 않은 글꼴에서는 찾기에 실패하므로 볼드도 그냥 보통체로 찍힙니다.

[user] 옵션; 볼드를 지정하면 그 글꼴을 쓰고 볼드의 지정이 없으면 FakeBold합니다. FakeBold가 xetex에서만 되는 건 다 아실테고요. 특히 이 옵션은 bold까지 모두 사용자가 지정해줄 때 씁니다.

[mj, mjbold, gt, gtbold] 각각의 글꼴 이름을 써넣습니다. 되도록 포스트스크립트 이름을 쓰는 것을 추천합니다. 예를 들면

\usepackage

[user,mj={HCRBatangLVT},mjbold={HCRBatangLVT-Bold},gt={HCRDotumLVT},gtbold={HCRDotumLVT-Bold}]

{hangulfontset}


auto나 user를 쓸 때, mj만 지정하면 gt 폰트도 이 폰트 설정을 따라갑니다. 반면 gt만 설정하는 것은 mj에 영향을 주지 않습니다.


(4) 한자 글꼴

한자 글꼴을 별도로 지정하려면 [hanja] 옵션을 활성화하거나 [hanjabyhangul]을 주어야 합니다.

[hanja]를 선언한 후에는 hjmj, hjmjbold, hjgt, hjgtbold를 지정할 수 있으며, auto 옵션이 주어지면 hjmj로 볼드체를 자동으로 찾으려 합니다. user 옵션이 주어지면 hjmjbold가 있는 것이 좋고 없으면 FakeBold합니다.


[hanjabyhangul]은 되도록 한글 글골에서 한자를 찾으려합니다만 한자가 없는 글꼴이라면 도리없겠죠.


* \fallbackhanjafont나 \fallbackhangulfont 등 fallback 폰트관련 사항은 이 패키지에서 지원하지 않습니다.

* setmonohangulfont 계열도 지원하지 않습니다. 필요하면 직접 써넣으세요.


(5) 속성의 추가

일단 이 패키지로 글꼴을 설정하면 FakeSlant가 동작합니다. (BoldItalic은 설정하지 않았습니다. 이게 필요할까요? 의견이 있으시면 반영하고요.)

Ligatures=TeX을 기본적으로 넘겨줍니다.

이 이외에 추가적인 font feature를 지정하려면, feature 옵션을 이용합니다.

\usepackage[feature={Color=blue}]{hangulfontset}


mjfeature와 gtfeature로 따로 구분하여 지정할 수도 있습니다. WordSpace라든가, interhchar라든가... 필요한 게 있으면 이 옵션을 이용하세요.


===

hcr을 기본 한글 폰트로 하고 한자 폰트만 mj/gt로 각각 부여해본 경우입니다.


\usepackage

    [hcr,hanja,hjmj={DX해서M.ttf},hjgt={MalgunGothic}]

    {hangulfontset}


KoPub으로 설정해본 예입니다.

\usepackage[user,  %% KoPub은 bold체를 지동으로 못 찾습니다.
   mj={KoPubBatangLight},
   mjbold={KoPubBatangBold},
   gt={KoPubDotumMedium},
   gtbold={KoPubDotumBold},
   hanjabyhangul,
   mjfeature={WordSpace=1.2,interhchar=-.03em},
   gtfeature={WordSpace=1.1}]
   {hangulfontset}
 


===

사용해보시고 이상동작, 기능개선 등이 필요하면 답글을 달아주세요.





XE Login