What’s new in babel 3.45
2020-06-10
Note. There is a typo in the note on p. 19 of the manual. It
should read: “… as a rule of thumb prefer the default renderer, and
resort to Harfbuzz only if the former does not work for you.”
Date
The command \localedate admits an optional argument with two keys:
calendar and variant. With them you have access to non-Gregorian date formats defined in ini files. The three arguments are those in the corresponding
lunisolar calendar. They are not the Gregorian data to be converted (which means 13 is a valid month number with calendar=hebrew).
Note currently [Update. Currently can convert
several calendars, although only a few decades. See the manual.]babel doesn’t convert dates between calendars,
because a general tool for this purpose could be as large as babel
itself, and very likely it’s best done by a separate package (or even an
external program, see below).
ini files with strings defined for some non-Gregorian calendar are:
ar, ar-*, he, fa, hi. [Update. Currently there a few more.]
Even with a certain calendar there may be variants. In Kurmanji the default variant prints something like ‘‘30. Çileya Pêşîn 2019’’, but with variant=izafa it prints ‘‘31’ê Çileya Pêşînê 2019’’.
Digits
The commands \localenumeral and \localecounter admit the type digits for the native digits (ie, as defined with numbers/digits.native).
Changes in ini files
Kurdish
Thanks to Sina Ahmadi, from Kurdish XeLaTeX Users Group project.
Marathi
New version contributed by Niranja Tambe.
Fixes in Hindi, Macedonian and Ancient Greek
A couple of wrong settings have been fixed: prehyphenchar in Hindi was set to 0 (now the hyphen is not removed), and the OpenType script tag in Ancient Greek is PGR instead of ELL. There are also a few changes in Macedonian (by Stojan Trajanovski).
Fixes
- Improved handling of math with
\babelposthyphenationand\babelprehyphenation(it was ignoring too much). - An error related to
\bbl@foreign@xcould be raised in some rare cases (and also if the formats were not rebuilt, but this was expected). - Not sure it’s a bug, but it was a quite unexpected behaviour (and annoying, because it was not easy to fix):
\MakeUppercase{\today}didn’t uppercase the date.
Appendix. Using an external program for dates
[Update. Note hijri is now supported.]
An example with Windows and Powershell. Create a file named hijridate.ps1:
$today = [datetime]::Now
$calendar = New-Object System.Globalization.HijriCalendar
echo "\def\HijriDay{$($calendar.GetDayOfMonth($today))}"
echo "\def\HijriMonth{$($calendar.GetMonth($today))}"
echo "\def\HijriYear{$($calendar.GetYear($today))}"
Then:
PowerShell.exe -WindowStyle hidden ./hijridate.ps1 >today.tex
and a file is generated with something like:
\def\HijriDay{9}
\def\HijriMonth{10}
\def\HijriYear{1441}
Please, fell free to contribute a Unix version (as an issue or, better, as a pull request), or even to create your own package 🙂.