CP949한글 (rev. 1.10)

EDRSPIHCRSSRSS

CP949한글

1. CP949, EUC-KR

마이크로소프트 사가 도입한 코드페이지로서 KS C 5601 (완성형 한글)을 표현한 코드페이지였다가 윈도 95부터 통합형 한글 코드(UHC)로 확장되어 현대 한글 전부를 포함하게 되었다. 위키백과의 코드페이지949 항목 참조.

EUC-KR은 KS X 1001에 정의된 한글 문자(완성형 한글)의 인코딩 방식이다. 한글은 현대 한글 중 2350자만으로 이루어진다. CP949는 EUC-KR을 확장한 것이다. 즉 CP949의 UHC는 유니코드 한글 음절 영역의 현대 한글 완성형 문자 집합과 그 표현범위가 같지만 인코딩 방법은 다르다.

2. 한글 라텍과 EUC-KR

초창기 한글 라텍은 EUC-KR 완성형 한글을 기준으로 만들어졌다. hLaTeXp, HLaTeX이 모두 그러하였다. 당시 소위 "조합형" 한글이 라텍 매크로에서 시도된 적은 없다. 8비트 문자(만)을 처리할 수 있는 텍 엔진 자체의 한계 때문에 2바이트 문자인 한글을 처리하기 위해서 (지금 생각하면) 온갖 편법과 꼼수가 난무하는(?) 방식으로 겨우겨우 한글을 처리할 수 있었기 때문에 16비트 문자까지 텍의 처리 능력을 확장하려 한 오메가(람브다)에 대하여 기대가 컸으며, 실제로 은광희의 HLaTeX 1.0은 Lambda에서 동작하는 한글 텍을 만들기도 하였다. HLaTeX-Lambda는 CP949의 UHC 한글, 즉 "모든 현대 한글 11172자"를 처리할 수 있었다.[1] 오메가와 람브다가 그다지 널리 쓰이지 못하고 사장된 후,[2] XeTeXLuaTeX이 등장하여 유니코드를 자연스럽게 처리할 수 있게 됨에 따라, 한글 표현 문제는 최종적으로 해결을 보게 된다.
----
  • [1] 유니코드 인코딩도 지원하였다. HLaTeX-Lambda는 DHHangul과 더불어 한글 표현 능력을 확장한 최초의 사례로 기억되어야 한다.
  • [2] 현재 TeX Live 2013에는 omega, lambda가 없다. 그 대신 aleph, lamed가 남아 있어서 예전 Lambda 매크로들을 여전히 돌려볼 수 있다.

3. 라텍에서 사용하기

CP949 인코딩된 한글 문자를 라텍으로 처리하는 방법은 다음과 같다. XeTeX이나 LuaTeX에서는 CP949 한글도 유니코드 한글처럼 자연스럽게 처리한다.

3.1. 레거시 텍

레거시 텍에서는 EUC-KR 범위의 한글밖에 처리하지 못한다. 이 방법은 비교적 낡은 것으로 권장하지 않는 것들이다. 어떤 경우든 UTF-8 유니코드 입력의 한글을 사용하는 것이 권장사항이지만 특히 레거시 텍의 경우에는 EUC-KR 한글을 처리하는 방법이 자연스럽지 못하므로 이런저런 한계(문제점)가 있을 수 있다.

  • ko.TeX-euc 패키지를 사용한다.
    • kotex 사설 저장소를 등록한 후
    • tlmgr install kotex-euc unfonts-base 명령으로 kotex-euc와 untype1을 설치한다.
    • 문서의 처음에
      \usepackage[euc]{kotex}


  • CJK 패키지를 이용한다.
    • 다음과 같이 소스를 작성한다.
      \usepackage{CJK}
      ...
      \begin{CJK}[HL]{KS}{}
      한글 문자
      \end{CJK}
    • [HL] 옵션은 uhc type1 글꼴을 사용한다는 의미인데 현재 (TeX Live 설치만으로) 사용할 수 있는 한글 글꼴은 이것뿐이다.

3.2. XeTeX

  • xetexko를 통하여 CP949 한글을 처리할 수 있다.
  • 다음 선언을 문서의 처음에 적어준다.
     \XeTeXinputencoding="korean"
     \XeTeXdefaultencoding="korean"
  • 한글, 한자, 기호문자 등을 CP949 인코딩으로 처리할 수 있다.

3.3. LuaTeX

  • luatexko를 통하여 CP949 한글을 처리할 수 있다.
  • 다음 선언을 내려준다.
    \luatexuhcinputencoding=1
  • 한글, 한자, 기호 문자 등을 처리할 수 있다.

4. CP949한글 인코딩을 지시하는 TeXworks magic comment

  • 윈도우즈에서 texwork의 magic comment를 다음과 같이 지정한다.
    %!TEX encoding = cp949
    
    • 만약 cp949 인코딩을 TeXworks가 이해하지 못하면 system을 지정한다.
  • Linux 또는 Mac에서는 texwork magic comment를 다음과 같이 지정한다.
    %!TEX encoding = cp949
    
  • Mac의 TeXshop에서는 magic comment를 다음과 같이 한다.
    %!TEX encoding = MacKorean
    
    • 단, 이 설정으로는 TeXworks에서 파일을 열 수 없으며 다른 운영체제로 가져가도 역시 읽을 수 없다. 오직 TeXshop에서만 된다. 한편 cp949나 euc-kr 인코딩을 지정한 파일은 TeXworks에서는 읽을 수 있으나 TeXshop으로는 읽을 수 없다.