texlive[47576] Master/texmf-dist: babel (2may18)

commits+karl at tug.org commits+karl at tug.org
Wed May 2 22:51:00 CEST 2018


Revision: 47576
          http://tug.org/svn/texlive?view=revision&revision=47576
Author:   karl
Date:     2018-05-02 22:50:59 +0200 (Wed, 02 May 2018)
Log Message:
-----------
babel (2may18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/babel/README.md
    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/babel20180419.dtx
    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.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/nil.ldf
    trunk/Master/texmf-dist/tex/generic/babel/switch.def

Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md	2018-05-02 20:50:59 UTC (rev 47576)
@@ -1,4 +1,4 @@
-## Babel 3.19
+## Babel 3.20
 
 This package manages culturally-determined typographical (and other)
 rules, and hyphenation patterns for a wide range of languages.  Many
@@ -64,6 +64,16 @@
 ### New
 
 ```
+3.20   - ini files with the field digits.native define
+         \<language>digits and \<language>counters. \arabic can be
+         redefined to use native digits.
+       - Fix - mapfont in bidi=basic didn't take into account combining
+         marks (eg, Arabic vowels).
+       - Fix - A bug introduced in 3.19, which sometimes reversed text 
+         in \hbox'es.
+       - Fix for luatex 1.07 - An internal change in luatex broke
+         bidi at 'automatic' hyphens.
+       - Fix for latest latex - babel.ins raised an error.
 3.19   - Most changes are for luatex:
          . The main new feature is a bidi method for both implicit L in
            R text, and implicit R in L text, with the possibility of
@@ -128,5 +138,5 @@
 ```
 
 Javier Bezos
-2018/04/25
+2018/05/02
 

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	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2018-05-02 20:50:59 UTC (rev 47576)
@@ -31,7 +31,7 @@
 %
 % \iffalse
 %<*filedriver>
-\ProvidesFile{babel.dtx}[2018/04/25 v3.19 The Babel package]
+\ProvidesFile{babel.dtx}[2018/05/02 v3.20 The Babel package]
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
 \usepackage{fontspec}
@@ -260,7 +260,9 @@
   Here is a simple full example for “traditional” \TeX{} engines
   (see below for \xetex{} and \luatex{}). The packages |fontenc| and
   |inputenc| do not belong to \babel, but they are included in the
-  example because typically you will need them:
+  example because typically you will need them (however, the package
+  \textsf{inputenc} may be omitted with \LaTeX{} $\ge$ 2018-04-01 if
+  the encoding is UTF-8):
 \begin{verbatim}
 \documentclass{article}
 
@@ -375,8 +377,9 @@
 |\foreignlanguage| is for chunks of text inside paragraphs.
 
 \begin{example}
-A full bilingual document follows. The main language is |french|,
-which is activated when the document begins.
+A full bilingual document follows. The main language is |french|, which
+is activated when the document begins. The package \textsf{inputenc}
+may be omitted with \LaTeX{} $\ge$ 2018-04-01 if the encoding is UTF-8.
 \begin{verbatim}
 \documentclass{article}
 
@@ -1879,8 +1882,8 @@
   \renewcommand\contentsname{Foo}%
 }
 \end{verbatim}
- As of 3.15, there is no need to hide spaces with \texttt{\%}
-(\babel{} removes them), but it is advisable to do it.
+As of 3.15, there is no need to hide spaces with \texttt{\%%
+} (\babel{} removes them), but it is advisable to do it.
 \item The new way, which is found in |bulgarian|, |azerbaijani|,
   |spanish|, |french|, |turkish|, |icelandic|, |vietnamese| and a few
   more, as well as in languages created with |\babelprovide| and its
@@ -1909,7 +1912,7 @@
 fits your needs? You may then define quickly a language with the
 help of the following macro in the preamble.
 
-\Describe\babelprovide{\oarg{options}\marg{language-name}}
+\Describe{\babelprovide}{\oarg{options}\marg{language-name}}
 
 Defines the internal structure of the language with some defaults: the
 hyphen rules, if not available, are set to the current ones, left and
@@ -2012,9 +2015,32 @@
   |ini|-based languages).
 \end{note}
 
+\subsection{Digits}
+
+\New{3.20} A few |ini| files define a field named |digits.native|. When
+it is present, two macros are created: |\<language>digits| and
+|\<language>counter| (only \xetex{} and \luatex{}). With the first, a
+string of ‘Latin’ digits are converted to the native digits of that
+language; the second takes a counter name as argument. With option
+|maparabic| in |\babelprovide|, |\arabic| is redefined to produce the
+native digits (this is done \textit{globally}, to avoid inconsistencies
+in, for example, page numbering).
+
+For example:
+\begin{verbatim}
+\babelprovide[import=te]{telugu}  % Telugu better with XeTeX
+  % Or also, if you want:
+  % \babelprovide[import=te, maparabic]{telugu}
+\babelfont{rm}{Gautami}
+\begin{document}
+\telugudigits{1234}
+\telugucounter{section}
+\end{document}
+\end{verbatim}
+
 \subsection{Getting the current language name}
 
-\Describe\languagename{}
+\Describe{\languagename}{}
 The control sequence |\languagename| contains the name of the
 current language. 
 
@@ -2024,7 +2050,7 @@
   Heiko Oberdiek.
 \end{warning}
 
-\Describe\iflanguage{\marg{language}\marg{true}\marg{false}}
+\Describe{\iflanguage}{\marg{language}\marg{true}\marg{false}}
 
 If more than one language is used, it might be necessary to know which
 language is active at a specific time. This can be checked by a call
@@ -2042,7 +2068,7 @@
 
 \subsection{Hyphenation tools}
 
-\Describe\babelhyphen{%
+\Describe{\babelhyphen}{%
   \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}\marg{type}}
 \DescribeOther\babelhyphen{%
   \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}\marg{text}}
@@ -3737,8 +3763,8 @@
 %    little bit of literate programming.
 %
 %    \begin{macrocode}
-%<<version=3.19>>
-%<<date=2018/04/25>>
+%<<version=3.20>>
+%<<date=2018/05/02>>
 %    \end{macrocode}
 %
 % \section{Tools}
@@ -4205,24 +4231,6 @@
   \bbl at languages
 \fi
 \ifodd\bbl at engine
-  \def\bbl at loadbidi#1{%
-    \let\bbl at beforeforeign\leavevmode
-    \AtEndOfPackage{\EnableBabelHook{babel-bidi}}%
-    \RequirePackage{luatexbase}%
-    \directlua{
-      require('babel-bidi.lua')
-      require('babel-bidi-#1.lua')
-      luatexbase.add_to_callback('pre_linebreak_filter',
-        Babel.pre_otfload_v,
-        'Babel.pre_otfload_v',
-        luatexbase.priority_in_callback('pre_linebreak_filter',
-          'luaotfload.node_processor') or nil)
-      luatexbase.add_to_callback('hpack_filter',
-        Babel.pre_otfload_h,
-        'Babel.pre_otfload_h',
-        luatexbase.priority_in_callback('hpack_filter',
-          'luaotfload.node_processor') or nil)
-          }}
   \let\bbl at tempa\relax
   \@ifpackagewith{babel}{bidi=basic}%
     {\def\bbl at tempa{basic}}%
@@ -7613,6 +7621,8 @@
 %   the language is selected}
 % \changes{babel~3.19}{2018/04/23}{New option - mapfont. Currently
 %   only with direction}
+% \changes{babel~3.20}{2018/05/01}{Handle native digits (TeX level).
+%   New option - maparabic.}
 %
 %    \begin{macrocode}
 \bbl at trace{Creating languages and reading ini files}
@@ -7627,6 +7637,7 @@
   \let\bbl at KVP@dir\@nil
   \let\bbl at KVP@hyphenrules\@nil
   \let\bbl at KVP@mapfont\@nil
+  \let\bbl at KVP@maparabic\@nil
   \bbl at forkv{#1}{\bbl at csarg\def{KVP@##1}{##2}}%  TODO - error handling
   \ifx\bbl at KVP@captions\@nil
     \let\bbl at KVP@captions\bbl at KVP@import
@@ -7676,7 +7687,48 @@
     \fi
     \bbl at exp{\\\bbl at add\\\bbl at mapselect{\\\bbl at mapdir{\languagename}}}%
   \fi
+  \ifcase\bbl at engine\else
+    \bbl at ifunset{bbl at dgnat@\languagename}{}%
+      {\expandafter\ifx\csname bbl at dgnat@\languagename\endcsname\@empty\else
+        \expandafter\expandafter\expandafter
+        \bbl at setdigits\csname bbl at dgnat@\languagename\endcsname
+        \ifx\bbl at KVP@maparabic\@nil\else
+          \expandafter\let\expandafter\@arabic
+            \csname bbl at counter@\languagename\endcsname
+        \fi
+      \fi}%
+  \fi
   \let\languagename\bbl at savelangname}
+\def\bbl at setdigits#1#2#3#4#5{%
+  \bbl at exp{%
+    \def\<\languagename digits>####1{%       ie, \langdigits
+      \<bbl at digits@\languagename>####1\\\@nil}%
+    \def\<\languagename counter>####1{%      ie, \langcounter
+      \\\expandafter\<bbl at counter@\languagename>%
+      \\\csname c@####1\endcsname}%
+    \def\<bbl at counter@\languagename>####1{% ie, \bbl at counter@lang
+      \\\expandafter\<bbl at digits@\languagename>%
+      \\\number####1\\\@nil}}%
+  \def\bbl at tempa##1##2##3##4##5{%
+    \bbl at exp{%    Wow, quite a lot of hashes! :-(
+      \def\<bbl at digits@\languagename>########1{%
+       \\\ifx########1\\\@nil              % ie, \bbl at digits@lang
+       \\\else
+         \\\ifx0########1#1%
+         \\\else\\\ifx1########1#2%
+         \\\else\\\ifx2########1#3%
+         \\\else\\\ifx3########1#4%
+         \\\else\\\ifx4########1#5%
+         \\\else\\\ifx5########1##1%
+         \\\else\\\ifx6########1##2%
+         \\\else\\\ifx7########1##3%
+         \\\else\\\ifx8########1##4%
+         \\\else\\\ifx9########1##5%
+         \\\else########1%
+         \\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi
+         \\\expandafter\<bbl at digits@\languagename>%
+       \\\fi}}}%
+  \bbl at tempa}
 %    \end{macrocode}
 %
 % Depending on whether or not the language exists, we define two macros.
@@ -7858,10 +7910,12 @@
   \bbl at exportkey{sbcp}{identification.script.tag.bcp47}{}%
   \bbl at exportkey{sotf}{identification.script.tag.opentype}{DFLT}}
 \let\bbl at secline@typography\bbl at inikv
+\let\bbl at secline@numbers\bbl at inikv
 \def\bbl at after@ini{%
   \bbl at exportkey{lfthm}{typography.lefthyphenmin}{2}%
   \bbl at exportkey{rgthm}{typography.righthyphenmin}{3}%
   \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
+  \bbl at exportkey{dgnat}{numbers.digits.native}{}%
   \bbl at xin@{0.9}{\@nameuse{bbl@@kv at identification.version}}%
   \ifin@
     \bbl at warning{%
@@ -17594,6 +17648,9 @@
 %
 % TODO: math mode (as weak L?)
 %
+% \changes{babel~3.20}{2018/05/01}{Adapted to exhyphens in luatex >= 
+%   1.07. Fix - now attr at dir is mod 3.}
+%
 %    \begin{macrocode}
 %<*basic-r>
 Babel = Babel or {}
@@ -17655,15 +17712,22 @@
   for item in node.traverse(head) do
 
     -- three cases: glyph, dir, otherwise
-    if item.id == node.id'glyph' then
+    if item.id == node.id'glyph'
+      or (item.id == 7 and item.subtype == 2) then
 
-      local chardata = characters[item.char]
+      local itemchar
+      if item.id == 7 and item.subtype == 2 then
+        itemchar = item.replace.char
+      else
+        itemchar = item.char
+      end
+      local chardata = characters[itemchar]
       dir = chardata and chardata.d or nil
       if not dir then
         for nn, et in ipairs(ranges) do
-          if item.char < et[1] then
+          if itemchar < et[1] then
             break
-          elseif item.char <= et[2] then
+          elseif itemchar <= et[2] then
             dir = et[3]
             break
           end
@@ -17683,7 +17747,7 @@
         attr_dir = 0
         for at in node.traverse(item.attr) do
           if at.number == luatexbase.registernumber'bbl at attr@dir' then
-            attr_dir = at.value
+            attr_dir = at.value % 3
           end
         end
         if attr_dir == 1 then
@@ -17856,6 +17920,8 @@
 %    \end{macrocode}
 %
 % And here the Lua code for |bidi=basic|:
+% \changes{babel~3.20}{2018/05/01}{Adapted to exhyphens in luatex >= 
+%   1.07. Fix - nsm in mapfont (eg, Arabic vowels)}
 %
 %    \begin{macrocode}
 %<*basic>
@@ -17959,28 +18025,40 @@
     -- current one is not added until we start processing the neutrals.
 
     -- three cases: glyph, dir, otherwise  
-    if item.id == GLYPH then
+    if item.id == GLYPH 
+       or (item.id == 7 and item.subtype == 2) then
 
-      local chardata = characters[item.char]
+      local d_font = nil
+      local item_r
+      if item.id == 7 and item.subtype == 2 then
+        item_r = item.replace    -- automatic discs have just 1 glyph
+      else
+        item_r = item
+      end
+      local chardata = characters[item_r.char]
       d = chardata and chardata.d or nil
-      if not d then
+      if not d or d == 'nsm' then
         for nn, et in ipairs(ranges) do
-          if item.char < et[1] then
+          if item_r.char < et[1] then
             break
-          elseif item.char <= et[2] then
-            d = et[3]
+          elseif item_r.char <= et[2] then
+            if not d then d = et[3] 
+            elseif d == 'nsm' then d_font = et[3]
+            end
             break
           end
         end
       end
       d = d or 'l'
+      d_font = d_font or d
 
-      local temp = (d == 'l' and 0) or
-                   (d == 'r' and 1) or
-                   (d == 'al' and 2) or
-                   (d == 'an' and 2) or nil
-      if temp and fontmap and fontmap[temp][item.font] then
-        item.font = fontmap[temp][item.font]
+      d_font = (d_font == 'l' and 0) or
+               (d_font == 'nsm' and 0) or
+               (d_font == 'r' and 1) or
+               (d_font == 'al' and 2) or
+               (d_font == 'an' and 2) or nil
+      if d_font and fontmap and fontmap[d_font][item_r.font] then
+        item_r.font = fontmap[d_font][item_r.font]
       end
 
       if new_d then

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins	2018-05-02 20:50:59 UTC (rev 47576)
@@ -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{2018/04/25}
+\def\filedate{2018/05/02}
 \def\batchfile{babel.ins}
 \input docstrip.tex
 
@@ -122,6 +122,8 @@
 
 \usepreamble\mainpreamble
 
+\csname UseRawInputEncoding\endcsname
+
 % Dummy, it just read "modules" to be used when generating
 % the actual file. There must be a better way.
 \savingtrue

Modified: trunk/Master/texmf-dist/source/latex/babel/babel20180419.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel20180419.dtx	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/source/latex/babel/babel20180419.dtx	2018-05-02 20:50:59 UTC (rev 47576)
@@ -31,7 +31,7 @@
 %
 % \iffalse
 %<*filedriver>
-\ProvidesFile{babel.dtx}[2018/04/25 v3.19 The Babel package]
+\ProvidesFile{babel.dtx}[2018/05/02 v3.20 The Babel package]
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
 \usepackage{fontspec}
@@ -3705,8 +3705,8 @@
 %    little bit of literate programming.
 %
 %    \begin{macrocode}
-%<<version=3.19>>
-%<<date=2018/04/25>>
+%<<version=3.20>>
+%<<date=2018/05/02>>
 %    \end{macrocode}
 %
 % \section{Tools}

Modified: trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2018-05-02 20:50:59 UTC (rev 47576)
@@ -30,7 +30,7 @@
 %
 % \iffalse
 %<*dtx>
-\ProvidesFile{bbcompat.dtx}[2018/04/25 v3.19]
+\ProvidesFile{bbcompat.dtx}[2018/05/02 v3.20]
 %</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	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua	2018-05-02 20:50:59 UTC (rev 47576)
@@ -81,15 +81,22 @@
   for item in node.traverse(head) do
 
     -- three cases: glyph, dir, otherwise
-    if item.id == node.id'glyph' then
+    if item.id == node.id'glyph'
+      or (item.id == 7 and item.subtype == 2) then
 
-      local chardata = characters[item.char]
+      local itemchar
+      if item.id == 7 and item.subtype == 2 then
+        itemchar = item.replace.char
+      else
+        itemchar = item.char
+      end
+      local chardata = characters[itemchar]
       dir = chardata and chardata.d or nil
       if not dir then
         for nn, et in ipairs(ranges) do
-          if item.char < et[1] then
+          if itemchar < et[1] then
             break
-          elseif item.char <= et[2] then
+          elseif itemchar <= et[2] then
             dir = et[3]
             break
           end
@@ -100,7 +107,7 @@
         attr_dir = 0
         for at in node.traverse(item.attr) do
           if at.number == luatexbase.registernumber'bbl at attr@dir' then
-            attr_dir = at.value
+            attr_dir = at.value % 3
           end
         end
         if attr_dir == 1 then

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua	2018-05-02 20:50:59 UTC (rev 47576)
@@ -131,28 +131,40 @@
     -- current one is not added until we start processing the neutrals.
 
     -- three cases: glyph, dir, otherwise
-    if item.id == GLYPH then
+    if item.id == GLYPH
+       or (item.id == 7 and item.subtype == 2) then
 
-      local chardata = characters[item.char]
+      local d_font = nil
+      local item_r
+      if item.id == 7 and item.subtype == 2 then
+        item_r = item.replace    -- automatic discs have just 1 glyph
+      else
+        item_r = item
+      end
+      local chardata = characters[item_r.char]
       d = chardata and chardata.d or nil
-      if not d then
+      if not d or d == 'nsm' then
         for nn, et in ipairs(ranges) do
-          if item.char < et[1] then
+          if item_r.char < et[1] then
             break
-          elseif item.char <= et[2] then
-            d = et[3]
+          elseif item_r.char <= et[2] then
+            if not d then d = et[3]
+            elseif d == 'nsm' then d_font = et[3]
+            end
             break
           end
         end
       end
       d = d or 'l'
+      d_font = d_font or d
 
-      local temp = (d == 'l' and 0) or
-                   (d == 'r' and 1) or
-                   (d == 'al' and 2) or
-                   (d == 'an' and 2) or nil
-      if temp and fontmap and fontmap[temp][item.font] then
-        item.font = fontmap[temp][item.font]
+      d_font = (d_font == 'l' and 0) or
+               (d_font == 'nsm' and 0) or
+               (d_font == 'r' and 1) or
+               (d_font == 'al' and 2) or
+               (d_font == 'an' and 2) or nil
+      if d_font and fontmap and fontmap[d_font][item_r.font] then
+        item_r.font = fontmap[d_font][item_r.font]
       end
 
       if new_d then

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.def	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def	2018-05-02 20:50:59 UTC (rev 47576)
@@ -40,7 +40,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{babel.def}[2018/04/25 3.19 Babel common definitions]
+\ProvidesFile{babel.def}[2018/05/02 3.20 Babel common definitions]
 \ifx\AtBeginDocument\@undefined
   \input plain.def\relax
 \fi
@@ -1311,6 +1311,7 @@
   \let\bbl at KVP@dir\@nil
   \let\bbl at KVP@hyphenrules\@nil
   \let\bbl at KVP@mapfont\@nil
+  \let\bbl at KVP@maparabic\@nil
   \bbl at forkv{#1}{\bbl at csarg\def{KVP@##1}{##2}}%  TODO - error handling
   \ifx\bbl at KVP@captions\@nil
     \let\bbl at KVP@captions\bbl at KVP@import
@@ -1360,7 +1361,48 @@
     \fi
     \bbl at exp{\\\bbl at add\\\bbl at mapselect{\\\bbl at mapdir{\languagename}}}%
   \fi
+  \ifcase\bbl at engine\else
+    \bbl at ifunset{bbl at dgnat@\languagename}{}%
+      {\expandafter\ifx\csname bbl at dgnat@\languagename\endcsname\@empty\else
+        \expandafter\expandafter\expandafter
+        \bbl at setdigits\csname bbl at dgnat@\languagename\endcsname
+        \ifx\bbl at KVP@maparabic\@nil\else
+          \expandafter\let\expandafter\@arabic
+            \csname bbl at counter@\languagename\endcsname
+        \fi
+      \fi}%
+  \fi
   \let\languagename\bbl at savelangname}
+\def\bbl at setdigits#1#2#3#4#5{%
+  \bbl at exp{%
+    \def\<\languagename digits>####1{%       ie, \langdigits
+      \<bbl at digits@\languagename>####1\\\@nil}%
+    \def\<\languagename counter>####1{%      ie, \langcounter
+      \\\expandafter\<bbl at counter@\languagename>%
+      \\\csname c@####1\endcsname}%
+    \def\<bbl at counter@\languagename>####1{% ie, \bbl at counter@lang
+      \\\expandafter\<bbl at digits@\languagename>%
+      \\\number####1\\\@nil}}%
+  \def\bbl at tempa##1##2##3##4##5{%
+    \bbl at exp{%    Wow, quite a lot of hashes! :-(
+      \def\<bbl at digits@\languagename>########1{%
+       \\\ifx########1\\\@nil              % ie, \bbl at digits@lang
+       \\\else
+         \\\ifx0########1#1%
+         \\\else\\\ifx1########1#2%
+         \\\else\\\ifx2########1#3%
+         \\\else\\\ifx3########1#4%
+         \\\else\\\ifx4########1#5%
+         \\\else\\\ifx5########1##1%
+         \\\else\\\ifx6########1##2%
+         \\\else\\\ifx7########1##3%
+         \\\else\\\ifx8########1##4%
+         \\\else\\\ifx9########1##5%
+         \\\else########1%
+         \\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi
+         \\\expandafter\<bbl at digits@\languagename>%
+       \\\fi}}}%
+  \bbl at tempa}
 \def\bbl at provide@new#1{%
   \@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands
   \@namedef{extras#1}{}%
@@ -1495,10 +1537,12 @@
   \bbl at exportkey{sbcp}{identification.script.tag.bcp47}{}%
   \bbl at exportkey{sotf}{identification.script.tag.opentype}{DFLT}}
 \let\bbl at secline@typography\bbl at inikv
+\let\bbl at secline@numbers\bbl at inikv
 \def\bbl at after@ini{%
   \bbl at exportkey{lfthm}{typography.lefthyphenmin}{2}%
   \bbl at exportkey{rgthm}{typography.righthyphenmin}{3}%
   \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
+  \bbl at exportkey{dgnat}{numbers.digits.native}{}%
   \bbl at xin@{0.9}{\@nameuse{bbl@@kv at identification.version}}%
   \ifin@
     \bbl at warning{%

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2018-05-02 20:50:59 UTC (rev 47576)
@@ -32,7 +32,7 @@
 %% extension |.ins|) which are part of the distribution.
 %%
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2018/04/25 3.19 The Babel package]
+\ProvidesPackage{babel}[2018/05/02 3.20 The Babel package]
 \@ifpackagewith{babel}{debug}
   {\providecommand\bbl at trace[1]{\message{^^J[ #1 ]}}%
    \let\bbl at debug\@firstofone}
@@ -186,24 +186,6 @@
   \bbl at languages
 \fi
 \ifodd\bbl at engine
-  \def\bbl at loadbidi#1{%
-    \let\bbl at beforeforeign\leavevmode
-    \AtEndOfPackage{\EnableBabelHook{babel-bidi}}%
-    \RequirePackage{luatexbase}%
-    \directlua{
-      require('babel-bidi.lua')
-      require('babel-bidi-#1.lua')
-      luatexbase.add_to_callback('pre_linebreak_filter',
-        Babel.pre_otfload_v,
-        'Babel.pre_otfload_v',
-        luatexbase.priority_in_callback('pre_linebreak_filter',
-          'luaotfload.node_processor') or nil)
-      luatexbase.add_to_callback('hpack_filter',
-        Babel.pre_otfload_h,
-        'Babel.pre_otfload_h',
-        luatexbase.priority_in_callback('hpack_filter',
-          'luaotfload.node_processor') or nil)
-          }}
   \let\bbl at tempa\relax
   \@ifpackagewith{babel}{bidi=basic}%
     {\def\bbl at tempa{basic}}%

Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2018-05-02 20:50:59 UTC (rev 47576)
@@ -36,7 +36,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{hyphen.cfg}[2018/04/25 3.19 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2018/05/02 3.20 Babel hyphens]
 \xdef\bbl at format{\jobname}
 \ifx\AtBeginDocument\@undefined
   \def\@empty{}
@@ -67,7 +67,7 @@
   \countdef\last at language=19
   \def\addlanguage{\alloc at 9\language\chardef\@cclvi}
 \fi
-\toks8{Babel <3.19> and hyphenation patterns for }%
+\toks8{Babel <3.20> and hyphenation patterns for }%
 \def\process at line#1#2 #3 #4 {%
   \ifx=#1%
     \process at synonym{#2}%

Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2018-05-02 20:50:59 UTC (rev 47576)
@@ -31,7 +31,7 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension |.ins|) which are part of the distribution.
 %%
-\ProvidesLanguage{nil}[2018/04/25 3.19 Nil language]
+\ProvidesLanguage{nil}[2018/05/02 3.20 Nil language]
 \LdfInit{nil}{datenil}
 \ifx\l at nohyphenation\@undefined
    \@nopatterns{nil}

Modified: trunk/Master/texmf-dist/tex/generic/babel/switch.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/switch.def	2018-05-02 20:50:01 UTC (rev 47575)
+++ trunk/Master/texmf-dist/tex/generic/babel/switch.def	2018-05-02 20:50:59 UTC (rev 47576)
@@ -36,7 +36,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{switch.def}[2018/04/25 3.19 Babel switching mechanism]
+\ProvidesFile{switch.def}[2018/05/02 3.20 Babel switching mechanism]
 \ifx\AtBeginDocument\@undefined
   \input plain.def\relax
 \fi
@@ -57,8 +57,8 @@
   \countdef\last at language=19
   \def\addlanguage{\alloc at 9\language\chardef\@cclvi}
 \fi
-\def\bbl at version{3.19}
-\def\bbl at date{2018/04/25}
+\def\bbl at version{3.20}
+\def\bbl at date{2018/05/02}
 \def\adddialect#1#2{%
   \global\chardef#1#2\relax
   \bbl at usehooks{adddialect}{{#1}{#2}}%



More information about the tex-live-commits mailing list