summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua23
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def70
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty192
-rw-r--r--Master/texmf-dist/tex/generic/babel/errbabel.def221
-rw-r--r--Master/texmf-dist/tex/generic/babel/hyphen.cfg8
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/el/babel-monotonicgreek.tex11
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/gd/babel-scottish.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/he/babel-hebrew.tex11
-rw-r--r--Master/texmf-dist/tex/generic/babel/luababel.def31
-rw-r--r--Master/texmf-dist/tex/generic/babel/nil.ldf2
-rw-r--r--Master/texmf-dist/tex/generic/babel/xebabel.def14
13 files changed, 355 insertions, 244 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
index 26f0fcf840c..4d0d19156f0 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
+++ b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
@@ -42,6 +42,13 @@ Babel.fontmap[0] = {} -- l
Babel.fontmap[1] = {} -- r
Babel.fontmap[2] = {} -- al/an
+-- To cancel mirroring. Also OML, OMS, U?
+Babel.symbol_fonts = Babel.symbol_fonts or {}
+Babel.symbol_fonts[font.id('tenln')] = true
+Babel.symbol_fonts[font.id('tenlnw')] = true
+Babel.symbol_fonts[font.id('tencirc')] = true
+Babel.symbol_fonts[font.id('tencircw')] = true
+
Babel.bidi_enabled = true
Babel.mirroring_enabled = true
@@ -85,6 +92,14 @@ local function insert_numeric(head, state)
return head, new_state
end
+local function glyph_not_symbol_font(node)
+ if node.id == GLYPH then
+ return not Babel.symbol_fonts[node.font]
+ else
+ return false
+ end
+end
+
-- TODO - \hbox with an explicit dir can lead to wrong results
-- <R \hbox dir TLT{<R>}> and <L \hbox dir TRT{<L>}>. A small attempt
-- was s made to improve the situation, but the problem is the 3-dir
@@ -140,7 +155,7 @@ function Babel.bidi(head, ispar, hdir)
-- current one is not added until we start processing the neutrals.
-- three cases: glyph, dir, otherwise
- if item.id == GLYPH
+ if glyph_not_symbol_font(item)
or (item.id == 7 and item.subtype == 2) then
local d_font = nil
@@ -269,7 +284,7 @@ function Babel.bidi(head, ispar, hdir)
temp = 'on' -- W6
end
for e = first_et, #nodes do
- if nodes[e][1].id == GLYPH then nodes[e][2] = temp end
+ if glyph_not_symbol_font(nodes[e][1]) then nodes[e][2] = temp end
end
first_et = nil
has_en = false
@@ -309,7 +324,7 @@ function Babel.bidi(head, ispar, hdir)
temp = 'on' -- W6
end
for e = first_et, #nodes do
- if nodes[e][1].id == GLYPH then nodes[e][2] = temp end
+ if glyph_not_symbol_font(nodes[e][1]) then nodes[e][2] = temp end
end
end
@@ -345,7 +360,7 @@ function Babel.bidi(head, ispar, hdir)
for r = first_on, q - 1 do
nodes[r][2] = temp
item = nodes[r][1] -- MIRRORING
- if Babel.mirroring_enabled and item.id == GLYPH
+ if Babel.mirroring_enabled and glyph_not_symbol_font(item)
and temp == 'r' and characters[item.char] then
local font_mode = ''
if item.font > 0 and font.fonts[item.font].properties then
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex
index 45789881a26..b769b5fcd11 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-islamic.tex
@@ -99,7 +99,7 @@
\ifnum#2>2014 \ifnum#2<2038
\bbl@afterfi\expandafter\@gobble
\fi\fi
- {\bbl@error{Year~out~of~range}{The~allowed~range~is~2014-2038}}%
+ {\bbl@error{year-out-range}{2014-2038}{}{}}%
\edef\bbl@tempd{\fp_eval:n{ % (Julian) day
\bbl@cs@jd{#2}{#3}{#4} + 0.5 - 2400000 #1}}%
\count@\@ne
diff --git a/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex b/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex
index 136b146c03e..b0f26920b0b 100644
--- a/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex
+++ b/Master/texmf-dist/tex/generic/babel/babel-ca-persian.tex
@@ -50,7 +50,7 @@
\ifnum\bbl@tempa>2012 \ifnum\bbl@tempa<2051
\bbl@afterfi\expandafter\@gobble
\fi\fi
- {\bbl@error{Year~out~of~range}{The~allowed~range~is~2013-2050}}%
+ {\bbl@error{year-out-range}{2013-2050}{}{}}%
\bbl@xin@{\bbl@tempa}{\bbl@cs@firstjal@xx}%
\ifin@\def\bbl@tempe{20}\else\def\bbl@tempe{21}\fi
\edef\bbl@tempc{\fp_eval:n{\bbl@cs@jd{\bbl@tempa}{#2}{#3}+.5}}% current
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 5bc8a3f3abf..3a1f99d2e7c 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -40,7 +40,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2024/01/07 v24.1 Babel common definitions]
+\ProvidesFile{babel.def}[2024/02/07 v24.2 Babel common definitions]
\ifx\AtBeginDocument\@undefined % TODO. change test.
\def\@empty{}
\def\loadlocalcfg#1{%
@@ -92,12 +92,13 @@
\ifx#2\@empty\else\expandafter\zap@space\fi
#2}
\let\bbl@trace\@gobble
-\def\bbl@error#1#2{%
+\def\bbl@error#1{% Implicit #2#3#4
\begingroup
- \newlinechar=`\^^J
- \def\\{^^J(babel) }%
- \errhelp{#2}\errmessage{\\#1}%
- \endgroup}
+ \catcode`\\=0 \catcode`\==12 \catcode`\`=12
+ \catcode`\^^M=5 \catcode`\%=14
+ \input errbabel.def
+ \endgroup
+ \bbl@error{#1}}
\def\bbl@warning#1{%
\begingroup
\newlinechar=`\^^J
@@ -595,8 +596,8 @@
\toks@\expandafter{\bbl@tempc#3}%
\expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
\fi}
-\def\bbl@version{24.1}
-\def\bbl@date{2024/01/07}
+\def\bbl@version{24.2}
+\def\bbl@date{2024/02/07}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -1015,10 +1016,7 @@
\fi
\ifx\originalTeX\@undefined\let\originalTeX\@empty\fi
\ifx\babel@beginsave\@undefined\let\babel@beginsave\relax\fi
-\providecommand\setlocale{%
- \bbl@error
- {Not yet available}%
- {Find an armchair, sit down and wait}}
+\providecommand\setlocale{\bbl@error{not-yet-available}{}{}{}}
\let\uselocale\setlocale
\let\locale\setlocale
\let\selectlocale\setlocale
@@ -1046,12 +1044,7 @@
They might not work as expected and their behavior\\%
could change in the future.\\%
Reported}}
-\def\@nolanerr#1{%
- \bbl@error
- {You haven't defined the language '#1' yet.\\%
- Perhaps you misspelled it or your installation\\%
- is not complete}%
- {Your command will be ignored, type <return> to proceed}}
+\def\@nolanerr#1{\bbl@error{undefined-language}{#1}{}{}}
\def\@nopatterns#1{%
\bbl@warning
{No hyphenation patterns were preloaded for\\%
@@ -1523,10 +1516,7 @@
\initiate@active@char{#2}%
#1%
\bbl@activate{#2}}%
- {\bbl@error
- {I can't declare a shorthand turned off (\string#2)}
- {Sorry, but you can't use shorthands which have been\\%
- turned off in the package options}}}
+ {\bbl@error{shorthand-is-off}{}{#2}{}}}
\def\user@language@group{user@\language@group}
\def\bbl@set@user@generic#1#2{%
\bbl@ifunset{user@generic@active#1}%
@@ -1559,17 +1549,8 @@
\bbl@activate{#2}%
\fi
\fi}%
- {\bbl@error
- {Cannot declare a shorthand turned off (\string#2)}
- {Sorry, but you cannot use shorthands which have been\\%
- turned off in the package options}}}
-\def\@notshorthand#1{%
- \bbl@error{%
- The character '\string #1' should be made a shorthand character;\\%
- add the command \string\useshorthands\string{#1\string} to
- the preamble.\\%
- I will ignore your instruction}%
- {You may proceed, but expect unexpected results}}
+ {\bbl@error{shorthand-is-off}{}{#2}{}}}
+\def\@notshorthand#1{\bbl@error{not-a-shorthand}{#1}{}{}}
\newcommand*\shorthandon[1]{\bbl@switch@sh\@ne#1\@nnil}
\DeclareRobustCommand*\shorthandoff{%
\@ifstar{\bbl@shorthandoff\tw@}{\bbl@shorthandoff\z@}}
@@ -1577,10 +1558,7 @@
\def\bbl@switch@sh#1#2{%
\ifx#2\@nnil\else
\bbl@ifunset{bbl@active@\string#2}%
- {\bbl@error
- {I can't switch '\string#2' on or off--not a shorthand}%
- {This character is not a shorthand. Maybe you made\\%
- a typing mistake? I will ignore your instruction.}}%
+ {\bbl@error{not-a-shorthand-b}{}{#2}{}}%
{\ifcase#1% off, on, off*
\catcode`#212\relax
\or
@@ -1682,9 +1660,7 @@
\fi}}}
\@onlypreamble\languageattribute
\newcommand*{\@attrerr}[2]{%
- \bbl@error
- {The attribute #2 is unknown for language #1.}%
- {Your command will be ignored, type <return> to proceed}}
+ \bbl@error{unknown-attribute}{#1}{#2}{}}
\def\bbl@declare@ttribute#1#2#3{%
\bbl@xin@{,#2,}{,\BabelModifiers,}%
\ifin@
@@ -1971,9 +1947,7 @@
\bbl@scswitch
\ifx\bbl@G\@empty
\def\SetString##1##2{%
- \bbl@error{Missing group for string \string##1}%
- {You must assign strings to some category, typically\\%
- captions or extras, but you set none}}%
+ \bbl@error{missing-group}{##1}{}{}}%
\fi
\ifx\@empty#1%
\bbl@usehooks{defaultcommands}{}%
@@ -2293,14 +2267,8 @@
\or
\input xebabel.def
\fi
-\providecommand\babelfont{%
- \bbl@error
- {This macro is available only in LuaLaTeX and XeLaTeX.}%
- {Consider switching to these engines.}}
-\providecommand\babelprehyphenation{%
- \bbl@error
- {This macro is available only in LuaLaTeX.}%
- {Consider switching to that engine.}}
+\providecommand\babelfont{\bbl@error@{only-lua-xe}{}{}{}}
+\providecommand\babelprehyphenation{\bbl@error{only-lua}{}{}{}}
\ifx\babelposthyphenation\@undefined
\let\babelposthyphenation\babelprehyphenation
\let\babelpatterns\babelprehyphenation
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index abd887ba0e4..0eb07150d03 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.sty
+++ b/Master/texmf-dist/tex/generic/babel/babel.sty
@@ -34,7 +34,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2024/01/07 v24.1 The Babel package]
+\ProvidesPackage{babel}[2024/02/07 v24.2 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}%
\let\bbl@debug\@firstofone
@@ -49,11 +49,12 @@
\directlua{ Babel = Babel or {}
Babel.debug = false }%
\fi}
-\def\bbl@error#1#2{%
+\def\bbl@error#1{% Implicit #2#3#4
\begingroup
- \def\\{\MessageBreak}%
- \PackageError{babel}{#1}{#2}%
- \endgroup}
+ \catcode`\\=0 \catcode`\==12 \catcode`\`=12
+ \input errbabel.def
+ \endgroup
+ \bbl@error{#1}}
\def\bbl@warning#1{%
\begingroup
\def\\{\MessageBreak}%
@@ -387,12 +388,7 @@
\bbl@csarg\ifx{opt@#1}\@nnil
\bbl@csarg\edef{opt@#1}{#2}%
\else
- \bbl@error
- {Bad option '#1=#2'. Either you have misspelled the\\%
- key or there is a previous setting of '#1'. Valid\\%
- keys are, among others, 'shorthands', 'main', 'bidi',\\%
- 'strings', 'config', 'headfoot', 'safe', 'math'.}%
- {See the manual for further details.}
+ \bbl@error{bad-package-option}{#1}{#2}{}%
\fi}
\let\bbl@language@opts\@empty
\DeclareOption*{%
@@ -470,8 +466,8 @@
\expandafter\@secondoftwo
\fi}
\fi
-\def\bbl@version{24.1}
-\def\bbl@date{2024/01/07}
+\def\bbl@version{24.2}
+\def\bbl@date{2024/02/07}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -553,11 +549,7 @@
\let\bbl@initoload\relax
\def\bbl@provide@locale{%
\ifx\babelprovide\@undefined
- \bbl@error{For a language to be defined on the fly 'base'\\%
- is not enough, and the whole package must be\\%
- loaded. Either delete the 'base' option or\\%
- request the languages explicitly}%
- {See the manual for further details.}%
+ \bbl@error{base-on-the-fly}{}{}{}%
\fi
\let\bbl@auxname\languagename % Still necessary. TODO
\bbl@ifunset{bbl@bcp@map@\languagename}{}% Move uplevel??
@@ -922,10 +914,7 @@
\fi
\ifx\originalTeX\@undefined\let\originalTeX\@empty\fi
\ifx\babel@beginsave\@undefined\let\babel@beginsave\relax\fi
-\providecommand\setlocale{%
- \bbl@error
- {Not yet available}%
- {Find an armchair, sit down and wait}}
+\providecommand\setlocale{\bbl@error{not-yet-available}{}{}{}}
\let\uselocale\setlocale
\let\locale\setlocale
\let\selectlocale\setlocale
@@ -953,12 +942,7 @@
They might not work as expected and their behavior\\%
could change in the future.\\%
Reported}}
-\def\@nolanerr#1{%
- \bbl@error
- {You haven't defined the language '#1' yet.\\%
- Perhaps you misspelled it or your installation\\%
- is not complete}%
- {Your command will be ignored, type <return> to proceed}}
+\def\@nolanerr#1{\bbl@error{undefined-language}{#1}{}{}}
\def\@nopatterns#1{%
\bbl@warning
{No hyphenation patterns were preloaded for\\%
@@ -1442,10 +1426,7 @@
\initiate@active@char{#2}%
#1%
\bbl@activate{#2}}%
- {\bbl@error
- {I can't declare a shorthand turned off (\string#2)}
- {Sorry, but you can't use shorthands which have been\\%
- turned off in the package options}}}
+ {\bbl@error{shorthand-is-off}{}{#2}{}}}
\def\user@language@group{user@\language@group}
\def\bbl@set@user@generic#1#2{%
\bbl@ifunset{user@generic@active#1}%
@@ -1478,17 +1459,8 @@
\bbl@activate{#2}%
\fi
\fi}%
- {\bbl@error
- {Cannot declare a shorthand turned off (\string#2)}
- {Sorry, but you cannot use shorthands which have been\\%
- turned off in the package options}}}
-\def\@notshorthand#1{%
- \bbl@error{%
- The character '\string #1' should be made a shorthand character;\\%
- add the command \string\useshorthands\string{#1\string} to
- the preamble.\\%
- I will ignore your instruction}%
- {You may proceed, but expect unexpected results}}
+ {\bbl@error{shorthand-is-off}{}{#2}{}}}
+\def\@notshorthand#1{\bbl@error{not-a-shorthand}{#1}{}{}}
\newcommand*\shorthandon[1]{\bbl@switch@sh\@ne#1\@nnil}
\DeclareRobustCommand*\shorthandoff{%
\@ifstar{\bbl@shorthandoff\tw@}{\bbl@shorthandoff\z@}}
@@ -1496,10 +1468,7 @@
\def\bbl@switch@sh#1#2{%
\ifx#2\@nnil\else
\bbl@ifunset{bbl@active@\string#2}%
- {\bbl@error
- {I can't switch '\string#2' on or off--not a shorthand}%
- {This character is not a shorthand. Maybe you made\\%
- a typing mistake? I will ignore your instruction.}}%
+ {\bbl@error{not-a-shorthand-b}{}{#2}{}}%
{\ifcase#1% off, on, off*
\catcode`#212\relax
\or
@@ -1601,9 +1570,7 @@
\fi}}}
\@onlypreamble\languageattribute
\newcommand*{\@attrerr}[2]{%
- \bbl@error
- {The attribute #2 is unknown for language #1.}%
- {Your command will be ignored, type <return> to proceed}}
+ \bbl@error{unknown-attribute}{#1}{#2}{}}
\def\bbl@declare@ttribute#1#2#3{%
\bbl@xin@{,#2,}{,\BabelModifiers,}%
\ifin@
@@ -1890,9 +1857,7 @@
\bbl@scswitch
\ifx\bbl@G\@empty
\def\SetString##1##2{%
- \bbl@error{Missing group for string \string##1}%
- {You must assign strings to some category, typically\\%
- captions or extras, but you set none}}%
+ \bbl@error{missing-group}{##1}{}{}}%
\fi
\ifx\@empty#1%
\bbl@usehooks{defaultcommands}{}%
@@ -2245,14 +2210,8 @@
\or
\input xebabel.def
\fi
-\providecommand\babelfont{%
- \bbl@error
- {This macro is available only in LuaLaTeX and XeLaTeX.}%
- {Consider switching to these engines.}}
-\providecommand\babelprehyphenation{%
- \bbl@error
- {This macro is available only in LuaLaTeX.}%
- {Consider switching to that engine.}}
+\providecommand\babelfont{\bbl@error@{only-lua-xe}{}{}{}}
+\providecommand\babelprehyphenation{\bbl@error{only-lua}{}{}{}}
\ifx\babelposthyphenation\@undefined
\let\babelposthyphenation\babelprehyphenation
\let\babelpatterns\babelprehyphenation
@@ -2286,9 +2245,7 @@
\bbl@renewinikey##1\@@{##2}%
\else
\bbl@csarg\ifx{KVP@##1}\@nnil\else
- \bbl@error
- {Unknown key '##1' in \string\babelprovide}%
- {See the manual for valid keys}%
+ \bbl@error{unknown-provide-key}{##1}{}{}%
\fi
\bbl@csarg\def{KVP@##1}{##2}%
\fi}%
@@ -2439,14 +2396,17 @@
\let\bbl@mapselect\relax
\edef\bbl@prefontid{\fontid\font}}%
\def\bbl@mapdir##1{%
- {\def\languagename{##1}%
- \let\bbl@ifrestoring\@firstoftwo % To avoid font warning
- \bbl@switchfont
- \ifnum\fontid\font>\z@ % A hack, for the pgf nullfont hack
- \directlua{
- Babel.locale_props[\the\csname bbl@id@@##1\endcsname]%
- ['/\bbl@prefontid'] = \fontid\font\space}%
- \fi}}%
+ \begingroup
+ \setbox\z@\hbox{% Force text mode
+ \def\languagename{##1}%
+ \let\bbl@ifrestoring\@firstoftwo % To avoid font warning
+ \bbl@switchfont
+ \ifnum\fontid\font>\z@ % A hack, for the pgf nullfont hack
+ \directlua{
+ Babel.locale_props[\the\csname bbl@id@@##1\endcsname]%
+ ['/\bbl@prefontid'] = \fontid\font\space}%
+ \fi}%
+ \endgroup}%
\fi
\bbl@exp{\\\bbl@add\\\bbl@mapselect{\\\bbl@mapdir{\languagename}}}%
\fi
@@ -2456,9 +2416,7 @@
% For bidi texts, to switch the font based on direction
\ifx\bbl@KVP@mapfont\@nnil\else
\bbl@ifsamestring{\bbl@KVP@mapfont}{direction}{}%
- {\bbl@error{Option '\bbl@KVP@mapfont' unknown for\\%
- mapfont. Use 'direction'.%
- {See the manual for details.}}}%
+ {\bbl@error{unknown-mapfont}{}{}{}}%
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\bbl@ifunset{bbl@wdir@\languagename}{\bbl@provide@dirs{\languagename}}{}%
\ifx\bbl@mapselect\@undefined % TODO. See onchar.
@@ -2818,11 +2776,7 @@
\global\let\bbl@extend@ini\@gobble
\openin\bbl@readstream=babel-#1.ini
\ifeof\bbl@readstream
- \bbl@error
- {There is no ini file for the requested language\\%
- (#1: \languagename). Perhaps you misspelled it or your\\%
- installation is not complete.}%
- {Fix the name or reinstall babel.}%
+ \bbl@error{no-ini-file}{#1}{}{}%
\else
% == Store ini data in \bbl@inidata ==
\catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\&=12
@@ -3022,9 +2976,7 @@
\fi}}
\def\bbl@inikv@counters#1#2{%
\bbl@ifsamestring{#1}{digits}%
- {\bbl@error{The counter name 'digits' is reserved for mapping\\%
- decimal digits}%
- {Use another name.}}%
+ {\bbl@error{digits-is-reserved}{}{}{}}%
{}%
\def\bbl@tempc{#1}%
\bbl@trim@def{\bbl@tempb*}{#2}%
@@ -3268,10 +3220,7 @@
\else\ifnum#1<1000 \expandafter\@gobble\number#1 %
\else\ifnum#1<10000 \expandafter\@gobbletwo\number#1 %
\else
- \bbl@error
- {Currently two-digit years are restricted to the\\
- range 0-9999.}%
- {There is little you can do. Sorry.}%
+ \bbl@error{limit-two-digits}{}{}{}%
\fi\fi\fi\fi}}
\newcommand\BabelDateyyyy[1]{{\number#1}} % TODO - add leading 0
\newcommand\BabelDateU[1]{{\number#1}}%
@@ -3469,8 +3418,7 @@
\fi}%
{\bbl@cs{cntr@#1.F.\number#5#6#7#8@\languagename}}}
\def\bbl@alphnum@invalid#1{%
- \bbl@error{Alphabetic numeral too large (#1)}%
- {Currently this is the limit.}}
+ \bbl@error{alphabetic-too-large}{#1}{}{}}
\def\bbl@localeinfo#1#2{%
\bbl@ifunset{bbl@info@#2}{#1}%
{\bbl@ifunset{bbl@\csname bbl@info@#2\endcsname @\languagename}{#1}%
@@ -3480,10 +3428,7 @@
\bbl@afterelse\bbl@localeinfo{}%
\else
\bbl@localeinfo
- {\bbl@error{I've found no info for the current locale.\\%
- The corresponding ini file has not been loaded\\%
- Perhaps it doesn't exist}%
- {See the manual for details.}}%
+ {\bbl@error{no-ini-info}{}{}{}}%
{#1}%
\fi}
\@namedef{bbl@info@tag.ini}{lini}
@@ -3515,9 +3460,7 @@
{\bbl@bcpdata@ii{#1#2#3#4#5#6}\languagename}}%
\def\bbl@bcpdata@ii#1#2{%
\bbl@ifunset{bbl@info@#1.tag.bcp47}%
- {\bbl@error{Unknown field '#1' in \string\BCPdata.\\%
- Perhaps you misspelled it.}%
- {See the manual for details.}}%
+ {\bbl@error{unknown-ini-field}{#1}{}{}}%
{\bbl@ifunset{bbl@\csname bbl@info@#1.tag.bcp47\endcsname @#2}{}%
{\bbl@cs{\csname bbl@info@#1.tag.bcp47\endcsname @#2}}}}
\fi
@@ -3588,11 +3531,7 @@
\def\bbl@getproperty@x#1#2#3{%
\bbl@getproperty@s{#1}{#2}{#3}%
\ifx#1\relax
- \bbl@error
- {Unknown key for locale '#2':\\%
- #3\\%
- \string#1 will be set to \relax}%
- {Perhaps you misspelled it.}%
+ \bbl@error{unknown-locale-key}{#1}{#2}{#3}%
\fi}
\let\bbl@ini@loaded\@empty
\newcommand\LocaleForEach{\bbl@foreach\bbl@ini@loaded}
@@ -3614,10 +3553,7 @@
\expandafter\expandafter\expandafter\@gobble
\fi
\fi
- {\bbl@error % The error is gobbled if everything went ok.
- {Currently, #1 related features can be adjusted only\\%
- in the main vertical list.}%
- {Maybe things change in the future, but this is what it is.}}}
+ {\bbl@error{adjust-only-vertical}{#1}{}{}}}% Gobbled if everything went ok.
\@namedef{bbl@ADJ@bidi.mirroring@on}{%
\bbl@adjust@lua{bidi}{mirroring_enabled=true}}
\@namedef{bbl@ADJ@bidi.mirroring@off}{%
@@ -3651,10 +3587,7 @@
#1%
\expandafter\@gobble
\fi
- {\bbl@error % The error is gobbled if everything went ok.
- {Currently, layout related features can be adjusted only\\%
- in vertical mode.}%
- {Maybe things change in the future, but this is what it is.}}}
+ {\bbl@error{layout-only-vertical}{}{}{}}}% Gobbled if everything went ok.
\@namedef{bbl@ADJ@layout.tabular@on}{%
\ifnum\bbl@tabular@mode=\tw@
\bbl@adjust@layout{\let\@tabular\bbl@NL@@tabular}%
@@ -3779,13 +3712,13 @@
\bbl@xin@{B}\bbl@opt@safe
\ifin@
\bbl@redefine\@citex[#1]#2{%
- \@safe@activestrue\edef\@tempa{#2}\@safe@activesfalse
- \org@@citex[#1]{\@tempa}}
+ \@safe@activestrue\edef\bbl@tempa{#2}\@safe@activesfalse
+ \org@@citex[#1]{\bbl@tempa}}
\AtBeginDocument{%
\@ifpackageloaded{natbib}{%
\def\@citex[#1][#2]#3{%
- \@safe@activestrue\edef\@tempa{#3}\@safe@activesfalse
- \org@@citex[#1][#2]{\@tempa}}%
+ \@safe@activestrue\edef\bbl@tempa{#3}\@safe@activesfalse
+ \org@@citex[#1][#2]{\bbl@tempa}}%
}{}}
\AtBeginDocument{%
\@ifpackageloaded{cite}{%
@@ -3990,11 +3923,7 @@
\ifodd\bbl@engine
\else % TODO. Move to txtbabel
\ifnum\bbl@bidimode>100 \ifnum\bbl@bidimode<200 % Any xe+lua bidi=
- \bbl@error
- {The bidi method 'basic' is available only in\\%
- luatex. I'll continue with 'bidi=default', so\\%
- expect wrong results}%
- {See the manual for further details.}%
+ \bbl@error{bidi-only-lua}{}{}{}%
\let\bbl@beforeforeign\leavevmode
\AtEndOfPackage{%
\EnableBabelHook{babel-bidi}%
@@ -4096,8 +4025,7 @@
\ifhmode
\ifnum\currentgrouplevel>\z@
\ifnum\currentgrouplevel=\bbl@dirlevel
- \bbl@error{Multiple bidi settings inside a group}%
- {I'll insert a new group, but expect wrong results.}%
+ \bbl@error{multiple-bidi}{}{}{}%
\bgroup\aftergroup#2\aftergroup\egroup
\else
\ifcase\currentgrouptype\or % 0 bottom
@@ -4188,29 +4116,22 @@
If it’s the main language, try adding `provide=*'\\%
to the babel package options}}%
{\let\bbl@tempa\empty}%
- \bbl@error{%
- Unknown option '\CurrentOption'. Either you misspelled it\\%
- or the language definition file \CurrentOption.ldf\\%
- was not found%
- \bbl@tempa}{%
- Valid options are, among others: shorthands=, KeepShorthandsActive,\\%
- activeacute, activegrave, noconfigs, safe=, main=, math=\\%
- headfoot=, strings=, config=, hyphenmap=, or a language name.}}}
+ \bbl@error{unknown-package-option}{}{}{}}}
\def\bbl@try@load@lang#1#2#3{%
\IfFileExists{\CurrentOption.ldf}%
{\bbl@load@language{\CurrentOption}}%
{#1\bbl@load@language{#2}#3}}
\DeclareOption{hebrew}{%
+ \ifcase\bbl@engine\or
+ \bbl@error{only-pdftex-lang}{hebrew}{luatex}{}%
+ \fi
\input{rlbabel.def}%
\bbl@load@language{hebrew}}
\DeclareOption{hungarian}{\bbl@try@load@lang{}{magyar}{}}
\DeclareOption{lowersorbian}{\bbl@try@load@lang{}{lsorbian}{}}
-\DeclareOption{northernsami}{\bbl@try@load@lang{}{samin}{}}
-\DeclareOption{nynorsk}{\bbl@try@load@lang{}{norsk}{}}
\DeclareOption{polutonikogreek}{%
\bbl@try@load@lang{}{greek}{\languageattribute{greek}{polutoniko}}}
\DeclareOption{russian}{\bbl@try@load@lang{}{russianb}{}}
-\DeclareOption{scottishgaelic}{\bbl@try@load@lang{}{scottish}{}}
\DeclareOption{ukrainian}{\bbl@try@load@lang{}{ukraineb}{}}
\DeclareOption{uppersorbian}{\bbl@try@load@lang{}{usorbian}{}}
\ifx\bbl@opt@config\@nnil
@@ -4225,9 +4146,7 @@
{\typeout{*************************************^^J%
* Local config file \bbl@opt@config.cfg used^^J%
*}}%
- {\bbl@error{%
- Local config file '\bbl@opt@config.cfg' not found}{%
- Perhaps you misspelled it.}}%
+ {\bbl@error{config-not-found}{}{}{}}%
\fi
\ifx\bbl@opt@main\@nnil
\ifnum\bbl@iniflag>\z@ % if all ldf's: set implicitly, no main pass
@@ -4332,10 +4251,7 @@
\fi
\bbl@exp{%
\\\AtBeginDocument{\\\bbl@usehooks@lang{/}{begindocument}{{}}}}%
-\def\AfterBabelLanguage{%
- \bbl@error
- {Too late for \string\AfterBabelLanguage}%
- {Languages have been loaded, so I can do nothing}}
+\def\AfterBabelLanguage{\bbl@error{late-after-babel}{}{}{}}
\ifx\bbl@main@language\@undefined
\bbl@info{%
You haven't specified a language as a class or package\\%
diff --git a/Master/texmf-dist/tex/generic/babel/errbabel.def b/Master/texmf-dist/tex/generic/babel/errbabel.def
new file mode 100644
index 00000000000..432899cb34e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/errbabel.def
@@ -0,0 +1,221 @@
+%%
+%% This is file `errbabel.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% babel.dtx (with options: `errors')
+%%
+%%
+%% Copyright (C) 2012-2024 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 1989-2012 Johannes L. Braams and
+%% any individual authors listed elsewhere in this file.
+%% All rights reserved.
+%%
+%%
+%% This file is part of the Babel system.
+%% --------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Javier Bezos.
+%%
+%% The list of derived (unpacked) files belonging to the distribution
+%% and covered by LPPL is defined by the unpacking scripts (with
+%% extension |.ins|) which are part of the distribution.
+%%
+
+\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
+\catcode`\:=12 \catcode`\,=12 \catcode`\.=12 \catcode`\-=12
+\catcode`\'=12 \catcode`\(=12 \catcode`\)=12
+\catcode`\@=11 \catcode`\^=7
+\ifx\MessageBreak\@undefined
+ \gdef\bbl@error@i#1#2{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(babel) }%
+ \errhelp{#2}\errmessage{\\#1}%
+ \endgroup}
+\else
+ \gdef\bbl@error@i#1#2{%
+ \begingroup
+ \def\\{\MessageBreak}%
+ \PackageError{babel}{#1}{#2}%
+ \endgroup}
+\fi
+\def\bbl@errmessage#1#2#3{%
+ \expandafter\gdef\csname bbl@err@#1\endcsname##1##2##3{%
+ \bbl@error@i{#2}{#3}}}
+\gdef\bbl@error#1{\csname bbl@err@#1\endcsname}
+\bbl@errmessage{not-yet-available}
+ {Not yet available}%
+ {Find an armchair, sit down and wait}
+\bbl@errmessage{bad-package-option}%
+ {Bad option '#1=#2'. Either you have misspelled the\\%
+ key or there is a previous setting of '#1'. Valid\\%
+ keys are, among others, 'shorthands', 'main', 'bidi',\\%
+ 'strings', 'config', 'headfoot', 'safe', 'math'.}%
+ {See the manual for further details.}
+\bbl@errmessage{base-on-the-fly}
+ {For a language to be defined on the fly 'base'\\%
+ is not enough, and the whole package must be\\%
+ loaded. Either delete the 'base' option or\\%
+ request the languages explicitly}%
+ {See the manual for further details.}
+\bbl@errmessage{undefined-language}
+ {You haven't defined the language '#1' yet.\\%
+ Perhaps you misspelled it or your installation\\%
+ is not complete}%
+ {Your command will be ignored, type <return> to proceed}
+\bbl@errmessage{shorthand-is-off}
+ {I can't declare a shorthand turned off (\string#2)}
+ {Sorry, but you can't use shorthands which have been\\%
+ turned off in the package options}
+\bbl@errmessage{not-a-shorthand}
+ {The character '\string #1' should be made a shorthand character;\\%
+ add the command \string\useshorthands\string{#1\string} to
+ the preamble.\\%
+ I will ignore your instruction}%
+ {You may proceed, but expect unexpected results}
+\bbl@errmessage{not-a-shorthand-b}
+ {I can't switch '\string#2' on or off--not a shorthand}%
+ {This character is not a shorthand. Maybe you made\\%
+ a typing mistake? I will ignore your instruction.}
+\bbl@errmessage{unknown-attribute}
+ {The attribute #2 is unknown for language #1.}%
+ {Your command will be ignored, type <return> to proceed}
+\bbl@errmessage{missing-group}
+ {Missing group for string \string#1}%
+ {You must assign strings to some category, typically\\%
+ captions or extras, but you set none}
+\bbl@errmessage{only-lua-xe}
+ {This macro is available only in LuaLaTeX and XeLaTeX.}%
+ {Consider switching to these engines.}
+\bbl@errmessage{only-lua}
+ {This macro is available only in LuaLaTeX.}%
+ {Consider switching to that engine.}
+\bbl@errmessage{unknown-provide-key}
+ {Unknown key '#1' in \string\babelprovide}%
+ {See the manual for valid keys}%
+\bbl@errmessage{unknown-mapfont}
+ {Option '\bbl@KVP@mapfont' unknown for\\%
+ mapfont. Use 'direction'.}%
+ {See the manual for details.}
+\bbl@errmessage{no-ini-file}
+ {There is no ini file for the requested language\\%
+ (#1: \languagename). Perhaps you misspelled it or your\\%
+ installation is not complete.}%
+ {Fix the name or reinstall babel.}
+\bbl@errmessage{digits-is-reserved}
+ {The counter name 'digits' is reserved for mapping\\%
+ decimal digits}%
+ {Use another name.}
+\bbl@errmessage{limit-two-digits}
+ {Currently two-digit years are restricted to the\\
+ range 0-9999.}%
+ {There is little you can do. Sorry.}
+\bbl@errmessage{alphabetic-too-large}
+ {Alphabetic numeral too large (#1)}%
+ {Currently this is the limit.}
+\bbl@errmessage{no-ini-info}
+ {I've found no info for the current locale.\\%
+ The corresponding ini file has not been loaded\\%
+ Perhaps it doesn't exist}%
+ {See the manual for details.}
+\bbl@errmessage{unknown-ini-field}
+ {Unknown field '#1' in \string\BCPdata.\\%
+ Perhaps you misspelled it.}%
+ {See the manual for details.}
+\bbl@errmessage{unknown-locale-key}
+ {Unknown key for locale '#2':\\%
+ #3\\%
+ \string#1 will be set to \relax}%
+ {Perhaps you misspelled it.}%
+\bbl@errmessage{adjust-only-vertical}
+ {Currently, #1 related features can be adjusted only\\%
+ in the main vertical list.}%
+ {Maybe things change in the future, but this is what it is.}
+\bbl@errmessage{layout-only-vertical}
+ {Currently, layout related features can be adjusted only\\%
+ in vertical mode.}%
+ {Maybe things change in the future, but this is what it is.}
+\bbl@errmessage{bidi-only-lua}
+ {The bidi method 'basic' is available only in\\%
+ luatex. I'll continue with 'bidi=default', so\\%
+ expect wrong results}%
+ {See the manual for further details.}
+\bbl@errmessage{multiple-bidi}
+ {Multiple bidi settings inside a group}%
+ {I'll insert a new group, but expect wrong results.}
+\bbl@errmessage{unknown-package-option}
+ {Unknown option '\CurrentOption'. Either you misspelled it\\%
+ or the language definition file \CurrentOption.ldf\\%
+ was not found%
+ \bbl@tempa}
+ {Valid options are, among others: shorthands=, KeepShorthandsActive,\\%
+ activeacute, activegrave, noconfigs, safe=, main=, math=\\%
+ headfoot=, strings=, config=, hyphenmap=, or a language name.}
+\bbl@errmessage{config-not-found}
+ {Local config file '\bbl@opt@config.cfg' not found}%
+ {Perhaps you misspelled it.}
+\bbl@errmessage{late-after-babel}
+ {Too late for \string\AfterBabelLanguage}%
+ {Languages have been loaded, so I can do nothing}
+\bbl@errmessage{double-hyphens-class}
+ {Double hyphens aren't allowed in \string\babelcharclass\\%
+ because it's potentially ambiguous}%
+ {See the manual for further info}
+\bbl@errmessage{unknown-interchar}
+ {'#1' for '\languagename' cannot be enabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}
+\bbl@errmessage{unknown-interchar-b}
+ {'#1' for '\languagename' cannot be disabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}
+\bbl@errmessage{charproperty-only-vertical}
+ {\string\babelcharproperty\space can be used only in\\%
+ vertical mode (preamble or between paragraphs)}%
+ {See the manual for further info}
+\bbl@errmessage{unknown-char-property}
+ {No property named '#2'. Allowed values are\\%
+ direction (bc), mirror (bmg), and linebreak (lb)}%
+ {See the manual for further info}
+\bbl@errmessage{bad-transform-option}
+ {Bad option '#1' in a transform.\\%
+ I’ll ignore it but expect more errors}%
+ {See the manual for further info.}
+\bbl@errmessage{font-conflict-transforms}
+ {Transforms cannot be re-assigned to different\\%
+ fonts. The conflict is in '\bbl@kv@label'.\\%
+ Apply the same fonts or use a different label}%
+ {See the manual for further details.}
+\bbl@errmessage{transform-not-available}
+ {'#1' for '\languagename' cannot be enabled.\\%
+ Maybe there is a typo or it’s a font-dependent transform}%
+ {See the manual for further details.}
+\bbl@errmessage{transform-not-available-b}
+ {'#1' for '\languagename' cannot be disabled.\\%
+ Maybe there is a typo or it’s a font-dependent transform}%
+ {See the manual for further details.}
+\bbl@errmessage{year-out-range}
+ {Year out of range.\\%
+ The allowed range is #1}%
+ {See the manual for further details.}
+\bbl@errmessage{only-pdftex-lang}
+ {The '#1' ldf style doesn't work with #2,\\%
+ but you can use the ini locale instead.\\%
+ Try adding 'provide=*' to the option list. You may\\%
+ also want to set 'bidi=' to some value.}%
+ {See the manual for further details.}
+\endinput
+%%
+%% End of file `errbabel.def'.
diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
index 220146d76db..9b356af30fe 100644
--- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg
+++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
@@ -38,10 +38,10 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{hyphen.cfg}[2024/01/07 v24.1 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2024/02/07 v24.2 Babel hyphens]
\xdef\bbl@format{\jobname}
-\def\bbl@version{24.1}
-\def\bbl@date{2024/01/07}
+\def\bbl@version{24.2}
+\def\bbl@date{2024/02/07}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\fi
@@ -140,7 +140,7 @@
\def\bbl@usehooks##1##2{}% TODO. Temporary!!
\def\setlocale{%
\errhelp{Find an armchair, sit down and wait}%
- \errmessage{Not yet available}}%
+ \errmessage{(babel) Not yet available}}%
\let\uselocale\setlocale
\let\locale\setlocale
\let\selectlocale\setlocale
diff --git a/Master/texmf-dist/tex/generic/babel/locale/el/babel-monotonicgreek.tex b/Master/texmf-dist/tex/generic/babel/locale/el/babel-monotonicgreek.tex
index db4c4e11392..2698fd2f751 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/el/babel-monotonicgreek.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/el/babel-monotonicgreek.tex
@@ -1,4 +1,11 @@
% This file is part of babel. For further details see:
% https://www.ctan.org/pkg/babel
-\input{babel-greek}
-\endinput \ No newline at end of file
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{el}{%
+}
diff --git a/Master/texmf-dist/tex/generic/babel/locale/gd/babel-scottish.tex b/Master/texmf-dist/tex/generic/babel/locale/gd/babel-scottish.tex
new file mode 100644
index 00000000000..8c6bad79aca
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/gd/babel-scottish.tex
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{gd}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/he/babel-hebrew.tex b/Master/texmf-dist/tex/generic/babel/locale/he/babel-hebrew.tex
index 808910a1440..e19d82a83d3 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/he/babel-hebrew.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/he/babel-hebrew.tex
@@ -10,12 +10,11 @@
\BabelBeforeIni{he}{%
}
-\ifcase\bbl@engine\else
-% Contributed by Udi Fogiel, with some changes
+% Contributed by Udi Fogiel (with some changes)
\def\BabelHebrewNumeralMarkerSingle{׳}% Number is a single letter
\def\BabelHebrewNumeralMarkerFinal{״}% Before final letter
-\@namedef{bbl@cntr@letters.long@\CurrentOption}#1%
+\@namedef{bbl@cntr@letters.plain@\CurrentOption}#1%
{\expandafter\@hebrew@@numeral\expandafter{\the\numexpr#1}0}
\@namedef{bbl@cntr@letters.gershayim@\CurrentOption}#1%
@@ -53,7 +52,7 @@
\def\hebrew@alph@zero{}
\def\hebrew@num@nomil#1#2{%
- \ifcase\hebrew@num@trunc{#1}{100}% print nothing if no hundreds
+ \ifcase\hebrew@num@trunc{#1}{100} %
\or ק\ifnum#2>0 \ifnum#1=100 \BabelHebrewNumeralMarkerSingle\fi\fi
\or ר\ifnum#2>0 \ifnum#1=200 \BabelHebrewNumeralMarkerSingle\fi\fi
\or ש\ifnum#2>0 \ifnum#1=300 \BabelHebrewNumeralMarkerSingle\fi\fi
@@ -108,7 +107,7 @@
\if #22ץ\else צ\fi\ifnum#2>0 \ifnum#1=90 \BabelHebrewNumeralMarkerSingle \fi\fi
\fi
\fi
- \ifcase\numexpr #1-10*\hebrew@num@trunc{#1}{10}%
+ \ifcase\numexpr #1-10*\hebrew@num@trunc{#1}{10} %
\hebrew@alph@zero % empty but can be defined if desired
\or\ifnum#2>0 \ifnum#1=1 א\BabelHebrewNumeralMarkerSingle
\else\BabelHebrewNumeralMarkerFinal א\fi\else א\fi
@@ -130,6 +129,4 @@
\else\BabelHebrewNumeralMarkerFinal ט\fi\else ט\fi
\fi\fi\fi}
-\fi
-
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def
index 230ad1ebfca..78272358244 100644
--- a/Master/texmf-dist/tex/generic/babel/luababel.def
+++ b/Master/texmf-dist/tex/generic/babel/luababel.def
@@ -1154,16 +1154,12 @@ end
\ifvmode
\expandafter\bbl@chprop
\else
- \bbl@error{\string\babelcharproperty\space can be used only in\\%
- vertical mode (preamble or between paragraphs)}%
- {See the manual for further info}%
+ \bbl@error{charproperty-only-vertical}{}{}{}%
\fi}
\newcommand\bbl@chprop[3][\the\count@]{%
\@tempcnta=#1\relax
- \bbl@ifunset{bbl@chprop@#2}%
- {\bbl@error{No property named '#2'. Allowed values are\\%
- direction (bc), mirror (bmg), and linebreak (lb)}%
- {See the manual for further info}}%
+ \bbl@ifunset{bbl@chprop@#2}% {unknown-char-property}
+ {\bbl@error{unknown-char-property}{}{#2}{}}%
{}%
\loop
\bbl@cs{chprop@#2}{#3}%
@@ -1243,10 +1239,7 @@ end
\in@{,####1,}{,nil,step,data,remove,insert,string,no,pre,&%
no,post,penalty,kashida,space,spacefactor,}&%
\ifin@\else
- \bbl@error
- {Bad option '####1' in a transform.\\&%
- I’ll ignore it but expect more errors}&%
- {See the manual for further info.}&%
+ \bbl@error{bad-transform-option}{####1}{}{}&%
\fi}}&%
\let\bbl@kv@attribute\relax
\let\bbl@kv@label\relax
@@ -1263,11 +1256,7 @@ end
\bbl@ifsamestring{#3,\bbl@kv@label}{##1,##2}&%
{\bbl@ifsamestring{\bbl@kv@fonts}{##3}&%
{\count@\@ne}&%
- {\bbl@error
- {Transforms cannot be re-assigned to different\\&%
- fonts. The conflict is in '\bbl@kv@label'.\\&%
- Apply the same fonts or use a different label}&%
- {See the manual for further details.}}}&%
+ {\bbl@error{font-conflict-transforms}{}{}{}}}&%
{}}&%
\bbl@transfont@list
\ifnum\count@=\z@
@@ -1356,17 +1345,11 @@ end
{}}}
\DeclareRobustCommand\enablelocaletransform[1]{%
\bbl@ifunset{bbl@ATR@#1@\languagename @}%
- {\bbl@error
- {'#1' for '\languagename' cannot be enabled.\\%
- Maybe there is a typo or it’s a font-dependent transform}%
- {See the manual for further details.}}%
+ {\bbl@error{transform-not-available}{#1}{}{}}%
{\bbl@csarg\setattribute{ATR@#1@\languagename @}\@ne}}
\DeclareRobustCommand\disablelocaletransform[1]{%
\bbl@ifunset{bbl@ATR@#1@\languagename @}%
- {\bbl@error
- {'#1' for '\languagename' cannot be disabled.\\%
- Maybe there is a typo or it’s a font-dependent transform}%
- {See the manual for further details.}}%
+ {\bbl@error{transform-not-available-b}{#1}{}{}}%
{\bbl@csarg\unsetattribute{ATR@#1@\languagename @}}}
\def\bbl@activateposthyphen{%
\let\bbl@activateposthyphen\relax
diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf
index 9221900261a..434542c8e9f 100644
--- a/Master/texmf-dist/tex/generic/babel/nil.ldf
+++ b/Master/texmf-dist/tex/generic/babel/nil.ldf
@@ -33,7 +33,7 @@
%% extension |.ins|) which are part of the distribution.
%%
-\ProvidesLanguage{nil}[2024/01/07 v24.1 Nil language]
+\ProvidesLanguage{nil}[2024/02/07 v24.2 Nil language]
\LdfInit{nil}{datenil}
\ifx\l@nil\@undefined
\newlanguage\l@nil
diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def
index e6bc6b1dae6..4da5bc3949a 100644
--- a/Master/texmf-dist/tex/generic/babel/xebabel.def
+++ b/Master/texmf-dist/tex/generic/babel/xebabel.def
@@ -346,9 +346,7 @@
\else\ifnum\count@=\z@
\bbl@charclass{-}%
\else
- \bbl@error{Double hyphens aren't allowed in \string\babelcharclass\\%
- because it's potentially ambiguous}%
- {See the manual for further info}%
+ \bbl@error{double-hyphens-class}{}{}{}%
\fi\fi}
\newcommand\babelinterchar[5][]{%
\let\bbl@kv@label\@empty
@@ -374,17 +372,11 @@
@#3@#4@#2 \@empty\endcsname}}}}
\DeclareRobustCommand\enablelocaleinterchar[1]{%
\bbl@ifunset{bbl@ic@#1@\languagename}%
- {\bbl@error
- {'#1' for '\languagename' cannot be enabled.\\%
- Maybe there is a typo.}%
- {See the manual for further details.}}%
+ {\bbl@error{unknown-interchar}{#1}{}{}}%
{\bbl@csarg\let{ic@#1@\languagename}\@firstofone}}
\DeclareRobustCommand\disablelocaleinterchar[1]{%
\bbl@ifunset{bbl@ic@#1@\languagename}%
- {\bbl@error
- {'#1' for '\languagename' cannot be disabled.\\%
- Maybe there is a typo.}%
- {See the manual for further details.}}%
+ {\bbl@error{unknown-interchar-b}{#1}{}{}}%
{\bbl@csarg\let{ic@#1@\languagename}\@gobble}}
\providecommand\bbl@provide@intraspace{}
\bbl@trace{Redefinitions for bidi layout}