xelatex 엔진에서 작은 따옴표를 ' (U+0027, AOSTROPHE)로써 표시할 때와 ’ (U+2019, RIGHT SINGLE QUOTATION MARK)로써 표시할 때 작은 따옴표 이후 공백에 차이가 있습니다. U+2019를 사용하면 상당한 공백이 있어 마치 띄어쓰기를 한 듯한 느낌을 줍니다.
* 유니코드 참조: https://unicode-table.com/kr/sets/quotation-marks/
\documentclass[12pt]{article} \usepackage{kotex} \begin{document} \xetexkofontregime{latin}[cjksymbols=hangul] \setmainfont{Times} \setmainhangulfont{UnBatang} \addhangulfontfeature{Color=FF0000} 레이텍'은 % U+0027 레이텍’은 % U+2019 \end{document}
라틴과 한글 부호를 구별하기 위해 한글은 빨간 색으로 표시되도록 하였습니다. 첨부된 스크린샷을 보시면 U+0027 사용 시에는 영문이 적용되고 작은따옴표 다음 공백이 없는 반면, U+2019를 사용할 때 한글이 적용되고 추가적인 공백이 있습니다. 이 추가 공백을 제거할 방법이 있을까요?
참고로, 한글 부호들(예를 들어 겹낫표)을 많이 사용하므로 cjksymbols는 한글을 사용해야 합니다. 사실, cjksymbols=latin으로 해도 영문 폰트만 적용될 뿐, 작은따옴표 다음 공백은 여전히 있습니다. 그리고 PDF 파일에서 텍스트 선택을 해 보면 실제로 작은따옴표 다음에 스페이스가 있는 것으로 나타납니다.
감사합니다.
추가
texlive/2021/texmf-dist/tex/xetex/xetexko/xetexko.sty 파일에서 연관이 있을 만한 부분을 살펴 보았습니다. 다음과 같이 했더니 따옴표(큰따옴표, 작은따옴표)는 해결이 되는군요. 다른 곳에서 문제가 발생할지는 모르겠습니다.
\makeatletter \def\XeKo@startOP#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined %\def\XeKo@currclass{15}% % 여기 코멘트 아웃. 따옴표 열기에 해당 \XeKo@toks@{#1}% \XeKo@def@pre@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startCL#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined %\def\XeKo@currclass{16}% % 여기 코멘트 아웃. 따옴표 닫기에 해당 \XeKo@toks@{#1}% \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \makeatother
추가 2
그렇게 하였더니 곧바로 문제가 발생하는군요. AppleMyungjo 폰트를 사용했더니 U+2019 문자 다음에 큰 공백이 만들어집니다(따옴표 여는 경우에는 앞쪽에 여백). xetexko 어느 부분에선가 따옴표 부분을 특별히 처리하도록 코딩이 되어 있지 않나 싶습니다.
추가 3
따옴표에 해당되는 클래스를 다음과 같이 바꾸었더니 ‘는 `과 똑같이 취급되고 ’는 '과 똑같이 취급됩니다. 위 추가 부분의 코드를 모두 삭제하고 다음 추가:
\XeTeXcharclass "2018=\XeTeXcharclassAO % ‘ LEFT SINGLE QUOTATION MARK \XeTeXcharclass "201C=\XeTeXcharclassAO % “ LEFT DOUBLE QUOTATION MARK \XeTeXcharclass "2019=\XeTeXcharclassAC % ’ RIGHT SINGLE QUOTATION MARK \XeTeXcharclass "201D=\XeTeXcharclassAC % ” RIGHT DOUBLE QUOTATION MARK
무슨 뜻인지는 모릅니다. 다른 문제가 발생하는지는 더 살펴봐야겠습니다.
추가 4
폰트 문제인 것 같고, xetexko가 이 문제를 해결하기 위하여 상당한 노력을 한 것으로 보입니다((`-´)>). xetexko.sty 파일을 살펴 보았더니 \XeKo@currclass 15(따옴표 열기)와 16(따옴표 닫기)은 특별한 방식으로 처리되고 있는데(\hbox to.5em\bgroup\hss \the\XeKo@toks@ \egroup), 여기서 hbox의 크기를 미세조정하면 맞출 수 있어 보이기도 합니다. 다만, 작은 따옴표와 큰 따옴표의 넓이가 달라, 두 문자를 별도의 클래스로 분리하지 않으면 현재 코드 그대로는 처리하기 쉽지 않아 보이기도 합니다. 초보자의 생각입니다.
KTUG 한국 텍 사용자 그룹