#keywords cp949,kotex,tex,레거시,문자,완성형,윈도우,유니코드,인코딩,한글,xetexko,luatexko,lambda,omega,aleph,lamed,hlatex [[TableOfContents]] == CP949, EUC-KR == 마이크로소프트 사가 도입한 코드페이지로서 KS C 5601 (완성형 한글)을 표현한 코드페이지였다가 윈도 95부터 통합형 한글 코드(UHC)로 확장되어 현대 한글 전부를 포함하게 되었다. [http://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%ED%8E%98%EC%9D%B4%EC%A7%80_949 위키백과의 코드페이지949 항목] 참조. EUC-KR은 KS X 1001에 정의된 한글 문자(완성형 한글)의 인코딩 방식이다. 한글은 현대 한글 중 2350자만으로 이루어진다. CP949는 EUC-KR을 확장한 것이다. 즉 CP949의 UHC는 유니코드 한글 음절 영역의 현대 한글 완성형 문자 집합과 그 표현범위가 같지만 인코딩 방법은 다르다. == 한글 라텍과 EUC-KR == 초창기 한글 라텍은 EUC-KR 완성형 한글을 기준으로 만들어졌다. [hLaTeXp], [HLaTeX]이 모두 그러하였다. 당시 소위 "조합형" 한글이 라텍 매크로에서 시도된 적은 ---없다---.[[FootNote(yahTeX 초기 버전이 조합형 한글을 지원하였다고 하는데 지금 그 흔적을 찾아볼 수 없다.)]] 8비트 문자(만)을 처리할 수 있는 텍 엔진 자체의 한계 때문에 2바이트 문자인 한글을 처리하기 위해서 (지금 생각하면) 온갖 편법과 꼼수가 난무하는(?) 방식으로 겨우겨우 한글을 처리할 수 있었기 때문에 16비트 문자까지 텍의 처리 능력을 확장하려 한 오메가(람브다)에 대하여 기대가 컸으며, 실제로 은광희의 [HLaTeX] 1.0은 Lambda에서 동작하는 한글 텍을 만들기도 하였다. HLaTeX-Lambda는 CP949의 UHC 한글, 즉 "모든 현대 한글 11172자"를 처리할 수 있었다.[[FootNote(유니코드 인코딩도 지원하였다. HLaTeX-Lambda는 DHHangul과 더불어 한글 표현 능력을 확장한 최초의 사례로 기억되어야 한다. [한글LaTeX패키지] 참조.)]] 오메가와 람브다가 그다지 널리 쓰이지 못하고 사장된 후,[[FootNote(현재 ["TeX Live"] 2013에는 omega, lambda가 없다. 그 대신 aleph, lamed가 남아 있어서 예전 Lambda 매크로들을 여전히 돌려볼 수 있다.)]] XeTeX과 LuaTeX이 등장하여 유니코드를 자연스럽게 처리할 수 있게 됨에 따라, 한글 표현 문제는 최종적으로 해결을 보게 된다. [[Footnote]] == 라텍에서 사용하기 == CP949 인코딩된 한글 문자를 라텍으로 처리하는 방법은 다음과 같다. XeTeX이나 LuaTeX에서는 CP949 한글도 유니코드 한글처럼 자연스럽게 처리한다. === 레거시 텍 === 레거시 텍에서는 EUC-KR 범위의 한글밖에 처리하지 못한다. 이 방법은 비교적 낡은 것으로 권장하지 않는 것들이다. 어떤 경우든 UTF-8 유니코드 입력의 한글을 사용하는 것이 권장사항이지만 특히 레거시 텍의 경우에는 EUC-KR 한글을 처리하는 방법이 자연스럽지 못하므로 이런저런 한계(문제점)가 있을 수 있다. * ["ko.TeX"]-euc 패키지를 사용한다. * [wiki:KtugPrivateRepository kotex 사설 저장소]를 등록한 후 * {{{tlmgr install kotex-euc unfonts-base}}} 명령으로 kotex-euc와 untype1을 설치한다. * 문서의 처음에 {{{#!tex \usepackage[euc]{kotex} }}} * CJK 패키지를 이용한다. * 다음과 같이 소스를 작성한다. {{{#!tex \usepackage{CJK} ... \begin{CJK}[HL]{KS}{} 한글 문자 \end{CJK} }}} * {{{[HL]}}} 옵션은 uhc type1 글꼴을 사용한다는 의미인데 현재 (TeX Live 설치만으로) 사용할 수 있는 한글 글꼴은 이것뿐이다. === XeTeX === * [xetexko]를 통하여 CP949 한글을 처리할 수 있다. * 다음 선언을 문서의 처음에 적어준다. {{{#!tex \XeTeXinputencoding="korean" \XeTeXdefaultencoding="korean" }}} * 한글, 한자, 기호문자 등을 CP949 인코딩으로 처리할 수 있다. === LuaTeX === * [luatexko]를 통하여 CP949 한글을 처리할 수 있다. * 다음 선언을 내려준다. {{{#!tex \luatexuhcinputencoding=1 }}} * 한글, 한자, 기호 문자 등을 처리할 수 있다. == CP949한글 인코딩을 지시하는 TeXworks magic comment == * 윈도우즈에서 texwork의 magic comment를 다음과 같이 지정한다. {{{ %!TEX encoding = cp949 }}} * Linux 또는 Mac에서는 texwork magic comment를 다음과 같이 지정한다. {{{ %!TEX encoding = cp949 }}} * Mac의 TeXShop에서는 magic comment를 다음과 같이 한다. {{{ %!TEX encoding = DOSKorean }}} * 단, 이 설정으로는 TeXworks에서 파일을 열 수 없으며 다른 운영체제로 가져가도 역시 읽을 수 없다. 오직 TeXShop에서만 된다. 한편 cp949나 euc-kr 인코딩을 지정한 파일은 TeXworks에서는 읽을 수 있으나 TeXShop으로는 읽을 수 없다. === {{{encoding = system}}}에 관하여 === * 한글 윈도우에서 {{{encoding = system}}}은 CP949를 의미한다. 한글 윈도우가 아닌 다른 언어의 윈도우에서는 전혀 다른 의미(해당 언어의 코드페이지)가 되며 맥이나 리눅스 등의 운영체제에서는 그 시스템의 로케일을 의미한다. 즉, encoding = system을 지정한 한글 문서는 한글 윈도 이외의 어떤 시스템에서도 제대로 읽을 수 없다. * 따라서, 한글 CP949 또는 EUC-KR을 표현하기 위하여 system 인코딩을 지정하는 것은 '''피해야 한다'''. * 그러나 MiKTeX의 TeXworks와 같이 cp949도 euc-kr도 이해하지 못하는 경우에 부득이하게 개인 용도로 이 인코딩을 지정해야 할 수 있으나, 공동작업이나 공개를 위해서는 해당 인코딩 지정 부분을 삭제하고 유포해야 할 것이다. == TeXWorks에서 CP949 한글 문서를 읽어오기 == * texworks의 기본 문자셋이 UTF-8이기 때문에 magic comment가 없는 CP949 파일을 불러오면 다음 그림과 같이 한글이 "깨져" 보인다.(아래 그림은 [http://www.ktug.org/xe/index.php?document_srl=192470 질문답변 게시판]에 올라온 글에 첨부된 것이다.) * http://www.ktug.org/xe/files/attach/images/5213/470/192/5808d5b3af33a254d40e38f27794dcc9.jpg?width=500 * 이렇게 열린 상태에서 절대로 '''저장하지 말고''' 인코딩을 바꾸어서 새로 읽어들인다. * texworks 편집창 오른쪽 아래에 UTF-8이라고 적힌 작은 단추가 있습니다. 이것을 눌러 cp949를 선택한 다음, 다시 한번 더 눌러서 목록 맨 위 “선택한 인코딩을 써서 다시 읽기” 를 클릭합니다. 주의할 것은 이러면 팝업창이 뜨는데 여기서 “예”를 선택해야 한다는 겁니다. [http://www.ktug.org/xe/index.php?document_srl=184032#comment_184260 링크] * ''한글이 제대로 보이는 상태에서'' cp949 magic comment를 문서의 처음 부분에 붙인 다음 저장한다. {{{ %!TEX encoding = cp949 }}} == EUC-KR 또는 CP949 패키지 == [["유니코드 한글을 이용하지 않는 스타일"]]