diff options
author | Karl Berry <karl@freefriends.org> | 2020-06-10 20:48:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-06-10 20:48:38 +0000 |
commit | 85878cf11e12b9a4ac55697441a25486f33b246a (patch) | |
tree | 56ceda8ea23a67af9e1a2071ae14e7d6ab1e3708 /Master/texmf-dist/tex/generic/babel/babel.def | |
parent | ab2350d84cd86ce4be11206a765c6625e5cc2e5f (diff) |
babel (10jun20)
git-svn-id: svn://tug.org/texlive/trunk@55508 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.def')
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/babel.def | 141 |
1 files changed, 90 insertions, 51 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def index 7db59afba5b..da5a58ba7ce 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.def +++ b/Master/texmf-dist/tex/generic/babel/babel.def @@ -39,7 +39,7 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{babel.def}[2020/05/13 3.44 Babel common definitions] +\ProvidesFile{babel.def}[2020/06/10 3.45 Babel common definitions] \ifx\AtBeginDocument\@undefined % TODO. change test. % == Code for plain == \def\@empty{} @@ -399,22 +399,10 @@ \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.44} -\def\bbl@date{2020/05/13} +\countdef\last@language=19 % TODO. why? remove? +\def\addlanguage{\csname newlanguage\endcsname} +\def\bbl@version{3.45} +\def\bbl@date{2020/06/10} \def\adddialect#1#2{% \global\chardef#1#2\relax \bbl@usehooks{adddialect}{{#1}{#2}}% @@ -734,7 +722,7 @@ \expandafter\noexpand\csname foreignlanguage \endcsname} \expandafter\def\csname foreignlanguage \endcsname{% \@ifstar\bbl@foreign@s\bbl@foreign@x} -\newcommand\bbl@foreign@x[3][]{% +\providecommand\bbl@foreign@x[3][]{% \begingroup \def\bbl@select@opts{#1}% \let\BabelText\@firstofone @@ -1265,6 +1253,9 @@ \AtBeginDocument{% \@nameuse{bbl@beforestart}% \if@filesw + \providecommand\babel@aux[2]{}% + \immediate\write\@mainaux{% + \string\providecommand\string\babel@aux[2]{}}% \immediate\write\@mainaux{\string\@nameuse{bbl@beforestart}}% \fi \expandafter\selectlanguage\expandafter{\bbl@main@language}% @@ -2550,6 +2541,7 @@ \bbl@exp{% \def\<\languagename digits>####1{% ie, \langdigits \<bbl@digits@\languagename>####1\\\@nil}% + \let\<bbl@cntr@digits@\languagename>\<\languagename digits>% \def\<\languagename counter>####1{% ie, \langcounter \\\expandafter\<bbl@counter@\languagename>% \\\csname c@####1\endcsname}% @@ -2760,7 +2752,28 @@ \global\bbl@csarg\let{renew@\bbl@section}\relax \bbl@cs{secpost@\bbl@section}% % The previous code belongs to the previous section. + % -------------------------- % Now start the current one. + \in@{=date.}{=#1}% + \ifin@ + \lowercase{\def\bbl@tempa{=#1=}}% + \bbl@replace\bbl@tempa{=date.gregorian}{}% + \bbl@replace\bbl@tempa{=date.}{}% + \in@{.licr=}{#1=}% + \ifin@ + \ifcase\bbl@engine + \bbl@replace\bbl@tempa{.licr=}{}% + \else + \let\bbl@tempa\relax + \fi + \fi + \ifx\bbl@tempa\relax\else + \bbl@replace\bbl@tempa{=}{}% + \bbl@exp{% + \def\<bbl@inikv@#1>####1=####2\\\@@{% + \\\bbl@inidate####1...\relax{####2}{\bbl@tempa}}}% + \fi + \fi \def\bbl@section{#1}% \def\bbl@elt##1##2{% \@namedef{bbl@KVP@#1/##1}{}}% @@ -2870,45 +2883,70 @@ \bbl@exp{% \\\bbl@add\\\bbl@savestrings{% \\\SetString\<\bbl@tempa name>{\the\toks@}}}} -\bbl@csarg\def{inikv@date.gregorian}#1=#2\@@{% for defaults - \bbl@inidate#1...\relax{#2}{}} -\bbl@csarg\def{inikv@date.islamic}#1=#2\@@{% - \bbl@inidate#1...\relax{#2}{islamic}} -\bbl@csarg\def{inikv@date.hebrew}#1=#2\@@{% - \bbl@inidate#1...\relax{#2}{hebrew}} -\bbl@csarg\def{inikv@date.persian}#1=#2\@@{% - \bbl@inidate#1...\relax{#2}{persian}} -\bbl@csarg\def{inikv@date.indian}#1=#2\@@{% - \bbl@inidate#1...\relax{#2}{indian}} -\ifcase\bbl@engine - \bbl@csarg\def{inikv@date.gregorian.licr}#1=#2\@@{% override - \bbl@inidate#1...\relax{#2}{}} - \bbl@csarg\def{secpre@date.gregorian.licr}{% discard uni - \ifcase\bbl@engine\let\bbl@savedate\@empty\fi} -\fi -\newcommand\localedate{\@nameuse{bbl@date@\languagename}} +\let\bbl@calendar\@empty +\DeclareRobustCommand\localedate[1][]{\bbl@localedate{#1}} +\def\bbl@cased{% TODO. Move + \ifx\oe\OE + \expandafter\in@\expandafter + {\expandafter\OE\expandafter}\expandafter{\oe}% + \ifin@ + \bbl@afterelse\expandafter\MakeUppercase + \else + \bbl@afterfi\expandafter\MakeLowercase + \fi + \else + \expandafter\@firstofone + \fi} +\def\bbl@localedate#1#2#3#4{% + \begingroup + \ifx\@empty#1\@empty\else + \let\bbl@ld@calendar\@empty + \let\bbl@ld@variant\@empty + \edef\bbl@tempa{\zap@space#1 \@empty}% + \def\bbl@tempb##1=##2\@@{\@namedef{bbl@ld@##1}{##2}}% + \bbl@foreach\bbl@tempa{\bbl@tempb##1\@@}% + \edef\bbl@calendar{% + \bbl@ld@calendar + \ifx\bbl@ld@variant\@empty\else + .\bbl@ld@variant + \fi}% + \bbl@replace\bbl@calendar{gregorian}{}% + \fi + \bbl@cased + {\@nameuse{bbl@date@\languagename @\bbl@calendar}{#2}{#3}{#4}}% + \endgroup} \def\bbl@inidate#1.#2.#3.#4\relax#5#6{% TODO - ignore with 'captions' \bbl@trim@def\bbl@tempa{#1.#2}% \bbl@ifsamestring{\bbl@tempa}{months.wide}% to savedate {\bbl@trim@def\bbl@tempa{#3}% \bbl@trim\toks@{#5}% - \bbl@exp{% - \\\bbl@add\\\bbl@savedate{% - \\\SetString\<month\romannumeral\bbl@tempa#6name>{\the\toks@}}}}% + \@temptokena\expandafter{\bbl@savedate}% + \bbl@exp{% Reverse order - in ini last wins + \def\\\bbl@savedate{% + \\\SetString\<month\romannumeral\bbl@tempa#6name>{\the\toks@}% + \the\@temptokena}}}% {\bbl@ifsamestring{\bbl@tempa}{date.long}% defined now - {\bbl@trim@def\bbl@toreplace{#5}% + {\lowercase{\def\bbl@tempb{#6}}% + \bbl@trim@def\bbl@toreplace{#5}% \bbl@TG@@date - \global\bbl@csarg\let{date@\languagename}\bbl@toreplace - \bbl@exp{% - \gdef\<\languagename date>{\\\protect\<\languagename date >}% - \gdef\<\languagename date >####1####2####3{% - \\\bbl@usedategrouptrue - \<bbl@ensure@\languagename>{% - \<bbl@date@\languagename>{####1}{####2}{####3}}}% - \\\bbl@add\\\bbl@savetoday{% - \\\SetString\\\today{% - \<\languagename date>{\\\the\year}{\\\the\month}{\\\the\day}}}}}}% - {}} + \bbl@ifunset{bbl@date@\languagename @}% + {\global\bbl@csarg\let{date@\languagename @}\bbl@toreplace + % TODO. Move to a better place. + \bbl@exp{% + \gdef\<\languagename date>{\\\protect\<\languagename date >}% + \gdef\<\languagename date >####1####2####3{% + \\\bbl@usedategrouptrue + \<bbl@ensure@\languagename>{% + \\\localedate{####1}{####2}{####3}}}% + \\\bbl@add\\\bbl@savetoday{% + \\\SetString\\\today{% + \<\languagename date>% + {\\\the\year}{\\\the\month}{\\\the\day}}}}}% + {}% + \ifx\bbl@tempb\@empty\else + \global\bbl@csarg\let{date@\languagename @\bbl@tempb}\bbl@toreplace + \fi}% + {}}} \let\bbl@calendar\@empty \newcommand\BabelDateSpace{\nobreakspace} \newcommand\BabelDateDot{.\@} @@ -2988,7 +3026,8 @@ \newcommand\localenumeral[2]{\bbl@cs{cntr@#1@\languagename}{#2}} \def\bbl@localecntr#1#2{\localenumeral{#2}{#1}} \newcommand\localecounter[2]{% - \expandafter\bbl@localecntr\csname c@#2\endcsname{#1}} + \expandafter\bbl@localecntr + \expandafter{\number\csname c@#2\endcsname}{#1}} \def\bbl@alphnumeral#1#2{% \expandafter\bbl@alphnumeral@i\number#2 76543210\@@{#1}} \def\bbl@alphnumeral@i#1#2#3#4#5#6#7#8\@@#9{% |