texlive[71021] Master/texmf-dist: babel (20apr24)

commits+karl at tug.org commits+karl at tug.org
Sat Apr 20 21:28:16 CEST 2024


Revision: 71021
          https://tug.org/svn/texlive?view=revision&revision=71021
Author:   karl
Date:     2024-04-20 21:28:15 +0200 (Sat, 20 Apr 2024)
Log Message:
-----------
babel (20apr24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/babel/README.md
    trunk/Master/texmf-dist/doc/latex/babel/babel-code.pdf
    trunk/Master/texmf-dist/doc/latex/babel/babel.pdf
    trunk/Master/texmf-dist/source/latex/babel/babel.dtx
    trunk/Master/texmf-dist/source/latex/babel/babel.ins
    trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
    trunk/Master/texmf-dist/source/latex/babel/locale.zip
    trunk/Master/texmf-dist/tex/generic/babel/babel.def
    trunk/Master/texmf-dist/tex/generic/babel/babel.sty
    trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
    trunk/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex
    trunk/Master/texmf-dist/tex/generic/babel/luababel.def
    trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
    trunk/Master/texmf-dist/tex/generic/babel/xebabel.def

Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 @@
 
 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 @@
 
 ### 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

Modified: trunk/Master/texmf-dist/doc/latex/babel/babel-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/babel/babel.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 @@
 
 \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 @@
 
 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 @@
 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 @@
 \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,10 +3694,32 @@
 \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
   relevant key for the current engine is taken into account.
@@ -5451,8 +5475,8 @@
 % \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 @@
 \or
   \input xebabel.def
 \fi
-\providecommand\babelfont{\bbl at error@{only-lua-xe}{}{}{}}
+\providecommand\babelfont{\bbl at error{only-lua-xe}{}{}{}}
 \providecommand\babelprehyphenation{\bbl at error{only-lua}{}{}{}}
 \ifx\babelposthyphenation\@undefined
   \let\babelposthyphenation\babelprehyphenation
@@ -10305,6 +10329,8 @@
   \fi
   % == transforms ==
   % > luababel.def
+  \def\CurrentOption{#2}%
+  \@nameuse{bbl at icsave@#2}%
   % == main ==
   \ifx\bbl at KVP@main\@nnil  % Restore only if not 'main'
     \let\languagename\bbl at savelangname
@@ -13745,6 +13771,9 @@
 \AddBabelHook{xetex}{stopcommands}{%
   \xebbl at stop
   \let\xebbl at stop\relax}
+\def\bbl at input@classes{% Used in CJK intraspaces
+  \input{load-unicode-xetex-classes.tex}%
+  \let\bbl at input@classes\relax}
 \def\bbl at intraspace#1 #2 #3\@@{%
   \bbl at csarg\gdef{xeisp@\languagename}%
     {\XeTeXlinebreakskip #1em plus #2em minus #3em\relax}}
@@ -13789,7 +13818,7 @@
         \AtBeginDocument{\bbl at patchfont{\bbl at ispacesize}}%
       \fi}%
   \fi}
-\ifx\DisableBabelHook\@undefined\endinput\fi
+\ifx\DisableBabelHook\@undefined\endinput\fi %%%% TODO: why
 \AddBabelHook{babel-fontspec}{afterextras}{\bbl at switchfont}
 \AddBabelHook{babel-fontspec}{beforestart}{\bbl at ckeckstdfonts}
 \DisableBabelHook{babel-fontspec}
@@ -13854,7 +13883,7 @@
 % special case, hyphens are stored as |\bbl at upto|, to deal with ranges.
 %
 %    \begin{macrocode}
-\newcommand\IfBabelIntercharT[1]{%
+\newcommand\bbl at ifinterchar[1]{%
   \let\bbl at tempa\@gobble        % Assume to ignore
   \edef\bbl at tempb{\zap at space#1 \@empty}%
   \ifx\bbl at KVP@interchar\@nnil\else
@@ -13866,6 +13895,8 @@
         \fi}%
   \fi
   \bbl at tempa}
+\newcommand\IfBabelIntercharT[2]{%
+  \bbl at carg\bbl at add{bbl at icsave@\CurrentOption}{\bbl at ifinterchar{#1}{#2}}}%
 \newcommand\babelcharclass[3]{%
   \EnableBabelHook{babel-interchar}%
   \bbl at csarg\newXeTeXintercharclass{xeclass@#2@#1}%
@@ -16033,17 +16064,15 @@
       \fi
       \ifx\tcolorbox\@undefined\else
         \def\tcb at drawing@env at begin{%
-        \csname tcb at before@\tcb at split@state\endcsname
-        \bbl at pictsetdir\tw@
-        \begin{\kvtcb at graphenv}%
-        \tcb at bbdraw%
-        \tcb at apply@graph at patches
-        }%
-       \def\tcb at drawing@env at end{%
-       \end{\kvtcb at graphenv}%
-       \bbl at pictresetdir
-       \csname tcb at after@\tcb at split@state\endcsname
-       }%
+          \csname tcb at before@\tcb at split@state\endcsname
+          \bbl at pictsetdir\tw@
+          \begin{\kvtcb at graphenv}%
+          \tcb at bbdraw
+          \tcb at apply@graph at patches}%
+        \def\tcb at drawing@env at end{%
+          \end{\kvtcb at graphenv}%
+          \bbl at pictresetdir
+          \csname tcb at after@\tcb at split@state\endcsname}%
       \fi
     }}
   {}

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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
 

Modified: trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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'

Modified: trunk/Master/texmf-dist/source/latex/babel/locale.zip
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.def	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 at tempc#3}%
     \expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
   \fi}
-\def\bbl at version{24.3}
-\def\bbl at date{2024/03/29}
+\def\bbl at version{24.4}
+\def\bbl at date{2024/04/20}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi
@@ -2267,7 +2267,7 @@
 \or
   \input xebabel.def
 \fi
-\providecommand\babelfont{\bbl at error@{only-lua-xe}{}{}{}}
+\providecommand\babelfont{\bbl at error{only-lua-xe}{}{}{}}
 \providecommand\babelprehyphenation{\bbl at error{only-lua}{}{}{}}
 \ifx\babelposthyphenation\@undefined
   \let\babelposthyphenation\babelprehyphenation

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 at trace[1]{\message{^^J[ #1 ]}}%
    \let\bbl at debug\@firstofone
@@ -466,8 +466,8 @@
       \expandafter\@secondoftwo
     \fi}
 \fi
-\def\bbl at version{24.3}
-\def\bbl at date{2024/03/29}
+\def\bbl at version{24.4}
+\def\bbl at date{2024/04/20}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi
@@ -2210,7 +2210,7 @@
 \or
   \input xebabel.def
 \fi
-\providecommand\babelfont{\bbl at error@{only-lua-xe}{}{}{}}
+\providecommand\babelfont{\bbl at error{only-lua-xe}{}{}{}}
 \providecommand\babelprehyphenation{\bbl at error{only-lua}{}{}{}}
 \ifx\babelposthyphenation\@undefined
   \let\babelposthyphenation\babelprehyphenation
@@ -2595,6 +2595,8 @@
   \fi
   % == transforms ==
   % > luababel.def
+  \def\CurrentOption{#2}%
+  \@nameuse{bbl at icsave@#2}%
   % == main ==
   \ifx\bbl at KVP@main\@nnil  % Restore only if not 'main'
     \let\languagename\bbl at savelangname

Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 at format{\jobname}
-\def\bbl at version{24.3}
-\def\bbl at date{2024/03/29}
+\def\bbl at version{24.4}
+\def\bbl at date{2024/04/20}
 \ifx\AtBeginDocument\@undefined
   \def\@empty{}
 \fi

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/bo/babel-tibetan.tex	2024-04-20 19:28:15 UTC (rev 71021)
@@ -33,6 +33,7 @@
   \babelprehyphenation{tibetan}{[{a}{p}]|}%
     { {}, {space=\bbl at 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 at 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 at tempe, data=1}, {},
-      {insert, space=\bbl at tempe, data=1}, {} }}
+      {insert, space=\bbl at tempe, data=1}, {} }%
+  \babelprehyphenation{tibetan}% 
+    {^^^^0f0b[{)}{]}’”»{007D}^^^^0f3b^^^^0f3d〉〉》」』】〕〗〙〛]{a}}%
+    { {insert, penalty=10000}, {insert, space=\bbl at tempe, data=1}, {},
+      {}, {insert, space=\bbl at tempe, data=1}, {} }}
       
 \def\bbl at tibetanjust{%
   % (3) Justification

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 @@
 level = 1
 encodings = 
 derivate = no
+require.babel = japanese
 
 [captions]
 ; some key names are tentative

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-japanese.tex	2024-04-20 19:28:15 UTC (rev 71021)
@@ -9,4 +9,70 @@
 \fi
 \BabelBeforeIni{ja}{%
 }
+
+
+\ifcase\bbl at engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+  \bbl at input@classes
+  \bbl at carg\bbl at add{extras\CurrentOption}%
+    {\babel at 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

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 @@
 level = 1
 encodings = 
 derivate = no
+require.babel = korean
 
 [captions]
 ; names based on kotex

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 @@
 level = 1
 encodings = 
 derivate = no
+require.babel = korean
 
 [captions]
 ; names based on kotex

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-korean.tex	2024-04-20 19:28:15 UTC (rev 71021)
@@ -9,4 +9,70 @@
 \fi
 \BabelBeforeIni{ko}{%
 }
+
+
+\ifcase\bbl at engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+  \bbl at input@classes
+  \bbl at carg\bbl at add{extras\CurrentOption}%
+    {\babel at 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

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-cantonese.tex	2024-04-20 19:28:15 UTC (rev 71021)
@@ -9,4 +9,70 @@
 \fi
 \BabelBeforeIni{yue}{%
 }
+
+
+\ifcase\bbl at engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+  \bbl at input@classes
+  \bbl at carg\bbl at add{extras\CurrentOption}%
+    {\babel at 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

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 @@
 level = 1
 encodings = 
 derivate = no
+require.babel = cantonese
 
 [captions]
 preface = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-chinese.tex	2024-04-20 19:28:15 UTC (rev 71021)
@@ -10,7 +10,7 @@
 \BabelBeforeIni{zh}{%
 }
 
-\ifcase\bbl at engine\else
+\ifcase\bbl at engine\else % xe/lua
 
 % Shared with zh-*.ini files
 \@namedef{bbl at 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 at engine\or\or % xe
+
+\IfBabelIntercharT{linebreak.basic}{%
+  \bbl at input@classes
+  \bbl at carg\bbl at add{extras\CurrentOption}%
+    {\babel at 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
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/luababel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2024-04-20 19:28:15 UTC (rev 71021)
@@ -1859,17 +1859,15 @@
       \fi
       \ifx\tcolorbox\@undefined\else
         \def\tcb at drawing@env at begin{%
-        \csname tcb at before@\tcb at split@state\endcsname
-        \bbl at pictsetdir\tw@
-        \begin{\kvtcb at graphenv}%
-        \tcb at bbdraw%
-        \tcb at apply@graph at patches
-        }%
-       \def\tcb at drawing@env at end{%
-       \end{\kvtcb at graphenv}%
-       \bbl at pictresetdir
-       \csname tcb at after@\tcb at split@state\endcsname
-       }%
+          \csname tcb at before@\tcb at split@state\endcsname
+          \bbl at pictsetdir\tw@
+          \begin{\kvtcb at graphenv}%
+          \tcb at bbdraw
+          \tcb at apply@graph at patches}%
+        \def\tcb at drawing@env at end{%
+          \end{\kvtcb at graphenv}%
+          \bbl at pictresetdir
+          \csname tcb at after@\tcb at split@state\endcsname}%
       \fi
     }}
   {}

Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2024-04-20 19:28:15 UTC (rev 71021)
@@ -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 at nil\@undefined
   \newlanguage\l at nil

Modified: trunk/Master/texmf-dist/tex/generic/babel/xebabel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/xebabel.def	2024-04-20 19:27:24 UTC (rev 71020)
+++ trunk/Master/texmf-dist/tex/generic/babel/xebabel.def	2024-04-20 19:28:15 UTC (rev 71021)
@@ -46,6 +46,9 @@
 \AddBabelHook{xetex}{stopcommands}{%
   \xebbl at stop
   \let\xebbl at stop\relax}
+\def\bbl at input@classes{% Used in CJK intraspaces
+  \input{load-unicode-xetex-classes.tex}%
+  \let\bbl at input@classes\relax}
 \def\bbl at intraspace#1 #2 #3\@@{%
   \bbl at csarg\gdef{xeisp@\languagename}%
     {\XeTeXlinebreakskip #1em plus #2em minus #3em\relax}}
@@ -90,7 +93,7 @@
         \AtBeginDocument{\bbl at patchfont{\bbl at ispacesize}}%
       \fi}%
   \fi}
-\ifx\DisableBabelHook\@undefined\endinput\fi
+\ifx\DisableBabelHook\@undefined\endinput\fi %%%% TODO: why
 \AddBabelHook{babel-fontspec}{afterextras}{\bbl at switchfont}
 \AddBabelHook{babel-fontspec}{beforestart}{\bbl at ckeckstdfonts}
 \DisableBabelHook{babel-fontspec}
@@ -302,7 +305,7 @@
     \XeTeXcharclass`#1 \bbl at tempc
   \fi
   \count@`#1\relax}
-\newcommand\IfBabelIntercharT[1]{%
+\newcommand\bbl at ifinterchar[1]{%
   \let\bbl at tempa\@gobble        % Assume to ignore
   \edef\bbl at tempb{\zap at space#1 \@empty}%
   \ifx\bbl at KVP@interchar\@nnil\else
@@ -314,6 +317,8 @@
         \fi}%
   \fi
   \bbl at tempa}
+\newcommand\IfBabelIntercharT[2]{%
+  \bbl at carg\bbl at add{bbl at icsave@\CurrentOption}{\bbl at ifinterchar{#1}{#2}}}%
 \newcommand\babelcharclass[3]{%
   \EnableBabelHook{babel-interchar}%
   \bbl at csarg\newXeTeXintercharclass{xeclass@#2@#1}%



More information about the tex-live-commits mailing list.