# BabelName <babelname>
# PolyglossiaName <polyglossianame>
# PolyglossiaOpts "<language-specific options>"
+# XindyName <xindyname>
# ActiveChars <activated characters>
# QuoteStyle <british|danish|english|french|frenchin|
-# german|polish|russian|swedish|swedishg|swiss|plain>
+# german|polish|russian|swedish|swedishg|swiss|hebrew|plain>
# DateFormats "<long>|<medium>|<short>"
# Encoding <encoding>
# FontEncoding <font encoding|font encoding|...>
# - french: <<text>> ``text'' (outward guillemets -- 66_99)
# - frenchin: <<text>> <<text>> (French Imprimerie Nationale style)
# - german: ,,text`` ,text` (99/66 -- 9/6)
+# - hebrew: ''text,, 'text, (99/99 -- 9/9)
+# - hungarian: ,,text'' >>text<< (99/99 -- double inward guillemets)
# - polish: ,,text'' ,text' (99/99 -- 9/9)
# - russian: <<text>> ,,text`` (outward guillemets -- 99/66)
# - swedish: ''text'' 'text' (99_99 -- 9_9)
# but are available globally if this language is used (not only for this
# language. Examples are \textgreek (Greek) and \textcyrillic (Russian).
# * ActiveChars provides a string of the characters that are made active
-# by the language. We record particularly those characters that have to
+# by the language. We record particularly those characters that have to
# be de-activated in some contexts (such as - or =).
+# * XindyName holds the value to the (te)xindy -L option. We only give it
+# if a corresponding language module exists.
#
##########################################################################
# Real languages
#
-# not yet supported by polyglossia
Language afrikaans
GuiName "Afrikaans"
BabelName afrikaans
+ PolyglossiaName afrikaans
QuoteStyle polish
Encoding iso8859-15
FontEncoding T1|OT1
\@ifl@aded{def}{t1enc}{\DeclareTextSymbol{\th}{T1}{254}}{}
EndPostBabelPreamble
PolyglossiaName albanian
+ XindyName albanian
QuoteStyle swiss
Encoding iso8859-2
FontEncoding T1|OT1
BabelName american
PolyglossiaName english
PolyglossiaOpts "variant=american"
+ XindyName english
QuoteStyle english
Encoding iso8859-15
FontEncoding ASCII
EndPostBabelPreamble
PolyglossiaName greek
PolyglossiaOpts "variant=ancient"
+ XindyName greek
QuoteStyle french
Encoding iso8859-7
InternalEncoding true
DateFormats "d MMMM، yyyy|dd/MM/yyyy|d/M/yyyy"
RTL true
PostBabelPreamble
- % arabic + hyperref redefines \noboundary as local textcommand
- \let\orig@noboundary\noboundary
- \DeclareTextCommandDefault{\noboundary}{\orig@noboundary}
- % work around too simple test for article-like classes in arabicore.sty
- \ifdefined\chapter\else
- \def\thesection{\protect\if@rl\protect\I{\number\c@section}%
- \protect\else\protect\textLR{\number\c@section}%
- \protect\fi}
- \def\thesubsection{\protect\if@rl\protect\I{\number\c@subsection.\number\c@section}%
- \protect\else\protect\textLR{\number\c@section.\number\c@subsection}%
- \protect\fi}%
- \def\thetable{\protect\if@rl\protect\I{\number\c@table}%
- \protect\else\protect\textLR{\number\c@table}%
- \protect\fi}%
- \def\thefigure{\protect\if@rl\protect\I{\number\c@figure}%
- \protect\else\protect\textLR{\number\c@figure}%
- \protect\fi}%
- \fi
+ \@ifundefined{if@rl}{}{
+ % arabic + hyperref redefines \noboundary as local textcommand
+ \let\orig@noboundary\noboundary
+ \DeclareTextCommandDefault{\noboundary}{\orig@noboundary}
+ % work around too simple test for article-like classes in arabicore.sty
+ \@ifundefined{chapter}{
+ \def\thesection{\protect\if@rl\protect\I{\number\c@section}%
+ \protect\else\protect\textLR{\number\c@section}%
+ \protect\fi}
+ \def\thesubsection{\protect\if@rl\protect\I{\number\c@subsection.\number\c@section}%
+ \protect\else\protect\textLR{\number\c@section.\number\c@subsection}%
+ \protect\fi}
+ \def\thetable{\protect\if@rl\protect\I{\number\c@table}%
+ \protect\else\protect\textLR{\number\c@table}%
+ \protect\fi}
+ \def\thefigure{\protect\if@rl\protect\I{\number\c@figure}%
+ \protect\else\protect\textLR{\number\c@figure}%
+ \protect\fi}
+ }{}
+ }
EndPostBabelPreamble
LangCode ar_SA
End
BabelName australian
PolyglossiaName english
PolyglossiaOpts "variant=australian"
+ XindyName english
Encoding iso8859-15
FontEncoding ASCII
DateFormats "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
BabelName austrian
PolyglossiaName german
PolyglossiaOpts "variant=austrian,spelling=old,babelshorthands=true"
+ XindyName german-duden
QuoteStyle german
Encoding iso8859-15
FontEncoding T1|OT1
BabelName naustrian
PolyglossiaName german
PolyglossiaOpts "variant=austrian,spelling=new,babelshorthands=true"
+ XindyName german-duden
QuoteStyle german
Encoding iso8859-15
FontEncoding T1|OT1
EndPostBabelPreamble
End
-# not yet supported by polyglossia
# Up to 2018-08-25 (babel-belarusian 1.4), the babel option is "belarusianb"
# but the language name "belarusian" (without trailing "b").
Language belarusian
GuiName "Belarusian"
BabelName belarusian
+ PolyglossiaName belarusian
+ XindyName belarusian
QuoteStyle french
Encoding cp1251
FontEncoding T2A
End
-# not yet supported by polyglossia
# The (rarely used) Cyrillic script is not supported (try serbian).
Language bosnian
GuiName "Bosnian"
BabelName bosnian
+ PolyglossiaName bosnian
QuoteStyle polish
Encoding iso8859-2
FontEncoding T1|OT1
HasGuiSupport true
BabelName brazil
PolyglossiaName brazil
+ XindyName portuguese
QuoteStyle english
Encoding iso8859-15
FontEncoding T1|OT1
BabelName british
PolyglossiaName english
PolyglossiaOpts "variant=british"
+ XindyName english
QuoteStyle british
Encoding iso8859-15
FontEncoding ASCII
HasGuiSupport true
BabelName bulgarian
PolyglossiaName bulgarian
+ XindyName bulgarian
QuoteStyle german
Encoding cp1251
FontEncoding T2A
Provides textcyrillic
End
-# not yet supported by polyglossia
Language canadian
GuiName "English (Canada)"
BabelName canadian
-# PolyglossiaName english
-# PolyglossiaOpts "variant=canadian"
+ PolyglossiaName english
+ PolyglossiaOpts "variant=canadian"
+ XindyName english
QuoteStyle english
Encoding iso8859-15
- FontEncoding ASCII
+ FontEncoding ASCII
DateFormats "MMMM d, yyyy|d MMM yyyy|yyyy-MM-dd"
LangCode en_CA
End
-# not yet supported by polyglossia
-# Note: If polyglossia support gets implemented, french needs
-# PolyglossiaOpts "variant=french"
Language canadien
GuiName "French (Canada)"
- BabelName canadien
-# PolyglossiaName french
-# PolyglossiaOpts "variant=canadien"
+ BabelName acadian
+ PolyglossiaName french
+ PolyglossiaOpts "variant=canadian"
+ ActiveChars ;!?:
+ XindyName french
QuoteStyle french
Encoding iso8859-15
FontEncoding T1|OT1
GuiName "Croatian"
BabelName croatian
PolyglossiaName croatian
+ XindyName croatian
QuoteStyle polish
Encoding iso8859-2
FontEncoding T1|OT1
HasGuiSupport true
BabelName czech
PolyglossiaName czech
+ XindyName czech
QuoteStyle german
ActiveChars -
Encoding iso8859-2
HasGuiSupport true
BabelName danish
PolyglossiaName danish
+ XindyName danish
QuoteStyle danish
Encoding iso8859-15
FontEncoding T1|OT1
BabelName dutch
PolyglossiaName dutch
PolyglossiaOpts "babelshorthands=true"
+ XindyName dutch
QuoteStyle polish
Encoding iso8859-15
FontEncoding T1|OT1
BabelName english
PolyglossiaName english
PolyglossiaOpts "variant=american"
+ XindyName english
QuoteStyle english
DateFormats "MMMM dd, yyyy|MMM dd, yyyy|M/d/yyyy"
Encoding iso8859-15
GuiName "Esperanto"
BabelName esperanto
PolyglossiaName esperanto
+ XindyName esperanto
QuoteStyle english
Encoding iso8859-3
FontEncoding IL3|T1|OT1
GuiName "Estonian"
BabelName estonian
PolyglossiaName estonian
+ XindyName estonian
QuoteStyle german
Encoding iso8859-15
FontEncoding T1|OT1
GuiName "Farsi"
BabelName farsi
PolyglossiaName farsi
+ XindyName persian
Encoding utf8
FontEncoding LAE,LFE
DateFormats "d MMMM yyyy|d MMM yyyy|yyyy/M/d"
HasGuiSupport true
BabelName finnish
PolyglossiaName finnish
+ XindyName finnish
QuoteStyle swedish
Encoding iso8859-15
FontEncoding T1|OT1
GuiName "French"
HasGuiSupport true
BabelName french
+ ActiveChars ;!?:
PolyglossiaName french
+ XindyName french
QuoteStyle french
Encoding iso8859-15
FontEncoding T1|OT1
Language georgian
GuiName "Georgian"
BabelName georgian
+ PolyglossiaName georgian
+ XindyName georgian
QuoteStyle german
Encoding utf8
FontEncoding T8M
BabelName german
PolyglossiaName german
PolyglossiaOpts "variant=german,spelling=old,babelshorthands=true"
+ XindyName german-duden
QuoteStyle german
Encoding iso8859-15
FontEncoding T1|OT1
BabelName ngerman
PolyglossiaName german
PolyglossiaOpts "variant=german,spelling=new,babelshorthands=true"
+ XindyName german-duden
QuoteStyle german
Encoding iso8859-15
FontEncoding T1|OT1
BabelName nswissgerman
PolyglossiaName german
PolyglossiaOpts "variant=swiss,spelling=new,babelshorthands=true"
+ XindyName german-duden
QuoteStyle swiss
Encoding iso8859-15
FontEncoding T1|OT1
BabelName swissgerman
PolyglossiaName german
PolyglossiaOpts "variant=swiss,spelling=old,babelshorthands=true"
+ XindyName german-duden
QuoteStyle swiss
Encoding iso8859-15
FontEncoding T1|OT1
BabelName greek
PolyglossiaName greek
PolyglossiaOpts "variant=monotonic"
+ XindyName greek
QuoteStyle french
Encoding iso8859-7
InternalEncoding true
BabelName polutonikogreek
PolyglossiaName greek
PolyglossiaOpts "variant=polytonic"
+ XindyName greek
QuoteStyle french
Encoding iso8859-7
InternalEncoding true
HasGuiSupport true
BabelName hebrew
PolyglossiaName hebrew
+ XindyName hebrew
Encoding cp1255
- QuoteStyle english
+ QuoteStyle hebrew
InternalEncoding true
# babel-hebrew expects the encoding for *other* languages last:
FontEncoding HE8,T1|LHE,T1
- ## Use font encoding HE8 if the Culmus fonts are installed and
- # work around too simple test for article-like classes in rlbabel.def.
- PreBabelPreamble
- \IfFileExists{he8david.fd}{%
- \providecommand{\HeblatexEncoding}{HE8}
- \providecommand{\HeblatexEncodingFile}{he8enc}%
- }{}
- \providecommand{\l@chapter}{\relax}
- EndPreBabelPreamble
DateFormats "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
RTL true
LangCode he_IL
GuiName "Icelandic"
BabelName icelandic
PolyglossiaName icelandic
+ XindyName icelandic
QuoteStyle german
Encoding iso8859-15
FontEncoding T1
HasGuiSupport true
BabelName italian
PolyglossiaName italian
+ XindyName italian
QuoteStyle french
Encoding iso8859-15
FontEncoding ASCII
Language korean
GuiName "Korean"
PolyglossiaName korean
+ XindyName korean
Encoding euc-kr
QuoteStyle cjkangle
DateFormats "yyyy년 M월 d일|yyyy. M. d.|yy. M. d."
# Requires kotex
# End
-# not yet supported by polyglossia
Language kurmanji
- GuiName "Kurmanji"
+ GuiName "Kurdish (Kurmanji)"
BabelName kurmanji
+ PolyglossiaName kurdish
+ XindyName kurdish-bedirxan
+ PolyglossiaOpts "variant=kurmanji"
Encoding utf8
FontEncoding T1|OT1
DateFormats "d. MMMM yyyy|d. M. yyyy|yyyy-MM-dd"
GuiName "Latin"
BabelName latin
PolyglossiaName latin
+ XindyName latin
+ ActiveChars ^=
Encoding iso8859-15
FontEncoding T1|OT1
LangCode la_LA
GuiName "Latvian"
BabelName latvian
PolyglossiaName latvian
+ XindyName latvian
QuoteStyle german
Encoding iso8859-4
FontEncoding L7x|T1|OT1
LangCode lv_LV
End
-# lithuanian must be loaded locally with babel options,
-# not globally via class options
-# FontEncoding: L7x set by Babel
+# FontEncoding: L7x required for hyphenation but no longer set by Babel
+# (since 2017-12-06)
Language lithuanian
GuiName "Lithuanian"
BabelName lithuanian
PolyglossiaName lithuanian
+ XindyName lithuanian
QuoteStyle german
Encoding iso8859-13
FontEncoding L7x
# L7x defines \copyright as TextSymbol which leads to an endless loop
- # when it is used in other font encodings.
+ # when it is used in other font encodings.
PostBabelPreamble
- % restore \coyright definition corrupted by l7xenc.def
- \DeclareRobustCommand{\copyright}{%
- \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
- \addto\noextraslithuanian{\latintext}
+ \@ifl@aded{def}{l7xenc}{
+ % restore corrupted \coyright definition
+ \DeclareRobustCommand{\copyright}{%
+ \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi
+ }
+ % Switch to L7x and back
+ \addto\extraslithuanian{
+ \let\bbl@lithuanian@cfencoding\cf@encoding
+ \fontencoding{L7x}\selectfont
+ \def\encodingdefault{L7x}
+ }
+ \addto\noextraslithuanian{
+ \def\encodingdefault{\bbl@lithuanian@cfencoding}
+ \fontencoding{\encodingdefault}\selectfont
+ }
+ }{}
EndPostBabelPreamble
DateFormats "yyyy 'm.' MMMM d 'd.'|yyyy 'm.' MMMM d 'd.'|yyyy-MM-dd"
LangCode lt_LT
GuiName "Lower Sorbian"
BabelName lowersorbian
PolyglossiaName lsorbian
+ XindyName lower-sorbian
QuoteStyle german
Encoding iso8859-2
FontEncoding T1|OT1
HasGuiSupport true
BabelName magyar
PolyglossiaName magyar
- QuoteStyle polish
+ XindyName hungarian
+ QuoteStyle hungarian
Encoding iso8859-2
FontEncoding T1|OT1
DateFormats "yyyy. MMMM d.|yyyy. MMM d.|yyyy.MM.dd."
LangCode hu_HU
End
-# not yet supported by polyglossia
Language macedonian
GuiName "Macedonian"
BabelName macedonian
+ PolyglossiaName macedonian
+ XindyName macedonian
QuoteStyle german
Encoding cp1251
FontEncoding T2A
# mongolian must be loaded locally with babel options,
# not globally via class options
-# not yet supported by polyglossia
Language mongolian
GuiName "Mongolian"
BabelName mongolian
+ PolyglossiaName mongolian
+ XindyName mongolian
Encoding utf8
FontEncoding T2A
DateFormats "yyyy оны M сарын d|d-M-yyyy|dd-MM-yyyy"
BabelName newzealand
PolyglossiaName english
PolyglossiaOpts "variant=newzealand"
+ XindyName english
QuoteStyle english
Encoding iso8859-15
FontEncoding ASCII
HasGuiSupport true
BabelName norsk
PolyglossiaName norsk
+ XindyName norwegian
QuoteStyle swiss
Encoding iso8859-15
FontEncoding T1|OT1
HasGuiSupport true
BabelName nynorsk
PolyglossiaName nynorsk
+ XindyName norwegian
QuoteStyle swiss
Encoding iso8859-15
FontEncoding T1|OT1
GuiName "Russian (Petrine orthography)"
PolyglossiaName russian
PolyglossiaOpts "spelling=old"
+ XindyName russian
QuoteStyle russian
LangCode ru_petr1708
End
HasGuiSupport true
BabelName polish
PolyglossiaName polish
+ XindyName polish
QuoteStyle polish
Encoding iso8859-2
FontEncoding QX|T1|OT1
HasGuiSupport true
BabelName portuges
PolyglossiaName portuges
+ XindyName portuguese
QuoteStyle french
Encoding iso8859-15
FontEncoding T1|OT1
HasGuiSupport true
BabelName romanian
PolyglossiaName romanian
+ XindyName romanian
QuoteStyle polish
Encoding iso8859-16
FontEncoding T1|OT1
BabelName russian
PolyglossiaName russian
PolyglossiaOpts "spelling=modern"
+ XindyName russian
QuoteStyle russian
Encoding koi8-r
FontEncoding T2A
BabelName serbianc
PolyglossiaName serbian
PolyglossiaOpts "script=Cyrillic"
+ XindyName serbian
# Note: script option is uppercase, even if the polyglossia
# manual states otherwise.
QuoteStyle polish
LangCode sr_RS
End
-# Note: script option is uppercase, even if the polyglossia
-# manual states otherwise.
+# We use croatian for Latin Serbian index ordering
Language serbian-latin
GuiName "Serbian (Latin)"
BabelName serbian
PolyglossiaName serbian
PolyglossiaOpts "script=Latin"
+ XindyName croatian
QuoteStyle polish
Encoding iso8859-2
FontEncoding T1|OT1
HasGuiSupport true
BabelName slovak
PolyglossiaName slovak
+ XindyName slovak-large
QuoteStyle german
ActiveChars -^
Encoding iso8859-2
GuiName "Slovene"
BabelName slovene
PolyglossiaName slovenian
+ XindyName slovenian
QuoteStyle german
Encoding iso8859-2
FontEncoding T1|OT1
HasGuiSupport true
BabelName spanish
PolyglossiaName spanish
+ XindyName spanish-modern
QuoteStyle french
Encoding iso8859-15
FontEncoding T1|OT1
LangCode es_ES
PostBabelPreamble
\addto\shorthandsspanish{\spanishdeactivate{~<>}}
+ \deactivatequoting
EndPostBabelPreamble
End
GuiName "Spanish (Mexico)"
BabelName spanish
PolyglossiaName spanish
+ XindyName spanish-modern
QuoteStyle french
Encoding iso8859-15
FontEncoding T1|OT1
LangCode es_MX
PostBabelPreamble
\addto\shorthandsspanish{\spanishdeactivate{~<>.}}
+ \deactivatequoting
EndPostBabelPreamble
End
HasGuiSupport true
BabelName swedish
PolyglossiaName swedish
+ XindyName swedish
QuoteStyle swedish
Encoding iso8859-15
FontEncoding T1|OT1
\DeclareRobustCommand{\copyright}{%
\ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
\DeclareTextSymbol{\textcopyright}{LTH}{8}
+ %
% set up Thai fonts as substitue for the default families
- \usepackage{substitutefont}
- \substitutefont{LTH}{\rmdefault}{norasi}
- \substitutefont{LTH}{\sfdefault}{garuda}
- \substitutefont{LTH}{\ttdefault}{ttypist}
+ % The 'substitutefont' package is obsolete now, since commands
+ % from the LaTeX kernel can be used instead. See here:
+ % https://ctan.org/pkg/substitutefont
+ % https://www.latex-project.org/news/latex2e-news/ltnews31.pdf
+ \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+ \IfFormatAtLeastTF{2020/02/01}{%
+ \DeclareFontFamilySubstitution{LTH}{\rmdefault}{norasi}
+ \DeclareFontFamilySubstitution{LTH}{\sfdefault}{garuda}
+ \DeclareFontFamilySubstitution{LTH}{\ttdefault}{ttypist}
+ }{%
+ \usepackage{substitutefont}
+ \substitutefont{LTH}{\rmdefault}{norasi}
+ \substitutefont{LTH}{\sfdefault}{garuda}
+ \substitutefont{LTH}{\ttdefault}{ttypist}
+ }
EndPostBabelPreamble
End
HasGuiSupport true
BabelName turkish
PolyglossiaName turkish
+ XindyName turkish
QuoteStyle english
+ ActiveChars =
Encoding iso8859-9
FontEncoding T1|OT1
LangCode tr_TR
DateFormats "d MMMM yyyy|dd.MMM.yyyy|dd.MM.yyyy"
- PostBabelPreamble
- \usepackage{xkeyval}
- EndPostBabelPreamble
End
# turkmen must be loaded locally with babel options,
HasGuiSupport true
BabelName ukrainian
PolyglossiaName ukrainian
+ XindyName ukrainian
QuoteStyle russian
Encoding koi8-u
FontEncoding T2A
GuiName "Upper Sorbian"
BabelName uppersorbian
PolyglossiaName usorbian
+ XindyName upper-sorbian
QuoteStyle german
Encoding iso8859-2
FontEncoding T1|OT1
GuiName "Vietnamese"
BabelName vietnamese
PolyglossiaName vietnamese
+ XindyName vietnamese
QuoteStyle english
Encoding utf8
DateFormats "dd 'tháng' MMMM yyyy|dd-MM-yyyy|dd/MM/yyyy"