[latex3-commits] [latex3/babel] main: Bump to 3.98. (df50c93)
github at latex-project.org
github at latex-project.org
Wed Dec 6 18:32:41 CET 2023
Repository : https://github.com/latex3/babel
On branch : main
Link : https://github.com/latex3/babel/commit/df50c93c6dfb260ab79e6a9492f9194339a612c5
>---------------------------------------------------------------
commit df50c93c6dfb260ab79e6a9492f9194339a612c5
Author: Javier <email at localhost>
Date: Wed Dec 6 18:32:41 2023 +0100
Bump to 3.98.
>---------------------------------------------------------------
df50c93c6dfb260ab79e6a9492f9194339a612c5
README.md | 17 +--
babel-code.pdf | Bin 641766 -> 642032 bytes
babel.dtx | 245 ++++++++++++++++++++------------------
babel.ins | 2 +-
babel.pdf | Bin 417651 -> 417807 bytes
bbcompat.dtx | 2 +-
bbidxglo.dtx | 4 +-
locale/fa/babel-fa.ini | 12 +-
locale/la/babel-la-x-classic.ini | 4 +-
locale/la/babel-la-x-ecclesia.ini | 4 +-
locale/la/babel-la-x-medieval.ini | 4 +-
locale/la/babel-la.ini | 4 +-
12 files changed, 157 insertions(+), 141 deletions(-)
diff --git a/README.md b/README.md
index 8692ce9..b55e1bf 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-## Babel 3.97.33765
+## Babel 3.98
-**Development**
+2023-12-06
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -48,13 +48,14 @@ respective authors.
### Summary of latest changes
```
-3.98 (dev)
+3.98 2023-12-06
+ * Case mappings in ini files, with new casing variants in the
+ Latin locales.
* New: \ShowLocaleProperties.
- * Case mappings in ini files.
-
-3.97 2023-11-11
- * Support for 'interchar' (xetex).
- * New locale for Buriat, thanks to J. Khaganov.
+ * Improved Persian/Farsi, thanks to Farshad Rasuli
+ (@farshadrasuli).
+ * In some languages and xetex, the language name was printed with
+ the first \foreignlanguage.
```
### Previous changes
diff --git a/babel-code.pdf b/babel-code.pdf
index 60f3b46..f319285 100644
Binary files a/babel-code.pdf and b/babel-code.pdf differ
diff --git a/babel.dtx b/babel.dtx
index a709fd6..afe17f7 100644
--- a/babel.dtx
+++ b/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2023/12/03 v3.97.33765 The Babel package]
+\ProvidesFile{babel.dtx}[2023/12/06 v3.98 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -1448,7 +1448,7 @@ Or also:
corresponding behavior is not always implemented. Also, there are
some limitations in the engines. A few remarks follow (which could no
longer be valid when you read this manual, if the packages involved
- han been updated). The Harfbuzz renderer has still some issues, so as
+ have been updated). The Harfbuzz renderer still has some issues, so as
a rule of thumb prefer the default renderer, and resort to Harfbuzz
only if the former does not work for you. Fortunately, fonts can be
loaded twice with different renderers; for example:
@@ -2321,7 +2321,7 @@ Many locale templates are quite useable, provided captions and dates are
not required (which is a very frequent case, particularly in ancient
languages). So, they will be included in the default \babel{} distribution.
This can serve to encourage contributions, too. A warning will remember
-they are ‘bare minumum locales’. The locales are currently
+they are ‘bare minimum locales’. The locales are currently
the following:
\begin{multicols}{4}
\small
@@ -2627,7 +2627,7 @@ something like:
first loads |danish.ldf|, and then redefines the captions for
\texttt{danish} (as provided by the |ini| file) and prevents
hyphenation. The rest of the language definitions are not touched.
-Without the optional argument it just loads some aditional tools if
+Without the optional argument it just loads some additional tools if
provided by the |ini| file, like extra counters.
\Describe{\BabelUppercaseMapping}
@@ -2846,14 +2846,19 @@ See the next section.
\Describe{Alph=}{\meta{counter-name}} Same for |\Alph|.
\Describe{casing}{\meta{rules}} \New{3.90} Selects the casing rules in a few
-languages. They are (from \textsf{interface3.pdf}):
+languages. The first ones are predefined by \LaTeX{} (see
+\textsf{interface3.pdf}), while the following are defined by \babel:
\begin{description}
- \item[Armenian] |yiwn|, which maps U+0587 to capital ech and yiwn on
+ \item[Armenian] |yiwn| maps U+0587 to capital ech and yiwn on
uppercasing.
- \item[German] |eszett|, which maps the lowercase \textit{Eszett} to a
+ \item[German] |eszett| maps the lowercase \textit{Eszett} to a
\textit{großes Eszett}.
- \item[Greek] |iota|, which converts the \textit{ypogegrammeni} (subscript muted
+ \item[Greek] |iota| converts the \textit{ypogegrammeni} (subscript muted
iota) to capital iota when uppercasing.
+ \item[Latin] |nouv| in |classicallatin| and |medievallatin| reverts
+ the default rules, which maps u ↔ V; |uv| in |ecclesianticallatin|
+ and the basic |latin| locale applies the map u ↔ V (by default it’s
+ u ↔ U and v ↔ V).
\end{description}
\begin{example} For the latter:
@@ -3062,7 +3067,7 @@ CSS. They only work with \xetex{} and \luatex{} and are fully
expandable (even inside an unprotected |\edef|). Currently, they are
limited to numbers below 10000.
-There are several ways to use them (for the availabe styles in each
+There are several ways to use them (for the available styles in each
language, see the list below):
\begin{itemize}
@@ -3341,6 +3346,10 @@ note several locales may share a single |\language|, so they are
separated concepts. In \luatex, the |\localeid| is saved in each node
(when it makes sense) as an attribute, too.
+\Describe{\ShowLocaleProporties}{\marg{language}}
+\New{3.98} Prints to the |log| file all the key/value pairs declared in
+the |ini| locale file for \meta{language}.
+
\Describe{\LocaleForEach}{\marg{code}}
\Babel{} remembers which |ini| files have been loaded. There is a loop
named |\LocaleForEach| to traverse the list, where |#1| is the name of
@@ -3544,7 +3553,7 @@ It currently embraces |\babelprehyphenation| and
\New{3.57} Several \textsf{ini} files predefine some transforms. They
are activated with the key |transforms| in |\babelprovide|, either if
the locale is being defined with this macro or the languages has been
-previouly loaded as a class or package option, as the following example
+previously loaded as a class or package option, as the following example
illustrates:
\begin{verbatim}
\usepackage[hungarian]{babel}
@@ -3828,7 +3837,7 @@ future release).
\marg{class-first} and \marg{class-second} can be comma separated lists
of char classes, and all combinations are defined (so that 2 first
classes with 2 second classes, define 4 combinations). In the
-\marg{options} field a key named |label| is available, which allows to
+\meta{options} field a key named |label| is available, which allows to
enable or to disable the rule with the following two commands. Like
prehyphenation transforms in \luatex{}, interchars are not applied if the
current hyphenation rules are |nohyphenation|.
@@ -3862,7 +3871,7 @@ current language.
\begin{warning}
Keep in mind two points: (1) a character can be assigned a single
- class; this is a limitation in the interchar mechanims that often
+ class; this is a limitation in the interchar mechanisms that often
leads to incompatibilities; (2) since the character classes set with
|\babelcharclass| are saved (so that they can be restored), there is a
limit in the number of characters in the \marg{char-list} (which,
@@ -4640,7 +4649,7 @@ layout.lists
The first four are documented elsewhere. The following are by default
|on|, but with |off| can disable some features: |bidi.math| (only
preamble) changes for math or \textsf{amsmath}, |linebreak.sea|,
-|linebreak.sea| and |justify.arabic| the corresponding algorithms,
+|linebreak.cjk| and |justify.arabic| the corresponding algorithms,
|layout.tabular| and |layout.lists| changes for tabular and lists.
Some of the are reverted only to some extent.
@@ -4687,7 +4696,7 @@ options (like paragraph direction with |bidi.text|).
\end{verbatim}
\textit{before} loading babel. This way, when the document begins
the sequence is (1) make \verb/|/ active (\textsf{ltxdoc}); (2) make
- it unactive (your settings); (3) make babel shorthands active
+ it inactive (your settings); (3) make babel shorthands active
(\textsf{babel)}; (4) reload \textsf{hhline} (\textsf{babel}, now
with the correct catcodes for \verb/|/ and
\verb|:|).\catcode`\|=\active
@@ -4957,8 +4966,8 @@ recommended.
\label{contribute}
Currently, the easiest way to contribute a new language is by taking
-one the the 500 or so |ini| templates available on GitHub as a basis.
-Just make a pull request o dowonload it and then, after filling the
+one of the 500 or so |ini| templates available on GitHub as a basis.
+Just make a pull request or download it and then, after filling the
fields, sent it to me. Fell free to ask for help or to make feature
requests.
@@ -5203,7 +5212,7 @@ The \TeX book states: ``Plain \TeX\ includes a macro called
all characters that have a special category code.'' \cite[p.~380]{DEK}
It is used to set text `verbatim'. To make this work if more
characters get a special category code, you have to add this character
-to the macro |\dospecial|. \LaTeX\ adds another macro called
+to the macro |\dospecials|. \LaTeX\ adds another macro called
|\@sanitize| representing the same character set, but without the
curly braces. The macros |\bbl at add@special|\meta{char} and
|\bbl at remove@special|\meta{char} add and remove the character
@@ -5616,7 +5625,7 @@ wouldn’t exist.
%
% The \babel{} installer extends \textsf{docstrip} with a few
% ``pseudo-guards'' to set ``variables'' used at installation time.
-% They are used with |<||@name@>| at the appropiated places in the
+% They are used with |<||@name@>| at the appropriate places in the
% source code and defined with either
% $\langle\langle$\textit{name}=\textit{value}$\rangle\rangle$, or with
% a series of lines between
@@ -5646,8 +5655,8 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.97.33765>>
-%<<date=2023/12/03>>
+%<<version=3.98>>
+%<<date=2023/12/06>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -5874,14 +5883,14 @@ wouldn’t exist.
\edef#1{\the\toks@}}
% \end{macrocode}
%
-% An extensison to the previous macro. It takes into account the
+% An extension to the previous macro. It takes into account the
% parameters, and it is string based (ie, if you replace |elax| by
% |ho|, then |\relax| becomes |\rho|). No checking is done at all,
% because it is not a general purpose macro, and it is used by \babel{}
% only when it works (an example where it does \textit{not} work is in
% |\bbl at TG@@date|, and also fails if there are macros with spaces,
% because they are retokenized). It may change! (or even merged with
-% |\bbl at replace|; I'm not sure ckecking the replacement is really
+% |\bbl at replace|; I'm not sure checking the replacement is really
% necessary or just paranoia).
%
% \begin{macrocode}
@@ -6116,7 +6125,7 @@ wouldn’t exist.
% \end{macrocode}
%
% This file also takes care of a number of compatibility issues with
-% other packages an defines a few aditional package options. Apart from
+% other packages an defines a few additional package options. Apart from
% all the language options below we also have a few options that
% influence the behavior of language definition files.
%
@@ -6140,7 +6149,7 @@ wouldn’t exist.
%
% If the format created a list of loaded languages (in
% |\bbl at languages|), get the name of the 0-th to show the actual
-% language used. Also avaliable with |base|, because it just shows
+% language used. Also available with |base|, because it just shows
% info.
%
% \begin{macrocode}
@@ -6172,7 +6181,7 @@ wouldn’t exist.
% it exits.
%
% Now the \texttt{base} option. With it we can define (and load, with
-% \luatex) hyphenation patterns, even if we are not interesed in the
+% \luatex) hyphenation patterns, even if we are not interested in the
% rest of babel.
%
% \begin{macrocode}
@@ -6392,7 +6401,7 @@ wouldn’t exist.
% \end{macrocode}
%
% The following is ignored with |shorthands=off|, since it is
-% intended to take some aditional actions for certain chars.
+% intended to take some additional actions for certain chars.
%
% \begin{macrocode}
\bbl at ifshorthand{'}%
@@ -6831,7 +6840,7 @@ wouldn’t exist.
%
% The macro |\bbl at set@language| takes care of switching the language
% environment \emph{and} of writing entries on the auxiliary files.
-% For historial reasons, language names can be either |language| of
+% For historical reasons, language names can be either |language| of
% |\language|. To catch either form a trick is used, but
% unfortunately as a side effect the catcodes of letters in
% |\languagename| are messed up. This is a bug, but preserved for
@@ -8027,7 +8036,7 @@ wouldn’t exist.
%
% The very first thing to do is saving the original catcode and the
% original definition, even if not active, which is possible
-% (undefined characters require a special treatement to avoid
+% (undefined characters require a special treatment to avoid
% making them |\relax| and preserving some degree of protection).
%
% \begin{macrocode}
@@ -8466,14 +8475,14 @@ wouldn’t exist.
%
% \begin{macro}{\defineshorthand}
%
-% Currently we only support two groups of user level shorthands,
-% named internally |user| and |user@<lang>| (language-dependent
-% user shorthands). By default, only the first one is taken into
-% account, but if the former is also used (in the optional argument
-% of |\defineshorthand|) a new level is inserted for it
-% (|user at generic|, done by |\bbl at set@user at generic|); we make also
-% sure |{}| and |\protect| are taken into account in this new top
-% level.
+% Currently we only support two groups of user level shorthands,
+% named internally |user| and |user@<lang>| (language-dependent
+% user shorthands). By default, only the first one is taken into
+% account, but if the former is also used (in the optional argument
+% of |\defineshorthand|) a new level is inserted for it
+% (|user at generic|, done by |\bbl at set@user at generic|); we make also
+% sure |{}| and |\protect| are taken into account in this new top
+% level.
%
% \begin{macrocode}
\def\user at language@group{user@\language at group}
@@ -8501,12 +8510,12 @@ wouldn’t exist.
%
% \begin{macro}{\languageshorthands}
%
-% A user level command to change the language from which shorthands
-% are used. Unfortunately, \babel{} currently does not keep track
-% of defined groups, and therefore there is no way to catch a
-% possible change in casing to fix it in the same way languages names
-% are fixed. [TODO].
-%
+% A user level command to change the language from which shorthands
+% are used. Unfortunately, \babel{} currently does not keep track
+% of defined groups, and therefore there is no way to catch a
+% possible change in casing to fix it in the same way languages names
+% are fixed. [TODO].
+% %
% \begin{macrocode}
\def\languageshorthands#1{\def\language at group{#1}}
% \end{macrocode}
@@ -8514,11 +8523,12 @@ wouldn’t exist.
% \end{macro}
%
% \begin{macro}{\aliasshorthand}
-% \textit{Deprecated}. First the new shorthand needs to be
-% initialized. Then, we define the new shorthand in terms of the
-% original one, but note with |\aliasshorthands{"}{/}| is
-% |\active at prefix /\active at char/|, so we still need to let the
-% lattest to |\active at char"|.
+%
+% \textit{Deprecated}. First the new shorthand needs to be
+% initialized. Then, we define the new shorthand in terms of the
+% original one, but note with |\aliasshorthands{"}{/}| is
+% |\active at prefix /\active at char/|, so we still need to let the
+% latter to |\active at char"|.
%
% \begin{macrocode}
\def\aliasshorthand#1#2{%
@@ -8557,9 +8567,10 @@ wouldn’t exist.
%
% \begin{macro}{\shorthandon}
% \begin{macro}{\shorthandoff}
-% The first level definition of these macros just passes the
-% argument on to |\bbl at switch@sh|, adding |\@nil| at the end to
-% denote the end of the list of characters.
+%
+% The first level definition of these macros just passes the
+% argument on to |\bbl at switch@sh|, adding |\@nil| at the end to
+% denote the end of the list of characters.
%
% \begin{macrocode}
\newcommand*\shorthandon[1]{\bbl at switch@sh\@ne#1\@nnil}
@@ -8570,19 +8581,19 @@ wouldn’t exist.
%
% \begin{macro}{\bbl at switch@sh}
%
-% The macro |\bbl at switch@sh| takes the list of characters apart one
-% by one and subsequently switches the category code of the
-% shorthand character according to the first argument of
-% |\bbl at switch@sh|.
+% The macro |\bbl at switch@sh| takes the list of characters apart one
+% by one and subsequently switches the category code of the
+% shorthand character according to the first argument of
+% |\bbl at switch@sh|.
%
-% But before any of this switching takes place we make sure that the
-% character we are dealing with is known as a shorthand character.
-% If it is, a macro such as |\active at char"| should exist.
+% But before any of this switching takes place we make sure that the
+% character we are dealing with is known as a shorthand character.
+% If it is, a macro such as |\active at char"| should exist.
%
-% Switching off and on is easy -- we just set the category code to
-% `other' (12) and |\active|. With the starred version, the original
-% catcode and the original definition, saved in
-% |@initiate at active@char|, are restored.
+% Switching off and on is easy -- we just set the category code to
+% `other' (12) and |\active|. With the starred version, the original
+% catcode and the original definition, saved in
+% |@initiate at active@char|, are restored.
%
% \begin{macrocode}
\def\bbl at switch@sh#1#2{%
@@ -8621,8 +8632,8 @@ wouldn’t exist.
% \end{macro}
% \end{macro}
%
-% Note the value is that at the expansion time; eg, in the preample
-% shorhands are usually deactivated.
+% Note the value is that at the expansion time; eg, in the preamble
+% shorthands are usually deactivated.
%
% \begin{macrocode}
\def\babelshorthand{\active at prefix\babelshorthand\bbl at putsh}
@@ -8694,15 +8705,15 @@ wouldn’t exist.
% \end{macro}
% \end{macro}
%
-% Usually the |~| is active and expands to \verb*=\penalty\@M\ =.
-% When it is written to the \file{.aux} file it is written
-% expanded. To prevent that and to be able to use the character |~|
-% as a start character for a shorthand, it is redefined here as a
-% one character shorthand on system level. The system declaration
-% is in most cases redundant (when |~| is still a non-break space),
-% and in some cases is inconvenient (if |~| has been redefined);
-% however, for backward compatibility it is maintained (some
-% existing documents may rely on the \babel{} value).
+% Usually the |~| is active and expands to \verb*=\penalty\@M\ =.
+% When it is written to the \file{.aux} file it is written
+% expanded. To prevent that and to be able to use the character |~|
+% as a start character for a shorthand, it is redefined here as a
+% one character shorthand on system level. The system declaration
+% is in most cases redundant (when |~| is still a non-break space),
+% and in some cases is inconvenient (if |~| has been redefined);
+% however, for backward compatibility it is maintained (some
+% existing documents may rely on the \babel{} value).
%
% \begin{macrocode}
\initiate at active@char{~}
@@ -8739,6 +8750,7 @@ wouldn’t exist.
% Language attributes provide a means to give the user control over
% which features of the language definition files he wants to
% enable.
+%
% \begin{macro}{\languageattribute}
%
% The macro |\languageattribute| checks whether its arguments are
@@ -8755,10 +8767,10 @@ wouldn’t exist.
\bbl at vforeach{#2}{%
% \end{macrocode}
%
-% We want to make sure that each attribute is selected only once;
-% therefore we store the already selected attributes in
-% |\bbl at known@attribs|. When that control sequence is not yet
-% defined this attribute is certainly not selected before.
+% To make sure each attribute is selected only once, we store the
+% already selected attributes in |\bbl at known@attribs|. When that
+% control sequence is not yet defined this attribute is certainly
+% not selected before.
%
% \begin{macrocode}
\ifx\bbl at known@attribs\@undefined
@@ -8773,9 +8785,9 @@ wouldn’t exist.
\else
% \end{macrocode}
%
-% When we end up here the attribute is not selected before. So, we
-% add it to the list of selected attributes and execute the
-% associated \TeX-code.
+% When we end up here the attribute is not selected before. So, we
+% add it to the list of selected attributes and execute the
+% associated \TeX-code.
%
% \begin{macrocode}
\bbl at exp{%
@@ -9182,7 +9194,7 @@ wouldn’t exist.
%
% \subsection{Multiencoding strings}
%
-% The aim following commands is to provide a commom interface for
+% The aim following commands is to provide a common interface for
% strings in several encodings. They also contains several hooks which
% can be used by \luatex{} and \xetex. The code is organized here with
% pseudo-guards, so we start with the basic commands.
@@ -9267,7 +9279,7 @@ wouldn’t exist.
%
% Parse the encoding info to get the label, input, and font parts.
%
-% Select the behavior of |\SetString|. Thre are two main cases,
+% Select the behavior of |\SetString|. There are two main cases,
% depending of if there is an optional argument: without it and
% |strings=encoded|, strings are defined
% always; otherwise, they are set only if they are still undefined
@@ -10149,7 +10161,7 @@ wouldn’t exist.
%
% |\babelprovide| is a general purpose tool for creating and modifying
% languages. It creates the language infrastructure, and loads, if
-% requested, an |ini| file. It may be used in conjunction to previouly
+% requested, an |ini| file. It may be used in conjunction to previously
% loaded |ldf| files.
%
% \begin{macrocode}
@@ -11017,22 +11029,24 @@ wouldn’t exist.
% \end{macrocode}
%
% The |characters| section also stores the values, but |casing| is
-% treated in a different fashion.
+% treated in a different fashion. Much like transforms, a set of
+% commands calling the parser are stored in |\bbl at release@casing|,
+% which is executed in |\babelprovide|.
%
% \begin{macrocode}
\def\bbl at maybextx{-\bbl at csarg\ifx{extx@\languagename}\@empty x-\fi}
\def\bbl at inikv@characters#1#2{%
- \bbl at ifsamestring{#1}{casing}%
+ \bbl at ifsamestring{#1}{casing}% eg, casing = uV
{\bbl at exp{%
\\\g at addto@macro\\\bbl at release@casing{%
- \\\SetCaseMapping{\languagename}{\unexpanded{#2}}}}}%
- {\in@{$casing.}{$#1}%
+ \\\bbl at casemapping{}{\languagename}{\unexpanded{#2}}}}}%
+ {\in@{$casing.}{$#1}% eg, casing.Uv = uV
\ifin@
\lowercase{\def\bbl at tempb{#1}}%
\bbl at replace\bbl at tempb{casing.}{}%
\bbl at exp{\\\g at addto@macro\\\bbl at release@casing{%
- \\\SetCaseMapping
- [\\\bbl at maybextx\bbl at tempb]{\languagename}{\unexpanded{#2}}}}%
+ \\\bbl at casemapping
+ {\\\bbl at maybextx\bbl at tempb}{\languagename}{\unexpanded{#2}}}}%
\else
\bbl at inikv{#1}{#2}%
\fi}}
@@ -11453,7 +11467,7 @@ wouldn’t exist.
\fi
\AtBeginDocument{%
\bbl at patchfont{\bbl at xenohyph}%
- \expandafter\select at language\expandafter{\languagename}}%
+ {\expandafter\select at language\expandafter{\languagename}}}%
\fi}}%
\fi
\bbl at csarg\bbl at toglobal{lsys@#1}}
@@ -11568,7 +11582,7 @@ wouldn’t exist.
\def\bbl at alphnumeral#1#2{%
\expandafter\bbl at alphnumeral@i\number#2 76543210\@@{#1}}
\def\bbl at alphnumeral@i#1#2#3#4#5#6#7#8\@@#9{%
- \ifcase\@car#8\@nil\or % Currenty <10000, but prepared for bigger
+ \ifcase\@car#8\@nil\or % Currently <10000, but prepared for bigger
\bbl at alphnumeral@ii{#9}000000#1\or
\bbl at alphnumeral@ii{#9}00000#1#2\or
\bbl at alphnumeral@ii{#9}0000#1#2#3\or
@@ -11639,7 +11653,8 @@ wouldn’t exist.
\else
\def\bbl at utftocode#1{\expandafter`\string#1}
\fi
-% Still somewhat hackish. WIP.
+% Still somewhat hackish. WIP. Note |\str_if_eq:nnTF| is fully
+% expandable (|\bbl at ifsamestring| isn’t).
\providecommand\BCPdata{}
\ifx\renewcommand\@undefined\else % For plain. TODO. It’s a quick fix
\renewcommand\BCPdata[1]{\bbl at bcpdata@i#1\@empty}
@@ -11662,29 +11677,33 @@ wouldn’t exist.
\DeclareTitlecaseMapping[\@nameuse{bbl at casing@#1}]{#2}{#3}}
\newcommand\BabelLowercaseMapping[3]{%
\DeclareLowercaseMapping[\@nameuse{bbl at casing@#1}]{#2}{#3}}
-% WIP.
-\newcommand\SetCaseMapping[3][]{%
- \def\bbl at tempa##1 ##2{%
- \bbl at casemapping{##1}%
+% \end{macrocode}
+%
+% The parser for |casing| and |casing.|\meta{variant}.
+%
+% \begin{macrocode}
+\def\bbl at casemapping#1#2#3{% 1:variant
+ \def\bbl at tempa##1 ##2{% Loop
+ \bbl at casemapping@i{##1}%
\ifx\@empty##2\else\bbl at afterfi\bbl at tempa##2\fi}%
\edef\bbl at templ{\@nameuse{bbl at casing@#2}#1}% Language code
\def\bbl at tempe{0}% Mode (upper/lower...)
\def\bbl at tempc{#3 }% Casing list
\expandafter\bbl at tempa\bbl at tempc\@empty}
-\def\bbl at casemapping#1{%
+\def\bbl at casemapping@i#1{%
\def\bbl at tempb{#1}%
- \ifcase\bbl at engine % Handle utf8 chars in pdftex, by surrounding them with {}
+ \ifcase\bbl at engine % Handle utf8 in pdftex, by surrounding chars with {}
\@nameuse{regex_replace_all:nnN}%
{[\x{c0}-\x{ff}][\x{80}-\x{bf}]*}{{\0}}\bbl at tempb
\else
- \@nameuse{regex_replace_all:nnN}{.}{{\0}}\bbl at tempb
+ \@nameuse{regex_replace_all:nnN}{.}{{\0}}\bbl at tempb % TODO. needed?
\fi
- \expandafter\bbl at casemapping@i\bbl at tempb\@@}
-\def\bbl at casemapping@i#1#2#3\@@{%
- \in@{#1#3}{<>}%
+ \expandafter\bbl at casemapping@ii\bbl at tempb\@@}
+\def\bbl at casemapping@ii#1#2#3\@@{%
+ \in@{#1#3}{<>}% ie, if <u>, <l>, <t>
\ifin@
\edef\bbl at tempe{%
- \if#2u1 \else\if#2l2 \else\if#2t3 \else\if#2m4 \fi\fi\fi\fi}%
+ \if#2u1 \else\if#2l2 \else\if#2t3 \fi\fi\fi}%
\else
\ifcase\bbl at tempe\relax
\DeclareUppercaseMapping[\bbl at templ]{\bbl at utftocode{#1}}{#2}%
@@ -11758,7 +11777,7 @@ wouldn’t exist.
%
% \section{Adjusting the Babel bahavior}
%
-% A generic high level inteface is provided to adjust some global
+% A generic high level interface is provided to adjust some global
% and general settings.
%
% \begin{macrocode}
@@ -12813,7 +12832,7 @@ wouldn’t exist.
% \textit{except} if a |main| language has been set. In such a
% case, it is not loaded until all options has been processed.
% The following macro inputs the ldf file and does some additional
-% checks (|\input| works, too, but possible errors are not catched).
+% checks (|\input| works, too, but possible errors are not caught).
%
% \begin{macrocode}
\bbl at trace{Language options}
@@ -12938,7 +12957,7 @@ wouldn’t exist.
%
% Now define the corresponding loaders. With package options, assume
% the language exists. With class options, check if the option is a
-% language by checking if the correspondin file exists.
+% language by checking if the corresponding file exists.
%
% \begin{macrocode}
\bbl at foreach\bbl at language@opts{%
@@ -13647,10 +13666,10 @@ wouldn’t exist.
% For historical reasons, \LaTeX{} can select two different series
% (|bx| and |b|), for what is conceptually a single one. This can
% lead to problems when a single family requires several fonts,
-% depending on the language, mainly because ‘subtitutions’ with some
+% depending on the language, mainly because ‘substitutions’ with some
% combinations are not done consistently -- sometimes |bx/sc| is the
% correct font, but sometimes points to |b/n|, even if |b/sc| exists.
-% So, some subtitutions are redefined (in a somewhat hackish way, by
+% So, some substitutions are redefined (in a somewhat hackish way, by
% inspecting if the variant declaration contains |>ssub*|).
%
% \begin{macrocode}
@@ -14669,7 +14688,7 @@ end
% \subsection{CJK line breaking}
%
% Minimal line breaking for CJK scripts, mainly intended for simple
-% documents and short texts as a secundary language. Only line
+% documents and short texts as a secondary language. Only line
% breaking, with a little stretching for justification, without any
% attempt to adjust the spacing. It is based on (but does not strictly
% follow) the Unicode algorithm.
@@ -14828,7 +14847,7 @@ end
\catcode`_=11 \catcode`:=11
\gdef\bblar at nofswarn{\gdef\msg_warning:nnx##1##2##3{}}
\endgroup
-\gdef\bbl at arabicjust{% TODO. Allow for serveral locales.
+\gdef\bbl at arabicjust{% TODO. Allow for several locales.
\let\bbl at arabicjust\relax
\newattribute\bblar at kashida
\directlua{ Babel.attr_kashida = luatexbase.registernumber'bblar at kashida' }%
@@ -24691,7 +24710,7 @@ Babel.cjk_breaks = {
\@onlypreamble\@onlypreamble
% \end{macrocode}
%
-% Mimick \LaTeX's |\AtBeginDocument|; for this to work the user
+% Mimic \LaTeX's |\AtBeginDocument|; for this to work the user
% needs to add |\begindocument| to his file.
%
% \begin{macrocode}
@@ -24711,7 +24730,7 @@ Babel.cjk_breaks = {
\def\AtBeginDocument{\g at addto@macro\@begindocumenthook}
% \end{macrocode}
%
-% We also have to mimick \LaTeX's |\AtEndOfPackage|. Our
+% We also have to mimic \LaTeX's |\AtEndOfPackage|. Our
% replacement macro is much simpler; it stores its argument in
% |\@endofldf|.
%
@@ -24738,7 +24757,7 @@ Babel.cjk_breaks = {
\catcode`\&=4
% \end{macrocode}
%
-% Mimick \LaTeX's commands to define control sequences.
+% Mimic \LaTeX's commands to define control sequences.
%
% \begin{macrocode}
\def\newcommand{\@star at or@long\new at command}
@@ -25055,7 +25074,7 @@ Babel.cjk_breaks = {
%
% For a couple of languages we need the \LaTeX-control sequence
% |\scriptsize| to be available. Because plain \TeX\ doesn't have such
-% a sofisticated font mechanism as \LaTeX\ has, we just |\let| it to
+% a sophisticated font mechanism as \LaTeX\ has, we just |\let| it to
% |\sevenrm|.
%
% \begin{macrocode}
diff --git a/babel.ins b/babel.ins
index c7c578b..88446a4 100644
--- a/babel.ins
+++ b/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2023/12/03}
+\def\filedate{2023/12/06}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/babel.pdf b/babel.pdf
index 04dc5d7..bbf0f87 100644
Binary files a/babel.pdf and b/babel.pdf differ
diff --git a/bbcompat.dtx b/bbcompat.dtx
index b9c3b64..48667a5 100644
--- a/bbcompat.dtx
+++ b/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2023/12/03 v3.97.33765]
+\ProvidesFile{bbcompat.dtx}[2023/12/06 v3.98]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/bbidxglo.dtx b/bbidxglo.dtx
index 58a43d9..37dbd95 100644
--- a/bbidxglo.dtx
+++ b/bbidxglo.dtx
@@ -46,7 +46,7 @@
% \end{macrocode}
%
% \fi
-% \title{Generating the index and chage log for the Babel system}
+% \title{Generating the index and change log for the Babel system}
% \author{Johannes Braams}
% \date{\filedate}
% \maketitle
@@ -73,7 +73,7 @@ level '>'
%
% Because the \babel\ system consists of so many files the default
% codeline numbering scheme of the \Lopt{doc} package has been
-% adapted. The line numbers consist of two parts seperated with a
+% adapted. The line numbers consist of two parts separated with a
% dot. This has to made known to the \mkidx\ program when it
% produces the index.
%
diff --git a/locale/fa/babel-fa.ini b/locale/fa/babel-fa.ini
index 050ef4f..48e2dec 100644
--- a/locale/fa/babel-fa.ini
+++ b/locale/fa/babel-fa.ini
@@ -29,18 +29,14 @@ derivate = no
[captions]
preface = پیشگفتار
-ref = مراجع
-; ref = مرجعها % check
+ref = مرجعها
abstract = چکیده
bib = کتابنامه
chapter = فصل
appendix = پیوست
-contents = فهرست مطالب
-; contents = فهرست % check
-listfigure = لیست تصاویر
-; listfigure = فهرست شکلها % check
-listtable = لیست جداول
-; listtable = فهرست جدولها % check
+contents = فهرست
+listfigure = فهرست شکلها
+listtable = فهرست جدولها
index = نمایه
figure = شكل
table = جدول
diff --git a/locale/la/babel-la-x-classic.ini b/locale/la/babel-la-x-classic.ini
index 6461ba3..df7497e 100644
--- a/locale/la/babel-la-x-classic.ini
+++ b/locale/la/babel-la-x-classic.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.6
-date = 2023-06-25
+version = 1.7
+date = 2023-12-03
name.english = Classical Latin
name.babel = classicallatin
tag.bcp47 = la-x-classic
diff --git a/locale/la/babel-la-x-ecclesia.ini b/locale/la/babel-la-x-ecclesia.ini
index fc2b777..01291c6 100644
--- a/locale/la/babel-la-x-ecclesia.ini
+++ b/locale/la/babel-la-x-ecclesia.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.6
-date = 2023-06-25
+version = 1.7
+date = 2023-12-03
name.english = Ecclesiastical Latin
name.babel = ecclesiasticallatin
tag.bcp47 = la-x-ecclesia
diff --git a/locale/la/babel-la-x-medieval.ini b/locale/la/babel-la-x-medieval.ini
index 0af0887..2430377 100644
--- a/locale/la/babel-la-x-medieval.ini
+++ b/locale/la/babel-la-x-medieval.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.5
-date = 2022-07-28
+version = 1.6
+date = 2023-12-03
name.english = Medieval Latin
name.babel = medievallatin
tag.bcp47 = la-x-medieval
diff --git a/locale/la/babel-la.ini b/locale/la/babel-la.ini
index 041a743..73f3fd2 100644
--- a/locale/la/babel-la.ini
+++ b/locale/la/babel-la.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.4
-date = 2021-11-15
+version = 1.5
+date = 2023-12-03
name.english = Latin
name.babel = latin
name.polyglossia = latin
More information about the latex3-commits
mailing list.