TeX/LaTeX와 일본어

TeX는 서양 텍스트용으로 제작되었으므로 일본어를 잘 설정하려면 전용 확장이 필요합니다. 역사에는 선택할 수 있는 여러 계열이 있지만 짧은 대답은 다음과 같습니다. 새 작업의 경우 LuaLaTeX를 사용하고 소스를 UTF-8로 저장하고 jlreq 클래스를 사용하세요. 이 페이지에서는 일본어가 특별한 이유와 어떤 계열을 선택해야 하는지 설명합니다.

일본인에게 특별한 취급이 필요한 이유

원본 TeX는 글꼴당 256자(초기에는 128자)만 주소를 지정할 수 있었습니다. 수천 개의 일본어 문자를 맞추는 것은 글꼴을 256개의 글리프 하위 글꼴로 분할하는 것과 같은 트릭을 의미합니다. 이것이 바로 일본어 지원 엔진이 만들어진 이유입니다.

조판 규칙도 다릅니다. 일본어에는 금칙(구두점, 닫는 괄호, 줄 시작 부분의 중간 점 유지, 줄 끝 부분의 여는 괄호 유지)과 일본어와 서양 텍스트 사이의 측정된 간격(\xkanjiskip), 전각 측정법 및 구두점 간격, 심지어 세로 쓰기가 필요합니다. pTeX 계열은 각 후보 브레이크(이 캐릭터가 라인 시작 또는 끝 부분에 도달하는 경우 너무 많은 페널티 포인트 등)를 채점하고 총 페널티를 최소화하는 레이아웃을 선택하여 이 모든 것을 처리합니다.

일본 엔진 제품군

진지한 일본어 지원은 이전 ASCII Corporation의 엔진인 pTeX에서 시작되었습니다. Takuji Tanaka는 그것을 Unicode 일본어로 upTeX로 확장했습니다. 이 위에 LaTeX를 놓으면 pLaTeX / upLaTeX가 생성됩니다. 두 가지 모두 전통적인 경로를 사용합니다. 즉, DVI 파일을 생성한 다음 dvipdfmx를 사용하여 PDF로 변환합니다(현재 일본 TeX 개발 커뮤니티에서 관리함).

국제적으로 확산된 현대 엔진은 이제 일본어도 처리할 수 있습니다. 주요한 것은 LuaLaTeX + luatexja인데, pTeX의 조판을 LuaLaTeX로 포팅하고, Lua 스크립팅과 OpenType/TrueType 글꼴을 직접 사용하고, DVI 없이 PDF를 출력합니다. XeLaTeX는 xeCJK를 사용하며 pdfLaTeX도 CJK (CJKutf8) 패키지를 사용하여 기본 일본어를 설정할 수 있습니다.

엔진클래스/패키지메모
upLaTeX / pLaTeXjsarticle, jlreqDVI를 통해; 세로쓰기; 전통적인; 저널에서 종종 요구하는 경우
LuaLaTeXltjsarticle, jlreq + luatexja직접 PDF, 시스템 글꼴, Unicode. 새로운 작업에 가장 적합한 기본값
XeLaTeXxeCJK + bxjsarticle 등쉬운 OpenType 글꼴
pdfLaTeXarticle + CJKutf8최소; \begin{CJK}{UTF8}{min}으로 텍스트 줄 바꿈

클래스 및 패키지

가장 현대적인 선택은 Noriyuki Abe의 jlreq 클래스입니다. W3C의 "일본어 텍스트 레이아웃 요구 사항(JLReq)"을 중심으로 설계되었으며 \documentclass{jlreq}만 필요하며 LuaLaTeX, pLaTeX 또는 upLaTeX에서 모두 실행됩니다(엔진이 자동 감지되거나 platex/uplatex/lualatex를 클래스 옵션으로 전달할 수 있음).

latex
\documentclass{jlreq}          % LuaLaTeX / upLaTeX / pLaTeX で動く
\begin{document}
こんにちは、\LaTeX! これは日本語の組版です。
\end{document}

기존 계열에서는 jsclasses(jsarticle, jsbook, pLaTeX/upLaTeX의 경우)가 표준이고 ltjsclasses(ltjsarticle 등)가 LuaLaTeX에 해당합니다. LuaLaTeX에서 일본어 글꼴을 변경하려면 luatexja-fontspec를 사용하십시오.

latex
\usepackage{luatexja-fontspec}
\setmainjfont{Noto Serif CJK JP}   % 明朝
\setsansjfont{Noto Sans CJK JP}    % ゴシック

문자 인코딩

소스를 UTF-8로 저장하세요. 이것이 현재 표준입니다. 과거에는 EUC-JP, Shift_JIS 및 ISO-2022-JP가 일반적이었지만(nkf와 같은 도구로 변환) 이제는 UTF-8을 고수하는 것이 안전한 선택입니다. upTeX 및 LuaTeX는 Unicode 기반이며 최신 pLaTeX도 UTF-8 입력을 가정합니다. 혼합된 줄 끝을 주의하세요(LF 대 CRLF).

어느 것을 선택할 것인가

  • 새롭게 시작하시나요? LuaLaTeX + jlreq (또는 ltjsarticle). 시스템 OpenType 글꼴, 직접 PDF, 강력한 Unicode.
  • 속도를 원하거나 기존 자산이 있습니까? upLaTeX + jsarticle. 일본어에 대한 빠른 빌드와 오랜 실적.
  • 귀하의 장소에서 pLaTeX를 요구하는 경우 이를 따르십시오. 일부 저널 수업에서는 pLaTeX를 가정합니다.
  • 대부분 영어이고 약간의 일본어가 있나요? XeLaTeX + xeCJK 또는 pdfLaTeX + CJK이면 충분합니다.

안전한 시동 설정

새 일본어 문서의 경우 먼저 UTF-8 소스, LuaLaTeX 및 jlreq를 사용하여 PDF를 가져옵니다. 구체적인 이유가 있는 경우에만 upLaTeX 또는 pLaTeX로 전환하십시오. 장소에 pLaTeX가 필요하거나 이전 jsarticle 소스를 상속했거나 자세한 세로 쓰기 제어가 필요한 경우입니다. 요점은 논문을 쓰려고 노력하면서 동시에 "일본인은 인쇄하지 않을 것입니다"라고 싸우지 않는 것입니다.

  • pdfLaTeX로 일본어 본문 텍스트를 작성하지 마십시오. 오류나 mojibake가 표시되면 먼저 컴파일러를 확인하세요.
  • LuaLaTeX에 ltjsarticle 또는 jlreq를 사용하는 경우 컴파일러도 LuaLaTeX인지 확인하세요.
  • 공동 저작물의 경우 README의 한 줄에 엔진, 인코딩, 클래스를 기록합니다.