View on GitHub

Babel

The multilingual framework to localize LaTeX, LuaLaTeX, XeLaTeX

Babel

Localization and internationalization ◾ pdfTeX, LuaTeX and XeTeX

This is the home page for Babel, the multilingual environment for LaTeX (and sometimes Plain) with the three basic engines (pdfTeX, LuaTeX and XeTeX). Its aim is to provide a localization framework for different languages, scripts, and cultures based on the latest advances in Unicode (including the CLDR), the W3C (where applicable) and other technologies, as well as on international standards for better compatibility and consistency.

Babel currently supports approximately 300 languages (with various levels of coverage) across about 45 scripts, including complex and RTL ones like Arabic, Chinese, Tibetan and Devanagari. Its high-level interface with fontspec allows for seamless integration with OpenType technologies in xetex and luatex, enabling effortless, robust and flexible use of advanced typographic features, and fine-grained control and customization. Additionally, lazy locale and font loading facilitate integration into automated document generation workflows, and makes it adept at handling complex documents with multiple languages.

Many locales in Babel are built on a modern core that utilizes descriptive ini files. This design simplifies the tailoring and customization of languages, thanks to tools that provide highly precise control over hyphenation and line breaking, captions, date formats (across various calendars), spacing, and other locale-specific typographical rules.


Documentation

Find the PDF manual here.

This site contains additional information and examples in many languages (see the menu above). It’s open source – feel free to draft a pull request here.


Installation

Babel is one of the core components of LaTeX and therefore must be available on any LaTeX system. However, support for specific languages may require a separate installation in some cases.

Please, refer to the manual of the distribution you have installed, which in Windows and MacOS usually involves configuring it with a graphical user interface, and in Un*x systems with some command, as for example sudo apt-get install texlive-lang-arabic for Arabic in Ubuntu. (Note some Linux distros install outdated versions. In such a case, it’s advisable to install TeXLive.)



What’s new

Version Most relevant changes
24.15 Fixes. New locale for Interslavic.
24.14 Harfbuzz is the default renderer in most scripts.
24.13 Transform variables for French. Pashto calendars.
24.12 Manual revised. \PassOptionsToLocale
24.11 Manual revised. Transform variables.
24.10 \localename, \mainlocalename, \babelhyphenmins
24.9 Transforms: digits.native, CJK spacing (tentative).
24.8 \BabelWrapText and hook foreign.
24.7 Improved a few locales: Filipino, Geez, etc.
24.6 Improved transforms: kern, norule, after.
24.5 Minor changes and fixes.
24.4 interchar=linebreak.basic for CJK (xetex)
24.3 Also minor changes and fixes (including spaces in French).
24.2 Minor changes and fixes.
24.1 New version numbering. interchar in \babelprovide. Spaces in French.
3.99 About 25 new locale files.
3.98 casing in ini files. Improved persian/farsi
3.97 \babelcharclass, \babelinterchar (xetex)
3.96 Improved Odia. Improved onchar
3.95 16 new locale files (and a few fixes).
3.94 Chinese dates. New transform for kashida. New locale files.
3.93 Hebrew numerals. Chinese calendar. 6 new locale files.
3.92 A couple of fixes.
3.91 Mainly fixes and transliteration for Hebrew.
3.90 Casing.
3.89 Option modifiers.<lang>.
3.88 37 new locale files.
3.87 Mainly fixes and minor improvements.
3.86 tabular improved.
3.85 Font-dependent transforms.
3.84 Auto-selection of encodings in pdftex.
3.83 Improved Punjabi. lscape.
3.82 Tibetan with XeTeX. Improved \babelprovide (with transforms).
3.81 Tentative Tibetan justification. Option letters for onchar
3.80 Captions for Hausa. Ethiopic calendar.
3.79 Mainly a maintenance release.
3.78 Some locales updated to the CLDR 41.
3.77 More on calendars: \today, coptic. New locale ar-SA.
3.76 Calendar converters.
3.75 \BabelEnsureInfo enabled by default. \localeinfo*.
3.74 Mainly fixes and improvements in math.
3.73 A fix.
3.72 Mainly fixes and minor improvements.
3.71 IAST transliteration for Sanskrit.
3.70 More (tentative) fixes for (ams)math (lua).
3.69 Fixes a bug with amsmath introduced in 3.68.
3.68 Fixes (Bengali, tabular and amsmath).
3.67 Transforms can be turned on ond off.
3.66 Transforms for Greek (transliteration.omega).
3.65 Fixes a severe bug with spanish.
3.64 New counters in CJK.
3.63 Fixes a severe bug with CJK and XeTeX.
3.62 Preliminary support for \AddToHook.
3.61 Transform danda.nobreak. Improved Arabic justification.
3.60 Mainly a maintenance release.
3.59 Tentative Arabic justification.
3.58 More transforms for Sanskrit, Polish, Czech, Serbian, etc.
3.57 Predefined transforms for Arabic, Greek, Hungarian, etc.
3.56 Transforms (in ini files)
3.55 Mainly internal changes. Captions in Uyghur.
3.54 Improved picture.
3.53 Templates in \setlocalecaption. Captions in Sinhala.
3.52 Improvements in \babelprehyphenation and \babelposthyphenation.
3.51 \setlocalecaption, to (re)define captions at the document level.
3.50 A bug fix release for 3.49.
3.49 ini files: enable standard LaTeX syntax as options; French spacing.
3.48 Preliminary tools for labels (for languages like Japanese and Hungarian).
3.47 ini+tex templates for about 500 languages.
3.46 Option to select languages with BCP 47 tags.
3.45 Improvements in \localedate.
3.44 Argument in \foreignlanguage to switch date and/or captions. Amharic.
3.43 Autoloading based on BCP 47 codes.
3.42 \getlanguageproperty. Syriac, Coptic, Church Slavic.
3.41 Counters and numerals (alphabetic and additive).
3.40 Locale ini files for Latin and Greek. ‘Other’ characters in hyphenation patterns.
3.39 Locale loading on the fly.
3.38 Automatic switching of locale and fonts based on script (lua).
3.37 Non-standard hyphenation, like f-fff-f (lua).
3.36 Polytonic Greek. Improvements in Chinese.
3.35 Shorthands work in bibs and refs even with safe=none.