Prerequisites: Basic LaTeX knowledge
Time to complete: 30-35 minutes
Difficulty: Intermediate to Advanced
What you’ll learn: Language packages, fonts, encoding, hyphenation, and localization
Time to complete: 30-35 minutes
Difficulty: Intermediate to Advanced
What you’ll learn: Language packages, fonts, encoding, hyphenation, and localization
Multi-language Overview
Why Multi-language Support Matters
Global Reach
Create documents for international audiences
Academic Requirements
Citations and quotes in original languages
Business Documents
Multilingual reports and presentations
Cultural Accuracy
Proper typography and formatting rules
Language Support Methods
- babel
- polyglossia
- CJK
Traditional package
- Wide language support
- Works with pdfLaTeX
- Extensive documentation
- Active development
Modern alternative
- Designed for XeLaTeX/LuaLaTeX
- Better Unicode support
- Advanced font features
- Modern languages
Asian languages
- Chinese, Japanese, Korean
- Special considerations
- Font requirements
- Input methods
Babel Package
Basic Setup
Copy
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
% Load languages (last one is default)
\usepackage[spanish, french, english]{babel}
\begin{document}
% English (default)
\section{Introduction}
This document demonstrates multi-language support.
% Switch to French
\selectlanguage{french}
\section{Introduction}
Ce document démontre le support multilingue.
% Switch to Spanish
\selectlanguage{spanish}
\section{Introducción}
Este documento demuestra el soporte multilingüe.
% Back to English
\selectlanguage{english}
% Inline language switching
This is English text with some \foreignlanguage{french}{mots français}
and \foreignlanguage{spanish}{palabras españolas}.
\end{document}
Language-specific Features
Copy
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french, spanish, english]{babel}
\begin{document}
% Date formatting
\selectlanguage{english}
Today's date: \today
\selectlanguage{french}
Date d'aujourd'hui: \today
\selectlanguage{spanish}
Fecha de hoy: \today
% Hyphenation patterns
\selectlanguage{english}
\hyphenation{hy-phen-a-tion ex-am-ple}
This is a hyphenation example with very long words.
% Language-specific typography
\selectlanguage{french}
\frenchspacing % French spacing rules
Voici un exemple : avec les espaces françaises !
% Quotes
\selectlanguage{english}
English ``quotes'' are different from \selectlanguage{french}\og guillemets français\fg{}
and \selectlanguage{spanish}<<comillas españolas>>.
% Language attributes
\selectlanguage{english}
\languageattribute{english}{american} % American English
Color, organize, analyze.
\languageattribute{english}{british} % British English
Colour, organise, analyse.
\end{document}
Polyglossia Package
XeLaTeX/LuaLaTeX Setup
Copy
\documentclass{article}
\usepackage{polyglossia}
% Set main language
\setdefaultlanguage{english}
% Set other languages
\setotherlanguages{french, spanish, arabic, chinese}
% Font configuration
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont{Inconsolata}
% Language-specific fonts
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Amiri}
\newfontfamily\chinesefont[Scale=0.9]{Noto Sans CJK SC}
\begin{document}
\section{Multilingual with Polyglossia}
This is English text.
\begin{french}
Ceci est un texte français avec les bonnes règles typographiques.
\end{french}
\begin{spanish}
Este es un texto español con la tipografía correcta.
\end{spanish}
\begin{arabic}
هذا نص عربي مع الاتجاه الصحيح من اليمين إلى اليسار.
\end{arabic}
\begin{chinese}
这是中文文本,使用正确的字体。
\end{chinese}
\end{document}
Bidirectional Text
Copy
\documentclass{article}
\usepackage{polyglossia}
\usepackage{bidi} % For older systems
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\setotherlanguage{hebrew}
\usepackage{fontspec}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Scheherazade}
\newfontfamily\hebrewfont[Script=Hebrew,Scale=1.1]{David CLM}
\begin{document}
\section{Bidirectional Text Support}
This is left-to-right English text.
\begin{arabic}
\subsection{النص العربي}
هذا نص من اليمين إلى اليسار. يمكن مزج \textLR{English words} في النص العربي.
\begin{itemize}
\item البند الأول
\item البند الثاني مع \textLR{LTR text}
\item البند الثالث
\end{itemize}
\end{arabic}
Mixed paragraph: The Arabic phrase \textarabic{السلام عليكم} means
"peace be upon you" and the Hebrew \texthebrew{שלום} means "peace/hello".
\begin{hebrew}
\subsection{טקסט עברי}
זהו טקסט מימין לשמאל בעברית. אפשר לשלב \textLR{English} בתוך העברית.
\end{hebrew}
% Tables with RTL text
\begin{table}[h]
\centering
\begin{tabular}{|c|c|c|}
\hline
English & \textarabic{عربي} & \texthebrew{עברית} \\
\hline
Hello & \textarabic{مرحبا} & \texthebrew{שלום} \\
Goodbye & \textarabic{وداعا} & \texthebrew{להתראות} \\
Thank you & \textarabic{شكرا} & \texthebrew{תודה} \\
\hline
\end{tabular}
\caption{Multilingual greetings}
\end{table}
\end{document}
Font Configuration
Selecting Appropriate Fonts
Copy
\documentclass{article}
\usepackage{fontspec} % XeLaTeX/LuaLaTeX
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguages{russian, greek, japanese, arabic}
% Main document fonts
\setmainfont[
Ligatures=TeX,
BoldFont={* Bold},
ItalicFont={* Italic},
BoldItalicFont={* Bold Italic}
]{TeX Gyre Termes}
\setsansfont[
Ligatures=TeX,
Scale=0.9
]{TeX Gyre Heros}
\setmonofont[
Scale=0.9
]{Inconsolata}
% Language-specific fonts
\newfontfamily\russianfont[
Script=Cyrillic,
Ligatures=TeX
]{PT Serif}
\newfontfamily\greekfont[
Script=Greek,
Ligatures=TeX
]{GFS Artemisia}
\newfontfamily\japanesefont[
Script=CJK,
Scale=0.9
]{Noto Sans CJK JP}
\newfontfamily\arabicfont[
Script=Arabic,
Scale=1.2,
RightToLeft=true
]{Scheherazade}
\begin{document}
\section{Font Configuration for Multiple Languages}
Default English text uses TeX Gyre Termes.
\begin{russian}
Русский текст использует шрифт PT Serif, который хорошо поддерживает кириллицу.
\end{russian}
\begin{greek}
Το ελληνικό κείμενο χρησιμοποιεί τη γραμματοσειρά GFS Artemisia.
\end{greek}
\begin{japanese}
日本語のテキストはNoto Sans CJK JPフォントを使用します。
\end{japanese}
\begin{arabic}
النص العربي يستخدم خط Scheherazade مع دعم كامل للغة العربية.
\end{arabic}
\end{document}
OpenType Features
Copy
\documentclass{article}
\usepackage{fontspec}
% Font with various OpenType features
\setmainfont[
Numbers={OldStyle,Proportional},
Ligatures={Common,Contextual,Historic},
Letters=SmallCaps,
Style=Alternate
]{EB Garamond}
% Define font variations
\newfontfamily\liningfont[Numbers={Lining,Monospaced}]{EB Garamond}
\newfontfamily\swashfont[Style=Swash,Contextuals=Swash]{EB Garamond}
\newfontfamily\historicfont[Style=Historic,Ligatures=Historic]{EB Garamond}
\begin{document}
\section{OpenType Features}
% Number styles
Default oldstyle figures: 0123456789
{\liningfont Lining figures: 0123456789}
% Ligatures
Standard ligatures: ff fi fl ffi ffl
{\addfontfeature{Ligatures=NoCommon}No ligatures: ff fi fl ffi ffl}
% Small caps
\textsc{Small Capitals for Emphasis}
% Swash characters
{\swashfont Swash variants for Q and &}
% Historic forms
{\historicfont Historic long s: distinction}
% Fractions
\addfontfeature{Fractions=On}
Automatic fractions: 1/2 3/4 5/8
\end{document}
Special Characters and Symbols
Input Methods
Copy
\documentclass{article}
\usepackage[utf8]{inputenc} % For pdfLaTeX
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[english, french, german]{babel}
\begin{document}
\section{Special Characters}
% Direct Unicode input (with utf8)
Café, naïve, Zürich, señor, Москва
% LaTeX commands for special characters
Caf\'e, na\"{\i}ve, Z\"urich, se\~nor
% French special characters
\selectlanguage{french}
\oe uvre, c\oe ur, <<~guillemets~>>
% German special characters
\selectlanguage{german}
"Anf"uhrungszeichen", "=, "~, "`German quotes"'
% Text symbols
\texttrademark{} \textregistered{} \textcopyright{} \texteuro{} \textyen{}
% Accented characters
\`{a} \'{e} \^{o} \~{n} \"{u} \={a} \.{c} \u{g} \v{s} \H{o}
% Special ligatures
\AE{} \ae{} \OE{} \oe{} \AA{} \aa{} \O{} \o{} \L{} \l{} \SS{} \ss{}
\end{document}
Hyphenation and Line Breaking
Language-specific Hyphenation
Copy
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english, german, french]{babel}
\begin{document}
\section{Hyphenation Examples}
% English hyphenation
\selectlanguage{english}
\hyphenation{hy-phen-a-tion ex-am-ple spe-cial-word}
This is a demonstration of hyphenation in English with some
extraordinarily long words that need proper hyphenation patterns
to break correctly at line endings.
% German hyphenation
\selectlanguage{german}
\hyphenation{Sil-ben-tren-nung Bei-spiel-wör-ter}
Dies ist eine Demonstration der Silbentrennung im Deutschen mit
außergewöhnlich langen Wörtern, die ordnungsgemäße Trennmuster
benötigen.
% French hyphenation
\selectlanguage{french}
\hyphenation{hy-phe-na-tion ex-em-ple}
Ceci est une démonstration de la césure en français avec des mots
extraordinairement longs qui nécessitent des modèles de césure
appropriés.
% Prevent hyphenation
\selectlanguage{english}
\mbox{Unhyphenatable} word or \hbox{compound expression}.
\end{document}
Document Structure
Multilingual Documents
Copy
\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english, spanish, french, german]{babel}
\usepackage{csquotes} % Context-sensitive quotes
% Chapter names in different languages
\addto\captionsenglish{\renewcommand{\chaptername}{Chapter}}
\addto\captionsspanish{\renewcommand{\chaptername}{Capítulo}}
\addto\captionsfrench{\renewcommand{\chaptername}{Chapitre}}
\addto\captionsgerman{\renewcommand{\chaptername}{Kapitel}}
\begin{document}
% Title page in multiple languages
\begin{titlepage}
\centering
\vspace*{2cm}
{\Huge\bfseries Multilingual Report\\
Rapport Multilingue\\
Informe Multilingüe\\
Mehrsprachiger Bericht\par}
\vspace{2cm}
{\Large\itshape International Organization\\
Organisation Internationale\\
Organización Internacional\\
Internationale Organisation\par}
\vfill
{\large\today\par}
\end{titlepage}
\tableofcontents
\selectlanguage{english}
\chapter{Introduction}
This report is written in multiple languages...
\selectlanguage{french}
\chapter{Introduction}
Ce rapport est rédigé en plusieurs langues...
\selectlanguage{spanish}
\chapter{Introducción}
Este informe está escrito en varios idiomas...
\selectlanguage{german}
\chapter{Einleitung}
Dieser Bericht ist in mehreren Sprachen verfasst...
\end{document}
Localization
Dates and Numbers
Copy
\documentclass{article}
\usepackage{polyglossia}
\usepackage{datetime2}
\setdefaultlanguage{english}
\setotherlanguages{french, german, spanish, russian}
\begin{document}
\section{Localized Dates and Numbers}
% Dates in different languages
\begin{tabular}{ll}
English: & \today \\
\French French: & \today \\
\German German: & \today \\
\Spanish Spanish: & \today \\
\Russian Russian: & \today \\
\end{tabular}
% Number formatting
\begin{english}
English: 1,234,567.89
\end{english}
\begin{french}
French: 1 234 567,89
\end{french}
\begin{german}
German: 1.234.567,89
\end{german}
% Ordinal numbers
\begin{english}
1st, 2nd, 3rd, 4th, 21st
\end{english}
\begin{french}
1\textsuperscript{er}, 2\textsuperscript{e},
3\textsuperscript{e}, 21\textsuperscript{e}
\end{french}
\begin{spanish}
1\textsuperscript{o}, 2\textsuperscript{o},
3\textsuperscript{o}, 21\textsuperscript{o}
\end{spanish}
\end{document}
Best Practices
Multilingual Tips
✅ Best practices checklist:
- Choose appropriate engine (pdfLaTeX vs XeLaTeX/LuaLaTeX)
- Select suitable fonts for all languages
- Test hyphenation patterns
- Configure proper encoding
- Set language-specific typography rules
- Handle bidirectional text correctly
- Use semantic markup for language switches
- Maintain consistent style across languages
- Test PDF searchability and copying
- Consider accessibility requirements
Common Issues
Avoid these multilingual pitfalls:
- Wrong encoding - Use UTF-8 consistently
- Missing fonts - Verify font support for all scripts
- Hardcoded strings - Use babel/polyglossia captions
- Mixed directions - Test RTL/LTR thoroughly
- Hyphenation errors - Load patterns for all languages
- Quote styles - Use csquotes for consistency
- Number formats - Respect locale conventions
Complete Example
Copy
\documentclass{book}
\usepackage{fontspec} % XeLaTeX
\usepackage{polyglossia}
\usepackage{csquotes}
\usepackage{datetime2}
\usepackage{siunitx}
\usepackage{lipsum}
% Language setup
\setdefaultlanguage[variant=american]{english}
\setotherlanguages{french, german, spanish, russian, arabic, japanese}
% Font configuration
\setmainfont{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}
\setmonofont{Inconsolata}
% Language-specific fonts
\newfontfamily\russianfont{PT Serif}
\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\newfontfamily\japanesefont{Noto Sans CJK JP}
% Metadata
\title{Multilingual Document Example\\
\large Exemple de Document Multilingue\\
Mehrsprachiges Dokumentbeispiel}
\author{International Author}
\date{\today}
\begin{document}
\frontmatter
\maketitle
\begin{abstract}
This document demonstrates comprehensive multilingual support in LaTeX,
including various scripts, bidirectional text, and localization features.
\end{abstract}
\tableofcontents
\mainmatter
\chapter{Introduction}
\section{English Section}
This document showcases LaTeX's capabilities for handling multiple languages
and scripts within a single document. We'll explore various features including:
\begin{itemize}
\item Font selection and configuration
\item Bidirectional text support
\item Proper hyphenation and line breaking
\item Localized formatting
\item Special characters and symbols
\end{itemize}
\section{Section Française}
\begin{french}
Cette section démontre le support du français avec :
\begin{itemize}
\item Les guillemets français : \enquote{exemple}
\item Les espaces insécables : voici !
\item La date : \today
\item Les nombres : \num{1234567.89}
\end{itemize}
\end{french}
\section{Deutscher Abschnitt}
\begin{german}
Dieser Abschnitt zeigt die deutsche Unterstützung mit:
\begin{itemize}
\item Deutsche Anführungszeichen: \enquote{Beispiel}
\item Datum: \today
\item Zahlen: \num{1234567.89}
\item Silbentrennung für lange Wörter
\end{itemize}
\end{german}
\chapter{Advanced Features}
\section{Bidirectional Text}
\begin{english}
This chapter includes Arabic text: \textarabic{مرحبا بالعالم} (Hello World)
embedded within English paragraphs.
\end{english}
\begin{arabic}
هذا قسم كامل باللغة العربية. يُظهر الدعم الكامل للنص من اليمين إلى اليسار
مع الخطوط والتنسيق المناسبين. يمكن تضمين \textLR{English text} داخل العربية.
\end{arabic}
\section{Asian Languages}
\begin{japanese}
日本語のサポートも含まれています。これは日本語のテキストの例です。
LaTeXは複雑な文字体系も処理できます。
\end{japanese}
\chapter{Reference Section}
\section{Common Phrases}
\begin{tabular}{llll}
\textbf{English} & \textbf{Français} & \textbf{Deutsch} & \textbf{Español} \\
Hello & Bonjour & Hallo & Hola \\
Thank you & Merci & Danke & Gracias \\
Goodbye & Au revoir & Auf Wiedersehen & Adiós \\
\end{tabular}
\backmatter
\appendix
\chapter{Technical Notes}
This document was compiled with XeLaTeX to support Unicode and
advanced font features. All languages are properly configured with
appropriate hyphenation patterns and typography rules.
\end{document}
Next Steps
Explore more advanced topics:Book Publishing
Create multilingual books
Collaboration
International team workflows
Templates
Multilingual templates
Typography
Advanced typography
Pro tip: Always test your multilingual documents thoroughly. Check that text is searchable and copyable in the PDF, verify that hyphenation works correctly, and ensure that all special characters display properly. Consider creating language-specific style files for frequently used configurations.
