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>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
자유글 한국어 문장 부호와 LaTeX
2024.10.05 10:20
LaTeX으로 한국어 문서를 자유롭게 조판할 수 있게 된 지 벌써 30년 가까이 되었고, 2007년 LaTeX에서 한국어 문서를 조판할 때 쓰이는 표준 패키지인 ko.TeX이 등장하였습니다.
그러나 아직까지도 한국어 문장 부호(낫표, 화살괄호, 가운뎃점, 줄임표. 엄격하게 생각하면 물결표와 줄표까지도 포함할 수 있을 것입니다.)를 입력하는 통일된 방법은 등장하지 않았습니다. 현재까지 한국어 관련 패키지에서 찾을 수 있는 문장 부호 관련 명령어는 아래가 전부입니다.
- xetexko와 luatexko의 \hellipsis: 가운뎃점 6개짜리 줄임표를 조판합니다. 그러나 패키지 안내서에는 언급조차 되어 있지 않습니다.
- oblivoir의 \bnm, \snm, \cnm, \ccnm: 낫표와 화살괄호를 조판할 수 있습니다. 그러나 ko.TeX에 포함되어 있지 않아 다른 클래스를 사용할 때에는 정의를 복사해 오든 해야 합니다.
- oblivoir의 \cntrdot과 \cntrdots: 각각 가운뎃점과 3점 줄임표를 조판합니다.
- oblivoir의 \exprpunc: 특수한 문법을 사용하여 줄표를 조판합니다.
- kskorsymb 패키지: 문자 "를 활성(active) 문자로 변경한 후 이를 사용하여 한국어 문장 부호를 조판합니다. 아직 CTAN이나 TeX Live에 등록되어 있지 않아 접근성이 상대적으로 떨어집니다. 또 구현 방식으로 인해 다른 패키지와 충돌이 발생할 수 있습니다.
따라서, 한국어 문장 부호를 조판할 때의 문제점을 정리하면 아래와 같습니다.
- 가운뎃점, 낫표, 화살괄호를 조판하려면 oblivoir 클래스를 사용하거나 kskorsymb 패키지를 사용해야 합니다.
- 레거시 엔진에서 \~{}나 \textasciitilde는 한국어의 물결표가 아닌 틸데 악센트를 조판합니다.
- 줄표는 ---로 입력할 수 있지만, 개행 처리 등이 옳게 된다고 보장할 수 없습니다.
- 줄임표는 레거시 엔진에서 올바르게 입력하기 까다롭습니다. (문서에서 영어 등을 혼용한다면 그 언어에서 사용하는 줄임표 모양과도 충돌할 수 있습니다.)
저도 한국어 문장 부호를 조판하기 위한 kopunct 패키지를 작성하였지만, 패키지 안내서조차 아직 작성되지 않은 작은 패키지일 뿐입니다.
LaTeX에서 한국어 문장 부호를 조판하기 위한 통일된 방안을 만든다면 (위에 나열한 현재 클래스/패키지를 참고하였을 때) 어느 방향으로 가는 것이 편의성이나 호환성 등에서 적절할지 여러분의 의견이 궁금합니다.
(수학 기호를 논외로 한다면) 키보드에서 직접 입력할 수 없거나 어려운 문자와 부호를 매크로를 통하여 입력하는 것은 어떤 의미에서 예전 TeX의 유물이라고 할 것입니다. 유니코드 시대인 오늘날, 잘못 입력되거나 인코딩의 혼선으로 식자 오류가 발생할 가능성이 거의 없다고 보아도 좋을 것이기에, 굳이 매크로를 통하여 문장부호나 낯선 문자를 입력하지 않아도 식자에 아무런 문제가 없습니다.
예전에 yihoze께서 이같은 견해를 피력하신 바가 있고 저도 그렇게 생각합니다. yihoze님은 특히 부호 문자(Symbol)을 입력하는 매크로를 새로 정의하는 일에 회의적인 의견을 보이셨는데 새겨들을 가치가 있는 견해입니다.
문장부호 같은 것의 입력 편의성은 입력기와 편집기가 감당해야 할 분야이겠습니다. Windows 기본 한글 입력기가 KS X 1001의 기호 문자를 입력하는 방법(ㄱ, ㄴ, ... + 한자키)을 제공하거나 한/글 워드 프로세서가 Ctrl-F10 문자표를 제공하는 것 같은 것이 그런 것일테지요.
따라서, 문장부호 입력 방법을 LaTeX 패키지가 굳이 제공할 필요는 크지 않다고 봅니다. 그래도 매크로 입력에 익숙한 분들이야 이런 매크로가 있으면 감사히 쓸 것이고 또 긴 글을 쓰는 데 혹시 kskorsymb 같은 게 조금이라도 도움이 된다면 다행이다, 그런 정도의 생각을 가지고 있습니다. 이미 다양한 해결책이 나와 있으며 또 자작의 해법도 많은 형편이니, 그런 가운데서 가장 편하고 익숙한 방법으로 문서를 작성하면 되겠습니다. 그리고 지나치게 많은 문장부호 명령을 기반 한글 처리 패키지가 제공할 필요도 크지 않을 겁니다. 이것은 어디까지나 필요에 따라 이용할 수 있는 형식이면 되겠지요. 그보다는 입력기나 편집기가 문장부호 따위의 입력을 더 잘 도와주기를 바랍니다.
kskorsymb를 만든 건 사실 맥의 기본 한글 입력기로 "특수문자"를 입력하는 것이 조금 짜증스러워서이기도 했습니다. Ctrl-Cmd-Space 후에 뭘 골르고 하는 게 귀찮았어요. 구름입력기가 ㄱ, ㄴ 키와 Opt=Enter로 (Windows 입력기처럼) 동작하는 것에 익숙해 있다 보니 기본 입력기만 설치된 기계에서 당황한 경험이 있었던 것이 이런 이상한(?) 패키지를 만든 계기 중의 하나입니다.
최근 ksmisc (KPR)를 업데이트하면 kopunctcompat라는 작은 패키지 하나가 추가되어 있는 걸 보실 수 있는데, 이것은 애플민트초콜릿 님의 kopunct와 oblivoir의 문장부호 명령을 호환되게 한 것입니다. oblivoir를 오래 써온 분이 kopunct를 쓰거나 kopunct만 쓰던 분이 oblivoir 문서를 만들어야 할 때 명령어가 호환되지 않아서 귀찮은 걸 조금 줄여줄지도 모르겠습니다.