[latex3-commits] [latex3/babel] docs: Revised news 3.42-3.47, 3.67. (a3a9d0b)
github at latex-project.org
github at latex-project.org
Thu Oct 19 16:41:42 CEST 2023
Repository : https://github.com/latex3/babel
On branch : docs
Link : https://github.com/latex3/babel/commit/a3a9d0be28383c31f758d0486ee178838e19fc57
>---------------------------------------------------------------
commit a3a9d0be28383c31f758d0486ee178838e19fc57
Author: Javier <email at localhost>
Date: Thu Oct 19 16:41:42 2023 +0200
Revised news 3.42-3.47, 3.67.
>---------------------------------------------------------------
a3a9d0be28383c31f758d0486ee178838e19fc57
docs/news/whats-new-in-babel-3.42.md | 7 ++++++-
docs/news/whats-new-in-babel-3.43.md | 29 ++++++++++++++++++++++++-----
docs/news/whats-new-in-babel-3.44.md | 28 ++++++++++++++++++++--------
docs/news/whats-new-in-babel-3.45.md | 18 ++++++++++++++----
docs/news/whats-new-in-babel-3.46.md | 14 +++++++++++---
docs/news/whats-new-in-babel-3.47.md | 2 +-
docs/news/whats-new-in-babel-3.67.md | 3 +++
7 files changed, 79 insertions(+), 22 deletions(-)
diff --git a/docs/news/whats-new-in-babel-3.42.md b/docs/news/whats-new-in-babel-3.42.md
index 790ea2c..6ab207e 100644
--- a/docs/news/whats-new-in-babel-3.42.md
+++ b/docs/news/whats-new-in-babel-3.42.md
@@ -10,6 +10,7 @@ Let's say you need the string for the chapter name in Hebrew. You can write:
```
And `\hechap` is set to the corresponding value.
{% raw %}
+
`\LocaleForEach` loops the loaded `ini` files with `#1` as the locale name. Here is a somewhat low level example:
```tex
\LocaleForEach{%
@@ -19,11 +20,15 @@ And `\hechap` is set to the corresponding value.
```
{% endraw %}
+[**Update**. This command raises an error if the property doesn’t exist.
+`\getlocaleproperty*` doesn’t.]
+
## Coptic, Church Slavic, Syriac, Armenian, Sanskrit
`ini` files for 3 locales have been added:
* **Coptic**, with 2 numerals: `epact` and `lower.letters`.
-* **Church Slavic**, in 3 scripts: the ‘default’ Cyrl, plus Cyrs and Glag
+* **Church Slavic**, in 3 scripts: the ‘default’ `Cyrl`, plus `Cyrs` and
+ `Glag`
* **Syriac**. See an example in https://github.com/latex3/babel/blob/master/samples/lua-syriac.pdf .
Armenian now has captions and numerals. <del>[**Warning**. There are also numerals, but
diff --git a/docs/news/whats-new-in-babel-3.43.md b/docs/news/whats-new-in-babel-3.43.md
index e369975..babb852 100644
--- a/docs/news/whats-new-in-babel-3.43.md
+++ b/docs/news/whats-new-in-babel-3.43.md
@@ -4,7 +4,12 @@
## Autoloading based on BCP 47 codes
-The most relevant new feature is the [loading on the fly](whats-new-in-babel-3.39.md) based on BCP 47 codes. It must be activated explicitly, because they are meant for special tasks (most document are mainly monolingual). Mapping from BCP 47 codes to locale names are not hardcoded in `babel`. Instead the data is taken from the `ini` files, which means currently about 250 tags are already recognized
+The most relevant new feature is the [loading on the
+fly](whats-new-in-babel-3.39.md) based on BCP 47 codes. It must be
+activated explicitly with `\babeladjust`, because it is meant for special tasks (most
+document are mainly monolingual). Mapping from BCP 47 codes to locale
+names are not hardcoded in `babel`. Instead the data is taken from the
+`ini` files, which means currently about <del>250</del> 275 tags are already recognized
```tex
\documentclass{article}
@@ -24,7 +29,11 @@ The most relevant new feature is the [loading on the fly](whats-new-in-babel-3.3
\end{document}
```
-Babel performs a simple lookup in the following way: `fr-Latn-FR` → `fr-Latn` → `fr-FR` → `fr`. Languages with the same resolved name are considered the same. Case is normalized before, so that `fr-latn-fr` → `fr-Latn-FR`. If a tag and a name overlap, the tag takes precedence.
+Babel performs a simple lookup in the following way: `fr-Latn-FR` →
+`fr-Latn` → `fr-FR` → `fr`. Languages with the same resolved name are
+considered the same. Case is normalized before, so that `fr-latn-fr` →
+`fr-Latn-FR`. If a tag and a name overlap, the tag takes precedence (for
+example, `lu` is considered `lubakatanga`).
Currently the locales loaded are based on the `ini` files and decoupled from the main `ldf` files. This is by design, to ensure code generated externally produces the same result regardless of the languages requested in the document, but an option to use the `ldf` instead will be added in a future release, because both options make sense depending on the particular needs of each document (there will be some restrictions, however).
@@ -46,7 +55,7 @@ The behaviour is adjusted with `\babeladjust` with the following parameters:
* **Finnish**: Fixed `contents` (#61, by Teemu Likonen).
* **Marathi**: A couple of corrections (from polyglossia #409, by NiranjanTambe), and `alphabetic` counter.
* **Bengali**: `alphabetic` counter.
-* **Luxembourgish**: Much expanded (by Sam Mersch).
+* **Luxembourgish**: Much expanded (thanks by Sam Mersch).
* **Armenian**: Fixed counter names (see the [news for 3.42](whats-new-in-babel-3.42.md)).
## Macros in `\selectlanguage`
@@ -57,13 +66,23 @@ Since its beginnings, an alternative syntax was allowed in the argument of `\sel
\selectlanguage{\mylang}
```
-The alternative syntax is not recommended (there will be an ‘info’ about this).
+The alternative syntax is deprecated. <del>not recommended (there will be an ‘info’ about this).</del>
## Reorganization of the internal code
This change may affect a few packages.
-* Some `babel` commands have been loaded with the LaTeX format for years, but most of them didn't work without `\usepackage{babel}` and raised some cryptic errors. Now in the format some of them have minimal definitions (`\addlanguage`, `\adddialect`, `\iflanguage`, `\providehyphenmins`) and others raise a more explanatory error (`\selectlanguage` and other selectors). The macros in the format with minimal definitions behave as described in the `babel` manual, but without some additional internal actions added by and specific to the `babel` package (for example, it adds code for `\AddBabelHook{..}{adddialect}{..}` to work). It should work without rebuilding the format, but it may be necessary in some cases.
+* Some `babel` commands have been loaded with the LaTeX format for
+ years, but most of them didn't work without `\usepackage{babel}` and
+ raised some cryptic errors. Now in the format some of them have
+ minimal definitions (`\addlanguage`, `\adddialect`, `\iflanguage`,
+ `\providehyphenmins`) and others raise a more explanatory error
+ (`\selectlanguage` and other selectors). The macros in the format with
+ minimal definitions behave as described in the `babel` manual, but
+ without some additional internal actions added by and specific to the
+ `babel` package (for example, it adds code for
+ `\AddBabelHook{..}{adddialect}{..}` to work). It should work without
+ rebuilding the format, but it may be necessary in some cases.
* The files `switch.def` and `plain.def` will eventually disappear. Their code has been merged into `babel.def`, but they are still present as proxy files loading the relevant parts now in the latter.
diff --git a/docs/news/whats-new-in-babel-3.44.md b/docs/news/whats-new-in-babel-3.44.md
index 14b23d8..12e65fe 100644
--- a/docs/news/whats-new-in-babel-3.44.md
+++ b/docs/news/whats-new-in-babel-3.44.md
@@ -26,26 +26,34 @@ In addition, you can switch captions with `captions`. There are plans to add mor
According to [Approaches to line breaking](https://www.w3.org/International/articles/typography/linebreak)
when word separators are used, Ethiopic wraps after any character, except with the separators. Modern practice, however, is to separate words with spaces and not to break words (much like Arabic or Hebrew).
-Now with `luatex`, Amharic by default follows the modern practice, but the traditional one can be activated just by selecting `hyphenrules=amharic` (in other words, the patterns for Amharic are _not_ set to those named `amharic` in `language.dat`). Internally, the mechanism is the same as that for South East Asian scripts, which means the line breaks can be fine-tuned with `\babelpatterns` and `\babelposthyphenation`.
+Now with `luatex`, Amharic by default follows the modern practice, but
+the traditional one can be activated just by selecting
+`hyphenrules=amharic` (in other words, the patterns for Amharic are
+_not_ set by default to those named `amharic` in `language.dat`). Internally,
+the mechanism is the same as that for South East Asian scripts, which
+means the line breaks can be fine-tuned with `\babelpatterns` and
+`\babelposthyphenation`.
![](../media/babel-wiki-ahmaric.jpg)
-There is a good deal of alphabetic counters for Ethiopic languages in the CSS [Ready-made counter styles](https://www.w3.org/TR/predefined-counter-styles/), and they have been added: afar, agaw, ari, blin, dizi, gedeo, gumuz, hadiyya, harari, kaffa, kebena, kembata, konso, kunama, meen, oromo, saho, sidama, silti, tigre, wolaita, yemsa.
+There is a good deal of alphabetic counters for Ethiopic languages in the CSS [Ready-made counter styles](https://www.w3.org/TR/predefined-counter-styles/), and they have been added: `afar`, `agaw`, `ari`, `blin`, `dizi`, `gedeo`, `gumuz`, `hadiyya`, `harari`, `kaffa`, `kebena`, `kembata`, `konso`, `kunama`, `meen`, `oromo`, `saho`, `sidama`, `silti`, `tigre`, `wolaita`, `yemsa`.
### Other changes
-* **French.** Now the first day of the month is 1<sup>er</sup>.
+* **French.** Now the first day of the month is “1<sup>er</sup>”.
* **Portuguese.** Month names are now lowercase, following the recent orthographic rules.
## Preliminary code for `\babelprehyphenation`
-Note it is tentative, but the current behavior for glyphs should be correct.
+[**Update.** See the manual for the final version.]
-It is similar to `\babelposthyphenation`, but (as its name implies) applied before hyphenation. There are other differences: (1) the first argument is the *locale* instead the name of hyphenation patterns; (2) in the search patterns `=` has no special meaning (`|` is still reserved, but currently unused); (3) in the replacement, discretionaries are not accepted, only `remove`, `{}`, and `string = ..`. Also, you *must not* use `^` or `$`.
+<del>Note it is tentative, but the current behavior for glyphs should be correct.</del>
-Currently it handles glyphs, not discretionaries or spaces (in particular, it will not catch the hyphen and you can't insert or remove spaces). Also, you are limited to substitutions as done by lua, although a future implementation may alternatively accept lpeg.
+<del>It is similar to `\babelposthyphenation`, but (as its name implies) applied before hyphenation. There are other differences: (1) the first argument is the *locale* instead the name of hyphenation patterns; (2) in the search patterns `=` has no special meaning (`|` is still reserved, but currently unused); (3) in the replacement, discretionaries are not accepted, only `remove`, `{}`, and `string = ..`. Also, you *must not* use `^` or `$`.</del>
-Performance is still somewhat poor.
+<del>Currently it handles glyphs, not discretionaries or spaces (in particular, it will not catch the hyphen and you can't insert or remove spaces). Also, you are limited to substitutions as done by lua, although a future implementation may alternatively accept lpeg.</del>
+
+<del>Performance is still somewhat poor.</del>
### Example 1: transliteration
@@ -94,7 +102,11 @@ we get the following output:
### Example 2: combining chars
-Currently, `lualatex` doesn't deal with combining chars out of the box. As a result, and depending on the language, chars could not be composed correctly and valid hyphenation points could be discarded. As a workaround, you can use `\babelprehyphenation` in the following way:
+Currently, `lualatex` doesn't deal with combining chars out of the box.
+[**Update.** Fixed and no longer true.] As a result, and depending on the language, chars could not
+be composed correctly and valid hyphenation points could be discarded.
+As a workaround, you can use `\babelprehyphenation` in the following
+way:
```tex
\documentclass{article}
diff --git a/docs/news/whats-new-in-babel-3.45.md b/docs/news/whats-new-in-babel-3.45.md
index 8e7e7f7..811bd19 100644
--- a/docs/news/whats-new-in-babel-3.45.md
+++ b/docs/news/whats-new-in-babel-3.45.md
@@ -2,16 +2,24 @@
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.”
+<del>**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.”</del>
## 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
+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 `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).
+<del>Note currently `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).</del> [**Update.** Currently can convert
+several calendars, although only a few decades. See the manual.]
-`ini` files with strings defined for some non-Gregorian calendar are: `ar`, `ar-*`, `he`, `fa`, `hi`.
+`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''.
@@ -41,6 +49,8 @@ A couple of wrong settings have been fixed: `prehyphenchar` in Hindi was set to
## 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`:
```powershell
$today = [datetime]::Now
diff --git a/docs/news/whats-new-in-babel-3.46.md b/docs/news/whats-new-in-babel-3.46.md
index f7a122c..c2bf025 100644
--- a/docs/news/whats-new-in-babel-3.46.md
+++ b/docs/news/whats-new-in-babel-3.46.md
@@ -4,11 +4,13 @@
## More BCP 47
-Now, BCP 47 codes may be used to select languages loaded as package or class options, if desired. Because this feature is mainly meant for special uses, it must be explicitly turned on with:
+Now, BCP 47 codes may be used to select languages loaded as package or
+class options by name, if desired. Because this feature is mainly meant for special uses, it must be explicitly turned on with:
```tex
\babeladjust{ bcp47.toname = on }
```
-The best place for this feature to be activated is just after loading `babel`, especially if there are some `\babelprovide`. For example,
+The best place for this feature to be activated is just after loading
+`babel`, especially if there is some `\babelprovide`. For example,
```tex
\documentclass{book}
\usepackage[spanish, english]{babel}
@@ -21,7 +23,13 @@ The best place for this feature to be activated is just after loading `babel`, e
## Changes in `\BabelEnsureInfo`
-Now, `\BabelEnsureInfo` loads the data for the requested languages as package or class options immediately, because they can be useful in the preamble and for other packages. They will be loaded after all in most cases, and the sooner, the better (and even if some language is not used in the document, it won't hurt).
+[**Update.** Currently the basic info loaded always, for all languages.]
+
+<del>Now, `\BabelEnsureInfo` loads the data for the requested languages
+as package or class options immediately, because they can be useful in
+the preamble and for other packages. They will be loaded after all in
+most cases, and the sooner, the better (and even if some language is not
+used in the document, it won't hurt).</del>
## Fixes
diff --git a/docs/news/whats-new-in-babel-3.47.md b/docs/news/whats-new-in-babel-3.47.md
index 48e06ee..6ee5f6e 100644
--- a/docs/news/whats-new-in-babel-3.47.md
+++ b/docs/news/whats-new-in-babel-3.47.md
@@ -9,7 +9,7 @@ Creating a new locale has never been easier, thanks to a set of pre-built `ini`+
## Fixes
* Spurious spaces when autoloading locales (bug introduced in 3.46 when fixing #80).
-* In dtx files, autoloading printed some spurious text (because % is set to ignore, #87).
+* In `dtx` files, autoloading printed some spurious text (because % is set to ignore, #87).
## Other changes
diff --git a/docs/news/whats-new-in-babel-3.67.md b/docs/news/whats-new-in-babel-3.67.md
index 430374e..09f171f 100644
--- a/docs/news/whats-new-in-babel-3.67.md
+++ b/docs/news/whats-new-in-babel-3.67.md
@@ -22,6 +22,9 @@ environment `otherlanguage*`.
## Turning on and off transforms
+[**Update**. A higher level interface was introduced in version
+ [3.85](whats-new-in-babel-3.85.html).]
+
Until now, the only way to turn on or off a feature was by switching
the language, Now, you can associate a user defined transform to an
attribute, so that it’s active only when it’s set (currently its
More information about the latex3-commits
mailing list.