Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
inputenc, inputenx 그리고 XeTeX이나 LuaTeX
2011.10.13 23:27
다른 유저그룹 활동 중에 질문을 받고 해결하다가 궁금증이 생겨 TeX 고수님이 계시는 KTUG질문을 올립니다.
제가 알기로는 inputenc, inputenx 패키지의 목적은 (여러 encoding이 지원되지 않는) (pdf)LaTeX에서 여러 encoding을 지원하려고 생겨난 것입니다. 그래서 unicode encoding이 애초부터 지원되는 XeTeX이나 LuaTeX에서는 아예 inputenc나 inputenx 매크로 설정이 필요없어지므로 흔히 documentclass 바로 밑에 쓰던 inputenc 매크로가 xelatex 문서 template에 빠져 있다고 이해하고 있습니다.
1. 우선 위에 설명한 제 이해가 맞는 지 알고 싶고요? 제가 워낙 LaTeX 초보라 아는 게 짧습니다.
위 이해가 틀리면 조금 부연 설명을 해주시고요, 위 이해가 맞으면 아래로 더 질문이 있습니다.
2. 제가 사용하는 다른 소프트웨어(R 최근 버전 2.13.2)의 noweb generic인 Sweave명령이 TeX 소스 파일을 검사하여 inputenc/inputenx 매크로가 있으면 매크로로 설정된 encoding을 따르고 없으면 Latin-1으로 가정하여 다시 TeX 소스 파일에 덮어 쓰는 데요. 이 것은inputenc/inputenx 매크로 선언을 안 하는 XeLaTeX나 LuaTeX을 사용자에게는 한글이 깨져버리는 불상사가 일어날 수 있다고 생각되는 데요. (실제로 이 문제로 인하여 질문을 받았습니다.) encoding된 글자 그대로 아니면 (TeX) 파일 속성 자체로 encoding을 알아낼 수 있는 방법이 없나요?
3. 제가 알기로는 일부러 알려주기 전에는 text 파일의 encoding속성을 알 수 없으니, 아예 맨처음부터 utf8 encoding되었다고 가정하고 파일을 읽기 시작하면 어떤 문제가 생길까요? Windows처럼 EUC-KR(949)로 인코딩된 문서는 또 따로 문제가 생기겠지요? TeX 파일 template을 보면 % !TEX encoding = UTF-8 Unicode와 같이 comment된 command가 있는 데... 이 command는 표준화 된 것인가요?
4. 보편적인 해결책에 대해서 설명부탁드립니다.
댓글 5
-
양사장
2011.10.14 23:49
-
양사장
2011.10.14 23:53
다시 생각해보면 TeX community에 뭘 통일해달라기 보다, 쓰는 사람이 알아서 잘 쓰면 그만이라는 생각입니다.
그냥 R Sweave 명령에 encoding argument를 하나 더 집어넣으면 문제 없을 것 같다는 생각입니다.괜히 R 편하자고 TeX을 바꾸자는 것은 웃기는 얘기인 것 같고요. 하여간 많이 배웠습니다.R Sweave에 encoding 옵션 있는 걸 늦게 발견했습니다.
-
nova de hi
2011.10.15 01:37
다른 어떤 프로그램에서 pdflatex을 표준으로 생각하고 거기에 맞추어서 엑스포트 유틸리티를 만드는 것은 사실 그쪽 사정인 거지요. 그리고 라틴문자 사용권에서 xetex이 pdflatex을 대체할 가능성도 아직은 없어보이고요.
한글 처리와 관련해서 utf8 인코딩 xetex을 중시하고 있는 우리나라 사정에서는 실제로 그런 엑스포트 프로그램이 알아서 utf-8으로 하도록 조정하거나 사후에 두어 줄 삭제하거나 추가하는 후처리를 하는 수밖에 없습니다. 어떤 의미에서는 별다른 고민거리도 아니기 때문에 답변이 없었던 것 아닌가 싶습니다.
-
양사장
2011.10.15 01:51
저도 전적으로 동의합니다.
사실 ko.TeX XeTeX(또는 LuaTeX으로) 쓰면서, R Sweave 쓰고 그리고 최신 R version(2.13.2)을 쓰는 사람이 몇이나 있겠습니까? 저도 누가 물어보기 전에는 그런 일이 일어나는 줄도 몰랐고요. 헤헤... 이게 TeX community에서 답해 줄 성질의 질문 자체가 안되는 것이지요. 제가 정확한 문제를 몰라 우선 질문을 올리고 천천히 찾아보면서 알게 된 것이지요. 사실 R Sweave매뉴얼 찾아보면 나오는 얘기인데, 괜히 삥 돌아온 것이지요. 하하...
짜증나실 수도 있는 데, 너그럽게 답해 주시니 감사합니다.
-
양사장
2011.10.15 02:12
결정적인 답은TeX이나 R이나 매뉴얼을 열심히 읽어야 된다는 게 제 결론입니다.
R Sweave 매뉴얼 3장 7절을 보면 encoding 옵션이 나와 있는 데... 쩝...
TeXWorks manual r814 5장 2절을 참조하면" % !TEX encoding ..."은 TeXWorks에서만 쓰이는 것으로 TeX표준은 아닌 듯 합니다. 이렇게 되면 문제가 되는 것이 (pdf)LaTeX의 inputenc/inputenx, LuaTeX luainputenc, TeXWorks의 "% !TEX encoding =" comment string으로 각각 encoding을 알아내는 방식이 상이하고 또 (pdf)LaTeX은 default Latin-1으로 XeTeX과 LuaTeX은 default utf8으로 서로 backward/forward compatibility를 제공하지 않으니 위의 R Sweave 명령도 (encoding 옵션이 없을 때) 아직 많이 쓰이는 (pdf)LaTeX 방식 (inputenc/inputenx로 encoding을 알아내는) 지꺼리를 하게 된 것 같습니다.
제 생각에 이것은 TeX community가 먼저 해결해줘야할 사항 같은데요.일일이 매뉴얼로 tex 파일의 encoding 방식을 알리는 것보다 뭔가 통일된 encoding 파일 속성을 제공했으면 하는 바램입니다.R community도 무조건 inputenc/inputenx로 encoding을 알아낼 것이 아니라, TeX community가 통일하기 전까지는 매뉴얼로 (새로운 argument를 이용해) 파일 encoding속성을 나타내여야겠습니다.R 게시판에도 올리도록 하겠습니다.===========================================================================
To set a different encoding for a specific file one can put the following at
the beginning of that file:
% !TeX encoding = latin1
Note that without this line, you must tell TEXworks the correct encoding
manually.
===========================================================================