summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-01-07 21:28:40 +0000
committerKarl Berry <karl@freefriends.org>2024-01-07 21:28:40 +0000
commitb20d5c3a6127b9281ec1aca22ef3e660204255fa (patch)
tree126670140f0964f617ab2dab9c6c3341628a5161
parentdc17f7ec95f311ba4bdb0c20ad69839d62777623 (diff)
babel (6jan24)
git-svn-id: svn://tug.org/texlive/trunk@69340 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/babel/README.md30
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel-code.pdfbin641724 -> 642704 bytes
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel.pdfbin419191 -> 419409 bytes
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.dtx72
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.ins4
-rw-r--r--Master/texmf-dist/source/latex/babel/bbcompat.dtx2
-rw-r--r--Master/texmf-dist/source/latex/babel/locale.zipbin1084420 -> 1086161 bytes
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-buddhist.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-chinese.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-coptic.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-ethiopic.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-hebrew.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-transforms.lua2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def8
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty22
-rw-r--r--Master/texmf-dist/tex/generic/babel/blplain.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/bplain.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/hyphen.cfg8
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-canadianfrench.tex (renamed from Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canadianfrench.tex)0
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini41
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini33
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini5
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini42
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex34
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex41
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/fr/babel-swissfrench.tex (renamed from Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-swissfrench.tex)0
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/gu/babel-gu.ini45
-rw-r--r--Master/texmf-dist/tex/generic/babel/luababel.def2
-rw-r--r--Master/texmf-dist/tex/generic/babel/nil.ldf4
-rw-r--r--Master/texmf-dist/tex/generic/babel/plain.def2
-rw-r--r--Master/texmf-dist/tex/generic/babel/switch.def2
-rw-r--r--Master/texmf-dist/tex/generic/babel/txtbabel.def4
-rw-r--r--Master/texmf-dist/tex/generic/babel/xebabel.def18
39 files changed, 326 insertions, 121 deletions
diff --git a/Master/texmf-dist/doc/latex/babel/README.md b/Master/texmf-dist/doc/latex/babel/README.md
index def9611a9db..55553c86e84 100644
--- a/Master/texmf-dist/doc/latex/babel/README.md
+++ b/Master/texmf-dist/doc/latex/babel/README.md
@@ -1,6 +1,6 @@
-## Babel 3.99
+## Babel 24.1
-2023-12-10
+2024-01-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 3.99 are described in:
+Changes in version 24.1 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-3.99.html
+https://latex3.github.io/babel/news/whats-new-in-babel-24.1.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -48,23 +48,11 @@ respective authors.
### Summary of latest changes
```
-3.99 2023-12-10
- * Spurious space in some cases because of a missing % (introduced
- in 3.98).
- * Two new locales: chakma and lowgerman.
- * And more bare minimum locales: aramaic, avestan, aymara,
- bashkir, bataktoba, bavarian, classicalmandaic, ingush, komi,
- lepcha, limbu, lineara, lu, makasar, samaritan, sinteromani,
- tainua, tangut, waray.
-
-3.98 2023-12-06
- * Case mappings in ini files, with new casing variants in the
- Latin locales.
- * New: \ShowLocaleProperties.
- * Improved Persian/Farsi, thanks to Farshad Rasuli
- (@farshadrasuli).
- * In some languages and xetex, the language name was printed with
- the first \foreignlanguage.
+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).
```
### Previous changes
diff --git a/Master/texmf-dist/doc/latex/babel/babel-code.pdf b/Master/texmf-dist/doc/latex/babel/babel-code.pdf
index fad4043c77c..d9b3837fe97 100644
--- a/Master/texmf-dist/doc/latex/babel/babel-code.pdf
+++ b/Master/texmf-dist/doc/latex/babel/babel-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/babel/babel.pdf b/Master/texmf-dist/doc/latex/babel/babel.pdf
index e17676a4815..b28a330557e 100644
--- a/Master/texmf-dist/doc/latex/babel/babel.pdf
+++ b/Master/texmf-dist/doc/latex/babel/babel.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/babel/babel.dtx b/Master/texmf-dist/source/latex/babel/babel.dtx
index aa4c096b0d2..4bf1f3e84de 100644
--- a/Master/texmf-dist/source/latex/babel/babel.dtx
+++ b/Master/texmf-dist/source/latex/babel/babel.dtx
@@ -1,7 +1,7 @@
% \iffalse
% This document requires lualatex
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2023/12/10 v3.99 The Babel package]
+\ProvidesFile{babel.dtx}[2024/01/07 v24.1 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -90,17 +90,23 @@
localization}}
\ExplSyntaxOn
\newcommand\New[1]{%
- \regex_extract_once:nnN{(\d\d?)\.(\d\d)}{#1}\bbltempa
+ \regex_extract_once:nnN{(\d\d?)\.(\d\d?)}{#1}\bbltempa
\seq_pop_right:NN\bbltempa\bbltempb
\seq_pop_right:NN\bbltempa\bbltempa
\colorbox[rgb]{.92, .86, .73}%
{New~#1%
\quark_if_no_value:NTF\bbltempb{}%
- {~\ifnum\bbltempa>2 \ifnum\bbltempb>34
+ {~
+ \ifnum\bbltempa>2 \ifnum\bbltempb>34
\href{https://latex3.github.io/babel/news/%
whats-new-in-babel-\bbltempa.\bbltempb.html}%
{\raisebox{.15ex}{$\oplus$}}%
- \fi\fi}}\enspace\ignorespaces}
+ \fi\fi
+ \ifnum\bbltempa>23
+ \href{https://latex3.github.io/babel/news/%
+ whats-new-in-babel-\bbltempa.\bbltempb.html}%
+ {\raisebox{.15ex}{$\oplus$}}%
+ \fi}}\enspace\ignorespaces}
\ExplSyntaxOff
\definecolor{thered}{rgb}{0.65,0.04,0.07}
\definecolor{thegrey}{gray}{0.8}
@@ -275,7 +281,8 @@ are highlighted with \New{X.XX}\hspace{-.5em}
(\raisebox{.15ex}{$\oplus$} is a link to the \babel{} site), and there
are some notes for the latest versions in
\href{https://latex3.github.io/babel/}{the \babel{} site}. The most
-recent features can be still unstable.
+recent features can be still unstable. Remember version 24.1 follows
+3.99, because of a new numbering scheme.
\item[\sffamily\color{messages}Can I help?] Sure! If you are interested
in the \TeX{} multilingual support, please join the
@@ -1465,7 +1472,7 @@ Or also:
\item[Hebrew] Niqqud marks seem to work in both engines, but depending
on the font cantillation marks might be misplaced (\xetex{} or
\luatex{} with Harfbuzz seems better).
-\item[Devanagari] In \luatex{} and the the default renderer many fonts
+\item[Devanagari] In \luatex{} and the default renderer many fonts
work, but some others do not, the main issue being the ‘ra’. You may
need to set explicitly the script to either |deva| or |dev2|, eg:
\begin{verbatim}
@@ -2972,7 +2979,7 @@ line breaking mode is not really ‘sloppy’ (in other words, overfull
boxes are reported as usual).
The second and the third are for the Arabic script. It sets the
-linebreaking and justification method, which can be based on the the
+linebreaking and justification method, which can be based on the
\textsc{arabic tatweel} character or in the ‘justification
alternatives’ OpenType table (\texttt{jalt}). For an explanation see
the
@@ -3628,6 +3635,9 @@ a non-syllabic preposition or conjunction into a non-breaking space.}
\trans{Finnish}{prehyphen.nobreak}{Line breaks just after hyphens
prepended to words are prevented, like in “pakastekaapit ja -arkut”.}
+\trans{French}{punctuation.space}{Rules for proper spacing with
+characters \textit{;:!?«»} are applied.}
+
\trans{Greek}{diaeresis.hyphen}{Removes the diaeresis above iota and
upsilon if hyphenated just before. It works with the three variants.}
@@ -3901,6 +3911,13 @@ current language.
however, must be large enough for many uses).
\end{warning}
+\Describe{interchar=}{\meta{interchar-list}}
+
+\New{24.1} This key in |\babelprovide| activates predefined rules for
+the ‘provided’ locale. Currently there is a set of rules for French
+named |punctuation.space|, which applies proper spacing with characters
+\textit{;:!?«»}.
+
\subsection{Selection based on BCP 47 tags}
\label{bcp47}
@@ -5678,8 +5695,8 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.99>>
-%<<date=2023/12/10>>
+%<<version=24.1>>
+%<<date=2024/01/07>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -10202,7 +10219,7 @@ wouldn’t exist.
\bbl@vforeach{captions,date,import,main,script,language,%
hyphenrules,linebreaking,justification,mapfont,maparabic,%
mapdigits,intraspace,intrapenalty,onchar,transforms,alph,%
- Alph,labels,labels*,calendar,date,casing}%
+ Alph,labels,labels*,calendar,date,casing,interchar}%
{\bbl@csarg\let{KVP@##1}\@nnil}%
\global\let\bbl@release@transforms\@empty
\global\let\bbl@release@casing\@empty
@@ -12872,9 +12889,17 @@ wouldn’t exist.
\csname bbl@mod@\CurrentOption\endcsname
\bbl@exp{\\\AtBeginDocument{%
\\\bbl@usehooks@lang{\CurrentOption}{begindocument}{{\CurrentOption}}}}}%
- {\bbl@error{%
+ {\IfFileExists{babel-#1.tex}%
+ {\def\bbl@tempa{%
+ .\\There is a locale ini file for this language.\\%
+ 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}{%
+ 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.}}}
@@ -13954,6 +13979,18 @@ wouldn’t exist.
% special case, hyphens are stored as |\bbl@upto|, to deal with ranges.
%
% \begin{macrocode}
+\newcommand\IfBabelIntercharT[1]{%
+ \let\bbl@tempa\@gobble % Assume to ignore
+ \edef\bbl@tempb{\zap@space#1 \@empty}%
+ \ifx\bbl@KVP@interchar\@nnil\else
+ \bbl@replace\bbl@KVP@interchar{ }{,}%
+ \bbl@foreach\bbl@tempb{%
+ \bbl@xin@{,##1,}{,\bbl@KVP@interchar,}%
+ \ifin@
+ \let\bbl@tempa\@firstofone
+ \fi}%
+ \fi
+ \bbl@tempa}
\newcommand\babelcharclass[3]{%
\EnableBabelHook{babel-interchar}%
\bbl@csarg\newXeTeXintercharclass{xeclass@#2@#1}%
@@ -14013,9 +14050,9 @@ wouldn’t exist.
\bbl@exp{\\\bbl@for\\\bbl@tempb{\zap@space#4 \@empty}}{%
\XeTeXinterchartoks
\@nameuse{bbl@xeclass@\bbl@tempa @%
- \bbl@ifunset{bbl@xeclass@\bbl@tempa @#2}{}{#2}}
+ \bbl@ifunset{bbl@xeclass@\bbl@tempa @#2}{}{#2}} %
\@nameuse{bbl@xeclass@\bbl@tempb @%
- \bbl@ifunset{bbl@xeclass@\bbl@tempb @#2}{}{#2}}
+ \bbl@ifunset{bbl@xeclass@\bbl@tempb @#2}{}{#2}} %
= \expandafter{%
\csname bbl@ic@\bbl@kv@label @#2\expandafter\endcsname
\csname\zap@space bbl@xeinter@\bbl@kv@label
@@ -14151,7 +14188,8 @@ wouldn’t exist.
% \subsection{8-bit TeX}
%
% Which start just above, because some code is shared with \xetex. Now,
-% 8-bit specific stuff.
+% 8-bit specific stuff. If just one encoding has been declared, then
+% asume no switching is necessary (1).
%
% \begin{macrocode}
%<*texxet>
@@ -14165,7 +14203,7 @@ wouldn’t exist.
\bbl@foreach\bbl@tempe{%
\def\bbl@tempd{##1}% Save last declared
\advance\count@\@ne}%
- \ifnum\count@>\@ne
+ \ifnum\count@>\@ne % (1)
\getlocaleproperty*\bbl@tempa{#1}{identification/encodings}%
\ifx\bbl@tempa\relax \let\bbl@tempa\@empty \fi
\bbl@replace\bbl@tempa{ }{,}%
diff --git a/Master/texmf-dist/source/latex/babel/babel.ins b/Master/texmf-dist/source/latex/babel/babel.ins
index ab14e5ccb81..5c80152d15c 100644
--- a/Master/texmf-dist/source/latex/babel/babel.ins
+++ b/Master/texmf-dist/source/latex/babel/babel.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright 1989-2008 Johannes L. Braams and any individual authors
%% listed elsewhere in this file. All rights reserved.
%%
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2023/12/10}
+\def\filedate{2024/01/07}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/Master/texmf-dist/source/latex/babel/bbcompat.dtx b/Master/texmf-dist/source/latex/babel/bbcompat.dtx
index 7afefacc0ad..e1de136111a 100644
--- a/Master/texmf-dist/source/latex/babel/bbcompat.dtx
+++ b/Master/texmf-dist/source/latex/babel/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2023/12/10 v3.99]
+\ProvidesFile{bbcompat.dtx}[2024/01/07 v24.1]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/Master/texmf-dist/source/latex/babel/locale.zip b/Master/texmf-dist/source/latex/babel/locale.zip
index 2441b4b04b5..574bd57bfe1 100644
--- a/Master/texmf-dist/source/latex/babel/locale.zip
+++ b/Master/texmf-dist/source/latex/babel/locale.zip
Binary files differ
diff --git a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua
index 208bf634ee9..a981db5b267 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua
+++ b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua
@@ -7,7 +7,7 @@
-- babel.dtx (with options: `basic-r')
--
--
--- Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
-- Copyright (C) 1989-2012 Johannes L. Braams and
-- any individual authors listed elsewhere in this file.
-- All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
index 9991ac289bf..26f0fcf840c 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
+++ b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
@@ -7,7 +7,7 @@
-- babel.dtx (with options: `basic')
--
--
--- Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
-- Copyright (C) 1989-2012 Johannes L. Braams and
-- any individual authors listed elsewhere in this file.
-- All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-buddhist.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-buddhist.tex
index d0b4f8ebabb..d9e77aa25ea 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-buddhist.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-buddhist.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `ca-buddhist')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-chinese.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-chinese.tex
index 71be648fd72..15eed489707 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-chinese.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-chinese.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `ca-chinese')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-coptic.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-coptic.tex
index 8ad2995fcb0..449567ed8ad 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-coptic.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-coptic.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `ca-coptic')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-ethiopic.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-ethiopic.tex
index 865ade76899..b1d94e1a454 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-ethiopic.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-ethiopic.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `ca-ethiopic')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-hebrew.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-hebrew.tex
index 1e4a5507ecd..8964a0c2417 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-hebrew.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-hebrew.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `ca-hebrew')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex
index 79b80927b42..45789881a26 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `ca-islamic')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex
index 9a5551349e1..136b146c03e 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `ca-persian')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua b/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua
index 37af39379b8..7aa786c41cf 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua
+++ b/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua
@@ -7,7 +7,7 @@
-- babel.dtx (with options: `bididata')
--
--
--- Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
-- Copyright (C) 1989-2012 Johannes L. Braams and
-- any individual authors listed elsewhere in this file.
-- All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua b/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua
index 2d605ee1177..fc6e5bb17dc 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua
+++ b/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua
@@ -7,7 +7,7 @@
-- babel.dtx (with options: `cjkdata')
--
--
--- Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
-- Copyright (C) 1989-2012 Johannes L. Braams and
-- any individual authors listed elsewhere in this file.
-- All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel-transforms.lua b/Master/texmf-dist/tex/generic/babel/babel-transforms.lua
index 6a44a603dfa..116de257642 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-transforms.lua
+++ b/Master/texmf-dist/tex/generic/babel/babel-transforms.lua
@@ -7,7 +7,7 @@
-- babel.dtx (with options: `transforms')
--
--
--- Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
-- Copyright (C) 1989-2012 Johannes L. Braams and
-- any individual authors listed elsewhere in this file.
-- All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index e482ed18be8..5bc8a3f3abf 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `core')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
@@ -40,7 +40,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2023/12/10 v3.99 Babel common definitions]
+\ProvidesFile{babel.def}[2024/01/07 v24.1 Babel common definitions]
\ifx\AtBeginDocument\@undefined % TODO. change test.
\def\@empty{}
\def\loadlocalcfg#1{%
@@ -595,8 +595,8 @@
\toks@\expandafter{\bbl@tempc#3}%
\expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
\fi}
-\def\bbl@version{3.99}
-\def\bbl@date{2023/12/10}
+\def\bbl@version{24.1}
+\def\bbl@date{2024/01/07}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index c2fc7279d2b..abd887ba0e4 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.sty
+++ b/Master/texmf-dist/tex/generic/babel/babel.sty
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `package')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
@@ -34,7 +34,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2023/12/10 v3.99 The Babel package]
+\ProvidesPackage{babel}[2024/01/07 v24.1 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}%
\let\bbl@debug\@firstofone
@@ -470,8 +470,8 @@
\expandafter\@secondoftwo
\fi}
\fi
-\def\bbl@version{3.99}
-\def\bbl@date{2023/12/10}
+\def\bbl@version{24.1}
+\def\bbl@date{2024/01/07}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -2270,7 +2270,7 @@
\bbl@vforeach{captions,date,import,main,script,language,%
hyphenrules,linebreaking,justification,mapfont,maparabic,%
mapdigits,intraspace,intrapenalty,onchar,transforms,alph,%
- Alph,labels,labels*,calendar,date,casing}%
+ Alph,labels,labels*,calendar,date,casing,interchar}%
{\bbl@csarg\let{KVP@##1}\@nnil}%
\global\let\bbl@release@transforms\@empty
\global\let\bbl@release@casing\@empty
@@ -4182,9 +4182,17 @@
\csname bbl@mod@\CurrentOption\endcsname
\bbl@exp{\\\AtBeginDocument{%
\\\bbl@usehooks@lang{\CurrentOption}{begindocument}{{\CurrentOption}}}}}%
- {\bbl@error{%
+ {\IfFileExists{babel-#1.tex}%
+ {\def\bbl@tempa{%
+ .\\There is a locale ini file for this language.\\%
+ 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}{%
+ 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.}}}
diff --git a/Master/texmf-dist/tex/generic/babel/blplain.tex b/Master/texmf-dist/tex/generic/babel/blplain.tex
index dfc3b6f9aca..f960bc6bf1d 100644
--- a/Master/texmf-dist/tex/generic/babel/blplain.tex
+++ b/Master/texmf-dist/tex/generic/babel/blplain.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `blplain')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/bplain.tex b/Master/texmf-dist/tex/generic/babel/bplain.tex
index 50895735315..b189e6f7dd7 100644
--- a/Master/texmf-dist/tex/generic/babel/bplain.tex
+++ b/Master/texmf-dist/tex/generic/babel/bplain.tex
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `bplain')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
index 01a285b3dcb..220146d76db 100644
--- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg
+++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `patterns')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
@@ -38,10 +38,10 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{hyphen.cfg}[2023/12/10 v3.99 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2024/01/07 v24.1 Babel hyphens]
\xdef\bbl@format{\jobname}
-\def\bbl@version{3.99}
-\def\bbl@date{2023/12/10}
+\def\bbl@version{24.1}
+\def\bbl@date{2024/01/07}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canadianfrench.tex b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-canadianfrench.tex
index cedf0ff25b8..cedf0ff25b8 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canadianfrench.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-canadianfrench.tex
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini
index c329b511adf..7c72949c135 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 0.981
-date = 2022-05-14
+version = 1.0
+date = 2024-01-03
name.local = français
name.english = French
name.babel = french-belgium french-be
@@ -26,6 +26,7 @@ script.tag.opentype = latn
level = 1
encodings = T1 OT1 LY1
derivate = no
+require.babel = french
[captions]
preface = Préface
@@ -185,3 +186,39 @@ superscriptingExponent = ×
[counters]
date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
+
+[transforms.prehyphenation]
+punctuation.space.1.0 = { [^|{(}{[}{007B}] () [;!{?}] () }
+punctuation.space.1.1 = { insert, penalty = 10000 }
+punctuation.space.1.2 = { insert, spacefactor= .5 0 0, data = 1 }
+punctuation.space.1.3 = {}
+punctuation.space.2.0 = { [^{(}{[}{007B}] () | [;!{?}] () }
+punctuation.space.2.1 = { insert, penalty = 10000 }
+punctuation.space.2.2 = { spacefactor= .5 0 0, data = 2 }
+punctuation.space.2.3 = {}
+punctuation.space.3.0 = { [^|{(}{[}{007B} ] () : () }
+punctuation.space.3.1 = { insert, penalty = 10000 }
+punctuation.space.3.2 = { insert, spacefactor= 1 1 1, data = 1 }
+punctuation.space.3.3 = {}
+punctuation.space.4.0 = { [^{(}{[}{007B} ] () |: () }
+punctuation.space.4.1 = { insert, penalty = 10000 }
+punctuation.space.4.2 = { spacefactor= 1 1 1, data = 2 }
+punctuation.space.4.3 = {}
+punctuation.space.5.0 = { [^|]()»() }
+punctuation.space.5.1 = { insert, penalty = 10000 }
+punctuation.space.5.2 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.5.3 = {}
+punctuation.space.6.0 = { [^|]()|»() }
+punctuation.space.6.1 = { insert, penalty = 10000 }
+punctuation.space.6.2 = { spacefactor= .8 .3 .8, data = 2 }
+punctuation.space.6.3 = {}
+punctuation.space.7.0 = { «[^|] }
+punctuation.space.7.1 = {}
+punctuation.space.7.2 = { insert, penalty = 10000 }
+punctuation.space.7.3 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.7.4 = {}
+punctuation.space.8.0 = { «|[^|] }
+punctuation.space.8.1 = {}
+punctuation.space.8.2 = { insert, penalty = 10000 }
+punctuation.space.8.3 = { spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.8.4 = {}
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini
index 9be455a3a6b..86116c3395a 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 0.983
-date = 2022-06-02
+version = 1.0
+date = 2024-01-03
name.local = français canadien
name.english = Canadian French
name.babel = canadien french-canada french-ca canadianfrench
@@ -26,6 +26,7 @@ script.tag.opentype = latn
level = 1
encodings = T1 OT1 LY1
derivate = no
+require.babel = french-canada
[captions]
preface = Préface
@@ -185,3 +186,31 @@ superscriptingExponent = ×
[counters]
date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
+
+[transforms.prehyphenation]
+punctuation.space.1.0 = { [^|{(}{[}{007B} ] () : () }
+punctuation.space.1.1 = { insert, penalty = 10000 }
+punctuation.space.1.2 = { insert, spacefactor= 1 1 1, data = 1 }
+punctuation.space.1.3 = {}
+punctuation.space.2.0 = { [^{(}{[}{007B} ] () |: () }
+punctuation.space.2.1 = { insert, penalty = 10000 }
+punctuation.space.2.2 = { spacefactor= 1 1 1, data = 2 }
+punctuation.space.2.3 = {}
+punctuation.space.3.0 = { [^|]()»() }
+punctuation.space.3.1 = { insert, penalty = 10000 }
+punctuation.space.3.2 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.3.3 = {}
+punctuation.space.4.0 = { [^|]()|»() }
+punctuation.space.4.1 = { insert, penalty = 10000 }
+punctuation.space.4.2 = { spacefactor= .8 .3 .8, data = 2 }
+punctuation.space.4.3 = {}
+punctuation.space.5.0 = { «[^|] }
+punctuation.space.5.1 = {}
+punctuation.space.5.2 = { insert, penalty = 10000 }
+punctuation.space.5.3 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.5.4 = {}
+punctuation.space.6.0 = { «|[^|] }
+punctuation.space.6.1 = {}
+punctuation.space.6.2 = { insert, penalty = 10000 }
+punctuation.space.6.3 = { spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.6.4 = {}
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini
index 665e0ce1243..048028c355a 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 0.982
-date = 2022-05-14
+version = 1.0
+date = 2024-01-03
name.local = français
name.english = French
name.babel = french-luxembourg french-lu
@@ -26,6 +26,7 @@ script.tag.opentype = latn
level = 1
encodings = T1 OT1 LY1
derivate = no
+require.babel = french
[captions]
preface = Préface
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
index c59bed37021..5567074e9a1 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 0.981
-date = 2022-05-14
+version = 1.0
+date = 2024-01-03
name.local = français
name.english = French
name.babel = french
@@ -25,6 +25,7 @@ script.tag.opentype = latn
level = 1
encodings = T1 OT1 LY1
derivate = no
+require.babel = french
[captions]
preface = Préface
@@ -184,3 +185,40 @@ superscriptingExponent = ×
[counters]
date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
+
+[transforms.prehyphenation]
+punctuation.space.1.0 = { [^|{(}{[}{007B}] () [;!{?}] () }
+punctuation.space.1.1 = { insert, penalty = 10000 }
+punctuation.space.1.2 = { insert, spacefactor= .5 0 0, data = 1 }
+punctuation.space.1.3 = {}
+punctuation.space.2.0 = { [^{(}{[}{007B}] () | [;!{?}] () }
+punctuation.space.2.1 = { insert, penalty = 10000 }
+punctuation.space.2.2 = { spacefactor= .5 0 0, data = 2 }
+punctuation.space.2.3 = {}
+punctuation.space.3.0 = { [^|{(}{[}{007B} ] () : () }
+punctuation.space.3.1 = { insert, penalty = 10000 }
+punctuation.space.3.2 = { insert, spacefactor= 1 1 1, data = 1 }
+punctuation.space.3.3 = {}
+punctuation.space.4.0 = { [^{(}{[}{007B} ] () |: () }
+punctuation.space.4.1 = { insert, penalty = 10000 }
+punctuation.space.4.2 = { spacefactor= 1 1 1, data = 2 }
+punctuation.space.4.3 = {}
+punctuation.space.5.0 = { [^|]()»() }
+punctuation.space.5.1 = { insert, penalty = 10000 }
+punctuation.space.5.2 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.5.3 = {}
+punctuation.space.6.0 = { [^|]()|»() }
+punctuation.space.6.1 = { insert, penalty = 10000 }
+punctuation.space.6.2 = { spacefactor= .8 .3 .8, data = 2 }
+punctuation.space.6.3 = {}
+punctuation.space.7.0 = { «[^|] }
+punctuation.space.7.1 = {}
+punctuation.space.7.2 = { insert, penalty = 10000 }
+punctuation.space.7.3 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.7.4 = {}
+punctuation.space.8.0 = { «|[^|] }
+punctuation.space.8.1 = {}
+punctuation.space.8.2 = { insert, penalty = 10000 }
+punctuation.space.8.3 = { spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.8.4 = {}
+
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex
index cedf0ff25b8..43351e1d342 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex
@@ -9,4 +9,38 @@
\fi
\BabelBeforeIni{fr-CA}{%
}
+
+
+\ifcase\bbl@engine\or\or % XeTeX
+
+% Partly based on babel-french, by Daniel Flipo
+\IfBabelIntercharT{puntuation.space}{%
+ \providecommand{\BabelFrenchGuillemetSpace}{%
+ \leavevmode\nobreak\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font
+ minus.8\fontdimen4\font\relax}%
+ \providecommand{\BabelFrenchColonSpace}{\nobreakspace}%
+%
+ \babelcharclass{\CurrentOption}{colon}{:}%
+ \babelcharclass{\CurrentOption}{leftguillemet}{«}%
+ \babelcharclass{\CurrentOption}{rightguillemet}{»}%
+ \babelcharclass{\CurrentOption}{opening}{([\{}% just make != default
+%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {default, rightguillemet}{colon}{\BabelFrenchColonSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {leftguillemet}{default}{\BabelFrenchGuillemetSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {default}{rightguillemet}{\BabelFrenchGuillemetSpace}%
+%
+% Here boundary means essentialy space:
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {boundary}{colon}{\ifhmode\unskip\nobreak\fi\BabelFrenchColonSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {leftguillemet}{boundary}{\BabelFrenchGuillemetSpace\ignorespaces}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {boundary}{rightguillemet}{\ifhmode\unskip\fi\BabelFrenchGuillemetSpace}%
+}
+
+\fi
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
index b0e3a6e1bbd..a53769ba554 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
@@ -9,4 +9,45 @@
\fi
\BabelBeforeIni{fr}{%
}
+
+\ifcase\bbl@engine\or\or % XeTeX
+
+% Partly based on babel-french, by Daniel Flipo
+\IfBabelIntercharT{puntuation.space}{%
+ \providecommand{\BabelFrenchGuillemetSpace}{%
+ \leavevmode\nobreak\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font
+ minus.8\fontdimen4\font\relax}%
+ \providecommand{\BabelFrenchColonSpace}{\nobreakspace}%
+ \providecommand{\BabelFrenchHighSpace}{%
+ \leavevmode\nobreak\hskip.5\fontdimen2\font\relax}%
+%
+ \babelcharclass{\CurrentOption}{high}{;!?}%
+ \babelcharclass{\CurrentOption}{colon}{:}%
+ \babelcharclass{\CurrentOption}{leftguillemet}{«}%
+ \babelcharclass{\CurrentOption}{rightguillemet}{»}%
+ \babelcharclass{\CurrentOption}{opening}{([\{}% just make != default
+%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {default, rightguillemet, high, colon}{high}{\BabelFrenchHighSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {default, rightguillemet, high}{colon}{\BabelFrenchColonSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {leftguillemet}{default}{\BabelFrenchGuillemetSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {default, high}{rightguillemet}{\BabelFrenchGuillemetSpace}%
+%
+% Here boundary means essentialy space:
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {boundary}{high}{\ifhmode\unskip\nobreak\fi\BabelFrenchHighSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {boundary}{colon}{\ifhmode\unskip\nobreak\fi\BabelFrenchColonSpace}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {leftguillemet}{boundary}{\BabelFrenchGuillemetSpace\ignorespaces}%
+ \babelinterchar[label=puntuation.space]{\CurrentOption}%
+ {boundary}{rightguillemet}{\ifhmode\unskip\fi\BabelFrenchGuillemetSpace}%
+}
+
+\fi
+
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-swissfrench.tex b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-swissfrench.tex
index 78f7cc32d18..78f7cc32d18 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-swissfrench.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-swissfrench.tex
diff --git a/Master/texmf-dist/tex/generic/babel/locale/gu/babel-gu.ini b/Master/texmf-dist/tex/generic/babel/locale/gu/babel-gu.ini
index 86d8643cfde..2a798b37cec 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/gu/babel-gu.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/gu/babel-gu.ini
@@ -6,11 +6,12 @@
; * Common Locale Data Repository (license Unicode):
; http://cldr.unicode.org/
; http://unicode.org/copyright.html
+; * With contributions Kuldip Pipaliya (@kuldipem)
[identification]
charset = utf8
-version = 1.10
-date = 2022-09-01
+version = 1.11
+date = 2023-12-26
name.local = ગુજરાતી
name.english = Gujarati
name.babel = gujarati
@@ -30,46 +31,24 @@ preface =
ref =
abstract =
bib =
-chapter =
-appendix =
+chapter = પ્રકરણ
+appendix = અનુસૂચિ
contents =
listfigure =
listtable =
-index =
+index = અનુક્રમણિકા
figure =
-table =
-part =
+table = ટેબલ
+part = ભાગ
encl =
cc =
headto =
-page =
-see =
-also =
-proof =
+page = પાનુ
+see = જુવો
+also = ઉપરાંત
+proof = પુરાવો
glossary =
-[captions.licr]
-preface =
-ref =
-abstract =
-bib =
-chapter =
-appendix =
-contents =
-listfigure =
-listtable =
-index =
-figure =
-table =
-part =
-encl =
-cc =
-headto =
-page =
-see =
-also =
-proof =
-glossary =
[date.gregorian]
date.long = [d] [MMMM], [y]
diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def
index ec0d118d7e3..230ad1ebfca 100644
--- a/Master/texmf-dist/tex/generic/babel/luababel.def
+++ b/Master/texmf-dist/tex/generic/babel/luababel.def
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `luatex')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf
index d82799c7eb6..9221900261a 100644
--- a/Master/texmf-dist/tex/generic/babel/nil.ldf
+++ b/Master/texmf-dist/tex/generic/babel/nil.ldf
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `nil')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
@@ -33,7 +33,7 @@
%% extension |.ins|) which are part of the distribution.
%%
-\ProvidesLanguage{nil}[2023/12/10 v3.99 Nil language]
+\ProvidesLanguage{nil}[2024/01/07 v24.1 Nil language]
\LdfInit{nil}{datenil}
\ifx\l@nil\@undefined
\newlanguage\l@nil
diff --git a/Master/texmf-dist/tex/generic/babel/plain.def b/Master/texmf-dist/tex/generic/babel/plain.def
index e0b436221a2..f5f85e202d9 100644
--- a/Master/texmf-dist/tex/generic/babel/plain.def
+++ b/Master/texmf-dist/tex/generic/babel/plain.def
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `plain')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/switch.def b/Master/texmf-dist/tex/generic/babel/switch.def
index 03179a9e5bc..13f56013121 100644
--- a/Master/texmf-dist/tex/generic/babel/switch.def
+++ b/Master/texmf-dist/tex/generic/babel/switch.def
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `kernel')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
diff --git a/Master/texmf-dist/tex/generic/babel/txtbabel.def b/Master/texmf-dist/tex/generic/babel/txtbabel.def
index ca49e167a95..fd12fc37ef3 100644
--- a/Master/texmf-dist/tex/generic/babel/txtbabel.def
+++ b/Master/texmf-dist/tex/generic/babel/txtbabel.def
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `texxet')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
@@ -172,7 +172,7 @@
\bbl@foreach\bbl@tempe{%
\def\bbl@tempd{##1}% Save last declared
\advance\count@\@ne}%
- \ifnum\count@>\@ne
+ \ifnum\count@>\@ne % (1)
\getlocaleproperty*\bbl@tempa{#1}{identification/encodings}%
\ifx\bbl@tempa\relax \let\bbl@tempa\@empty \fi
\bbl@replace\bbl@tempa{ }{,}%
diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def
index bef572727a2..e6bc6b1dae6 100644
--- a/Master/texmf-dist/tex/generic/babel/xebabel.def
+++ b/Master/texmf-dist/tex/generic/babel/xebabel.def
@@ -7,7 +7,7 @@
%% babel.dtx (with options: `xetex')
%%
%%
-%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
@@ -302,6 +302,18 @@
\XeTeXcharclass`#1 \bbl@tempc
\fi
\count@`#1\relax}
+\newcommand\IfBabelIntercharT[1]{%
+ \let\bbl@tempa\@gobble % Assume to ignore
+ \edef\bbl@tempb{\zap@space#1 \@empty}%
+ \ifx\bbl@KVP@interchar\@nnil\else
+ \bbl@replace\bbl@KVP@interchar{ }{,}%
+ \bbl@foreach\bbl@tempb{%
+ \bbl@xin@{,##1,}{,\bbl@KVP@interchar,}%
+ \ifin@
+ \let\bbl@tempa\@firstofone
+ \fi}%
+ \fi
+ \bbl@tempa}
\newcommand\babelcharclass[3]{%
\EnableBabelHook{babel-interchar}%
\bbl@csarg\newXeTeXintercharclass{xeclass@#2@#1}%
@@ -353,9 +365,9 @@
\bbl@exp{\\\bbl@for\\\bbl@tempb{\zap@space#4 \@empty}}{%
\XeTeXinterchartoks
\@nameuse{bbl@xeclass@\bbl@tempa @%
- \bbl@ifunset{bbl@xeclass@\bbl@tempa @#2}{}{#2}}
+ \bbl@ifunset{bbl@xeclass@\bbl@tempa @#2}{}{#2}} %
\@nameuse{bbl@xeclass@\bbl@tempb @%
- \bbl@ifunset{bbl@xeclass@\bbl@tempb @#2}{}{#2}}
+ \bbl@ifunset{bbl@xeclass@\bbl@tempb @#2}{}{#2}} %
= \expandafter{%
\csname bbl@ic@\bbl@kv@label @#2\expandafter\endcsname
\csname\zap@space bbl@xeinter@\bbl@kv@label