Introduction
LaTeX supports multilingual documents through babel and polyglossia packages, enabling typesetting in virtually any language. Whether you need to write in multiple languages within one document or create documents entirely in non-English languages, LaTeX provides comprehensive support.
This guide covers internationalization setup, language-specific features, and best practices for multilingual documents.
Babel Package
Basic Setup
\usepackage[english]{babel}
\addto\captionsenglish{%
\def\figurename{Figure}%
\def\tablename{Table}%
}
Multiple Languages
\usepackage[english,german,french]{babel}
\selectlanguage{english}
\section{Introduction}
\selectlanguage{german}
\section{Einleitung}
\selectlanguage{french}
\section{Introduction}
Language Switching Shorthands
\usepackage[german,french]{babel}
\shorthandoff{"}
\begin{otherlanguage}{german}
Dies ist ein deutscher Absatz.
\end{otherlanguage}
\begin{otherlanguage}{french}
Ceci est un paragraphe franรงais.
\end{otherlanguage}
Polyglossia Package
Basic Setup (XeLaTeX/LuaLaTeX)
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{german}
\setotherlanguage{french}
Language Configuration
\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\setdefaultlanguage[spelling=new,babelshorthands=true]{german}
\setdefaultlanguage{french}
\setotherlanguages{greek,russian,japanese}
Language-Specific Features
German
\usepackage[german]{babel}
% Shorthands
\shorthandoff{"}
\addto\extrasgerman{\languageshorthands{german}}
% Umlauts
Groรe = Large
Grรถรe = Size (different!)
French
\usepackage[french]{babel}
% Spacing
\og Guillemets \fg{}
\frenchquote{Text}
% Non-breaking spaces
~ in numbers: 10~000
Spanish
\usepackage[spanish]{babel}
\spanishdecimal{.}
\spanishdash{-}
% Inverted punctuation for dialogue
\textquote{texto}
RTL Languages
Right-to-Left Scripts
\usepackage{polyglossia}
\setdefaultlanguage{arabic}
\begin{Arabic}
ูุต ุนุฑุจู
\end{Arabic}
Bidirectional Text
\usepackage{bidi}
\beginRTL
RTL text here
\endRTL
% Mixed LTR/RTL
This is English \textarabic{ูุต ุนุฑุจู} and more English.
Unicode and Encodings
Input Encoding
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
XeLaTeX/LuaLaTeX Unicode
\usepackage{fontspec}
% System fonts with Unicode
\setmainfont{Charis SIL}
\setmainfont{Times New Roman}
Font Support
\usepackage{fontspec}
% Noto fonts for comprehensive Unicode
\setmainfont{Noto Serif}
\setsansfont{Noto Sans}
\setmonofont{Noto Sans Mono}
% Language-specific fonts
\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\newfontfamily\hebrewfont[Script=Hebrew]{Noto Sans Hebrew}
Hyphenation
Custom Hyphenation
\hyphenation{
com-pu-ter
multi-me-dia
euro-pe-an
}
% Language-specific
\addlanguage{russian}
\russianhyphens
Disable Hyphenation
% For specific paragraphs
\begin{hyphenrules}{nohyphenation}
Text without hyphenation...
\end{hyphenrules}
% Or globally
\language=\catcode`\=
Multilingual Index
Babel Index
\usepackage[splitindex]{imakeidx}
\makeindex
\index{Word (German: Wort)}
\index[german]{Wort|see{Word}}
Multiple Language Indexes
\makeindex[name=english,title=Index]
\makeindex[name=german,title=Stichwortverzeichnis]
\makeindex[name=french,title=Index thรฉmatique]
\index[english]{Language}
\index[german]{Sprache}
\index[french]{Langue}
\printindex[english]
\printindex[german]
\printindex[french]
Date Formatting
Language-Specific Dates
\usepackage{datetime}
\selectlanguage{english}
\today
\selectlanguage{german}
\today
\selectlanguage{french}
\today
% Custom formats
\newdateformat{american}{\monthname[\THEMONTH]\ \THEDAY, \THEYEAR}
\american
Common Languages Setup
Chinese
\usepackage{ctex}
% Or with XeLaTeX
\usepackage{xeCJK}
\setCJKmainfont{Noto Serif SC}
Japanese
\usepackage{luatexja-fontspec}
\setmainjfont{Noto Serif JP}
\begin{japanese}
ๆฅๆฌ่ชใฎใใญในใ
\end{japanese}
Russian/Cyrillic
\usepackage[OT2,T2A]{fontenc}
\usepackage[utf8]{inputenc}
% Or with XeLaTeX
\usepackage{fontspec}
\setmainfont{Noto Serif}
\newfontfamily\cyrillicfont{Noto Serif}
Troubleshooting
Encoding Issues
% Ensure UTF-8
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% For XeLaTeX
\usepackage{fontspec}
Missing Hyphenation
\usepackage{babel}
\addto\extraslanguage{%
\hyphenation{word-not-hyphenated}
}
Best Practices
Document Organization
% Define languages in preamble
\usepackage[english,main=ngerman]{babel}
% Switch languages in document
\selectlanguage{english}
\section{English Section}
\selectlanguage{german}
\section{Deutscher Abschnitt}
Font Selection
Choose fonts that support all required scripts:
- Noto Sans/Serif: Comprehensive Unicode
- Charis SIL: Latin languages
- Amiri: Arabic
- Noto Sans JP/CN/KR: CJK
Conclusion
LaTeX provides robust multilingual support through babel and polyglossia. With proper configuration, you can create professional documents in any language, handle mixed-language text, and produce properly hyphenated output.
Choose the appropriate package for your engineโbabel for pdfLaTeX, polyglossia for XeLaTeX/LuaLaTeXโand ensure you have appropriate fonts installed.
Comments