[latex3-commits] [latex3/babel] docs: Extended doc on casing. (679f937)
github at latex-project.org
github at latex-project.org
Sun Dec 3 16:47:42 CET 2023
Repository : https://github.com/latex3/babel
On branch : docs
Link : https://github.com/latex3/babel/commit/679f9375f89de91f0d26985a003c529eaf376980
>---------------------------------------------------------------
commit 679f9375f89de91f0d26985a003c529eaf376980
Author: Javier <email at localhost>
Date: Sun Dec 3 16:47:42 2023 +0100
Extended doc on casing.
>---------------------------------------------------------------
679f9375f89de91f0d26985a003c529eaf376980
docs/news/whats-new-in-babel-3.98.md | 41 +++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 10 deletions(-)
diff --git a/docs/news/whats-new-in-babel-3.98.md b/docs/news/whats-new-in-babel-3.98.md
index 10411a1..b9dfa0e 100644
--- a/docs/news/whats-new-in-babel-3.98.md
+++ b/docs/news/whats-new-in-babel-3.98.md
@@ -4,23 +4,44 @@
# Casing rules in `ini` files
-It consists of a list of character pairs in the order lower/upper which
-define a bidirectional mapping. There are some 3 modifiers for
-unidirectional settings: `<u>`, `<l>`, `<t>`. With `<u>` the uppercase
-form comes first. An additional modifier is `<m>` for bidirectional
-mapping of macros.
+It consists of a space-separated list of character pairs in the order
+lower/upper which define a bidirectional mapping. This is the default
+but there are 3 modifiers for unidirectional settings: `<u>`, `<l>`,
+`<t>`. With `<u>` the uppercase form comes first.
-The first element must be a character (except with `<m>`), with the
-defult bidirectional mapping the second one must be also a character,
-but with `<u>`, `<l>`, `<t>` the second element can be a macro or a
-token list between braces.
+The first element must be a character. With the default bidirectional
+mapping the second one must be also a character, but with `<u>`, `<l>`,
+`<t>` the second element can be a macro or a token list between braces.
For example:
```ini
[characters]
-casing = uV ťŤ <u> éE ôO ǰ{\v{J}} <t> džDž <m> \ae\AE \oe\OE
+casing = uV ťŤ <u> éE ôO ǰ{\v{J}} <t> džDž
```
+Alternative casing rules can be defined, too, by providing a name after
+a dot. A real example follows, from `la-x-classic` (ie, Classical Latin):
+```init
+casing = uV
+casing.Nouv = uU vV
+```
+The first one is applied always, because it’s considered a basic
+feature of the locale. The second one, which reverts this default
+behavior, is activated with something like:
+```tex
+\babelprovide[import, casing = nouv]{classicallatin}
+```
+Note the first letter is uppercase in the `ini` file, but lowercase in
+`\babelprovide`. See [Keys in `ini`
+files](https://latex3.github.io/babel/guides/keys-in-ini-files.html) for an explanation of this
+convention.
+
+These alternative rules are available in `\MakeUppercase` and
+`\MakeUppercase`, but currently you must resort to the LaTeX low level
+interface, with the internal BCP 47 tag, like:
+```
+\MakeUppercase[locale=la-x-classic-nouv]{uv}
+```
Complex rules based on contextual analysis cannot be defined, as LaTeX
provides no interface for them.
More information about the latex3-commits
mailing list.