문서가 항상 일본어와 영어만으로 이루어지는 것은 아닙니다. 프랑스어, 독일어, 러시아어, 그리스어, 아랍어에는 각각 하이픈 처리, 문서 문자열(“Chapter” ↔ “Chapitre”), 고유한 조판 규칙이 있습니다. LaTeX는 이를 babel(모든 엔진 지원) 또는 polyglossia(Unicode 엔진용)로 처리하고, 오른쪽에서 왼쪽으로 쓰는 문자에는 bidi가 더해집니다.
babel과 polyglossia
babel(Johannes Braams 제작)은 고전적인 선택지이며 pdfLaTeX, XeLaTeX, LuaLaTeX 모두를 지원합니다. 언어는 패키지 옵션으로 선언하고(마지막이 주 언어), 블록은 \selectlanguage{...}, 문장 중간은 \foreignlanguage{lang}{...}로 바꿉니다. 선택한 언어에 맞는 하이픈 처리를 활성화하고, 문서 문자열을 번역하며, 언어별 조판(예: 프랑스어의 ; : ! ? 앞 얇은 공백)을 적용합니다. 활발히 개발되고 있으며 Unicode 엔진에서도 기본 선택지입니다.
% babel:最後の言語がメイン / last language is the main one
\usepackage[russian,french,english]{babel}
...
\foreignlanguage{french}{Bonjour !}polyglossia는 XeLaTeX/LuaLaTeX용 대안으로, 시스템 글꼴과 복잡한 문자 체계에 적합합니다. \setmainlanguage{...} / \setotherlanguage{...}로 언어를 선언하고(보조 언어는 명시해야 함), \textarabic{...} 같은 \text<lang> 명령으로 전환합니다.
양방향 텍스트 — RTL
아랍어, 히브리어, 페르시아어 같은 오른쪽에서 왼쪽(RTL) 문자는 Unicode 엔진에서 처리합니다. bidi 패키지(XeTeX/LuaTeX용)가 방향을 제어하며, \setRTL/\setRL은 오른쪽→왼쪽 문단, \setLTR/\setLR은 왼쪽→오른쪽 문단을 만듭니다. XeTeX에서는 babel과 polyglossia 모두 bidi에 의존하며, LR/RL이 섞이는 부분에는 명시적 마크업이 필요합니다. 본격적인 양방향 조판에는 LuaLaTeX를 권장합니다. LuaTeX의 babel은 Unicode 알고리즘으로 방향을 자동 판정하고, 표와 여백 같은 레이아웃도 반전합니다.
% XeTeX / LuaTeX
\usepackage{bidi}
\setRTL % 以降を右→左に / switch to right-to-left언어별 지원
babel/polyglossia는 프랑스어, 독일어, 이탈리아어, 스페인어, 포르투갈어, 러시아어, 그리스어, 아랍어, 중국어, 한국어 등 많은 언어를 지원합니다. 각 언어의 하이픈 처리, 문서 문자열, 관례를 더합니다. 라틴 문자가 아닌 문자(러시아어/키릴, 그리스어, 아랍어)는 적절한 글꼴이 필요합니다. 가장 쉬운 것은 XeLaTeX/LuaLaTeX + 시스템 글꼴(fontspec)이고, pdfLaTeX에서는 맞는 fontenc를 사용합니다(키릴은 T2A, 그리스어는 LGR). CJK는 전용 페이지를 참고하세요.
- 대부분의 경우 →
babel(모든 엔진 지원, 활발한 개발). - XeLaTeX/LuaLaTeX에서 복잡한 문자/시스템 글꼴 →
polyglossia도 가능. - RTL(아랍어, 히브리어) →
LuaLaTeX+babel(자동 양방향 처리). - 일본어 / CJK → 전용 경로(“일본어 조판 방법”, “CJK” 참조).