summaryrefslogtreecommitdiff
path: root/macros/latex/required/babel
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/required/babel')
-rw-r--r--macros/latex/required/babel/base/README.md20
-rw-r--r--macros/latex/required/babel/base/babel.dtx205
-rw-r--r--macros/latex/required/babel/base/babel.ins2
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin847060 -> 847722 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
5 files changed, 125 insertions, 104 deletions
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 7a150533d2..848148e3af 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,4 +1,4 @@
-## Babel 3.64
+## Babel 3.65
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -8,9 +8,9 @@ is a set of ini files for about 250 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.64 are described in:
+Changes in version 3.65 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-3.64.html
+https://latex3.github.io/babel/news/whats-new-in-babel-3.65.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -46,6 +46,9 @@ respective authors.
### Summary of Latest changes
```
+3.65 2021-10-19
+ * Fixes a severe bug with 'spanish' introduced in 3.64 (#154).
+
3.64 2021-10-13
* Added a few counters to CJK.
* Restored the previous behavior of \selectlanguage with
@@ -55,17 +58,6 @@ respective authors.
- name.babel in ini files set inconsistently (#149).
* Now babel.def and babel.sty are separate files (for
Plain-based formats and LaTeX, respectively).
-
-3.63 2021-07-22
- * Fixes a severe bug with CJK and XeTeX introduced in 3.62.
-
-3.62 2021-07-19
- * No more errors with unknown languages in aux file.
- * Preliminary support for \AddToHook.
- * Tentative extension for provide=.
- * Fixes:
- - Locale dependent quotes with CJK (#131).
- - Babel and hyperref prevent changes to the \LaTeX logo (#138).
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 6fe5db94f2..0444c526a7 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2021/10/13 v3.64 The Babel package]
+\ProvidesFile{babel.dtx}[2021/10/19 v3.65 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -5026,8 +5026,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.64>>
-%<<date=2021/10/13>>
+%<<version=3.65>>
+%<<date=2021/10/19>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -5696,11 +5696,7 @@ help from Bernd Raichle, for which I am grateful.
\ifin@
\expandafter\bbl@tempa\CurrentOption\bbl@tempa
\else
- \bbl@xin@{,\CurrentOption,}{,\bbl@language@opts,}%
- \ifin@
- \bbl@exp{\\\bbl@replace\\\bbl@language@opts{,\CurrentOption,}{}}%
- \fi
- \edef\bbl@language@opts{\bbl@language@opts,\CurrentOption,}
+ \bbl@add@list\bbl@language@opts{\CurrentOption}%
\fi}
% \end{macrocode}
%
@@ -5812,7 +5808,9 @@ help from Bernd Raichle, for which I am grateful.
%
% \begin{macrocode}
\ifx\bbl@opt@main\@nnil\else
- \edef\bbl@language@opts{\bbl@language@opts,\bbl@opt@main,}
+ \edef\bbl@language@opts{%
+ \ifx\bbl@language@opts\@empty\else\bbl@language@opts,\fi
+ \bbl@opt@main}
\fi
% \end{macrocode}
%
@@ -12007,69 +12005,49 @@ help from Bernd Raichle, for which I am grateful.
\fi
% \end{macrocode}
%
-% Recognizing global options in packages not having a closed set of
-% them is not trivial, as for them to be processed they must be defined
-% explicitly. So, package options not yet taken into account and stored
-% in |bbl@language@opts| are assumed to be existing languages (note
-% this list also contains the language given with |main| as the last
-% element). If not declared above, the names of the option and the file
-% are the same. There are two steps -- first process option names and
-% collect the result, which then do the actual declarations.
%
-% To allow multiple overlapping replacements, commas in
-% |\bbl@language@opts| are doubled.
+% Recognizing global options in packages not having a closed set of
+% them is not trivial, as for them to be processed they must be
+% defined explicitly. So, package options not yet taken into
+% account and stored in |bbl@language@opts| are assumed to be
+% languages (note this list also contains the language given with
+% |main|). If not declared above, the names of the option and the
+% file are the same.
%
% \begin{macrocode}
-\let\bbl@elt\relax
-\let\bbl@tempe\@empty
-\bbl@foreach\@classoptionslist{%
- \bbl@xin@{,#1,$}{\bbl@language@opts$}% Match last
- \ifin@\else
- \bbl@xin@{,#1,}{\bbl@language@opts}% Match non-last
- \ifin@
- \bbl@replace\bbl@language@opts{,#1,}{,,}%
- \edef\bbl@tempe{\bbl@tempe\bbl@elt{3}{#1}}%
- \else
- \babel@savecnt\z@ % Use as temp
- \ifnum\bbl@iniflag<\thr@@ % Optimization: 3 = always ini
- \IfFileExists{#1.ldf}{\advance\babel@savecnt\@ne}{}%
- \fi
- \ifnum\bbl@iniflag>\z@ % Optimization: 0 = always ldf
- \IfFileExists{babel-#1.tex}{\advance\babel@savecnt\tw@}{}%
- \fi
- \ifnum\babel@savecnt>\z@
- \edef\bbl@tempe{\bbl@tempe\bbl@elt{\the\babel@savecnt}{#1}}%
- \fi
- \fi
- \fi}
-%
-\let\bbl@savemain\@empty
+\let\bbl@tempc\relax
\bbl@foreach\bbl@language@opts{%
- \edef\bbl@tempe{\bbl@tempe\bbl@elt{3}{#1}}}
-\def\bbl@elt#1#2#3{%
- \ifx#3\relax % if last
- \bbl@ifunset{ds@#2}{}%
- {\bbl@exp{\def\\\bbl@savemain{\\\DeclareOption{#2}{\[ds@#2]}}}}%
- \bbl@add\bbl@savemain{\bbl@elt{#1}{#2}}% Save main
- \DeclareOption{#2}{}%
- \else
- \ifnum\bbl@iniflag<\tw@ % other as ldf
- \ifodd#1\relax % Class: if ldf exists 1,3. Package: always 3
- \bbl@ifunset{ds@#2}%
- {\DeclareOption{#2}{\bbl@load@language{#2}}}%
- {}%
- \fi
- \else % other as ini
- \ifnum#1>\@ne % % Class: if ini exists 2,3. Package: always 3
- \DeclareOption{#2}{%
- \bbl@ldfinit
- \babelprovide[import]{#2}%
- \bbl@afterldf{}}%
- \fi
- \fi
- \fi
- #3}
-\bbl@tempe\relax % \relax catches last
+ \ifcase\bbl@iniflag % Default
+ \bbl@ifunset{ds@#1}%
+ {\DeclareOption{#1}{\bbl@load@language{#1}}}%
+ {}%
+ \or % provide=*
+ \@gobble % case 2 same as 1
+ \or % provide+=*
+ \bbl@ifunset{ds@#1}%
+ {\IfFileExists{#1.ldf}{}%
+ {\IfFileExists{babel-#1.tex}{}{\@namedef{ds@#1}{}}}}%
+ {}%
+ \bbl@ifunset{ds@#1}%
+ {\def\bbl@tempc{#1}%
+ \DeclareOption{#1}{%
+ \ifnum\bbl@iniflag>\@ne
+ \bbl@ldfinit
+ \babelprovide[import]{#1}%
+ \bbl@afterldf{}%
+ \else
+ \bbl@load@language{#1}%
+ \fi}}%
+ {}%
+ \or % provide*=*
+ \def\bbl@tempc{#1}%
+ \bbl@ifunset{ds@#1}%
+ {\DeclareOption{#1}{%
+ \bbl@ldfinit
+ \babelprovide[import]{#1}%
+ \bbl@afterldf{}}}%
+ {}%
+ \fi}
% \end{macrocode}
%
% Now, we make sure an option is explicitly declared for any language
@@ -12078,7 +12056,54 @@ help from Bernd Raichle, for which I am grateful.
% accessing the file system just to see if the option could be a
% language.
%
+% \begin{macrocode}
+\let\bbl@tempb\@nnil
+\let\bbl@clsoptlst\@classoptionslist
+\bbl@foreach\@classoptionslist{%
+ \bbl@ifunset{ds@#1}%
+ {\IfFileExists{#1.ldf}%
+ {\def\bbl@tempb{#1}%
+ \DeclareOption{#1}{%
+ \ifnum\bbl@iniflag>\@ne
+ \bbl@ldfinit
+ \babelprovide[import]{#1}%
+ \bbl@afterldf{}%
+ \else
+ \bbl@load@language{#1}%
+ \fi}}%
+ {\IfFileExists{babel-#1.tex}%
+ {\def\bbl@tempb{#1}%
+ \ifnum\bbl@iniflag>\z@
+ \DeclareOption{#1}{%
+ \ifnum\bbl@iniflag>\@ne
+ \bbl@ldfinit
+ \babelprovide[import]{#1}%
+ \bbl@afterldf{}%
+ \fi}%
+ \fi}%
+ {}}}%
+ {}}
+% \end{macrocode}
+%
% If a main language has been set, store it for the third pass.
+%
+% \begin{macrocode}
+\ifnum\bbl@iniflag=\z@\else
+ \ifx\bbl@opt@main\@nnil
+ \ifx\bbl@tempc\relax
+ \let\bbl@opt@main\bbl@tempb
+ \else
+ \let\bbl@opt@main\bbl@tempc
+ \fi
+ \fi
+\fi
+\ifx\bbl@opt@main\@nnil\else
+ \expandafter
+ \let\expandafter\bbl@loadmain\csname ds@\bbl@opt@main\endcsname
+ \expandafter\let\csname ds@\bbl@opt@main\endcsname\@empty
+\fi
+% \end{macrocode}
+%
% And we are done, because all options for this pass has been
% declared. Those already processed in the first pass are just
% ignored.
@@ -12120,27 +12145,31 @@ help from Bernd Raichle, for which I am grateful.
and a package option. Use 'main=\bbl@tempc' as\\%
option. Reported}%
\fi
-\fi
-\def\bbl@elt#1#2{% main
- \ifodd\bbl@iniflag % as ini = 1(=), 3(*=)
- \ifnum#1>\@ne % % Class: if ini exists 2,3. Package: always 3
- \def\CurrentOption{#2}% Directly, because luatexbase
- \bbl@ldfinit
- \babelprovide[\bbl@opt@provide,main,import]{#2}%
- \bbl@afterldf{}%
- \DeclareOption{#2}{}%
- \fi
- \else % as ldf = 0(no), 2(+=)
- \ifodd#1\relax % Class: if ldf exists 1,3. Package: always 3
- \bbl@ifunset{ds@#2}%
- {\DeclareOption{#2}{\bbl@load@language{#2}}}%
- {}%
- \ExecuteOptions{#2}%
+\else
+ \ifodd\bbl@iniflag % case 1,3
+ \bbl@ldfinit
+ \let\CurrentOption\bbl@opt@main
+ \ifx\bbl@opt@provide\@nnil
+ \bbl@exp{\\\babelprovide[import,main]{\bbl@opt@main}}%
+ \else
+ \bbl@exp{\\\bbl@forkv{\@nameuse{@raw@opt@babel.sty}}}{%
+ \bbl@xin@{,provide,}{,#1,}%
+ \ifin@
+ \def\bbl@opt@provide{#2}%
+ \bbl@replace\bbl@opt@provide{;}{,}%
+ \fi}%
+ \bbl@exp{%
+ \\\babelprovide[\bbl@opt@provide,import,main]{\bbl@opt@main}}%
\fi
- \fi}
-\bbl@savemain
-\DeclareOption*{}%
-\ProcessOptions*
+ \bbl@afterldf{}%
+ \else % case 0,2
+ \chardef\bbl@iniflag\z@ % Force ldf
+ \expandafter\let\csname ds@\bbl@opt@main\endcsname\bbl@loadmain
+ \ExecuteOptions{\bbl@opt@main}
+ \DeclareOption*{}%
+ \ProcessOptions*
+ \fi
+\fi
\def\AfterBabelLanguage{%
\bbl@error
{Too late for \string\AfterBabelLanguage}%
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index ae4bbb527c..473f06dfa7 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/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{2021/10/13}
+\def\filedate{2021/10/19}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index 36efb6e78f..7345ad7b76 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index d45cedea36..c81d3ae4e7 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2021/10/13 v3.64]
+\ProvidesFile{bbcompat.dtx}[2021/10/19 v3.65]
%</dtx>
%
%% File 'bbcompat.dtx'