diff options
author | Karl Berry <karl@freefriends.org> | 2020-04-28 21:14:00 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-04-28 21:14:00 +0000 |
commit | 47b05827e36c70484f9a11ecd9677b22537a8910 (patch) | |
tree | 57910a8036fc25acd19f0ce56335dfcc801a484c /Master/texmf-dist/tex/generic/babel | |
parent | f5324bd184b19d1e2b0aca934969a4af95f2ed3e (diff) |
babel (28apr20)
git-svn-id: svn://tug.org/texlive/trunk@54930 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel')
21 files changed, 1723 insertions, 1545 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua index 3fbb4e83e95..3c751fbcd42 100644 --- a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua +++ b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua @@ -200,3 +200,4 @@ function Babel.bidi(head, ispar) end return node.prev(head) or head end + 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 8acc02ed6fe..efff60cefcf 100644 --- a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua +++ b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua @@ -409,3 +409,4 @@ function Babel.bidi(head, ispar, hdir) return node.prev(head) or head end + diff --git a/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua b/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua index 9e3aefa7990..1a059bfc62f 100644 --- a/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua +++ b/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua @@ -6113,3 +6113,4 @@ Babel.characters={ [0xE007E]={d='bn'}, [0xE007F]={d='bn'} } + diff --git a/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua b/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua index 99c356c4a83..fefd7a2d7f7 100644 --- a/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua +++ b/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua @@ -288,3 +288,4 @@ Babel.cjk_breaks = { ['I'] = { ['op']=1, ['pr']=1, ['I']=1, ['O']=1 }, ['O'] = { ['I']=1 } } + diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def index 8c88c5f619e..3db01a667c0 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.def +++ b/Master/texmf-dist/tex/generic/babel/babel.def @@ -32,20 +32,344 @@ %% extension |.ins|) which are part of the distribution. %% -\ifx\ldf@quit\@undefined -\else - \expandafter\endinput -\fi +\ifx\ldf@quit\@undefined\else +\endinput\fi % Same line! \ifx\ProvidesFile\@undefined \def\ProvidesFile#1[#2 #3 #4]{% \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{babel.def}[2020/03/22 3.42 Babel common definitions] -\ifx\AtBeginDocument\@undefined - \input plain.def\relax +\ProvidesFile{babel.def}[2020/04/28 3.43 Babel common definitions] +\ifx\AtBeginDocument\@undefined % TODO. change test. + % == Code for plain == +\def\@empty{} +\def\loadlocalcfg#1{% + \openin0#1.cfg + \ifeof0 + \closein0 + \else + \closein0 + {\immediate\write16{*************************************}% + \immediate\write16{* Local config file #1.cfg used}% + \immediate\write16{*}% + } + \input #1.cfg\relax + \fi + \@endofldf} +\long\def\@firstofone#1{#1} +\long\def\@firstoftwo#1#2{#1} +\long\def\@secondoftwo#1#2{#2} +\def\@nnil{\@nil} +\def\@gobbletwo#1#2{} +\def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}} +\def\@star@or@long#1{% + \@ifstar + {\let\l@ngrel@x\relax#1}% + {\let\l@ngrel@x\long#1}} +\let\l@ngrel@x\relax +\def\@car#1#2\@nil{#1} +\def\@cdr#1#2\@nil{#2} +\let\@typeset@protect\relax +\let\protected@edef\edef +\long\def\@gobble#1{} +\edef\@backslashchar{\expandafter\@gobble\string\\} +\def\strip@prefix#1>{} +\def\g@addto@macro#1#2{{% + \toks@\expandafter{#1#2}% + \xdef#1{\the\toks@}}} +\def\@namedef#1{\expandafter\def\csname #1\endcsname} +\def\@nameuse#1{\csname #1\endcsname} +\def\@ifundefined#1{% + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\def\@expandtwoargs#1#2#3{% + \edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a} +\def\zap@space#1 #2{% + #1% + \ifx#2\@empty\else\expandafter\zap@space\fi + #2} +\let\bbl@trace\@gobble +\ifx\@preamblecmds\@undefined + \def\@preamblecmds{} +\fi +\def\@onlypreamble#1{% + \expandafter\gdef\expandafter\@preamblecmds\expandafter{% + \@preamblecmds\do#1}} +\@onlypreamble\@onlypreamble +\def\begindocument{% + \@begindocumenthook + \global\let\@begindocumenthook\@undefined + \def\do##1{\global\let##1\@undefined}% + \@preamblecmds + \global\let\do\noexpand} +\ifx\@begindocumenthook\@undefined + \def\@begindocumenthook{} +\fi +\@onlypreamble\@begindocumenthook +\def\AtBeginDocument{\g@addto@macro\@begindocumenthook} +\def\AtEndOfPackage#1{\g@addto@macro\@endofldf{#1}} +\@onlypreamble\AtEndOfPackage +\def\@endofldf{} +\@onlypreamble\@endofldf +\let\bbl@afterlang\@empty +\chardef\bbl@opt@hyphenmap\z@ +\catcode`\&=\z@ +\ifx&if@filesw\@undefined + \expandafter\let\csname if@filesw\expandafter\endcsname + \csname iffalse\endcsname +\fi +\catcode`\&=4 +\def\newcommand{\@star@or@long\new@command} +\def\new@command#1{% + \@testopt{\@newcommand#1}0} +\def\@newcommand#1[#2]{% + \@ifnextchar [{\@xargdef#1[#2]}% + {\@argdef#1[#2]}} +\long\def\@argdef#1[#2]#3{% + \@yargdef#1\@ne{#2}{#3}} +\long\def\@xargdef#1[#2][#3]#4{% + \expandafter\def\expandafter#1\expandafter{% + \expandafter\@protected@testopt\expandafter #1% + \csname\string#1\expandafter\endcsname{#3}}% + \expandafter\@yargdef \csname\string#1\endcsname + \tw@{#2}{#4}} +\long\def\@yargdef#1#2#3{% + \@tempcnta#3\relax + \advance \@tempcnta \@ne + \let\@hash@\relax + \edef\reserved@a{\ifx#2\tw@ [\@hash@1]\fi}% + \@tempcntb #2% + \@whilenum\@tempcntb <\@tempcnta + \do{% + \edef\reserved@a{\reserved@a\@hash@\the\@tempcntb}% + \advance\@tempcntb \@ne}% + \let\@hash@##% + \l@ngrel@x\expandafter\def\expandafter#1\reserved@a} +\def\providecommand{\@star@or@long\provide@command} +\def\provide@command#1{% + \begingroup + \escapechar\m@ne\xdef\@gtempa{{\string#1}}% + \endgroup + \expandafter\@ifundefined\@gtempa + {\def\reserved@a{\new@command#1}}% + {\let\reserved@a\relax + \def\reserved@a{\new@command\reserved@a}}% + \reserved@a}% +\def\DeclareRobustCommand{\@star@or@long\declare@robustcommand} +\def\declare@robustcommand#1{% + \edef\reserved@a{\string#1}% + \def\reserved@b{#1}% + \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}% + \edef#1{% + \ifx\reserved@a\reserved@b + \noexpand\x@protect + \noexpand#1% + \fi + \noexpand\protect + \expandafter\noexpand\csname + \expandafter\@gobble\string#1 \endcsname + }% + \expandafter\new@command\csname + \expandafter\@gobble\string#1 \endcsname +} +\def\x@protect#1{% + \ifx\protect\@typeset@protect\else + \@x@protect#1% + \fi +} +\catcode`\&=\z@ % Trick to hide conditionals + \def\@x@protect#1&fi#2#3{&fi\protect#1} + \def\bbl@tempa{\csname newif\endcsname&ifin@} +\catcode`\&=4 +\ifx\in@\@undefined + \def\in@#1#2{% + \def\in@@##1#1##2##3\in@@{% + \ifx\in@##2\in@false\else\in@true\fi}% + \in@@#2#1\in@\in@@} +\else + \let\bbl@tempa\@empty +\fi +\bbl@tempa +\def\@ifpackagewith#1#2#3#4{#3} +\def\@ifl@aded#1#2#3#4{} +\ifx\@tempcnta\@undefined + \csname newcount\endcsname\@tempcnta\relax +\fi +\ifx\@tempcntb\@undefined + \csname newcount\endcsname\@tempcntb\relax +\fi +\ifx\bye\@undefined + \advance\count10 by -2\relax +\fi +\ifx\@ifnextchar\@undefined + \def\@ifnextchar#1#2#3{% + \let\reserved@d=#1% + \def\reserved@a{#2}\def\reserved@b{#3}% + \futurelet\@let@token\@ifnch} + \def\@ifnch{% + \ifx\@let@token\@sptoken + \let\reserved@c\@xifnch + \else + \ifx\@let@token\reserved@d + \let\reserved@c\reserved@a + \else + \let\reserved@c\reserved@b + \fi + \fi + \reserved@c} + \def\:{\let\@sptoken= } \: % this makes \@sptoken a space token + \def\:{\@xifnch} \expandafter\def\: {\futurelet\@let@token\@ifnch} \fi -\ifx\bbl@ifshorthand\@undefined +\def\@testopt#1#2{% + \@ifnextchar[{#1}{#1[#2]}} +\def\@protected@testopt#1{% + \ifx\protect\@typeset@protect + \expandafter\@testopt + \else + \@x@protect#1% + \fi} +\long\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax + #2\relax}\fi} +\long\def\@iwhilenum#1{\ifnum #1\expandafter\@iwhilenum + \else\expandafter\@gobble\fi{#1}} +\def\DeclareTextCommand{% + \@dec@text@cmd\providecommand +} +\def\ProvideTextCommand{% + \@dec@text@cmd\providecommand +} +\def\DeclareTextSymbol#1#2#3{% + \@dec@text@cmd\chardef#1{#2}#3\relax +} +\def\@dec@text@cmd#1#2#3{% + \expandafter\def\expandafter#2% + \expandafter{% + \csname#3-cmd\expandafter\endcsname + \expandafter#2% + \csname#3\string#2\endcsname + }% + \expandafter#1\csname#3\string#2\endcsname +} +\def\@current@cmd#1{% + \ifx\protect\@typeset@protect\else + \noexpand#1\expandafter\@gobble + \fi +} +\def\@changed@cmd#1#2{% + \ifx\protect\@typeset@protect + \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax + \expandafter\ifx\csname ?\string#1\endcsname\relax + \expandafter\def\csname ?\string#1\endcsname{% + \@changed@x@err{#1}% + }% + \fi + \global\expandafter\let + \csname\cf@encoding \string#1\expandafter\endcsname + \csname ?\string#1\endcsname + \fi + \csname\cf@encoding\string#1% + \expandafter\endcsname + \else + \noexpand#1% + \fi +} +\def\@changed@x@err#1{% + \errhelp{Your command will be ignored, type <return> to proceed}% + \errmessage{Command \protect#1 undefined in encoding \cf@encoding}} +\def\DeclareTextCommandDefault#1{% + \DeclareTextCommand#1?% +} +\def\ProvideTextCommandDefault#1{% + \ProvideTextCommand#1?% +} +\expandafter\let\csname OT1-cmd\endcsname\@current@cmd +\expandafter\let\csname?-cmd\endcsname\@changed@cmd +\def\DeclareTextAccent#1#2#3{% + \DeclareTextCommand#1{#2}[1]{\accent#3 ##1} +} +\def\DeclareTextCompositeCommand#1#2#3#4{% + \expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname + \edef\reserved@b{\string##1}% + \edef\reserved@c{% + \expandafter\@strip@args\meaning\reserved@a:-\@strip@args}% + \ifx\reserved@b\reserved@c + \expandafter\expandafter\expandafter\ifx + \expandafter\@car\reserved@a\relax\relax\@nil + \@text@composite + \else + \edef\reserved@b##1{% + \def\expandafter\noexpand + \csname#2\string#1\endcsname####1{% + \noexpand\@text@composite + \expandafter\noexpand\csname#2\string#1\endcsname + ####1\noexpand\@empty\noexpand\@text@composite + {##1}% + }% + }% + \expandafter\reserved@b\expandafter{\reserved@a{##1}}% + \fi + \expandafter\def\csname\expandafter\string\csname + #2\endcsname\string#1-\string#3\endcsname{#4} + \else + \errhelp{Your command will be ignored, type <return> to proceed}% + \errmessage{\string\DeclareTextCompositeCommand\space used on + inappropriate command \protect#1} + \fi +} +\def\@text@composite#1#2#3\@text@composite{% + \expandafter\@text@composite@x + \csname\string#1-\string#2\endcsname +} +\def\@text@composite@x#1#2{% + \ifx#1\relax + #2% + \else + #1% + \fi +} +\def\@strip@args#1:#2-#3\@strip@args{#2} +\def\DeclareTextComposite#1#2#3#4{% + \def\reserved@a{\DeclareTextCompositeCommand#1{#2}{#3}}% + \bgroup + \lccode`\@=#4% + \lowercase{% + \egroup + \reserved@a @% + }% +} +\def\UseTextSymbol#1#2{% + #2% +} +\def\UseTextAccent#1#2#3{% +} +\def\@use@text@encoding#1{% +} +\def\DeclareTextSymbolDefault#1#2{% + \DeclareTextCommandDefault#1{\UseTextSymbol{#2}#1}% +} +\def\DeclareTextAccentDefault#1#2{% + \DeclareTextCommandDefault#1{\UseTextAccent{#2}#1}% +} +\def\cf@encoding{OT1} +\DeclareTextAccent{\"}{OT1}{127} +\DeclareTextAccent{\'}{OT1}{19} +\DeclareTextAccent{\^}{OT1}{94} +\DeclareTextAccent{\`}{OT1}{18} +\DeclareTextAccent{\~}{OT1}{126} +\DeclareTextSymbol{\textquotedblleft}{OT1}{92} +\DeclareTextSymbol{\textquotedblright}{OT1}{`\"} +\DeclareTextSymbol{\textquoteleft}{OT1}{`\`} +\DeclareTextSymbol{\textquoteright}{OT1}{`\'} +\DeclareTextSymbol{\i}{OT1}{16} +\DeclareTextSymbol{\ss}{OT1}{25} +\ifx\scriptsize\@undefined + \let\scriptsize\sevenrm +\fi + % End of code for plain + \def\languagename{english}% \let\bbl@opt@shorthands\@nnil \def\bbl@ifshorthand#1#2#3{#2}% \let\bbl@language@opts\@empty @@ -67,32 +391,503 @@ \ifx\bbl@trace\@undefined\def\bbl@trace#1{}\fi \expandafter\newif\csname ifbbl@single\endcsname \fi -\ifx\bbl@switchflag\@undefined % Prevent double input - \let\bbl@switchflag\relax - \input switch.def\relax +\ifx\bbl@trace\@undefined + \let\LdfInit\endinput + \def\ProvidesLanguage#1{\endinput} +\endinput\fi % Same line! +\ifx\language\@undefined + \csname newcount\endcsname\language \fi -\bbl@trace{Compatibility with language.def} -\ifx\bbl@languages\@undefined - \ifx\directlua\@undefined - \openin1 = language.def - \ifeof1 - \closein1 - \message{I couldn't find the file language.def} +\ifx\newlanguage\@undefined + \csname newcount\endcsname\last@language + \def\addlanguage#1{% + \global\advance\last@language\@ne + \ifnum\last@language<\@cclvi \else - \closein1 - \begingroup - \def\addlanguage#1#2#3#4#5{% - \expandafter\ifx\csname lang@#1\endcsname\relax\else - \global\expandafter\let\csname l@#1\expandafter\endcsname - \csname lang@#1\endcsname - \fi}% - \def\uselanguage#1{}% - \input language.def - \endgroup + \errmessage{No room for a new \string\language!}% + \fi + \global\chardef#1\last@language + \wlog{\string#1 = \string\language\the\last@language}} +\else + \countdef\last@language=19 + \def\addlanguage{\alloc@9\language\chardef\@cclvi} +\fi +\def\bbl@version{3.43} +\def\bbl@date{2020/04/28} +\def\adddialect#1#2{% + \global\chardef#1#2\relax + \bbl@usehooks{adddialect}{{#1}{#2}}% + \begingroup + \count@#1\relax + \def\bbl@elt##1##2##3##4{% + \ifnum\count@=##2\relax + \bbl@info{\string#1 = using hyphenrules for ##1\\% + (\string\language\the\count@)}% + \def\bbl@elt####1####2####3####4{}% + \fi}% + \bbl@cs{languages}% + \endgroup} +\def\bbl@fixname#1{% + \begingroup + \def\bbl@tempe{l@}% + \edef\bbl@tempd{\noexpand\@ifundefined{\noexpand\bbl@tempe#1}}% + \bbl@tempd + {\lowercase\expandafter{\bbl@tempd}% + {\uppercase\expandafter{\bbl@tempd}% + \@empty + {\edef\bbl@tempd{\def\noexpand#1{#1}}% + \uppercase\expandafter{\bbl@tempd}}}% + {\edef\bbl@tempd{\def\noexpand#1{#1}}% + \lowercase\expandafter{\bbl@tempd}}}% + \@empty + \edef\bbl@tempd{\endgroup\def\noexpand#1{#1}}% + \bbl@tempd + \bbl@exp{\\\bbl@usehooks{languagename}{{\languagename}{#1}}}} +\def\bbl@iflanguage#1{% + \@ifundefined{l@#1}{\@nolanerr{#1}\@gobble}\@firstofone} +\def\bbl@bcpcase#1#2#3#4\@@#5{% + \ifx\@empty#3% + \uppercase{\def#5{#1#2}}% + \else + \uppercase{\def#5{#1}}% + \lowercase{\edef#5{#5#2#3#4}}% + \fi} +\def\bbl@bcplookup#1-#2-#3-#4\@@{% + \let\bbl@bcp\relax + \lowercase{\def\bbl@tempa{#1}}% + \ifx\@empty#2% + \IfFileExists{babel-\bbl@tempa.ini}{\let\bbl@bcp\bbl@tempa}{}% + \else\ifx\@empty#3% + \bbl@bcpcase#2\@empty\@empty\@@\bbl@tempb + \IfFileExists{babel-\bbl@tempa-\bbl@tempb.ini}% + {\edef\bbl@bcp{\bbl@tempa-\bbl@tempb}}% + {}% + \ifx\bbl@bcp\relax + \IfFileExists{babel-\bbl@tempa.ini}{\let\bbl@bcp\bbl@tempa}{}% \fi + \else + \bbl@bcpcase#2\@empty\@empty\@@\bbl@tempb + \bbl@bcpcase#3\@empty\@empty\@@\bbl@tempc + \IfFileExists{babel-\bbl@tempa-\bbl@tempb-\bbl@tempc.ini}% + {\edef\bbl@bcp{\bbl@tempa-\bbl@tempb-\bbl@tempc}}% + {}% + \ifx\bbl@bcp\relax + \IfFileExists{babel-\bbl@tempa-\bbl@tempc.ini}% + {\edef\bbl@bcp{\bbl@tempa-\bbl@tempc}}% + {}% + \fi + \ifx\bbl@bcp\relax + \IfFileExists{babel-\bbl@tempa-\bbl@tempc.ini}% + {\edef\bbl@bcp{\bbl@tempa-\bbl@tempc}}% + {}% + \fi + \ifx\bbl@bcp\relax + \IfFileExists{babel-\bbl@tempa.ini}{\let\bbl@bcp\bbl@tempa}{}% + \fi + \fi\fi} +\let\bbl@autoload@options\@empty +\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.}% \fi - \chardef\l@english\z@ + \let\bbl@auxname\languagename % Still necessary. TODO + \bbl@ifunset{bbl@bcp@map@\languagename}{}% Move uplevel?? + {\edef\languagename{\@nameuse{bbl@bcp@map@\languagename}}}% + \ifbbl@bcpallowed + \expandafter\ifx\csname date\languagename\endcsname\relax + \expandafter + \bbl@bcplookup\languagename-\@empty-\@empty-\@empty\@@ + \ifx\bbl@bcp\relax\else % Returned by \bbl@bcplookup + \edef\languagename{\bbl@bcp@prefix\bbl@bcp}% + \edef\localename{\bbl@bcp@prefix\bbl@bcp}% + \expandafter\ifx\csname date\languagename\endcsname\relax + \let\bbl@initoload\bbl@bcp + \bbl@exp{\\\babelprovide[\bbl@autoload@bcpoptions]{\languagename}}% + \let\bbl@initoload\relax + \fi + \bbl@csarg\xdef{bcp@map@\bbl@bcp}{\localename}% + \fi + \fi + \fi + \expandafter\ifx\csname date\languagename\endcsname\relax + \IfFileExists{babel-\languagename.tex}% + {\bbl@exp{\\\babelprovide[\bbl@autoload@options]{\languagename}}}% + {}% + \fi} +\def\iflanguage#1{% + \bbl@iflanguage{#1}{% + \ifnum\csname l@#1\endcsname=\language + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi}} +\let\bbl@select@type\z@ +\edef\selectlanguage{% + \noexpand\protect + \expandafter\noexpand\csname selectlanguage \endcsname} +\ifx\@undefined\protect\let\protect\relax\fi +\let\xstring\string +\def\bbl@language@stack{} +\def\bbl@push@language{% + \ifx\languagename\@undefined\else + \xdef\bbl@language@stack{\languagename+\bbl@language@stack}% + \fi} +\def\bbl@pop@lang#1+#2{% + \edef\languagename{#1}\xdef#3{#2}} +\let\bbl@ifrestoring\@secondoftwo +\def\bbl@pop@language{% + \expandafter\bbl@pop@lang\bbl@language@stack&\bbl@language@stack + \let\bbl@ifrestoring\@firstoftwo + \expandafter\bbl@set@language\expandafter{\languagename}% + \let\bbl@ifrestoring\@secondoftwo} +\chardef\localeid\z@ +\def\bbl@id@last{0} % No real need for a new counter +\def\bbl@id@assign{% + \bbl@ifunset{bbl@id@@\languagename}% + {\count@\bbl@id@last\relax + \advance\count@\@ne + \bbl@csarg\chardef{id@@\languagename}\count@ + \edef\bbl@id@last{\the\count@}% + \ifcase\bbl@engine\or + \directlua{ + Babel = Babel or {} + Babel.locale_props = Babel.locale_props or {} + Babel.locale_props[\bbl@id@last] = {} + Babel.locale_props[\bbl@id@last].name = '\languagename' + }% + \fi}% + {}% + \chardef\localeid\bbl@cl{id@}} +\expandafter\def\csname selectlanguage \endcsname#1{% + \ifnum\bbl@hymapsel=\@cclv\let\bbl@hymapsel\tw@\fi + \bbl@push@language + \aftergroup\bbl@pop@language + \bbl@set@language{#1}} +\def\BabelContentsFiles{toc,lof,lot} +\def\bbl@set@language#1{% from selectlanguage, pop@ + % The old buggy way. Preserved for compatibility. + \edef\languagename{% + \ifnum\escapechar=\expandafter`\string#1\@empty + \else\string#1\@empty\fi}% + \ifcat\relax\noexpand#1% + \expandafter\ifx\csname date\languagename\endcsname\relax + \edef\languagename{#1}% + \let\localename\languagename + \else + \bbl@info{Using '\string\language' instead of 'language' is\\% + deprecated. If what you want is to use a\\% + macro containing the actual locale, make\\% + sure it does not not match any language.\\% + Reported}% + \ifx\scantokens\@undefined + \def\localename{??}% + \else + \scantokens\expandafter{\expandafter + \def\expandafter\localename\expandafter{\languagename}}% + \fi + \fi + \else + \def\localename{#1}% This one has the correct catcodes + \fi + \select@language{\languagename}% + % write to auxs + \expandafter\ifx\csname date\languagename\endcsname\relax\else + \if@filesw + \ifx\babel@aux\@gobbletwo\else % Set if single in the first, redundant + \protected@write\@auxout{}{\string\babel@aux{\bbl@auxname}{}}% + \fi + \bbl@usehooks{write}{}% + \fi + \fi} +\newif\ifbbl@bcpallowed +\bbl@bcpallowedfalse +\def\select@language#1{% from set@, babel@aux + % set hymap + \ifnum\bbl@hymapsel=\@cclv\chardef\bbl@hymapsel4\relax\fi + % set name + \edef\languagename{#1}% + \bbl@fixname\languagename + % TODO. name@map must be here? + \bbl@provide@locale + \bbl@iflanguage\languagename{% + \expandafter\ifx\csname date\languagename\endcsname\relax + \bbl@error + {Unknown language `\languagename'. Either you have\\% + misspelled its name, it has not been installed,\\% + or you requested it in a previous run. Fix its name,\\% + install it or just rerun the file, respectively. In\\% + some cases, you may need to remove the aux file}% + {You may proceed, but expect wrong results}% + \else + % set type + \let\bbl@select@type\z@ + \expandafter\bbl@switch\expandafter{\languagename}% + \fi}} +\def\babel@aux#1#2{% + \select@language{#1}% + \bbl@foreach\BabelContentsFiles{% + \@writefile{##1}{\babel@toc{#1}{#2}}}}% %% TODO - ok in plain? +\def\babel@toc#1#2{% + \select@language{#1}} +\newif\ifbbl@usedategroup +\def\bbl@switch#1{% from select@, foreign@ + % make sure there is info for the language if so requested + \bbl@ensureinfo{#1}% + % restore + \originalTeX + \expandafter\def\expandafter\originalTeX\expandafter{% + \csname noextras#1\endcsname + \let\originalTeX\@empty + \babel@beginsave}% + \bbl@usehooks{afterreset}{}% + \languageshorthands{none}% + % set the locale id + \bbl@id@assign + % switch captions, date + \ifcase\bbl@select@type + \ifhmode + \hskip\z@skip % trick to ignore spaces + \csname captions#1\endcsname\relax + \csname date#1\endcsname\relax + \loop\ifdim\lastskip>\z@\unskip\repeat\unskip + \else + \csname captions#1\endcsname\relax + \csname date#1\endcsname\relax + \fi + \else + \ifbbl@usedategroup % if \foreign... within \<lang>date + \bbl@usedategroupfalse + \ifhmode + \hskip\z@skip % trick to ignore spaces + \csname date#1\endcsname\relax + \loop\ifdim\lastskip>\z@\unskip\repeat\unskip + \else + \csname date#1\endcsname\relax + \fi + \fi + \fi + % switch extras + \bbl@usehooks{beforeextras}{}% + \csname extras#1\endcsname\relax + \bbl@usehooks{afterextras}{}% + % > babel-ensure + % > babel-sh-<short> + % > babel-bidi + % > babel-fontspec + % hyphenation - case mapping + \ifcase\bbl@opt@hyphenmap\or + \def\BabelLower##1##2{\lccode##1=##2\relax}% + \ifnum\bbl@hymapsel>4\else + \csname\languagename @bbl@hyphenmap\endcsname + \fi + \chardef\bbl@opt@hyphenmap\z@ + \else + \ifnum\bbl@hymapsel>\bbl@opt@hyphenmap\else + \csname\languagename @bbl@hyphenmap\endcsname + \fi + \fi + \global\let\bbl@hymapsel\@cclv + % hyphenation - patterns + \bbl@patterns{#1}% + % hyphenation - mins + \babel@savevariable\lefthyphenmin + \babel@savevariable\righthyphenmin + \expandafter\ifx\csname #1hyphenmins\endcsname\relax + \set@hyphenmins\tw@\thr@@\relax + \else + \expandafter\expandafter\expandafter\set@hyphenmins + \csname #1hyphenmins\endcsname\relax + \fi} +\long\def\otherlanguage#1{% + \ifnum\bbl@hymapsel=\@cclv\let\bbl@hymapsel\thr@@\fi + \csname selectlanguage \endcsname{#1}% + \ignorespaces} +\long\def\endotherlanguage{% + \global\@ignoretrue\ignorespaces} +\expandafter\def\csname otherlanguage*\endcsname#1{% + \ifnum\bbl@hymapsel=\@cclv\chardef\bbl@hymapsel4\relax\fi + \foreign@language{#1}} +\expandafter\let\csname endotherlanguage*\endcsname\relax +\providecommand\bbl@beforeforeign{} +\edef\foreignlanguage{% + \noexpand\protect + \expandafter\noexpand\csname foreignlanguage \endcsname} +\expandafter\def\csname foreignlanguage \endcsname{% + \@ifstar\bbl@foreign@s\bbl@foreign@x} +\def\bbl@foreign@x#1#2{% + \begingroup + \let\BabelText\@firstofone + \bbl@beforeforeign + \foreign@language{#1}% + \bbl@usehooks{foreign}{}% + \BabelText{#2}% Now in horizontal mode! + \endgroup} +\def\bbl@foreign@s#1#2{% TODO - \shapemode, \@setpar, ?\@@par + \begingroup + {\par}% + \let\BabelText\@firstofone + \foreign@language{#1}% + \bbl@usehooks{foreign*}{}% + \bbl@dirparastext + \BabelText{#2}% Still in vertical mode! + {\par}% + \endgroup} +\def\foreign@language#1{% + % set name + \edef\languagename{#1}% + \bbl@fixname\languagename + % TODO. name@map here? + \bbl@provide@locale + \bbl@iflanguage\languagename{% + \expandafter\ifx\csname date\languagename\endcsname\relax + \bbl@warning % TODO - why a warning, not an error? + {Unknown language `#1'. Either you have\\% + misspelled its name, it has not been installed,\\% + or you requested it in a previous run. Fix its name,\\% + install it or just rerun the file, respectively. In\\% + some cases, you may need to remove the aux file.\\% + I'll proceed, but expect wrong results.\\% + Reported}% + \fi + % set type + \let\bbl@select@type\@ne + \expandafter\bbl@switch\expandafter{\languagename}}} +\let\bbl@hyphlist\@empty +\let\bbl@hyphenation@\relax +\let\bbl@pttnlist\@empty +\let\bbl@patterns@\relax +\let\bbl@hymapsel=\@cclv +\def\bbl@patterns#1{% + \language=\expandafter\ifx\csname l@#1:\f@encoding\endcsname\relax + \csname l@#1\endcsname + \edef\bbl@tempa{#1}% + \else + \csname l@#1:\f@encoding\endcsname + \edef\bbl@tempa{#1:\f@encoding}% + \fi + \@expandtwoargs\bbl@usehooks{patterns}{{#1}{\bbl@tempa}}% + % > luatex + \@ifundefined{bbl@hyphenation@}{}{% Can be \relax! + \begingroup + \bbl@xin@{,\number\language,}{,\bbl@hyphlist}% + \ifin@\else + \@expandtwoargs\bbl@usehooks{hyphenation}{{#1}{\bbl@tempa}}% + \hyphenation{% + \bbl@hyphenation@ + \@ifundefined{bbl@hyphenation@#1}% + \@empty + {\space\csname bbl@hyphenation@#1\endcsname}}% + \xdef\bbl@hyphlist{\bbl@hyphlist\number\language,}% + \fi + \endgroup}} +\def\hyphenrules#1{% + \edef\bbl@tempf{#1}% + \bbl@fixname\bbl@tempf + \bbl@iflanguage\bbl@tempf{% + \expandafter\bbl@patterns\expandafter{\bbl@tempf}% + \languageshorthands{none}% + \expandafter\ifx\csname\bbl@tempf hyphenmins\endcsname\relax + \set@hyphenmins\tw@\thr@@\relax + \else + \expandafter\expandafter\expandafter\set@hyphenmins + \csname\bbl@tempf hyphenmins\endcsname\relax + \fi}} +\let\endhyphenrules\@empty +\def\providehyphenmins#1#2{% + \expandafter\ifx\csname #1hyphenmins\endcsname\relax + \@namedef{#1hyphenmins}{#2}% + \fi} +\def\set@hyphenmins#1#2{% + \lefthyphenmin#1\relax + \righthyphenmin#2\relax} +\ifx\ProvidesFile\@undefined + \def\ProvidesLanguage#1[#2 #3 #4]{% + \wlog{Language: #1 #4 #3 <#2>}% + } +\else + \def\ProvidesLanguage#1{% + \begingroup + \catcode`\ 10 % + \@makeother\/% + \@ifnextchar[%] + {\@provideslanguage{#1}}{\@provideslanguage{#1}[]}} + \def\@provideslanguage#1[#2]{% + \wlog{Language: #1 #2}% + \expandafter\xdef\csname ver@#1.ldf\endcsname{#2}% + \endgroup} \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}} +\let\uselocale\setlocale +\let\locale\setlocale +\let\selectlocale\setlocale +\let\localename\setlocale +\let\textlocale\setlocale +\let\textlanguage\setlocale +\let\languagetext\setlocale +\edef\bbl@nulllanguage{\string\language=0} +\ifx\PackageError\@undefined % TODO. Move to Plain + \def\bbl@error#1#2{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J(babel) }% + \errhelp{#2}\errmessage{\\#1}% + \endgroup} + \def\bbl@warning#1{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J(babel) }% + \message{\\#1}% + \endgroup} + \let\bbl@infowarn\bbl@warning + \def\bbl@info#1{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J}% + \wlog{#1}% + \endgroup} +\fi +\def\bbl@nocaption{\protect\bbl@nocaption@i} +\def\bbl@nocaption@i#1#2{% 1: text to be printed 2: caption macro \langXname + \global\@namedef{#2}{\textbf{?#1?}}% + \@nameuse{#2}% + \bbl@warning{% + \@backslashchar#2 not set. Please, define\\% + it in the preamble with something like:\\% + \string\renewcommand\@backslashchar#2{..}\\% + Reported}} +\def\bbl@tentative{\protect\bbl@tentative@i} +\def\bbl@tentative@i#1{% + \bbl@warning{% + Some functions for '#1' are tentative.\\% + 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\space yet.\\% + Perhaps you misspelled it or your installation\\% + is not complete}% + {Your command will be ignored, type <return> to proceed}} +\def\@nopatterns#1{% + \bbl@warning + {No hyphenation patterns were preloaded for\\% + the language `#1' into the format.\\% + Please, configure your TeX system to add them and\\% + rebuild the format. Now I will use the patterns\\% + preloaded for \bbl@nulllanguage\space instead}} +\let\bbl@usehooks\@gobbletwo +\ifx\bbl@onlyswitch\@empty\endinput\fi + % Here ended switch.def \ifx\directlua\@undefined\else \ifx\bbl@luapatterns\@undefined \input luababel.def @@ -246,6 +1041,28 @@ \else \@ne \fi +\bbl@trace{Compatibility with language.def} +\ifx\bbl@languages\@undefined + \ifx\directlua\@undefined + \openin1 = language.def % TODO. Remove hardcoded number + \ifeof1 + \closein1 + \message{I couldn't find the file language.def} + \else + \closein1 + \begingroup + \def\addlanguage#1#2#3#4#5{% + \expandafter\ifx\csname lang@#1\endcsname\relax\else + \global\expandafter\let\csname l@#1\expandafter\endcsname + \csname lang@#1\endcsname + \fi}% + \def\uselanguage#1{}% + \input language.def + \endgroup + \fi + \fi + \chardef\l@english\z@ +\fi \def\addto#1#2{% \ifx#1\@undefined \def#1{#2}% @@ -304,7 +1121,7 @@ adddialect=2,patterns=2,defaultcommands=0,encodedcommands=2,write=0,% beforeextras=0,afterextras=0,stopcommands=0,stringprocess=0,% hyphenation=2,initiateactive=3,afterreset=0,foreign=0,foreign*=0,% - beforestart=0,languagename=0} + beforestart=0,languagename=2} \bbl@trace{Defining babelensure} \newcommand\babelensure[2][]{% TODO - revise test files \AddBabelHook{babel-ensure}{afterextras}{% @@ -331,7 +1148,7 @@ \def\<bbl@e@#2>{\the\toks@{\bbl@ens@fontenc}}}} \def\bbl@ensure#1#2#3{% 1: include 2: exclude 3: fontenc \def\bbl@tempb##1{% elt for (excluding) \bbl@captionslist list - \ifx##1\@undefined % 3.32 - Don't assume the macros exists + \ifx##1\@undefined % 3.32 - Don't assume the macro exists \edef##1{\noexpand\bbl@nocaption {\bbl@stripslash##1}{\languagename\bbl@stripslash##1}}% \fi @@ -370,7 +1187,7 @@ \tablename\partname\enclname\ccname\headtoname\pagename\seename \alsoname\proofname\glossaryname} \bbl@trace{Macros for setting language files up} -\def\bbl@ldfinit{% +\def\bbl@ldfinit{% TODO. Merge into the next macro? Unused elsewhere \let\bbl@screset\@empty \let\BabelStrings\bbl@opt@string \let\BabelOptions\@empty @@ -401,13 +1218,15 @@ \catcode`\@=\atcatcode \let\atcatcode\relax \catcode`\==\eqcatcode \let\eqcatcode\relax \endinput} -\def\bbl@afterldf#1{% +\def\bbl@afterldf#1{% TODO. Merge into the next macro? Unused elsewhere \bbl@afterlang \let\bbl@afterlang\relax \let\BabelModifiers\relax \let\bbl@screset\relax}% \def\ldf@finish#1{% - \loadlocalcfg{#1}% + \ifx\loadlocalcfg\@undefined\else % For LaTeX 209 + \loadlocalcfg{#1}% + \fi \bbl@afterldf{#1}% \expandafter\main@language\expandafter{#1}% \catcode`\@=\atcatcode \let\atcatcode\relax @@ -417,24 +1236,24 @@ \@onlypreamble\ldf@finish \def\main@language#1{% \def\bbl@main@language{#1}% - \let\languagename\bbl@main@language + \let\languagename\bbl@main@language % TODO. Set localename \bbl@id@assign \bbl@patterns{\languagename}} \def\bbl@beforestart{% \bbl@usehooks{beforestart}{}% \global\let\bbl@beforestart\relax} \AtBeginDocument{% - \bbl@cs{beforestart}% + \@nameuse{bbl@beforestart}% \if@filesw - \immediate\write\@mainaux{\string\bbl@cs{beforestart}}% + \immediate\write\@mainaux{\string\@nameuse{bbl@beforestart}}% \fi \expandafter\selectlanguage\expandafter{\bbl@main@language}% - \ifbbl@single % must go after the line above + \ifbbl@single % must go after the line above. \renewcommand\selectlanguage[1]{}% \renewcommand\foreignlanguage[2]{#2}% \global\let\babel@aux\@gobbletwo % Also as flag \fi - \ifcase\bbl@engine\or\pagedir\bodydir\fi} % TODO - a better place + \ifcase\bbl@engine\or\pagedir\bodydir\fi} % TODO - a better place \def\select@language@x#1{% \ifcase\bbl@select@type \bbl@ifsamestring\languagename{#1}{}{\select@language{#1}}% @@ -570,7 +1389,7 @@ \bbl@afterfi\csname#1@sh@#2@sel\endcsname \fi} \begingroup -\bbl@ifunset{ifincsname}% +\bbl@ifunset{ifincsname}% TODO. Ugly. Correct? {\gdef\active@prefix#1{% \ifx\protect\@typeset@protect \else @@ -641,7 +1460,7 @@ \expandafter\@firstoftwo \fi} \def\user@group{user} -\def\language@group{english} +\def\language@group{english} % TODO. I don't like defaults \def\system@group{system} \def\useshorthands{% \@ifstar\bbl@usesh@s{\bbl@usesh@x{}}} @@ -947,7 +1766,7 @@ \def\bbl@disc#1#2{\nobreak\discretionary{#2-}{}{#1}\bbl@allowhyphens} \bbl@trace{Multiencoding strings} \def\bbl@toglobal#1{\global\let#1#1} -\def\bbl@recatcode#1{% +\def\bbl@recatcode#1{% TODO. Used only once? \@tempcnta="7F \def\bbl@tempa{% \ifnum\@tempcnta>"FF\else @@ -1190,6 +2009,20 @@ \box\z@\kern-.04em\bbl@allowhyphens}} \ProvideTextCommandDefault{\quotesinglbase}{% \UseTextSymbol{OT1}{\quotesinglbase}} +\ProvideTextCommand{\guillemetleft}{OT1}{% + \ifmmode + \ll + \else + \save@sf@q{\nobreak + \raise.2ex\hbox{$\scriptscriptstyle\ll$}\bbl@allowhyphens}% + \fi} +\ProvideTextCommand{\guillemetright}{OT1}{% + \ifmmode + \gg + \else + \save@sf@q{\nobreak + \raise.2ex\hbox{$\scriptscriptstyle\gg$}\bbl@allowhyphens}% + \fi} \ProvideTextCommand{\guillemotleft}{OT1}{% \ifmmode \ll @@ -1204,6 +2037,10 @@ \save@sf@q{\nobreak \raise.2ex\hbox{$\scriptscriptstyle\gg$}\bbl@allowhyphens}% \fi} +\ProvideTextCommandDefault{\guillemetleft}{% + \UseTextSymbol{OT1}{\guillemetleft}} +\ProvideTextCommandDefault{\guillemetright}{% + \UseTextSymbol{OT1}{\guillemetright}} \ProvideTextCommandDefault{\guillemotleft}{% \UseTextSymbol{OT1}{\guillemotleft}} \ProvideTextCommandDefault{\guillemotright}{% @@ -1287,9 +2124,9 @@ \ProvideTextCommandDefault{\frq}{% \textormath{\guilsinglright}{\mbox{\guilsinglright}}} \ProvideTextCommandDefault{\flqq}{% - \textormath{\guillemotleft}{\mbox{\guillemotleft}}} + \textormath{\guillemetleft}{\mbox{\guillemetleft}}} \ProvideTextCommandDefault{\frqq}{% - \textormath{\guillemotright}{\mbox{\guillemotright}}} + \textormath{\guillemetright}{\mbox{\guillemetright}}} \def\umlauthigh{% \def\bbl@umlauta##1{\leavevmode\bgroup% \expandafter\accent\csname\f@encoding dqpos\endcsname @@ -1329,7 +2166,6 @@ \ifx\l@english\@undefined \chardef\l@english\z@ \fi -\main@language{english} \bbl@trace{Bidi layout} \providecommand\IfBabelLayout[3]{#3}% \newcommand\BabelPatchSection[1]{% @@ -1406,10 +2242,14 @@ % == import, captions == \ifx\bbl@KVP@import\@nil\else \bbl@exp{\\\bbl@ifblank{\bbl@KVP@import}}% - {\begingroup - \def\BabelBeforeIni##1##2{\gdef\bbl@KVP@import{##1}\endinput}% - \InputIfFileExists{babel-#2.tex}{}{}% - \endgroup}% + {\ifx\bbl@initoload\relax + \begingroup + \def\BabelBeforeIni##1##2{\gdef\bbl@KVP@import{##1}\endinput}% + \InputIfFileExists{babel-#2.tex}{}{}% + \endgroup + \else + \xdef\bbl@KVP@import{\bbl@initoload}% + \fi}% {}% \fi \ifx\bbl@KVP@captions\@nil @@ -1433,11 +2273,14 @@ \\\foreignlanguage{\languagename}% {####1}}}}% {}% + \bbl@exp{% + \\\bbl@toglobal\<bbl@ensure@\languagename>% + \\\bbl@toglobal\<bbl@ensure@\languagename\space>}% % At this point all parameters are defined if 'import'. Now we % execute some code depending on them. But what about if nothing was % imported? We just load the very basic parameters: ids and a few % more. - \bbl@ifunset{bbl@lname@#2}% + \bbl@ifunset{bbl@lname@#2}% TODO. Duplicated {\def\BabelBeforeIni##1##2{% \begingroup \catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\;=12 % @@ -1448,14 +2291,21 @@ \bbl@exportkey{dgnat}{numbers.digits.native}{}% \bbl@exportkey{prehc}{typography.prehyphenchar}{}% \bbl@exportkey{lnbrk}{typography.linebreaking}{h}% + \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}% + \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}% \bbl@exportkey{hyphr}{typography.hyphenrules}{}% \bbl@exportkey{hyoth}{typography.hyphenate.other}{}% \bbl@exportkey{intsp}{typography.intraspace}{}% - \endinput - \endgroup}% boxed, to avoid extra spaces: - {\setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}}}% + \ifx\bbl@initoload\relax\endinput\fi + \endgroup}% + \begingroup % boxed, to avoid extra spaces: + \ifx\bbl@initoload\relax + \setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}% + \else + \setbox\z@\hbox{\BabelBeforeIni{\bbl@initoload}{}}% + \fi + \endgroup}% {}% - % - % == script, language == % Override the values from ini or defines them \ifx\bbl@KVP@script\@nil\else @@ -1706,7 +2556,11 @@ \fi}% \expandafter\bbl@tempb\bbl@captionslist\@empty \else - \bbl@read@ini{\bbl@KVP@captions}{data}% Here all letters cat = 11 + \ifx\bbl@initoload\relax + \bbl@read@ini{\bbl@KVP@captions}{data}% Here letters cat = 11 + \else + \bbl@read@ini{\bbl@initoload}{data}% Here all letters cat = 11 + \fi \bbl@after@ini \bbl@savestrings \fi @@ -1719,8 +2573,34 @@ \bbl@savedate \fi \bbl@endcommands + \bbl@ifunset{bbl@lname@#1}% TODO. Duplicated + {\def\BabelBeforeIni##1##2{% + \begingroup + \catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\;=12 % + \let\bbl@ini@captions@aux\@gobbletwo + \def\bbl@inidate ####1.####2.####3.####4\relax ####5####6{}% + \bbl@read@ini{##1}{basic data}% + \bbl@exportkey{prehc}{typography.prehyphenchar}{}% + \bbl@exportkey{lnbrk}{typography.linebreaking}{h}% + \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}% + \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}% + \bbl@exportkey{hyphr}{typography.hyphenrules}{}% + \bbl@exportkey{hyoth}{typography.hyphenate.other}{}% + \bbl@exportkey{intsp}{typography.intraspace}{}% + \bbl@exportkey{chrng}{characters.ranges}{}% + \bbl@exportkey{dgnat}{numbers.digits.native}{}% + \ifx\bbl@initoload\relax\endinput\fi + \endgroup}% + \begingroup % boxed, to avoid extra spaces: + \ifx\bbl@initoload\relax + \setbox\z@\hbox{\InputIfFileExists{babel-#1.tex}{}{}}% + \else + \setbox\z@\hbox{\BabelBeforeIni{\bbl@initoload}{}}% + \fi + \endgroup}% + {}% \bbl@exp{% - \def\<#1hyphenmins>{% + \gdef\<#1hyphenmins>{% {\bbl@ifunset{bbl@lfthm@#1}{2}{\bbl@cs{lfthm@#1}}}% {\bbl@ifunset{bbl@rgthm@#1}{3}{\bbl@cs{rgthm@#1}}}}}% \bbl@provide@hyphens{#1}% @@ -1758,7 +2638,14 @@ \fi}% \fi \ifx\bbl@tempa\relax % if no opt or no language in opt found - \ifx\bbl@KVP@import\@nil\else % if importing + \ifx\bbl@KVP@import\@nil + \ifx\bbl@initoload\relax\else + \bbl@exp{% and hyphenrules is not empty + \\\bbl@ifblank{\bbl@cs{hyphr@#1}}% + {}% + {\let\\\bbl@tempa\<l@\bbl@cl{hyphr}>}}% + \fi + \else % if importing \bbl@exp{% and hyphenrules is not empty \\\bbl@ifblank{\bbl@cs{hyphr@#1}}% {}% @@ -1899,13 +2786,13 @@ \in@{.1$}{#1$}% \ifin@ \bbl@replace\bbl@tempc{.1}{}% - \bbl@csarg\xdef{cntr@\bbl@tempc @\languagename}{% + \bbl@csarg\protected@xdef{cntr@\bbl@tempc @\languagename}{% \noexpand\bbl@alphnumeral{\bbl@tempc}}% \fi \in@{.F.}{#1}% \ifin@\else\in@{.S.}{#1}\fi \ifin@ - \bbl@csarg\xdef{cntr@#1@\languagename}{\bbl@tempb*}% + \bbl@csarg\protected@xdef{cntr@#1@\languagename}{\bbl@tempb*}% \else \toks@{}% Required by \bbl@buildifcase, which returns \bbl@tempa \expandafter\bbl@buildifcase\bbl@tempb* \\ % Space after \\ @@ -2117,7 +3004,10 @@ \fi} \newcommand\LocaleForEach{\bbl@foreach\bbl@ini@loaded} \newcommand\babeladjust[1]{% TODO. Error handling. - \bbl@forkv{#1}{\bbl@cs{ADJ@##1@##2}}} + \bbl@forkv{#1}{% + \bbl@ifunset{bbl@ADJ@##1@##2}% + {\bbl@cs{ADJ@##1}{##2}}% + {\bbl@cs{ADJ@##1@##2}}}} \def\bbl@adjust@lua#1#2{% \ifvmode \ifnum\currentgrouplevel=\z@ @@ -2168,455 +3058,24 @@ \bbl@adjust@layout{\let\list\bbl@OL@list}} \@namedef{bbl@ADJ@hyphenation.extra@on}{% \bbl@activateposthyphen} -{\def\format{lplain} -\ifx\fmtname\format -\else - \def\format{LaTeX2e} - \ifx\fmtname\format - \else - \aftergroup\endinput - \fi -\fi} -\bbl@trace{Cross referencing macros} -\ifx\bbl@opt@safe\@empty\else - \def\@newl@bel#1#2#3{% - {\@safe@activestrue - \bbl@ifunset{#1@#2}% - \relax - {\gdef\@multiplelabels{% - \@latex@warning@no@line{There were multiply-defined labels}}% - \@latex@warning@no@line{Label `#2' multiply defined}}% - \global\@namedef{#1@#2}{#3}}} - \CheckCommand*\@testdef[3]{% - \def\reserved@a{#3}% - \expandafter\ifx\csname#1@#2\endcsname\reserved@a - \else - \@tempswatrue - \fi} - \def\@testdef#1#2#3{% - \@safe@activestrue - \expandafter\let\expandafter\bbl@tempa\csname #1@#2\endcsname - \def\bbl@tempb{#3}% - \@safe@activesfalse - \ifx\bbl@tempa\relax - \else - \edef\bbl@tempa{\expandafter\strip@prefix\meaning\bbl@tempa}% - \fi - \edef\bbl@tempb{\expandafter\strip@prefix\meaning\bbl@tempb}% - \ifx\bbl@tempa\bbl@tempb - \else - \@tempswatrue - \fi} -\fi -\bbl@xin@{R}\bbl@opt@safe -\ifin@ - \bbl@redefinerobust\ref#1{% - \@safe@activestrue\org@ref{#1}\@safe@activesfalse} - \bbl@redefinerobust\pageref#1{% - \@safe@activestrue\org@pageref{#1}\@safe@activesfalse} -\else - \let\org@ref\ref - \let\org@pageref\pageref -\fi -\bbl@xin@{B}\bbl@opt@safe -\ifin@ - \bbl@redefine\@citex[#1]#2{% - \@safe@activestrue\edef\@tempa{#2}\@safe@activesfalse - \org@@citex[#1]{\@tempa}} - \AtBeginDocument{% - \@ifpackageloaded{natbib}{% - \def\@citex[#1][#2]#3{% - \@safe@activestrue\edef\@tempa{#3}\@safe@activesfalse - \org@@citex[#1][#2]{\@tempa}}% - }{}} - \AtBeginDocument{% - \@ifpackageloaded{cite}{% - \def\@citex[#1]#2{% - \@safe@activestrue\org@@citex[#1]{#2}\@safe@activesfalse}% - }{}} - \bbl@redefine\nocite#1{% - \@safe@activestrue\org@nocite{#1}\@safe@activesfalse} - \bbl@redefine\bibcite{% - \bbl@cite@choice - \bibcite} - \def\bbl@bibcite#1#2{% - \org@bibcite{#1}{\@safe@activesfalse#2}} - \def\bbl@cite@choice{% - \global\let\bibcite\bbl@bibcite - \@ifpackageloaded{natbib}{\global\let\bibcite\org@bibcite}{}% - \@ifpackageloaded{cite}{\global\let\bibcite\org@bibcite}{}% - \global\let\bbl@cite@choice\relax} - \AtBeginDocument{\bbl@cite@choice} - \bbl@redefine\@bibitem#1{% - \@safe@activestrue\org@@bibitem{#1}\@safe@activesfalse} -\else - \let\org@nocite\nocite - \let\org@@citex\@citex - \let\org@bibcite\bibcite - \let\org@@bibitem\@bibitem -\fi -\bbl@trace{Marks} -\IfBabelLayout{sectioning} - {\ifx\bbl@opt@headfoot\@nnil - \g@addto@macro\@resetactivechars{% - \set@typeset@protect - \expandafter\select@language@x\expandafter{\bbl@main@language}% - \let\protect\noexpand - \edef\thepage{% - \noexpand\babelsublr{\unexpanded\expandafter{\thepage}}}}% - \fi} - {\ifbbl@single\else - \bbl@ifunset{markright }\bbl@redefine\bbl@redefinerobust - \markright#1{% - \bbl@ifblank{#1}% - {\org@markright{}}% - {\toks@{#1}% - \bbl@exp{% - \\\org@markright{\\\protect\\\foreignlanguage{\languagename}% - {\\\protect\\\bbl@restore@actives\the\toks@}}}}}% - \ifx\@mkboth\markboth - \def\bbl@tempc{\let\@mkboth\markboth} - \else - \def\bbl@tempc{} - \fi - \bbl@ifunset{markboth }\bbl@redefine\bbl@redefinerobust - \markboth#1#2{% - \protected@edef\bbl@tempb##1{% - \protect\foreignlanguage - {\languagename}{\protect\bbl@restore@actives##1}}% - \bbl@ifblank{#1}% - {\toks@{}}% - {\toks@\expandafter{\bbl@tempb{#1}}}% - \bbl@ifblank{#2}% - {\@temptokena{}}% - {\@temptokena\expandafter{\bbl@tempb{#2}}}% - \bbl@exp{\\\org@markboth{\the\toks@}{\the\@temptokena}}} - \bbl@tempc - \fi} % end ifbbl@single, end \IfBabelLayout -\bbl@trace{Preventing clashes with other packages} -\bbl@xin@{R}\bbl@opt@safe -\ifin@ - \AtBeginDocument{% - \@ifpackageloaded{ifthen}{% - \bbl@redefine@long\ifthenelse#1#2#3{% - \let\bbl@temp@pref\pageref - \let\pageref\org@pageref - \let\bbl@temp@ref\ref - \let\ref\org@ref - \@safe@activestrue - \org@ifthenelse{#1}% - {\let\pageref\bbl@temp@pref - \let\ref\bbl@temp@ref - \@safe@activesfalse - #2}% - {\let\pageref\bbl@temp@pref - \let\ref\bbl@temp@ref - \@safe@activesfalse - #3}% - }% - }{}% - } - \AtBeginDocument{% - \@ifpackageloaded{varioref}{% - \bbl@redefine\@@vpageref#1[#2]#3{% - \@safe@activestrue - \org@@@vpageref{#1}[#2]{#3}% - \@safe@activesfalse}% - \bbl@redefine\vrefpagenum#1#2{% - \@safe@activestrue - \org@vrefpagenum{#1}{#2}% - \@safe@activesfalse}% - \expandafter\def\csname Ref \endcsname#1{% - \protected@edef\@tempa{\org@ref{#1}}\expandafter\MakeUppercase\@tempa} - }{}% - } -\fi -\AtEndOfPackage{% - \AtBeginDocument{% - \@ifpackageloaded{hhline}% - {\expandafter\ifx\csname normal@char\string:\endcsname\relax - \else - \makeatletter - \def\@currname{hhline}\input{hhline.sty}\makeatother - \fi}% - {}}} -\AtBeginDocument{% - \ifx\pdfstringdefDisableCommands\@undefined\else - \pdfstringdefDisableCommands{\languageshorthands{system}}% - \fi} -\DeclareRobustCommand{\FOREIGNLANGUAGE}[1]{% - \lowercase{\foreignlanguage{#1}}} -\def\substitutefontfamily#1#2#3{% - \lowercase{\immediate\openout15=#1#2.fd\relax}% - \immediate\write15{% - \string\ProvidesFile{#1#2.fd}% - [\the\year/\two@digits{\the\month}/\two@digits{\the\day} - \space generated font description file]^^J - \string\DeclareFontFamily{#1}{#2}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}^^J - \string\DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/bx/n}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/bx/it}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/bx/sl}{}^^J - \string\DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/bx/sc}{}^^J - }% - \closeout15 - } -\@onlypreamble\substitutefontfamily -\bbl@trace{Encoding and fonts} -\newcommand\BabelNonASCII{LGR,X2,OT2,OT3,OT6,LHE,LWN,LMA,LMC,LMS,LMU,PU,PD1} -\newcommand\BabelNonText{TS1,T3,TS3} -\let\org@TeX\TeX -\let\org@LaTeX\LaTeX -\let\ensureascii\@firstofone -\AtBeginDocument{% - \in@false - \bbl@foreach\BabelNonASCII{% is there a text non-ascii enc? - \ifin@\else - \lowercase{\bbl@xin@{,#1enc.def,}{,\@filelist,}}% - \fi}% - \ifin@ % if a text non-ascii has been loaded - \def\ensureascii#1{{\fontencoding{OT1}\selectfont#1}}% - \DeclareTextCommandDefault{\TeX}{\org@TeX}% - \DeclareTextCommandDefault{\LaTeX}{\org@LaTeX}% - \def\bbl@tempb#1\@@{\uppercase{\bbl@tempc#1}ENC.DEF\@empty\@@}% - \def\bbl@tempc#1ENC.DEF#2\@@{% - \ifx\@empty#2\else - \bbl@ifunset{T@#1}% - {}% - {\bbl@xin@{,#1,}{,\BabelNonASCII,\BabelNonText,}% - \ifin@ - \DeclareTextCommand{\TeX}{#1}{\ensureascii{\org@TeX}}% - \DeclareTextCommand{\LaTeX}{#1}{\ensureascii{\org@LaTeX}}% - \else - \def\ensureascii##1{{\fontencoding{#1}\selectfont##1}}% - \fi}% - \fi}% - \bbl@foreach\@filelist{\bbl@tempb#1\@@}% TODO - \@@ de mas?? - \bbl@xin@{,\cf@encoding,}{,\BabelNonASCII,\BabelNonText,}% - \ifin@\else - \edef\ensureascii#1{{% - \noexpand\fontencoding{\cf@encoding}\noexpand\selectfont#1}}% - \fi - \fi} -\AtEndOfPackage{\edef\latinencoding{\cf@encoding}} -\AtBeginDocument{% - \@ifpackageloaded{fontspec}% - {\xdef\latinencoding{% - \ifx\UTFencname\@undefined - EU\ifcase\bbl@engine\or2\or1\fi - \else - \UTFencname - \fi}}% - {\gdef\latinencoding{OT1}% - \ifx\cf@encoding\bbl@t@one - \xdef\latinencoding{\bbl@t@one}% - \else - \ifx\@fontenc@load@list\@undefined - \@ifl@aded{def}{t1enc}{\xdef\latinencoding{\bbl@t@one}}{}% - \else - \def\@elt#1{,#1,}% - \edef\bbl@tempa{\expandafter\@gobbletwo\@fontenc@load@list}% - \let\@elt\relax - \bbl@xin@{,T1,}\bbl@tempa - \ifin@ - \xdef\latinencoding{\bbl@t@one}% - \fi - \fi - \fi}} -\DeclareRobustCommand{\latintext}{% - \fontencoding{\latinencoding}\selectfont - \def\encodingdefault{\latinencoding}} -\ifx\@undefined\DeclareTextFontCommand - \DeclareRobustCommand{\textlatin}[1]{\leavevmode{\latintext #1}} -\else - \DeclareTextFontCommand{\textlatin}{\latintext} -\fi -\bbl@trace{Basic (internal) bidi support} -\def\bbl@alscripts{,Arabic,Syriac,Thaana,} -\def\bbl@rscripts{% - ,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,% - Old Hungarian,Old Hungarian,Lydian,Mandaean,Manichaean,% - Manichaean,Meroitic Cursive,Meroitic,Old North Arabian,% - Nabataean,N'Ko,Orkhon,Palmyrene,Inscriptional Pahlavi,% - Psalter Pahlavi,Phoenician,Inscriptional Parthian,Samaritan,% - Old South Arabian,}% -\def\bbl@provide@dirs#1{% - \bbl@xin@{\csname bbl@sname@#1\endcsname}{\bbl@alscripts\bbl@rscripts}% - \ifin@ - \global\bbl@csarg\chardef{wdir@#1}\@ne - \bbl@xin@{\csname bbl@sname@#1\endcsname}{\bbl@alscripts}% - \ifin@ - \global\bbl@csarg\chardef{wdir@#1}\tw@ % useless in xetex - \fi - \else - \global\bbl@csarg\chardef{wdir@#1}\z@ - \fi - \ifodd\bbl@engine - \bbl@csarg\ifcase{wdir@#1}% - \directlua{ Babel.locale_props[\the\localeid].textdir = 'l' }% - \or - \directlua{ Babel.locale_props[\the\localeid].textdir = 'r' }% - \or - \directlua{ Babel.locale_props[\the\localeid].textdir = 'al' }% - \fi - \fi} -\def\bbl@switchdir{% - \bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}% - \bbl@ifunset{bbl@wdir@\languagename}{\bbl@provide@dirs{\languagename}}{}% - \bbl@exp{\\\bbl@setdirs\bbl@cl{wdir}}} -\def\bbl@setdirs#1{% TODO - math - \ifcase\bbl@select@type % TODO - strictly, not the right test - \bbl@bodydir{#1}% - \bbl@pardir{#1}% +\@namedef{bbl@ADJ@autoload.bcp47@on}{% + \bbl@bcpallowedtrue} +\@namedef{bbl@ADJ@autoload.bcp47@off}{% + \bbl@bcpallowedfalse} +\@namedef{bbl@ADJ@autoload.bcp47.prefix}#1{% + \def\bbl@bcp@prefix{#1}} +\def\bbl@bcp@prefix{bcp47-} +\@namedef{bbl@ADJ@autoload.options}#1{% + \def\bbl@autoload@options{#1}} +\let\bbl@autoload@bcpoptions\@empty +\@namedef{bbl@ADJ@autoload.bcp47.options}#1{% + \def\bbl@autoload@bcpoptions{#1}} +\ifx\directlua\@undefined\else + \ifx\bbl@luapatterns\@undefined + \input luababel.def \fi - \bbl@textdir{#1}} -\ifodd\bbl@engine % luatex=1 - \AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir} - \DisableBabelHook{babel-bidi} - \chardef\bbl@thetextdir\z@ - \chardef\bbl@thepardir\z@ - \def\bbl@getluadir#1{% - \directlua{ - if tex.#1dir == 'TLT' then - tex.sprint('0') - elseif tex.#1dir == 'TRT' then - tex.sprint('1') - end}} - \def\bbl@setluadir#1#2#3{% 1=text/par.. 2=\textdir.. 3=0 lr/1 rl - \ifcase#3\relax - \ifcase\bbl@getluadir{#1}\relax\else - #2 TLT\relax - \fi - \else - \ifcase\bbl@getluadir{#1}\relax - #2 TRT\relax - \fi - \fi} - \def\bbl@textdir#1{% - \bbl@setluadir{text}\textdir{#1}% - \chardef\bbl@thetextdir#1\relax - \setattribute\bbl@attr@dir{\numexpr\bbl@thepardir*3+#1}} - \def\bbl@pardir#1{% - \bbl@setluadir{par}\pardir{#1}% - \chardef\bbl@thepardir#1\relax} - \def\bbl@bodydir{\bbl@setluadir{body}\bodydir} - \def\bbl@pagedir{\bbl@setluadir{page}\pagedir} - \def\bbl@dirparastext{\pardir\the\textdir\relax}% %%%% - % Sadly, we have to deal with boxes in math with basic. - % Activated every math with the package option bidi=: - \def\bbl@mathboxdir{% - \ifcase\bbl@thetextdir\relax - \everyhbox{\textdir TLT\relax}% - \else - \everyhbox{\textdir TRT\relax}% - \fi} -\else % pdftex=0, xetex=2 - \AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir} - \DisableBabelHook{babel-bidi} - \newcount\bbl@dirlevel - \chardef\bbl@thetextdir\z@ - \chardef\bbl@thepardir\z@ - \def\bbl@textdir#1{% - \ifcase#1\relax - \chardef\bbl@thetextdir\z@ - \bbl@textdir@i\beginL\endL - \else - \chardef\bbl@thetextdir\@ne - \bbl@textdir@i\beginR\endR - \fi} - \def\bbl@textdir@i#1#2{% - \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.}% - \bgroup\aftergroup#2\aftergroup\egroup - \else - \ifcase\currentgrouptype\or % 0 bottom - \aftergroup#2% 1 simple {} - \or - \bgroup\aftergroup#2\aftergroup\egroup % 2 hbox - \or - \bgroup\aftergroup#2\aftergroup\egroup % 3 adj hbox - \or\or\or % vbox vtop align - \or - \bgroup\aftergroup#2\aftergroup\egroup % 7 noalign - \or\or\or\or\or\or % output math disc insert vcent mathchoice - \or - \aftergroup#2% 14 \begingroup - \else - \bgroup\aftergroup#2\aftergroup\egroup % 15 adj - \fi - \fi - \bbl@dirlevel\currentgrouplevel - \fi - #1% - \fi} - \def\bbl@pardir#1{\chardef\bbl@thepardir#1\relax} - \let\bbl@bodydir\@gobble - \let\bbl@pagedir\@gobble - \def\bbl@dirparastext{\chardef\bbl@thepardir\bbl@thetextdir} - \def\bbl@xebidipar{% - \let\bbl@xebidipar\relax - \TeXXeTstate\@ne - \def\bbl@xeeverypar{% - \ifcase\bbl@thepardir - \ifcase\bbl@thetextdir\else\beginR\fi - \else - {\setbox\z@\lastbox\beginR\box\z@}% - \fi}% - \let\bbl@severypar\everypar - \newtoks\everypar - \everypar=\bbl@severypar - \bbl@severypar{\bbl@xeeverypar\the\everypar}} - \def\bbl@tempb{% - \let\bbl@textdir@i\@gobbletwo - \let\bbl@xebidipar\@empty - \AddBabelHook{bidi}{foreign}{% - \def\bbl@tempa{\def\BabelText########1}% - \ifcase\bbl@thetextdir - \expandafter\bbl@tempa\expandafter{\BabelText{\LR{####1}}}% - \else - \expandafter\bbl@tempa\expandafter{\BabelText{\RL{####1}}}% - \fi} - \def\bbl@pardir##1{\ifcase##1\relax\setLR\else\setRL\fi}} - \@ifpackagewith{babel}{bidi=bidi}{\bbl@tempb}{}% - \@ifpackagewith{babel}{bidi=bidi-l}{\bbl@tempb}{}% - \@ifpackagewith{babel}{bidi=bidi-r}{\bbl@tempb}{}% -\fi -\DeclareRobustCommand\babelsublr[1]{\leavevmode{\bbl@textdir\z@#1}} -\AtBeginDocument{% - \ifx\pdfstringdefDisableCommands\@undefined\else - \ifx\pdfstringdefDisableCommands\relax\else - \pdfstringdefDisableCommands{\let\babelsublr\@firstofone}% - \fi - \fi} -\bbl@trace{Local Language Configuration} -\ifx\loadlocalcfg\@undefined - \@ifpackagewith{babel}{noconfigs}% - {\let\loadlocalcfg\@gobble}% - {\def\loadlocalcfg#1{% - \InputIfFileExists{#1.cfg}% - {\typeout{*************************************^^J% - * Local config file #1.cfg used^^J% - *}}% - \@empty}} -\fi -\ifx\@unexpandable@protect\@undefined - \def\@unexpandable@protect{\noexpand\protect\noexpand} - \long\def\protected@write#1#2#3{% - \begingroup - \let\thepage\relax - #2% - \let\protect\@unexpandable@protect - \edef\reserved@a{\write#1{#3}}% - \reserved@a - \endgroup - \if@nobreak\ifvmode\nobreak\fi\fi} \fi + \endinput %% %% End of file `babel.def'. diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty index 3d6be430945..bfa5ab18295 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.sty +++ b/Master/texmf-dist/tex/generic/babel/babel.sty @@ -33,21 +33,12 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{babel}[2020/03/22 3.42 The Babel package] +\ProvidesPackage{babel}[2020/04/28 3.43 The Babel package] \@ifpackagewith{babel}{debug} {\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}% \let\bbl@debug\@firstofone} {\providecommand\bbl@trace[1]{}% \let\bbl@debug\@gobble} -\ifx\bbl@switchflag\@undefined % Prevent double input - \let\bbl@switchflag\relax - \input switch.def\relax -\fi -\ifx\directlua\@undefined\else - \ifx\bbl@luapatterns\@undefined - \input luababel.def - \fi -\fi \bbl@trace{Basic macros} \def\bbl@stripslash{\expandafter\@gobble\string} \def\bbl@add#1#2{% @@ -196,6 +187,64 @@ \else \@ne \fi + % Temporarily repeat here the code for errors + \def\bbl@error#1#2{% + \begingroup + \def\\{\MessageBreak}% + \PackageError{babel}{#1}{#2}% + \endgroup} + \def\bbl@warning#1{% + \begingroup + \def\\{\MessageBreak}% + \PackageWarning{babel}{#1}% + \endgroup} + \def\bbl@infowarn#1{% + \begingroup + \def\\{\MessageBreak}% + \GenericWarning + {(babel) \@spaces\@spaces\@spaces}% + {Package babel Info: #1}% + \endgroup} + \def\bbl@info#1{% + \begingroup + \def\\{\MessageBreak}% + \PackageInfo{babel}{#1}% + \endgroup} + \def\bbl@nocaption{\protect\bbl@nocaption@i} +\def\bbl@nocaption@i#1#2{% 1: text to be printed 2: caption macro \langXname + \global\@namedef{#2}{\textbf{?#1?}}% + \@nameuse{#2}% + \bbl@warning{% + \@backslashchar#2 not set. Please, define\\% + it in the preamble with something like:\\% + \string\renewcommand\@backslashchar#2{..}\\% + Reported}} +\def\bbl@tentative{\protect\bbl@tentative@i} +\def\bbl@tentative@i#1{% + \bbl@warning{% + Some functions for '#1' are tentative.\\% + 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\space yet.\\% + Perhaps you misspelled it or your installation\\% + is not complete}% + {Your command will be ignored, type <return> to proceed}} +\def\@nopatterns#1{% + \bbl@warning + {No hyphenation patterns were preloaded for\\% + the language `#1' into the format.\\% + Please, configure your TeX system to add them and\\% + rebuild the format. Now I will use the patterns\\% + preloaded for \bbl@nulllanguage\space instead}} + % End of errors +\@ifpackagewith{babel}{silent} + {\let\bbl@info\@gobble + \let\bbl@infowarn\@gobble + \let\bbl@warning\@gobble} + {} \def\AfterBabelLanguage#1{% \global\expandafter\bbl@add\csname#1.ldf-h@@k\endcsname}% \ifx\bbl@languages\@undefined\else @@ -215,7 +264,27 @@ \def\bbl@elt##1##2##3##4{}% \fi}% \bbl@languages -\fi +\fi% +\bbl@trace{Defining option 'base'} +\@ifpackagewith{babel}{base}{% + \let\bbl@onlyswitch\@empty + \let\bbl@provide@locale\relax + \input babel.def + \let\bbl@onlyswitch\@undefined + \ifx\directlua\@undefined + \DeclareOption*{\bbl@patterns{\CurrentOption}}% + \else + \input luababel.def + \DeclareOption*{\bbl@patterns@lua{\CurrentOption}}% + \fi + \DeclareOption{base}{}% + \DeclareOption{showlanguages}{}% + \ProcessOptions + \global\expandafter\let\csname opt@babel.sty\endcsname\relax + \global\expandafter\let\csname ver@babel.sty\endcsname\relax + \global\let\@ifl@ter@@\@ifl@ter + \def\@ifl@ter#1#2#3#4#5{\global\let\@ifl@ter\@ifl@ter@@}% + \endinput}{}% \ifodd\bbl@engine \def\bbl@activate@preotf{% \let\bbl@activate@preotf\relax % only once @@ -271,21 +340,6 @@ \bbl@activate@preotf \fi \fi -\bbl@trace{Defining option 'base'} -\@ifpackagewith{babel}{base}{% - \ifx\directlua\@undefined - \DeclareOption*{\bbl@patterns{\CurrentOption}}% - \else - \DeclareOption*{\bbl@patterns@lua{\CurrentOption}}% - \fi - \DeclareOption{base}{}% - \DeclareOption{showlanguages}{}% - \ProcessOptions - \global\expandafter\let\csname opt@babel.sty\endcsname\relax - \global\expandafter\let\csname ver@babel.sty\endcsname\relax - \global\let\@ifl@ter@@\@ifl@ter - \def\@ifl@ter#1#2#3#4#5{\global\let\@ifl@ter\@ifl@ter@@}% - \endinput}{}% \bbl@trace{key=value and another general options} \bbl@csarg\let{tempa\expandafter}\csname opt@babel.sty\endcsname \def\bbl@tempb#1.#2{% @@ -315,6 +369,9 @@ \DeclareOption{shorthands=off}{\bbl@tempa shorthands=\bbl@tempa} \newif\ifbbl@single \DeclareOption{selectors=off}{\bbl@singletrue} +\DeclareOption{safe=none}{\let\bbl@opt@safe\@empty} +\DeclareOption{safe=bib}{\def\bbl@opt@safe{B}} +\DeclareOption{safe=ref}{\def\bbl@opt@safe{R}} \DeclareOption{math=active}{} \DeclareOption{math=normal}{\def\bbl@mathnormal{\noexpand\textormath}} \DeclareOption{nocase}{} @@ -327,9 +384,6 @@ \DeclareOption{hyphenmap=select}{\chardef\bbl@opt@hyphenmap\tw@} \DeclareOption{hyphenmap=other}{\chardef\bbl@opt@hyphenmap\thr@@} \DeclareOption{hyphenmap=other*}{\chardef\bbl@opt@hyphenmap4\relax} -\DeclareOption{safe=none}{\let\bbl@opt@safe\@empty} -\DeclareOption{safe=bib}{\def\bbl@opt@safe{B}} -\DeclareOption{safe=ref}{\def\bbl@opt@safe{R}} \ifodd\bbl@engine \DeclareOption{bidi=basic-r}% {\ExecuteOptions{bidi=basic}} @@ -396,11 +450,12 @@ \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 `shorthands', `config', `strings', `main',\\% - `headfoot', `safe', `math', among others.} + \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.} \fi} \let\bbl@language@opts\@empty \DeclareOption*{% @@ -465,6 +520,447 @@ \expandafter\@secondoftwo \fi} \fi +\input babel.def +\bbl@trace{Cross referencing macros} +\ifx\bbl@opt@safe\@empty\else + \def\@newl@bel#1#2#3{% + {\@safe@activestrue + \bbl@ifunset{#1@#2}% + \relax + {\gdef\@multiplelabels{% + \@latex@warning@no@line{There were multiply-defined labels}}% + \@latex@warning@no@line{Label `#2' multiply defined}}% + \global\@namedef{#1@#2}{#3}}} + \CheckCommand*\@testdef[3]{% + \def\reserved@a{#3}% + \expandafter\ifx\csname#1@#2\endcsname\reserved@a + \else + \@tempswatrue + \fi} + \def\@testdef#1#2#3{% TODO. With @samestring? + \@safe@activestrue + \expandafter\let\expandafter\bbl@tempa\csname #1@#2\endcsname + \def\bbl@tempb{#3}% + \@safe@activesfalse + \ifx\bbl@tempa\relax + \else + \edef\bbl@tempa{\expandafter\strip@prefix\meaning\bbl@tempa}% + \fi + \edef\bbl@tempb{\expandafter\strip@prefix\meaning\bbl@tempb}% + \ifx\bbl@tempa\bbl@tempb + \else + \@tempswatrue + \fi} +\fi +\bbl@xin@{R}\bbl@opt@safe +\ifin@ + \bbl@redefinerobust\ref#1{% + \@safe@activestrue\org@ref{#1}\@safe@activesfalse} + \bbl@redefinerobust\pageref#1{% + \@safe@activestrue\org@pageref{#1}\@safe@activesfalse} +\else + \let\org@ref\ref + \let\org@pageref\pageref +\fi +\bbl@xin@{B}\bbl@opt@safe +\ifin@ + \bbl@redefine\@citex[#1]#2{% + \@safe@activestrue\edef\@tempa{#2}\@safe@activesfalse + \org@@citex[#1]{\@tempa}} + \AtBeginDocument{% + \@ifpackageloaded{natbib}{% + \def\@citex[#1][#2]#3{% + \@safe@activestrue\edef\@tempa{#3}\@safe@activesfalse + \org@@citex[#1][#2]{\@tempa}}% + }{}} + \AtBeginDocument{% + \@ifpackageloaded{cite}{% + \def\@citex[#1]#2{% + \@safe@activestrue\org@@citex[#1]{#2}\@safe@activesfalse}% + }{}} + \bbl@redefine\nocite#1{% + \@safe@activestrue\org@nocite{#1}\@safe@activesfalse} + \bbl@redefine\bibcite{% + \bbl@cite@choice + \bibcite} + \def\bbl@bibcite#1#2{% + \org@bibcite{#1}{\@safe@activesfalse#2}} + \def\bbl@cite@choice{% + \global\let\bibcite\bbl@bibcite + \@ifpackageloaded{natbib}{\global\let\bibcite\org@bibcite}{}% + \@ifpackageloaded{cite}{\global\let\bibcite\org@bibcite}{}% + \global\let\bbl@cite@choice\relax} + \AtBeginDocument{\bbl@cite@choice} + \bbl@redefine\@bibitem#1{% + \@safe@activestrue\org@@bibitem{#1}\@safe@activesfalse} +\else + \let\org@nocite\nocite + \let\org@@citex\@citex + \let\org@bibcite\bibcite + \let\org@@bibitem\@bibitem +\fi +\bbl@trace{Marks} +\IfBabelLayout{sectioning} + {\ifx\bbl@opt@headfoot\@nnil + \g@addto@macro\@resetactivechars{% + \set@typeset@protect + \expandafter\select@language@x\expandafter{\bbl@main@language}% + \let\protect\noexpand + \edef\thepage{% TODO. Only with bidi. See also above + \noexpand\babelsublr{\unexpanded\expandafter{\thepage}}}}% + \fi} + {\ifbbl@single\else + \bbl@ifunset{markright }\bbl@redefine\bbl@redefinerobust + \markright#1{% + \bbl@ifblank{#1}% + {\org@markright{}}% + {\toks@{#1}% + \bbl@exp{% + \\\org@markright{\\\protect\\\foreignlanguage{\languagename}% + {\\\protect\\\bbl@restore@actives\the\toks@}}}}}% + \ifx\@mkboth\markboth + \def\bbl@tempc{\let\@mkboth\markboth} + \else + \def\bbl@tempc{} + \fi + \bbl@ifunset{markboth }\bbl@redefine\bbl@redefinerobust + \markboth#1#2{% + \protected@edef\bbl@tempb##1{% + \protect\foreignlanguage + {\languagename}{\protect\bbl@restore@actives##1}}% + \bbl@ifblank{#1}% + {\toks@{}}% + {\toks@\expandafter{\bbl@tempb{#1}}}% + \bbl@ifblank{#2}% + {\@temptokena{}}% + {\@temptokena\expandafter{\bbl@tempb{#2}}}% + \bbl@exp{\\\org@markboth{\the\toks@}{\the\@temptokena}}} + \bbl@tempc + \fi} % end ifbbl@single, end \IfBabelLayout +\bbl@trace{Preventing clashes with other packages} +\bbl@xin@{R}\bbl@opt@safe +\ifin@ + \AtBeginDocument{% + \@ifpackageloaded{ifthen}{% + \bbl@redefine@long\ifthenelse#1#2#3{% + \let\bbl@temp@pref\pageref + \let\pageref\org@pageref + \let\bbl@temp@ref\ref + \let\ref\org@ref + \@safe@activestrue + \org@ifthenelse{#1}% + {\let\pageref\bbl@temp@pref + \let\ref\bbl@temp@ref + \@safe@activesfalse + #2}% + {\let\pageref\bbl@temp@pref + \let\ref\bbl@temp@ref + \@safe@activesfalse + #3}% + }% + }{}% + } + \AtBeginDocument{% + \@ifpackageloaded{varioref}{% + \bbl@redefine\@@vpageref#1[#2]#3{% + \@safe@activestrue + \org@@@vpageref{#1}[#2]{#3}% + \@safe@activesfalse}% + \bbl@redefine\vrefpagenum#1#2{% + \@safe@activestrue + \org@vrefpagenum{#1}{#2}% + \@safe@activesfalse}% + \expandafter\def\csname Ref \endcsname#1{% + \protected@edef\@tempa{\org@ref{#1}}\expandafter\MakeUppercase\@tempa} + }{}% + } +\fi +\AtEndOfPackage{% + \AtBeginDocument{% + \@ifpackageloaded{hhline}% + {\expandafter\ifx\csname normal@char\string:\endcsname\relax + \else + \makeatletter + \def\@currname{hhline}\input{hhline.sty}\makeatother + \fi}% + {}}} +\AtBeginDocument{% + \ifx\pdfstringdefDisableCommands\@undefined\else + \pdfstringdefDisableCommands{\languageshorthands{system}}% + \fi} +\DeclareRobustCommand{\FOREIGNLANGUAGE}[1]{% + \lowercase{\foreignlanguage{#1}}} +\def\substitutefontfamily#1#2#3{% + \lowercase{\immediate\openout15=#1#2.fd\relax}% + \immediate\write15{% + \string\ProvidesFile{#1#2.fd}% + [\the\year/\two@digits{\the\month}/\two@digits{\the\day} + \space generated font description file]^^J + \string\DeclareFontFamily{#1}{#2}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/bx/n}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/bx/it}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/bx/sl}{}^^J + \string\DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/bx/sc}{}^^J + }% + \closeout15 + } +\@onlypreamble\substitutefontfamily +\bbl@trace{Encoding and fonts} +\newcommand\BabelNonASCII{LGR,X2,OT2,OT3,OT6,LHE,LWN,LMA,LMC,LMS,LMU,PU,PD1} +\newcommand\BabelNonText{TS1,T3,TS3} +\let\org@TeX\TeX +\let\org@LaTeX\LaTeX +\let\ensureascii\@firstofone +\AtBeginDocument{% + \in@false + \bbl@foreach\BabelNonASCII{% is there a text non-ascii enc? + \ifin@\else + \lowercase{\bbl@xin@{,#1enc.def,}{,\@filelist,}}% + \fi}% + \ifin@ % if a text non-ascii has been loaded + \def\ensureascii#1{{\fontencoding{OT1}\selectfont#1}}% + \DeclareTextCommandDefault{\TeX}{\org@TeX}% + \DeclareTextCommandDefault{\LaTeX}{\org@LaTeX}% + \def\bbl@tempb#1\@@{\uppercase{\bbl@tempc#1}ENC.DEF\@empty\@@}% + \def\bbl@tempc#1ENC.DEF#2\@@{% + \ifx\@empty#2\else + \bbl@ifunset{T@#1}% + {}% + {\bbl@xin@{,#1,}{,\BabelNonASCII,\BabelNonText,}% + \ifin@ + \DeclareTextCommand{\TeX}{#1}{\ensureascii{\org@TeX}}% + \DeclareTextCommand{\LaTeX}{#1}{\ensureascii{\org@LaTeX}}% + \else + \def\ensureascii##1{{\fontencoding{#1}\selectfont##1}}% + \fi}% + \fi}% + \bbl@foreach\@filelist{\bbl@tempb#1\@@}% TODO - \@@ de mas?? + \bbl@xin@{,\cf@encoding,}{,\BabelNonASCII,\BabelNonText,}% + \ifin@\else + \edef\ensureascii#1{{% + \noexpand\fontencoding{\cf@encoding}\noexpand\selectfont#1}}% + \fi + \fi} +\AtEndOfPackage{\edef\latinencoding{\cf@encoding}} +\AtBeginDocument{% + \@ifpackageloaded{fontspec}% + {\xdef\latinencoding{% + \ifx\UTFencname\@undefined + EU\ifcase\bbl@engine\or2\or1\fi + \else + \UTFencname + \fi}}% + {\gdef\latinencoding{OT1}% + \ifx\cf@encoding\bbl@t@one + \xdef\latinencoding{\bbl@t@one}% + \else + \ifx\@fontenc@load@list\@undefined + \@ifl@aded{def}{t1enc}{\xdef\latinencoding{\bbl@t@one}}{}% + \else + \def\@elt#1{,#1,}% + \edef\bbl@tempa{\expandafter\@gobbletwo\@fontenc@load@list}% + \let\@elt\relax + \bbl@xin@{,T1,}\bbl@tempa + \ifin@ + \xdef\latinencoding{\bbl@t@one}% + \fi + \fi + \fi}} +\DeclareRobustCommand{\latintext}{% + \fontencoding{\latinencoding}\selectfont + \def\encodingdefault{\latinencoding}} +\ifx\@undefined\DeclareTextFontCommand + \DeclareRobustCommand{\textlatin}[1]{\leavevmode{\latintext #1}} +\else + \DeclareTextFontCommand{\textlatin}{\latintext} +\fi +\bbl@trace{Basic (internal) bidi support} +\def\bbl@alscripts{,Arabic,Syriac,Thaana,} +\def\bbl@rscripts{% + ,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,% + Old Hungarian,Old Hungarian,Lydian,Mandaean,Manichaean,% + Manichaean,Meroitic Cursive,Meroitic,Old North Arabian,% + Nabataean,N'Ko,Orkhon,Palmyrene,Inscriptional Pahlavi,% + Psalter Pahlavi,Phoenician,Inscriptional Parthian,Samaritan,% + Old South Arabian,}% +\def\bbl@provide@dirs#1{% + \bbl@xin@{\csname bbl@sname@#1\endcsname}{\bbl@alscripts\bbl@rscripts}% + \ifin@ + \global\bbl@csarg\chardef{wdir@#1}\@ne + \bbl@xin@{\csname bbl@sname@#1\endcsname}{\bbl@alscripts}% + \ifin@ + \global\bbl@csarg\chardef{wdir@#1}\tw@ % useless in xetex + \fi + \else + \global\bbl@csarg\chardef{wdir@#1}\z@ + \fi + \ifodd\bbl@engine + \bbl@csarg\ifcase{wdir@#1}% + \directlua{ Babel.locale_props[\the\localeid].textdir = 'l' }% + \or + \directlua{ Babel.locale_props[\the\localeid].textdir = 'r' }% + \or + \directlua{ Babel.locale_props[\the\localeid].textdir = 'al' }% + \fi + \fi} +\def\bbl@switchdir{% + \bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}% + \bbl@ifunset{bbl@wdir@\languagename}{\bbl@provide@dirs{\languagename}}{}% + \bbl@exp{\\\bbl@setdirs\bbl@cl{wdir}}} +\def\bbl@setdirs#1{% TODO - math + \ifcase\bbl@select@type % TODO - strictly, not the right test + \bbl@bodydir{#1}% + \bbl@pardir{#1}% + \fi + \bbl@textdir{#1}} +\ifodd\bbl@engine % luatex=1 + \AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir} + \DisableBabelHook{babel-bidi} + \chardef\bbl@thetextdir\z@ + \chardef\bbl@thepardir\z@ + \def\bbl@getluadir#1{% + \directlua{ + if tex.#1dir == 'TLT' then + tex.sprint('0') + elseif tex.#1dir == 'TRT' then + tex.sprint('1') + end}} + \def\bbl@setluadir#1#2#3{% 1=text/par.. 2=\textdir.. 3=0 lr/1 rl + \ifcase#3\relax + \ifcase\bbl@getluadir{#1}\relax\else + #2 TLT\relax + \fi + \else + \ifcase\bbl@getluadir{#1}\relax + #2 TRT\relax + \fi + \fi} + \def\bbl@textdir#1{% + \bbl@setluadir{text}\textdir{#1}% + \chardef\bbl@thetextdir#1\relax + \setattribute\bbl@attr@dir{\numexpr\bbl@thepardir*3+#1}} + \def\bbl@pardir#1{% + \bbl@setluadir{par}\pardir{#1}% + \chardef\bbl@thepardir#1\relax} + \def\bbl@bodydir{\bbl@setluadir{body}\bodydir} + \def\bbl@pagedir{\bbl@setluadir{page}\pagedir} + \def\bbl@dirparastext{\pardir\the\textdir\relax}% %%%% + % Sadly, we have to deal with boxes in math with basic. + % Activated every math with the package option bidi=: + \def\bbl@mathboxdir{% + \ifcase\bbl@thetextdir\relax + \everyhbox{\textdir TLT\relax}% + \else + \everyhbox{\textdir TRT\relax}% + \fi} +\else % pdftex=0, xetex=2 + \AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir} + \DisableBabelHook{babel-bidi} + \newcount\bbl@dirlevel + \chardef\bbl@thetextdir\z@ + \chardef\bbl@thepardir\z@ + \def\bbl@textdir#1{% + \ifcase#1\relax + \chardef\bbl@thetextdir\z@ + \bbl@textdir@i\beginL\endL + \else + \chardef\bbl@thetextdir\@ne + \bbl@textdir@i\beginR\endR + \fi} + \def\bbl@textdir@i#1#2{% + \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.}% + \bgroup\aftergroup#2\aftergroup\egroup + \else + \ifcase\currentgrouptype\or % 0 bottom + \aftergroup#2% 1 simple {} + \or + \bgroup\aftergroup#2\aftergroup\egroup % 2 hbox + \or + \bgroup\aftergroup#2\aftergroup\egroup % 3 adj hbox + \or\or\or % vbox vtop align + \or + \bgroup\aftergroup#2\aftergroup\egroup % 7 noalign + \or\or\or\or\or\or % output math disc insert vcent mathchoice + \or + \aftergroup#2% 14 \begingroup + \else + \bgroup\aftergroup#2\aftergroup\egroup % 15 adj + \fi + \fi + \bbl@dirlevel\currentgrouplevel + \fi + #1% + \fi} + \def\bbl@pardir#1{\chardef\bbl@thepardir#1\relax} + \let\bbl@bodydir\@gobble + \let\bbl@pagedir\@gobble + \def\bbl@dirparastext{\chardef\bbl@thepardir\bbl@thetextdir} + \def\bbl@xebidipar{% + \let\bbl@xebidipar\relax + \TeXXeTstate\@ne + \def\bbl@xeeverypar{% + \ifcase\bbl@thepardir + \ifcase\bbl@thetextdir\else\beginR\fi + \else + {\setbox\z@\lastbox\beginR\box\z@}% + \fi}% + \let\bbl@severypar\everypar + \newtoks\everypar + \everypar=\bbl@severypar + \bbl@severypar{\bbl@xeeverypar\the\everypar}} + \def\bbl@tempb{% + \let\bbl@textdir@i\@gobbletwo + \let\bbl@xebidipar\@empty + \AddBabelHook{bidi}{foreign}{% + \def\bbl@tempa{\def\BabelText########1}% + \ifcase\bbl@thetextdir + \expandafter\bbl@tempa\expandafter{\BabelText{\LR{####1}}}% + \else + \expandafter\bbl@tempa\expandafter{\BabelText{\RL{####1}}}% + \fi} + \def\bbl@pardir##1{\ifcase##1\relax\setLR\else\setRL\fi}} + \@ifpackagewith{babel}{bidi=bidi}{\bbl@tempb}{}% + \@ifpackagewith{babel}{bidi=bidi-l}{\bbl@tempb}{}% + \@ifpackagewith{babel}{bidi=bidi-r}{\bbl@tempb}{}% +\fi +\DeclareRobustCommand\babelsublr[1]{\leavevmode{\bbl@textdir\z@#1}} +\AtBeginDocument{% + \ifx\pdfstringdefDisableCommands\@undefined\else + \ifx\pdfstringdefDisableCommands\relax\else + \pdfstringdefDisableCommands{\let\babelsublr\@firstofone}% + \fi + \fi} +\bbl@trace{Local Language Configuration} +\ifx\loadlocalcfg\@undefined + \@ifpackagewith{babel}{noconfigs}% + {\let\loadlocalcfg\@gobble}% + {\def\loadlocalcfg#1{% + \InputIfFileExists{#1.cfg}% + {\typeout{*************************************^^J% + * Local config file #1.cfg used^^J% + *}}% + \@empty}} +\fi +\ifx\@unexpandable@protect\@undefined + \def\@unexpandable@protect{\noexpand\protect\noexpand} + \long\def\protected@write#1#2#3{% + \begingroup + \let\thepage\relax + #2% + \let\protect\@unexpandable@protect + \edef\reserved@a{\write#1{#3}}% + \reserved@a + \endgroup + \if@nobreak\ifvmode\nobreak\fi\fi} +\fi \bbl@trace{Language options} \let\bbl@afterlang\relax \let\BabelModifiers\relax @@ -541,6 +1037,7 @@ \bbl@ifsamestring\CurrentOption{#1}{\global\bbl@add\bbl@afterlang}{}} \DeclareOption*{} \ProcessOptions* +\bbl@trace{Option 'main'} \ifx\bbl@opt@main\@nnil \edef\bbl@tempa{\@classoptionslist,\bbl@language@opts} \let\bbl@tempc\@empty @@ -573,6 +1070,7 @@ as the main language. Reported} \bbl@load@language{nil} \fi + \endinput %% %% End of file `babel.sty'. diff --git a/Master/texmf-dist/tex/generic/babel/blplain.tex b/Master/texmf-dist/tex/generic/babel/blplain.tex index a649c5d17ed..d3cc84fec65 100644 --- a/Master/texmf-dist/tex/generic/babel/blplain.tex +++ b/Master/texmf-dist/tex/generic/babel/blplain.tex @@ -47,6 +47,7 @@ \fi \a lplain.tex \def\fmtname{babel-lplain} + \endinput %% %% End of file `blplain.tex'. diff --git a/Master/texmf-dist/tex/generic/babel/bplain.tex b/Master/texmf-dist/tex/generic/babel/bplain.tex index 67bb6c63ab9..43ddb01bdd9 100644 --- a/Master/texmf-dist/tex/generic/babel/bplain.tex +++ b/Master/texmf-dist/tex/generic/babel/bplain.tex @@ -47,6 +47,7 @@ \fi \a plain.tex \def\fmtname{babel-plain} + \endinput %% %% End of file `bplain.tex'. diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg index 5299d74cad3..a66ac1fbcda 100644 --- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg +++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg @@ -37,8 +37,10 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{hyphen.cfg}[2020/03/22 3.42 Babel hyphens] +\ProvidesFile{hyphen.cfg}[2020/04/28 3.43 Babel hyphens] \xdef\bbl@format{\jobname} +\def\bbl@version{3.43} +\def\bbl@date{2020/04/28} \ifx\AtBeginDocument\@undefined \def\@empty{} \let\orig@dump\dump @@ -127,7 +129,45 @@ \def\bbl@hook@everylanguage#1{} \def\bbl@hook@loadpatterns#1{\input #1\relax} \let\bbl@hook@loadexceptions\bbl@hook@loadpatterns -\let\bbl@hook@loadkernel\bbl@hook@loadpatterns +\def\bbl@hook@loadkernel#1{% + \def\addlanguage{\alloc@9\language\chardef\@cclvi}% + \def\adddialect##1##2{% + \global\chardef##1##2\relax + \wlog{\string##1 = a dialect from \string\language##2}}% + \def\iflanguage##1{% + \expandafter\ifx\csname l@##1\endcsname\relax + \@nolanerr{##1}% + \else + \ifnum\csname l@##1\endcsname=\language + \expandafter\expandafter\expandafter\@firstoftwo + \else + \expandafter\expandafter\expandafter\@secondoftwo + \fi + \fi}% + \def\providehyphenmins##1##2{% + \expandafter\ifx\csname ##1hyphenmins\endcsname\relax + \@namedef{##1hyphenmins}{##2}% + \fi}% + \def\set@hyphenmins##1##2{% + \lefthyphenmin##1\relax + \righthyphenmin##2\relax}% + \def\selectlanguage{% + \errhelp{Selecting a language requires a package supporting it}% + \errmessage{Not loaded}}% + \let\foreignlanguage\selectlanguage + \let\otherlanguage\selectlanguage + \expandafter\let\csname otherlanguage*\endcsname\selectlanguage + \def\bbl@usehooks##1##2{}% TODO. Temporary!! + \def\setlocale{% + \errhelp{Find an armchair, sit down and wait}% + \errmessage{Not yet available}}% + \let\uselocale\setlocale + \let\locale\setlocale + \let\selectlocale\setlocale + \let\localename\setlocale + \let\textlocale\setlocale + \let\textlanguage\setlocale + \let\languagetext\setlocale} \begingroup \def\AddBabelHook#1#2{% \expandafter\ifx\csname bbl@hook@#2\endcsname\relax @@ -194,6 +234,7 @@ \let\bbl@hook@everylanguage\@undefined \let\bbl@hook@loadpatterns\@undefined \let\bbl@hook@loadexceptions\@undefined + \endinput %% %% End of file `hyphen.cfg'. diff --git a/Master/texmf-dist/tex/generic/babel/locale/as/babel-as.ini b/Master/texmf-dist/tex/generic/babel/locale/as/babel-as.ini index 240a2e3dee7..19f4e7458de 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/as/babel-as.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/as/babel-as.ini @@ -8,11 +8,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * Contributors: Navanath Saharia [identification] charset = utf8 -version = 1.4 -date = 2020-03-22 +version = 1.5 +date = 2020-04-07 name.local = অসমীয়া name.english = Assamese name.babel = assamese @@ -27,50 +28,27 @@ encodings = derivate = no [captions] -preface = -ref = -abstract = -bib = -chapter = -appendix = -contents = -listfigure = -listtable = -index = -figure = -table = -part = -encl = -cc = -headto = -page = -see = -also = -proof = -glossary = - -[captions.licr] -preface = -ref = -abstract = -bib = -chapter = -appendix = -contents = -listfigure = -listtable = -index = -figure = -table = -part = -encl = -cc = -headto = -page = -see = -also = -proof = -glossary = +preface = পাতনি +ref = প্ৰসংগ +abstract = মূলভাৱ +bib = তথ্যসূত্ৰ +chapter = অধ্যায় +appendix = পৰিশিষ্ট +contents = সমল +listfigure = চিত্ৰসূচী +listtable = তালিকাসূচী +index = বিষয়সূচী +figure = চিত্ৰ +table = তালিকা +part = অংশ +encl = সংযোজিত +cc = প্ৰতিলিপি +headto = মুখে +page = পৃষ্ঠা +see = চাওক +also = ও +proof = প্ৰমাণ +glossary = অৰ্থকোষ [date.gregorian] date.long = [y] [MMMM] [d] @@ -87,18 +65,18 @@ months.wide.9 = ছেপ্তেম্বৰ months.wide.10 = অক্টোবৰ months.wide.11 = নৱেম্বৰ months.wide.12 = ডিচেম্বৰ -months.narrow.1 = 1 -months.narrow.2 = 2 -months.narrow.3 = 3 -months.narrow.4 = 4 -months.narrow.5 = 5 -months.narrow.6 = 6 -months.narrow.7 = 7 -months.narrow.8 = 8 -months.narrow.9 = 9 -months.narrow.10 = 10 -months.narrow.11 = 11 -months.narrow.12 = 12 +months.narrow.1 = ১ +months.narrow.2 = ২ +months.narrow.3 = ৩ +months.narrow.4 = ৪ +months.narrow.5 = ৫ +months.narrow.6 = ৬ +months.narrow.7 = ৭ +months.narrow.8 = ৮ +months.narrow.9 = ৯ +months.narrow.10 = ১০ +months.narrow.11 = ১১ +months.narrow.12 = ১২ days.wide.mon = সোমবাৰ days.wide.tue = মঙ্গলবাৰ days.wide.wed = বুধবাৰ @@ -109,17 +87,17 @@ days.wide.sun = দেওবাৰ days.abbreviated.mon = সোম days.abbreviated.tue = মঙ্গল days.abbreviated.wed = বুধ -days.abbreviated.thu = বৃহষ্পতি +days.abbreviated.thu = বৃহ days.abbreviated.fri = শুক্ৰ days.abbreviated.sat = শনি days.abbreviated.sun = ৰবি -days.narrow.mon = M -days.narrow.tue = T -days.narrow.wed = W -days.narrow.thu = T -days.narrow.fri = F -days.narrow.sat = S -days.narrow.sun = S +days.narrow.mon = সো +days.narrow.tue = ম +days.narrow.wed = বু +days.narrow.thu = বৃ +days.narrow.fri = শু +days.narrow.sat = শ +days.narrow.sun = ৰ dayPeriods.abbreviated.am = পূৰ্বাহ্ণ dayPeriods.abbreviated.pm = অপৰাহ্ণ dayPeriods.narrow.am = পূৰ্বাহ্ণ @@ -150,7 +128,7 @@ hyphenate.other = "200C "200D delimiters.quotes = “”‘’ auxiliary = [\u200C\u200D ৲] exemplarCharacters = [\u09BC অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ ং \u0981 ঃ ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড {ড\u09BC} ঢ {ঢ\u09BC} ণ ত থ দ ধ ন প ফ ব ভ ম য {য\u09BC} ৰ ল ৱ শ ষ স হ {ক\u09CDষ} া ি ী \u09C1 \u09C2 \u09C3 ে ৈ ো ৌ \u09CD] -punctuation = [\\- , ; \\: ! ? . ( ) \\[ \\] \\{ \\}] +punctuation = [\\- , ; \\: ! ? . । ( ) \\[ \\] \\{ \\}] [numbers] defaultNumberingSystem = beng @@ -168,4 +146,4 @@ percentSign = % plusSign = + superscriptingExponent = × -[counters] +[counters]
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/babel/locale/bn/babel-bn.ini b/Master/texmf-dist/tex/generic/babel/locale/bn/babel-bn.ini index 3d68f923827..9025457047f 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/bn/babel-bn.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/bn/babel-bn.ini @@ -11,8 +11,8 @@ [identification] charset = utf8 -version = 1.4 -date = 2020-03-22 +version = 1.5 +date = 2020-04-22 name.local = বাংলা name.english = Bangla name.babel = bengali @@ -148,3 +148,4 @@ plusSign = + superscriptingExponent = × [counters] +alphabetic = ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ত থ দ ধ ন প ফ ব ভ
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/babel/locale/fi/babel-fi.ini b/Master/texmf-dist/tex/generic/babel/locale/fi/babel-fi.ini index 5cec65ce8c3..71a8cd2f3a3 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/fi/babel-fi.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/fi/babel-fi.ini @@ -8,11 +8,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * Contributors: Teemu Likonen [identification] charset = utf8 -version = 1.1 -date = 2020-03-22 +version = 1.2 +date = 2020-04-08 name.local = suomi name.english = Finnish name.babel = finnish @@ -34,7 +35,7 @@ abstract = Tiivistelmä bib = Kirjallisuutta chapter = Luku appendix = Liite -contents = Sisältö +contents = Sisällys listfigure = Kuvat listtable = Taulukot index = Hakemisto @@ -57,7 +58,7 @@ abstract = Tiivistelm\"a bib = Kirjallisuutta chapter = Luku appendix = Liite -contents = Sis\"alt\"o +contents = Sis\"allys listfigure = Kuvat listtable = Taulukot index = Hakemisto diff --git a/Master/texmf-dist/tex/generic/babel/locale/hy/babel-hy.ini b/Master/texmf-dist/tex/generic/babel/locale/hy/babel-hy.ini index 935d452a205..5bedc981d83 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/hy/babel-hy.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/hy/babel-hy.ini @@ -13,8 +13,8 @@ [identification] charset = utf8 -version = 1.3 -date = 2020-03-22 +version = 1.4 +date = 2020-04-20 name.local = հայերեն name.english = Armenian name.babel = armenian @@ -171,12 +171,12 @@ plusSign = + superscriptingExponent = × [counters] -lower.1 = ա բ գ դ ե զ է ը թ -lower.2 = ժ ի լ խ ծ կ հ ձ ղ -lower.3 = ճ մ յ ն շ ո չ պ ջ -lower.4 = ռ ս վ տ ր ց ւ փ ք -upper.1 = Ա Բ Գ Դ Ե Զ Է Ը Թ -upper.2 = Ժ Ի Լ Խ Ծ Կ Հ Ձ Ղ -upper.3 = Ճ Մ Յ Ն Շ Ո Չ Պ Ջ -upper.4 = Ռ Ս Վ Տ Ր Ց Ւ Փ Ք +lower.letters.1 = ա բ գ դ ե զ է ը թ +lower.letters.2 = ժ ի լ խ ծ կ հ ձ ղ +lower.letters.3 = ճ մ յ ն շ ո չ պ ջ +lower.letters.4 = ռ ս վ տ ր ց ւ փ ք +upper.letters.1 = Ա Բ Գ Դ Ե Զ Է Ը Թ +upper.letters.2 = Ժ Ի Լ Խ Ծ Կ Հ Ձ Ղ +upper.letters.3 = Ճ Մ Յ Ն Շ Ո Չ Պ Ջ +upper.letters.4 = Ռ Ս Վ Տ Ր Ց Ւ Փ Ք diff --git a/Master/texmf-dist/tex/generic/babel/locale/lb/babel-lb.ini b/Master/texmf-dist/tex/generic/babel/locale/lb/babel-lb.ini index d2b7e343119..577f168f306 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/lb/babel-lb.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/lb/babel-lb.ini @@ -8,11 +8,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * Contributors: Sam Mersch. [identification] charset = utf8 -version = 1.1 -date = 2020-03-22 +version = 1.2 +date = 2020-04-20 name.local = Lëtzebuergesch name.english = Luxembourgish name.babel = luxembourgish @@ -27,50 +28,50 @@ encodings = T1 OT1 LY1 derivate = no [captions] -preface = -ref = -abstract = -bib = -chapter = -appendix = -contents = -listfigure = -listtable = -index = -figure = -table = -part = -encl = -cc = -headto = -page = -see = -also = -proof = -glossary = +preface = Virwuert +ref = Literatur +abstract = Resümee +bib = Bibliographie +chapter = Kapitel +appendix = Annex +contents = Contenue +listfigure = Lëscht vun de Biller +listtable = Lëscht vun den Tabellen +index = Index +figure = Bild +table = Tabell +part = Deel +encl = Annex(en) +cc = Distributeur +headto = Un +page = Säit +see = kuck +also = kuck och +proof = Beweis +glossary = Glossär [captions.licr] -preface = -ref = -abstract = -bib = -chapter = -appendix = -contents = -listfigure = -listtable = -index = -figure = -table = -part = -encl = -cc = -headto = -page = -see = -also = -proof = -glossary = +preface = Virwuert +ref = Literatur +abstract = Res\"umee +bib = Bibliographie +chapter = Kapitel +appendix = Annex +contents = Contenue +listfigure = L\"escht vun de Biller +listtable = L\"escht vun den Tabellen +index = Index +figure = Bild +table = Tabell +part = Deel +encl = Annex(en) +cc = Distributeur +headto = Un +page = Säit +see = kuck +also = kuck och +proof = Beweis +glossary = Glossär [date.gregorian] date.long = [d]. [MMMM] [y] @@ -106,13 +107,13 @@ days.wide.thu = Donneschdeg days.wide.fri = Freideg days.wide.sat = Samschdeg days.wide.sun = Sonndeg -days.abbreviated.mon = Méi. -days.abbreviated.tue = Dën. +days.abbreviated.mon = Méin. +days.abbreviated.tue = Dë. days.abbreviated.wed = Mët. -days.abbreviated.thu = Don. -days.abbreviated.fri = Fre. -days.abbreviated.sat = Sam. -days.abbreviated.sun = Son. +days.abbreviated.thu = Do. +days.abbreviated.fri = Fr. +days.abbreviated.sat = Sa. +days.abbreviated.sun = So. days.narrow.mon = M days.narrow.tue = D days.narrow.wed = M @@ -122,8 +123,8 @@ days.narrow.sat = S days.narrow.sun = S dayPeriods.abbreviated.am = moies dayPeriods.abbreviated.pm = nomëttes -dayPeriods.narrow.am = mo. -dayPeriods.narrow.pm = nomë. +dayPeriods.narrow.am = moies +dayPeriods.narrow.pm = nomëttes dayPeriods.wide.am = moies dayPeriods.wide.pm = nomëttes @@ -146,10 +147,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = -hyphenrules = -lefthyphenmin = -righthyphenmin = +frenchspacing = yes +hyphenrules = ngerman +lefthyphenmin = 2 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = diff --git a/Master/texmf-dist/tex/generic/babel/locale/mr/babel-mr.ini b/Master/texmf-dist/tex/generic/babel/locale/mr/babel-mr.ini index e5759fadc28..2456c009893 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/mr/babel-mr.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/mr/babel-mr.ini @@ -8,11 +8,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With some suggestions by NiranjanTambe [identification] charset = utf8 -version = 1.4 -date = 2020-03-22 +version = 1.5 +date = 2020-04-23 name.local = मराठी name.english = Marathi name.babel = marathi @@ -42,13 +43,13 @@ figure = आक्रुती table = कोष्टक part = भाग encl = समाविष्ट -cc = सि.सि. +cc = प्रत headto = प्रति page = पान see = पहा also = हे सुध्दा पहा proof = कसोटी -glossary = स्पष्टीकरणकोश +glossary = संज्ञांची सूची [date.gregorian] date.long = [d] [MMMM], [y] @@ -148,3 +149,4 @@ plusSign = + superscriptingExponent = × [counters] +alphabetic = क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def index 1ee7214a546..1767810fa08 100644 --- a/Master/texmf-dist/tex/generic/babel/luababel.def +++ b/Master/texmf-dist/tex/generic/babel/luababel.def @@ -32,7 +32,7 @@ %% extension |.ins|) which are part of the distribution. %% -\ifx\AddBabelHook\@undefined +\ifx\AddBabelHook\@undefined % When plain.def, babel.sty starts \bbl@trace{Read language.dat} \ifx\bbl@readstream\@undefined \csname newread\endcsname\bbl@readstream @@ -120,27 +120,30 @@ \bbl@trace{Macros for reading patterns files} \def\bbl@get@enc#1:#2:#3\@@@{\def\bbl@hyph@enc{#2}} \ifx\babelcatcodetablenum\@undefined - \def\babelcatcodetablenum{5211} + \ifx\newcatcodetable\@undefined + \def\babelcatcodetablenum{5211} + \def\bbl@pattcodes{\numexpr\babelcatcodetablenum+1\relax} + \else + \newcatcodetable\babelcatcodetablenum + \newcatcodetable\bbl@pattcodes + \fi +\else + \def\bbl@pattcodes{\numexpr\babelcatcodetablenum+1\relax} \fi \def\bbl@luapatterns#1#2{% \bbl@get@enc#1::\@@@ \setbox\z@\hbox\bgroup \begingroup - \ifx\catcodetable\@undefined - \let\savecatcodetable\luatexsavecatcodetable - \let\initcatcodetable\luatexinitcatcodetable - \let\catcodetable\luatexcatcodetable - \fi \savecatcodetable\babelcatcodetablenum\relax - \initcatcodetable\numexpr\babelcatcodetablenum+1\relax - \catcodetable\numexpr\babelcatcodetablenum+1\relax - \catcode`\#=6 \catcode`\$=3 \catcode`\&=4 \catcode`\^=7 - \catcode`\_=8 \catcode`\{=1 \catcode`\}=2 \catcode`\~=13 - \catcode`\@=11 \catcode`\^^I=10 \catcode`\^^J=12 - \catcode`\<=12 \catcode`\>=12 \catcode`\*=12 \catcode`\.=12 - \catcode`\-=12 \catcode`\/=12 \catcode`\[=12 \catcode`\]=12 - \catcode`\`=12 \catcode`\'=12 \catcode`\"=12 - \input #1\relax + \initcatcodetable\bbl@pattcodes\relax + \catcodetable\bbl@pattcodes\relax + \catcode`\#=6 \catcode`\$=3 \catcode`\&=4 \catcode`\^=7 + \catcode`\_=8 \catcode`\{=1 \catcode`\}=2 \catcode`\~=13 + \catcode`\@=11 \catcode`\^^I=10 \catcode`\^^J=12 + \catcode`\<=12 \catcode`\>=12 \catcode`\*=12 \catcode`\.=12 + \catcode`\-=12 \catcode`\/=12 \catcode`\[=12 \catcode`\]=12 + \catcode`\`=12 \catcode`\'=12 \catcode`\"=12 + \input #1\relax \catcodetable\babelcatcodetablenum\relax \endgroup \def\bbl@tempa{#2}% @@ -173,6 +176,25 @@ {\expandafter\expandafter\expandafter\bbl@luapatterns \csname bbl@hyphendata@\the\language\endcsname}}{}} \endinput\fi + % Here ends \ifx\AddBabelHook\@undefined + % A few lines are only read by hyphen.cfg +\ifx\DisableBabelHook\@undefined + \AddBabelHook{luatex}{everylanguage}{% + \def\process@language##1##2##3{% + \def\process@line####1####2 ####3 ####4 {}}} + \AddBabelHook{luatex}{loadpatterns}{% + \input #1\relax + \expandafter\gdef\csname bbl@hyphendata@\the\language\endcsname + {{#1}{}}} + \AddBabelHook{luatex}{loadexceptions}{% + \input #1\relax + \def\bbl@tempb##1##2{{##1}{#1}}% + \expandafter\xdef\csname bbl@hyphendata@\the\language\endcsname + {\expandafter\expandafter\expandafter\bbl@tempb + \csname bbl@hyphendata@\the\language\endcsname}} +\endinput\fi + % Here stops reading code for hyphen.cfg + % The following is read the 2nd time it's loaded \begingroup \catcode`\%=12 \catcode`\'=12 @@ -280,19 +302,6 @@ \bbl@ifunset{bbl@prehc@\languagename}{}% {\\\bbl@ifblank{\bbl@cs{prehc@\languagename}}{}% {\prehyphenchar=\bbl@cl{prehc}\relax}}}} -\AddBabelHook{luatex}{everylanguage}{% - \def\process@language##1##2##3{% - \def\process@line####1####2 ####3 ####4 {}}} -\AddBabelHook{luatex}{loadpatterns}{% - \input #1\relax - \expandafter\gdef\csname bbl@hyphendata@\the\language\endcsname - {{#1}{}}} -\AddBabelHook{luatex}{loadexceptions}{% - \input #1\relax - \def\bbl@tempb##1##2{{##1}{#1}}% - \expandafter\xdef\csname bbl@hyphendata@\the\language\endcsname - {\expandafter\expandafter\expandafter\bbl@tempb - \csname bbl@hyphendata@\the\language\endcsname}} \@onlypreamble\babelpatterns \AtEndOfPackage{% \newcommand\babelpatterns[2][\@empty]{% @@ -522,36 +531,6 @@ \ifx\bbl@KVP@intrapenalty\@nil\else \expandafter\bbl@intrapenalty\bbl@KVP@intrapenalty\@@ \fi}} -\AddBabelHook{luatex}{loadkernel}{% - \begingroup - % Reset chars "80-"C0 to category "other", no case mapping: - \catcode`\@=11 \count@=128 - \loop\ifnum\count@<192 - \global\uccode\count@=0 \global\lccode\count@=0 - \global\catcode\count@=12 \global\sfcode\count@=1000 - \advance\count@ by 1 \repeat - % Other: - \def\O ##1 {% - \global\uccode"##1=0 \global\lccode"##1=0 - \global\catcode"##1=12 \global\sfcode"##1=1000 }% - % Letter: - \def\L ##1 ##2 ##3 {\global\catcode"##1=11 - \global\uccode"##1="##2 - \global\lccode"##1="##3 - % Uppercase letters have sfcode=999: - \ifnum"##1="##3 \else \global\sfcode"##1=999 \fi }% - % Letter without case mappings: - \def\l ##1 {\L ##1 ##1 ##1 }% - \l 00AA - \L 00B5 039C 00B5 - \l 00BA - \O 00D7 - \l 00DF - \O 00F7 - \L 00FF 0178 00FF - \endgroup - \input #1\relax} -\ifx\DisableBabelHook\@undefined\endinput\fi \AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont} \AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts} \DisableBabelHook{babel-fontspec} @@ -1291,6 +1270,7 @@ end \babelsublr{% \LaTeX\kern.15em2\bbl@nextfake$_{\textstyle\varepsilon}$}}}} {} + \endinput %% %% End of file `luababel.def'. diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf index 90a88f9eaea..bb6319588c7 100644 --- a/Master/texmf-dist/tex/generic/babel/nil.ldf +++ b/Master/texmf-dist/tex/generic/babel/nil.ldf @@ -32,7 +32,7 @@ %% extension |.ins|) which are part of the distribution. %% -\ProvidesLanguage{nil}[2020/03/22 3.42 Nil language] +\ProvidesLanguage{nil}[2020/04/28 3.43 Nil language] \LdfInit{nil}{datenil} \ifx\l@nil\@undefined \newlanguage\l@nil @@ -45,6 +45,7 @@ \let\captionsnil\@empty \let\datenil\@empty \ldf@finish{nil} + \endinput %% %% End of file `nil.ldf'. diff --git a/Master/texmf-dist/tex/generic/babel/plain.def b/Master/texmf-dist/tex/generic/babel/plain.def index cba847617b0..723c3cb41c6 100644 --- a/Master/texmf-dist/tex/generic/babel/plain.def +++ b/Master/texmf-dist/tex/generic/babel/plain.def @@ -32,329 +32,8 @@ %% extension |.ins|) which are part of the distribution. %% -\def\@empty{} -\def\loadlocalcfg#1{% - \openin0#1.cfg - \ifeof0 - \closein0 - \else - \closein0 - {\immediate\write16{*************************************}% - \immediate\write16{* Local config file #1.cfg used}% - \immediate\write16{*}% - } - \input #1.cfg\relax - \fi - \@endofldf} -\long\def\@firstofone#1{#1} -\long\def\@firstoftwo#1#2{#1} -\long\def\@secondoftwo#1#2{#2} -\def\@nnil{\@nil} -\def\@gobbletwo#1#2{} -\def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}} -\def\@star@or@long#1{% - \@ifstar - {\let\l@ngrel@x\relax#1}% - {\let\l@ngrel@x\long#1}} -\let\l@ngrel@x\relax -\def\@car#1#2\@nil{#1} -\def\@cdr#1#2\@nil{#2} -\let\@typeset@protect\relax -\let\protected@edef\edef -\long\def\@gobble#1{} -\edef\@backslashchar{\expandafter\@gobble\string\\} -\def\strip@prefix#1>{} -\def\g@addto@macro#1#2{{% - \toks@\expandafter{#1#2}% - \xdef#1{\the\toks@}}} -\def\@namedef#1{\expandafter\def\csname #1\endcsname} -\def\@nameuse#1{\csname #1\endcsname} -\def\@ifundefined#1{% - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\def\@expandtwoargs#1#2#3{% - \edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a} -\def\zap@space#1 #2{% - #1% - \ifx#2\@empty\else\expandafter\zap@space\fi - #2} -\ifx\@preamblecmds\@undefined - \def\@preamblecmds{} -\fi -\def\@onlypreamble#1{% - \expandafter\gdef\expandafter\@preamblecmds\expandafter{% - \@preamblecmds\do#1}} -\@onlypreamble\@onlypreamble -\def\begindocument{% - \@begindocumenthook - \global\let\@begindocumenthook\@undefined - \def\do##1{\global\let##1\@undefined}% - \@preamblecmds - \global\let\do\noexpand} -\ifx\@begindocumenthook\@undefined - \def\@begindocumenthook{} -\fi -\@onlypreamble\@begindocumenthook -\def\AtBeginDocument{\g@addto@macro\@begindocumenthook} -\def\AtEndOfPackage#1{\g@addto@macro\@endofldf{#1}} -\@onlypreamble\AtEndOfPackage -\def\@endofldf{} -\@onlypreamble\@endofldf -\let\bbl@afterlang\@empty -\chardef\bbl@opt@hyphenmap\z@ -\ifx\if@filesw\@undefined - \expandafter\let\csname if@filesw\expandafter\endcsname - \csname iffalse\endcsname -\fi -\def\newcommand{\@star@or@long\new@command} -\def\new@command#1{% - \@testopt{\@newcommand#1}0} -\def\@newcommand#1[#2]{% - \@ifnextchar [{\@xargdef#1[#2]}% - {\@argdef#1[#2]}} -\long\def\@argdef#1[#2]#3{% - \@yargdef#1\@ne{#2}{#3}} -\long\def\@xargdef#1[#2][#3]#4{% - \expandafter\def\expandafter#1\expandafter{% - \expandafter\@protected@testopt\expandafter #1% - \csname\string#1\expandafter\endcsname{#3}}% - \expandafter\@yargdef \csname\string#1\endcsname - \tw@{#2}{#4}} -\long\def\@yargdef#1#2#3{% - \@tempcnta#3\relax - \advance \@tempcnta \@ne - \let\@hash@\relax - \edef\reserved@a{\ifx#2\tw@ [\@hash@1]\fi}% - \@tempcntb #2% - \@whilenum\@tempcntb <\@tempcnta - \do{% - \edef\reserved@a{\reserved@a\@hash@\the\@tempcntb}% - \advance\@tempcntb \@ne}% - \let\@hash@##% - \l@ngrel@x\expandafter\def\expandafter#1\reserved@a} -\def\providecommand{\@star@or@long\provide@command} -\def\provide@command#1{% - \begingroup - \escapechar\m@ne\xdef\@gtempa{{\string#1}}% - \endgroup - \expandafter\@ifundefined\@gtempa - {\def\reserved@a{\new@command#1}}% - {\let\reserved@a\relax - \def\reserved@a{\new@command\reserved@a}}% - \reserved@a}% -\def\DeclareRobustCommand{\@star@or@long\declare@robustcommand} -\def\declare@robustcommand#1{% - \edef\reserved@a{\string#1}% - \def\reserved@b{#1}% - \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}% - \edef#1{% - \ifx\reserved@a\reserved@b - \noexpand\x@protect - \noexpand#1% - \fi - \noexpand\protect - \expandafter\noexpand\csname - \expandafter\@gobble\string#1 \endcsname - }% - \expandafter\new@command\csname - \expandafter\@gobble\string#1 \endcsname -} -\def\x@protect#1{% - \ifx\protect\@typeset@protect\else - \@x@protect#1% - \fi -} -\def\@x@protect#1\fi#2#3{% - \fi\protect#1% -} -\def\bbl@tempa{\csname newif\endcsname\ifin@} -\ifx\in@\@undefined - \def\in@#1#2{% - \def\in@@##1#1##2##3\in@@{% - \ifx\in@##2\in@false\else\in@true\fi}% - \in@@#2#1\in@\in@@} -\else - \let\bbl@tempa\@empty -\fi -\bbl@tempa -\def\@ifpackagewith#1#2#3#4{#3} -\def\@ifl@aded#1#2#3#4{} -\ifx\@tempcnta\@undefined - \csname newcount\endcsname\@tempcnta\relax -\fi -\ifx\@tempcntb\@undefined - \csname newcount\endcsname\@tempcntb\relax -\fi -\ifx\bye\@undefined - \advance\count10 by -2\relax -\fi -\ifx\@ifnextchar\@undefined - \def\@ifnextchar#1#2#3{% - \let\reserved@d=#1% - \def\reserved@a{#2}\def\reserved@b{#3}% - \futurelet\@let@token\@ifnch} - \def\@ifnch{% - \ifx\@let@token\@sptoken - \let\reserved@c\@xifnch - \else - \ifx\@let@token\reserved@d - \let\reserved@c\reserved@a - \else - \let\reserved@c\reserved@b - \fi - \fi - \reserved@c} - \def\:{\let\@sptoken= } \: % this makes \@sptoken a space token - \def\:{\@xifnch} \expandafter\def\: {\futurelet\@let@token\@ifnch} -\fi -\def\@testopt#1#2{% - \@ifnextchar[{#1}{#1[#2]}} -\def\@protected@testopt#1{% - \ifx\protect\@typeset@protect - \expandafter\@testopt - \else - \@x@protect#1% - \fi} -\long\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax - #2\relax}\fi} -\long\def\@iwhilenum#1{\ifnum #1\expandafter\@iwhilenum - \else\expandafter\@gobble\fi{#1}} -\def\DeclareTextCommand{% - \@dec@text@cmd\providecommand -} -\def\ProvideTextCommand{% - \@dec@text@cmd\providecommand -} -\def\DeclareTextSymbol#1#2#3{% - \@dec@text@cmd\chardef#1{#2}#3\relax -} -\def\@dec@text@cmd#1#2#3{% - \expandafter\def\expandafter#2% - \expandafter{% - \csname#3-cmd\expandafter\endcsname - \expandafter#2% - \csname#3\string#2\endcsname - }% - \expandafter#1\csname#3\string#2\endcsname -} -\def\@current@cmd#1{% - \ifx\protect\@typeset@protect\else - \noexpand#1\expandafter\@gobble - \fi -} -\def\@changed@cmd#1#2{% - \ifx\protect\@typeset@protect - \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax - \expandafter\ifx\csname ?\string#1\endcsname\relax - \expandafter\def\csname ?\string#1\endcsname{% - \@changed@x@err{#1}% - }% - \fi - \global\expandafter\let - \csname\cf@encoding \string#1\expandafter\endcsname - \csname ?\string#1\endcsname - \fi - \csname\cf@encoding\string#1% - \expandafter\endcsname - \else - \noexpand#1% - \fi -} -\def\@changed@x@err#1{% - \errhelp{Your command will be ignored, type <return> to proceed}% - \errmessage{Command \protect#1 undefined in encoding \cf@encoding}} -\def\DeclareTextCommandDefault#1{% - \DeclareTextCommand#1?% -} -\def\ProvideTextCommandDefault#1{% - \ProvideTextCommand#1?% -} -\expandafter\let\csname OT1-cmd\endcsname\@current@cmd -\expandafter\let\csname?-cmd\endcsname\@changed@cmd -\def\DeclareTextAccent#1#2#3{% - \DeclareTextCommand#1{#2}[1]{\accent#3 ##1} -} -\def\DeclareTextCompositeCommand#1#2#3#4{% - \expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname - \edef\reserved@b{\string##1}% - \edef\reserved@c{% - \expandafter\@strip@args\meaning\reserved@a:-\@strip@args}% - \ifx\reserved@b\reserved@c - \expandafter\expandafter\expandafter\ifx - \expandafter\@car\reserved@a\relax\relax\@nil - \@text@composite - \else - \edef\reserved@b##1{% - \def\expandafter\noexpand - \csname#2\string#1\endcsname####1{% - \noexpand\@text@composite - \expandafter\noexpand\csname#2\string#1\endcsname - ####1\noexpand\@empty\noexpand\@text@composite - {##1}% - }% - }% - \expandafter\reserved@b\expandafter{\reserved@a{##1}}% - \fi - \expandafter\def\csname\expandafter\string\csname - #2\endcsname\string#1-\string#3\endcsname{#4} - \else - \errhelp{Your command will be ignored, type <return> to proceed}% - \errmessage{\string\DeclareTextCompositeCommand\space used on - inappropriate command \protect#1} - \fi -} -\def\@text@composite#1#2#3\@text@composite{% - \expandafter\@text@composite@x - \csname\string#1-\string#2\endcsname -} -\def\@text@composite@x#1#2{% - \ifx#1\relax - #2% - \else - #1% - \fi -} -\def\@strip@args#1:#2-#3\@strip@args{#2} -\def\DeclareTextComposite#1#2#3#4{% - \def\reserved@a{\DeclareTextCompositeCommand#1{#2}{#3}}% - \bgroup - \lccode`\@=#4% - \lowercase{% - \egroup - \reserved@a @% - }% -} -\def\UseTextSymbol#1#2{% - #2% -} -\def\UseTextAccent#1#2#3{% -} -\def\@use@text@encoding#1{% -} -\def\DeclareTextSymbolDefault#1#2{% - \DeclareTextCommandDefault#1{\UseTextSymbol{#2}#1}% -} -\def\DeclareTextAccentDefault#1#2{% - \DeclareTextCommandDefault#1{\UseTextAccent{#2}#1}% -} -\def\cf@encoding{OT1} -\DeclareTextAccent{\"}{OT1}{127} -\DeclareTextAccent{\'}{OT1}{19} -\DeclareTextAccent{\^}{OT1}{94} -\DeclareTextAccent{\`}{OT1}{18} -\DeclareTextAccent{\~}{OT1}{126} -\DeclareTextSymbol{\textquotedblleft}{OT1}{92} -\DeclareTextSymbol{\textquotedblright}{OT1}{`\"} -\DeclareTextSymbol{\textquoteleft}{OT1}{`\`} -\DeclareTextSymbol{\textquoteright}{OT1}{`\'} -\DeclareTextSymbol{\i}{OT1}{16} -\DeclareTextSymbol{\ss}{OT1}{25} -\ifx\scriptsize\@undefined - \let\scriptsize\sevenrm -\fi +\input babel.def + \endinput %% %% End of file `plain.def'. diff --git a/Master/texmf-dist/tex/generic/babel/switch.def b/Master/texmf-dist/tex/generic/babel/switch.def index 8bb59d6bf2b..7ff780ce5a1 100644 --- a/Master/texmf-dist/tex/generic/babel/switch.def +++ b/Master/texmf-dist/tex/generic/babel/switch.def @@ -32,452 +32,10 @@ %% extension |.ins|) which are part of the distribution. %% -\ifx\ProvidesFile\@undefined - \def\ProvidesFile#1[#2 #3 #4]{% - \wlog{File: #1 #4 #3 <#2>}% - \let\ProvidesFile\@undefined} -\fi -\ProvidesFile{switch.def}[2020/03/22 3.42 Babel switching mechanism] -\ifx\AtBeginDocument\@undefined - \input plain.def\relax -\fi -\ifx\language\@undefined - \csname newcount\endcsname\language -\fi -\ifx\newlanguage\@undefined - \csname newcount\endcsname\last@language - \def\addlanguage#1{% - \global\advance\last@language\@ne - \ifnum\last@language<\@cclvi - \else - \errmessage{No room for a new \string\language!}% - \fi - \global\chardef#1\last@language - \wlog{\string#1 = \string\language\the\last@language}} -\else - \countdef\last@language=19 - \def\addlanguage{\alloc@9\language\chardef\@cclvi} -\fi -\def\bbl@version{3.42} -\def\bbl@date{2020/03/22} -\def\adddialect#1#2{% - \global\chardef#1#2\relax - \bbl@usehooks{adddialect}{{#1}{#2}}% - \begingroup - \count@#1\relax - \def\bbl@elt##1##2##3##4{% - \ifnum\count@=##2\relax - \bbl@info{\string#1 = using hyphenrules for ##1\\% - (\string\language\the\count@)}% - \def\bbl@elt####1####2####3####4{}% - \fi}% - \bbl@cs{languages}% - \endgroup} -\def\bbl@fixname#1{% - \begingroup - \def\bbl@tempe{l@}% - \edef\bbl@tempd{\noexpand\@ifundefined{\noexpand\bbl@tempe#1}}% - \bbl@tempd - {\lowercase\expandafter{\bbl@tempd}% - {\uppercase\expandafter{\bbl@tempd}% - \@empty - {\edef\bbl@tempd{\def\noexpand#1{#1}}% - \uppercase\expandafter{\bbl@tempd}}}% - {\edef\bbl@tempd{\def\noexpand#1{#1}}% - \lowercase\expandafter{\bbl@tempd}}}% - \@empty - \edef\bbl@tempd{\endgroup\def\noexpand#1{#1}}% - \bbl@tempd - \bbl@usehooks{languagename}{}} -\def\bbl@iflanguage#1{% - \@ifundefined{l@#1}{\@nolanerr{#1}\@gobble}\@firstofone} -\def\iflanguage#1{% - \bbl@iflanguage{#1}{% - \ifnum\csname l@#1\endcsname=\language - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi}} -\let\bbl@select@type\z@ -\edef\selectlanguage{% - \noexpand\protect - \expandafter\noexpand\csname selectlanguage \endcsname} -\ifx\@undefined\protect\let\protect\relax\fi -\ifx\documentclass\@undefined - \def\xstring{\string\string\string} -\else - \let\xstring\string -\fi -\def\bbl@language@stack{} -\def\bbl@push@language{% - \xdef\bbl@language@stack{\languagename+\bbl@language@stack}} -\def\bbl@pop@lang#1+#2-#3{% - \edef\languagename{#1}\xdef#3{#2}} -\let\bbl@ifrestoring\@secondoftwo -\def\bbl@pop@language{% - \expandafter\bbl@pop@lang\bbl@language@stack-\bbl@language@stack - \let\bbl@ifrestoring\@firstoftwo - \expandafter\bbl@set@language\expandafter{\languagename}% - \let\bbl@ifrestoring\@secondoftwo} -\chardef\localeid\z@ -\def\bbl@id@last{0} % No real need for a new counter -\def\bbl@id@assign{% - \bbl@ifunset{bbl@id@@\languagename}% - {\count@\bbl@id@last\relax - \advance\count@\@ne - \bbl@csarg\chardef{id@@\languagename}\count@ - \edef\bbl@id@last{\the\count@}% - \ifcase\bbl@engine\or - \directlua{ - Babel = Babel or {} - Babel.locale_props = Babel.locale_props or {} - Babel.locale_props[\bbl@id@last] = {} - Babel.locale_props[\bbl@id@last].name = '\languagename' - }% - \fi}% - {}% - \chardef\localeid\bbl@cl{id@}} -\expandafter\def\csname selectlanguage \endcsname#1{% - \ifnum\bbl@hymapsel=\@cclv\let\bbl@hymapsel\tw@\fi - \bbl@push@language - \aftergroup\bbl@pop@language - \bbl@set@language{#1}} -\def\BabelContentsFiles{toc,lof,lot} -\def\bbl@set@language#1{% from selectlanguage, pop@ - \edef\languagename{% - \ifnum\escapechar=\expandafter`\string#1\@empty - \else\string#1\@empty\fi}% - \select@language{\languagename}% - % write to auxs - \expandafter\ifx\csname date\languagename\endcsname\relax\else - \if@filesw - \ifx\babel@aux\@gobbletwo\else % Set if single in the first, redundant - \protected@write\@auxout{}{\string\babel@aux{\languagename}{}}% - \fi - \bbl@usehooks{write}{}% - \fi - \fi} -\def\select@language#1{% from set@, babel@aux - % set hymap - \ifnum\bbl@hymapsel=\@cclv\chardef\bbl@hymapsel4\relax\fi - % set name - \edef\languagename{#1}% - \bbl@fixname\languagename - \expandafter\ifx\csname date\languagename\endcsname\relax - \IfFileExists{babel-\languagename.tex}% - {\babelprovide{\languagename}}% - {}% - \fi - \bbl@iflanguage\languagename{% - \expandafter\ifx\csname date\languagename\endcsname\relax - \bbl@error - {Unknown language `#1'. Either you have\\% - misspelled its name, it has not been installed,\\% - or you requested it in a previous run. Fix its name,\\% - install it or just rerun the file, respectively. In\\% - some cases, you may need to remove the aux file}% - {You may proceed, but expect wrong results}% - \else - % set type - \let\bbl@select@type\z@ - \expandafter\bbl@switch\expandafter{\languagename}% - \fi}} -\def\babel@aux#1#2{% - \select@language{#1}% - \bbl@foreach\BabelContentsFiles{% - \@writefile{##1}{\babel@toc{#1}{#2}}}}% %% TODO - ok in plain? -\def\babel@toc#1#2{% - \select@language{#1}} -\let\select@language@x\select@language -\newif\ifbbl@usedategroup -\def\bbl@switch#1{% from select@, foreign@ - % make sure there is info for the language if so requested - \bbl@ensureinfo{#1}% - % restore - \originalTeX - \expandafter\def\expandafter\originalTeX\expandafter{% - \csname noextras#1\endcsname - \let\originalTeX\@empty - \babel@beginsave}% - \bbl@usehooks{afterreset}{}% - \languageshorthands{none}% - % set the locale id - \bbl@id@assign - % switch captions, date - \ifcase\bbl@select@type - \ifhmode - \hskip\z@skip % trick to ignore spaces - \csname captions#1\endcsname\relax - \csname date#1\endcsname\relax - \loop\ifdim\lastskip>\z@\unskip\repeat\unskip - \else - \csname captions#1\endcsname\relax - \csname date#1\endcsname\relax - \fi - \else - \ifbbl@usedategroup % if \foreign... within \<lang>date - \bbl@usedategroupfalse - \ifhmode - \hskip\z@skip % trick to ignore spaces - \csname date#1\endcsname\relax - \loop\ifdim\lastskip>\z@\unskip\repeat\unskip - \else - \csname date#1\endcsname\relax - \fi - \fi - \fi - % switch extras - \bbl@usehooks{beforeextras}{}% - \csname extras#1\endcsname\relax - \bbl@usehooks{afterextras}{}% - % > babel-ensure - % > babel-sh-<short> - % > babel-bidi - % > babel-fontspec - % hyphenation - case mapping - \ifcase\bbl@opt@hyphenmap\or - \def\BabelLower##1##2{\lccode##1=##2\relax}% - \ifnum\bbl@hymapsel>4\else - \csname\languagename @bbl@hyphenmap\endcsname - \fi - \chardef\bbl@opt@hyphenmap\z@ - \else - \ifnum\bbl@hymapsel>\bbl@opt@hyphenmap\else - \csname\languagename @bbl@hyphenmap\endcsname - \fi - \fi - \global\let\bbl@hymapsel\@cclv - % hyphenation - patterns - \bbl@patterns{#1}% - % hyphenation - mins - \babel@savevariable\lefthyphenmin - \babel@savevariable\righthyphenmin - \expandafter\ifx\csname #1hyphenmins\endcsname\relax - \set@hyphenmins\tw@\thr@@\relax - \else - \expandafter\expandafter\expandafter\set@hyphenmins - \csname #1hyphenmins\endcsname\relax - \fi} -\long\def\otherlanguage#1{% - \ifnum\bbl@hymapsel=\@cclv\let\bbl@hymapsel\thr@@\fi - \csname selectlanguage \endcsname{#1}% - \ignorespaces} -\long\def\endotherlanguage{% - \global\@ignoretrue\ignorespaces} -\expandafter\def\csname otherlanguage*\endcsname#1{% - \ifnum\bbl@hymapsel=\@cclv\chardef\bbl@hymapsel4\relax\fi - \foreign@language{#1}} -\expandafter\let\csname endotherlanguage*\endcsname\relax -\providecommand\bbl@beforeforeign{} -\edef\foreignlanguage{% - \noexpand\protect - \expandafter\noexpand\csname foreignlanguage \endcsname} -\expandafter\def\csname foreignlanguage \endcsname{% - \@ifstar\bbl@foreign@s\bbl@foreign@x} -\def\bbl@foreign@x#1#2{% - \begingroup - \let\BabelText\@firstofone - \bbl@beforeforeign - \foreign@language{#1}% - \bbl@usehooks{foreign}{}% - \BabelText{#2}% Now in horizontal mode! - \endgroup} -\def\bbl@foreign@s#1#2{% TODO - \shapemode, \@setpar, ?\@@par - \begingroup - {\par}% - \let\BabelText\@firstofone - \foreign@language{#1}% - \bbl@usehooks{foreign*}{}% - \bbl@dirparastext - \BabelText{#2}% Still in vertical mode! - {\par}% - \endgroup} -\def\foreign@language#1{% - % set name - \edef\languagename{#1}% - \bbl@fixname\languagename - \expandafter\ifx\csname date\languagename\endcsname\relax - \IfFileExists{babel-\languagename.tex}% - {\babelprovide{\languagename}}% - {}% - \fi - \bbl@iflanguage\languagename{% - \expandafter\ifx\csname date\languagename\endcsname\relax - \bbl@warning % TODO - why a warning, not an error? - {Unknown language `#1'. Either you have\\% - misspelled its name, it has not been installed,\\% - or you requested it in a previous run. Fix its name,\\% - install it or just rerun the file, respectively. In\\% - some cases, you may need to remove the aux file.\\% - I'll proceed, but expect wrong results.\\% - Reported}% - \fi - % set type - \let\bbl@select@type\@ne - \expandafter\bbl@switch\expandafter{\languagename}}} -\let\bbl@hyphlist\@empty -\let\bbl@hyphenation@\relax -\let\bbl@pttnlist\@empty -\let\bbl@patterns@\relax -\let\bbl@hymapsel=\@cclv -\def\bbl@patterns#1{% - \language=\expandafter\ifx\csname l@#1:\f@encoding\endcsname\relax - \csname l@#1\endcsname - \edef\bbl@tempa{#1}% - \else - \csname l@#1:\f@encoding\endcsname - \edef\bbl@tempa{#1:\f@encoding}% - \fi - \@expandtwoargs\bbl@usehooks{patterns}{{#1}{\bbl@tempa}}% - % > luatex - \@ifundefined{bbl@hyphenation@}{}{% Can be \relax! - \begingroup - \bbl@xin@{,\number\language,}{,\bbl@hyphlist}% - \ifin@\else - \@expandtwoargs\bbl@usehooks{hyphenation}{{#1}{\bbl@tempa}}% - \hyphenation{% - \bbl@hyphenation@ - \@ifundefined{bbl@hyphenation@#1}% - \@empty - {\space\csname bbl@hyphenation@#1\endcsname}}% - \xdef\bbl@hyphlist{\bbl@hyphlist\number\language,}% - \fi - \endgroup}} -\def\hyphenrules#1{% - \edef\bbl@tempf{#1}% - \bbl@fixname\bbl@tempf - \bbl@iflanguage\bbl@tempf{% - \expandafter\bbl@patterns\expandafter{\bbl@tempf}% - \languageshorthands{none}% - \expandafter\ifx\csname\bbl@tempf hyphenmins\endcsname\relax - \set@hyphenmins\tw@\thr@@\relax - \else - \expandafter\expandafter\expandafter\set@hyphenmins - \csname\bbl@tempf hyphenmins\endcsname\relax - \fi}} -\let\endhyphenrules\@empty -\def\providehyphenmins#1#2{% - \expandafter\ifx\csname #1hyphenmins\endcsname\relax - \@namedef{#1hyphenmins}{#2}% - \fi} -\def\set@hyphenmins#1#2{% - \lefthyphenmin#1\relax - \righthyphenmin#2\relax} -\ifx\ProvidesFile\@undefined - \def\ProvidesLanguage#1[#2 #3 #4]{% - \wlog{Language: #1 #4 #3 <#2>}% - } -\else - \def\ProvidesLanguage#1{% - \begingroup - \catcode`\ 10 % - \@makeother\/% - \@ifnextchar[%] - {\@provideslanguage{#1}}{\@provideslanguage{#1}[]}} - \def\@provideslanguage#1[#2]{% - \wlog{Language: #1 #2}% - \expandafter\xdef\csname ver@#1.ldf\endcsname{#2}% - \endgroup} -\fi -\def\LdfInit{% - \chardef\atcatcode=\catcode`\@ - \catcode`\@=11\relax - \input babel.def\relax - \catcode`\@=\atcatcode \let\atcatcode\relax - \LdfInit} -\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}} -\let\uselocale\setlocale -\let\locale\setlocale -\let\selectlocale\setlocale -\let\localename\setlocale -\let\textlocale\setlocale -\let\textlanguage\setlocale -\let\languagetext\setlocale -\edef\bbl@nulllanguage{\string\language=0} -\ifx\PackageError\@undefined - \def\bbl@error#1#2{% - \begingroup - \newlinechar=`\^^J - \def\\{^^J(babel) }% - \errhelp{#2}\errmessage{\\#1}% - \endgroup} - \def\bbl@warning#1{% - \begingroup - \newlinechar=`\^^J - \def\\{^^J(babel) }% - \message{\\#1}% - \endgroup} - \let\bbl@infowarn\bbl@warning - \def\bbl@info#1{% - \begingroup - \newlinechar=`\^^J - \def\\{^^J}% - \wlog{#1}% - \endgroup} -\else - \def\bbl@error#1#2{% - \begingroup - \def\\{\MessageBreak}% - \PackageError{babel}{#1}{#2}% - \endgroup} - \def\bbl@warning#1{% - \begingroup - \def\\{\MessageBreak}% - \PackageWarning{babel}{#1}% - \endgroup} - \def\bbl@infowarn#1{% - \begingroup - \def\\{\MessageBreak}% - \GenericWarning - {(babel) \@spaces\@spaces\@spaces}% - {Package babel Info: #1}% - \endgroup} - \def\bbl@info#1{% - \begingroup - \def\\{\MessageBreak}% - \PackageInfo{babel}{#1}% - \endgroup} -\fi -\@ifpackagewith{babel}{silent} - {\let\bbl@info\@gobble - \let\bbl@infowarn\@gobble - \let\bbl@warning\@gobble} - {} -\def\bbl@nocaption{\protect\bbl@nocaption@i} -\def\bbl@nocaption@i#1#2{% 1: text to be printed 2: caption macro \langXname - \global\@namedef{#2}{\textbf{?#1?}}% - \@nameuse{#2}% - \bbl@warning{% - \@backslashchar#2 not set. Please, define\\% - it in the preamble with something like:\\% - \string\renewcommand\@backslashchar#2{..}\\% - Reported}} -\def\bbl@tentative{\protect\bbl@tentative@i} -\def\bbl@tentative@i#1{% - \bbl@warning{% - Some functions for '#1' are tentative.\\% - 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\space yet.\\% - Perhaps you misspelled it or your installation\\% - is not complete}% - {Your command will be ignored, type <return> to proceed}} -\def\@nopatterns#1{% - \bbl@warning - {No hyphenation patterns were preloaded for\\% - the language `#1' into the format.\\% - Please, configure your TeX system to add them and\\% - rebuild the format. Now I will use the patterns\\% - preloaded for \bbl@nulllanguage\space instead}} -\let\bbl@usehooks\@gobbletwo +\let\bbl@onlyswitch\@empty +\input babel.def +\let\bbl@onlyswitch\@undefined + \endinput %% %% End of file `switch.def'. diff --git a/Master/texmf-dist/tex/generic/babel/txtbabel.def b/Master/texmf-dist/tex/generic/babel/txtbabel.def index 9f7b0550311..bf6f6a3285c 100644 --- a/Master/texmf-dist/tex/generic/babel/txtbabel.def +++ b/Master/texmf-dist/tex/generic/babel/txtbabel.def @@ -150,6 +150,7 @@ \def\@roman#1{\babelsublr{\ensureascii{\bbl@asciiroman#1}}}% \let\bbl@asciiRoman=\@Roman \def\@Roman#1{\babelsublr{\ensureascii{\bbl@asciiRoman#1}}}}{} + \endinput %% %% End of file `txtbabel.def'. diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def index e3c943e2c8c..1b0c1bb36d6 100644 --- a/Master/texmf-dist/tex/generic/babel/xebabel.def +++ b/Master/texmf-dist/tex/generic/babel/xebabel.def @@ -91,35 +91,6 @@ \expandafter\bbl@toglobal\csname selectfont \endcsname}% \fi}% \fi} -\AddBabelHook{xetex}{loadkernel}{% - \begingroup - % Reset chars "80-"C0 to category "other", no case mapping: - \catcode`\@=11 \count@=128 - \loop\ifnum\count@<192 - \global\uccode\count@=0 \global\lccode\count@=0 - \global\catcode\count@=12 \global\sfcode\count@=1000 - \advance\count@ by 1 \repeat - % Other: - \def\O ##1 {% - \global\uccode"##1=0 \global\lccode"##1=0 - \global\catcode"##1=12 \global\sfcode"##1=1000 }% - % Letter: - \def\L ##1 ##2 ##3 {\global\catcode"##1=11 - \global\uccode"##1="##2 - \global\lccode"##1="##3 - % Uppercase letters have sfcode=999: - \ifnum"##1="##3 \else \global\sfcode"##1=999 \fi }% - % Letter without case mappings: - \def\l ##1 {\L ##1 ##1 ##1 }% - \l 00AA - \L 00B5 039C 00B5 - \l 00BA - \O 00D7 - \l 00DF - \O 00F7 - \L 00FF 0178 00FF - \endgroup - \input #1\relax} \ifx\DisableBabelHook\@undefined\endinput\fi \AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont} \AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts} @@ -307,6 +278,7 @@ \babel@save\bbl@langfeatures \edef\bbl@langfeatures{#2,}}} \input txtbabel.def + \endinput %% %% End of file `xebabel.def'. |