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
\babelposthyphenation
and\babelprehyphenation
(it was ignoring too much). - An error related to
\bbl@foreign@x
could 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 🙂.