Keys in ini files
(Under development.)
ini files are organized in directories with the language tag. There
are a couple of additional directories: shared, for files shared by
several languages (e.g., transliterations for the Devanagari script),
and invalid, for babel-*.tex files with discouraged or deprecated
names (see the naming rules in Locale
naming).
Many keys are related to the CLDR (Common Language Data Repository). Others are just the TeX primitives with the same name.
Keys may be further qualified in a particular language with a suffix
starting with a uppercase letter. It can be just a letter or a name.
Multi-letter qualifiers starting with an uppercase letter are forward
compatible in the sense they won’t conflict with new “global” keys
(which start always with a lowercase case). There is an exception,
however: the section counters has been devised to have arbitrary
keys, so you can add lowercased keys if you want. Note the fact a
qualifier starts with a uppercase letter doesn’t mean it must be
preserved in the user interface (date and casing variants are
examples).
Values may contain ; and #. ini files only consider comments
lines starting with ;, at the beginning. So, ini parsers must be
configured accordingly.
identification
Most of them are self explanatory.
charset The charset in the ini file (currently must be utf8).
version of the ini file
tag.bcp47 May includes if appropriate language, script, region, and variant. Usually only the language, as recommended by the CLDR.
language.tag.bcp47 The language part.
script.tag.bcp47 The script part.
tag.bcp47.likely The likely full tag. See Likely Subtags (CLDR). It can be useful when exporting data to tools expecting a full BCP 47 tag.
tag.opentype Which can be different from the BCP 47 tag.
script.name, like, for example, Cyrillic.
script.tag.opentype Which can be different from the BCP 47 tag.
name.babel A space-separated list with the names recognized by
babel. The first one sould be the preferred one. For example, with
Odia it takes the value odia oriya.
level ini files are based on a set of keys. The level is much a
‘version’ of the list of available keys. Currently is 1, and it will
stay so until there is some significant change.
derivate Not yet used, but its purpose is to identify if the files
is the original one distributed with babel or a derivate (for
example, a publishing house may want to define its own files).
encodings A mostly informative field for 8-bit engines requiring
font encodings (T1, LGR, etc.), but used when a language is
loaded on the fly.
captions
The default section defines the Unicode strings.
The .licr subsections are used in 8-bit engines, in pure ASCII using
the LICR.
The trailing name is added by babel (i.e., chapter for
\chaptername).
For non-standard caption formats, see
What’s new in babel
3.48.
An example with this extended syntax is babel-hu.ini, with (among
others):
figure.template = [figure].[ ][[figure]]
figure = \'abra
Here [figure] is the caption number, [ ] is a non-breaking space, and
[[figure]] is the name as defined with figure = \'abra.
date
date.long fields are as in the CLDR, but the syntax is
different. Anything inside brackets is a date field (eg, [MMMM] for
the month name) and anything outside is text. In addition, [ ] is a
non breakable space and [.] is an abbreviation dot.
Here are some explanations for dates:
https://cldr.unicode.org/translation/date-time/date-time-names
For example, about narrow:
The narrow date fields are the shortest possible names (in terms of width in common fonts), and are not guaranteed to be unique. Think of what you might find on a credit-card-sized wallet or checkbook calendar, such as in English for days of the week:
S M T W T F S
typography
frenchspacing (yes or no) Enable or disable \frenchspacing
hyphenrules As named in language.dat.
lefthyphenmin \lefthyphenmin
righthyphenmin \righthyphenmin
hyphenchar The hyphenation char (number). Empty for the default. 0 if there is no hyphen (eg, Thai).
prehyphenchar Not yet used (luatex).
posthyphenchar Not yet used (luatex).
exhyphenchar Not yet used (luatex)
preexhyphenchar Not yet used (luatex)
postexhyphenchar Not yet used (luatex)
hyphenationmin Not yet used (luatex), and it’s doubtful that it
will be used. See
.
hyphenate.other.locale (Tentative syntax.) A few hyphenation
patterns require setting some chars to other. This one is based on
the language.
hyphenate.other.script (Tentative syntax.) Same, based on the script.
linebreaking The line breaking mode, with a letter: h(yphenated, by default), c(jk), s(outheast Asian), u(nhyphenated).
labels
Under development:
https://latex3.github.io/babel/news/whats-new-in-babel-3.48.html
characters
See the CLDR. For example Exemplar
Characters,
can help to recognize a language. This list and the punctuation list
are currently not used by babel.
For casing rules, see What’s new in babel 3.98.
numbers
See Numering systems
The section about numbers may be used by some package to format
numbers (or even babel itself in a future). They reflect local tradicional
usage, not the international one set by either the SI or ISO 80000.
counters
See https://tex.stackexchange.com/questions/529813/how-to-define-counters-with-arbitrary-alphabet/530491#530491