What’s new in babel 3.85
2023-01-23
Separators in layout
For technical reasons, spaces couldn’t be used formerly as separators in the
list of values passed to layout, and therefore babel replaced them
with dots. This restriction has been lifted recently in the
LaTeX kernel, and therefore spaces are fine and the recommended syntax. So, now
\usepackage[arabic, provide=*, bidi=basic, layout=captions lists]{babel}
is to be preferred to
\usepackage[arabic, provide=*, bidi=basic, layout=captions.lists]{babel}
Enabling and disabling transforms
A higher level interface to enable y disable transforms has been devised (see the lower level here, based on the transform label. There are now two macros for this purpose, as shown in the following example:
\documentclass{article}
\usepackage[latin, provide=*]{babel}
\babelprovide[transforms = letters.uv]{latin}
\begin{document}
VOLUP volup
\disablelocaletransform{letters.uv} VOLUP volup
\enablelocaletransform{letters.uv} VOLUP volup
\end{document}
This prints “VOLVP uolup VOLUP volup VOLVP uolup”.
They are applied to the current locale.
Font-dependent transforms
Sometimes, a transform doesn’t work well in all fonts. For example, the
rules for Arabic kashida can differ depending on the font design.
Besides a label, a list of fonts can be provided with a new key
fonts= as shown:
\babelprehyphenation[label=transform.name, fonts=rm sf]{..}{..}
Transforms are enabled or disabled with font selectors. Tags can adopt
two forms: a family, such as rm or tt, or the set
family/series/shape. If a font matches any of these conditions, the
transform is enabled (which means he second tag in rm rm/n/it is
redundant). There are no wildcards; so, for italics you may want to
write something like sf/m/it sf/b/it.
Transforms set for specific fonts (at least once in any language) are always reset with a font selector. Currently they cannot be enabled or disabled with the macros described in the previous section.
In \babelprovide, transform labels can be tagged before its name,
with a list separated with colons, like:
transforms = rm:sf:transform.name
Fixes
The main fix is related to tabular. When attempting to fix amsmath,
bidi text was broken if layout=tabular was not set. Its behavior
has been improved, but some issues remain (for example, position
of vertical rules with |).
Other fixes are:
\babelprehyphenationwas not applied withonchar.- In some rare cases the hyphenrules weren’t correctly set.