CTAN Comprehensive TeX Archive Network

Directory macros/latex/required/babel/base


Babel 3.50

This package manages culturally-determined typographical (and other) rules, and hyphenation patterns for a wide range of languages. Many language styles work with pdflatex, as well as with xelatex and lualatex out of the box. A few even work with plain formats.

The latest stable version is available on https://ctan.org/pkg/babel.

Changes in version 3.50 are described in:


Included is a set of ini files for about 250 languages.

The best way to install and/or update it is with the help of package managers.

Reporting Bugs

If you wish to report a problem or bug in any of these packages please use the Issue Tracker for on GitHub and follow the guidelines that pop up if you press the New issue button.

In particular, to check that you are really seeing a bug, please write a short, self-contained document that shows the problem. This should include the latexbug package, which will warn if your test file is not suitable for one or the other reason. See the CONTRIBUTING guide for further details, or if you need to obtain the latexbug package.

If the bug turns out to be with third-party software then please contact the developer, and not us!

You may also report them to the current maintainer more informally on:


Bugs related to specific languages are best reported to their respective authors.

Latest changes

3.50   2020-10-06
       - Fixes:
         - main=<language> stopped working in some cases (#96).
         - Footnotes were not \long with layout=footnotes.
3.49   2020-10-03
       - BUG. This version has a severe bug with main= (fixed in 3.50).
       - Allow standard LaTeX syntax to recognize locales based on ini
         files in the most common cases.
       - frenchspacing is set with ini files.
       - Fixes:
         - layout.lists=off didn't work (#94)
3.48   2020-09-01
       - New (tentative) tools to customize some labels (like chapters
         in CJK and Hungarian). 
       - Warning instead of error if neither 0 nor ZERO WIDTH SPACE is
         found in some Southeast Asian languages.
       - Fixes:
         - \babelshorthand didn't work with some dialects (#91).
         - \selectlanguage and otherlanguage raised an error inside

3.47   2020-07-13
       - Fixes:
         - Spurious spaces when autoloading locales (bug introduced
           in 3.46 when fixing #80).
         - In dtx files, autoloading printed some spurious text
           (because % is set to ignore, #87).
       - New - \getlocaleproperty*, which doesn't raise an error.
       - Basic ini+tex templates for about 500 languages in the GitHub

3.46   2020-07-06
       - Languages can now be optionally selected with their BCP 47
       - \BabelEnsureInfo now loads the basic data for the requested
         languages immediately (formerly it was done at the end of the
       - Fixes:
         - Getting rid of the hyphen in XeTeX was not working as
           expected. A new procedure has been devised.
         - tag.bcp47 now contains what its name promises, instead of
           just the language subtag (#70).
         - Locale info was not loaded if the name had uppercase letters
           in some OSs (#80).
         - The [..|..] syntax in ini dates didn't recognize 'digits'.

3.45   2020-06-10
       - Minor fixes in Hindi, Ancient Greek, Macedonian.
       - Improvements in Kurdish, Marathi.
       - Alternative date formats with \localedate[calendar=...,
         variant=...]{y}{m}{d} (note: no calendar computations, just
       - \today is (again) case-aware.
       - \localenumeral{digits}{..} and \localecounter{digits}{cntr}
         for native digits.
       - Fixes
         - Improved handling of math with \babelposthyphenation and
           \babelprehyphenation (it was ignoring too much).
         - An error related to \bbl@foreign@x could be raised in some
           rare cases.
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.45

3.44   2020-05-13
       - WARNING. If you need the Portuguese style you must update
       - \localedate, to print date with the current locale.
       - [|] syntax in dates, to represent a value with any counter
         defined in the ini files.
       - Amharic: line breaking (modern and traditional), counters.
       - Improvements in French, Portuguese.
       - Optional argument in \foreignlanguage and otherlanguage*,
         to switch date and/or captions.
       - Preliminary code for \babelprehyphenation.
       - Fixes:
         - \babelcharproperty{..}{linebreak]{..} raised an error.
         - \babelposthyphenation raised an error if the last char in
           the pattern was ].       
         - \babelposthyphenation is now deativated in math.

3.43   2020-04-28
       - Autoloading based on the BCP47 codes, with basic lookup.
       - Now only a few essential commands are loaded in the format.
       - Improvements in Assamese, Luxembourgish, Marathi, Armenian,
         Bengali, and Finnish.
       - First steps in the removal of switch.def and plain.def.
       - Fixes:
         - Babel reset the \sfcode of » to 1000. It should be 0.
         - \guillemotleft and \guillemotleft renamed to \guillemetleft
           and \guillemetleft (#63).
         - A couple of bugs related to autoloading.

3.42   2020-03-22
       - \getlocaleproperty, to get the value of a field from the loaded
         ini files.
       - Added ini files for Syriac, Coptic and Church Slavic. Improved
         some others (Armenian, Sanskrit).
       - Added a new field tag.bcp47.likely to many files.
       - Improved line breaking with xetex.
       - Fixes:
         - Remove extra space with languages loaded on the fly (bug
           introduced in 3.41).
         - Line breaking was no always correct with languages loaded on
           the fly.
         - Avoid a harmless warning about redefining a protected command
         - Locale was not switched correctly with COMBINING characters
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.42

3.41   2020-02-27
       - Counters and numerals added in some ini files, based on those
         defined in CSS (Abjad, Alphabetic Hebrew, Japanese, etc.).
       - Fix - A bug in the fix for #47, because \@elt was not reset
       - Fix - Error when french was loaded and an ini file read (#50).
       - Fix - A typo in Greek files: Miriad must read Myriad.
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.41

3.40   2020-02-14
       - New ini files for Latin and Greek (xe/lua).
       - Add 'other' characters used in hyphenation patters (eg,
       - Fix - Old Plain TeX and Plain XeTeX raised an error.
       - Fix - Option T1 in fontenc was not recognized to set
         \latinencoding with LaTeX 2020-02-02 (#47)
       - Fix - Locale names were hardcoded in some babel-...tex files.
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.40

3.39   2020-02-03
       - Languages can now be loaded on the fly (via \babelprovide).
       - With \babelposthyphenation captured chars can now be mapped in
         the replacement (lua).
       - \babelcharproperty can be used to assign specific chars to a
         locale (lua).
       - Fixes:
          - Sichuan Yi: line breaking was not activated (lua).
          - Hyphenation was not always applied with onchar (lua).
          - bidi=basic-l/basic-r where not activated correctly (xe).
          - Thai and turkish raised and error without import in
          - Cleaned up some ini/tex locale files (de, zh, sa).
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.39

3.38   2020-01-15
       - Automatic switching of ids (\language and \localeid), and fonts
         based on script blocks (lua).
       - New macro - \localeinfo, to access the basic data in the ini
         file loaded by languages.
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.38

3.37   2019-12-08    
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.37

3.36   2019-11-14 
See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.36

Javier Bezos

Download the contents of this package in one zip archive (1.7M).

babel – Multilingual support for Plain or

This package manages culturally-determined typographical (and other) rules for a wide range of languages. A document may select a single language to be supported, or it may select several, in which case the document may switch from one language to another in a variety of ways.

Babel uses contributed configuration files that provide the detail of what has to be done for each language. Included is also a set of ini files for about 200 languages.

Many language styles work with pdf, as well as with XeLaTeX and Lua, out of the box. A few even work with plain formats.

Bug trackerhttps://github.com/latex3/babel/issues
Version3.50 2020-10-06
LicensesThe Project Public License 1.3
Copyright1989–2012 Johannes Braams et al.
2012–2020 Javier Bezos and Johannes L. Braams
MaintainerJavier Bezos López
Johannes L. Braams (inactive)
TDS archivebabel-base.tds.zip
Contained inTeX Live as babel
MiKTeX as babel
See alsopolyglossia
Guest Book Sitemap Contact Contact Author