ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 다국어 식자를 위한 ucharclasses 패키지
    TeX과 친구들 2022. 2. 11. 12:09

    주피터북이 만든 텍 파일이 요상한 증상을 일으켰다. "2022년 2월 2일"이 "2022□ 2□ 2□"로 식자되었다. 한나절을 허비한 뒤에 ucharclasses 패키지가 원인이라는 것을 확인했다.

    MS 워드나 웹 브라우저와는 달리, 텍에서는 (인디자인에서도) 텍스트를 언어에 따라 특정 폰트 환경으로 감싸야 제대로 식자된다.

    \begin{japanese}
    ひむらけんしん
    \end{japanese}

    아마도 웹 브라우저는 식자하려는 글자가 현재 폰트에 없으면 다른 폰트에서 글자를 찾는 방식으로 작동할 것이다. 고려해야 할 여러 요소들이 있겠으나, 텍이 그렇게 하지 못할 이유가 있을까? 언젠가는 누군가 이것을 구현하는 패키지를 만드리라 기대했는데, ucharclasses가 바로 그것이다.

    \usepackage[Japanese]{ucharclasses}
    \usepackage{fontspec}

    \setmainfont{Noto Serif}
    \newfontfamily\hiraganafont{Noto Serif JP}
    \newfontfamily\kanjifont{Noto Sans JP}
    \setTransitionsFor{Hiragana}{\hiraganafont}{\rm}
    \setTransitionsFor{CJKUnifiedIdeographs}{\kanjifont}{\rm}

    \begin{document}
    Normal text 後 で 使用 するために、この 取扱説明書 を 保管 してください。 and \textbf{bold text 後 で 使用 するために、この 取扱説明書 を 保管 してください。}
    \end{document}

    단어의 첫 글자가 속하는 유니코드 영역을 확인한 다음에 단어 전체를 지정된 폰트로 식자하는 것으로 보인다. 그래서 히라가나와 한자 사이에 공백을 두어야 한다. 그렇지 않으면 단어가 한자로 시작하면 히라가나가 빠지고, 히라가나로 시작하면 한자가 빠진다. 글자마다 유니코드 영역을 확인하면 컴파일에 너무 오랜 시간이 걸릴 것이다.

    이것으로 한일 대역본 같은 것을 만들 수는 없다. 그저 다양한 언어의 짤막한 텍스트들을 인용할 때 요긴할 것이다.

    'TeX과 친구들' 카테고리의 다른 글

    마프 (Marp)  (0) 2022.03.29
    스핑크스의 레이텍 색인 스타일  (0) 2022.03.17
    토터스 태거 (Tortoise Tagger)  (0) 2021.11.16
    장을 강조하는 차례 스타일  (0) 2021.10.01
    프린팅박스  (0) 2021.09.03

    댓글

Designed by Tistory.