texlive[72061] Master/texmf-dist: babel (18aug24)

commits+karl at tug.org commits+karl at tug.org
Sun Aug 18 21:49:14 CEST 2024


Revision: 72061
          https://tug.org/svn/texlive?view=revision&revision=72061
Author:   karl
Date:     2024-08-18 21:49:14 +0200 (Sun, 18 Aug 2024)
Log Message:
-----------
babel (18aug24)

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-bidi-basic-r.lua
    trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
    trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua
    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/ccp/babel-ccp.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ckb/babel-ckb-Latn.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/cu/babel-cu-Cyrs.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/he/babel-he.ini
    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/mk/babel-mk.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ro/babel-ro.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sl/babel-sl.ini
    trunk/Master/texmf-dist/tex/generic/babel/luababel.def
    trunk/Master/texmf-dist/tex/generic/babel/nil.ldf

Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md	2024-08-18 19:49:14 UTC (rev 72061)
@@ -1,6 +1,6 @@
-## Babel 24.7
+## Babel 24.8
 
-2024-06-26
+2024-08-18
 
 `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.7 are described in:
+Changes in version 24.8 are described in:
 
-https://latex3.github.io/babel/news/whats-new-in-babel-24.7.html
+https://latex3.github.io/babel/news/whats-new-in-babel-24.8.html
 
 Apart from the manual, you can find information on some aspects of babel at:
 
@@ -43,15 +43,15 @@
 
    https://latex3.github.io/babel/contact.html
 
-Bugs related to specific languages are best reported to their
+Bugs related to specific languages are best reported to theirs
 respective authors.
 
 ### Summary of latest changes
 ```
-24.7  2024-06-26
-      * Improvements in some locales:
-        - Filipino (thanks to Leothelion, @ponte-vecchio)
-        - Line breaking in Blin, Geez, Tigre, Tigrinya, Wolaytta.
+24.8  2024-08-18
+      * Internal changes in bidi=basic (more reliable).
+      * Hook 'foreign' and \BabelWrapText.
+      * Improved some locales thanks to Stephen Huan (@stephen-huan).
 ```
 
 ### 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-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2024-08-18 19:49:14 UTC (rev 72061)
@@ -32,7 +32,7 @@
 %
 % \iffalse
 %<*filedriver>
-\ProvidesFile{babel.dtx}[2024/06/26 v24.7 The Babel package]
+\ProvidesFile{babel.dtx}[2024/08/18 v24.8 The Babel package]
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
 \usepackage{fontspec}
@@ -3908,11 +3908,15 @@
 
 In \xetex, |bidi-r| and |bidi-l| resort to the package \textsf{bidi}
 (by Vafa Khalighi). For RL documents use the former, and for LR ones
-use the latter. However, this package patches heavily lots of macros
-and packages even if the RL script is not the main one, which can lead
-to some surprising results, so for short and simple texts (letters and
-punctuation) the |default| method can be preferable.
+use the latter. 
 
+\begin{warning}
+  This package patches heavily lots of macros and packages even if the
+  RL script is not the main one, which can lead to some surprising
+  results, so for short and simple texts (letters and punctuation) the
+  |default| method is more often than not much preferable.
+\end{warning}
+
 There are samples on GitHub, under \texttt{/required/babel/samples}.
 See particularly |lua-bidibasic.tex| and |lua-secenum.tex|.
 
@@ -4293,6 +4297,17 @@
   language in this particular case is the language that wrote the code.
   The special value |/| means ‘return to the core \babel{} definitions’
   (in other words, what follows hasn’t been written by any language).
+\item[foreign] \New{24.8} Executed by |\foreignlanguage| after the
+  language has been set up and just before typesetting the text from the
+  second argument. Its main purpose it to wrap the text with some
+  code, with the help of |\BabelWrapText|. For example, with:
+\begin{verbatim}
+\AddBabelHook{one}{foreign}{\BabelWrapText{\textit{##1}}
+\AddBabelHook{two}{foreign}{\BabelWrapText{\parse{##1}}
+\end{verbatim}
+the text becomes |\textit{\parse{|\m{text}|}}|. 
+
+  
 % STILL UNDER STUDY:
 % \item[beforestart] \New{3.34} Executed either at the beginning of the
 %   |aux| file (when read at the start of the document), or else at begin
@@ -5479,8 +5494,8 @@
 % \section{Tools}
 %
 %    \begin{macrocode}
-%<<version=24.7>>
-%<<date=2024/06/26>>
+%<<version=24.8>>
+%<<date=2024/08/18>>
 %    \end{macrocode}
 %
 % \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -6984,6 +6999,9 @@
     \BabelText{#2}% Still in vertical mode!
     {\par}%
   \endgroup}
+\providecommand\BabelWrapText[1]{%
+   \def\bbl at tempa{\def\BabelText####1}%
+   \expandafter\bbl at tempa\expandafter{\BabelText{#1}}}
 %    \end{macrocode}
 %
 %  \end{macro}
@@ -11569,6 +11587,7 @@
   \let\bbl at noamsmath\@empty}
 \@namedef{bbl at ADJ@bidi.math at off}{%
   \let\bbl at noamsmath\relax}
+%
 \@namedef{bbl at ADJ@bidi.mapdigits at on}{%
   \bbl at adjust@lua{bidi}{digits_mapped=true}}
 \@namedef{bbl at ADJ@bidi.mapdigits at off}{%
@@ -12533,11 +12552,10 @@
     \let\bbl at textdir@i\@gobbletwo
     \let\bbl at xebidipar\@empty
     \AddBabelHook{bidi}{foreign}{%
-      \def\bbl at tempa{\def\BabelText####1}%
       \ifcase\bbl at thetextdir
-        \expandafter\bbl at tempa\expandafter{\BabelText{\LR{##1}}}%
+        \BabelWrapText{\LR{##1}}%
       \else
-        \expandafter\bbl at tempa\expandafter{\BabelText{\RL{##1}}}%
+        \BabelWrapText{\RL{##1}}%
       \fi}
     \def\bbl at pardir#1{\ifcase#1\relax\setLR\else\setRL\fi}
   \fi
@@ -15516,7 +15534,7 @@
       return head
     end
     %
-    function Babel.pre_otfload_h(head, gc, sz, pt, dir)
+    function Babel.pre_otfload_h(head, gc, sz, pt, dir) %%% TODO
       if Babel.numbers and Babel.digits_mapped then
         head = Babel.numbers(head)
       end
@@ -15543,7 +15561,8 @@
 % The basic setup. The output is modified at a very low level to set
 % the |\bodydir| to the |\pagedir|. Sadly, we have to deal with boxes
 % in math with basic, so the |\bbl at mathboxdir| hack is activated every
-% math with the package option bidi=.
+% math with the package option bidi=. The hack for the PUA is no longer
+% necessary with |basic|, but it’s kept in |basic-r|.
 %
 %    \begin{macrocode}
 \breakafterdirmode=1
@@ -15557,7 +15576,10 @@
     \ifcase\expandafter\@gobbletwo\the\bbl at bidimode\or
       require('babel-bidi-basic.lua')
     \or
-      require('babel-bidi-basic-r.lua')
+      require('babel-bidi-basic-r.lua') 
+      table.insert(Babel.ranges, {0xE000,   0xF8FF, 'on'})
+      table.insert(Babel.ranges, {0xF0000,  0xFFFFD, 'on'})
+      table.insert(Babel.ranges, {0x100000, 0x10FFFD, 'on'})
     \fi}
   \newattribute\bbl at attr@dir
   \directlua{ Babel.attr_dir = luatexbase.registernumber'bbl at attr@dir' }
@@ -15633,6 +15655,12 @@
       end
       luatexbase.add_to_callback("hpack_filter", Babel.math_box_dir,
         "Babel.math_box_dir", 0)
+      if Babel.unset_atdir then
+        luatexbase.add_to_callback("pre_linebreak_filter", Babel.unset_atdir,
+          "Babel.unset_atdir")
+        luatexbase.add_to_callback("hpack_filter", Babel.unset_atdir,
+          "Babel.unset_atdir")
+      end
   }}%
 \fi
 %    \end{macrocode}
@@ -15892,7 +15920,9 @@
     {\chardef\bbl at tabular@mode\z@}%
     {\chardef\bbl at tabular@mode\@ne}}% Mixed, with LTR cols
 \ifnum\bbl at bidimode>\@ne % Any lua bidi= except default=1
-  \ifcase\bbl at tabular@mode\or % 1
+  % Redefine: vrules mess up dirs:
+  \def\@arstrut{\relax\copy\@arstrutbox}%
+  \ifcase\bbl at tabular@mode\or % 1 = Mixed - default
     \let\bbl at parabefore\relax
     \AddToHook{para/before}{\bbl at parabefore}
     \AtBeginDocument{%
@@ -15917,7 +15947,7 @@
                   {\\\do at row@strut\<fi>}{\\\do at row@strut\<fi>\egroup}}}%
              {}}%
     \fi}%
-  \or % 2
+  \or % 2 = All RTL - tabular 
     \let\bbl at parabefore\relax
     \AddToHook{para/before}{\bbl at parabefore}%
     \AtBeginDocument{%
@@ -15962,9 +15992,9 @@
 \ifnum\bbl at bidimode>\z@ % Any bidi=
   \def\bbl at nextfake#1{%  non-local changes, use always inside a group!
     \bbl at exp{%
-      \def\\\bbl at insidemath{0}%
       \mathdir\the\bodydir  
       #1%              Once entered in math, set boxes to restore values
+      \def\\\bbl at insidemath{0}%
       \<ifmmode>%
         \everyvbox{%
           \the\everyvbox
@@ -16448,7 +16478,7 @@
           if crep then
             step = crep.step or step
           end
-          
+
           if crep and crep.after then
             crep.insert = true
             if dummy_node then
@@ -16459,7 +16489,7 @@
               dummy_node = item
             end
           end
-          
+
           if crep and not crep.after and dummy_node then
             node.remove(head, dummy_node)
             dummy_node = nil
@@ -16480,7 +16510,7 @@
             sc = sc - 1  -- Nothing has been inserted.
             last_match = utf8.offset(w, sc+1+step)
             goto next
-            
+
           elseif crep and crep.kashida then -- Experimental
             node.set_attribute(item,
                Babel.attr_kashida, 
@@ -16558,7 +16588,7 @@
               placeholder = ' '
             end
             head, new = node.insert_before(head, item, d)
-            
+
           elseif crep and crep.norule then
             -- 655360 = 10 pt = 10 * 65536 sp
             d = node.new(2, 3)      -- (rule, empty) = \no*rule
@@ -16582,7 +16612,7 @@
 
           elseif mode == 0 and crep and crep.space then
             -- ERROR
-            
+
           elseif crep and crep.kern then
             d = node.new(13, 1)      -- (kern, user)
             local quad = font.getfont(item_base.font).size or 655360
@@ -16589,7 +16619,7 @@
             d.attr = item_base.attr
             d.kern = crep.kern * quad
             head, new = node.insert_before(head, item, d)
-            
+
           elseif crep and crep.node then
             d = node.new(crep.node[1], crep.node[2])  
             d.attr = item_base.attr
@@ -16621,7 +16651,7 @@
             print('.....', '/')
             Babel.debug_hyph(w, w_nodes, sc, first, last, last_match)
         end
-      
+
       if dummy_node then
         node.remove(head, dummy_node)
         dummy_node = nil
@@ -16776,7 +16806,6 @@
  {0x07C0, 0x085F, 'r'},
  {0x0860, 0x086F, 'al'},
  {0x08A0, 0x08FF, 'al'},
- {0xE000, 0xF8FF, 'on'}, -- PUA
  {0xFB1D, 0xFB4F, 'r'},
  {0xFB50, 0xFDFF, 'al'},
  {0xFE70, 0xFEFF, 'al'},
@@ -16783,9 +16812,7 @@
  {0x10800, 0x10C4F, 'r'},
  {0x1E800, 0x1E8DF, 'r'},
  {0x1E900, 0x1E95F, 'r'},
- {0x1F300, 0x1F9FF, 'on'},
- {0xF0000, 0xFFFFD, 'on'}, -- PUA
- {0x100000, 0x10FFFD, 'on'} -- PUA
+ {0x1F300, 0x1F9FF, 'on'}
 }
 
 Babel.characters = {
@@ -23085,7 +23112,7 @@
       elseif first_d and dir ~= strong_lr then
         dir_mark(head, first_d, last_d, outer)
         first_d, last_d = nil, nil
-     end
+      end
     end
 %    \end{macrocode}
 %
@@ -23094,11 +23121,9 @@
 % clearly <r> and <l>, resptly, but with other combinations depends on
 % outer. From all these, we select only those resolving <on> $\to$
 % <r>. At the beginning (when |last_lr| is nil) of an R text, they are
-% mirrored directly.
+% mirrored directly. Numbers in R mode are processed. It should not be
+% done, but it doesn't hurt.
 %
-% TODO - numbers in R mode are processed. It doesn't hurt, but should
-% not be done.
-%
 %    \begin{macrocode}
     if dir and not last_lr and dir ~= 'l' and outer == 'r' then
       item.char = characters[item.char] and
@@ -23254,6 +23279,7 @@
   local has_hyperlink = false
 
   local ATDIR = Babel.attr_dir
+  local attr_d
 
   local save_outer
   local temp = node.get_attribute(head, ATDIR)
@@ -23285,9 +23311,11 @@
     -- current one is not added until we start processing the neutrals.
 
     -- three cases: glyph, dir, otherwise
-    if glyph_not_symbol_font(item)
+    if glyph_not_symbol_font(item)   
        or (item.id == 7 and item.subtype == 2) then
 
+      if node.get_attribute(item, ATDIR) == 128 then goto nextnode end
+
       local d_font = nil
       local item_r
       if item.id == 7 and item.subtype == 2 then
@@ -23295,6 +23323,7 @@
       else
         item_r = item
       end
+
       local chardata = characters[item_r.char]
       d = chardata and chardata.d or nil
       if not d or d == 'nsm' then
@@ -23422,6 +23451,7 @@
 
     -- Force mathdir in math if ON (currently works as expected only
     -- with 'l')
+
     if inmath and d == 'on' then
       d = ('TRT' == tex.mathdir) and 'r' or 'l'
     end
@@ -23437,10 +23467,13 @@
       table.insert(nodes, {item, d, outer_first})
     end
 
+    node.set_attribute(item, ATDIR, 128)
     outer_first = nil
 
-  end
+    ::nextnode::
 
+  end -- for each node
+
   -- TODO -- repeated here in case EN/ET is the last node. Find a
   -- better way of doing things:
   if first_et then       -- dir may be nil here !
@@ -23600,6 +23633,15 @@
 
   return head
 end
+-- Make sure anything is marked as 'bidi done' (including nodes inserted
+-- after the babel algorithm).
+function Babel.unset_atdir(head)
+  local ATDIR = Babel.attr_dir
+  for item in node.traverse(head) do
+    node.set_attribute(item, ATDIR, 128)
+  end
+  return head
+end
 %</basic>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins	2024-08-18 19:49:14 UTC (rev 72061)
@@ -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/06/26}
+\def\filedate{2024/08/18}
 \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-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2024-08-18 19:49:14 UTC (rev 72061)
@@ -30,7 +30,7 @@
 %
 % \iffalse
 %<*dtx>
-\ProvidesFile{bbcompat.dtx}[2024/06/26 v24.7]
+\ProvidesFile{bbcompat.dtx}[2024/08/18 v24.8]
 %</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-bidi-basic-r.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua	2024-08-18 19:49:14 UTC (rev 72061)
@@ -162,7 +162,7 @@
       elseif first_d and dir ~= strong_lr then
         dir_mark(head, first_d, last_d, outer)
         first_d, last_d = nil, nil
-     end
+      end
     end
     if dir and not last_lr and dir ~= 'l' and outer == 'r' then
       item.char = characters[item.char] and

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua	2024-08-18 19:49:14 UTC (rev 72061)
@@ -124,6 +124,7 @@
   local has_hyperlink = false
 
   local ATDIR = Babel.attr_dir
+  local attr_d
 
   local save_outer
   local temp = node.get_attribute(head, ATDIR)
@@ -158,6 +159,8 @@
     if glyph_not_symbol_font(item)
        or (item.id == 7 and item.subtype == 2) then
 
+      if node.get_attribute(item, ATDIR) == 128 then goto nextnode end
+
       local d_font = nil
       local item_r
       if item.id == 7 and item.subtype == 2 then
@@ -165,6 +168,7 @@
       else
         item_r = item
       end
+
       local chardata = characters[item_r.char]
       d = chardata and chardata.d or nil
       if not d or d == 'nsm' then
@@ -292,6 +296,7 @@
 
     -- Force mathdir in math if ON (currently works as expected only
     -- with 'l')
+
     if inmath and d == 'on' then
       d = ('TRT' == tex.mathdir) and 'r' or 'l'
     end
@@ -307,10 +312,13 @@
       table.insert(nodes, {item, d, outer_first})
     end
 
+    node.set_attribute(item, ATDIR, 128)
     outer_first = nil
 
-  end
+    ::nextnode::
 
+  end -- for each node
+
   -- TODO -- repeated here in case EN/ET is the last node. Find a
   -- better way of doing things:
   if first_et then       -- dir may be nil here !
@@ -470,3 +478,12 @@
 
   return head
 end
+-- Make sure anything is marked as 'bidi done' (including nodes inserted
+-- after the babel algorithm).
+function Babel.unset_atdir(head)
+  local ATDIR = Babel.attr_dir
+  for item in node.traverse(head) do
+    node.set_attribute(item, ATDIR, 128)
+  end
+  return head
+end

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua	2024-08-18 19:49:14 UTC (rev 72061)
@@ -43,7 +43,6 @@
  {0x07C0, 0x085F, 'r'},
  {0x0860, 0x086F, 'al'},
  {0x08A0, 0x08FF, 'al'},
- {0xE000, 0xF8FF, 'on'}, -- PUA
  {0xFB1D, 0xFB4F, 'r'},
  {0xFB50, 0xFDFF, 'al'},
  {0xFE70, 0xFEFF, 'al'},
@@ -50,9 +49,7 @@
  {0x10800, 0x10C4F, 'r'},
  {0x1E800, 0x1E8DF, 'r'},
  {0x1E900, 0x1E95F, 'r'},
- {0x1F300, 0x1F9FF, 'on'},
- {0xF0000, 0xFFFFD, 'on'}, -- PUA
- {0x100000, 0x10FFFD, 'on'} -- PUA
+ {0x1F300, 0x1F9FF, 'on'}
 }
 
 Babel.characters = {

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.def	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def	2024-08-18 19:49:14 UTC (rev 72061)
@@ -40,7 +40,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{babel.def}[2024/06/26 v24.7 Babel common definitions]
+\ProvidesFile{babel.def}[2024/08/18 v24.8 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.7}
-\def\bbl at date{2024/06/26}
+\def\bbl at version{24.8}
+\def\bbl at date{2024/08/18}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi
@@ -928,6 +928,9 @@
     \BabelText{#2}% Still in vertical mode!
     {\par}%
   \endgroup}
+\providecommand\BabelWrapText[1]{%
+   \def\bbl at tempa{\def\BabelText####1}%
+   \expandafter\bbl at tempa\expandafter{\BabelText{#1}}}
 \def\foreign at language#1{%
   % set name
   \edef\languagename{#1}%

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2024-08-18 19:49:14 UTC (rev 72061)
@@ -34,7 +34,7 @@
 %%
 
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2024/06/26 v24.7 The Babel package]
+\ProvidesPackage{babel}[2024/08/18 v24.8 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.7}
-\def\bbl at date{2024/06/26}
+\def\bbl at version{24.8}
+\def\bbl at date{2024/08/18}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi
@@ -826,6 +826,9 @@
     \BabelText{#2}% Still in vertical mode!
     {\par}%
   \endgroup}
+\providecommand\BabelWrapText[1]{%
+   \def\bbl at tempa{\def\BabelText####1}%
+   \expandafter\bbl at tempa\expandafter{\BabelText{#1}}}
 \def\foreign at language#1{%
   % set name
   \edef\languagename{#1}%
@@ -4080,11 +4083,10 @@
     \let\bbl at textdir@i\@gobbletwo
     \let\bbl at xebidipar\@empty
     \AddBabelHook{bidi}{foreign}{%
-      \def\bbl at tempa{\def\BabelText####1}%
       \ifcase\bbl at thetextdir
-        \expandafter\bbl at tempa\expandafter{\BabelText{\LR{##1}}}%
+        \BabelWrapText{\LR{##1}}%
       \else
-        \expandafter\bbl at tempa\expandafter{\BabelText{\RL{##1}}}%
+        \BabelWrapText{\RL{##1}}%
       \fi}
     \def\bbl at pardir#1{\ifcase#1\relax\setLR\else\setRL\fi}
   \fi

Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2024-08-18 19:49:14 UTC (rev 72061)
@@ -38,10 +38,10 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{hyphen.cfg}[2024/06/26 v24.7 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2024/08/18 v24.8 Babel hyphens]
 \xdef\bbl at format{\jobname}
-\def\bbl at version{24.7}
-\def\bbl at date{2024/06/26}
+\def\bbl at version{24.8}
+\def\bbl at date{2024/08/18}
 \ifx\AtBeginDocument\@undefined
   \def\@empty{}
 \fi

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ccp/babel-ccp.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ccp/babel-ccp.ini	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ccp/babel-ccp.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -4,11 +4,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.0
-date = 2023-12-09
+version = 1.1
+date = 2024-08-11
 name.local = 𑄌𑄋𑄴𑄟𑄳𑄦
 name.english = Chakma
 name.babel = chakma
@@ -146,8 +147,6 @@
 
 [characters]
 ranges = 	11100..1114F
-
-[characters]
 delimiters.quotes = 
 auxiliary = 
 exemplarCharacters = [𑄀 𑄁 𑄂 𑄃 𑄄 𑄅 𑄆 𑄇 𑄈 𑄉 𑄊 𑄋 𑄌 𑄍 𑄎 𑄏 𑄐 𑄑 𑄒 𑄓 𑄔 𑄕 𑄖 𑄗 𑄘 𑄙 𑄚 𑄛 𑄜 𑄝 𑄞 𑄟 𑄠 𑄡 𑄢 𑄣 𑄤 𑄥 𑄦 𑄧 𑄨 𑄩 𑄪 𑄫 𑄬 𑄭 𑄮 𑄯 𑄰 𑄱 𑄲 𑄳 𑄴]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ckb/babel-ckb-Latn.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ckb/babel-ckb-Latn.ini	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ckb/babel-ckb-Latn.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -8,11 +8,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.5
-date = 2022-12-08
+version = 1.6
+date = 2024-08-11
 name.local = Kurdîy nawendî
 name.english = Central Kurdish
 name.babel = sorani centralkurdish-latin
@@ -66,18 +67,6 @@
 months.wide.10 = Tişrînî Yekem
 months.wide.11 = Tişrînî Dûhem
 months.wide.12 = Kanûnî Dûhem
-months.wide.1  = 
-months.wide.2  = 
-months.wide.3  = 
-months.wide.4  = 
-months.wide.5  = 
-months.wide.6  = 
-months.wide.7  = 
-months.wide.8  = 
-months.wide.9  = 
-months.wide.10 = 
-months.wide.11 = 
-months.wide.12 = 
 months.narrow.1 = 
 months.narrow.2 = 
 months.narrow.3 = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/cu/babel-cu-Cyrs.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/cu/babel-cu-Cyrs.ini	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/cu/babel-cu-Cyrs.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -6,11 +6,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.4
-date = 2022-12-08
+version = 1.5
+date = 2024-08-11
 name.local = словѣ́ньскъ ѩꙁꙑ́къ
 name.english = Church Slavic
 name.babel = churchslavic-oldcyrillic
@@ -36,7 +37,6 @@
 listfigure = Надписа́нїе и҆з̾ѡбраже́нїй
 listtable = Надписа́нїе табли́цъ
 index = Предмѣ́тный ᲂу҆каза́тель
-author = И҆менно́й ᲂу҆каза́тель
 figure = И҆з̾ѡбраже́нїе
 table = Табли́ца
 part = Ча́сть

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/he/babel-he.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/he/babel-he.ini	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/he/babel-he.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -6,11 +6,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.10
-date = 2023-08-31
+version = 1.11
+date = 2024-08-11
 name.local = עברית
 name.english = Hebrew
 name.babel = hebrew
@@ -47,7 +48,7 @@
 page = עמוד
 see = ראה
 also = ראה גם
-proof = הוכחה}
+proof = הוכחה
 glossary = מילון מונחים
 
 [captions.licr]

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-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko-Hani.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -6,11 +6,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.5
-date = 2024-04-18
+version = 1.6
+date = 2024-08-11
 name.local = 한국어
 name.english = Korean
 name.babel = korean-han korean-hani
@@ -56,9 +57,6 @@
 also = 
 proof = 證明
 glossary = 語 彙
-section.template = [[presection]] [section] [[postsection]]
-presection = 第
-postsection = 節
 
 [captions.licr]
 preface = 

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-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -6,11 +6,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-04-18
+version = 1.14
+date = 2024-08-11
 name.local = 한국어
 name.english = Korean
 name.babel = korean
@@ -57,9 +58,6 @@
 also = 
 proof = 증명
 glossary = 용어집
-section.template = [[presection]] [section] [[postsection]]
-presection = 제
-postsection = 절
 
 [captions.licr]
 preface = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/mk/babel-mk.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/mk/babel-mk.ini	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/mk/babel-mk.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -8,11 +8,12 @@
 ;   http://unicode.org/copyright.html
 ; * Some typos fixed by Stojan Trajanovski
 ; * Some typos fixed by Dario Gjorgjevski
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.6
-date = 2022-09-07
+version = 1.7
+date = 2024-08-11
 name.local = македонски
 name.english = Macedonian
 name.babel = macedonian
@@ -49,7 +50,7 @@
 see = види
 also = види исто така
 proof = доказ
-glossaryname = Речник
+glossary = Речник
 
 [captions.licr]
 preface = \CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ro/babel-ro.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ro/babel-ro.ini	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ro/babel-ro.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -6,11 +6,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.4
-date = 2022-10-12
+version = 1.5
+date = 2024-08-11
 name.local = română
 name.english = Romanian
 name.babel = romanian
@@ -36,7 +37,7 @@
 contents = Cuprins
 listfigure = Listă de figuri
 listtable = Listă de tabele
-index = Index
+index = Glosar
 figure = Figura
 table = Tabela
 part = Partea

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sl/babel-sl.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sl/babel-sl.ini	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sl/babel-sl.ini	2024-08-18 19:49:14 UTC (rev 72061)
@@ -6,11 +6,12 @@
 ; * Common Locale Data Repository (license Unicode):
 ;   http://cldr.unicode.org/
 ;   http://unicode.org/copyright.html
+; With some cleaning up by Stephen Huan (@stephen-huan)
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2022-10-12
+version = 1.4
+date = 2024-08-11
 name.local = slovenščina
 name.english = Slovenian
 name.babel = slovene slovenian
@@ -47,7 +48,7 @@
 see = glej
 also = glej tudi
 proof = Dokaz
-glossary = Glossary
+glossary = Slovar
 
 [captions.licr]
 preface = Predgovor

Modified: trunk/Master/texmf-dist/tex/generic/babel/luababel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2024-08-18 19:49:14 UTC (rev 72061)
@@ -1392,7 +1392,7 @@
       return head
     end
     %
-    function Babel.pre_otfload_h(head, gc, sz, pt, dir)
+    function Babel.pre_otfload_h(head, gc, sz, pt, dir) %%% TODO
       if Babel.numbers and Babel.digits_mapped then
         head = Babel.numbers(head)
       end
@@ -1426,6 +1426,9 @@
       require('babel-bidi-basic.lua')
     \or
       require('babel-bidi-basic-r.lua')
+      table.insert(Babel.ranges, {0xE000,   0xF8FF, 'on'})
+      table.insert(Babel.ranges, {0xF0000,  0xFFFFD, 'on'})
+      table.insert(Babel.ranges, {0x100000, 0x10FFFD, 'on'})
     \fi}
   \newattribute\bbl at attr@dir
   \directlua{ Babel.attr_dir = luatexbase.registernumber'bbl at attr@dir' }
@@ -1493,6 +1496,12 @@
       end
       luatexbase.add_to_callback("hpack_filter", Babel.math_box_dir,
         "Babel.math_box_dir", 0)
+      if Babel.unset_atdir then
+        luatexbase.add_to_callback("pre_linebreak_filter", Babel.unset_atdir,
+          "Babel.unset_atdir")
+        luatexbase.add_to_callback("hpack_filter", Babel.unset_atdir,
+          "Babel.unset_atdir")
+      end
   }}%
 \fi
 \DeclareRobustCommand\localebox[1]{%
@@ -1702,7 +1711,9 @@
     {\chardef\bbl at tabular@mode\z@}%
     {\chardef\bbl at tabular@mode\@ne}}% Mixed, with LTR cols
 \ifnum\bbl at bidimode>\@ne % Any lua bidi= except default=1
-  \ifcase\bbl at tabular@mode\or % 1
+  % Redefine: vrules mess up dirs:
+  \def\@arstrut{\relax\copy\@arstrutbox}%
+  \ifcase\bbl at tabular@mode\or % 1 = Mixed - default
     \let\bbl at parabefore\relax
     \AddToHook{para/before}{\bbl at parabefore}
     \AtBeginDocument{%
@@ -1727,7 +1738,7 @@
                   {\\\do at row@strut\<fi>}{\\\do at row@strut\<fi>\egroup}}}%
              {}}%
     \fi}%
-  \or % 2
+  \or % 2 = All RTL - tabular
     \let\bbl at parabefore\relax
     \AddToHook{para/before}{\bbl at parabefore}%
     \AtBeginDocument{%
@@ -1753,9 +1764,9 @@
 \ifnum\bbl at bidimode>\z@ % Any bidi=
   \def\bbl at nextfake#1{%  non-local changes, use always inside a group!
     \bbl at exp{%
-      \def\\\bbl at insidemath{0}%
       \mathdir\the\bodydir
       #1%              Once entered in math, set boxes to restore values
+      \def\\\bbl at insidemath{0}%
       \<ifmmode>%
         \everyvbox{%
           \the\everyvbox

Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2024-08-18 19:48:26 UTC (rev 72060)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2024-08-18 19:49:14 UTC (rev 72061)
@@ -33,7 +33,7 @@
 %% extension |.ins|) which are part of the distribution.
 %%
 
-\ProvidesLanguage{nil}[2024/06/26 v24.7 Nil language]
+\ProvidesLanguage{nil}[2024/08/18 v24.8 Nil language]
 \LdfInit{nil}{datenil}
 \ifx\l at nil\@undefined
   \newlanguage\l at nil



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