Difference between r1.10 and the current
@@ -6,8 +6,8 @@
EUC-KR은 KS X 1001에 정의된 한글 문자(완성형 한글)의 인코딩 방식이다. 한글은 현대 한글 중 2350자만으로 이루어진다. CP949는 EUC-KR을 확장한 것이다. 즉 CP949의 UHC는 유니코드 한글 음절 영역의 현대 한글 완성형 문자 집합과 그 표현범위가 같지만 인코딩 방법은 다르다.
== 한글 라텍과 EUC-KR ==
XeTeX과 LuaTeX이 등장하여 유니코드를 자연스럽게 처리할 수 있게 됨에 따라, 한글 표현 문제는 최종적으로 해결을 보게 된다.
[[Footnote]]
== 한글 라텍과 EUC-KR ==
초창기 한글 라텍은 EUC-KR 완성형 한글을 기준으로 만들어졌다. [hLaTeXp], [HLaTeX]이 모두 그러하였다. 당시 소위 "조합형" 한글이 라텍 매크로에서 시도된 적은 없다.
8비트 문자(만)을 처리할 수 있는 텍 엔진 자체의 한계 때문에 2바이트 문자인 한글을 처리하기 위해서 (지금 생각하면) 온갖 편법과 꼼수가 난무하는(?) 방식으로 겨우겨우 한글을 처리할 수 있었기 때문에 16비트 문자까지 텍의 처리 능력을 확장하려 한 오메가(람브다)에 대하여 기대가 컸으며, 실제로 은광희의 [HLaTeX] 1.0은 Lambda에서 동작하는 한글 텍을 만들기도 하였다. HLaTeX-Lambda는 CP949의 UHC 한글, 즉 "모든 현대 한글 11172자"를 처리할 수 있었다.[[FootNote(유니코드 인코딩도 지원하였다. HLaTeX-Lambda는 DHHangul과 더불어 한글 표현 능력을 확장한 최초의 사례로 기억되어야 한다.)]]
초창기 한글 라텍은 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]]
@@ -54,11 +54,26 @@
* 윈도우즈에서 texwork의 magic comment를 다음과 같이 지정한다. {{{
%!TEX encoding = cp949
}}}
* 만약 cp949 인코딩을 TeXworks가 이해하지 못하면 system을 지정한다.
* Linux 또는 Mac에서는 texwork magic comment를 다음과 같이 지정한다. {{{
%!TEX encoding = cp949
}}}
%!TEX encoding = cp949
}}}
%!TEX encoding = cp949
}}}
* Mac의 TeXshop에서는 magic comment를 다음과 같이 한다. {{{
%!TEX encoding = MacKorean
* Mac의 TeXShop에서는 magic comment를 다음과 같이 한다. {{{
%!TEX encoding = DOSKorean
}}} * 단, 이 설정으로는 TeXworks에서 파일을 열 수 없으며 다른 운영체제로 가져가도 역시 읽을 수 없다. 오직 TeXshop에서만 된다. 한편 cp949나 euc-kr 인코딩을 지정한 파일은 TeXworks에서는 읽을 수 있으나 TeXshop으로는 읽을 수 없다.
* 단, 이 설정으로는 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 패키지 ==
[["유니코드 한글을 이용하지 않는 스타일"]]
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이 모두 그러하였다. 당시 소위 "조합형" 한글이 라텍 매크로에서 시도된 적은 -없다-.[1]
8비트 문자(만)을 처리할 수 있는 텍 엔진 자체의 한계 때문에 2바이트 문자인 한글을 처리하기 위해서 (지금 생각하면) 온갖 편법과 꼼수가 난무하는(?) 방식으로 겨우겨우 한글을 처리할 수 있었기 때문에 16비트 문자까지 텍의 처리 능력을 확장하려 한 오메가(람브다)에 대하여 기대가 컸으며, 실제로 은광희의 HLaTeX 1.0은 Lambda에서 동작하는 한글 텍을 만들기도 하였다. HLaTeX-Lambda는 CP949의 UHC 한글, 즉 "모든 현대 한글 11172자"를 처리할 수 있었다.[2]
오메가와 람브다가 그다지 널리 쓰이지 못하고 사장된 후,[3]
XeTeX과 LuaTeX이 등장하여 유니코드를 자연스럽게 처리할 수 있게 됨에 따라, 한글 표현 문제는 최종적으로 해결을 보게 된다.
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 설치만으로) 사용할 수 있는 한글 글꼴은 이것뿐이다.
- 다음과 같이 소스를 작성한다.
4. 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
4.1. encoding = system
에 관하여 ¶
- 한글 윈도우에서
encoding = system
은 CP949를 의미한다. 한글 윈도우가 아닌 다른 언어의 윈도우에서는 전혀 다른 의미(해당 언어의 코드페이지)가 되며 맥이나 리눅스 등의 운영체제에서는 그 시스템의 로케일을 의미한다. 즉, encoding = system을 지정한 한글 문서는 한글 윈도 이외의 어떤 시스템에서도 제대로 읽을 수 없다. - 따라서, 한글 CP949 또는 EUC-KR을 표현하기 위하여 system 인코딩을 지정하는 것은 피해야 한다.
- 그러나 MiKTeX의 TeXworks와 같이 cp949도 euc-kr도 이해하지 못하는 경우에 부득이하게 개인 용도로 이 인코딩을 지정해야 할 수 있으나, 공동작업이나 공개를 위해서는 해당 인코딩 지정 부분을 삭제하고 유포해야 할 것이다.
5. TeXWorks에서 CP949 한글 문서를 읽어오기 ¶
- texworks의 기본 문자셋이 UTF-8이기 때문에 magic comment가 없는 CP949 파일을 불러오면 다음 그림과 같이 한글이 "깨져" 보인다.(아래 그림은 질문답변 게시판에 올라온 글에 첨부된 것이다.)
- 이렇게 열린 상태에서 절대로 저장하지 말고 인코딩을 바꾸어서 새로 읽어들인다.
- texworks 편집창 오른쪽 아래에 UTF-8이라고 적힌 작은 단추가 있습니다. 이것을 눌러 cp949를 선택한 다음, 다시 한번 더 눌러서 목록 맨 위 “선택한 인코딩을 써서 다시 읽기” 를 클릭합니다. 주의할 것은 이러면 팝업창이 뜨는데 여기서 “예”를 선택해야 한다는 겁니다. 링크
- 한글이 제대로 보이는 상태에서 cp949 magic comment를 문서의 처음 부분에 붙인 다음 저장한다.
%!TEX encoding = cp949