summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-08 03:01:02 +0000
committerNorbert Preining <norbert@preining.info>2024-02-08 03:01:02 +0000
commitbaa694429155689a0e8bba804206961689e0a606 (patch)
treee7074074037b2817025ce6abfeddc286d6b1eff7 /macros/latex
parent50fcb5024d3243d7e1601abf72b5f4444dd618b6 (diff)
CTAN sync 202402080301
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md36
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty6
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty13
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty6
-rw-r--r--[-rwxr-xr-x]macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdfbin42671 -> 42671 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex2
-rw-r--r--[-rwxr-xr-x]macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpgbin45868 -> 45868 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/LICENSE2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/README.md7
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-black.pdfbin0 -> 362165 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-blue.pdfbin0 -> 362787 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.pdfbin631666 -> 1627435 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.tex71
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-green.pdfbin0 -> 362482 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-leftframetitle.pdfbin318798 -> 336774 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-sidebar.pdfbin344913 -> 378979 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-test.pdfbin320313 -> 362637 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/tex/beamerthemeAmurmaple.sty27
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx14
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin596404 -> 598005 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex18
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md12
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin647826 -> 647453 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-compound.dtx11
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin705443 -> 705436 bytes
-rw-r--r--macros/latex/required/babel/base/README.md16
-rw-r--r--macros/latex/required/babel/base/babel-code.pdfbin642704 -> 647075 bytes
-rw-r--r--macros/latex/required/babel/base/babel.dtx1958
-rw-r--r--macros/latex/required/babel/base/babel.ins3
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin419409 -> 421738 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
35 files changed, 1043 insertions, 1173 deletions
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
index d3ae57ada4..0e8ce04747 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
@@ -1 +1 @@
-Use Fira font also for math.
+Fix numbering of "focus" slides.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
index a131b97bb8..e23ec03aab 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
@@ -1,9 +1,9 @@
-# Focus v3.3.0
+# Focus v3.4.0
A presentation theme for LaTeX Beamer that aims at a clean and minimalist design,
so to minimize distractions and put the focus directly on the content.
This package is available through the [CTAN](https://ctan.org/pkg/beamertheme-focus) in
-most LaTeX distributions such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
+most LaTeX distributions such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeX Live](https://ctan.org/pkg/texlive).
Requires the packages [appendixnumberbeamer](https://ctan.org/pkg/appendixnumberbeamer),
[fira](https://ctan.org/pkg/fira) and [PGF/TikZ](https://ctan.org/pkg/pgf)
@@ -13,16 +13,16 @@ Demo
----
A full demo is available. Refer to `focus-demo.tex` and `focus-demo.pdf`.
-![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-titlepage.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-subsectionpage.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-typeset.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-focus.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-references.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-appendix.jpg)
+![](https://github.com/pcafrica/focus-beamertheme/blob/main/focus-demo/demo-titlepage.jpg)
+![](https://github.com/pcafrica/focus-beamertheme/blob/main/focus-demo/demo-subsectionpage.jpg)
+![](https://github.com/pcafrica/focus-beamertheme/blob/main/focus-demo/demo-typeset.jpg)
+![](https://github.com/pcafrica/focus-beamertheme/blob/main/focus-demo/demo-focus.jpg)
+![](https://github.com/pcafrica/focus-beamertheme/blob/main/focus-demo/demo-references.jpg)
+![](https://github.com/pcafrica/focus-beamertheme/blob/main/focus-demo/demo-appendix.jpg)
Download
========
-Download the latest release by following [this](https://github.com/elauksap/focustheme/releases) link.
+Download the latest release by following [this](https://github.com/pcafrica/focus-beamertheme/releases) link.
Instructions
============
@@ -49,7 +49,7 @@ For example:
```
produces the following ice-blue color theme.
-![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-titlepage-color.jpg)
+![](https://github.com/pcafrica/focus-beamertheme/blob/main/focus-demo/demo-titlepage-color.jpg)
Customize the footline
----------------------
@@ -95,6 +95,8 @@ This can be changed by using the option _nofirafonts_:
\usetheme[nofirafonts]{focus}
```
+> **Warning**: if XeTeX returns an error about the font not being found, please follow the instructions at the [TeX Live Guide, section 3.4.4](https://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-330003.4.4).
+
License
=======
This software is released under the [GNU GPL v3.0 License](https://www.gnu.org/licenses/gpl-3.0.en.html).
@@ -109,14 +111,8 @@ Contact information are available to registered users on my Github profile page.
Contributors
============
-Focus was initially created and designed by [Pasquale Africa](https://github.com/elauksap).
-
-The following people deserve appreciation and acknowledgment for improving the template with
-additions and modifications (in alphabetical order):
-
-- [max](https://github.com/imntl)
-- [MonsieurPi](https://github.com/MonsieurPi)
-- [SFr682k](https://github.com/SFr682k)
-- [Zortaniac](https://github.com/Zortaniac)
+Focus was initially created and designed by [Pasquale Africa](https://github.com/pcafrica).
-A more detailed contribution list is found [here](https://github.com/elauksap/focus-beamertheme/graphs/contributors).
+Many other people deserve appreciation and acknowledgment for improving the template with
+additions and modifications. Please find a detailed list of contributors
+[here](https://github.com/pcafrica/focus-beamertheme/graphs/contributors).
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty
index 657b4eba80..22592e2490 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamercolorthemefocus.sty
@@ -1,7 +1,7 @@
-% Copyright (C) 2018-2022 Pasquale Claudio Africa and the LaTeX community.
+% Copyright (C) 2018 - 2024 Pasquale Claudio Africa and the LaTeX community.
% A full list of contributors can be found at
%
-% https://github.com/elauksap/focus-beamertheme
+% https://github.com/pcafrica/focus-beamertheme
%
% This file is part of beamerthemefocus.
%
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
index e87abb1e1a..ac85907f35 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
@@ -1,7 +1,7 @@
-% Copyright (C) 2018-2022 Pasquale Claudio Africa and the LaTeX community.
+% Copyright (C) 2018 - 2024 Pasquale Claudio Africa and the LaTeX community.
% A full list of contributors can be found at
%
-% https://github.com/elauksap/focus-beamertheme
+% https://github.com/pcafrica/focus-beamertheme
%
% This file is part of beamerthemefocus.
%
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
index bb04821be1..c47554ec71 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
@@ -1,7 +1,7 @@
-% Copyright (C) 2018-2022 Pasquale Claudio Africa and the LaTeX community.
+% Copyright (C) 2018 - 2024 Pasquale Claudio Africa and the LaTeX community.
% A full list of contributors can be found at
%
-% https://github.com/elauksap/focus-beamertheme
+% https://github.com/pcafrica/focus-beamertheme
%
% This file is part of beamerthemefocus.
%
@@ -40,7 +40,7 @@
\usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
\begin{tikzpicture}[overlay, remember picture]
\fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
- \end{tikzpicture}
+ \end{tikzpicture}
}
\vspace{-1.65\baselineskip}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
index f61fec9585..598fe27ece 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
@@ -1,7 +1,7 @@
-% Copyright (C) 2018-2022 Pasquale Claudio Africa and the LaTeX community.
+% Copyright (C) 2018 - 2024 Pasquale Claudio Africa and the LaTeX community.
% A full list of contributors can be found at
%
-% https://github.com/elauksap/focus-beamertheme
+% https://github.com/pcafrica/focus-beamertheme
%
% This file is part of beamerthemefocus.
%
@@ -183,7 +183,7 @@
\ifnum\value{realframenumber}>0%
\begin{tikzpicture}[inner xsep=0.5em, inner ysep=0.5ex]
\clip (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height);
- \fill[footline.fg] (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height);
+ \fill[footline.fg, opacity=0, text opacity=1] (0,0) rectangle ++(\paperwidth,\the\focus@pbar@height);
\ifx\focus@footlineinfo\empty%
\else%
@@ -205,11 +205,6 @@
% Empty footline.
\defbeamertemplate{footline}{none}{}
-% Empty footline for noframenumbering.
-\defbeamertemplate{footline}{noframenumbering}{
- \addtocounter{framenumber}{-1}
-}
-
\DeclareOptionBeamer{numbering}{\def\beamer@focus@numbering{#1}}
\ExecuteOptionsBeamer{numbering=progressbar}
@@ -278,7 +273,7 @@
% Enable noframenumbering option.
\define@key{beamerframe}{noframenumbering}[true]{%
- \setbeamertemplate{footline}[noframenumbering]%
+ \addtocounter{framenumber}{-1}
\setlength{\focus@pbar@height}{0cm}%
\focus@calculatefootheight%
}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
index 9bd962a9c7..e981a6a126 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
@@ -1,7 +1,7 @@
-% Copyright (C) 2018-2022 Pasquale Claudio Africa and the LaTeX community.
+% Copyright (C) 2018 - 2024 Pasquale Claudio Africa and the LaTeX community.
% A full list of contributors can be found at
%
-% https://github.com/elauksap/focus-beamertheme
+% https://github.com/pcafrica/focus-beamertheme
%
% This file is part of beamerthemefocus.
%
@@ -19,7 +19,7 @@
% along with beamerthemefocus. If not, see <http://www.gnu.org/licenses/>.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthemefocus}[2022/03/09 v3.3.0 Focus Beamer theme]
+\ProvidesPackage{beamerthemefocus}[2024/02/07 v3.4.0 Focus Beamer theme]
\mode<presentation>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
index 6a81ce1763..6a81ce1763 100755..100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
index 616b1765b7..4449b796e7 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
@@ -2,7 +2,7 @@
% !BIB TS-program = bibtex
% Full instructions available at:
-% https://github.com/elauksap/focus-beamertheme
+% https://github.com/pcafrica/focus-beamertheme
\documentclass{beamer}
\usetheme{focus}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
index fdd037fc98..fdd037fc98 100755..100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/LICENSE b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/LICENSE
index ffd12ae975..4dd5d1f1ea 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/LICENSE
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2022 Maxime CHUPIN
+Copyright 2024 Maxime CHUPIN
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/README.md b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/README.md
index 76cab58637..b0b7157fed 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/README.md
@@ -7,7 +7,12 @@ This Beamer theme is a suitable theme for my use of Beamer in applied mathematic
```latex
\usetheme{Amurmaple}
```
+## Preview
+![AmurmapleRed](img/beamer-amurmaple-doc.png)![AmurmapleRed2](img/beamer-amurmaple-doc-2.png)
+![AmurmapleBlack](img/beamer-amurmaple-black.png)![AmurmapleBlack2](img/beamer-amurmaple-black-2.png)
+![AmurmapleBlue](img/beamer-amurmaple-blue.png)![AmurmapleBlue2](img/beamer-amurmaple-blue-2.png)
+![AmurmapleGreen](img/beamer-amurmaple-green.png)![AmurmapleGreen2](img/beamer-amurmaple-green-2.png)
## Documentation
See the [PDF file](doc/beamer-amurmaple-doc.pdf).
@@ -22,7 +27,7 @@ Paste the file `beamerthemeAmurmaple.sty` in your local `~/texmf/tex/latex/contr
## Licence
-Copyright (C) 2023 by Maxime CHUPIN
+Copyright (C) 2024 by Maxime CHUPIN
<chupin at ceremade.dauphine.fr>
This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license or (at your option) any later version. The latest version of this license is in [http://www.latex-project.org/lppl.txt](http://www.latex-project.org/lppl.txt) and version 1.3 or later is part of all distributions of LaTeXversion 2005/12/01 or later.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-black.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-black.pdf
new file mode 100644
index 0000000000..9d85022f45
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-black.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-blue.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-blue.pdf
new file mode 100644
index 0000000000..b6bbc6d359
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-blue.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.pdf
index 2a3e760726..33b990248d 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.tex b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.tex
index 9dcd18f6da..4810140210 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.tex
@@ -113,10 +113,10 @@ delaunay,
\title[Amurmaple documentation]{Amurmaple Beamer Theme}
\author[M.~Chupin]{Maxime Chupin}
-\subtitle{documentation\quad v.1.2}
+\subtitle{documentation\quad v.1.3}
\institute[CNRS]{CNRS\\
University of Paris-Dauphine}
-\date{January 30, 2023}
+\date{February 7, 2024}
\titlegraphic{\includegraphics[width=4cm]{logo.png}}
\mail{chupin@ceremade.dauphine.fr}
\webpage{www.ceremade.dauphine.fr/~chupin/}
@@ -179,7 +179,8 @@ theme.
\item \lstinline+xfp+;
\item \lstinline+expl3+;
\item \lstinline+iftex+;
- \item \lstinline+tikz+.
+ \item \lstinline+tikz+;
+ \item \lstinline+fontawesome5+.
\end{itemize}
\end{multicols}
\end{itemize}
@@ -225,12 +226,8 @@ theme.
rule of the \lstinline+rule+ option (default black).
\item[leftframetitle:] that aligns the \lstinline+frametitle+ to the left of
the slide.
- \framebreak
- \item[amurmapleblue:] that changes the main color (\lstinline+structure+) to a
- certain blue (see slide~\ref{sl:color}) ;
- \item[amurmaplegreen:] that changes the main color (\lstinline+structure+) to a
- certain green (see slide~\ref{sl:color});
- \end{description}
+ \end{description}
+
For example, these slides are produced with the following call\footnote{We use
the \emph{Bitstream Charter} font family provided by the package
\emph{Xcharter-Math} with the serif Beamer theme. \fullcite{xcharter-math}.}:
@@ -239,6 +236,40 @@ theme.
\end{CodePreambule}
\end{frame}
+\section{Color Options}
+
+\sepframe
+
+\begin{frame}[allowframebreaks,fragile]{Color Options}\label{sec:coloroptions}
+ Amurmaple theme provides differents color themes that we can chose calling
+ one of the following options. The different color themes are illustrated after.
+\begin{description}
+ \item[amurmapleblue:] that changes the main color (\lstinline+structure+) to a
+certain blue (see slide~\ref{sl:color}) ;
+\item[amurmaplegreen:] that changes the main color (\lstinline+structure+) to a
+certain green (see slide~\ref{sl:color});
+\item[amurmapleblack:] that changes the main color (\lstinline+structure+) to a
+certain black (see slide~\ref{sl:color}).
+\end{description}
+\framebreak
+\framesection{\texttt{amurmapleblue} illustration}
+\begin{center}
+ \includegraphics[width=0.4\linewidth,page=1]{beamer-amurmaple-blue}\quad\includegraphics[width=0.4\linewidth,page=4]{beamer-amurmaple-blue}
+ \par\itshape Examples using the \lstinline+amurmapleblue+ option.
+\end{center}
+\framebreak
+\framesection{\texttt{amurmaplegreen} illustration}
+\begin{center}
+ \includegraphics[width=0.4\linewidth,page=1]{beamer-amurmaple-green}\quad\includegraphics[width=0.4\linewidth,page=4]{beamer-amurmaple-green}
+ \par\itshape Examples using the \lstinline+amurmaplegreen+ option.
+\end{center}
+\framebreak
+\framesection{\texttt{amurmapleblack} illustration}
+\begin{center}
+ \includegraphics[width=0.4\linewidth,page=1]{beamer-amurmaple-black}\quad\includegraphics[width=0.4\linewidth,page=4]{beamer-amurmaple-black}
+ \par\itshape Examples using the \lstinline+amurmapleblack+ option.
+\end{center}
+\end{frame}
\section{Classical Beamer Tools}
@@ -249,6 +280,7 @@ theme.
This theme provides some colors :
\begin{Code}
\definecolor{AmurmapleRed}{rgb}{0.6,0.,0.}
+\definecolor{AmurmapleBlack}{rgb}{0.17,0.17,0.17}
\definecolor{AmurmapleOrange}{RGB}{230,108,17}
\definecolor{AmurmapleBlue}{RGB}{55,119,231}
\definecolor{AmurmapleGreen}{rgb}{0.1,0.4,0.1}
@@ -263,27 +295,8 @@ used for the math definition (see slide~\ref{sl:definition}) and for the
\lstinline+block title example+ Beamer color, the
\textcolor{AmurmapleBlue}{\lstinline+AmurmapleBlue+} for the new environment
\lstinline+information+ (see slide~\ref{sl:information}) and \textcolor{AmurmapleRemarkColor}{\lstinline+AmurmapleRemarkColor+} for the \lstinline+remark+ environment (see slide~\pageref{sl:remark}).
-\framebreak
-
-\framesection{Color Theme Option}\label{sl:color}
-
-This theme provides two theme options to change the color settings:
-\begin{description}
-\item[amurmapleblue] that sets \texttt{AmurmapleBlue!80!black} as \texttt{structure}
- color ;
-\item[amurmaplegreen] that sets \texttt{AmurmapleGreen!80!black} as \texttt{structure}
- color.
-\end{description}
-In fact, internally, four colors are defined: \lstinline+Amurmaple@structure+,
-\lstinline+Amurmaple@alert+, \lstinline+Amurmaple@info+ and
-\lstinline+Amurmaple@example+.
-
-The color theme option is used as follows
-\begin{Code}
- \usetheme[amurmapleblue]{amurmaple}
-\end{Code}
-Note that the \lstinline+AmurmapleRemarkColor+ is not modified.
+Of course, these definitions depend on the chosen color theme (see page~\pageref{sec:coloroptions})
\end{frame}
\subsection{Classical commands}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-green.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-green.pdf
new file mode 100644
index 0000000000..0e98b9c05a
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-green.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-leftframetitle.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-leftframetitle.pdf
index 23c39a39bb..5a3083bb0e 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-leftframetitle.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-leftframetitle.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-sidebar.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-sidebar.pdf
index 3d24e70165..ffa31ab696 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-sidebar.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-sidebar.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-test.pdf b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-test.pdf
index 77ee04f0e6..f34211f533 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-test.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-test.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/tex/beamerthemeAmurmaple.sty b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/tex/beamerthemeAmurmaple.sty
index 99f6b58c89..ddcd68711c 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/tex/beamerthemeAmurmaple.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/tex/beamerthemeAmurmaple.sty
@@ -1,4 +1,4 @@
-% Copyright (C) 2023 by Maxime CHUPIN
+% Copyright (C) 2024 by Maxime CHUPIN
% <chupin at ceremade.dauphine.fr>
% -------------------------------------------------------
%
@@ -16,12 +16,13 @@
% This work has the LPPL maintenance status "author-maintained".
\NeedsTeXFormat{LaTeX2e}[2021-11-15]
-\ProvidesPackage{beamerthemeAmurmaple}[2023/01/30 v.1.2 Theme for the Beamer
+\ProvidesPackage{beamerthemeAmurmaple}[2024/02/07 v.1.3 Theme for the Beamer
class]%
% some colors
\definecolor{AmurmapleRed}{rgb}{0.6,0.,0.}
+\definecolor{AmurmapleBlack}{rgb}{0.17,0.17,0.17}
\definecolor{AmurmapleOrange}{RGB}{230,108,17}
\definecolor{AmurmapleBlue}{RGB}{55,119,231}
\definecolor{AmurmapleGreen}{rgb}{0.1,0.4,0.1}
@@ -50,6 +51,9 @@ class]%
\newif\ifbeamer@am@amurmaplegreen
\beamer@am@amurmaplegreenfalse
\DeclareOptionBeamer{amurmaplegreen}{\beamer@am@amurmaplegreentrue}
+\newif\ifbeamer@am@amurmapleblack
+\beamer@am@amurmapleblackfalse
+\DeclareOptionBeamer{amurmapleblack}{\beamer@am@amurmapleblacktrue}
\newif\ifbeamer@am@sidebar
\beamer@am@sidebarfalse
\DeclareOptionBeamer{sidebarwidth}{\def\amurmaple@sidebarwidth{#1}}
@@ -73,7 +77,7 @@ class]%
\RequirePackage{expl3}
\RequirePackage{iftex}
\RequirePackage{pgfpages}
-
+\RequirePackage{fontawesome5}
\ifbeamer@am@delaunay
@@ -213,6 +217,13 @@ class]%
\colorlet{Amurmaple@info}{AmurmapleRed}
\colorlet{Amurmaple@example}{AmurmapleBlue}
\fi
+\ifbeamer@am@amurmapleblack
+\colorlet{Amurmaple@structure}{AmurmapleBlack}
+\colorlet{Amurmaple@alert}{AmurmapleOrange}
+\colorlet{Amurmaple@info}{AmurmapleRed}
+\colorlet{Amurmaple@example}{AmurmapleBlue}
+\setbeamercolor{description item}{bg=white,fg=Amurmaple@info}
+\fi
\setbeamercolor{structure}{fg=Amurmaple@structure}
\setbeamercolor{itemize item}{fg=structure!60}
@@ -343,8 +354,8 @@ class]%
% itemize enumerate
-\setbeamertemplate{itemize item}{$\blacktriangleright$}
-\setbeamertemplate{itemize subitem}{\small$\blacktriangleright$}
+\setbeamertemplate{itemize item}{\faAngleRight}
+\setbeamertemplate{itemize subitem}{\faAngleDoubleRight}
\setbeamertemplate{enumerate item}
{
\hbox{%
@@ -710,9 +721,9 @@ class]%
%
}
-\newcommand\amurmaple@info{\raisebox{-1mm}{\tikz{\node[circle,fill=Amurmaple@info,align=center,text
- width=1em,inner sep = 0.0mm]
- {\rmfamily\itshape\bfseries\color{white} i};}}}
+\newcommand\amurmaple@info{\raisebox{-0.8mm}{
+ \Large\textcolor{Amurmaple@info}{\faInfoCircle}%
+}}%
\NewDocumentEnvironment{information}{o}{%
\tcbset{leftrule=1mm,rightrule=0mm,toprule=0mm, bottomrule=0mm,%
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index b059543407..944bc72ec4 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2024/02/06}{2024w}
+\ProvidesExplClass{easybook}{2024/02/08}{2024x}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -297,7 +297,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2024/02/06}{2024w}
+\ProvidesExplPackage{easybase}{2024/02/08}{2024x}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -852,7 +852,7 @@
fnafterindent .initial:n = 2em,
fnparskip .skip_set:N = \fnparskip,
fnparskip .initial:n = 0ex plus .1ex,
- fnpara-formatat .tl_set:N = \l__eb_fnpara_format_tl,
+ fnpara-format .tl_set:N = \l__eb_fnpara_format_tl,
fntext-pos .tl_set:N = \l__eb_fntext_position_tl,
fntext-pos .initial:n = super,
fntext-code .code:n = \eb_assign_fntext_code:n {#1},
@@ -993,9 +993,10 @@
}
}
}
-\cs_set:Npn \@makefntext #1
+\cs_new_protected:Npn \deffntpara #1
+ { \cs_set:Npn \@makefntext ##1 {#1} }
+\deffntpara
{
- \group_begin:
\str_case:Vn \l__eb_footnote_value_tl
{
{ hang } { \use_i:nn }
@@ -1007,7 +1008,6 @@
\dim_set:NV \parindent \fnafterindent
\l__eb_fnpara_format_tl{#1}
\tl_if_eq:NnT \l__eb_footnote_value_tl { hang } { \par }
- \group_end:
}
\eb_seq_map_inline:nn { \@footnotetext,\@mpfootnotetext }
{
@@ -2304,7 +2304,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/02/06}{2024w}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/02/08}{2024x}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index d928e66ce5..ccc80a9691 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 43bad1ffe7..feaac7dcc5 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024w,
- date = 2024/02/06,
+ version = v2024x,
+ date = 2024/02/08,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -435,7 +435,7 @@
\begin{options}
\keychoice{linktype}{\fbox{edge},colors,none}
超链接类型。\code{edge} 使超链接形式为边框,\code{colors} 使超链接字体为彩色,\code{none} 关闭超链接边框与颜色,此时 \option{linkcolor} 选项无效。
- \keychoice{linkcolor}{fresh,cutepink,\fbox{DarkBlue},crimson}
+ \keychoice{linkcolor}{fresh,cutepink,\fbox{navyblue},crimson}
超链接颜色样式。预置了四种超链接颜色风格。为使相关颜色能够正确显示,选项 \option{linkcolor} 应当在 \option{linktype} 前使用。
\begin{commands}
\command{DeclareLinkColor}[\splitmarg{风格名称,颜色1,颜色2,颜色3}]
@@ -757,7 +757,9 @@
定义脚注正文标记的格式,与正文标记编号命令 \cs{theupfootnote} 配合使用。
\command{defdownfntmark}[\marg{脚注内容标记格式}]
定义脚注内容标记的格式,与内容标记编号命令 \cs{thedownfootnote} 配合使用。
- \command{notminipage}[\marg{普通页内容}\marg{迷你页内容}]\newtag[Chg]%
+ \command{deffntpara}[\marg{脚注段落文本格式}]\newtag%
+ 定义脚注段落文本的格式的命令。脚注段落文本由脚注内容标记和文本两部分组成,段落格式定义中参数 \code{\#1} 代表内容文本。
+ \command{notminipage}[\marg{普通页内容}\marg{迷你页内容}]
用于在定义脚注标记的命令中判断当前脚注是否处于迷你页而输出不同的内容。
\command{theupfootnote}
保存正文标记编号类型选项 \option{fnmark-num} 指定的正文标记。
@@ -767,6 +769,7 @@
\begin{ctexexam}
\defupfntmark{\super[vmove = 2pt]{\theupfootnote}}
\defdownfntmark{\notminipage{\textcolor{blue}{\thedownfootnote}}{}}
+ \deffntpara{\makebox[2em][r]{\thefootnote}#1}
\end{ctexexam}
\keychoice{fncustom-format}{\textcolor{SlateGray}{format code},match}
单独设定自定义脚注标记的格式,选项 \code{match} 可以匹配 \option{spcmd} 全局的值。自定义脚注内容和正文标记的命令与用法可以见下方和\ref{exam:custom footnote markers} 的介绍。
@@ -782,7 +785,7 @@
\keychoice{fnboth-format}{\textcolor{SlateGray}{format code},match}
同时设定默认脚注标记 \option{fnmarktext-format} 和自定义脚注标记 \option{fncustom-format} 的格式。两种脚注标记匹配上标格式 \option{spcmd} 的值是独立的,使用 \code{match} 则可以同时匹配。标记格式选项含有字体命令会覆盖 \option{footnote} 的设置,最后一个格式命令可以带有一个参数接受脚注标记。
\keyval{fnpara-format}{格式代码}
- 脚注内容的格式。在此设置字体命令会覆盖 \option{footnote} 的设置,最后一个格式命令可以带有一个参数接受脚注内容。
+ 脚注内容文本的格式。在此设置字体命令会覆盖 \option{footnote} 的设置,最后一个格式命令可以带有一个参数接受脚注内容文本。
\kvsplit{fntext-code}{前代码,后代码}
可以用 \meta{前代码} 与 \meta{后代码} 额外增加脚注内容标记前后的代码。也可以只有前部分,\meta{前代码} 中最后一个格式命令可以带有一个参数接受脚注内容标记。由于脚注标记处于水平模式,可以配合盒子命令设置脚注内容标记的对齐方式,或在标记与脚注首行间插入一点距离。
\begin{ctexexam}
@@ -977,7 +980,7 @@
作用于局部范围的英文目录标题条目钩子,代码在标题加入目录前执行,可以插入条目标题定义命令临时改变英文目录中条目的格式,带有星号参数的命令会重置之前的代码。这个命令设置英文目录条目的标题格式具有最高优先级,放置在导言区或 \cs{bichapter} 等双语标题命令前生效。举一个在英文目录节标题条目编号前添加 \code{Section} 字符串的例子:
\begin{ctexexam}
\BeforeAddBitoc{\ctexset{section/name = Section\space}}
- \bisection{zhtitle}{entitle}
+ \bisection{中文标题}{English title}
\end{ctexexam}
\end{commands}
@@ -1351,11 +1354,12 @@
\shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。}
\shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。}
\shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs{notminipage} 改为被保护命令兼容 \pkg*{circledtext} 宏包。}
- \begin{version}[v = 2024w,date = 2024/02/06,simple]
+ \begin{version}[v = 2024x,date = 2024/02/08,simple]
\item 核对依赖宏包的更新改动,优化使用手册的内容细节。
\item 修复图表等浮动环境题注目录中条目标签编号的计数器值显示错误问题。
\item 修复附录命令 \cs{appendix} 的可选参数设置英文目录中条目名字和编号失效的问题。
\item 新增目录风格定义命令 \cs{SetTocStyle} 和使用命令 \cs{UseTocStyle}。
+ \item 新增脚注段落文本格式定义命令 \cs{deffntpara}。
\end{version}
\end{changelog}
\nocite{*}
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index e6cccfce52..fcdd23876f 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,12 +7,19 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.3.11] - 2024-02-07
+
+### Fixed
+- Formatting of units with separated uncertainties in 'compound' structures
+ when unit is not repeated (see issue
+ [\#717](https://github.com/josephwright/siunitx/issues/717))
+
## [v3.3.10] - 2024-01-25
### Changed
- Load `color` package in `begindocument/before` hook
- Normalize exponents when `exponent-mode = threshold` (see issue
- [\#716](https://github.com/josephwright/siunitx/issues/711))
+ [\#711](https://github.com/josephwright/siunitx/issues/711))
### Fixed
- Prevent accidental expansion of `\mathord` (see issue
@@ -2060,7 +2067,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.10...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.11...HEAD
+[v3.3.11]: https://github.com/josephwright/siunitx/compare/v3.3.10...v3.3.11
[v3.3.10]: https://github.com/josephwright/siunitx/compare/v3.3.9...v3.3.10
[v3.3.9]: https://github.com/josephwright/siunitx/compare/v3.3.8...v3.3.9
[v3.3.8]: https://github.com/josephwright/siunitx/compare/v3.3.7...v3.3.8
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index 8b1fb01210..06b482440b 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-compound.dtx b/macros/latex/contrib/siunitx/siunitx-compound.dtx
index 4083e3ac47..a6f1ccac76 100644
--- a/macros/latex/contrib/siunitx/siunitx-compound.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-compound.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% File: siunitx-compound.dtx Copyright (C) 2018-2021,2023 Joseph Wright
+% File: siunitx-compound.dtx Copyright (C) 2018-2021,2023,2024 Joseph Wright
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -1032,9 +1032,12 @@
{ \@@_uncert_bracket:nnw {#1#2#3#4#5#6} {#7#8} #9 \q_stop }
\cs_new:Npn \@@_uncert_bracket:nnw #1#2 #3 \q_nil #4 \q_nil #5 \q_stop
{
- \bool_lazy_or:nnTF
- { \tl_if_blank_p:n {#2#3} }
- { ! \tl_if_blank_p:n {#5} }
+ \bool_lazy_any:nTF
+ {
+ { ! \l_@@_unit_repeat_bool }
+ { \tl_if_blank_p:n {#2#3} }
+ { ! \tl_if_blank_p:n {#5} }
+ }
{ \exp_not:n {#1#2#3#4#5} }
{
\exp_not:V \l_@@_bracket_open_tl
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index fb2dc9b5af..4d6874c512 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -121,7 +121,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2024-01-25} {3.3.10}
+\ProvidesExplPackage {siunitx} {2024-02-07} {3.3.11}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index 9c6da0ea29..825cef3f2d 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 55553c86e8..1469c5b7f1 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,6 +1,6 @@
-## Babel 24.1
+## Babel 24.2
-2024-01-07
+2024-02-07
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -10,9 +10,9 @@ is a set of ini files for about 300 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 24.1 are described in:
+Changes in version 24.2 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-24.1.html
+https://latex3.github.io/babel/news/whats-new-in-babel-24.2.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -48,11 +48,9 @@ respective authors.
### Summary of latest changes
```
-24.1 2024-01-07
- * New version numbering scheme.
- * New key in \babelprovide: interchar (xe).
- * Definitions for French interchar=punctuation.space (xe) and
- transforms=punctuation.space (lua).
+24.2 2024-02-07
+ * Cleaned up some language names.
+ * Mosty internal changes and minor fixes.
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel-code.pdf b/macros/latex/required/babel/base/babel-code.pdf
index d9b3837fe9..fa0a798307 100644
--- a/macros/latex/required/babel/base/babel-code.pdf
+++ b/macros/latex/required/babel/base/babel-code.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 4bf1f3e84d..ea14d382bb 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}[2024/01/07 v24.1 The Babel package]
+\ProvidesFile{babel.dtx}[2024/02/07 v24.2 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -824,6 +824,13 @@ course, with |date,| |captions|). Until 3.43 you had to write something
like |{\selectlanguage{..} ..}|, which was not always the most
convenient way.
+\begin{note}
+ |\bibitem| is out of sync with |\selectlanguage| in the \file{.aux}
+ file. The reason is |\bibitem| uses |\immediate| (and others, in
+ fact), while |\selectlanguage| doesn't. There is a similar issue with
+ floats, too. There is no known workaround.
+\end{note}
+
\subsection{Auxiliary language selectors}
\Describe{\begin\menv{otherlanguage}}{\marg{language}\Eenv{otherlanguage}}
@@ -1164,7 +1171,8 @@ check them, as they may change:\footnote{Thanks to Enrico Gregorio}
\item[Estonian] |" ~|
\item[French] (all varieties) |: ; ? !|
\item[Galician] |" . ' ~ < >|
-\item[Greek] |~|
+\item[Greek] (ancient, polutoniko, only 8-bit \TeX) |~|, (optional, see
+the manual for Greek) |;|
\item[Hungarian] |`|
\item[Kurmanji] |^|
\item[Latin] |" ^ =|
@@ -1181,6 +1189,23 @@ preserved for backward compatibility.}
\New{3.23} Tests if a character has been made a shorthand.
+\begin{note}
+ \catcode`\|=12\relax Both \textsf{ltxdoc} and \textsf{babel} use
+ \verb|\AtBeginDocument| to change some catcodes, and babel reloads
+ \textsf{hhline} to make sure \verb|:| has the right one, so if you
+ want to change the catcode of \verb/|/ it has to be done using the
+ same method at the proper place, with
+\begin{verbatim}
+\AtBeginDocument{\DeleteShortVerb{\|}}
+\end{verbatim}
+ \textit{before} loading babel. This way, when the document begins
+ the sequence is (1) make \verb/|/ active (\textsf{ltxdoc}); (2) make
+ 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
+\end{note}
+
\subsection{Package options}
\New{3.9a}
@@ -1528,849 +1553,6 @@ need to set explicitly the script to either |deva| or |dev2|, eg:
redefined easily.
\end{note}
-Here is the list (u means Unicode captions, and l means LICR
-captions):
-
-\begingroup
-\bigskip\hrule\nobreak
-
-\makeatletter
-\def\tag#1{\par\@hangfrom{\makebox[7em][l]{#1}}\ignorespaces}
-\def\hascapu{\textsuperscript{u}}
-\def\hascapl{\textsuperscript{l}}
-
-\begin{multicols}{2}
-\tag{aa} Afar
-\tag{ab} Abkhazian
-\tag{af} Afrikaans\hascapu\hascapl
-\tag{agq} Aghem
-\tag{ak} Akan
-\tag{am} Amharic\hascapu\hascapl
-\tag{ar-DZ} Arabic\hascapu
-\tag{ar-EG} Arabic\hascapu
-\tag{ar-IQ} Arabic\hascapu
-\tag{ar-JO} Arabic\hascapu
-\tag{ar-LB} Arabic\hascapu
-\tag{ar-MA} Arabic\hascapu
-\tag{ar-PS} Arabic\hascapu
-\tag{ar-SA} Arabic\hascapu
-\tag{ar-SY} Arabic\hascapu
-\tag{ar-TN} Arabic\hascapu
-\tag{ar} Arabic\hascapu
-\tag{as} Assamese\hascapu
-\tag{asa} Asu
-\tag{ast} Asturian\hascapu\hascapl
-\tag{az-Cyrl} Azerbaijani
-\tag{az-Latn} Azerbaijani
-\tag{az} Azerbaijani\hascapu\hascapl
-\tag{bal} Baluchi
-\tag{bas} Basaa
-\tag{be} Belarusian\hascapu\hascapl
-\tag{bem} Bemba
-\tag{bez} Bena
-\tag{bg} Bulgarian\hascapu\hascapl
-\tag{bgc} Haryanvi
-\tag{bho} Bhojpuri
-\tag{bm} Bambara
-\tag{bn} Bangla\hascapu
-\tag{bo} Tibetan\hascapu
-\tag{br} Breton\hascapu\hascapl
-\tag{brx} Bodo
-\tag{bs-Cyrl} Bosnian
-\tag{bs-Latn} Bosnian\hascapu\hascapl
-\tag{bs} Bosnian\hascapu\hascapl
-\tag{bua} Buriat\hascapu\hascapl
-\tag{byn} Blin
-\tag{ca} Catalan\hascapu\hascapl
-\tag{cch} Atsam
-\tag{ccp} Chakma
-\tag{ce} Chechen
-\tag{cgg} Chiga
-\tag{chr} Cherokee
-\tag{ckb-Arab} Central Kurdish\hascapu
-\tag{ckb-Latn} Central Kurdish\hascapu
-\tag{ckb} Central Kurdish\hascapu
-\tag{co} Corsican
-\tag{cop} Coptic
-\tag{cs} Czech\hascapu\hascapl
-\tag{cu-Cyrs} Church Slavic\hascapu
-\tag{cu-Glag} Church Slavic
-\tag{cu} Church Slavic\hascapu
-\tag{cy} Welsh\hascapu\hascapl
-\tag{da} Danish\hascapu\hascapl
-\tag{dav} Taita
-\tag{de-1901} German\hascapu\hascapl
-\tag{de-1996} German\hascapu\hascapl
-\tag{de-AT-1901} Austrian German\hascapu\hascapl
-\tag{de-AT-1996} Austrian German\hascapu\hascapl
-\tag{de-AT} Austrian German\hascapu\hascapl
-\tag{de-CH-1901} Swiss High German\hascapu\hascapl
-\tag{de-CH-1996} Swiss High German\hascapu\hascapl
-\tag{de-CH} Swiss High German\hascapu\hascapl
-\tag{de} German\hascapu\hascapl
-\tag{dje} Zarma
-\tag{dsb} Lower Sorbian\hascapu\hascapl
-\tag{dua} Duala
-\tag{dyo} Jola-Fonyi
-\tag{dz} Dzongkha
-\tag{ebu} Embu
-\tag{ee} Ewe
-\tag{el-polyton} Polytonic Greek\hascapu\hascapl
-\tag{el} Greek\hascapu\hascapl
-\tag{en-AU} Australian English\hascapu\hascapl
-\tag{en-CA} Canadian English\hascapu\hascapl
-\tag{en-GB} British English\hascapu\hascapl
-\tag{en-NZ} English\hascapu\hascapl
-\tag{en-US} American English\hascapu\hascapl
-\tag{en} English\hascapu\hascapl
-\tag{eo} Esperanto\hascapu\hascapl
-\tag{es-MX} Mexican Spanish\hascapu\hascapl
-\tag{es} Spanish\hascapu\hascapl
-\tag{et} Estonian\hascapu\hascapl
-\tag{eu} Basque\hascapu\hascapl\hascapl
-\tag{ewo} Ewondo
-\tag{fa} Persian\hascapu
-\tag{ff} Fulah
-\tag{fi} Finnish\hascapu\hascapl
-\tag{fil} Filipino
-\tag{fo} Faroese
-\tag{fr-BE} French\hascapu\hascapl
-\tag{fr-CA} Canadian French\hascapu\hascapl
-\tag{fr-CH} Swiss French\hascapu\hascapl
-\tag{fr-LU} French\hascapu\hascapl
-\tag{fr-x-acadian} Acadian\hascapu\hascapl
-\tag{fr} French\hascapu\hascapl
-\tag{fur} Friulian\hascapu\hascapl
-\tag{fy} Western Frisian
-\tag{ga} Irish\hascapu\hascapl
-\tag{gaa} Ga
-\tag{gd} Scottish Gaelic\hascapu\hascapl
-\tag{gez} Geez
-\tag{gl} Galician\hascapu\hascapl
-\tag{gn} Guarani
-\tag{grc} Ancient Greek\hascapu\hascapl
-\tag{gsw} Swiss German
-\tag{gu} Gujarati
-\tag{guz} Gusii
-\tag{gv} Manx
-\tag{ha-GH} Hausa
-\tag{ha-NE} Hausa
-\tag{ha} Hausa\hascapu\hascapl
-\tag{haw} Hawaiian
-\tag{he} Hebrew\hascapu\hascapl
-\tag{hi} Hindi\hascapu
-\tag{hr} Croatian\hascapu\hascapl
-\tag{hsb} Upper Sorbian\hascapu\hascapl
-\tag{hu} Hungarian\hascapu\hascapl\hascapl\hascapl
-\tag{hy} Armenian\hascapu\hascapl
-\tag{ia} Interlingua\hascapu\hascapl
-\tag{id} Indonesian\hascapu\hascapl
-\tag{ig} Igbo
-\tag{ii} Sichuan Yi
-\tag{is} Icelandic\hascapu\hascapl
-\tag{it} Italian\hascapu\hascapl
-\tag{iu} Inuktitut
-\tag{ja} Japanese\hascapu
-\tag{jgo} Ngomba
-\tag{jmc} Machame
-\tag{ka} Georgian\hascapu
-\tag{kab} Kabyle
-\tag{kaj} Jju
-\tag{kam} Kamba
-\tag{kcg} Tyap
-\tag{kde} Makonde
-\tag{kea} Kabuverdianu
-\tag{kgp} Kaingang
-\tag{khq} Koyra Chiini
-\tag{ki} Kikuyu
-\tag{kk} Kazakh
-\tag{kkj} Kako
-\tag{kl} Kalaallisut
-\tag{kln} Kalenjin
-\tag{km} Khmer\hascapu
-\tag{kmr-Arab} Northern Kurdish\hascapu
-\tag{kmr-Latn} Northern Kurdish\hascapu\hascapl
-\tag{kmr} Northern Kurdish\hascapu\hascapl
-\tag{kn} Kannada\hascapu
-\tag{ko-Hani} Korean\hascapu
-\tag{ko} Korean\hascapu
-\tag{kok} Konkani
-\tag{ks} Kashmiri
-\tag{ksb} Shambala
-\tag{ksf} Bafia
-\tag{ksh} Colognian
-\tag{kw} Cornish
-\tag{ky} Kyrgyz
-\tag{la-x-classic} Classical Latin\hascapu\hascapl
-\tag{la-x-ecclesia} Ecclesiastical Latin\hascapu\hascapl
-\tag{la-x-medieval} Medieval Latin\hascapu\hascapl
-\tag{la} Latin\hascapu\hascapl
-\tag{lag} Langi
-\tag{lb} Luxembourgish\hascapu\hascapl
-\tag{lg} Ganda
-\tag{lij} Ligurian
-\tag{lkt} Lakota
-\tag{ln} Lingala
-\tag{lo} Lao\hascapu
-\tag{lrc} Northern Luri
-\tag{lt} Lithuanian\hascapu\hascapl\hascapl\hascapl
-\tag{lu} Luba-Katanga
-\tag{luo} Luo
-\tag{luy} Luyia
-\tag{lv} Latvian\hascapu\hascapl
-\tag{mas} Masai
-\tag{mer} Meru
-\tag{mfe} Morisyen
-\tag{mg} Malagasy
-\tag{mgh} Makhuwa-Meetto
-\tag{mgo} Metaʼ
-\tag{mk} Macedonian\hascapu\hascapl
-\tag{ml} Malayalam\hascapu
-\tag{mn} Mongolian
-\tag{mr} Marathi\hascapu
-\tag{ms-BN} Malay
-\tag{ms-SG} Malay
-\tag{ms} Malay\hascapu\hascapl
-\tag{mt} Maltese
-\tag{mua} Mundang
-\tag{mus} Muscogee
-\tag{my} Burmese
-\tag{myv} Erzya
-\tag{mzn} Mazanderani
-\tag{naq} Nama
-\tag{nb} Norwegian Bokmål\hascapu\hascapl
-\tag{nd} North Ndebele
-\tag{nds} Low German
-\tag{ne} Nepali
-\tag{nl} Dutch\hascapu\hascapl
-\tag{nmg} Kwasio
-\tag{nn} Norwegian Nynorsk\hascapu\hascapl
-\tag{nnh} Ngiemboon
-\tag{no} Norwegian\hascapu\hascapl
-\tag{nqo} N’Ko
-\tag{nr} South Ndebele
-\tag{nso} Northern Sotho
-\tag{nus} Nuer
-\tag{ny} Nyanja
-\tag{nyn} Nyankole
-\tag{oc} Occitan\hascapu\hascapl
-\tag{om} Oromo
-\tag{or} Odia
-\tag{os} Ossetic
-\tag{pa-Arab} Punjabi
-\tag{pa-Guru} Punjabi\hascapu
-\tag{pa} Punjabi\hascapu
-\tag{pap} Papiamento
-\tag{pl} Polish\hascapu\hascapl
-\tag{pms} Piedmontese\hascapu\hascapl
-\tag{prg} Prussian
-\tag{ps} Pashto
-\tag{pt-BR} Brazilian Portuguese\hascapu\hascapl
-\tag{pt-PT} European Portuguese\hascapu\hascapl
-\tag{pt} Portuguese\hascapu\hascapl
-\tag{qu} Quechua
-\tag{raj} Rajasthani
-\tag{rm} Romansh\hascapu\hascapl
-\tag{rn} Rundi
-\tag{ro-MD} Moldavian\hascapu\hascapl
-\tag{ro} Romanian\hascapu\hascapl
-\tag{rof} Rombo
-\tag{ru} Russian\hascapu\hascapl
-\tag{rw} Kinyarwanda
-\tag{rwk} Rwa
-\tag{sa-Beng} Sanskrit
-\tag{sa-Deva} Sanskrit
-\tag{sa-Gujr} Sanskrit
-\tag{sa-Knda} Sanskrit
-\tag{sa-Mlym} Sanskrit
-\tag{sa-Telu} Sanskrit
-\tag{sa} Sanskrit
-\tag{sah} Sakha
-\tag{saq} Samburu
-\tag{sbp} Sangu
-\tag{sc} Sardinian
-\tag{scn} Sicilian
-\tag{se} Northern Sami\hascapu\hascapl
-\tag{seh} Sena
-\tag{ses} Koyraboro Senni
-\tag{sg} Sango
-\tag{shi-Latn} Tachelhit
-\tag{shi-Tfng} Tachelhit
-\tag{shi} Tachelhit
-\tag{si} Sinhala\hascapu
-\tag{sk} Slovak\hascapu\hascapl
-\tag{sl} Slovenian\hascapu\hascapl
-\tag{smn} Inari Sami
-\tag{sn} Shona
-\tag{so} Somali
-\tag{sq} Albanian\hascapu\hascapl
-\tag{sr-Cyrl-BA} Serbian\hascapu\hascapl
-\tag{sr-Cyrl-ME} Serbian\hascapu\hascapl
-\tag{sr-Cyrl-XK} Serbian\hascapu\hascapl
-\tag{sr-Cyrl} Serbian\hascapu\hascapl
-\tag{sr-ijekavsk} Serbian\hascapu\hascapl
-\tag{sr-Latn-BA} Serbian\hascapu\hascapl
-\tag{sr-Latn-ijekavsk} Serbian\hascapu\hascapl
-\tag{sr-Latn-ME} Serbian\hascapu\hascapl
-\tag{sr-Latn-XK} Serbian\hascapu\hascapl
-\tag{sr-Latn} Serbian\hascapu\hascapl
-\tag{sr} Serbian\hascapu\hascapl
-\tag{ss} Swati
-\tag{ssy} Saho
-\tag{st} Southern Sotho
-\tag{sv} Swedish\hascapu\hascapl
-\tag{sw} Swahili
-\tag{syr} Syriac
-\tag{szl} Silesian
-\tag{ta} Tamil\hascapu
-\tag{te} Telugu\hascapu
-\tag{teo} Teso
-\tag{th} Thai\hascapu\hascapl
-\tag{ti} Tigrinya
-\tag{tig} Tigre
-\tag{tk} Turkmen\hascapu\hascapl
-\tag{tn} Tswana
-\tag{to} Tongan
-\tag{tpi} Tok Pisin
-\tag{tr} Turkish\hascapu\hascapl
-\tag{trv} Taroko
-\tag{ts} Tsonga
-\tag{twq} Tasawaq
-\tag{tzm} Central Atlas Tamazight
-\tag{ug} Uyghur\hascapu
-\tag{uk} Ukrainian\hascapu\hascapl
-\tag{ur} Urdu\hascapu
-\tag{uz-Arab} Uzbek
-\tag{uz-Cyrl} Uzbek
-\tag{uz-Latn} Uzbek
-\tag{uz} Uzbek
-\tag{vai-Latn} Vai
-\tag{vai-Vaii} Vai
-\tag{vai} Vai
-\tag{ve} Venda
-\tag{vi} Vietnamese\hascapu\hascapl
-\tag{vo} Volapük
-\tag{vun} Vunjo
-\tag{wae} Walser
-\tag{wal} Wolaytta
-\tag{xog} Soga
-\tag{yav} Yangben
-\tag{yi} Yiddish
-\tag{yo} Yoruba
-\tag{yrl} Nheengatu
-\tag{yue} Cantonese
-\tag{zgh} Standard Moroccan Tamazight
-\tag{zh-Hans-HK} Chinese
-\tag{zh-Hans-MO} Chinese
-\tag{zh-Hans-SG} Chinese
-\tag{zh-Hans} Chinese\hascapu
-\tag{zh-Hant-HK} Chinese
-\tag{zh-Hant-MO} Chinese
-\tag{zh-Hant} Chinese\hascapu
-\tag{zh} Chinese\hascapu
-\tag{zu} Zulu
-\end{multicols}
-\endgroup
-\hrule
-\bigskip
-
-In some contexts (currently |\babelfont|) an \texttt{ini} file may be
-loaded by its name. Here is the list of the names currently supported.
-With these languages, |\babelfont| loads (if not done before) the
-language and script names (even if the language is defined as a package
-option with an \textsf{ldf} file). These are also the names recognized
-by |\babelprovide| with a valueless |import|.
-
-\begingroup
-\bigskip\hrule\nobreak
-\small
-\let\\\par
-
-\begin{multicols}{3}
-abkhazian\\
-acadian\\
-afar\\
-afrikaans\\
-aghem\\
-akan\\
-albanian\\
-american\\
-americanenglish\\
-amharic\\
-ancientgreek\\
-arabic\\
-arabic-algeria\\
-arabic-dz\\
-arabic-eg\\
-arabic-egypt\\
-arabic-iq\\
-arabic-iraq\\
-arabic-jo\\
-arabic-jordan\\
-arabic-lb\\
-arabic-lebanon\\
-arabic-ma\\
-arabic-morocco\\
-arabic-palestinianterritories\\
-arabic-ps\\
-arabic-sa\\
-arabic-saudiarabia\\
-arabic-sy\\
-arabic-syria\\
-arabic-tn\\
-arabic-tunisia\\
-armenian\\
-assamese\\
-asturian\\
-asu\\
-atsam\\
-australian\\
-australianenglish\\
-austrian\\
-azerbaijani\\
-azerbaijani-cyrillic\\
-azerbaijani-cyrl\\
-azerbaijani-latin\\
-azerbaijani-latn\\
-bafia\\
-baluchi\\
-bambara\\
-bangla\\
-basaa\\
-basque\\
-belarusian\\
-bemba\\
-bena\\
-bengali\\
-bhojpuri\\
-blin\\
-bodo\\
-bosnian\\
-bosnian-cyrillic\\
-bosnian-cyrl\\
-bosnian-latin\\
-bosnian-latn\\
-brazilian\\
-brazilianportuguese\\
-breton\\
-british\\
-britishenglish\\
-bulgarian\\
-buriat\\
-burmese\\
-canadian\\
-canadianenglish\\
-cantonese\\
-catalan\\
-centralatlastamazight\\
-centralkurdish\\
-centralkurdish-latin\\
-centralkurdish-latn\\
-chakma\\
-chechen\\
-cherokee\\
-chiga\\
-chinese\\
-chinese-hans\\
-chinese-hans-hk\\
-chinese-hans-mo\\
-chinese-hans-sg\\
-chinese-hant\\
-chinese-hant-hk\\
-chinese-hant-mo\\
-chinese-simplified\\
-chinese-simplified-hongkongsarchina\\
-chinese-simplified-macausarchina\\
-chinese-simplified-singapore\\
-chinese-traditional\\
-chinese-traditional-hongkongsarchina\\
-chinese-traditional-macausarchina\\
-churchslavic\\
-churchslavic-cyrs\\
-churchslavic-glag\\
-churchslavic-glagolitic\\
-churchslavic-oldcyrillic\footnote{The name in the CLDR
-is Old Church Slavonic Cyrillic, but it has been shortened
-for practical reasons.}\\
-churchsslavic-glag\\
-churchslavonic\\
-classicallatin\\
-colognian\\
-coptic\\
-cornish\\
-corsican\\
-croatian\\
-czech\\
-danish\\
-duala\\
-dutch\\
-dzongkha\\
-ecclesiasticallatin\\
-embu\\
-english\\
-english-au\\
-english-australia\\
-english-ca\\
-english-canada\\
-english-gb\\
-english-newzealand\\
-english-nz\\
-english-unitedkingdom\\
-english-unitedstates\\
-english-us\\
-erzya\\
-esperanto\\
-estonian\\
-europeanportuguese\\
-ewe\\
-ewondo\\
-faroese\\
-farsi\\
-filipino\\
-finnish\\
-french\\
-french-be\\
-french-belgium\\
-french-ca\\
-french-canada\\
-french-canadianfrench\\
-french-ch\\
-french-lu\\
-french-luxembourg\\
-french-swissfrench\\
-french-switzerland\\
-friulian\\
-fulah\\
-ga\\
-galician\\
-ganda\\
-geez\\
-georgian\\
-german\\
-german-at\\
-german-austria\\
-german-austria-traditional\\
-german-ch\\
-german-switzerland\\
-german-switzerland-traditional\\
-german-traditional\\
-greek\\
-guarani\\
-gujarati\\
-gusii\\
-haryanvi\\
-hausa\\
-hausa-gh\\
-hausa-ghana\\
-hausa-ne\\
-hausa-niger\\
-hawaiian\\
-hebrew\\
-hindi\\
-hungarian\\
-icelandic\\
-igbo\\
-inarisami\\
-indonesian\\
-interlingua\\
-inuktitut\\
-irish\\
-italian\\
-japanese\\
-javanese\\
-jju\\
-jolafonyi\\
-kabuverdianu\\
-kabyle\\
-kaingang\\
-kako\\
-kalaallisut\\
-kalenjin\\
-kamba\\
-kannada\\
-kashmiri\\
-kazakh\\
-khmer\\
-kikuyu\\
-kinyarwanda\\
-konkani\\
-korean\\
-korean-han\\
-korean-hani\\
-koyraborosenni\\
-koyrachiini\\
-kurmanji\\
-kwasio\\
-kyrgyz\\
-lakota\\
-langi\\
-lao\\
-latin\\
-latvian\\
-ligurian\\
-lingala\\
-lithuanian\\
-lowersorbian\\
-lowgerman\\
-lubakatanga\\
-luo\\
-luxembourgish\\
-luyia\\
-macedonian\\
-machame\\
-maithiri\\
-makhuwameetto\\
-makonde\\
-malagasy\\
-malay\\
-malay-bn\\
-malay-brunei\\
-malay-sg\\
-malay-singapore\\
-malayalam\\
-maltese\\
-manx\\
-marathi\\
-masai\\
-mazanderani\\
-medievallatin\\
-meru\\
-meta\\
-mexican\\
-mexicanspanish\\
-moldavian\\
-mongolian\\
-monotonicgreek\\
-morisyen\\
-mundang\\
-muscogee\\
-nama\\
-naustrian\\
-nepali\\
-newzealand\\
-ngerman\\
-ngiemboon\\
-ngomba\\
-nheengatu\\
-nigerianpidgin\\
-nko\\
-norsk\\
-northernkurdish\\
-northernkurdish-arab\\
-northernkurdish-arabic\\
-northernluri\\
-northernsami\\
-northernsotho\\
-northndebele\\
-norwegian\\
-norwegianbokmal\\
-norwegiannynorsk\\
-nswissgerman\\
-nuer\\
-nyanja\\
-nyankole\\
-nynorsk\\
-occitan\\
-odia\\
-oriya\\
-oromo\\
-ossetic\\
-papiamento\\
-pashto\\
-persian\\
-piedmontese\\
-polish\\
-polytonicgreek\\
-portuguese\\
-portuguese-br\\
-portuguese-brazil\\
-portuguese-portugal\\
-portuguese-pt\\
-prussian\\
-punjabi\\
-punjabi-arab\\
-punjabi-arabic\\
-punjabi-gurmukhi\\
-punjabi-guru\\
-quechua\\
-rajasthani\\
-romanian\\
-romanian-md\\
-romanian-moldova\\
-romansh\\
-rombo\\
-rundi\\
-russian\\
-rwa\\
-saho\\
-sakha\\
-samburu\\
-sango\\
-sangu\\
-sanskrit\\
-sanskrit-bangla\\
-sanskrit-beng\\
-sanskrit-bengali\\
-sanskrit-deva\\
-sanskrit-devanagari\\
-sanskrit-gujarati\\
-sanskrit-gujr\\
-sanskrit-kannada\\
-sanskrit-knda\\
-sanskrit-malayalam\\
-sanskrit-mlym\\
-sanskrit-telu\\
-sanskrit-telugu\\
-sardinian\\
-scottishgaelic\\
-sena\\
-serbian\\
-serbian-cyrillic\\
-serbian-cyrillic-bosniaherzegovina\\
-serbian-cyrillic-kosovo\\
-serbian-cyrillic-montenegro\\
-serbian-cyrl\\
-serbian-cyrl-ba\\
-serbian-cyrl-me\\
-serbian-cyrl-xk\\
-serbian-ijekavsk\\
-serbian-latin\\
-serbian-latin-bosniaherzegovina\\
-serbian-latin-kosovo\\
-serbian-latin-montenegro\\
-serbian-latn\\
-serbian-latn-ba\\
-serbian-latn-ijekavsk\\
-serbian-latn-me\\
-serbian-latn-xk\\
-serbianc\\
-shambala\\
-shona\\
-sichuanyi\\
-sicilian\\
-silesian\\
-sinhala\\
-slovak\\
-slovene\\
-slovenian\\
-soga\\
-somali\\
-sorani\\
-southernsotho\\
-southndebele\\
-spanish\\
-spanish-mexico\\
-spanish-mx\\
-standardmoroccantamazight\\
-swahili\\
-swati\\
-swedish\\
-swissgerman\\
-swisshighgerman\\
-syriac\\
-tachelhit\\
-tachelhit-latin\\
-tachelhit-latn\\
-tachelhit-tfng\\
-tachelhit-tifinagh\\
-taita\\
-tamil\\
-taroko\\
-tasawaq\\
-telugu\\
-teso\\
-thai\\
-tibetan\\
-tigre\\
-tigrinya\\
-tokpisin\\
-tongan\\
-tsonga\\
-tswana\\
-turkish\\
-turkmen\\
-tyap\\
-ukenglish\\
-ukrainian\\
-uppersorbian\\
-urdu\\
-usenglish\\
-uyghur\\
-uzbek\\
-uzbek-arab\\
-uzbek-arabic\\
-uzbek-cyrillic\\
-uzbek-cyrl\\
-uzbek-latin\\
-uzbek-latn\\
-vai\\
-vai-latin\\
-vai-latn\\
-vai-vai\\
-vai-vaii\\
-venda\\
-vietnamese\\
-volapuk\\
-vunjo\\
-walser\\
-welsh\\
-westernfrisian\\
-wolaytta\\
-wolof\\
-yangben\\
-yiddish\\
-yoruba\\
-zarma\\
-zulu
-\end{multicols}
-\endgroup
-\hrule
-
-\bigskip
-
-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 minimum locales’. The locales are currently
-the following:
-\begin{multicols}{4}
-\small
-akkadian\\
-ancientegyptian\\
-aramaic\\
-avestan\\
-aymara\\
-balinese\\
-bashkir\\
-bataktoba\\
-bavarian\\
-classicalmandaic\\
-divehi\\
-egyptianarabic\footnote{Masri or Colloquial Egyptian, with tag
-\texttt{arz}, not to be confused with the Standard Arabic as spoken in
-Egypt, with tag \texttt{ar-EG}.}\\
-ingush\\
-komi\\
-ladino\\
-lepcha\\
-limbu\\
-lineara\\
-lombard\\
-lu\\
-makasar\\
-navajo\\
-newari\\
-oldnorse\\
-phoenician\\
-samaritan\\
-sinteromani\\
-southernaltai\\
-tainua\\
-tangut\\
-waray
-\end{multicols}
-
\textbf{Modifying and adding values to |ini| files}
\nobreak
@@ -2390,6 +1572,585 @@ parameters.
% hyphenation with
% \end{example}
+\subsection{List of locales available in \cs{babelprovide}}
+
+Here is the list of the names currently supported with |ini| locale
+files, with |\babelprovide| (or |provide=|). With these languages,
+|\babelfont| loads (if not done before) the language and script names
+(even if the language is defined as a package option with an
+\textsf{ldf} file). These are also the names recognized by
+|\babelprovide| with a valueless |import|, which will load the |ini|
+file with the tag given in parenthesis.
+
+Many locale are quite useable, provided captions and dates are
+not required (which is a very frequent case, particularly in ancient
+languages). So, they are included in the default \babel{} distribution.
+This can serve to encourage contributions, too. A warning will remember
+they are ‘bare minimum locales’. They are set in
+\textcolor[gray]{.4}{gray} in the following list.
+
+\begin{note}
+ Although the names of the corresponding |lfd| files match those in
+ this list, there are some exceptions, particularly in German and
+ Serbian. So, |ngerman| is called here |german|, which is the name in
+ the CLDR and, actually, the most logical.
+\end{note}
+
+\begingroup
+\bigskip\hrule\nobreak
+
+\makeatletter
+\def\tag#1{\par\@hangfrom{\makebox[10em][l]{#1}}\ignorespaces}
+\def\tag#1#2#3{\par
+ \hspace{-2em}\textcolor{thered}{\texttt{#1}}#2\enspace
+ \mbox{\footnotesize(#3)}}
+\def\subtag#1#2#3{\par
+ \hspace{-1em}\texttt{#1}#2\enspace
+ \mbox{\footnotesize(#3)}}
+\def\subtagalt#1#2#3{\par
+ \hspace{-1em}\textcolor{thered}{\texttt{#1}}#2\enspace
+ \mbox{\footnotesize(#3)}}
+\def\tagmin#1#2#3{\par
+ \hspace{-2em}\textcolor[gray]{.4}{\texttt{#1}}#2\enspace
+ \mbox{\footnotesize(#3)}}
+\def\subtagmin#1#2#3{\par
+ \hspace{-1em}\textcolor[gray]{.4}{\texttt{#1}}#2\enspace
+ \mbox{\footnotesize(#3)}}
+\def\hascapu{\textsuperscript{u}}
+\def\hascapl{\textsuperscript{l}}
+\def\note#1{\par{\footnotesize#1\par}}
+\small
+
+\bigskip
+
+Recommended names are set in \textcolor{thered}{red}.\\
+In variants with the region or the script name (which are not
+highlighted), prefer the full forms.\\
+Bare minimum locales are set in \textcolor[gray]{.4}{gray}.\\
+Discouraged and deprecated names are not included.\\
+\hascapu{} means Unicode captions; \hascapl{} means LICR captions.\\
+There are some notes in a few locales.
+
+\bigskip\hrule\nobreak
+
+\begin{multicols}{2}
+\leftskip2em
+\tag{abkhazian}{}{ab}
+\tag{afar}{}{aa}
+\tag{afrikaans}{\hascapu\hascapl}{af}
+\tag{aghem}{}{agq}
+\tag{akan}{}{ak}
+\tagmin{akkadian}{}{akk}
+\tag{albanian}{\hascapu\hascapl}{sq}
+\tag{amharic}{\hascapu\hascapl}{am}
+\tagmin{ancientegyptian}{}{egy}
+\tag{ancientgreek}{\hascapu\hascapl}{grc}\note{It’s a different
+language from \texttt{greek}.}
+\tag{arabic}{\hascapu}{ar}
+\subtag{arabic-algeria}{\hascapu}{ar-DZ}
+\subtag{arabic-dz}{\hascapu}{ar-DZ}
+\subtag{arabic-egypt}{\hascapu}{ar-EG}
+\subtag{arabic-eg}{\hascapu}{ar-EG}
+\subtag{arabic-iraq}{\hascapu}{ar-IQ}
+\subtag{arabic-iq}{\hascapu}{ar-IQ}
+\subtag{arabic-jordan}{\hascapu}{ar-JO}
+\subtag{arabic-jo}{\hascapu}{ar-JO}
+\subtag{arabic-lebanon}{\hascapu}{ar-LB}
+\subtag{arabic-lb}{\hascapu}{ar-LB}
+\subtag{arabic-morocco}{\hascapu}{ar-MA}
+\subtag{arabic-ma}{\hascapu}{ar-MA}
+\subtag{arabic-palestinianterritories}{\hascapu}{ar-PS}
+\subtag{arabic-ps}{\hascapu}{ar-PS}
+\subtag{arabic-saudiarabia}{\hascapu}{ar-SA}
+\subtag{arabic-sa}{\hascapu}{ar-SA}
+\subtag{arabic-syria}{\hascapu}{ar-SY}
+\subtag{arabic-sy}{\hascapu}{ar-SY}
+\subtag{arabic-tunisia}{\hascapu}{ar-TN}
+\subtag{arabic-tn}{\hascapu}{ar-TN}
+\tagmin{aramaic}{}{arc}
+\subtagmin{aramaic-nabataean}{}{arc-nbat}
+\subtagmin{aramaic-nbat}{}{arc-nbat}
+\subtagmin{aramaic-palmyrene}{}{arc-palm}
+\subtagmin{aramaic-palm}{}{arc-palm}
+\tag{armenian}{\hascapu\hascapl}{hy}
+\tag{assamese}{\hascapu}{as}
+\tag{asturian}{\hascapu\hascapl}{ast}
+\tag{asu}{}{asa}
+\tag{atsam}{}{cch}
+\tagmin{avestan}{}{ae}
+\tag{awadhi}{}{awa}
+\tagmin{aymara}{}{ay}
+\tag{azerbaijani}{\hascapu\hascapl}{az}
+\subtag{azerbaijani-cyrillic}{}{az-Cyrl}
+\subtag{azerbaijani-cyrl}{}{az-Cyrl}
+\subtag{azerbaijani-latin}{}{az-Latn}
+\subtag{azerbaijani-latn}{}{az-Latn}
+\tag{bafia}{}{ksf}
+\tagmin{balinese}{}{ban}
+\tag{baluchi}{}{bal}
+\tag{bambara}{}{bm}
+\tag{bangla}{\hascapu}{bn}
+\tag{basaa}{}{bas}
+\tagmin{bashkir}{}{ba}
+\tag{basque}{\hascapu\hascapl}{eu}
+\tagmin{bataktoba}{}{bbc}
+\tagmin{bavarian}{}{bar}
+\tag{belarusian}{\hascapu\hascapl}{be}
+\tag{bemba}{}{bem}
+\tag{bena}{}{bez}
+\tag{bengali}{\hascapu}{bn}
+\tag{bhojpuri}{}{bho}
+\tag{blin}{}{byn}
+\tag{bodo}{}{brx}
+\tag{bosnian}{\hascapu\hascapl}{bs}
+\subtag{bosnian-cyrillic}{}{bs-Cyrl}
+\subtag{bosnian-cyrl}{}{bs-Cyrl}
+\subtag{bosnian-latin}{\hascapu\hascapl}{bs-Latn}
+\subtag{bosnian-latn}{\hascapu\hascapl}{bs-Latn}
+\tag{breton}{\hascapu\hascapl}{br}
+\tag{bulgarian}{\hascapu\hascapl}{bg}
+\tag{buriat}{\hascapu\hascapl}{bua}
+\tag{burmese}{}{my}
+\tag{cantonese}{}{yue}
+\tag{catalan}{\hascapu\hascapl}{ca}
+\tag{cebuano}{}{ceb}
+\tag{centralatlastamazight}{}{tzm}
+\tag{centralkurdish}{\hascapu}{ckb}
+\subtag{centralkurdish-latin}{\hascapu}{ckb-Latn}
+\subtag{centralkurdish-latn}{\hascapu}{ckb-Latn}
+\tag{chakma}{}{ccp}
+\tag{chechen}{}{ce}
+\tag{cherokee}{}{chr}
+\tag{chiga}{}{cgg}
+\tag{chinese}{\hascapu}{zh}
+\subtag{chinese-simplified}{\hascapu}{zh-Hans}
+\subtag{chinese-hans}{\hascapu}{zh-Hans}
+\subtag{chinese-traditional}{\hascapu}{zh-Hant}
+\subtag{chinese-hant}{\hascapu}{zh-Hant}
+\subtag{chinese-simplified-hongkongsarchina}{}{zh-Hans-HK}
+\subtag{chinese-hans-hk}{}{zh-Hans-HK}
+\subtag{chinese-simplified-macausarchina}{}{zh-Hans-MO}
+\subtag{chinese-hans-mo}{}{zh-Hans-MO}
+\subtag{chinese-simplified-singapore}{}{zh-Hans-SG}
+\subtag{chinese-hans-sg}{}{zh-Hans-SG}
+\subtag{chinese-hant-hk}{}{zh-Hant-HK}
+\subtag{chinese-traditional-hongkongsarchina}{}{zh-Hant-HK}
+\subtag{chinese-hant-mo}{}{zh-Hant-MO}
+\subtag{chinese-traditional-macausarchina}{}{zh-Hant-MO}
+\tag{churchslavic}{\hascapu}{cu}
+\subtag{churchslavic-cyrs}{\hascapu}{cu-Cyrs}
+\subtag{churchslavic-glag}{}{cu-Glag}
+\subtag{churchslavic-glagolitic}{}{cu-Glag}
+\subtag{churchslavic-oldcyrillic}{\hascapu}{cu-Cyrs}
+% \tag{churchslavonic}{\hascapu}{cu}
+\tag{chuvash}{}{cv}
+\tagmin{classicalmandaic}{}{myz}
+% \tag{classiclatin}{\hascapu\hascapl}{la-x-classic}
+\tag{colognian}{}{ksh}
+\tag{coptic}{}{cop}
+\tag{cornish}{}{kw}
+\tag{corsican}{}{co}
+\tag{croatian}{\hascapu\hascapl}{hr}
+\tag{czech}{\hascapu\hascapl}{cs}
+\tag{danish}{\hascapu\hascapl}{da}
+\tagmin{divehi}{}{dv}
+\tag{dogri}{}{doi}
+\tag{duala}{}{dua}
+\tag{dutch}{\hascapu\hascapl}{nl}
+\tag{dzongkha}{}{dz}
+% \tag{ecclesiasticlatin}{\hascapu\hascapl}{la-x-ecclesia}
+\tagmin{egyptianarabic}{}{arz}\note{Masri or Colloquial Egyptian, with tag
+\texttt{arz}, different from Standard Arabic as spoken in
+Egypt, with tag \texttt{ar-EG}.}
+\tag{embu}{}{ebu}
+\tag{english}{\hascapu\hascapl}{en}
+\subtagalt{american}{\hascapu\hascapl}{en-US}
+\subtag{americanenglish}{\hascapu\hascapl}{en-US}
+\subtagalt{australian}{\hascapu\hascapl}{en-AU}
+\subtag{australianenglish}{\hascapu\hascapl}{en-AU}
+\subtagalt{british}{\hascapu\hascapl}{en-GB}
+\subtag{britishenglish}{\hascapu\hascapl}{en-GB}
+\subtagalt{canadian}{\hascapu\hascapl}{en-CA}
+\subtag{canadianenglish}{\hascapu\hascapl}{en-CA}
+\subtag{english-australia}{\hascapu\hascapl}{en-AU}
+\subtag{english-au}{\hascapu\hascapl}{en-AU}
+\subtag{english-canada}{\hascapu\hascapl}{en-CA}
+\subtag{english-ca}{\hascapu\hascapl}{en-CA}
+\subtag{english-unitedkingdom}{\hascapu\hascapl}{en-GB}
+\subtag{english-gb}{\hascapu\hascapl}{en-GB}
+\subtag{english-newzealand}{\hascapu\hascapl}{en-NZ}
+\subtag{english-unitedstates}{\hascapu\hascapl}{en-US}
+\subtag{english-nz}{\hascapu\hascapl}{en-NZ}
+\subtag{english-us}{\hascapu\hascapl}{en-US}
+\tag{erzya}{}{myv}
+\tag{esperanto}{\hascapu\hascapl}{eo}
+\tag{estonian}{\hascapu\hascapl}{et}
+\tag{ewe}{}{ee}
+\tag{ewondo}{}{ewo}
+\tag{faroese}{}{fo}
+\tag{farsi}{\hascapu}{fa}
+\tag{filipino}{}{fil}
+\tag{finnish}{\hascapu\hascapl}{fi}
+\tag{french}{\hascapu\hascapl}{fr}
+\subtagalt{acadian}{\hascapu\hascapl}{fr-x-acadian}
+\subtag{canadianfrench}{\hascapu\hascapl}{fr-CA}
+\subtag{swissfrench}{\hascapu\hascapl}{fr-CH}
+\subtag{french-belgium}{\hascapu\hascapl}{fr-BE}
+\subtag{french-be}{\hascapu\hascapl}{fr-BE}
+\subtag{french-canada}{\hascapu\hascapl}{fr-CA}
+\subtag{french-ca}{\hascapu\hascapl}{fr-CA}
+\subtag{french-luxembourg}{\hascapu\hascapl}{fr-LU}
+\subtag{french-lu}{\hascapu\hascapl}{fr-LU}
+\subtag{french-switzerland}{\hascapu\hascapl}{fr-CH}
+\subtag{french-ch}{\hascapu\hascapl}{fr-CH}
+\tag{friulian}{\hascapu\hascapl}{fur}
+\tag{fulah}{}{ff}
+\tag{ga}{}{gaa}
+\tag{galician}{\hascapu\hascapl}{gl}
+\tag{ganda}{}{lg}
+\tag{geez}{}{gez}
+\tag{georgian}{\hascapu}{ka}
+\tag{german}{\hascapu\hascapl}{de}
+\note{Note the \texttt{ldf} names differ. See note above.}
+\subtag{german-traditional}{\hascapu\hascapl}{de-1901}
+\subtagalt{austrian}{\hascapu\hascapl}{de-AT}
+\subtag{german-austria}{\hascapu\hascapl}{de-AT}
+\subtag{german-at}{\hascapu\hascapl}{de-AT}
+\subtag{german-austria-traditional}{\hascapu\hascapl}{de-AT-1901}
+\subtagalt{swisshighgerman}{\hascapu\hascapl}{de-CH}\note{\texttt{swissgerman},
+with tag \texttt{gsw} is a different language.}
+\subtag{german-switzerland}{\hascapu\hascapl}{de-CH}
+\subtag{german-ch}{\hascapu\hascapl}{de-CH}
+\subtag{german-switzerland-traditional}{\hascapu\hascapl}{de-CH-1901}
+\tagmin{gothic}{}{got}
+\tag{greek}{\hascapu\hascapl}{el}
+\subtag{monotonicgreek}{\hascapu\hascapl}{el}
+\subtagalt{polytonicgreek}{\hascapu\hascapl}{el-polyton}
+\tag{guarani}{}{gn}
+\tag{gujarati}{\hascapu}{gu}
+\tag{gusii}{}{guz}
+\tag{haryanvi}{}{bgc}
+\tag{hausa}{\hascapu\hascapl}{ha}
+\subtag{hausa-ghana}{}{ha-GH}
+\subtag{hausa-gh}{}{ha-GH}
+\subtag{hausa-niger}{}{ha-NE}
+\subtag{hausa-ne}{}{ha-NE}
+\tag{hawaiian}{}{haw}
+\tag{hebrew}{\hascapu\hascapl}{he}
+\tag{hindi}{\hascapu}{hi}
+\tag{hmongnjua}{}{hnj}
+\tag{hungarian}{\hascapu\hascapl\hascapl\hascapl}{hu}
+\tag{icelandic}{\hascapu\hascapl}{is}
+\tag{igbo}{}{ig}
+\tag{inarisami}{}{smn}
+\tag{indonesian}{\hascapu\hascapl}{id}
+\tagmin{ingush}{}{inh}
+\tag{interlingua}{\hascapu\hascapl}{ia}
+\tag{inuktitut}{}{iu}
+\tag{irish}{\hascapu\hascapl}{ga}
+\tag{italian}{\hascapu\hascapl}{it}
+\tag{japanese}{\hascapu}{ja}
+\tag{javanese}{}{jv}
+\tag{jju}{}{kaj}
+\tag{jolafonyi}{}{dyo}
+\tag{kabuverdianu}{}{kea}
+\tag{kabyle}{}{kab}
+\tag{kaingang}{}{kgp}
+\tag{kako}{}{kkj}
+\tag{kalaallisut}{}{kl}
+\tag{kalenjin}{}{kln}
+\tag{kamba}{}{kam}
+\tag{kannada}{\hascapu}{kn}
+\tag{kashmiri}{}{ks}
+\tag{kazakh}{}{kk}
+\tag{khmer}{\hascapu}{km}
+\tag{kikuyu}{}{ki}
+\tag{kinyarwanda}{}{rw}
+\tagmin{komi}{}{kv}
+\tag{konkani}{}{kok}
+\tag{korean}{\hascapu}{ko}
+\subtag{korean-han}{\hascapu}{ko-Hani}
+\subtag{korean-hani}{\hascapu}{ko-Hani}
+\tag{koyraborosenni}{}{ses}
+\tag{koyrachiini}{}{khq}
+\tag{kurmanji}{\hascapu\hascapl}{kmr}
+\tag{kwasio}{}{nmg}
+\tag{kyrgyz}{}{ky}
+\tagmin{ladino}{}{lad}
+\tag{lakota}{}{lkt}
+\tag{langi}{}{lag}
+\tag{lao}{\hascapu}{lo}
+\tag{latin}{\hascapu\hascapl}{la}
+\subtagalt{ecclesiasticallatin}{\hascapu\hascapl}{la-x-ecclesia}
+\subtagalt{classicallatin}{\hascapu\hascapl}{la-x-classic}
+\subtagalt{medievallatin}{\hascapu\hascapl}{la-x-medieval}
+\tag{latvian}{\hascapu\hascapl}{lv}
+\tagmin{lepcha}{}{lep}
+\tag{ligurian}{}{lij}
+\tagmin{limbu}{}{lif}
+\subtagmin{limbu-limb}{}{lif-limb}
+\subtagmin{limbu-limbu}{}{lif-limb}
+\tagmin{lineara}{}{lab}
+\tag{lingala}{}{ln}
+\tag{lithuanian}{\hascapu\hascapl\hascapl\hascapl}{lt}
+\tagmin{lombard}{}{lmo}
+\tag{lowersorbian}{\hascapu\hascapl}{dsb}
+\tag{lowgerman}{}{nds}
+% \tag{lsorbian}{\hascapu\hascapl}{dsb}
+\tagmin{lu}{}{khb}
+\tag{lubakatanga}{}{lu}
+\tag{luo}{}{luo}
+\tag{luxembourgish}{\hascapu\hascapl}{lb}
+\tag{luyia}{}{luy}
+\tag{macedonian}{\hascapu\hascapl}{mk}
+\tag{machame}{}{jmc}
+\tag{magyar}{\hascapu\hascapl\hascapl\hascapl}{hu}
+\tag{maithili}{}{mai}
+\tagmin{makasar}{}{mak}
+\subtagmin{makasar-bugi}{}{mak-Bugi}
+\subtagmin{makasar-buginese}{}{mak-Bugi}
+\tag{makhuwameetto}{}{mgh}
+\tag{makonde}{}{kde}
+\tag{malagasy}{}{mg}
+\tag{malay}{\hascapu\hascapl}{ms}
+\subtag{malay-brunei}{}{ms-BN}
+\subtag{malay-bn}{}{ms-BN}
+\subtag{malay-singapore}{}{ms-SG}
+\subtag{malay-sg}{}{ms-SG}
+\tag{malayalam}{\hascapu}{ml}
+\tag{maltese}{}{mt}
+\tag{manipuri}{}{mni}
+\tag{manx}{}{gv}
+\tag{maori}{}{mi}
+\tag{marathi}{\hascapu}{mr}
+\tag{masai}{}{mas}
+\tag{mazanderani}{}{mzn}
+\tag{meru}{}{mer}
+\tag{meta}{}{mgo}
+\tag{mongolian}{}{mn}
+\tag{monotonicgreek}{\hascapu\hascapl}{el}
+\tag{morisyen}{}{mfe}
+\tag{mundang}{}{mua}
+\tag{muscogee}{}{mus}
+\tag{nama}{}{naq}
+% \tag{naustrian}{\hascapu\hascapl}{de-AT}
+\tagmin{navajo}{}{nv}
+\tag{nepali}{}{ne}
+\tagmin{newari}{}{new}
+\tag{newzealand}{\hascapu\hascapl}{en-NZ}
+% \tag{ngerman}{\hascapu\hascapl}{de}
+\tag{ngiemboon}{}{nnh}
+\tag{ngomba}{}{jgo}
+\tag{nheengatu}{}{yrl}
+\tag{nigerianpidgin}{}{pcm}
+\tag{nko}{}{nqo}
+\tag{northernfrisian}{}{frr}
+\tag{northernkurdish}{\hascapu\hascapl}{kmr}
+\subtag{northernkurdish-arab}{\hascapu}{kmr-Arab}
+\subtag{northernkurdish-arabic}{\hascapu}{kmr-Arab}
+\tag{northernluri}{}{lrc}
+\tag{northernsami}{\hascapu\hascapl}{se}
+\tag{northernsotho}{}{nso}
+\tag{northndebele}{}{nd}
+\tag{norwegian}{\hascapu\hascapl}{no}
+\subtag{norsk}{\hascapu\hascapl}{no}
+\note{In the CLDR, \texttt{norwegianbokmal} (nb) just inherites from
+\texttt{norwegian}, so use the latter.}
+% \tag{norwegianbokmal}{\hascapu\hascapl}{nb}
+\tag{nswissgerman}{\hascapu\hascapl}{de-CH}
+\tag{nuer}{}{nus}
+\tag{nyanja}{}{ny}
+\tag{nyankole}{}{nyn}
+\tag{nynorsk}{\hascapu\hascapl}{nn}
+\subtag{norwegiannynorsk}{\hascapu\hascapl}{nn}
+\tag{occitan}{\hascapu\hascapl}{oc}
+\tag{odia}{\hascapu}{or}
+\tagmin{oldnorse}{}{non}
+% \tag{oriya}{\hascapu}{or}
+\tag{oromo}{}{om}
+\tag{ossetic}{}{os}
+\tag{papiamento}{}{pap}
+\tag{pashto}{}{ps}
+\tag{persian}{\hascapu}{fa}
+\subtag{farsi}{\hascapu}{fa}
+\tagmin{phoenician}{}{phn}
+\tag{piedmontese}{\hascapu\hascapl}{pms}
+\tag{polish}{\hascapu\hascapl}{pl}
+\tag{portuguese}{\hascapu\hascapl}{pt}
+\subtagalt{brazilian}{\hascapu\hascapl}{pt-BR}
+\subtag{brazilianportuguese}{\hascapu\hascapl}{pt-BR}
+\subtag{portuguese-brazil}{\hascapu\hascapl}{pt-BR}
+\subtag{portuguese-br}{\hascapu\hascapl}{pt-BR}
+\subtag{europeanportuguese}{\hascapu\hascapl}{pt-PT}
+\subtag{portuguese-portugal}{\hascapu\hascapl}{pt-PT}
+\subtag{portuguese-pt}{\hascapu\hascapl}{pt-PT}
+\tag{prussian}{}{prg}
+\tag{punjabi}{\hascapu}{pa}
+\subtag{punjabi-arabic}{}{pa-Arab}
+\subtag{punjabi-arab}{}{pa-Arab}
+\subtag{punjabi-gurmukhi}{\hascapu}{pa-Guru}
+\subtag{punjabi-guru}{\hascapu}{pa-Guru}
+\tag{quechua}{}{qu}
+\tag{rajasthani}{}{raj}
+\tag{romanian}{\hascapu\hascapl}{ro}
+\subtagalt{moldavian}{\hascapu\hascapl}{ro-MD}
+\subtag{romanian-moldova}{\hascapu\hascapl}{ro-MD}
+\subtag{romanian-md}{\hascapu\hascapl}{ro-MD}
+\tag{romansh}{\hascapu\hascapl}{rm}
+\tag{rombo}{}{rof}
+\tag{rundi}{}{rn}
+\tag{russian}{\hascapu\hascapl}{ru}
+\tag{rwa}{}{rwk}
+\tag{saho}{}{ssy}
+\tag{sakha}{}{sah}
+\tagmin{samaritan}{}{smp}
+\tag{samburu}{}{saq}
+\tag{samin}{\hascapu\hascapl}{se}
+\tag{sango}{}{sg}
+\tag{sangu}{}{sbp}
+\tag{sanskrit}{}{sa}
+\subtag{sanskrit-bangla}{}{sa-Beng}
+\subtag{sanskrit-beng}{}{sa-Beng}
+% \subtag{sanskrit-bengali}{}{sa-Beng}
+\subtag{sanskrit-devanagari}{}{sa-Deva}
+\subtag{sanskrit-deva}{}{sa-Deva}
+\subtag{sanskrit-gujarati}{}{sa-Gujr}
+\subtag{sanskrit-gujr}{}{sa-Gujr}
+\subtag{sanskrit-kannada}{}{sa-Knda}
+\subtag{sanskrit-knda}{}{sa-Knda}
+\subtag{sanskrit-malayalam}{}{sa-Mlym}
+\subtag{sanskrit-mlym}{}{sa-Mlym}
+\subtag{sanskrit-telugu}{}{sa-Telu}
+\subtag{sanskrit-telu}{}{sa-Telu}
+\tag{santali}{}{sat}
+\tag{saraiki}{}{skr}
+\tag{sardinian}{}{sc}
+\tag{scottishgaelic}{\hascapu\hascapl}{gd}
+\tag{sena}{}{seh}
+\tag{serbian}{\hascapu\hascapl}{sr}
+\note{Note the \texttt{ldf} names differ. See note above.}
+\subtag{serbian-cyrillic}{\hascapu\hascapl}{sr-Cyrl}
+\subtag{serbian-cyrl}{\hascapu\hascapl}{sr-Cyrl}
+\subtag{serbian-cyrillic-bosniaherzegovina}{\hascapu\hascapl}{sr-Cyrl-BA}
+\subtag{serbian-cyrl-ba}{\hascapu\hascapl}{sr-Cyrl-BA}
+\subtag{serbian-cyrillic-kosovo}{\hascapu\hascapl}{sr-Cyrl-XK}
+\subtag{serbian-cyrl-xk}{\hascapu\hascapl}{sr-Cyrl-XK}
+\subtag{serbian-cyrillic-montenegro}{\hascapu\hascapl}{sr-Cyrl-ME}
+\subtag{serbian-cyrl-me}{\hascapu\hascapl}{sr-Cyrl-ME}
+\subtag{serbian-latin}{\hascapu\hascapl}{sr-Latn}
+\subtag{serbian-latn}{\hascapu\hascapl}{sr-Latn}
+\subtag{serbian-latin-bosniaherzegovina}{\hascapu\hascapl}{sr-Latn-BA}
+\subtag{serbian-latn-ba}{\hascapu\hascapl}{sr-Latn-BA}
+\subtag{serbian-latin-kosovo}{\hascapu\hascapl}{sr-Latn-XK}
+\subtag{serbian-latn-xk}{\hascapu\hascapl}{sr-Latn-XK}
+\subtag{serbian-latin-montenegro}{\hascapu\hascapl}{sr-Latn-ME}
+\subtag{serbian-latn-me}{\hascapu\hascapl}{sr-Latn-ME}
+\subtag{serbian-ijekavsk}{\hascapu\hascapl}{sr-ijekavsk}
+\subtag{serbian-latn-ijekavsk}{\hascapu\hascapl}{sr-Latn-ijekavsk}
+% \tag{serbianc}{\hascapu\hascapl}{sr}
+\tag{shambala}{}{ksb}
+\tag{shona}{}{sn}
+\tag{sichuanyi}{}{ii}
+\tag{sicilian}{}{scn}
+\tag{silesian}{}{szl}
+\tag{sindhi}{}{sd}
+\subtag{sindhi-devanagari}{}{sd-deva}
+\subtag{sindhi-deva}{}{sd-deva}
+\subtag{sindhi-khojki}{}{sd-khoj}
+\subtag{sindhi-khoj}{}{sd-khoj}
+\subtag{sindhi-khudawadi}{}{sd-sind}
+\subtag{sindhi-sind}{}{sd-sind}
+\tag{sinhala}{\hascapu}{si}
+\tagmin{sinteromani}{}{rmo}
+\tag{slovak}{\hascapu\hascapl}{sk}
+\tag{slovene}{\hascapu\hascapl}{sl}
+\tag{slovenian}{\hascapu\hascapl}{sl}
+\tag{soga}{}{xog}
+\tag{somali}{}{so}
+\tag{sorani}{\hascapu}{ckb}
+\tagmin{southernaltai}{}{alt}
+\tag{southernsotho}{}{st}
+\tag{southndebele}{}{nr}
+\tag{spanish}{\hascapu\hascapl}{es}
+\subtagalt{mexican}{\hascapu\hascapl}{es-MX}
+\subtag{mexicanspanish}{\hascapu\hascapl}{es-MX}
+\subtag{spanish-mexico}{\hascapu\hascapl}{es-MX}
+\subtag{spanish-mx}{\hascapu\hascapl}{es-MX}
+\tag{standardmoroccantamazight}{}{zgh}
+\tag{sundanese}{}{su}
+\tag{swahili}{}{sw}
+\tag{swati}{}{ss}
+\tag{swedish}{\hascapu\hascapl}{sv}
+\tag{swissgerman}{}{gsw}
+\note{Different from \texttt{swisshighgerman} (de-CH), which is German as spoken
+in Switzerland.}
+\tag{syriac}{}{syr}
+\tag{tachelhit}{}{shi}
+\subtag{tachelhit-latin}{}{shi-Latn}
+\subtag{tachelhit-latn}{}{shi-Latn}
+\subtag{tachelhit-tifinagh}{}{shi-Tfng}
+\subtag{tachelhit-tfng}{}{shi-Tfng}
+\tagmin{tainua}{}{tdd}
+\tag{taita}{}{dav}
+\tag{tajik}{}{tg}
+\tag{tamil}{\hascapu}{ta}
+\tagmin{tangut}{}{txg}
+\tag{taroko}{}{trv}
+\tag{tasawaq}{}{twq}
+\tag{tatar}{}{tt}
+\tag{telugu}{\hascapu}{te}
+\tag{teso}{}{teo}
+\tag{thai}{\hascapu\hascapl}{th}
+\tag{tibetan}{\hascapu}{bo}
+\tag{tigre}{}{tig}
+\tag{tigrinya}{}{ti}
+\tag{tokpisin}{}{tpi}
+\tag{tongan}{}{to}
+\tag{tsonga}{}{ts}
+\tag{tswana}{}{tn}
+\tag{turkish}{\hascapu\hascapl}{tr}
+\tag{turkmen}{\hascapu\hascapl}{tk}
+\tag{tyap}{}{kcg}
+\tag{ukenglish}{\hascapu\hascapl}{en-GB}
+\tag{ukrainian}{\hascapu\hascapl}{uk}
+\tag{uppersorbian}{\hascapu\hascapl}{hsb}
+\tag{urdu}{\hascapu}{ur}
+\tag{usenglish}{\hascapu\hascapl}{en-US}
+\tag{usorbian}{\hascapu\hascapl}{hsb}
+\tag{uyghur}{\hascapu}{ug}
+\tag{uzbek}{}{uz}
+\subtag{uzbek-arabic}{}{uz-Arab}
+\subtag{uzbek-arab}{}{uz-Arab}
+\subtag{uzbek-cyrillic}{}{uz-Cyrl}
+\subtag{uzbek-cyrl}{}{uz-Cyrl}
+\subtag{uzbek-latin}{}{uz-Latn}
+\subtag{uzbek-latn}{}{uz-Latn}
+\tag{vai}{}{vai}
+\subtag{vai-latin}{}{vai-Latn}
+\subtag{vai-latn}{}{vai-Latn}
+\subtag{vai-vai}{}{vai-Vaii}
+\subtag{vai-vaii}{}{vai-Vaii}
+\tag{venda}{}{ve}
+\tag{vietnamese}{\hascapu\hascapl}{vi}
+\tag{volapuk}{}{vo}
+\tag{vunjo}{}{vun}
+\tag{walser}{}{wae}
+\tagmin{waray}{}{war}
+\tag{welsh}{\hascapu\hascapl}{cy}
+\tag{westernfrisian}{}{fy}
+\tag{wolaytta}{}{wal}
+\tag{wolof}{}{wo}
+\tag{xhosa}{}{xh}
+\tag{yangben}{}{yav}
+\tag{yiddish}{}{yi}
+\tag{yoruba}{}{yo}
+\tag{zarma}{}{dje}
+\tag{zulu}{}{zu}
+\end{multicols}
+\endgroup
+\hrule
+\bigskip
+
\subsection{Selecting fonts}
\New{3.15} Babel provides a high level interface on top of |fontspec|
@@ -4718,29 +4479,6 @@ options (like paragraph direction with |bidi.text|).
\subsection{Tips, workarounds, known issues and notes}
\begin{itemize}
-\item If you use the document class \cls{book} \emph{and} you use
- |\ref| inside the argument of |\chapter| (or just use |\ref| inside
- |\MakeUppercase|), \LaTeX\ will keep complaining about an undefined
- label. To prevent such problems, you can revert to using
- uppercase labels, you can use |\lowercase{\ref{foo}}| inside the
- argument of |\chapter|, or, if you will not use shorthands in
- labels, set the |safe| option to |none| or |bib|.
-
-\item\catcode`\|=12\relax Both \textsf{ltxdoc} and \textsf{babel} use
- \verb|\AtBeginDocument| to change some catcodes, and babel reloads
- \textsf{hhline} to make sure \verb|:| has the right one, so if you
- want to change the catcode of \verb/|/ it has to be done using the
- same method at the proper place, with
-\begin{verbatim}
-\AtBeginDocument{\DeleteShortVerb{\|}}
-\end{verbatim}
- \textit{before} loading babel. This way, when the document begins
- the sequence is (1) make \verb/|/ active (\textsf{ltxdoc}); (2) make
- 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
-
\item For the hyphenation to work correctly, lccodes cannot change,
because \TeX{} only takes into account the values when the
paragraph is hyphenated, i.e., when it has been
@@ -4754,19 +4492,13 @@ options (like paragraph direction with |bidi.text|).
\babel. Alternatively, you may use |\useshorthands| to activate |'|
and |\defineshorthand|, or redefine |\textquoteright| (the latter
is called by the non-ASCII right quote).
-\item \verb|\bibitem| is out of sync with \verb|\selectlanguage| in
- the \file{.aux} file. The reason is \verb|\bibitem| uses
- \verb|\immediate| (and others, in fact), while
- \verb|\selectlanguage| doesn't. There is a similar issue with floats,
- too. There is no known workaround.
\item Babel does not take into account |\normalsfcodes| and
(non-)French spacing is not always properly (un)set by
languages. However, problems are unlikely to happen and therefore
- this part remains untouched in version 3.9 (but it is in the `to
- do' list).
+ this part remains untouched (but it is in the `to do' list).
\item Using a character mathematically active (ie, with math code
|"8000|) as a shorthand can make \TeX{} enter in an infinite loop in
- some rare cases. (Another issue in the `to do' list, although there
+ some rare cases. (Another issue in the ‘to do’ list, although there
is a partial solution.)
\end{itemize}
@@ -5695,8 +5427,8 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=24.1>>
-%<<date=2024/01/07>>
+%<<version=24.2>>
+%<<date=2024/02/07>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -6142,11 +5874,12 @@ wouldn’t exist.
\directlua{ Babel = Babel or {}
Babel.debug = false }%
\fi}
-\def\bbl@error#1#2{%
+\def\bbl@error#1{% Implicit #2#3#4
\begingroup
- \def\\{\MessageBreak}%
- \PackageError{babel}{#1}{#2}%
- \endgroup}
+ \catcode`\\=0 \catcode`\==12 \catcode`\`=12
+ \input errbabel.def
+ \endgroup
+ \bbl@error{#1}}
\def\bbl@warning#1{%
\begingroup
\def\\{\MessageBreak}%
@@ -6344,12 +6077,7 @@ wouldn’t exist.
\bbl@csarg\ifx{opt@#1}\@nnil
\bbl@csarg\edef{opt@#1}{#2}%
\else
- \bbl@error
- {Bad option '#1=#2'. Either you have misspelled the\\%
- key or there is a previous setting of '#1'. Valid\\%
- keys are, among others, 'shorthands', 'main', 'bidi',\\%
- 'strings', 'config', 'headfoot', 'safe', 'math'.}%
- {See the manual for further details.}
+ \bbl@error{bad-package-option}{#1}{#2}{}%
\fi}
% \end{macrocode}
%
@@ -6658,11 +6386,7 @@ wouldn’t exist.
%<-core>
\def\bbl@provide@locale{%
\ifx\babelprovide\@undefined
- \bbl@error{For a language to be defined on the fly 'base'\\%
- is not enough, and the whole package must be\\%
- loaded. Either delete the 'base' option or\\%
- request the languages explicitly}%
- {See the manual for further details.}%
+ \bbl@error{base-on-the-fly}{}{}{}%
\fi
\let\bbl@auxname\languagename % Still necessary. TODO
\bbl@ifunset{bbl@bcp@map@\languagename}{}% Move uplevel??
@@ -7413,10 +7137,7 @@ wouldn’t exist.
% will use the concept of `locale':
%
% \begin{macrocode}
-\providecommand\setlocale{%
- \bbl@error
- {Not yet available}%
- {Find an armchair, sit down and wait}}
+\providecommand\setlocale{\bbl@error{not-yet-available}{}{}{}}
\let\uselocale\setlocale
\let\locale\setlocale
\let\selectlocale\setlocale
@@ -7472,12 +7193,7 @@ wouldn’t exist.
They might not work as expected and their behavior\\%
could change in the future.\\%
Reported}}
-\def\@nolanerr#1{%
- \bbl@error
- {You haven't defined the language '#1' yet.\\%
- Perhaps you misspelled it or your installation\\%
- is not complete}%
- {Your command will be ignored, type <return> to proceed}}
+\def\@nolanerr#1{\bbl@error{undefined-language}{#1}{}{}}
\def\@nopatterns#1{%
\bbl@warning
{No hyphenation patterns were preloaded for\\%
@@ -8505,10 +8221,7 @@ wouldn’t exist.
\initiate@active@char{#2}%
#1%
\bbl@activate{#2}}%
- {\bbl@error
- {I can't declare a shorthand turned off (\string#2)}
- {Sorry, but you can't use shorthands which have been\\%
- turned off in the package options}}}
+ {\bbl@error{shorthand-is-off}{}{#2}{}}}
% \end{macrocode}
%
% \end{macro}
@@ -8583,10 +8296,7 @@ wouldn’t exist.
\bbl@activate{#2}%
\fi
\fi}%
- {\bbl@error
- {Cannot declare a shorthand turned off (\string#2)}
- {Sorry, but you cannot use shorthands which have been\\%
- turned off in the package options}}}
+ {\bbl@error{shorthand-is-off}{}{#2}{}}}
% \end{macrocode}
%
% \end{macro}
@@ -8594,13 +8304,7 @@ wouldn’t exist.
% \begin{macro}{\@notshorthand}
%
% \begin{macrocode}
-\def\@notshorthand#1{%
- \bbl@error{%
- The character '\string #1' should be made a shorthand character;\\%
- add the command \string\useshorthands\string{#1\string} to
- the preamble.\\%
- I will ignore your instruction}%
- {You may proceed, but expect unexpected results}}
+\def\@notshorthand#1{\bbl@error{not-a-shorthand}{#1}{}{}}
% \end{macrocode}
%
% \end{macro}
@@ -8639,10 +8343,7 @@ wouldn’t exist.
\def\bbl@switch@sh#1#2{%
\ifx#2\@nnil\else
\bbl@ifunset{bbl@active@\string#2}%
- {\bbl@error
- {I can't switch '\string#2' on or off--not a shorthand}%
- {This character is not a shorthand. Maybe you made\\%
- a typing mistake? I will ignore your instruction.}}%
+ {\bbl@error{not-a-shorthand-b}{}{#2}{}}%
{\ifcase#1% off, on, off*
\catcode`#212\relax
\or
@@ -8845,9 +8546,7 @@ wouldn’t exist.
%
% \begin{macrocode}
\newcommand*{\@attrerr}[2]{%
- \bbl@error
- {The attribute #2 is unknown for language #1.}%
- {Your command will be ignored, type <return> to proceed}}
+ \bbl@error{unknown-attribute}{#1}{#2}{}}
% \end{macrocode}
%
% \end{macro}
@@ -9384,9 +9083,7 @@ wouldn’t exist.
\bbl@scswitch
\ifx\bbl@G\@empty
\def\SetString##1##2{%
- \bbl@error{Missing group for string \string##1}%
- {You must assign strings to some category, typically\\%
- captions or extras, but you set none}}%
+ \bbl@error{missing-group}{##1}{}{}}%
\fi
\ifx\@empty#1%
\bbl@usehooks{defaultcommands}{}%
@@ -10180,14 +9877,8 @@ wouldn’t exist.
\or
\input xebabel.def
\fi
-\providecommand\babelfont{%
- \bbl@error
- {This macro is available only in LuaLaTeX and XeLaTeX.}%
- {Consider switching to these engines.}}
-\providecommand\babelprehyphenation{%
- \bbl@error
- {This macro is available only in LuaLaTeX.}%
- {Consider switching to that engine.}}
+\providecommand\babelfont{\bbl@error@{only-lua-xe}{}{}{}}
+\providecommand\babelprehyphenation{\bbl@error{only-lua}{}{}{}}
\ifx\babelposthyphenation\@undefined
\let\babelposthyphenation\babelprehyphenation
\let\babelpatterns\babelprehyphenation
@@ -10235,9 +9926,7 @@ wouldn’t exist.
\bbl@renewinikey##1\@@{##2}%
\else
\bbl@csarg\ifx{KVP@##1}\@nnil\else
- \bbl@error
- {Unknown key '##1' in \string\babelprovide}%
- {See the manual for valid keys}%
+ \bbl@error{unknown-provide-key}{##1}{}{}%
\fi
\bbl@csarg\def{KVP@##1}{##2}%
\fi}%
@@ -10396,14 +10085,17 @@ wouldn’t exist.
\let\bbl@mapselect\relax
\edef\bbl@prefontid{\fontid\font}}%
\def\bbl@mapdir##1{%
- {\def\languagename{##1}%
- \let\bbl@ifrestoring\@firstoftwo % To avoid font warning
- \bbl@switchfont
- \ifnum\fontid\font>\z@ % A hack, for the pgf nullfont hack
- \directlua{
- Babel.locale_props[\the\csname bbl@id@@##1\endcsname]%
- ['/\bbl@prefontid'] = \fontid\font\space}%
- \fi}}%
+ \begingroup
+ \setbox\z@\hbox{% Force text mode
+ \def\languagename{##1}%
+ \let\bbl@ifrestoring\@firstoftwo % To avoid font warning
+ \bbl@switchfont
+ \ifnum\fontid\font>\z@ % A hack, for the pgf nullfont hack
+ \directlua{
+ Babel.locale_props[\the\csname bbl@id@@##1\endcsname]%
+ ['/\bbl@prefontid'] = \fontid\font\space}%
+ \fi}%
+ \endgroup}%
\fi
\bbl@exp{\\\bbl@add\\\bbl@mapselect{\\\bbl@mapdir{\languagename}}}%
\fi
@@ -10413,9 +10105,7 @@ wouldn’t exist.
% For bidi texts, to switch the font based on direction
\ifx\bbl@KVP@mapfont\@nnil\else
\bbl@ifsamestring{\bbl@KVP@mapfont}{direction}{}%
- {\bbl@error{Option '\bbl@KVP@mapfont' unknown for\\%
- mapfont. Use 'direction'.%
- {See the manual for details.}}}%
+ {\bbl@error{unknown-mapfont}{}{}{}}%
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\bbl@ifunset{bbl@wdir@\languagename}{\bbl@provide@dirs{\languagename}}{}%
\ifx\bbl@mapselect\@undefined % TODO. See onchar.
@@ -10825,11 +10515,7 @@ wouldn’t exist.
\global\let\bbl@extend@ini\@gobble
\openin\bbl@readstream=babel-#1.ini
\ifeof\bbl@readstream
- \bbl@error
- {There is no ini file for the requested language\\%
- (#1: \languagename). Perhaps you misspelled it or your\\%
- installation is not complete.}%
- {Fix the name or reinstall babel.}%
+ \bbl@error{no-ini-file}{#1}{}{}%
\else
% == Store ini data in \bbl@inidata ==
\catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\&=12
@@ -11100,9 +10786,7 @@ wouldn’t exist.
% \begin{macrocode}
\def\bbl@inikv@counters#1#2{%
\bbl@ifsamestring{#1}{digits}%
- {\bbl@error{The counter name 'digits' is reserved for mapping\\%
- decimal digits}%
- {Use another name.}}%
+ {\bbl@error{digits-is-reserved}{}{}{}}%
{}%
\def\bbl@tempc{#1}%
\bbl@trim@def{\bbl@tempb*}{#2}%
@@ -11393,10 +11077,7 @@ wouldn’t exist.
\else\ifnum#1<1000 \expandafter\@gobble\number#1 %
\else\ifnum#1<10000 \expandafter\@gobbletwo\number#1 %
\else
- \bbl@error
- {Currently two-digit years are restricted to the\\
- range 0-9999.}%
- {There is little you can do. Sorry.}%
+ \bbl@error{limit-two-digits}{}{}{}%
\fi\fi\fi\fi}}
\newcommand\BabelDateyyyy[1]{{\number#1}} % TODO - add leading 0
\newcommand\BabelDateU[1]{{\number#1}}%
@@ -11641,8 +11322,7 @@ wouldn’t exist.
\fi}%
{\bbl@cs{cntr@#1.F.\number#5#6#7#8@\languagename}}}
\def\bbl@alphnum@invalid#1{%
- \bbl@error{Alphabetic numeral too large (#1)}%
- {Currently this is the limit.}}
+ \bbl@error{alphabetic-too-large}{#1}{}{}}
% \end{macrocode}
%
% The information in the identification section can be useful, so the
@@ -11658,10 +11338,7 @@ wouldn’t exist.
\bbl@afterelse\bbl@localeinfo{}%
\else
\bbl@localeinfo
- {\bbl@error{I've found no info for the current locale.\\%
- The corresponding ini file has not been loaded\\%
- Perhaps it doesn't exist}%
- {See the manual for details.}}%
+ {\bbl@error{no-ini-info}{}{}{}}%
{#1}%
\fi}
% \@namedef{bbl@info@name.locale}{lcname}
@@ -11704,9 +11381,7 @@ wouldn’t exist.
{\bbl@bcpdata@ii{#1#2#3#4#5#6}\languagename}}%
\def\bbl@bcpdata@ii#1#2{%
\bbl@ifunset{bbl@info@#1.tag.bcp47}%
- {\bbl@error{Unknown field '#1' in \string\BCPdata.\\%
- Perhaps you misspelled it.}%
- {See the manual for details.}}%
+ {\bbl@error{unknown-ini-field}{#1}{}{}}%
{\bbl@ifunset{bbl@\csname bbl@info@#1.tag.bcp47\endcsname @#2}{}%
{\bbl@cs{\csname bbl@info@#1.tag.bcp47\endcsname @#2}}}}
\fi
@@ -11799,11 +11474,7 @@ wouldn’t exist.
\def\bbl@getproperty@x#1#2#3{%
\bbl@getproperty@s{#1}{#2}{#3}%
\ifx#1\relax
- \bbl@error
- {Unknown key for locale '#2':\\%
- #3\\%
- \string#1 will be set to \relax}%
- {Perhaps you misspelled it.}%
+ \bbl@error{unknown-locale-key}{#1}{#2}{#3}%
\fi}
\let\bbl@ini@loaded\@empty
\newcommand\LocaleForEach{\bbl@foreach\bbl@ini@loaded}
@@ -11834,10 +11505,7 @@ wouldn’t exist.
\expandafter\expandafter\expandafter\@gobble
\fi
\fi
- {\bbl@error % The error is gobbled if everything went ok.
- {Currently, #1 related features can be adjusted only\\%
- in the main vertical list.}%
- {Maybe things change in the future, but this is what it is.}}}
+ {\bbl@error{adjust-only-vertical}{#1}{}{}}}% Gobbled if everything went ok.
\@namedef{bbl@ADJ@bidi.mirroring@on}{%
\bbl@adjust@lua{bidi}{mirroring_enabled=true}}
\@namedef{bbl@ADJ@bidi.mirroring@off}{%
@@ -11873,10 +11541,7 @@ wouldn’t exist.
#1%
\expandafter\@gobble
\fi
- {\bbl@error % The error is gobbled if everything went ok.
- {Currently, layout related features can be adjusted only\\%
- in vertical mode.}%
- {Maybe things change in the future, but this is what it is.}}}
+ {\bbl@error{layout-only-vertical}{}{}{}}}% Gobbled if everything went ok.
\@namedef{bbl@ADJ@layout.tabular@on}{%
\ifnum\bbl@tabular@mode=\tw@
\bbl@adjust@layout{\let\@tabular\bbl@NL@@tabular}%
@@ -12092,8 +11757,8 @@ wouldn’t exist.
\bbl@xin@{B}\bbl@opt@safe
\ifin@
\bbl@redefine\@citex[#1]#2{%
- \@safe@activestrue\edef\@tempa{#2}\@safe@activesfalse
- \org@@citex[#1]{\@tempa}}
+ \@safe@activestrue\edef\bbl@tempa{#2}\@safe@activesfalse
+ \org@@citex[#1]{\bbl@tempa}}
% \end{macrocode}
%
% Unfortunately, the packages \pkg{natbib} and \pkg{cite} need a
@@ -12118,8 +11783,8 @@ wouldn’t exist.
%
% \begin{macrocode}
\def\@citex[#1][#2]#3{%
- \@safe@activestrue\edef\@tempa{#3}\@safe@activesfalse
- \org@@citex[#1][#2]{\@tempa}}%
+ \@safe@activestrue\edef\bbl@tempa{#3}\@safe@activesfalse
+ \org@@citex[#1][#2]{\bbl@tempa}}%
}{}}
% \end{macrocode}
%
@@ -12640,11 +12305,7 @@ wouldn’t exist.
\ifodd\bbl@engine
\else % TODO. Move to txtbabel
\ifnum\bbl@bidimode>100 \ifnum\bbl@bidimode<200 % Any xe+lua bidi=
- \bbl@error
- {The bidi method 'basic' is available only in\\%
- luatex. I'll continue with 'bidi=default', so\\%
- expect wrong results}%
- {See the manual for further details.}%
+ \bbl@error{bidi-only-lua}{}{}{}%
\let\bbl@beforeforeign\leavevmode
\AtEndOfPackage{%
\EnableBabelHook{babel-bidi}%
@@ -12760,8 +12421,7 @@ wouldn’t exist.
\ifhmode
\ifnum\currentgrouplevel>\z@
\ifnum\currentgrouplevel=\bbl@dirlevel
- \bbl@error{Multiple bidi settings inside a group}%
- {I'll insert a new group, but expect wrong results.}%
+ \bbl@error{multiple-bidi}{}{}{}%
\bgroup\aftergroup#2\aftergroup\egroup
\else
\ifcase\currentgrouptype\or % 0 bottom
@@ -12895,14 +12555,7 @@ wouldn’t exist.
If it’s the main language, try adding `provide=*'\\%
to the babel package options}}%
{\let\bbl@tempa\empty}%
- \bbl@error{%
- Unknown option '\CurrentOption'. Either you misspelled it\\%
- or the language definition file \CurrentOption.ldf\\%
- was not found%
- \bbl@tempa}{%
- Valid options are, among others: shorthands=, KeepShorthandsActive,\\%
- activeacute, activegrave, noconfigs, safe=, main=, math=\\%
- headfoot=, strings=, config=, hyphenmap=, or a language name.}}}
+ \bbl@error{unknown-package-option}{}{}{}}}
% \end{macrocode}
%
% Now, we set a few language options whose names are different from
@@ -12917,16 +12570,16 @@ wouldn’t exist.
{#1\bbl@load@language{#2}#3}}
%
\DeclareOption{hebrew}{%
+ \ifcase\bbl@engine\or
+ \bbl@error{only-pdftex-lang}{hebrew}{luatex}{}%
+ \fi
\input{rlbabel.def}%
\bbl@load@language{hebrew}}
\DeclareOption{hungarian}{\bbl@try@load@lang{}{magyar}{}}
\DeclareOption{lowersorbian}{\bbl@try@load@lang{}{lsorbian}{}}
-\DeclareOption{northernsami}{\bbl@try@load@lang{}{samin}{}}
-\DeclareOption{nynorsk}{\bbl@try@load@lang{}{norsk}{}}
\DeclareOption{polutonikogreek}{%
\bbl@try@load@lang{}{greek}{\languageattribute{greek}{polutoniko}}}
\DeclareOption{russian}{\bbl@try@load@lang{}{russianb}{}}
-\DeclareOption{scottishgaelic}{\bbl@try@load@lang{}{scottish}{}}
\DeclareOption{ukrainian}{\bbl@try@load@lang{}{ukraineb}{}}
\DeclareOption{uppersorbian}{\bbl@try@load@lang{}{usorbian}{}}
% \end{macrocode}
@@ -12952,9 +12605,7 @@ wouldn’t exist.
{\typeout{*************************************^^J%
* Local config file \bbl@opt@config.cfg used^^J%
*}}%
- {\bbl@error{%
- Local config file '\bbl@opt@config.cfg' not found}{%
- Perhaps you misspelled it.}}%
+ {\bbl@error{config-not-found}{}{}{}}%
\fi
% \end{macrocode}
%
@@ -13110,10 +12761,7 @@ wouldn’t exist.
\fi
\bbl@exp{%
\\\AtBeginDocument{\\\bbl@usehooks@lang{/}{begindocument}{{}}}}%
-\def\AfterBabelLanguage{%
- \bbl@error
- {Too late for \string\AfterBabelLanguage}%
- {Languages have been loaded, so I can do nothing}}
+\def\AfterBabelLanguage{\bbl@error{late-after-babel}{}{}{}}
% \end{macrocode}
%
% In order to catch the case where the user didn’t specify a
@@ -13158,6 +12806,203 @@ wouldn’t exist.
\input babel.def
\let\bbl@onlyswitch\@undefined
%</kernel>
+%
+% \section{Error messages}
+%
+% They are loaded when |\bll@error| is first called. To save space, the
+% main code just identifies them with a tag, and messages are stored in
+% a separate file. Since it can be loaded anywhere, you make sure some
+% catcodes have the right value, although those for |\|, |`|, |^^M|,
+% |%| and |=| are reset before loading the file.
+%
+%<*errors>
+\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
+\catcode`\:=12 \catcode`\,=12 \catcode`\.=12 \catcode`\-=12
+\catcode`\'=12 \catcode`\(=12 \catcode`\)=12
+\catcode`\@=11 \catcode`\^=7
+%
+\ifx\MessageBreak\@undefined
+ \gdef\bbl@error@i#1#2{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(babel) }%
+ \errhelp{#2}\errmessage{\\#1}%
+ \endgroup}
+\else
+ \gdef\bbl@error@i#1#2{%
+ \begingroup
+ \def\\{\MessageBreak}%
+ \PackageError{babel}{#1}{#2}%
+ \endgroup}
+\fi
+\def\bbl@errmessage#1#2#3{%
+ \expandafter\gdef\csname bbl@err@#1\endcsname##1##2##3{%
+ \bbl@error@i{#2}{#3}}}
+% Implicit #2#3#4:
+\gdef\bbl@error#1{\csname bbl@err@#1\endcsname}
+%
+\bbl@errmessage{not-yet-available}
+ {Not yet available}%
+ {Find an armchair, sit down and wait}
+\bbl@errmessage{bad-package-option}%
+ {Bad option '#1=#2'. Either you have misspelled the\\%
+ key or there is a previous setting of '#1'. Valid\\%
+ keys are, among others, 'shorthands', 'main', 'bidi',\\%
+ 'strings', 'config', 'headfoot', 'safe', 'math'.}%
+ {See the manual for further details.}
+\bbl@errmessage{base-on-the-fly}
+ {For a language to be defined on the fly 'base'\\%
+ is not enough, and the whole package must be\\%
+ loaded. Either delete the 'base' option or\\%
+ request the languages explicitly}%
+ {See the manual for further details.}
+\bbl@errmessage{undefined-language}
+ {You haven't defined the language '#1' yet.\\%
+ Perhaps you misspelled it or your installation\\%
+ is not complete}%
+ {Your command will be ignored, type <return> to proceed}
+\bbl@errmessage{shorthand-is-off}
+ {I can't declare a shorthand turned off (\string#2)}
+ {Sorry, but you can't use shorthands which have been\\%
+ turned off in the package options}
+\bbl@errmessage{not-a-shorthand}
+ {The character '\string #1' should be made a shorthand character;\\%
+ add the command \string\useshorthands\string{#1\string} to
+ the preamble.\\%
+ I will ignore your instruction}%
+ {You may proceed, but expect unexpected results}
+\bbl@errmessage{not-a-shorthand-b}
+ {I can't switch '\string#2' on or off--not a shorthand}%
+ {This character is not a shorthand. Maybe you made\\%
+ a typing mistake? I will ignore your instruction.}
+\bbl@errmessage{unknown-attribute}
+ {The attribute #2 is unknown for language #1.}%
+ {Your command will be ignored, type <return> to proceed}
+\bbl@errmessage{missing-group}
+ {Missing group for string \string#1}%
+ {You must assign strings to some category, typically\\%
+ captions or extras, but you set none}
+\bbl@errmessage{only-lua-xe}
+ {This macro is available only in LuaLaTeX and XeLaTeX.}%
+ {Consider switching to these engines.}
+\bbl@errmessage{only-lua}
+ {This macro is available only in LuaLaTeX.}%
+ {Consider switching to that engine.}
+\bbl@errmessage{unknown-provide-key}
+ {Unknown key '#1' in \string\babelprovide}%
+ {See the manual for valid keys}%
+\bbl@errmessage{unknown-mapfont}
+ {Option '\bbl@KVP@mapfont' unknown for\\%
+ mapfont. Use 'direction'.}%
+ {See the manual for details.}
+\bbl@errmessage{no-ini-file}
+ {There is no ini file for the requested language\\%
+ (#1: \languagename). Perhaps you misspelled it or your\\%
+ installation is not complete.}%
+ {Fix the name or reinstall babel.}
+\bbl@errmessage{digits-is-reserved}
+ {The counter name 'digits' is reserved for mapping\\%
+ decimal digits}%
+ {Use another name.}
+\bbl@errmessage{limit-two-digits}
+ {Currently two-digit years are restricted to the\\
+ range 0-9999.}%
+ {There is little you can do. Sorry.}
+\bbl@errmessage{alphabetic-too-large}
+ {Alphabetic numeral too large (#1)}%
+ {Currently this is the limit.}
+\bbl@errmessage{no-ini-info}
+ {I've found no info for the current locale.\\%
+ The corresponding ini file has not been loaded\\%
+ Perhaps it doesn't exist}%
+ {See the manual for details.}
+\bbl@errmessage{unknown-ini-field}
+ {Unknown field '#1' in \string\BCPdata.\\%
+ Perhaps you misspelled it.}%
+ {See the manual for details.}
+\bbl@errmessage{unknown-locale-key}
+ {Unknown key for locale '#2':\\%
+ #3\\%
+ \string#1 will be set to \relax}%
+ {Perhaps you misspelled it.}%
+\bbl@errmessage{adjust-only-vertical}
+ {Currently, #1 related features can be adjusted only\\%
+ in the main vertical list.}%
+ {Maybe things change in the future, but this is what it is.}
+\bbl@errmessage{layout-only-vertical}
+ {Currently, layout related features can be adjusted only\\%
+ in vertical mode.}%
+ {Maybe things change in the future, but this is what it is.}
+\bbl@errmessage{bidi-only-lua}
+ {The bidi method 'basic' is available only in\\%
+ luatex. I'll continue with 'bidi=default', so\\%
+ expect wrong results}%
+ {See the manual for further details.}
+\bbl@errmessage{multiple-bidi}
+ {Multiple bidi settings inside a group}%
+ {I'll insert a new group, but expect wrong results.}
+\bbl@errmessage{unknown-package-option}
+ {Unknown option '\CurrentOption'. Either you misspelled it\\%
+ or the language definition file \CurrentOption.ldf\\%
+ was not found%
+ \bbl@tempa}
+ {Valid options are, among others: shorthands=, KeepShorthandsActive,\\%
+ activeacute, activegrave, noconfigs, safe=, main=, math=\\%
+ headfoot=, strings=, config=, hyphenmap=, or a language name.}
+\bbl@errmessage{config-not-found}
+ {Local config file '\bbl@opt@config.cfg' not found}%
+ {Perhaps you misspelled it.}
+\bbl@errmessage{late-after-babel}
+ {Too late for \string\AfterBabelLanguage}%
+ {Languages have been loaded, so I can do nothing}
+\bbl@errmessage{double-hyphens-class}
+ {Double hyphens aren't allowed in \string\babelcharclass\\%
+ because it's potentially ambiguous}%
+ {See the manual for further info}
+\bbl@errmessage{unknown-interchar}
+ {'#1' for '\languagename' cannot be enabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}
+\bbl@errmessage{unknown-interchar-b}
+ {'#1' for '\languagename' cannot be disabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}
+\bbl@errmessage{charproperty-only-vertical}
+ {\string\babelcharproperty\space can be used only in\\%
+ vertical mode (preamble or between paragraphs)}%
+ {See the manual for further info}
+\bbl@errmessage{unknown-char-property}
+ {No property named '#2'. Allowed values are\\%
+ direction (bc), mirror (bmg), and linebreak (lb)}%
+ {See the manual for further info}
+\bbl@errmessage{bad-transform-option}
+ {Bad option '#1' in a transform.\\%
+ I’ll ignore it but expect more errors}%
+ {See the manual for further info.}
+\bbl@errmessage{font-conflict-transforms}
+ {Transforms cannot be re-assigned to different\\%
+ fonts. The conflict is in '\bbl@kv@label'.\\%
+ Apply the same fonts or use a different label}%
+ {See the manual for further details.}
+\bbl@errmessage{transform-not-available}
+ {'#1' for '\languagename' cannot be enabled.\\%
+ Maybe there is a typo or it’s a font-dependent transform}%
+ {See the manual for further details.}
+\bbl@errmessage{transform-not-available-b}
+ {'#1' for '\languagename' cannot be disabled.\\%
+ Maybe there is a typo or it’s a font-dependent transform}%
+ {See the manual for further details.}
+\bbl@errmessage{year-out-range}
+ {Year out of range.\\%
+ The allowed range is #1}%
+ {See the manual for further details.}
+\bbl@errmessage{only-pdftex-lang}
+ {The '#1' ldf style doesn't work with #2,\\%
+ but you can use the ini locale instead.\\%
+ Try adding 'provide=*' to the option list. You may\\%
+ also want to set 'bidi=' to some value.}%
+ {See the manual for further details.}
+%</errors>
%<*patterns>
% \end{macrocode}
%
@@ -13386,7 +13231,7 @@ wouldn’t exist.
\def\bbl@usehooks##1##2{}% TODO. Temporary!!
\def\setlocale{%
\errhelp{Find an armchair, sit down and wait}%
- \errmessage{Not yet available}}%
+ \errmessage{(babel) Not yet available}}%
\let\uselocale\setlocale
\let\locale\setlocale
\let\selectlocale\setlocale
@@ -14023,9 +13868,7 @@ wouldn’t exist.
\else\ifnum\count@=\z@
\bbl@charclass{-}%
\else
- \bbl@error{Double hyphens aren't allowed in \string\babelcharclass\\%
- because it's potentially ambiguous}%
- {See the manual for further info}%
+ \bbl@error{double-hyphens-class}{}{}{}%
\fi\fi}
% \end{macrocode}
%
@@ -14059,17 +13902,11 @@ wouldn’t exist.
@#3@#4@#2 \@empty\endcsname}}}}
\DeclareRobustCommand\enablelocaleinterchar[1]{%
\bbl@ifunset{bbl@ic@#1@\languagename}%
- {\bbl@error
- {'#1' for '\languagename' cannot be enabled.\\%
- Maybe there is a typo.}%
- {See the manual for further details.}}%
+ {\bbl@error{unknown-interchar}{#1}{}{}}%
{\bbl@csarg\let{ic@#1@\languagename}\@firstofone}}
\DeclareRobustCommand\disablelocaleinterchar[1]{%
\bbl@ifunset{bbl@ic@#1@\languagename}%
- {\bbl@error
- {'#1' for '\languagename' cannot be disabled.\\%
- Maybe there is a typo.}%
- {See the manual for further details.}}%
+ {\bbl@error{unknown-interchar-b}{#1}{}{}}%
{\bbl@csarg\let{ic@#1@\languagename}\@gobble}}
%</xetex>
% \end{macrocode}
@@ -15329,17 +15166,13 @@ end
\count@=#1\relax
\ifvmode
\expandafter\bbl@chprop
- \else
- \bbl@error{\string\babelcharproperty\space can be used only in\\%
- vertical mode (preamble or between paragraphs)}%
- {See the manual for further info}%
+ \else
+ \bbl@error{charproperty-only-vertical}{}{}{}%
\fi}
\newcommand\bbl@chprop[3][\the\count@]{%
\@tempcnta=#1\relax
- \bbl@ifunset{bbl@chprop@#2}%
- {\bbl@error{No property named '#2'. Allowed values are\\%
- direction (bc), mirror (bmg), and linebreak (lb)}%
- {See the manual for further info}}%
+ \bbl@ifunset{bbl@chprop@#2}% {unknown-char-property}
+ {\bbl@error{unknown-char-property}{}{#2}{}}%
{}%
\loop
\bbl@cs{chprop@#2}{#3}%
@@ -15443,10 +15276,7 @@ end
\in@{,####1,}{,nil,step,data,remove,insert,string,no,pre,&%
no,post,penalty,kashida,space,spacefactor,}&%
\ifin@\else
- \bbl@error
- {Bad option '####1' in a transform.\\&%
- I’ll ignore it but expect more errors}&%
- {See the manual for further info.}&%
+ \bbl@error{bad-transform-option}{####1}{}{}&%
\fi}}&%
\let\bbl@kv@attribute\relax
\let\bbl@kv@label\relax
@@ -15463,11 +15293,7 @@ end
\bbl@ifsamestring{#3,\bbl@kv@label}{##1,##2}&%
{\bbl@ifsamestring{\bbl@kv@fonts}{##3}&%
{\count@\@ne}&%
- {\bbl@error
- {Transforms cannot be re-assigned to different\\&%
- fonts. The conflict is in '\bbl@kv@label'.\\&%
- Apply the same fonts or use a different label}&%
- {See the manual for further details.}}}&%
+ {\bbl@error{font-conflict-transforms}{}{}{}}}&%
{}}&%
\bbl@transfont@list
\ifnum\count@=\z@
@@ -15556,17 +15382,11 @@ end
{}}}
\DeclareRobustCommand\enablelocaletransform[1]{%
\bbl@ifunset{bbl@ATR@#1@\languagename @}%
- {\bbl@error
- {'#1' for '\languagename' cannot be enabled.\\%
- Maybe there is a typo or it’s a font-dependent transform}%
- {See the manual for further details.}}%
+ {\bbl@error{transform-not-available}{#1}{}{}}%
{\bbl@csarg\setattribute{ATR@#1@\languagename @}\@ne}}
\DeclareRobustCommand\disablelocaletransform[1]{%
\bbl@ifunset{bbl@ATR@#1@\languagename @}%
- {\bbl@error
- {'#1' for '\languagename' cannot be disabled.\\%
- Maybe there is a typo or it’s a font-dependent transform}%
- {See the manual for further details.}}%
+ {\bbl@error{transform-not-available-b}{#1}{}{}}%
{\bbl@csarg\unsetattribute{ATR@#1@\languagename @}}}
\def\bbl@activateposthyphen{%
\let\bbl@activateposthyphen\relax
@@ -23207,6 +23027,13 @@ Babel.fontmap[0] = {} -- l
Babel.fontmap[1] = {} -- r
Babel.fontmap[2] = {} -- al/an
+-- To cancel mirroring. Also OML, OMS, U?
+Babel.symbol_fonts = Babel.symbol_fonts or {}
+Babel.symbol_fonts[font.id('tenln')] = true
+Babel.symbol_fonts[font.id('tenlnw')] = true
+Babel.symbol_fonts[font.id('tencirc')] = true
+Babel.symbol_fonts[font.id('tencircw')] = true
+
Babel.bidi_enabled = true
Babel.mirroring_enabled = true
@@ -23250,6 +23077,14 @@ local function insert_numeric(head, state)
return head, new_state
end
+local function glyph_not_symbol_font(node)
+ if node.id == GLYPH then
+ return not Babel.symbol_fonts[node.font]
+ else
+ return false
+ end
+end
+
-- TODO - \hbox with an explicit dir can lead to wrong results
-- <R \hbox dir TLT{<R>}> and <L \hbox dir TRT{<L>}>. A small attempt
-- was s made to improve the situation, but the problem is the 3-dir
@@ -23305,7 +23140,7 @@ function Babel.bidi(head, ispar, hdir)
-- current one is not added until we start processing the neutrals.
-- three cases: glyph, dir, otherwise
- if item.id == GLYPH
+ if glyph_not_symbol_font(item)
or (item.id == 7 and item.subtype == 2) then
local d_font = nil
@@ -23434,7 +23269,7 @@ function Babel.bidi(head, ispar, hdir)
temp = 'on' -- W6
end
for e = first_et, #nodes do
- if nodes[e][1].id == GLYPH then nodes[e][2] = temp end
+ if glyph_not_symbol_font(nodes[e][1]) then nodes[e][2] = temp end
end
first_et = nil
has_en = false
@@ -23474,7 +23309,7 @@ function Babel.bidi(head, ispar, hdir)
temp = 'on' -- W6
end
for e = first_et, #nodes do
- if nodes[e][1].id == GLYPH then nodes[e][2] = temp end
+ if glyph_not_symbol_font(nodes[e][1]) then nodes[e][2] = temp end
end
end
@@ -23510,7 +23345,7 @@ function Babel.bidi(head, ispar, hdir)
for r = first_on, q - 1 do
nodes[r][2] = temp
item = nodes[r][1] -- MIRRORING
- if Babel.mirroring_enabled and item.id == GLYPH
+ if Babel.mirroring_enabled and glyph_not_symbol_font(item)
and temp == 'r' and characters[item.char] then
local font_mode = ''
if item.font > 0 and font.fonts[item.font].properties then
@@ -24126,7 +23961,7 @@ Babel.cjk_breaks = {
\ifnum#2>2014 \ifnum#2<2038
\bbl@afterfi\expandafter\@gobble
\fi\fi
- {\bbl@error{Year~out~of~range}{The~allowed~range~is~2014-2038}}%
+ {\bbl@error{year-out-range}{2014-2038}{}{}}%
\edef\bbl@tempd{\fp_eval:n{ % (Julian) day
\bbl@cs@jd{#2}{#3}{#4} + 0.5 - 2400000 #1}}%
\count@\@ne
@@ -24437,7 +24272,7 @@ Babel.cjk_breaks = {
\ifnum\bbl@tempa>2012 \ifnum\bbl@tempa<2051
\bbl@afterfi\expandafter\@gobble
\fi\fi
- {\bbl@error{Year~out~of~range}{The~allowed~range~is~2013-2050}}%
+ {\bbl@error{year-out-range}{2013-2050}{}{}}%
\bbl@xin@{\bbl@tempa}{\bbl@cs@firstjal@xx}%
\ifin@\def\bbl@tempe{20}\else\def\bbl@tempe{21}\fi
\edef\bbl@tempc{\fp_eval:n{\bbl@cs@jd{\bbl@tempa}{#2}{#3}+.5}}% current
@@ -24736,12 +24571,13 @@ Babel.cjk_breaks = {
\ifx#2\@empty\else\expandafter\zap@space\fi
#2}
\let\bbl@trace\@gobble
-\def\bbl@error#1#2{%
+\def\bbl@error#1{% Implicit #2#3#4
\begingroup
- \newlinechar=`\^^J
- \def\\{^^J(babel) }%
- \errhelp{#2}\errmessage{\\#1}%
- \endgroup}
+ \catcode`\\=0 \catcode`\==12 \catcode`\`=12
+ \catcode`\^^M=5 \catcode`\%=14
+ \input errbabel.def
+ \endgroup
+ \bbl@error{#1}}
\def\bbl@warning#1{%
\begingroup
\newlinechar=`\^^J
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index 5c80152d15..4b857314cb 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{2024/01/07}
+\def\filedate{2024/02/07}
\def\batchfile{babel.ins}
\input docstrip.tex
@@ -161,6 +161,7 @@
\file{switch.def}{\from{babel.dtx}{kernel}}
\file{hyphen.cfg}{\from{babel.dtx}{patterns}}
\file{nil.ldf}{\from{babel.dtx}{nil}}
+ \file{errbabel.def}{\from{babel.dtx}{errors}}
\file{babel-ca-buddhist.tex}{\from{babel.dtx}{ca-buddhist}}
\file{babel-ca-coptic.tex}{\from{babel.dtx}{ca-coptic}}
\file{babel-ca-ethiopic.tex}{\from{babel.dtx}{ca-ethiopic}}
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index b28a330557..21d664d5bb 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 e1de136111..8d45882360 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}[2024/01/07 v24.1]
+\ProvidesFile{bbcompat.dtx}[2024/02/07 v24.2]
%</dtx>
%
%% File 'bbcompat.dtx'