summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-04-20 19:28:15 +0000
committerKarl Berry <karl@freefriends.org>2024-04-20 19:28:15 +0000
commit13c3c1e255da1509ab0b6fc2065c7b8350d85ade (patch)
tree799143f588a1e871770604dc83b5f90009dad219
parentf72e41f7bc88219b30204ef2bd7176d2371a0683 (diff)
babel (20apr24)
git-svn-id: svn://tug.org/texlive/trunk@71021 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/babel/README.md18
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel-code.pdfbin646852 -> 647068 bytes
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel.pdfbin422784 -> 423110 bytes
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.dtx97
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.ins2
-rw-r--r--Master/texmf-dist/source/latex/babel/bbcompat.dtx2
-rw-r--r--Master/texmf-dist/source/latex/babel/locale.zipbin1086767 -> 1088249 bytes
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def8
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty10
-rw-r--r--Master/texmf-dist/tex/generic/babel/hyphen.cfg6
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex10
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini5
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex66
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini5
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini5
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex66
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex66
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini5
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex66
-rw-r--r--Master/texmf-dist/tex/generic/babel/luababel.def20
-rw-r--r--Master/texmf-dist/tex/generic/babel/nil.ldf2
-rw-r--r--Master/texmf-dist/tex/generic/babel/xebabel.def9
22 files changed, 386 insertions, 82 deletions
diff --git a/Master/texmf-dist/doc/latex/babel/README.md b/Master/texmf-dist/doc/latex/babel/README.md
index aee528f60cf..07a872c4ab4 100644
--- a/Master/texmf-dist/doc/latex/babel/README.md
+++ b/Master/texmf-dist/doc/latex/babel/README.md
@@ -1,6 +1,6 @@
-## Babel 24.3
+## Babel 24.4
-2024-03-29
+2024-04-20
`babel` is the multilingual framework for localizing documents in
LaTeX, LuaLaTeX, XeLaTeX. It manages culturally-determined
@@ -10,9 +10,9 @@ languages even work with Plain formats.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 24.3 are described in:
+Changes in version 24.4 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-24.3.html
+https://latex3.github.io/babel/news/whats-new-in-babel-24.4.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -48,12 +48,10 @@ respective authors.
### Summary of latest changes
```
-24.3 2024-03-29
- * A silly mistake in the French locales: the interchar
- 'punctuation.space' was named 'puntuation.space' (xetex)
- * New setting 'interchar.disable' in \babeladjust (xetex)
- * Experimental macro '\localebox' (luatex)
- * Alphabetic counter for Bodo (lua/xe)
+24.4 2024-04-20
+ * New ‘interchar’ declarations for Cantonese, Chinese, Japanese and
+ Korean: linebreak.basic (xe).
+ * Fixed Tibetan line breaking with closing punctuation (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 de968014b29..b157d32efd3 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 7c263bf3eaa..55df378a612 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 11b73fef9b8..256ec0384cc 100644
--- a/Master/texmf-dist/source/latex/babel/babel.dtx
+++ b/Master/texmf-dist/source/latex/babel/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2024/03/29 v24.3 The Babel package]
+\ProvidesFile{babel.dtx}[2024/04/20 v24.4 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -1362,13 +1362,13 @@ options. See section~\ref{inifiles}, which describes also the variants
\subsection{The \texttt{base} option}
-With this package option \babel{} just loads some basic macros (those
-in |switch.def|), defines |\AfterBabelLanguage| and exits. It also
-selects the hyphenation patterns for the last language passed as
-option (by its name in |language.dat|). There are two main uses:
-classes and packages, and as a last resort in case there are, for some
-reason, incompatible languages. It can be used if you just want to
-select the hyphenation patterns of a single language, too.
+With this package option \babel{} just loads some basic macros (mainly
+the selectors), defines |\AfterBabelLanguage| and exits. It also
+selects the hyphenation patterns for the last language passed as option
+(by its name in |language.dat|). There are two main uses: classes and
+packages, and as a last resort in case there are, for some reason,
+incompatible languages. It can be used if you just want to select the
+hyphenation patterns of a single language, too.
\Describe\AfterBabelLanguage{\marg{option-name}\marg{code}}
@@ -1413,8 +1413,8 @@ be the same as the option name as set in |\usepackage|!).
An alternative approach to define a language (or, more precisely, a
\textit{locale}) is by means of an \texttt{ini} file. Currently
-\babel{} provides about 360 of these files containing the basic data
-required for a locale, covering about 270 languages, plus basic
+\babel{} provides about 380 of these files containing the basic data
+required for a locale, covering about 300 languages, plus basic
templates for about 400 locales.
|ini| files are not meant only for \babel, and they has been devised as
@@ -1428,9 +1428,9 @@ Most of them set the date, and many also the captions (Unicode and
LICR). They will be evolving with the time to add more features
(something to keep in mind if backward compatibility is important). The
following section shows how to make use of them by means of
-|\babelprovide|. In other words, |\babelprovide| is mainly meant
-for auxiliary tasks, and as alternative when the |ldf|, for some
-reason, does not exists or does not work as expected.
+|\babelprovide|. In other words, |\babelprovide| is mainly meant as
+alternative when the |ldf| does not exists or does not work as
+expected, and for secondary tasks.
\begin{example}
Although Georgian has its own \texttt{ldf} file, here is how to
@@ -1457,8 +1457,10 @@ _\babelprovide[import, main]{georgian}_
\end{example}
\begin{more}
- There is an example of how to use a template |ini| file
- \href{https://github.com/latex3/babel/issues/176#issuecomment-1080846575}{here}, for Phoenician.
+ There is an example of how to use an |ini| template file
+ \href{https://github.com/latex3/babel/issues/176#issuecomment-1080846575}{here},
+ for Phoenician (although currently this locale is bundled with
+ \babel).
\end{more}
\New{3.49} Alternatively, you can tell babel to load all or some
@@ -3692,9 +3694,31 @@ current language.
\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{;:!?«»}.
+the ‘provided’ locale. Currently the following |interchar|’s are defined:
+
+\begingroup
+\def\trans#1#2#3{%
+ \vspace{1.5mm}%
+ \parbox[t]{2.2cm}{\raggedright\strut#1}%
+ \hspace{2mm}%
+ \parbox[t]{4.0cm}{\strut\ttfamily#2}%
+ \hspace{2mm}%
+ \parbox[t]{6.6cm}{\strut#3}\par}
+\bigskip\hrule\nobreak\vspace{.5mm}
+
+\trans{Cantonese, Chinese, Japanese,
+Korean}{linebreak.basic}{\New{24.4} Basic settings for CJK
+defined in (plain) \xetex. See the linked news page for details.}
+
+\trans{French}{punctuation.space}{Rules for proper spacing with
+characters \textit{;:!?«»} are applied.}
+
+\vspace{2mm}\hrule\nobreak
+\endgroup
+
+\begin{warning}
+ This feature requires |import|.
+\end{warning}
\begin{note}
You can use |transforms| and |interchar| at the same time. Only the
@@ -5451,8 +5475,8 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=24.3>>
-%<<date=2024/03/29>>
+%<<version=24.4>>
+%<<date=2024/04/20>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -9898,7 +9922,7 @@ wouldn’t exist.
\or
\input xebabel.def
\fi
-\providecommand\babelfont{\bbl@error@{only-lua-xe}{}{}{}}
+\providecommand\babelfont{\bbl@error{only-lua-xe}{}{}{}}
\providecommand\babelprehyphenation{\bbl@error{only-lua}{}{}{}}
\ifx\babelposthyphenation\@undefined
\let\babelposthyphenation\babelprehyphenation
@@ -10305,6 +10329,8 @@ wouldn’t exist.
\fi
% == transforms ==
% > luababel.def
+ \def\CurrentOption{#2}%
+ \@nameuse{bbl@icsave@#2}%
% == main ==
\ifx\bbl@KVP@main\@nnil % Restore only if not 'main'
\let\languagename\bbl@savelangname
@@ -13745,6 +13771,9 @@ wouldn’t exist.
\AddBabelHook{xetex}{stopcommands}{%
\xebbl@stop
\let\xebbl@stop\relax}
+\def\bbl@input@classes{% Used in CJK intraspaces
+ \input{load-unicode-xetex-classes.tex}%
+ \let\bbl@input@classes\relax}
\def\bbl@intraspace#1 #2 #3\@@{%
\bbl@csarg\gdef{xeisp@\languagename}%
{\XeTeXlinebreakskip #1em plus #2em minus #3em\relax}}
@@ -13789,7 +13818,7 @@ wouldn’t exist.
\AtBeginDocument{\bbl@patchfont{\bbl@ispacesize}}%
\fi}%
\fi}
-\ifx\DisableBabelHook\@undefined\endinput\fi
+\ifx\DisableBabelHook\@undefined\endinput\fi %%%% TODO: why
\AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont}
\AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts}
\DisableBabelHook{babel-fontspec}
@@ -13854,7 +13883,7 @@ wouldn’t exist.
% special case, hyphens are stored as |\bbl@upto|, to deal with ranges.
%
% \begin{macrocode}
-\newcommand\IfBabelIntercharT[1]{%
+\newcommand\bbl@ifinterchar[1]{%
\let\bbl@tempa\@gobble % Assume to ignore
\edef\bbl@tempb{\zap@space#1 \@empty}%
\ifx\bbl@KVP@interchar\@nnil\else
@@ -13866,6 +13895,8 @@ wouldn’t exist.
\fi}%
\fi
\bbl@tempa}
+\newcommand\IfBabelIntercharT[2]{%
+ \bbl@carg\bbl@add{bbl@icsave@\CurrentOption}{\bbl@ifinterchar{#1}{#2}}}%
\newcommand\babelcharclass[3]{%
\EnableBabelHook{babel-interchar}%
\bbl@csarg\newXeTeXintercharclass{xeclass@#2@#1}%
@@ -16033,17 +16064,15 @@ end
\fi
\ifx\tcolorbox\@undefined\else
\def\tcb@drawing@env@begin{%
- \csname tcb@before@\tcb@split@state\endcsname
- \bbl@pictsetdir\tw@
- \begin{\kvtcb@graphenv}%
- \tcb@bbdraw%
- \tcb@apply@graph@patches
- }%
- \def\tcb@drawing@env@end{%
- \end{\kvtcb@graphenv}%
- \bbl@pictresetdir
- \csname tcb@after@\tcb@split@state\endcsname
- }%
+ \csname tcb@before@\tcb@split@state\endcsname
+ \bbl@pictsetdir\tw@
+ \begin{\kvtcb@graphenv}%
+ \tcb@bbdraw
+ \tcb@apply@graph@patches}%
+ \def\tcb@drawing@env@end{%
+ \end{\kvtcb@graphenv}%
+ \bbl@pictresetdir
+ \csname tcb@after@\tcb@split@state\endcsname}%
\fi
}}
{}
diff --git a/Master/texmf-dist/source/latex/babel/babel.ins b/Master/texmf-dist/source/latex/babel/babel.ins
index d498b8ff4f1..4bd22c8667b 100644
--- a/Master/texmf-dist/source/latex/babel/babel.ins
+++ b/Master/texmf-dist/source/latex/babel/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/03/29}
+\def\filedate{2024/04/20}
\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 9c1856b9982..f36bd4b7050 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}[2024/03/29 v24.3]
+\ProvidesFile{bbcompat.dtx}[2024/04/20 v24.4]
%</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 5a90571a6bc..9c28655c29f 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.def b/Master/texmf-dist/tex/generic/babel/babel.def
index a76f7f47b11..af17a4db0ee 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -40,7 +40,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2024/03/29 v24.3 Babel common definitions]
+\ProvidesFile{babel.def}[2024/04/20 v24.4 Babel common definitions]
\ifx\AtBeginDocument\@undefined % TODO. change test.
\def\@empty{}
\def\loadlocalcfg#1{%
@@ -596,8 +596,8 @@
\toks@\expandafter{\bbl@tempc#3}%
\expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
\fi}
-\def\bbl@version{24.3}
-\def\bbl@date{2024/03/29}
+\def\bbl@version{24.4}
+\def\bbl@date{2024/04/20}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -2267,7 +2267,7 @@
\or
\input xebabel.def
\fi
-\providecommand\babelfont{\bbl@error@{only-lua-xe}{}{}{}}
+\providecommand\babelfont{\bbl@error{only-lua-xe}{}{}{}}
\providecommand\babelprehyphenation{\bbl@error{only-lua}{}{}{}}
\ifx\babelposthyphenation\@undefined
\let\babelposthyphenation\babelprehyphenation
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index 35fa58deff0..9e75ee48de2 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.sty
+++ b/Master/texmf-dist/tex/generic/babel/babel.sty
@@ -34,7 +34,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2024/03/29 v24.3 The Babel package]
+\ProvidesPackage{babel}[2024/04/20 v24.4 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}%
\let\bbl@debug\@firstofone
@@ -466,8 +466,8 @@
\expandafter\@secondoftwo
\fi}
\fi
-\def\bbl@version{24.3}
-\def\bbl@date{2024/03/29}
+\def\bbl@version{24.4}
+\def\bbl@date{2024/04/20}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -2210,7 +2210,7 @@
\or
\input xebabel.def
\fi
-\providecommand\babelfont{\bbl@error@{only-lua-xe}{}{}{}}
+\providecommand\babelfont{\bbl@error{only-lua-xe}{}{}{}}
\providecommand\babelprehyphenation{\bbl@error{only-lua}{}{}{}}
\ifx\babelposthyphenation\@undefined
\let\babelposthyphenation\babelprehyphenation
@@ -2595,6 +2595,8 @@
\fi
% == transforms ==
% > luababel.def
+ \def\CurrentOption{#2}%
+ \@nameuse{bbl@icsave@#2}%
% == main ==
\ifx\bbl@KVP@main\@nnil % Restore only if not 'main'
\let\languagename\bbl@savelangname
diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
index b667ec61a93..690a0deb2d7 100644
--- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg
+++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
@@ -38,10 +38,10 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{hyphen.cfg}[2024/03/29 v24.3 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2024/04/20 v24.4 Babel hyphens]
\xdef\bbl@format{\jobname}
-\def\bbl@version{24.3}
-\def\bbl@date{2024/03/29}
+\def\bbl@version{24.4}
+\def\bbl@date{2024/04/20}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex b/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex
index f09c78ad126..587cc5f8e64 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex
@@ -33,6 +33,7 @@
\babelprehyphenation{tibetan}{[{a}{p}]|}%
{ {}, {space=\bbl@tempe, data=1 } }%
% (2) Line breaking
+ % 0f0d=shad, 0f0e=nyis shad, 0f0b=tsheg
\babelprehyphenation{tibetan}{[^^^^0f0d^^^^0f0e]|[^^^^0f0d^^^^0f0e]}%
{ {}, {insert, penalty=10000}, {}, {} }%
\babelprehyphenation{tibetan}{[^^^^0f0d^^^^0f0e][^^^^0f40-^^^^0f6a]}%
@@ -40,9 +41,14 @@
\edef\bbl@tempe{\directlua{
tex.print(table.concat(Babel.tibetan.tsheg, ' ', 1, 3))
}}%
- \babelprehyphenation{tibetan}{^^^^0f0b[^ ^^^^0f0d^^^^0f0e]}%
+ \babelprehyphenation{tibetan}%
+ {^^^^0f0b[^ ^^^^0f0d^^^^0f0e{)}{]}’”»{007D}^^^^0f3b^^^^0f3d〉〉》」』】〕〗〙〛]}%
{ {insert, penalty=10000}, {insert, space=\bbl@tempe, data=1}, {},
- {insert, space=\bbl@tempe, data=1}, {} }}
+ {insert, space=\bbl@tempe, data=1}, {} }%
+ \babelprehyphenation{tibetan}%
+ {^^^^0f0b[{)}{]}’”»{007D}^^^^0f3b^^^^0f3d〉〉》」』】〕〗〙〛]{a}}%
+ { {insert, penalty=10000}, {insert, space=\bbl@tempe, data=1}, {},
+ {}, {insert, space=\bbl@tempe, data=1}, {} }}
\def\bbl@tibetanjust{%
% (3) Justification
diff --git a/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini b/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
index abdbe0538df..1d44a83d6ae 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.10
-date = 2022-09-01
+version = 1.11
+date = 2024-04-18
name.local = 日本語
name.english = Japanese
name.babel = japanese
@@ -25,6 +25,7 @@ script.tag.opentype = kana
level = 1
encodings =
derivate = no
+require.babel = japanese
[captions]
; some key names are tentative
diff --git a/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex b/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex
index 0ffb953be1d..da7a161f2ec 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex
@@ -9,4 +9,70 @@
\fi
\BabelBeforeIni{ja}{%
}
+
+
+\ifcase\bbl@engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+ \bbl@input@classes
+ \bbl@carg\bbl@add{extras\CurrentOption}%
+ {\babel@savevariable\XeTeXinterchartokenstate
+ \XeTeXinterchartokenstate\@ne}%
+%
+ \def\BabelCJKGlue{\hskip0pt plus 0.1em\relax}%
+ \def\BabelCJKSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkideogram}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkleftpunctuation}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{default}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{default}%
+ {\nobreak\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{default}%
+ {\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkideogram}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkleftpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkrightpunctuation}%
+ {\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+}
+
+\fi
+
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini b/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini
index 6bf07ad3128..eff48777f29 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.4
-date = 2023-03-11
+version = 1.5
+date = 2024-04-18
name.local = 한국어
name.english = Korean
name.babel = korean-han korean-hani
@@ -25,6 +25,7 @@ script.tag.opentype = hani
level = 1
encodings =
derivate = no
+require.babel = korean
[captions]
; names based on kotex
diff --git a/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini b/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini
index 5eb9b89c170..a56ab37a39c 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.12
-date = 2023-03-11
+version = 1.13
+date = 2024-04-18
name.local = 한국어
name.english = Korean
name.babel = korean
@@ -26,6 +26,7 @@ script.tag.opentype = hang
level = 1
encodings =
derivate = no
+require.babel = korean
[captions]
; names based on kotex
diff --git a/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex b/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex
index eaf6a40400b..e1d8845d841 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex
@@ -9,4 +9,70 @@
\fi
\BabelBeforeIni{ko}{%
}
+
+
+\ifcase\bbl@engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+ \bbl@input@classes
+ \bbl@carg\bbl@add{extras\CurrentOption}%
+ {\babel@savevariable\XeTeXinterchartokenstate
+ \XeTeXinterchartokenstate\@ne}%
+%
+ \def\BabelCJKGlue{\hskip0pt plus 0.1em\relax}%
+ \def\BabelCJKSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkideogram}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkleftpunctuation}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{default}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{default}%
+ {\nobreak\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{default}%
+ {\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkideogram}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkleftpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkrightpunctuation}%
+ {\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+}
+
+\fi
+
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex b/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex
index d92e1387afa..0b51ad9691d 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex
@@ -9,4 +9,70 @@
\fi
\BabelBeforeIni{yue}{%
}
+
+
+\ifcase\bbl@engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+ \bbl@input@classes
+ \bbl@carg\bbl@add{extras\CurrentOption}%
+ {\babel@savevariable\XeTeXinterchartokenstate
+ \XeTeXinterchartokenstate\@ne}%
+%
+ \def\BabelCJKGlue{\hskip0pt plus 0.1em\relax}%
+ \def\BabelCJKSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkideogram}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkleftpunctuation}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{default}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{default}%
+ {\nobreak\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{default}%
+ {\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkideogram}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkleftpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkrightpunctuation}%
+ {\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+}
+
+\fi
+
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini b/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini
index db7094fe6c5..25c65d4d539 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini
@@ -9,8 +9,8 @@
[identification]
charset = utf8
-version = 1.7
-date = 2023-03-11
+version = 1.8
+date = 2024-04-18
name.local = 粵語
name.english = Cantonese
name.babel = cantonese
@@ -25,6 +25,7 @@ script.tag.opentype = hani
level = 1
encodings =
derivate = no
+require.babel = cantonese
[captions]
preface =
diff --git a/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex b/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex
index 878566040c1..52f946d4d4a 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex
@@ -10,7 +10,7 @@
\BabelBeforeIni{zh}{%
}
-\ifcase\bbl@engine\else
+\ifcase\bbl@engine\else % xe/lua
% Shared with zh-*.ini files
\@namedef{bbl@cntr@date.sexagenary@\CurrentOption}#1{%
@@ -24,6 +24,70 @@
戊申\or 己酉\or 庚戌\or 辛亥\or 壬子\or 癸丑\or 甲寅\or
乙卯\or 丙辰\or 丁巳\or 戊午\or 己未\or 庚申\or 辛酉\or
壬戌\or 癸亥\fi}
+
+\fi
+
+\ifcase\bbl@engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+ \bbl@input@classes
+ \bbl@carg\bbl@add{extras\CurrentOption}%
+ {\babel@savevariable\XeTeXinterchartokenstate
+ \XeTeXinterchartokenstate\@ne}%
+%
+ \def\BabelCJKGlue{\hskip0pt plus 0.1em\relax}%
+ \def\BabelCJKSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkideogram}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkleftpunctuation}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {default}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{default}%
+ {\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{default}%
+ {\nobreak\BabelCJKSpace}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{default}%
+ {\BabelCJKSpace}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkideogram}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkideogram}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkleftpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkleftpunctuation}{cjkrightpunctuation}%
+ {\BabelCJKGlue}%
+%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkideogram}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkleftpunctuation}%
+ {\BabelCJKGlue}%
+ \babelinterchar[label=linebreak.basic]{\CurrentOption}%
+ {cjkrightpunctuation}{cjkrightpunctuation}%
+ {\nobreak\BabelCJKGlue}%
+}
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def
index b531bcdeb3d..4575df0f80a 100644
--- a/Master/texmf-dist/tex/generic/babel/luababel.def
+++ b/Master/texmf-dist/tex/generic/babel/luababel.def
@@ -1859,17 +1859,15 @@ end
\fi
\ifx\tcolorbox\@undefined\else
\def\tcb@drawing@env@begin{%
- \csname tcb@before@\tcb@split@state\endcsname
- \bbl@pictsetdir\tw@
- \begin{\kvtcb@graphenv}%
- \tcb@bbdraw%
- \tcb@apply@graph@patches
- }%
- \def\tcb@drawing@env@end{%
- \end{\kvtcb@graphenv}%
- \bbl@pictresetdir
- \csname tcb@after@\tcb@split@state\endcsname
- }%
+ \csname tcb@before@\tcb@split@state\endcsname
+ \bbl@pictsetdir\tw@
+ \begin{\kvtcb@graphenv}%
+ \tcb@bbdraw
+ \tcb@apply@graph@patches}%
+ \def\tcb@drawing@env@end{%
+ \end{\kvtcb@graphenv}%
+ \bbl@pictresetdir
+ \csname tcb@after@\tcb@split@state\endcsname}%
\fi
}}
{}
diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf
index 987796efd1e..94709c5e575 100644
--- a/Master/texmf-dist/tex/generic/babel/nil.ldf
+++ b/Master/texmf-dist/tex/generic/babel/nil.ldf
@@ -33,7 +33,7 @@
%% extension |.ins|) which are part of the distribution.
%%
-\ProvidesLanguage{nil}[2024/03/29 v24.3 Nil language]
+\ProvidesLanguage{nil}[2024/04/20 v24.4 Nil language]
\LdfInit{nil}{datenil}
\ifx\l@nil\@undefined
\newlanguage\l@nil
diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def
index e1f5387a0ef..7a667481643 100644
--- a/Master/texmf-dist/tex/generic/babel/xebabel.def
+++ b/Master/texmf-dist/tex/generic/babel/xebabel.def
@@ -46,6 +46,9 @@
\AddBabelHook{xetex}{stopcommands}{%
\xebbl@stop
\let\xebbl@stop\relax}
+\def\bbl@input@classes{% Used in CJK intraspaces
+ \input{load-unicode-xetex-classes.tex}%
+ \let\bbl@input@classes\relax}
\def\bbl@intraspace#1 #2 #3\@@{%
\bbl@csarg\gdef{xeisp@\languagename}%
{\XeTeXlinebreakskip #1em plus #2em minus #3em\relax}}
@@ -90,7 +93,7 @@
\AtBeginDocument{\bbl@patchfont{\bbl@ispacesize}}%
\fi}%
\fi}
-\ifx\DisableBabelHook\@undefined\endinput\fi
+\ifx\DisableBabelHook\@undefined\endinput\fi %%%% TODO: why
\AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont}
\AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts}
\DisableBabelHook{babel-fontspec}
@@ -302,7 +305,7 @@
\XeTeXcharclass`#1 \bbl@tempc
\fi
\count@`#1\relax}
-\newcommand\IfBabelIntercharT[1]{%
+\newcommand\bbl@ifinterchar[1]{%
\let\bbl@tempa\@gobble % Assume to ignore
\edef\bbl@tempb{\zap@space#1 \@empty}%
\ifx\bbl@KVP@interchar\@nnil\else
@@ -314,6 +317,8 @@
\fi}%
\fi
\bbl@tempa}
+\newcommand\IfBabelIntercharT[2]{%
+ \bbl@carg\bbl@add{bbl@icsave@\CurrentOption}{\bbl@ifinterchar{#1}{#2}}}%
\newcommand\babelcharclass[3]{%
\EnableBabelHook{babel-interchar}%
\bbl@csarg\newXeTeXintercharclass{xeclass@#2@#1}%