diff options
author | Karl Berry <karl@freefriends.org> | 2023-05-11 20:11:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-05-11 20:11:39 +0000 |
commit | 2fe9170cef7c130ec1dd170cdec3605ce3541c4d (patch) | |
tree | 0976b2b13c456009c0e98b07ea61cd283e5cb2e6 /Master/texmf-dist/tex/generic | |
parent | cb4b9d4e10f52f852461e569e09e8b5cfb9fc65d (diff) |
babel (11may23)
git-svn-id: svn://tug.org/texlive/trunk@67073 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
21 files changed, 1259 insertions, 2167 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def index 0d78a286538..a53d418a451 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.def +++ b/Master/texmf-dist/tex/generic/babel/babel.def @@ -40,7 +40,7 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{babel.def}[2023/04/18 3.88 Babel common definitions] +\ProvidesFile{babel.def}[2023/05/11 v3.89 Babel common definitions] \ifx\AtBeginDocument\@undefined % TODO. change test. \def\@empty{} \def\loadlocalcfg#1{% @@ -387,6 +387,8 @@ \let\bbl@opt@shorthands\@nnil \def\bbl@ifshorthand#1#2#3{#2}% \let\bbl@language@opts\@empty +\let\bbl@ensureinfo\@gobble +\let\bbl@provide@locale\relax \ifx\babeloptionstrings\@undefined \let\bbl@opt@strings\@nnil \else @@ -406,8 +408,195 @@ \expandafter\newif\csname ifbbl@single\endcsname \chardef\bbl@bidimode\z@ \fi -\def\bbl@version{3.88} -\def\bbl@date{2023/04/18} +\bbl@trace{Basic macros} +\def\bbl@stripslash{\expandafter\@gobble\string} +\def\bbl@add#1#2{% + \bbl@ifunset{\bbl@stripslash#1}% + {\def#1{#2}}% + {\expandafter\def\expandafter#1\expandafter{#1#2}}} +\def\bbl@xin@{\@expandtwoargs\in@} +\def\bbl@carg#1#2{\expandafter#1\csname#2\endcsname}% +\def\bbl@ncarg#1#2#3{\expandafter#1\expandafter#2\csname#3\endcsname}% +\def\bbl@ccarg#1#2#3{% + \expandafter#1\csname#2\expandafter\endcsname\csname#3\endcsname}% +\def\bbl@csarg#1#2{\expandafter#1\csname bbl@#2\endcsname}% +\def\bbl@cs#1{\csname bbl@#1\endcsname} +\def\bbl@cl#1{\csname bbl@#1@\languagename\endcsname} +\def\bbl@loop#1#2#3{\bbl@@loop#1{#3}#2,\@nnil,} +\def\bbl@loopx#1#2{\expandafter\bbl@loop\expandafter#1\expandafter{#2}} +\def\bbl@@loop#1#2#3,{% + \ifx\@nnil#3\relax\else + \def#1{#3}#2\bbl@afterfi\bbl@@loop#1{#2}% + \fi} +\def\bbl@for#1#2#3{\bbl@loopx#1{#2}{\ifx#1\@empty\else#3\fi}} +\def\bbl@add@list#1#2{% + \edef#1{% + \bbl@ifunset{\bbl@stripslash#1}% + {}% + {\ifx#1\@empty\else#1,\fi}% + #2}} +\long\def\bbl@afterelse#1\else#2\fi{\fi#1} +\long\def\bbl@afterfi#1\fi{\fi#1} +\def\bbl@exp#1{% + \begingroup + \let\\\noexpand + \let\<\bbl@exp@en + \let\[\bbl@exp@ue + \edef\bbl@exp@aux{\endgroup#1}% + \bbl@exp@aux} +\def\bbl@exp@en#1>{\expandafter\noexpand\csname#1\endcsname}% +\def\bbl@exp@ue#1]{% + \unexpanded\expandafter\expandafter\expandafter{\csname#1\endcsname}}% +\def\bbl@tempa#1{% + \long\def\bbl@trim##1##2{% + \futurelet\bbl@trim@a\bbl@trim@c##2\@nil\@nil#1\@nil\relax{##1}}% + \def\bbl@trim@c{% + \ifx\bbl@trim@a\@sptoken + \expandafter\bbl@trim@b + \else + \expandafter\bbl@trim@b\expandafter#1% + \fi}% + \long\def\bbl@trim@b#1##1 \@nil{\bbl@trim@i##1}} +\bbl@tempa{ } +\long\def\bbl@trim@i#1\@nil#2\relax#3{#3{#1}} +\long\def\bbl@trim@def#1{\bbl@trim{\def#1}} +\begingroup + \gdef\bbl@ifunset#1{% + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + \bbl@ifunset{ifcsname}% + {}% + {\gdef\bbl@ifunset#1{% + \ifcsname#1\endcsname + \expandafter\ifx\csname#1\endcsname\relax + \bbl@afterelse\expandafter\@firstoftwo + \else + \bbl@afterfi\expandafter\@secondoftwo + \fi + \else + \expandafter\@firstoftwo + \fi}} +\endgroup +\def\bbl@ifblank#1{% + \bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil} +\long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4} +\def\bbl@ifset#1#2#3{% + \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{\@nameuse{#1}}}{#3}{#2}}} +\def\bbl@forkv#1#2{% + \def\bbl@kvcmd##1##2##3{#2}% + \bbl@kvnext#1,\@nil,} +\def\bbl@kvnext#1,{% + \ifx\@nil#1\relax\else + \bbl@ifblank{#1}{}{\bbl@forkv@eq#1=\@empty=\@nil{#1}}% + \expandafter\bbl@kvnext + \fi} +\def\bbl@forkv@eq#1=#2=#3\@nil#4{% + \bbl@trim@def\bbl@forkv@a{#1}% + \bbl@trim{\expandafter\bbl@kvcmd\expandafter{\bbl@forkv@a}}{#2}{#4}} +\def\bbl@vforeach#1#2{% + \def\bbl@forcmd##1{#2}% + \bbl@fornext#1,\@nil,} +\def\bbl@fornext#1,{% + \ifx\@nil#1\relax\else + \bbl@ifblank{#1}{}{\bbl@trim\bbl@forcmd{#1}}% + \expandafter\bbl@fornext + \fi} +\def\bbl@foreach#1{\expandafter\bbl@vforeach\expandafter{#1}} +\def\bbl@replace#1#2#3{% in #1 -> repl #2 by #3 + \toks@{}% + \def\bbl@replace@aux##1#2##2#2{% + \ifx\bbl@nil##2% + \toks@\expandafter{\the\toks@##1}% + \else + \toks@\expandafter{\the\toks@##1#3}% + \bbl@afterfi + \bbl@replace@aux##2#2% + \fi}% + \expandafter\bbl@replace@aux#1#2\bbl@nil#2% + \edef#1{\the\toks@}} +\ifx\detokenize\@undefined\else % Unused macros if old Plain TeX + \bbl@exp{\def\\\bbl@parsedef##1\detokenize{macro:}}#2->#3\relax{% + \def\bbl@tempa{#1}% + \def\bbl@tempb{#2}% + \def\bbl@tempe{#3}} + \def\bbl@sreplace#1#2#3{% + \begingroup + \expandafter\bbl@parsedef\meaning#1\relax + \def\bbl@tempc{#2}% + \edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}% + \def\bbl@tempd{#3}% + \edef\bbl@tempd{\expandafter\strip@prefix\meaning\bbl@tempd}% + \bbl@xin@{\bbl@tempc}{\bbl@tempe}% If not in macro, do nothing + \ifin@ + \bbl@exp{\\\bbl@replace\\\bbl@tempe{\bbl@tempc}{\bbl@tempd}}% + \def\bbl@tempc{% Expanded an executed below as 'uplevel' + \\\makeatletter % "internal" macros with @ are assumed + \\\scantokens{% + \bbl@tempa\\\@namedef{\bbl@stripslash#1}\bbl@tempb{\bbl@tempe}}% + \catcode64=\the\catcode64\relax}% Restore @ + \else + \let\bbl@tempc\@empty % Not \relax + \fi + \bbl@exp{% For the 'uplevel' assignments + \endgroup + \bbl@tempc}} % empty or expand to set #1 with changes +\fi +\def\bbl@ifsamestring#1#2{% + \begingroup + \protected@edef\bbl@tempb{#1}% + \edef\bbl@tempb{\expandafter\strip@prefix\meaning\bbl@tempb}% + \protected@edef\bbl@tempc{#2}% + \edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}% + \ifx\bbl@tempb\bbl@tempc + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup} +\chardef\bbl@engine=% + \ifx\directlua\@undefined + \ifx\XeTeXinputencoding\@undefined + \z@ + \else + \tw@ + \fi + \else + \@ne + \fi +\def\bbl@bsphack{% + \ifhmode + \hskip\z@skip + \def\bbl@esphack{\loop\ifdim\lastskip>\z@\unskip\repeat\unskip}% + \else + \let\bbl@esphack\@empty + \fi} +\def\bbl@cased{% + \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@extras@wrap#1#2#3{% 1:in-test, 2:before, 3:after + \toks@\expandafter\expandafter\expandafter{% + \csname extras\languagename\endcsname}% + \bbl@exp{\\\in@{#1}{\the\toks@}}% + \ifin@\else + \@temptokena{#2}% + \edef\bbl@tempc{\the\@temptokena\the\toks@}% + \toks@\expandafter{\bbl@tempc#3}% + \expandafter\edef\csname extras\languagename\endcsname{\the\toks@}% + \fi} +\def\bbl@version{3.89} +\def\bbl@date{2023/05/11} \ifx\language\@undefined \csname newcount\endcsname\language \fi @@ -487,38 +676,6 @@ \fi \fi\fi} \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 - \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 @@ -655,8 +812,6 @@ % set the locale id \bbl@id@assign % switch captions, date - % No text is supposed to be added here, so we remove any - % spurious spaces. \bbl@bsphack \ifcase\bbl@select@type \csname captions#1\endcsname\relax @@ -727,6 +882,7 @@ \expandafter\expandafter\expandafter\set@hyphenmins \csname #1hyphenmins\endcsname\relax \fi + % reset selector name \let\bbl@selectorname\@empty} \long\def\otherlanguage#1{% \def\bbl@selectorname{other}% @@ -911,193 +1067,6 @@ \input luababel.def \fi \fi -\bbl@trace{Basic macros} -\def\bbl@stripslash{\expandafter\@gobble\string} -\def\bbl@add#1#2{% - \bbl@ifunset{\bbl@stripslash#1}% - {\def#1{#2}}% - {\expandafter\def\expandafter#1\expandafter{#1#2}}} -\def\bbl@xin@{\@expandtwoargs\in@} -\def\bbl@carg#1#2{\expandafter#1\csname#2\endcsname}% -\def\bbl@ncarg#1#2#3{\expandafter#1\expandafter#2\csname#3\endcsname}% -\def\bbl@ccarg#1#2#3{% - \expandafter#1\csname#2\expandafter\endcsname\csname#3\endcsname}% -\def\bbl@csarg#1#2{\expandafter#1\csname bbl@#2\endcsname}% -\def\bbl@cs#1{\csname bbl@#1\endcsname} -\def\bbl@cl#1{\csname bbl@#1@\languagename\endcsname} -\def\bbl@loop#1#2#3{\bbl@@loop#1{#3}#2,\@nnil,} -\def\bbl@loopx#1#2{\expandafter\bbl@loop\expandafter#1\expandafter{#2}} -\def\bbl@@loop#1#2#3,{% - \ifx\@nnil#3\relax\else - \def#1{#3}#2\bbl@afterfi\bbl@@loop#1{#2}% - \fi} -\def\bbl@for#1#2#3{\bbl@loopx#1{#2}{\ifx#1\@empty\else#3\fi}} -\def\bbl@add@list#1#2{% - \edef#1{% - \bbl@ifunset{\bbl@stripslash#1}% - {}% - {\ifx#1\@empty\else#1,\fi}% - #2}} -\long\def\bbl@afterelse#1\else#2\fi{\fi#1} -\long\def\bbl@afterfi#1\fi{\fi#1} -\def\bbl@exp#1{% - \begingroup - \let\\\noexpand - \let\<\bbl@exp@en - \let\[\bbl@exp@ue - \edef\bbl@exp@aux{\endgroup#1}% - \bbl@exp@aux} -\def\bbl@exp@en#1>{\expandafter\noexpand\csname#1\endcsname}% -\def\bbl@exp@ue#1]{% - \unexpanded\expandafter\expandafter\expandafter{\csname#1\endcsname}}% -\def\bbl@tempa#1{% - \long\def\bbl@trim##1##2{% - \futurelet\bbl@trim@a\bbl@trim@c##2\@nil\@nil#1\@nil\relax{##1}}% - \def\bbl@trim@c{% - \ifx\bbl@trim@a\@sptoken - \expandafter\bbl@trim@b - \else - \expandafter\bbl@trim@b\expandafter#1% - \fi}% - \long\def\bbl@trim@b#1##1 \@nil{\bbl@trim@i##1}} -\bbl@tempa{ } -\long\def\bbl@trim@i#1\@nil#2\relax#3{#3{#1}} -\long\def\bbl@trim@def#1{\bbl@trim{\def#1}} -\begingroup - \gdef\bbl@ifunset#1{% - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} - \bbl@ifunset{ifcsname}% - {}% - {\gdef\bbl@ifunset#1{% - \ifcsname#1\endcsname - \expandafter\ifx\csname#1\endcsname\relax - \bbl@afterelse\expandafter\@firstoftwo - \else - \bbl@afterfi\expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi}} -\endgroup -\def\bbl@ifblank#1{% - \bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil} -\long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4} -\def\bbl@ifset#1#2#3{% - \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{\@nameuse{#1}}}{#3}{#2}}} -\def\bbl@forkv#1#2{% - \def\bbl@kvcmd##1##2##3{#2}% - \bbl@kvnext#1,\@nil,} -\def\bbl@kvnext#1,{% - \ifx\@nil#1\relax\else - \bbl@ifblank{#1}{}{\bbl@forkv@eq#1=\@empty=\@nil{#1}}% - \expandafter\bbl@kvnext - \fi} -\def\bbl@forkv@eq#1=#2=#3\@nil#4{% - \bbl@trim@def\bbl@forkv@a{#1}% - \bbl@trim{\expandafter\bbl@kvcmd\expandafter{\bbl@forkv@a}}{#2}{#4}} -\def\bbl@vforeach#1#2{% - \def\bbl@forcmd##1{#2}% - \bbl@fornext#1,\@nil,} -\def\bbl@fornext#1,{% - \ifx\@nil#1\relax\else - \bbl@ifblank{#1}{}{\bbl@trim\bbl@forcmd{#1}}% - \expandafter\bbl@fornext - \fi} -\def\bbl@foreach#1{\expandafter\bbl@vforeach\expandafter{#1}} -\def\bbl@replace#1#2#3{% in #1 -> repl #2 by #3 - \toks@{}% - \def\bbl@replace@aux##1#2##2#2{% - \ifx\bbl@nil##2% - \toks@\expandafter{\the\toks@##1}% - \else - \toks@\expandafter{\the\toks@##1#3}% - \bbl@afterfi - \bbl@replace@aux##2#2% - \fi}% - \expandafter\bbl@replace@aux#1#2\bbl@nil#2% - \edef#1{\the\toks@}} -\ifx\detokenize\@undefined\else % Unused macros if old Plain TeX - \bbl@exp{\def\\\bbl@parsedef##1\detokenize{macro:}}#2->#3\relax{% - \def\bbl@tempa{#1}% - \def\bbl@tempb{#2}% - \def\bbl@tempe{#3}} - \def\bbl@sreplace#1#2#3{% - \begingroup - \expandafter\bbl@parsedef\meaning#1\relax - \def\bbl@tempc{#2}% - \edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}% - \def\bbl@tempd{#3}% - \edef\bbl@tempd{\expandafter\strip@prefix\meaning\bbl@tempd}% - \bbl@xin@{\bbl@tempc}{\bbl@tempe}% If not in macro, do nothing - \ifin@ - \bbl@exp{\\\bbl@replace\\\bbl@tempe{\bbl@tempc}{\bbl@tempd}}% - \def\bbl@tempc{% Expanded an executed below as 'uplevel' - \\\makeatletter % "internal" macros with @ are assumed - \\\scantokens{% - \bbl@tempa\\\@namedef{\bbl@stripslash#1}\bbl@tempb{\bbl@tempe}}% - \catcode64=\the\catcode64\relax}% Restore @ - \else - \let\bbl@tempc\@empty % Not \relax - \fi - \bbl@exp{% For the 'uplevel' assignments - \endgroup - \bbl@tempc}} % empty or expand to set #1 with changes -\fi -\def\bbl@ifsamestring#1#2{% - \begingroup - \protected@edef\bbl@tempb{#1}% - \edef\bbl@tempb{\expandafter\strip@prefix\meaning\bbl@tempb}% - \protected@edef\bbl@tempc{#2}% - \edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}% - \ifx\bbl@tempb\bbl@tempc - \aftergroup\@firstoftwo - \else - \aftergroup\@secondoftwo - \fi - \endgroup} -\chardef\bbl@engine=% - \ifx\directlua\@undefined - \ifx\XeTeXinputencoding\@undefined - \z@ - \else - \tw@ - \fi - \else - \@ne - \fi -\def\bbl@bsphack{% - \ifhmode - \hskip\z@skip - \def\bbl@esphack{\loop\ifdim\lastskip>\z@\unskip\repeat\unskip}% - \else - \let\bbl@esphack\@empty - \fi} -\def\bbl@cased{% - \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@extras@wrap#1#2#3{% 1:in-test, 2:before, 3:after - \toks@\expandafter\expandafter\expandafter{% - \csname extras\languagename\endcsname}% - \bbl@exp{\\\in@{#1}{\the\toks@}}% - \ifin@\else - \@temptokena{#2}% - \edef\bbl@tempc{\the\@temptokena\the\toks@}% - \toks@\expandafter{\bbl@tempc#3}% - \expandafter\edef\csname extras\languagename\endcsname{\the\toks@}% - \fi} \bbl@trace{Compatibility with language.def} \ifx\bbl@languages\@undefined \ifx\directlua\@undefined @@ -1165,7 +1134,7 @@ \newcommand\EnableBabelHook[1]{\bbl@csarg\let{hk@#1}\@firstofone} \newcommand\DisableBabelHook[1]{\bbl@csarg\let{hk@#1}\@gobble} \def\bbl@usehooks{\bbl@usehooks@lang\languagename} -\def\bbl@usehooks@lang#1#2#3{% +\def\bbl@usehooks@lang#1#2#3{% Test for Plain \ifx\UseHook\@undefined\else\UseHook{babel/*/#2}\fi \def\bbl@elth##1{% \bbl@cs{hk@##1}{\bbl@cs{ev@##1@#2@}#3}}% @@ -1182,7 +1151,7 @@ beforeextras=0,afterextras=0,stopcommands=0,stringprocess=0,% hyphenation=2,initiateactive=3,afterreset=0,foreign=0,foreign*=0,% beforestart=0,languagename=2,begindocument=1} -\ifx\NewHook\@undefined\else +\ifx\NewHook\@undefined\else % Test for Plain (?) \def\bbl@tempa#1=#2\@@{\NewHook{babel/#1}} \bbl@foreach\bbl@evargs{\bbl@tempa#1\@@} \fi @@ -1891,7 +1860,7 @@ \def\bbl@toglobal#1{\global\let#1#1} \@ifpackagewith{babel}{nocase}% {\let\bbl@patchuclc\relax}% - {\def\bbl@patchuclc{% + {\def\bbl@patchuclc{% TODO. Delete. Doesn’t work any more. \global\let\bbl@patchuclc\relax \g@addto@macro\@uclclist{\reserved@b{\reserved@b\bbl@uclc}}% \gdef\bbl@uclc##1{% @@ -2341,39 +2310,6 @@ \fi \bbl@trace{Bidi layout} \providecommand\IfBabelLayout[3]{#3}% -\newcommand\BabelPatchSection[1]{% - \@ifundefined{#1}{}{% - \bbl@exp{\let\<bbl@ss@#1>\<#1>}% - \@namedef{#1}{% - \@ifstar{\bbl@presec@s{#1}}% - {\@dblarg{\bbl@presec@x{#1}}}}}} -\def\bbl@presec@x#1[#2]#3{% - \bbl@exp{% - \\\select@language@x{\bbl@main@language}% - \\\bbl@cs{sspre@#1}% - \\\bbl@cs{ss@#1}% - [\\\foreignlanguage{\languagename}{\unexpanded{#2}}]% - {\\\foreignlanguage{\languagename}{\unexpanded{#3}}}% - \\\select@language@x{\languagename}}} -\def\bbl@presec@s#1#2{% - \bbl@exp{% - \\\select@language@x{\bbl@main@language}% - \\\bbl@cs{sspre@#1}% - \\\bbl@cs{ss@#1}*% - {\\\foreignlanguage{\languagename}{\unexpanded{#2}}}% - \\\select@language@x{\languagename}}} -\IfBabelLayout{sectioning}% - {\BabelPatchSection{part}% - \BabelPatchSection{chapter}% - \BabelPatchSection{section}% - \BabelPatchSection{subsection}% - \BabelPatchSection{subsubsection}% - \BabelPatchSection{paragraph}% - \BabelPatchSection{subparagraph}% - \def\babel@toc#1{% - \select@language@x{\bbl@main@language}}}{} -\IfBabelLayout{captions}% - {\BabelPatchSection{caption}}{} \bbl@trace{Input engine specific macros} \ifcase\bbl@engine \input txtbabel.def @@ -2395,1396 +2331,6 @@ \let\babelpatterns\babelprehyphenation \let\babelcharproperty\babelprehyphenation \fi -\bbl@trace{Creating languages and reading ini files} -\let\bbl@extend@ini\@gobble -\newcommand\babelprovide[2][]{% - \let\bbl@savelangname\languagename - \edef\bbl@savelocaleid{\the\localeid}% - % Set name and locale id - \edef\languagename{#2}% - \bbl@id@assign - % Initialize keys - \bbl@vforeach{captions,date,import,main,script,language,% - hyphenrules,linebreaking,justification,mapfont,maparabic,% - mapdigits,intraspace,intrapenalty,onchar,transforms,alph,% - Alph,labels,labels*,calendar,date,casing}% - {\bbl@csarg\let{KVP@##1}\@nnil}% - \global\let\bbl@release@transforms\@empty - \let\bbl@calendars\@empty - \global\let\bbl@inidata\@empty - \global\let\bbl@extend@ini\@gobble - \gdef\bbl@key@list{;}% - \bbl@forkv{#1}{% - \in@{/}{##1}% With /, (re)sets a value in the ini - \ifin@ - \global\let\bbl@extend@ini\bbl@extend@ini@aux - \bbl@renewinikey##1\@@{##2}% - \else - \bbl@csarg\ifx{KVP@##1}\@nnil\else - \bbl@error - {Unknown key '##1' in \string\babelprovide}% - {See the manual for valid keys}% - \fi - \bbl@csarg\def{KVP@##1}{##2}% - \fi}% - \chardef\bbl@howloaded=% 0:none; 1:ldf without ini; 2:ini - \bbl@ifunset{date#2}\z@{\bbl@ifunset{bbl@llevel@#2}\@ne\tw@}% - % == init == - \ifx\bbl@screset\@undefined - \bbl@ldfinit - \fi - % == date (as option) == - % \ifx\bbl@KVP@date\@nnil\else - % \fi - % == - \let\bbl@lbkflag\relax % \@empty = do setup linebreak, only in 3 cases: - \ifcase\bbl@howloaded - \let\bbl@lbkflag\@empty % new - \else - \ifx\bbl@KVP@hyphenrules\@nnil\else - \let\bbl@lbkflag\@empty - \fi - \ifx\bbl@KVP@import\@nnil\else - \let\bbl@lbkflag\@empty - \fi - \fi - % == import, captions == - \ifx\bbl@KVP@import\@nnil\else - \bbl@exp{\\\bbl@ifblank{\bbl@KVP@import}}% - {\ifx\bbl@initoload\relax - \begingroup - \def\BabelBeforeIni##1##2{\gdef\bbl@KVP@import{##1}\endinput}% - \bbl@input@texini{#2}% - \endgroup - \else - \xdef\bbl@KVP@import{\bbl@initoload}% - \fi}% - {}% - \let\bbl@KVP@date\@empty - \fi - \let\bbl@KVP@captions@@\bbl@KVP@captions % TODO. A dirty hack - \ifx\bbl@KVP@captions\@nnil - \let\bbl@KVP@captions\bbl@KVP@import - \fi - % == - \ifx\bbl@KVP@transforms\@nnil\else - \bbl@replace\bbl@KVP@transforms{ }{,}% - \fi - % == Load ini == - \ifcase\bbl@howloaded - \bbl@provide@new{#2}% - \else - \bbl@ifblank{#1}% - {}% With \bbl@load@basic below - {\bbl@provide@renew{#2}}% - \fi - % Post tasks - % ---------- - % == subsequent calls after the first provide for a locale == - \ifx\bbl@inidata\@empty\else - \bbl@extend@ini{#2}% - \fi - % == ensure captions == - \ifx\bbl@KVP@captions\@nnil\else - \bbl@ifunset{bbl@extracaps@#2}% - {\bbl@exp{\\\babelensure[exclude=\\\today]{#2}}}% - {\bbl@exp{\\\babelensure[exclude=\\\today, - include=\[bbl@extracaps@#2]}]{#2}}% - \bbl@ifunset{bbl@ensure@\languagename}% - {\bbl@exp{% - \\\DeclareRobustCommand\<bbl@ensure@\languagename>[1]{% - \\\foreignlanguage{\languagename}% - {####1}}}}% - {}% - \bbl@exp{% - \\\bbl@toglobal\<bbl@ensure@\languagename>% - \\\bbl@toglobal\<bbl@ensure@\languagename\space>}% - \fi - % == - % 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 set the basic parameters, but still loading the - % whole ini file. - \bbl@load@basic{#2}% - % == script, language == - % Override the values from ini or defines them - \ifx\bbl@KVP@script\@nnil\else - \bbl@csarg\edef{sname@#2}{\bbl@KVP@script}% - \fi - \ifx\bbl@KVP@language\@nnil\else - \bbl@csarg\edef{lname@#2}{\bbl@KVP@language}% - \fi - \ifcase\bbl@engine\or - \bbl@ifunset{bbl@chrng@\languagename}{}% - {\directlua{ - Babel.set_chranges_b('\bbl@cl{sbcp}', '\bbl@cl{chrng}') }}% - \fi - % == onchar == - \ifx\bbl@KVP@onchar\@nnil\else - \bbl@luahyphenate - \bbl@exp{% - \\\AddToHook{env/document/before}{{\\\select@language{#2}{}}}}% - \directlua{ - if Babel.locale_mapped == nil then - Babel.locale_mapped = true - Babel.linebreaking.add_before(Babel.locale_map, 1) - Babel.loc_to_scr = {} - Babel.chr_to_loc = Babel.chr_to_loc or {} - end - Babel.locale_props[\the\localeid].letters = false - }% - \bbl@xin@{ letters }{ \bbl@KVP@onchar\space}% - \ifin@ - \directlua{ - Babel.locale_props[\the\localeid].letters = true - }% - \fi - \bbl@xin@{ ids }{ \bbl@KVP@onchar\space}% - \ifin@ - \ifx\bbl@starthyphens\@undefined % Needed if no explicit selection - \AddBabelHook{babel-onchar}{beforestart}{{\bbl@starthyphens}}% - \fi - \bbl@exp{\\\bbl@add\\\bbl@starthyphens - {\\\bbl@patterns@lua{\languagename}}}% - % TODO - error/warning if no script - \directlua{ - if Babel.script_blocks['\bbl@cl{sbcp}'] then - Babel.loc_to_scr[\the\localeid] = - Babel.script_blocks['\bbl@cl{sbcp}'] - Babel.locale_props[\the\localeid].lc = \the\localeid\space - Babel.locale_props[\the\localeid].lg = \the\@nameuse{l@\languagename}\space - end - }% - \fi - \bbl@xin@{ fonts }{ \bbl@KVP@onchar\space}% - \ifin@ - \bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}% - \bbl@ifunset{bbl@wdir@\languagename}{\bbl@provide@dirs{\languagename}}{}% - \directlua{ - if Babel.script_blocks['\bbl@cl{sbcp}'] then - Babel.loc_to_scr[\the\localeid] = - Babel.script_blocks['\bbl@cl{sbcp}'] - end}% - \ifx\bbl@mapselect\@undefined % TODO. almost the same as mapfont - \AtBeginDocument{% - \bbl@patchfont{{\bbl@mapselect}}% - {\selectfont}}% - \def\bbl@mapselect{% - \let\bbl@mapselect\relax - \edef\bbl@prefontid{\fontid\font}}% - \def\bbl@mapdir##1{% - {\def\languagename{##1}% - \let\bbl@ifrestoring\@firstoftwo % To avoid font warning - \bbl@switchfont - \ifnum\fontid\font>\z@ % A hack, for the pgf nullfont hack - \directlua{ - Babel.locale_props[\the\csname bbl@id@@##1\endcsname]% - ['/\bbl@prefontid'] = \fontid\font\space}% - \fi}}% - \fi - \bbl@exp{\\\bbl@add\\\bbl@mapselect{\\\bbl@mapdir{\languagename}}}% - \fi - % TODO - catch non-valid values - \fi - % == mapfont == - % For bidi texts, to switch the font based on direction - \ifx\bbl@KVP@mapfont\@nnil\else - \bbl@ifsamestring{\bbl@KVP@mapfont}{direction}{}% - {\bbl@error{Option '\bbl@KVP@mapfont' unknown for\\% - mapfont. Use 'direction'.% - {See the manual for details.}}}% - \bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}% - \bbl@ifunset{bbl@wdir@\languagename}{\bbl@provide@dirs{\languagename}}{}% - \ifx\bbl@mapselect\@undefined % TODO. See onchar. - \AtBeginDocument{% - \bbl@patchfont{{\bbl@mapselect}}% - {\selectfont}}% - \def\bbl@mapselect{% - \let\bbl@mapselect\relax - \edef\bbl@prefontid{\fontid\font}}% - \def\bbl@mapdir##1{% - {\def\languagename{##1}% - \let\bbl@ifrestoring\@firstoftwo % avoid font warning - \bbl@switchfont - \directlua{Babel.fontmap - [\the\csname bbl@wdir@##1\endcsname]% - [\bbl@prefontid]=\fontid\font}}}% - \fi - \bbl@exp{\\\bbl@add\\\bbl@mapselect{\\\bbl@mapdir{\languagename}}}% - \fi - % == Line breaking: intraspace, intrapenalty == - % For CJK, East Asian, Southeast Asian, if interspace in ini - \ifx\bbl@KVP@intraspace\@nnil\else % We can override the ini or set - \bbl@csarg\edef{intsp@#2}{\bbl@KVP@intraspace}% - \fi - \bbl@provide@intraspace - % == Line breaking: CJK quotes == TODO -> @extras - \ifcase\bbl@engine\or - \bbl@xin@{/c}{/\bbl@cl{lnbrk}}% - \ifin@ - \bbl@ifunset{bbl@quote@\languagename}{}% - {\directlua{ - Babel.locale_props[\the\localeid].cjk_quotes = {} - local cs = 'op' - for c in string.utfvalues(% - [[\csname bbl@quote@\languagename\endcsname]]) do - if Babel.cjk_characters[c].c == 'qu' then - Babel.locale_props[\the\localeid].cjk_quotes[c] = cs - end - cs = ( cs == 'op') and 'cl' or 'op' - end - }}% - \fi - \fi - % == Line breaking: justification == - \ifx\bbl@KVP@justification\@nnil\else - \let\bbl@KVP@linebreaking\bbl@KVP@justification - \fi - \ifx\bbl@KVP@linebreaking\@nnil\else - \bbl@xin@{,\bbl@KVP@linebreaking,}% - {,elongated,kashida,cjk,padding,unhyphenated,}% - \ifin@ - \bbl@csarg\xdef - {lnbrk@\languagename}{\expandafter\@car\bbl@KVP@linebreaking\@nil}% - \fi - \fi - \bbl@xin@{/e}{/\bbl@cl{lnbrk}}% - \ifin@\else\bbl@xin@{/k}{/\bbl@cl{lnbrk}}\fi - \ifin@\bbl@arabicjust\fi - \bbl@xin@{/p}{/\bbl@cl{lnbrk}}% - \ifin@\AtBeginDocument{\@nameuse{bbl@tibetanjust}}\fi - % == Line breaking: hyphenate.other.(locale|script) == - \ifx\bbl@lbkflag\@empty - \bbl@ifunset{bbl@hyotl@\languagename}{}% - {\bbl@csarg\bbl@replace{hyotl@\languagename}{ }{,}% - \bbl@startcommands*{\languagename}{}% - \bbl@csarg\bbl@foreach{hyotl@\languagename}{% - \ifcase\bbl@engine - \ifnum##1<257 - \SetHyphenMap{\BabelLower{##1}{##1}}% - \fi - \else - \SetHyphenMap{\BabelLower{##1}{##1}}% - \fi}% - \bbl@endcommands}% - \bbl@ifunset{bbl@hyots@\languagename}{}% - {\bbl@csarg\bbl@replace{hyots@\languagename}{ }{,}% - \bbl@csarg\bbl@foreach{hyots@\languagename}{% - \ifcase\bbl@engine - \ifnum##1<257 - \global\lccode##1=##1\relax - \fi - \else - \global\lccode##1=##1\relax - \fi}}% - \fi - % == Counters: maparabic == - % Native digits, if provided in ini (TeX level, xe and lua) - \ifcase\bbl@engine\else - \bbl@ifunset{bbl@dgnat@\languagename}{}% - {\expandafter\ifx\csname bbl@dgnat@\languagename\endcsname\@empty\else - \expandafter\expandafter\expandafter - \bbl@setdigits\csname bbl@dgnat@\languagename\endcsname - \ifx\bbl@KVP@maparabic\@nnil\else - \ifx\bbl@latinarabic\@undefined - \expandafter\let\expandafter\@arabic - \csname bbl@counter@\languagename\endcsname - \else % ie, if layout=counters, which redefines \@arabic - \expandafter\let\expandafter\bbl@latinarabic - \csname bbl@counter@\languagename\endcsname - \fi - \fi - \fi}% - \fi - % == Counters: mapdigits == - % > luababel.def - % == Counters: alph, Alph == - \ifx\bbl@KVP@alph\@nnil\else - \bbl@exp{% - \\\bbl@add\<bbl@preextras@\languagename>{% - \\\babel@save\\\@alph - \let\\\@alph\<bbl@cntr@\bbl@KVP@alph @\languagename>}}% - \fi - \ifx\bbl@KVP@Alph\@nnil\else - \bbl@exp{% - \\\bbl@add\<bbl@preextras@\languagename>{% - \\\babel@save\\\@Alph - \let\\\@Alph\<bbl@cntr@\bbl@KVP@Alph @\languagename>}}% - \fi - % == Casing == - \bbl@exp{\def\<bbl@casing@\languagename>% - {\<bbl@lbcp@\languagename>% - \ifx\bbl@KVP@casing\@nnil\else-x-\bbl@KVP@casing\fi}}% - % == Calendars == - \ifx\bbl@KVP@calendar\@nnil - \edef\bbl@KVP@calendar{\bbl@cl{calpr}}% - \fi - \def\bbl@tempe##1 ##2\@@{% Get first calendar - \def\bbl@tempa{##1}}% - \bbl@exp{\\\bbl@tempe\bbl@KVP@calendar\space\\\@@}% - \def\bbl@tempe##1.##2.##3\@@{% - \def\bbl@tempc{##1}% - \def\bbl@tempb{##2}}% - \expandafter\bbl@tempe\bbl@tempa..\@@ - \bbl@csarg\edef{calpr@\languagename}{% - \ifx\bbl@tempc\@empty\else - calendar=\bbl@tempc - \fi - \ifx\bbl@tempb\@empty\else - ,variant=\bbl@tempb - \fi}% - % == engine specific extensions == - % Defined in XXXbabel.def - \bbl@provide@extra{#2}% - % == require.babel in ini == - % To load or reaload the babel-*.tex, if require.babel in ini - \ifx\bbl@beforestart\relax\else % But not in doc aux or body - \bbl@ifunset{bbl@rqtex@\languagename}{}% - {\expandafter\ifx\csname bbl@rqtex@\languagename\endcsname\@empty\else - \let\BabelBeforeIni\@gobbletwo - \chardef\atcatcode=\catcode`\@ - \catcode`\@=11\relax - \bbl@input@texini{\bbl@cs{rqtex@\languagename}}% - \catcode`\@=\atcatcode - \let\atcatcode\relax - \global\bbl@csarg\let{rqtex@\languagename}\relax - \fi}% - \bbl@foreach\bbl@calendars{% - \bbl@ifunset{bbl@ca@##1}{% - \chardef\atcatcode=\catcode`\@ - \catcode`\@=11\relax - \InputIfFileExists{babel-ca-##1.tex}{}{}% - \catcode`\@=\atcatcode - \let\atcatcode\relax}% - {}}% - \fi - % == frenchspacing == - \ifcase\bbl@howloaded\in@true\else\in@false\fi - \ifin@\else\bbl@xin@{typography/frenchspacing}{\bbl@key@list}\fi - \ifin@ - \bbl@extras@wrap{\\\bbl@pre@fs}% - {\bbl@pre@fs}% - {\bbl@post@fs}% - \fi - % == transforms == - % > luababel.def - % == main == - \ifx\bbl@KVP@main\@nnil % Restore only if not 'main' - \let\languagename\bbl@savelangname - \chardef\localeid\bbl@savelocaleid\relax - \fi - % == hyphenrules (apply if current) == - \ifx\bbl@KVP@hyphenrules\@nnil\else - \ifnum\bbl@savelocaleid=\localeid - \language\@nameuse{l@\languagename}% - \fi - \fi} -\def\bbl@provide@new#1{% - \@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands - \@namedef{extras#1}{}% - \@namedef{noextras#1}{}% - \bbl@startcommands*{#1}{captions}% - \ifx\bbl@KVP@captions\@nnil % and also if import, implicit - \def\bbl@tempb##1{% elt for \bbl@captionslist - \ifx##1\@empty\else - \bbl@exp{% - \\\SetString\\##1{% - \\\bbl@nocaption{\bbl@stripslash##1}{#1\bbl@stripslash##1}}}% - \expandafter\bbl@tempb - \fi}% - \expandafter\bbl@tempb\bbl@captionslist\@empty - \else - \ifx\bbl@initoload\relax - \bbl@read@ini{\bbl@KVP@captions}2% % Here letters cat = 11 - \else - \bbl@read@ini{\bbl@initoload}2% % Same - \fi - \fi - \StartBabelCommands*{#1}{date}% - \ifx\bbl@KVP@date\@nnil - \bbl@exp{% - \\\SetString\\\today{\\\bbl@nocaption{today}{#1today}}}% - \else - \bbl@savetoday - \bbl@savedate - \fi - \bbl@endcommands - \bbl@load@basic{#1}% - % == hyphenmins == (only if new) - \bbl@exp{% - \gdef\<#1hyphenmins>{% - {\bbl@ifunset{bbl@lfthm@#1}{2}{\bbl@cs{lfthm@#1}}}% - {\bbl@ifunset{bbl@rgthm@#1}{3}{\bbl@cs{rgthm@#1}}}}}% - % == hyphenrules (also in renew) == - \bbl@provide@hyphens{#1}% - \ifx\bbl@KVP@main\@nnil\else - \expandafter\main@language\expandafter{#1}% - \fi} -\def\bbl@provide@renew#1{% - \ifx\bbl@KVP@captions\@nnil\else - \StartBabelCommands*{#1}{captions}% - \bbl@read@ini{\bbl@KVP@captions}2% % Here all letters cat = 11 - \EndBabelCommands - \fi - \ifx\bbl@KVP@date\@nnil\else - \StartBabelCommands*{#1}{date}% - \bbl@savetoday - \bbl@savedate - \EndBabelCommands - \fi - % == hyphenrules (also in new) == - \ifx\bbl@lbkflag\@empty - \bbl@provide@hyphens{#1}% - \fi} -\def\bbl@load@basic#1{% - \ifcase\bbl@howloaded\or\or - \ifcase\csname bbl@llevel@\languagename\endcsname - \bbl@csarg\let{lname@\languagename}\relax - \fi - \fi - \bbl@ifunset{bbl@lname@#1}% - {\def\BabelBeforeIni##1##2{% - \begingroup - \let\bbl@ini@captions@aux\@gobbletwo - \def\bbl@inidate ####1.####2.####3.####4\relax ####5####6{}% - \bbl@read@ini{##1}1% - \ifx\bbl@initoload\relax\endinput\fi - \endgroup}% - \begingroup % boxed, to avoid extra spaces: - \ifx\bbl@initoload\relax - \bbl@input@texini{#1}% - \else - \setbox\z@\hbox{\BabelBeforeIni{\bbl@initoload}{}}% - \fi - \endgroup}% - {}} -\def\bbl@provide@hyphens#1{% - \@tempcnta\m@ne % a flag - \ifx\bbl@KVP@hyphenrules\@nnil\else - \bbl@replace\bbl@KVP@hyphenrules{ }{,}% - \bbl@foreach\bbl@KVP@hyphenrules{% - \ifnum\@tempcnta=\m@ne % if not yet found - \bbl@ifsamestring{##1}{+}% - {\bbl@carg\addlanguage{l@##1}}% - {}% - \bbl@ifunset{l@##1}% After a possible + - {}% - {\@tempcnta\@nameuse{l@##1}}% - \fi}% - \ifnum\@tempcnta=\m@ne - \bbl@warning{% - Requested 'hyphenrules' for '\languagename' not found:\\% - \bbl@KVP@hyphenrules.\\% - Using the default value. Reported}% - \fi - \fi - \ifnum\@tempcnta=\m@ne % if no opt or no language in opt found - \ifx\bbl@KVP@captions@@\@nnil % TODO. Hackish. See above. - \bbl@ifunset{bbl@hyphr@#1}{}% use value in ini, if exists - {\bbl@exp{\\\bbl@ifblank{\bbl@cs{hyphr@#1}}}% - {}% - {\bbl@ifunset{l@\bbl@cl{hyphr}}% - {}% if hyphenrules found: - {\@tempcnta\@nameuse{l@\bbl@cl{hyphr}}}}}% - \fi - \fi - \bbl@ifunset{l@#1}% - {\ifnum\@tempcnta=\m@ne - \bbl@carg\adddialect{l@#1}\language - \else - \bbl@carg\adddialect{l@#1}\@tempcnta - \fi}% - {\ifnum\@tempcnta=\m@ne\else - \global\bbl@carg\chardef{l@#1}\@tempcnta - \fi}} -\def\bbl@input@texini#1{% - \bbl@bsphack - \bbl@exp{% - \catcode`\\\%=14 \catcode`\\\\=0 - \catcode`\\\{=1 \catcode`\\\}=2 - \lowercase{\\\InputIfFileExists{babel-#1.tex}{}{}}% - \catcode`\\\%=\the\catcode`\%\relax - \catcode`\\\\=\the\catcode`\\\relax - \catcode`\\\{=\the\catcode`\{\relax - \catcode`\\\}=\the\catcode`\}\relax}% - \bbl@esphack} -\def\bbl@iniline#1\bbl@iniline{% - \@ifnextchar[\bbl@inisect{\@ifnextchar;\bbl@iniskip\bbl@inistore}#1\@@}% ] -\def\bbl@inisect[#1]#2\@@{\def\bbl@section{#1}} -\def\bbl@iniskip#1\@@{}% if starts with ; -\def\bbl@inistore#1=#2\@@{% full (default) - \bbl@trim@def\bbl@tempa{#1}% - \bbl@trim\toks@{#2}% - \bbl@xin@{;\bbl@section/\bbl@tempa;}{\bbl@key@list}% - \ifin@\else - \bbl@xin@{,identification/include.}% - {,\bbl@section/\bbl@tempa}% - \ifin@\edef\bbl@required@inis{\the\toks@}\fi - \bbl@exp{% - \\\g@addto@macro\\\bbl@inidata{% - \\\bbl@elt{\bbl@section}{\bbl@tempa}{\the\toks@}}}% - \fi} -\def\bbl@inistore@min#1=#2\@@{% minimal (maybe set in \bbl@read@ini) - \bbl@trim@def\bbl@tempa{#1}% - \bbl@trim\toks@{#2}% - \bbl@xin@{.identification.}{.\bbl@section.}% - \ifin@ - \bbl@exp{\\\g@addto@macro\\\bbl@inidata{% - \\\bbl@elt{identification}{\bbl@tempa}{\the\toks@}}}% - \fi} -\def\bbl@loop@ini{% - \loop - \if T\ifeof\bbl@readstream F\fi T\relax % Trick, because inside \loop - \endlinechar\m@ne - \read\bbl@readstream to \bbl@line - \endlinechar`\^^M - \ifx\bbl@line\@empty\else - \expandafter\bbl@iniline\bbl@line\bbl@iniline - \fi - \repeat} -\ifx\bbl@readstream\@undefined - \csname newread\endcsname\bbl@readstream -\fi -\def\bbl@read@ini#1#2{% - \global\let\bbl@extend@ini\@gobble - \openin\bbl@readstream=babel-#1.ini - \ifeof\bbl@readstream - \bbl@error - {There is no ini file for the requested language\\% - (#1: \languagename). Perhaps you misspelled it or your\\% - installation is not complete.}% - {Fix the name or reinstall babel.}% - \else - % == Store ini data in \bbl@inidata == - \catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\&=12 - \catcode`\;=12 \catcode`\|=12 \catcode`\%=14 \catcode`\-=12 - \bbl@info{Importing - \ifcase#2font and identification \or basic \fi - data for \languagename\\% - from babel-#1.ini. Reported}% - \ifnum#2=\z@ - \global\let\bbl@inidata\@empty - \let\bbl@inistore\bbl@inistore@min % Remember it's local - \fi - \def\bbl@section{identification}% - \let\bbl@required@inis\@empty - \bbl@exp{\\\bbl@inistore tag.ini=#1\\\@@}% - \bbl@inistore load.level=#2\@@ - \bbl@loop@ini - \ifx\bbl@required@inis\@empty\else - \bbl@replace\bbl@required@inis{ }{,}% - \bbl@foreach\bbl@required@inis{% - \openin\bbl@readstream=babel-##1.ini - \bbl@loop@ini}% - \fi - % == Process stored data == - \bbl@csarg\xdef{lini@\languagename}{#1}% - \bbl@read@ini@aux - % == 'Export' data == - \bbl@ini@exports{#2}% - \global\bbl@csarg\let{inidata@\languagename}\bbl@inidata - \global\let\bbl@inidata\@empty - \bbl@exp{\\\bbl@add@list\\\bbl@ini@loaded{\languagename}}% - \bbl@toglobal\bbl@ini@loaded - \fi - \closein\bbl@readstream} -\def\bbl@read@ini@aux{% - \let\bbl@savestrings\@empty - \let\bbl@savetoday\@empty - \let\bbl@savedate\@empty - \def\bbl@elt##1##2##3{% - \def\bbl@section{##1}% - \in@{=date.}{=##1}% Find a better place - \ifin@ - \bbl@ifunset{bbl@inikv@##1}% - {\bbl@ini@calendar{##1}}% - {}% - \fi - \bbl@ifunset{bbl@inikv@##1}{}% - {\csname bbl@inikv@##1\endcsname{##2}{##3}}}% - \bbl@inidata} -\def\bbl@extend@ini@aux#1{% - \bbl@startcommands*{#1}{captions}% - % Activate captions/... and modify exports - \bbl@csarg\def{inikv@captions.licr}##1##2{% - \setlocalecaption{#1}{##1}{##2}}% - \def\bbl@inikv@captions##1##2{% - \bbl@ini@captions@aux{##1}{##2}}% - \def\bbl@stringdef##1##2{\gdef##1{##2}}% - \def\bbl@exportkey##1##2##3{% - \bbl@ifunset{bbl@@kv@##2}{}% - {\expandafter\ifx\csname bbl@@kv@##2\endcsname\@empty\else - \bbl@exp{\global\let\<bbl@##1@\languagename>\<bbl@@kv@##2>}% - \fi}}% - % As with \bbl@read@ini, but with some changes - \bbl@read@ini@aux - \bbl@ini@exports\tw@ - % Update inidata@lang by pretending the ini is read. - \def\bbl@elt##1##2##3{% - \def\bbl@section{##1}% - \bbl@iniline##2=##3\bbl@iniline}% - \csname bbl@inidata@#1\endcsname - \global\bbl@csarg\let{inidata@#1}\bbl@inidata - \StartBabelCommands*{#1}{date}% And from the import stuff - \def\bbl@stringdef##1##2{\gdef##1{##2}}% - \bbl@savetoday - \bbl@savedate - \bbl@endcommands} -\def\bbl@ini@calendar#1{% - \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{=}{}% - \ifx\bbl@tempa\@empty\else - \xdef\bbl@calendars{\bbl@calendars,\bbl@tempa}% - \fi - \bbl@exp{% - \def\<bbl@inikv@#1>####1####2{% - \\\bbl@inidate####1...\relax{####2}{\bbl@tempa}}}% - \fi} -\def\bbl@renewinikey#1/#2\@@#3{% - \edef\bbl@tempa{\zap@space #1 \@empty}% section - \edef\bbl@tempb{\zap@space #2 \@empty}% key - \bbl@trim\toks@{#3}% value - \bbl@exp{% - \edef\\\bbl@key@list{\bbl@key@list \bbl@tempa/\bbl@tempb;}% - \\\g@addto@macro\\\bbl@inidata{% - \\\bbl@elt{\bbl@tempa}{\bbl@tempb}{\the\toks@}}}}% -\def\bbl@exportkey#1#2#3{% - \bbl@ifunset{bbl@@kv@#2}% - {\bbl@csarg\gdef{#1@\languagename}{#3}}% - {\expandafter\ifx\csname bbl@@kv@#2\endcsname\@empty - \bbl@csarg\gdef{#1@\languagename}{#3}% - \else - \bbl@exp{\global\let\<bbl@#1@\languagename>\<bbl@@kv@#2>}% - \fi}} -\def\bbl@iniwarning#1{% - \bbl@ifunset{bbl@@kv@identification.warning#1}{}% - {\bbl@warning{% - From babel-\bbl@cs{lini@\languagename}.ini:\\% - \bbl@cs{@kv@identification.warning#1}\\% - Reported }}} -\let\bbl@release@transforms\@empty -\def\bbl@ini@exports#1{% - % Identification always exported - \bbl@iniwarning{}% - \ifcase\bbl@engine - \bbl@iniwarning{.pdflatex}% - \or - \bbl@iniwarning{.lualatex}% - \or - \bbl@iniwarning{.xelatex}% - \fi% - \bbl@exportkey{llevel}{identification.load.level}{}% - \bbl@exportkey{elname}{identification.name.english}{}% - \bbl@exp{\\\bbl@exportkey{lname}{identification.name.opentype}% - {\csname bbl@elname@\languagename\endcsname}}% - \bbl@exportkey{tbcp}{identification.tag.bcp47}{}% - \bbl@exportkey{lbcp}{identification.language.tag.bcp47}{}% - % Somewhat hackish. TODO - \bbl@exportkey{casing}{identification.language.tag.bcp47}{}% - \bbl@exportkey{lotf}{identification.tag.opentype}{dflt}% - \bbl@exportkey{esname}{identification.script.name}{}% - \bbl@exp{\\\bbl@exportkey{sname}{identification.script.name.opentype}% - {\csname bbl@esname@\languagename\endcsname}}% - \bbl@exportkey{sbcp}{identification.script.tag.bcp47}{}% - \bbl@exportkey{sotf}{identification.script.tag.opentype}{DFLT}% - \bbl@exportkey{rbcp}{identification.region.tag.bcp47}{}% - \bbl@exportkey{vbcp}{identification.variant.tag.bcp47}{}% - \bbl@exportkey{extt}{identification.extension.t.tag.bcp47}{}% - \bbl@exportkey{extu}{identification.extension.u.tag.bcp47}{}% - \bbl@exportkey{extx}{identification.extension.x.tag.bcp47}{}% - % Also maps bcp47 -> languagename - \ifbbl@bcptoname - \bbl@csarg\xdef{bcp@map@\bbl@cl{tbcp}}{\languagename}% - \fi - % Conditional - \ifnum#1>\z@ % 0 = only info, 1, 2 = basic, (re)new - \bbl@exportkey{calpr}{date.calendar.preferred}{}% - \bbl@exportkey{lnbrk}{typography.linebreaking}{h}% - \bbl@exportkey{hyphr}{typography.hyphenrules}{}% - \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}% - \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}% - \bbl@exportkey{prehc}{typography.prehyphenchar}{}% - \bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}% - \bbl@exportkey{hyots}{typography.hyphenate.other.script}{}% - \bbl@exportkey{intsp}{typography.intraspace}{}% - \bbl@exportkey{frspc}{typography.frenchspacing}{u}% - \bbl@exportkey{chrng}{characters.ranges}{}% - \bbl@exportkey{quote}{characters.delimiters.quotes}{}% - \bbl@exportkey{dgnat}{numbers.digits.native}{}% - \ifnum#1=\tw@ % only (re)new - \bbl@exportkey{rqtex}{identification.require.babel}{}% - \bbl@toglobal\bbl@savetoday - \bbl@toglobal\bbl@savedate - \bbl@savestrings - \fi - \fi} -\def\bbl@inikv#1#2{% key=value - \toks@{#2}% This hides #'s from ini values - \bbl@csarg\edef{@kv@\bbl@section.#1}{\the\toks@}} -\let\bbl@inikv@identification\bbl@inikv -\let\bbl@inikv@date\bbl@inikv -\let\bbl@inikv@typography\bbl@inikv -\let\bbl@inikv@characters\bbl@inikv -\let\bbl@inikv@numbers\bbl@inikv -\def\bbl@inikv@counters#1#2{% - \bbl@ifsamestring{#1}{digits}% - {\bbl@error{The counter name 'digits' is reserved for mapping\\% - decimal digits}% - {Use another name.}}% - {}% - \def\bbl@tempc{#1}% - \bbl@trim@def{\bbl@tempb*}{#2}% - \in@{.1$}{#1$}% - \ifin@ - \bbl@replace\bbl@tempc{.1}{}% - \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\protected@xdef{cntr@#1@\languagename}{\bbl@tempb*}% - \else - \toks@{}% Required by \bbl@buildifcase, which returns \bbl@tempa - \expandafter\bbl@buildifcase\bbl@tempb* \\ % Space after \\ - \bbl@csarg{\global\expandafter\let}{cntr@#1@\languagename}\bbl@tempa - \fi} -\ifcase\bbl@engine - \bbl@csarg\def{inikv@captions.licr}#1#2{% - \bbl@ini@captions@aux{#1}{#2}} -\else - \def\bbl@inikv@captions#1#2{% - \bbl@ini@captions@aux{#1}{#2}} -\fi -\def\bbl@ini@captions@template#1#2{% string language tempa=capt-name - \bbl@replace\bbl@tempa{.template}{}% - \def\bbl@toreplace{#1{}}% - \bbl@replace\bbl@toreplace{[ ]}{\nobreakspace{}}% - \bbl@replace\bbl@toreplace{[[}{\csname}% - \bbl@replace\bbl@toreplace{[}{\csname the}% - \bbl@replace\bbl@toreplace{]]}{name\endcsname{}}% - \bbl@replace\bbl@toreplace{]}{\endcsname{}}% - \bbl@xin@{,\bbl@tempa,}{,chapter,appendix,part,}% - \ifin@ - \@nameuse{bbl@patch\bbl@tempa}% - \global\bbl@csarg\let{\bbl@tempa fmt@#2}\bbl@toreplace - \fi - \bbl@xin@{,\bbl@tempa,}{,figure,table,}% - \ifin@ - \global\bbl@csarg\let{\bbl@tempa fmt@#2}\bbl@toreplace - \bbl@exp{\gdef\<fnum@\bbl@tempa>{% - \\\bbl@ifunset{bbl@\bbl@tempa fmt@\\\languagename}% - {\[fnum@\bbl@tempa]}% - {\\\@nameuse{bbl@\bbl@tempa fmt@\\\languagename}}}}% - \fi} -\def\bbl@ini@captions@aux#1#2{% - \bbl@trim@def\bbl@tempa{#1}% - \bbl@xin@{.template}{\bbl@tempa}% - \ifin@ - \bbl@ini@captions@template{#2}\languagename - \else - \bbl@ifblank{#2}% - {\bbl@exp{% - \toks@{\\\bbl@nocaption{\bbl@tempa}{\languagename\bbl@tempa name}}}}% - {\bbl@trim\toks@{#2}}% - \bbl@exp{% - \\\bbl@add\\\bbl@savestrings{% - \\\SetString\<\bbl@tempa name>{\the\toks@}}}% - \toks@\expandafter{\bbl@captionslist}% - \bbl@exp{\\\in@{\<\bbl@tempa name>}{\the\toks@}}% - \ifin@\else - \bbl@exp{% - \\\bbl@add\<bbl@extracaps@\languagename>{\<\bbl@tempa name>}% - \\\bbl@toglobal\<bbl@extracaps@\languagename>}% - \fi - \fi} -\def\bbl@list@the{% - part,chapter,section,subsection,subsubsection,paragraph,% - subparagraph,enumi,enumii,enumiii,enumiv,equation,figure,% - table,page,footnote,mpfootnote,mpfn} -\def\bbl@map@cnt#1{% #1:roman,etc, // #2:enumi,etc - \bbl@ifunset{bbl@map@#1@\languagename}% - {\@nameuse{#1}}% - {\@nameuse{bbl@map@#1@\languagename}}} -\def\bbl@inikv@labels#1#2{% - \in@{.map}{#1}% - \ifin@ - \ifx\bbl@KVP@labels\@nnil\else - \bbl@xin@{ map }{ \bbl@KVP@labels\space}% - \ifin@ - \def\bbl@tempc{#1}% - \bbl@replace\bbl@tempc{.map}{}% - \in@{,#2,}{,arabic,roman,Roman,alph,Alph,fnsymbol,}% - \bbl@exp{% - \gdef\<bbl@map@\bbl@tempc @\languagename>% - {\ifin@\<#2>\else\\\localecounter{#2}\fi}}% - \bbl@foreach\bbl@list@the{% - \bbl@ifunset{the##1}{}% - {\bbl@exp{\let\\\bbl@tempd\<the##1>}% - \bbl@exp{% - \\\bbl@sreplace\<the##1>% - {\<\bbl@tempc>{##1}}{\\\bbl@map@cnt{\bbl@tempc}{##1}}% - \\\bbl@sreplace\<the##1>% - {\<\@empty @\bbl@tempc>\<c@##1>}{\\\bbl@map@cnt{\bbl@tempc}{##1}}}% - \expandafter\ifx\csname the##1\endcsname\bbl@tempd\else - \toks@\expandafter\expandafter\expandafter{% - \csname the##1\endcsname}% - \expandafter\xdef\csname the##1\endcsname{{\the\toks@}}% - \fi}}% - \fi - \fi - % - \else - % - % The following code is still under study. You can test it and make - % suggestions. Eg, enumerate.2 = ([enumi]).([enumii]). It's - % language dependent. - \in@{enumerate.}{#1}% - \ifin@ - \def\bbl@tempa{#1}% - \bbl@replace\bbl@tempa{enumerate.}{}% - \def\bbl@toreplace{#2}% - \bbl@replace\bbl@toreplace{[ ]}{\nobreakspace{}}% - \bbl@replace\bbl@toreplace{[}{\csname the}% - \bbl@replace\bbl@toreplace{]}{\endcsname{}}% - \toks@\expandafter{\bbl@toreplace}% - % TODO. Execute only once: - \bbl@exp{% - \\\bbl@add\<extras\languagename>{% - \\\babel@save\<labelenum\romannumeral\bbl@tempa>% - \def\<labelenum\romannumeral\bbl@tempa>{\the\toks@}}% - \\\bbl@toglobal\<extras\languagename>}% - \fi - \fi} -\def\bbl@chaptype{chapter} -\ifx\@makechapterhead\@undefined - \let\bbl@patchchapter\relax -\else\ifx\thechapter\@undefined - \let\bbl@patchchapter\relax -\else\ifx\ps@headings\@undefined - \let\bbl@patchchapter\relax -\else - \def\bbl@patchchapter{% - \global\let\bbl@patchchapter\relax - \gdef\bbl@chfmt{% - \bbl@ifunset{bbl@\bbl@chaptype fmt@\languagename}% - {\@chapapp\space\thechapter} - {\@nameuse{bbl@\bbl@chaptype fmt@\languagename}}} - \bbl@add\appendix{\def\bbl@chaptype{appendix}}% Not harmful, I hope - \bbl@sreplace\ps@headings{\@chapapp\ \thechapter}{\bbl@chfmt}% - \bbl@sreplace\chaptermark{\@chapapp\ \thechapter}{\bbl@chfmt}% - \bbl@sreplace\@makechapterhead{\@chapapp\space\thechapter}{\bbl@chfmt}% - \bbl@toglobal\appendix - \bbl@toglobal\ps@headings - \bbl@toglobal\chaptermark - \bbl@toglobal\@makechapterhead} - \let\bbl@patchappendix\bbl@patchchapter -\fi\fi\fi -\ifx\@part\@undefined - \let\bbl@patchpart\relax -\else - \def\bbl@patchpart{% - \global\let\bbl@patchpart\relax - \gdef\bbl@partformat{% - \bbl@ifunset{bbl@partfmt@\languagename}% - {\partname\nobreakspace\thepart} - {\@nameuse{bbl@partfmt@\languagename}}} - \bbl@sreplace\@part{\partname\nobreakspace\thepart}{\bbl@partformat}% - \bbl@toglobal\@part} -\fi -\let\bbl@calendar\@empty -\DeclareRobustCommand\localedate[1][]{\bbl@localedate{#1}} -\def\bbl@localedate#1#2#3#4{% - \begingroup - \edef\bbl@they{#2}% - \edef\bbl@them{#3}% - \edef\bbl@thed{#4}% - \edef\bbl@tempe{% - \bbl@ifunset{bbl@calpr@\languagename}{}{\bbl@cl{calpr}},% - #1}% - \bbl@replace\bbl@tempe{ }{}% - \bbl@replace\bbl@tempe{CONVERT}{convert=}% Hackish - \bbl@replace\bbl@tempe{convert}{convert=}% - \let\bbl@ld@calendar\@empty - \let\bbl@ld@variant\@empty - \let\bbl@ld@convert\relax - \def\bbl@tempb##1=##2\@@{\@namedef{bbl@ld@##1}{##2}}% - \bbl@foreach\bbl@tempe{\bbl@tempb##1\@@}% - \bbl@replace\bbl@ld@calendar{gregorian}{}% - \ifx\bbl@ld@calendar\@empty\else - \ifx\bbl@ld@convert\relax\else - \babelcalendar[\bbl@they-\bbl@them-\bbl@thed]% - {\bbl@ld@calendar}\bbl@they\bbl@them\bbl@thed - \fi - \fi - \@nameuse{bbl@precalendar}% Remove, eg, +, -civil (-ca-islamic) - \edef\bbl@calendar{% Used in \month..., too - \bbl@ld@calendar - \ifx\bbl@ld@variant\@empty\else - .\bbl@ld@variant - \fi}% - \bbl@cased - {\@nameuse{bbl@date@\languagename @\bbl@calendar}% - \bbl@they\bbl@them\bbl@thed}% - \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}% - \@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 - {\lowercase{\def\bbl@tempb{#6}}% - \bbl@trim@def\bbl@toreplace{#5}% - \bbl@TG@@date - \global\bbl@csarg\let{date@\languagename @\bbl@tempb}\bbl@toreplace - \ifx\bbl@savetoday\@empty - \bbl@exp{% TODO. Move to a better place. - \\\AfterBabelCommands{% - \def\<\languagename date>{\\\protect\<\languagename date >}% - \\\newcommand\<\languagename date >[4][]{% - \\\bbl@usedategrouptrue - \<bbl@ensure@\languagename>{% - \\\localedate[####1]{####2}{####3}{####4}}}}% - \def\\\bbl@savetoday{% - \\\SetString\\\today{% - \<\languagename date>[convert]% - {\\\the\year}{\\\the\month}{\\\the\day}}}}% - \fi}% - {}}} -\let\bbl@calendar\@empty -\newcommand\babelcalendar[2][\the\year-\the\month-\the\day]{% - \@nameuse{bbl@ca@#2}#1\@@} -\newcommand\BabelDateSpace{\nobreakspace} -\newcommand\BabelDateDot{.\@} % TODO. \let instead of repeating -\newcommand\BabelDated[1]{{\number#1}} -\newcommand\BabelDatedd[1]{{\ifnum#1<10 0\fi\number#1}} -\newcommand\BabelDateM[1]{{\number#1}} -\newcommand\BabelDateMM[1]{{\ifnum#1<10 0\fi\number#1}} -\newcommand\BabelDateMMMM[1]{{% - \csname month\romannumeral#1\bbl@calendar name\endcsname}}% -\newcommand\BabelDatey[1]{{\number#1}}% -\newcommand\BabelDateyy[1]{{% - \ifnum#1<10 0\number#1 % - \else\ifnum#1<100 \number#1 % - \else\ifnum#1<1000 \expandafter\@gobble\number#1 % - \else\ifnum#1<10000 \expandafter\@gobbletwo\number#1 % - \else - \bbl@error - {Currently two-digit years are restricted to the\\ - range 0-9999.}% - {There is little you can do. Sorry.}% - \fi\fi\fi\fi}} -\newcommand\BabelDateyyyy[1]{{\number#1}} % TODO - add leading 0 -\def\bbl@replace@finish@iii#1{% - \bbl@exp{\def\\#1####1####2####3{\the\toks@}}} -\def\bbl@TG@@date{% - \bbl@replace\bbl@toreplace{[ ]}{\BabelDateSpace{}}% - \bbl@replace\bbl@toreplace{[.]}{\BabelDateDot{}}% - \bbl@replace\bbl@toreplace{[d]}{\BabelDated{####3}}% - \bbl@replace\bbl@toreplace{[dd]}{\BabelDatedd{####3}}% - \bbl@replace\bbl@toreplace{[M]}{\BabelDateM{####2}}% - \bbl@replace\bbl@toreplace{[MM]}{\BabelDateMM{####2}}% - \bbl@replace\bbl@toreplace{[MMMM]}{\BabelDateMMMM{####2}}% - \bbl@replace\bbl@toreplace{[y]}{\BabelDatey{####1}}% - \bbl@replace\bbl@toreplace{[yy]}{\BabelDateyy{####1}}% - \bbl@replace\bbl@toreplace{[yyyy]}{\BabelDateyyyy{####1}}% - \bbl@replace\bbl@toreplace{[y|}{\bbl@datecntr[####1|}% - \bbl@replace\bbl@toreplace{[m|}{\bbl@datecntr[####2|}% - \bbl@replace\bbl@toreplace{[d|}{\bbl@datecntr[####3|}% - \bbl@replace@finish@iii\bbl@toreplace} -\def\bbl@datecntr{\expandafter\bbl@xdatecntr\expandafter} -\def\bbl@xdatecntr[#1|#2]{\localenumeral{#2}{#1}} -\let\bbl@release@transforms\@empty -\bbl@csarg\let{inikv@transforms.prehyphenation}\bbl@inikv -\bbl@csarg\let{inikv@transforms.posthyphenation}\bbl@inikv -\def\bbl@transforms@aux#1#2#3#4,#5\relax{% - #1[#2]{#3}{#4}{#5}} -\begingroup % A hack. TODO. Don't require an specific order - \catcode`\%=12 - \catcode`\&=14 - \gdef\bbl@transforms#1#2#3{&% - \directlua{ - local str = [==[#2]==] - str = str:gsub('%.%d+%.%d+$', '') - token.set_macro('babeltempa', str) - }&% - \def\babeltempc{}&% - \bbl@xin@{,\babeltempa,}{,\bbl@KVP@transforms,}&% - \ifin@\else - \bbl@xin@{:\babeltempa,}{,\bbl@KVP@transforms,}&% - \fi - \ifin@ - \bbl@foreach\bbl@KVP@transforms{&% - \bbl@xin@{:\babeltempa,}{,##1,}&% - \ifin@ &% font:font:transform syntax - \directlua{ - local t = {} - for m in string.gmatch('##1'..':', '(.-):') do - table.insert(t, m) - end - table.remove(t) - token.set_macro('babeltempc', ',fonts=' .. table.concat(t, ' ')) - }&% - \fi}&% - \in@{.0$}{#2$}&% - \ifin@ - \directlua{&% (\attribute) syntax - local str = string.match([[\bbl@KVP@transforms]], - '%(([^%(]-)%)[^%)]-\babeltempa') - if str == nil then - token.set_macro('babeltempb', '') - else - token.set_macro('babeltempb', ',attribute=' .. str) - end - }&% - \toks@{#3}&% - \bbl@exp{&% - \\\g@addto@macro\\\bbl@release@transforms{&% - \relax &% Closes previous \bbl@transforms@aux - \\\bbl@transforms@aux - \\#1{label=\babeltempa\babeltempb\babeltempc}&% - {\languagename}{\the\toks@}}}&% - \else - \g@addto@macro\bbl@release@transforms{, {#3}}&% - \fi - \fi} -\endgroup -\def\bbl@provide@lsys#1{% - \bbl@ifunset{bbl@lname@#1}% - {\bbl@load@info{#1}}% - {}% - \bbl@csarg\let{lsys@#1}\@empty - \bbl@ifunset{bbl@sname@#1}{\bbl@csarg\gdef{sname@#1}{Default}}{}% - \bbl@ifunset{bbl@sotf@#1}{\bbl@csarg\gdef{sotf@#1}{DFLT}}{}% - \bbl@csarg\bbl@add@list{lsys@#1}{Script=\bbl@cs{sname@#1}}% - \bbl@ifunset{bbl@lname@#1}{}% - {\bbl@csarg\bbl@add@list{lsys@#1}{Language=\bbl@cs{lname@#1}}}% - \ifcase\bbl@engine\or\or - \bbl@ifunset{bbl@prehc@#1}{}% - {\bbl@exp{\\\bbl@ifblank{\bbl@cs{prehc@#1}}}% - {}% - {\ifx\bbl@xenohyph\@undefined - \global\let\bbl@xenohyph\bbl@xenohyph@d - \ifx\AtBeginDocument\@notprerr - \expandafter\@secondoftwo % to execute right now - \fi - \AtBeginDocument{% - \bbl@patchfont{\bbl@xenohyph}% - \expandafter\select@language\expandafter{\languagename}}% - \fi}}% - \fi - \bbl@csarg\bbl@toglobal{lsys@#1}} -\def\bbl@xenohyph@d{% - \bbl@ifset{bbl@prehc@\languagename}% - {\ifnum\hyphenchar\font=\defaulthyphenchar - \iffontchar\font\bbl@cl{prehc}\relax - \hyphenchar\font\bbl@cl{prehc}\relax - \else\iffontchar\font"200B - \hyphenchar\font"200B - \else - \bbl@warning - {Neither 0 nor ZERO WIDTH SPACE are available\\% - in the current font, and therefore the hyphen\\% - will be printed. Try changing the fontspec's\\% - 'HyphenChar' to another value, but be aware\\% - this setting is not safe (see the manual).\\% - Reported}% - \hyphenchar\font\defaulthyphenchar - \fi\fi - \fi}% - {\hyphenchar\font\defaulthyphenchar}} - % \fi} -\def\bbl@load@info#1{% - \def\BabelBeforeIni##1##2{% - \begingroup - \bbl@read@ini{##1}0% - \endinput % babel- .tex may contain onlypreamble's - \endgroup}% boxed, to avoid extra spaces: - {\bbl@input@texini{#1}}} -\def\bbl@setdigits#1#2#3#4#5{% - \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}% - \def\<bbl@counter@\languagename>####1{% ie, \bbl@counter@lang - \\\expandafter\<bbl@digits@\languagename>% - \\\number####1\\\@nil}}% - \def\bbl@tempa##1##2##3##4##5{% - \bbl@exp{% Wow, quite a lot of hashes! :-( - \def\<bbl@digits@\languagename>########1{% - \\\ifx########1\\\@nil % ie, \bbl@digits@lang - \\\else - \\\ifx0########1#1% - \\\else\\\ifx1########1#2% - \\\else\\\ifx2########1#3% - \\\else\\\ifx3########1#4% - \\\else\\\ifx4########1#5% - \\\else\\\ifx5########1##1% - \\\else\\\ifx6########1##2% - \\\else\\\ifx7########1##3% - \\\else\\\ifx8########1##4% - \\\else\\\ifx9########1##5% - \\\else########1% - \\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi - \\\expandafter\<bbl@digits@\languagename>% - \\\fi}}}% - \bbl@tempa} -\def\bbl@buildifcase#1 {% Returns \bbl@tempa, requires \toks@={} - \ifx\\#1% % \\ before, in case #1 is multiletter - \bbl@exp{% - \def\\\bbl@tempa####1{% - \<ifcase>####1\space\the\toks@\<else>\\\@ctrerr\<fi>}}% - \else - \toks@\expandafter{\the\toks@\or #1}% - \expandafter\bbl@buildifcase - \fi} -\newcommand\localenumeral[2]{\bbl@cs{cntr@#1@\languagename}{#2}} -\def\bbl@localecntr#1#2{\localenumeral{#2}{#1}} -\newcommand\localecounter[2]{% - \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{% - \ifcase\@car#8\@nil\or % Currenty <10000, but prepared for bigger - \bbl@alphnumeral@ii{#9}000000#1\or - \bbl@alphnumeral@ii{#9}00000#1#2\or - \bbl@alphnumeral@ii{#9}0000#1#2#3\or - \bbl@alphnumeral@ii{#9}000#1#2#3#4\else - \bbl@alphnum@invalid{>9999}% - \fi} -\def\bbl@alphnumeral@ii#1#2#3#4#5#6#7#8{% - \bbl@ifunset{bbl@cntr@#1.F.\number#5#6#7#8@\languagename}% - {\bbl@cs{cntr@#1.4@\languagename}#5% - \bbl@cs{cntr@#1.3@\languagename}#6% - \bbl@cs{cntr@#1.2@\languagename}#7% - \bbl@cs{cntr@#1.1@\languagename}#8% - \ifnum#6#7#8>\z@ % TODO. An ad hoc rule for Greek. Ugly. - \bbl@ifunset{bbl@cntr@#1.S.321@\languagename}{}% - {\bbl@cs{cntr@#1.S.321@\languagename}}% - \fi}% - {\bbl@cs{cntr@#1.F.\number#5#6#7#8@\languagename}}} -\def\bbl@alphnum@invalid#1{% - \bbl@error{Alphabetic numeral too large (#1)}% - {Currently this is the limit.}} -\def\bbl@localeinfo#1#2{% - \bbl@ifunset{bbl@info@#2}{#1}% - {\bbl@ifunset{bbl@\csname bbl@info@#2\endcsname @\languagename}{#1}% - {\bbl@cs{\csname bbl@info@#2\endcsname @\languagename}}}} -\newcommand\localeinfo[1]{% - \ifx*#1\@empty % TODO. A bit hackish to make it expandable. - \bbl@afterelse\bbl@localeinfo{}% - \else - \bbl@localeinfo - {\bbl@error{I've found no info for the current locale.\\% - The corresponding ini file has not been loaded\\% - Perhaps it doesn't exist}% - {See the manual for details.}}% - {#1}% - \fi} -\@namedef{bbl@info@tag.ini}{lini} -\@namedef{bbl@info@name.english}{elname} -\@namedef{bbl@info@name.opentype}{lname} -\@namedef{bbl@info@tag.bcp47}{tbcp} -\@namedef{bbl@info@language.tag.bcp47}{lbcp} -\@namedef{bbl@info@tag.opentype}{lotf} -\@namedef{bbl@info@script.name}{esname} -\@namedef{bbl@info@script.name.opentype}{sname} -\@namedef{bbl@info@script.tag.bcp47}{sbcp} -\@namedef{bbl@info@script.tag.opentype}{sotf} -\@namedef{bbl@info@region.tag.bcp47}{rbcp} -\@namedef{bbl@info@variant.tag.bcp47}{vbcp} -\@namedef{bbl@info@extension.t.tag.bcp47}{extt} -\@namedef{bbl@info@extension.u.tag.bcp47}{extu} -\@namedef{bbl@info@extension.x.tag.bcp47}{extx} -\providecommand\BCPdata{} -\ifx\renewcommand\@undefined\else % For plain. TODO. It’s a quick fix - \renewcommand\BCPdata[1]{% - \bbl@ifunset{bbl@info@#1.tag.bcp47}% - {\bbl@error{Unknown field '#1' in \string\BCPdata.\\% - Perhaps you misspelled it.}% - {See the manual for details.}}% - {\bbl@ifunset{bbl@\csname bbl@info@#1.tag.bcp47\endcsname @\languagename}{}% - {\bbl@cs{\csname bbl@info@#1.tag.bcp47\endcsname @\languagename}}}} -\fi -\@namedef{bbl@info@casing.tag.bcp47}{casing} -\let\bbl@ensureinfo\@gobble -\newcommand\BabelEnsureInfo{% - \ifx\InputIfFileExists\@undefined\else - \def\bbl@ensureinfo##1{% - \bbl@ifunset{bbl@lname@##1}{\bbl@load@info{##1}}{}}% - \fi - \bbl@foreach\bbl@loaded{{% - \let\bbl@ensuring\@empty % Flag used in a couple of babel-*.tex files - \def\languagename{##1}% - \bbl@ensureinfo{##1}}}} -\@ifpackagewith{babel}{ensureinfo=off}{}% - {\AtEndOfPackage{% Test for plain. - \ifx\@undefined\bbl@loaded\else\BabelEnsureInfo\fi}} -\newcommand\getlocaleproperty{% - \@ifstar\bbl@getproperty@s\bbl@getproperty@x} -\def\bbl@getproperty@s#1#2#3{% - \let#1\relax - \def\bbl@elt##1##2##3{% - \bbl@ifsamestring{##1/##2}{#3}% - {\providecommand#1{##3}% - \def\bbl@elt####1####2####3{}}% - {}}% - \bbl@cs{inidata@#2}}% -\def\bbl@getproperty@x#1#2#3{% - \bbl@getproperty@s{#1}{#2}{#3}% - \ifx#1\relax - \bbl@error - {Unknown key for locale '#2':\\% - #3\\% - \string#1 will be set to \relax}% - {Perhaps you misspelled it.}% - \fi} -\let\bbl@ini@loaded\@empty -\newcommand\LocaleForEach{\bbl@foreach\bbl@ini@loaded} -\newcommand\babeladjust[1]{% TODO. Error handling. - \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@ - \directlua{ Babel.#2 }% - \expandafter\expandafter\expandafter\@gobble - \fi - \fi - {\bbl@error % The error is gobbled if everything went ok. - {Currently, #1 related features can be adjusted only\\% - in the main vertical list.}% - {Maybe things change in the future, but this is what it is.}}} -\@namedef{bbl@ADJ@bidi.mirroring@on}{% - \bbl@adjust@lua{bidi}{mirroring_enabled=true}} -\@namedef{bbl@ADJ@bidi.mirroring@off}{% - \bbl@adjust@lua{bidi}{mirroring_enabled=false}} -\@namedef{bbl@ADJ@bidi.text@on}{% - \bbl@adjust@lua{bidi}{bidi_enabled=true}} -\@namedef{bbl@ADJ@bidi.text@off}{% - \bbl@adjust@lua{bidi}{bidi_enabled=false}} -\@namedef{bbl@ADJ@bidi.math@on}{% - \let\bbl@noamsmath\@empty} -\@namedef{bbl@ADJ@bidi.math@off}{% - \let\bbl@noamsmath\relax} -\@namedef{bbl@ADJ@bidi.mapdigits@on}{% - \bbl@adjust@lua{bidi}{digits_mapped=true}} -\@namedef{bbl@ADJ@bidi.mapdigits@off}{% - \bbl@adjust@lua{bidi}{digits_mapped=false}} -\@namedef{bbl@ADJ@linebreak.sea@on}{% - \bbl@adjust@lua{linebreak}{sea_enabled=true}} -\@namedef{bbl@ADJ@linebreak.sea@off}{% - \bbl@adjust@lua{linebreak}{sea_enabled=false}} -\@namedef{bbl@ADJ@linebreak.cjk@on}{% - \bbl@adjust@lua{linebreak}{cjk_enabled=true}} -\@namedef{bbl@ADJ@linebreak.cjk@off}{% - \bbl@adjust@lua{linebreak}{cjk_enabled=false}} -\@namedef{bbl@ADJ@justify.arabic@on}{% - \bbl@adjust@lua{linebreak}{arabic.justify_enabled=true}} -\@namedef{bbl@ADJ@justify.arabic@off}{% - \bbl@adjust@lua{linebreak}{arabic.justify_enabled=false}} -\def\bbl@adjust@layout#1{% - \ifvmode - #1% - \expandafter\@gobble - \fi - {\bbl@error % The error is gobbled if everything went ok. - {Currently, layout related features can be adjusted only\\% - in vertical mode.}% - {Maybe things change in the future, but this is what it is.}}} -\@namedef{bbl@ADJ@layout.tabular@on}{% - \ifnum\bbl@tabular@mode=\tw@ - \bbl@adjust@layout{\let\@tabular\bbl@NL@@tabular}% - \else - \chardef\bbl@tabular@mode\@ne - \fi} -\@namedef{bbl@ADJ@layout.tabular@off}{% - \ifnum\bbl@tabular@mode=\tw@ - \bbl@adjust@layout{\let\@tabular\bbl@OL@@tabular}% - \else - \chardef\bbl@tabular@mode\z@ - \fi} -\@namedef{bbl@ADJ@layout.lists@on}{% - \bbl@adjust@layout{\let\list\bbl@NL@list}} -\@namedef{bbl@ADJ@layout.lists@off}{% - \bbl@adjust@layout{\let\list\bbl@OL@list}} -\@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}} -\newif\ifbbl@bcptoname -\@namedef{bbl@ADJ@bcp47.toname@on}{% - \bbl@bcptonametrue - \BabelEnsureInfo} -\@namedef{bbl@ADJ@bcp47.toname@off}{% - \bbl@bcptonamefalse} -\@namedef{bbl@ADJ@prehyphenation.disable@nohyphenation}{% - \directlua{ Babel.ignore_pre_char = function(node) - return (node.lang == \the\csname l@nohyphenation\endcsname) - end }} -\@namedef{bbl@ADJ@prehyphenation.disable@off}{% - \directlua{ Babel.ignore_pre_char = function(node) - return false - end }} -\@namedef{bbl@ADJ@select.write@shift}{% - \let\bbl@restorelastskip\relax - \def\bbl@savelastskip{% - \let\bbl@restorelastskip\relax - \ifvmode - \ifdim\lastskip=\z@ - \let\bbl@restorelastskip\nobreak - \else - \bbl@exp{% - \def\\\bbl@restorelastskip{% - \skip@=\the\lastskip - \\\nobreak \vskip-\skip@ \vskip\skip@}}% - \fi - \fi}} -\@namedef{bbl@ADJ@select.write@keep}{% - \let\bbl@restorelastskip\relax - \let\bbl@savelastskip\relax} -\@namedef{bbl@ADJ@select.write@omit}{% - \AddBabelHook{babel-select}{beforestart}{% - \expandafter\babel@aux\expandafter{\bbl@main@language}{}}% - \let\bbl@restorelastskip\relax - \def\bbl@savelastskip##1\bbl@restorelastskip{}} -\@namedef{bbl@ADJ@select.encoding@off}{% - \let\bbl@encoding@select@off\@empty} -\ifx\directlua\@undefined\else - \ifx\bbl@luapatterns\@undefined - \input luababel.def - \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 4ed44235120..eab6b9801f0 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.sty +++ b/Master/texmf-dist/tex/generic/babel/babel.sty @@ -34,7 +34,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{babel}[2023/04/18 3.88 The Babel package] +\ProvidesPackage{babel}[2023/05/11 v3.89 The Babel package] \@ifpackagewith{babel}{debug} {\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}% \let\bbl@debug\@firstofone @@ -305,6 +305,8 @@ \bbl@csarg\let{tempa\expandafter}\csname opt@babel.sty\endcsname \def\bbl@tempb#1.#2{% Remove trailing dot #1\ifx\@empty#2\else,\bbl@afterfi\bbl@tempb#2\fi}% +\def\bbl@tempe#1=#2\@@{% + \bbl@csarg\edef{mod@#1}{\bbl@tempb#2}} \def\bbl@tempd#1.#2\@nnil{% TODO. Refactor lists? \ifx\@empty#2% \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1}% @@ -314,12 +316,17 @@ \edef\bbl@tempc{% \ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1.\bbl@tempb#2}% \else - \in@{=}{#1}% + \in@{$modifiers$}{$#1$}% TODO. Allow spaces. \ifin@ - \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1.#2}% + \bbl@tempe#2\@@ \else - \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1}% - \bbl@csarg\edef{mod@#1}{\bbl@tempb#2}% + \in@{=}{#1}% + \ifin@ + \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1.#2}% + \else + \edef\bbl@tempc{\ifx\bbl@tempc\@empty\else\bbl@tempc,\fi#1}% + \bbl@csarg\edef{mod@#1}{\bbl@tempb#2}% + \fi \fi \fi \fi} @@ -463,8 +470,8 @@ \expandafter\@secondoftwo \fi} \fi -\def\bbl@version{3.88} -\def\bbl@date{2023/04/18} +\def\bbl@version{3.89} +\def\bbl@date{2023/05/11} \ifx\language\@undefined \csname newcount\endcsname\language \fi @@ -712,8 +719,6 @@ % set the locale id \bbl@id@assign % switch captions, date - % No text is supposed to be added here, so we remove any - % spurious spaces. \bbl@bsphack \ifcase\bbl@select@type \csname captions#1\endcsname\relax @@ -784,6 +789,7 @@ \expandafter\expandafter\expandafter\set@hyphenmins \csname #1hyphenmins\endcsname\relax \fi + % reset selector name \let\bbl@selectorname\@empty} \long\def\otherlanguage#1{% \def\bbl@selectorname{other}% @@ -968,193 +974,6 @@ \input luababel.def \fi \fi -\bbl@trace{Basic macros} -\def\bbl@stripslash{\expandafter\@gobble\string} -\def\bbl@add#1#2{% - \bbl@ifunset{\bbl@stripslash#1}% - {\def#1{#2}}% - {\expandafter\def\expandafter#1\expandafter{#1#2}}} -\def\bbl@xin@{\@expandtwoargs\in@} -\def\bbl@carg#1#2{\expandafter#1\csname#2\endcsname}% -\def\bbl@ncarg#1#2#3{\expandafter#1\expandafter#2\csname#3\endcsname}% -\def\bbl@ccarg#1#2#3{% - \expandafter#1\csname#2\expandafter\endcsname\csname#3\endcsname}% -\def\bbl@csarg#1#2{\expandafter#1\csname bbl@#2\endcsname}% -\def\bbl@cs#1{\csname bbl@#1\endcsname} -\def\bbl@cl#1{\csname bbl@#1@\languagename\endcsname} -\def\bbl@loop#1#2#3{\bbl@@loop#1{#3}#2,\@nnil,} -\def\bbl@loopx#1#2{\expandafter\bbl@loop\expandafter#1\expandafter{#2}} -\def\bbl@@loop#1#2#3,{% - \ifx\@nnil#3\relax\else - \def#1{#3}#2\bbl@afterfi\bbl@@loop#1{#2}% - \fi} -\def\bbl@for#1#2#3{\bbl@loopx#1{#2}{\ifx#1\@empty\else#3\fi}} -\def\bbl@add@list#1#2{% - \edef#1{% - \bbl@ifunset{\bbl@stripslash#1}% - {}% - {\ifx#1\@empty\else#1,\fi}% - #2}} -\long\def\bbl@afterelse#1\else#2\fi{\fi#1} -\long\def\bbl@afterfi#1\fi{\fi#1} -\def\bbl@exp#1{% - \begingroup - \let\\\noexpand - \let\<\bbl@exp@en - \let\[\bbl@exp@ue - \edef\bbl@exp@aux{\endgroup#1}% - \bbl@exp@aux} -\def\bbl@exp@en#1>{\expandafter\noexpand\csname#1\endcsname}% -\def\bbl@exp@ue#1]{% - \unexpanded\expandafter\expandafter\expandafter{\csname#1\endcsname}}% -\def\bbl@tempa#1{% - \long\def\bbl@trim##1##2{% - \futurelet\bbl@trim@a\bbl@trim@c##2\@nil\@nil#1\@nil\relax{##1}}% - \def\bbl@trim@c{% - \ifx\bbl@trim@a\@sptoken - \expandafter\bbl@trim@b - \else - \expandafter\bbl@trim@b\expandafter#1% - \fi}% - \long\def\bbl@trim@b#1##1 \@nil{\bbl@trim@i##1}} -\bbl@tempa{ } -\long\def\bbl@trim@i#1\@nil#2\relax#3{#3{#1}} -\long\def\bbl@trim@def#1{\bbl@trim{\def#1}} -\begingroup - \gdef\bbl@ifunset#1{% - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} - \bbl@ifunset{ifcsname}% - {}% - {\gdef\bbl@ifunset#1{% - \ifcsname#1\endcsname - \expandafter\ifx\csname#1\endcsname\relax - \bbl@afterelse\expandafter\@firstoftwo - \else - \bbl@afterfi\expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi}} -\endgroup -\def\bbl@ifblank#1{% - \bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil} -\long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4} -\def\bbl@ifset#1#2#3{% - \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{\@nameuse{#1}}}{#3}{#2}}} -\def\bbl@forkv#1#2{% - \def\bbl@kvcmd##1##2##3{#2}% - \bbl@kvnext#1,\@nil,} -\def\bbl@kvnext#1,{% - \ifx\@nil#1\relax\else - \bbl@ifblank{#1}{}{\bbl@forkv@eq#1=\@empty=\@nil{#1}}% - \expandafter\bbl@kvnext - \fi} -\def\bbl@forkv@eq#1=#2=#3\@nil#4{% - \bbl@trim@def\bbl@forkv@a{#1}% - \bbl@trim{\expandafter\bbl@kvcmd\expandafter{\bbl@forkv@a}}{#2}{#4}} -\def\bbl@vforeach#1#2{% - \def\bbl@forcmd##1{#2}% - \bbl@fornext#1,\@nil,} -\def\bbl@fornext#1,{% - \ifx\@nil#1\relax\else - \bbl@ifblank{#1}{}{\bbl@trim\bbl@forcmd{#1}}% - \expandafter\bbl@fornext - \fi} -\def\bbl@foreach#1{\expandafter\bbl@vforeach\expandafter{#1}} -\def\bbl@replace#1#2#3{% in #1 -> repl #2 by #3 - \toks@{}% - \def\bbl@replace@aux##1#2##2#2{% - \ifx\bbl@nil##2% - \toks@\expandafter{\the\toks@##1}% - \else - \toks@\expandafter{\the\toks@##1#3}% - \bbl@afterfi - \bbl@replace@aux##2#2% - \fi}% - \expandafter\bbl@replace@aux#1#2\bbl@nil#2% - \edef#1{\the\toks@}} -\ifx\detokenize\@undefined\else % Unused macros if old Plain TeX - \bbl@exp{\def\\\bbl@parsedef##1\detokenize{macro:}}#2->#3\relax{% - \def\bbl@tempa{#1}% - \def\bbl@tempb{#2}% - \def\bbl@tempe{#3}} - \def\bbl@sreplace#1#2#3{% - \begingroup - \expandafter\bbl@parsedef\meaning#1\relax - \def\bbl@tempc{#2}% - \edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}% - \def\bbl@tempd{#3}% - \edef\bbl@tempd{\expandafter\strip@prefix\meaning\bbl@tempd}% - \bbl@xin@{\bbl@tempc}{\bbl@tempe}% If not in macro, do nothing - \ifin@ - \bbl@exp{\\\bbl@replace\\\bbl@tempe{\bbl@tempc}{\bbl@tempd}}% - \def\bbl@tempc{% Expanded an executed below as 'uplevel' - \\\makeatletter % "internal" macros with @ are assumed - \\\scantokens{% - \bbl@tempa\\\@namedef{\bbl@stripslash#1}\bbl@tempb{\bbl@tempe}}% - \catcode64=\the\catcode64\relax}% Restore @ - \else - \let\bbl@tempc\@empty % Not \relax - \fi - \bbl@exp{% For the 'uplevel' assignments - \endgroup - \bbl@tempc}} % empty or expand to set #1 with changes -\fi -\def\bbl@ifsamestring#1#2{% - \begingroup - \protected@edef\bbl@tempb{#1}% - \edef\bbl@tempb{\expandafter\strip@prefix\meaning\bbl@tempb}% - \protected@edef\bbl@tempc{#2}% - \edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}% - \ifx\bbl@tempb\bbl@tempc - \aftergroup\@firstoftwo - \else - \aftergroup\@secondoftwo - \fi - \endgroup} -\chardef\bbl@engine=% - \ifx\directlua\@undefined - \ifx\XeTeXinputencoding\@undefined - \z@ - \else - \tw@ - \fi - \else - \@ne - \fi -\def\bbl@bsphack{% - \ifhmode - \hskip\z@skip - \def\bbl@esphack{\loop\ifdim\lastskip>\z@\unskip\repeat\unskip}% - \else - \let\bbl@esphack\@empty - \fi} -\def\bbl@cased{% - \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@extras@wrap#1#2#3{% 1:in-test, 2:before, 3:after - \toks@\expandafter\expandafter\expandafter{% - \csname extras\languagename\endcsname}% - \bbl@exp{\\\in@{#1}{\the\toks@}}% - \ifin@\else - \@temptokena{#2}% - \edef\bbl@tempc{\the\@temptokena\the\toks@}% - \toks@\expandafter{\bbl@tempc#3}% - \expandafter\edef\csname extras\languagename\endcsname{\the\toks@}% - \fi} \bbl@trace{Compatibility with language.def} \ifx\bbl@languages\@undefined \ifx\directlua\@undefined @@ -1222,7 +1041,7 @@ \newcommand\EnableBabelHook[1]{\bbl@csarg\let{hk@#1}\@firstofone} \newcommand\DisableBabelHook[1]{\bbl@csarg\let{hk@#1}\@gobble} \def\bbl@usehooks{\bbl@usehooks@lang\languagename} -\def\bbl@usehooks@lang#1#2#3{% +\def\bbl@usehooks@lang#1#2#3{% Test for Plain \ifx\UseHook\@undefined\else\UseHook{babel/*/#2}\fi \def\bbl@elth##1{% \bbl@cs{hk@##1}{\bbl@cs{ev@##1@#2@}#3}}% @@ -1239,7 +1058,7 @@ beforeextras=0,afterextras=0,stopcommands=0,stringprocess=0,% hyphenation=2,initiateactive=3,afterreset=0,foreign=0,foreign*=0,% beforestart=0,languagename=2,begindocument=1} -\ifx\NewHook\@undefined\else +\ifx\NewHook\@undefined\else % Test for Plain (?) \def\bbl@tempa#1=#2\@@{\NewHook{babel/#1}} \bbl@foreach\bbl@evargs{\bbl@tempa#1\@@} \fi @@ -1948,7 +1767,7 @@ \def\bbl@toglobal#1{\global\let#1#1} \@ifpackagewith{babel}{nocase}% {\let\bbl@patchuclc\relax}% - {\def\bbl@patchuclc{% + {\def\bbl@patchuclc{% TODO. Delete. Doesn’t work any more. \global\let\bbl@patchuclc\relax \g@addto@macro\@uclclist{\reserved@b{\reserved@b\bbl@uclc}}% \gdef\bbl@uclc##1{% @@ -2470,6 +2289,7 @@ \let\bbl@calendars\@empty \global\let\bbl@inidata\@empty \global\let\bbl@extend@ini\@gobble + \global\let\bbl@included@inis\@empty \gdef\bbl@key@list{;}% \bbl@forkv{#1}{% \in@{/}{##1}% With /, (re)sets a value in the ini @@ -2535,6 +2355,14 @@ {}% With \bbl@load@basic below {\bbl@provide@renew{#2}}% \fi + % == include == TODO + % \ifx\bbl@included@inis\@empty\else + % \bbl@replace\bbl@included@inis{ }{,}% + % \bbl@foreach\bbl@included@inis{% + % \openin\bbl@readstream=babel-##1.ini + % \bbl@extend@ini{#2}}% + % \closein\bbl@readstream + % \fi % Post tasks % ---------- % == subsequent calls after the first provide for a locale == @@ -2557,11 +2385,6 @@ \\\bbl@toglobal\<bbl@ensure@\languagename>% \\\bbl@toglobal\<bbl@ensure@\languagename\space>}% \fi - % == - % 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 set the basic parameters, but still loading the - % whole ini file. \bbl@load@basic{#2}% % == script, language == % Override the values from ini or defines them @@ -2976,7 +2799,7 @@ \ifin@\else \bbl@xin@{,identification/include.}% {,\bbl@section/\bbl@tempa}% - \ifin@\edef\bbl@required@inis{\the\toks@}\fi + \ifin@\xdef\bbl@included@inis{\the\toks@}\fi \bbl@exp{% \\\g@addto@macro\\\bbl@inidata{% \\\bbl@elt{\bbl@section}{\bbl@tempa}{\the\toks@}}}% @@ -3024,16 +2847,9 @@ \let\bbl@inistore\bbl@inistore@min % Remember it's local \fi \def\bbl@section{identification}% - \let\bbl@required@inis\@empty \bbl@exp{\\\bbl@inistore tag.ini=#1\\\@@}% \bbl@inistore load.level=#2\@@ \bbl@loop@ini - \ifx\bbl@required@inis\@empty\else - \bbl@replace\bbl@required@inis{ }{,}% - \bbl@foreach\bbl@required@inis{% - \openin\bbl@readstream=babel-##1.ini - \bbl@loop@ini}% - \fi % == Process stored data == \bbl@csarg\xdef{lini@\languagename}{#1}% \bbl@read@ini@aux @@ -3675,13 +3491,18 @@ \@namedef{bbl@info@extension.x.tag.bcp47}{extx} \providecommand\BCPdata{} \ifx\renewcommand\@undefined\else % For plain. TODO. It’s a quick fix - \renewcommand\BCPdata[1]{% + \renewcommand\BCPdata[1]{\bbl@bcpdata@i#1\@empty} + \def\bbl@bcpdata@i#1#2#3#4#5#6\@empty{% + \@nameuse{str_if_eq:nnTF}{#1#2#3#4#5}{main.}% + {\bbl@bcpdata@ii{#6}\bbl@main@language}% + {\bbl@bcpdata@ii{#1#2#3#4#5#6}\languagename}}% + \def\bbl@bcpdata@ii#1#2{% \bbl@ifunset{bbl@info@#1.tag.bcp47}% {\bbl@error{Unknown field '#1' in \string\BCPdata.\\% Perhaps you misspelled it.}% {See the manual for details.}}% - {\bbl@ifunset{bbl@\csname bbl@info@#1.tag.bcp47\endcsname @\languagename}{}% - {\bbl@cs{\csname bbl@info@#1.tag.bcp47\endcsname @\languagename}}}} + {\bbl@ifunset{bbl@\csname bbl@info@#1.tag.bcp47\endcsname @#2}{}% + {\bbl@cs{\csname bbl@info@#1.tag.bcp47\endcsname @#2}}}} \fi \@namedef{bbl@info@casing.tag.bcp47}{casing} \let\bbl@ensureinfo\@gobble @@ -3837,11 +3658,6 @@ \def\bbl@savelastskip##1\bbl@restorelastskip{}} \@namedef{bbl@ADJ@select.encoding@off}{% \let\bbl@encoding@select@off\@empty} -\ifx\directlua\@undefined\else - \ifx\bbl@luapatterns\@undefined - \input luababel.def - \fi -\fi \bbl@trace{Cross referencing macros} \ifx\bbl@opt@safe\@empty\else % ie, if 'ref' and/or 'bib' \def\@newl@bel#1#2#3{% @@ -4309,10 +4125,12 @@ \bbl@load@language{hebrew}} \DeclareOption{hungarian}{\bbl@try@load@lang{}{magyar}{}} \DeclareOption{lowersorbian}{\bbl@try@load@lang{}{lsorbian}{}} +\DeclareOption{northernsami}{\bbl@try@load@lang{}{samin}{}} \DeclareOption{nynorsk}{\bbl@try@load@lang{}{norsk}{}} \DeclareOption{polutonikogreek}{% \bbl@try@load@lang{}{greek}{\languageattribute{greek}{polutoniko}}} \DeclareOption{russian}{\bbl@try@load@lang{}{russianb}{}} +\DeclareOption{scottishgaelic}{\bbl@try@load@lang{}{scottish}{}} \DeclareOption{ukrainian}{\bbl@try@load@lang{}{ukraineb}{}} \DeclareOption{uppersorbian}{\bbl@try@load@lang{}{usorbian}{}} \ifx\bbl@opt@config\@nnil diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg index f54fed423f5..b0065196815 100644 --- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg +++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg @@ -38,10 +38,10 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{hyphen.cfg}[2023/04/18 3.88 Babel hyphens] +\ProvidesFile{hyphen.cfg}[2023/05/11 v3.89 Babel hyphens] \xdef\bbl@format{\jobname} -\def\bbl@version{3.88} -\def\bbl@date{2023/04/18} +\def\bbl@version{3.89} +\def\bbl@date{2023/05/11} \ifx\AtBeginDocument\@undefined \def\@empty{} \fi diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-acadian.tex b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-acadian.tex new file mode 100644 index 00000000000..663ddf4c60d --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-acadian.tex @@ -0,0 +1,12 @@ +% This file is part of babel. For further details see: +% https://www.ctan.org/pkg/babel +\ifx\BabelBeforeIni\undefined + \PackageError{babel}% + {This file is a component of babel and cannot\MessageBreak + be loaded directly. I'll stop immediately}% + {Just use babel as documented.}% + \stop +\fi +\BabelBeforeIni{fr-x-acadian}{% +} +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-x-acadian.ini b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-x-acadian.ini new file mode 100644 index 00000000000..0fdf3901abd --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-x-acadian.ini @@ -0,0 +1,186 @@ +; This file is part of babel. For further details see: +; https://www.ctan.org/pkg/babel +; Data has been collected mainly from the following sources: +; * babel language styles (license LPPL): +; https://www.ctan.org/pkg/babel-contrib +; * Common Locale Data Repository (license Unicode): +; http://cldr.unicode.org/ +; http://unicode.org/copyright.html + +[identification] +charset = utf8 +version = 0.9 +date = 2023-05-11 +name.local = acadien +; Name from Glottolog. Note Acadian is *not* Canadian French +name.english = Acadian +name.babel = acadian +tag.bcp47 = fr-x-acadian +language.tag.bcp47 = fr +tag.opentype = FRA +script.name = Latin +script.tag.bcp47 = Latn +script.tag.opentype = latn +extension.x.tag.bcp47 = acadian +level = 1 +encodings = T1 OT1 LY1 +derivate = no + +[captions] +preface = Préface +ref = Références +abstract = Résumé +bib = Bibliographie +chapter = Chapitre +appendix = Annexe +contents = Table des matières +listfigure = Table des figures +listtable = Liste des tableaux +index = Index +figure = Figure +table = Table +part = partie +encl = P.~J. +cc = Copie à +headto = +page = page +see = voir +also = voir aussi +proof = Démonstration +glossary = Glossaire + +[captions.licr] +preface = Pr\'eface +ref = R\'ef\'erences +abstract = R\'esum\'e +bib = Bibliographie +chapter = Chapitre +appendix = Annexe +contents = Table des mati\`eres +listfigure = Table des figures +listtable = Liste des tableaux +index = Index +figure = Figure +table = Table +part = partie +encl = P.~J. +cc = Copie \`a +headto = +page = page +see = voir +also = voir aussi +proof = D\'emonstration +glossary = Glossaire + +[date.gregorian] +date.long = [d|date.day] [MMMM] [y] +date.short = [dd]/[MM]/[y] +months.wide.1 = janvier +months.wide.2 = février +months.wide.3 = mars +months.wide.4 = avril +months.wide.5 = mai +months.wide.6 = juin +months.wide.7 = juillet +months.wide.8 = août +months.wide.9 = septembre +months.wide.10 = octobre +months.wide.11 = novembre +months.wide.12 = décembre +months.narrow.1 = J +months.narrow.2 = F +months.narrow.3 = M +months.narrow.4 = A +months.narrow.5 = M +months.narrow.6 = J +months.narrow.7 = J +months.narrow.8 = A +months.narrow.9 = S +months.narrow.10 = O +months.narrow.11 = N +months.narrow.12 = D +days.wide.mon = lundi +days.wide.tue = mardi +days.wide.wed = mercredi +days.wide.thu = jeudi +days.wide.fri = vendredi +days.wide.sat = samedi +days.wide.sun = dimanche +days.abbreviated.mon = lun. +days.abbreviated.tue = mar. +days.abbreviated.wed = mer. +days.abbreviated.thu = jeu. +days.abbreviated.fri = ven. +days.abbreviated.sat = sam. +days.abbreviated.sun = dim. +days.narrow.mon = L +days.narrow.tue = M +days.narrow.wed = M +days.narrow.thu = J +days.narrow.fri = V +days.narrow.sat = S +days.narrow.sun = D +dayPeriods.abbreviated.am = AM +dayPeriods.abbreviated.pm = PM +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM + +[date.gregorian.licr] +months.wide.1 = janvier +months.wide.2 = f\'evrier +months.wide.3 = mars +months.wide.4 = avril +months.wide.5 = mai +months.wide.6 = juin +months.wide.7 = juillet +months.wide.8 = ao\^ut +months.wide.9 = septembre +months.wide.10 = octobre +months.wide.11 = novembre +months.wide.12 = d\'ecembre + +[time.gregorian] +time.medium = [HH]:[mm]:[ss] +time.short = [HH]:[mm] + +[typography] +frenchspacing = yes +hyphenrules = french +lefthyphenmin = 2 +righthyphenmin = 3 +hyphenchar = +prehyphenchar = +posthyphenchar = +exhyphenchar = +preexhyphenchar = +postexhyphenchar = +hyphenationmin = +; The syntax is liable to change in 'other' values +hyphenate.other.locale = "27 + +[characters] +delimiters.quotes = «»«» +auxiliary = [á å ä ã ā ć ē í ì ī ij ñ ó ò ö õ ø ř š ſ ß ú ǔ] +exemplarCharacters = [a à â æ b c ç d e é è ê ë f g h i î ï j k l m n o ô œ p q r s t u ù û ü v w x y ÿ z] +index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] +punctuation = [\\- ‐ ‑ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡] + +[numbers] +defaultNumberingSystem = latn +minimumGroupingDigits = 1 +decimal = , +exponential = E +group = . +infinity = ∞ +list = ; +minusSign = - +nan = NaN +perMille = ‰ +percentSign = % +plusSign = + +superscriptingExponent = × + +[counters] +date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 diff --git a/Master/texmf-dist/tex/generic/babel/locale/se/babel-se.ini b/Master/texmf-dist/tex/generic/babel/locale/se/babel-se.ini index aad7841c9e1..51beda8d148 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/se/babel-se.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/se/babel-se.ini @@ -9,11 +9,11 @@ [identification] charset = utf8 -version = 1.2 -date = 2020-06-30 +version = 1.3 +date = 2023-05-02 name.local = davvisámegiella name.english = Northern Sami -name.babel = samin northernsami +name.babel = northernsami samin name.polyglossia = sami tag.bcp47 = se language.tag.bcp47 = se diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-serbian-ijekavsk.tex b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-serbian-ijekavsk.tex new file mode 100644 index 00000000000..ceaed7755f4 --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-serbian-ijekavsk.tex @@ -0,0 +1,12 @@ +% This file is part of babel. For further details see: +% https://www.ctan.org/pkg/babel +\ifx\BabelBeforeIni\undefined + \PackageError{babel}% + {This file is a component of babel and cannot\MessageBreak + be loaded directly. I'll stop immediately}% + {Just use babel as documented.}% + \stop +\fi +\BabelBeforeIni{sr-ijekavsk}{% +} +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-serbian-latn-ijekavsk.tex b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-serbian-latn-ijekavsk.tex new file mode 100644 index 00000000000..632c1b65d08 --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-serbian-latn-ijekavsk.tex @@ -0,0 +1,12 @@ +% This file is part of babel. For further details see: +% https://www.ctan.org/pkg/babel +\ifx\BabelBeforeIni\undefined + \PackageError{babel}% + {This file is a component of babel and cannot\MessageBreak + be loaded directly. I'll stop immediately}% + {Just use babel as documented.}% + \stop +\fi +\BabelBeforeIni{sr-Latn-ijekavsk}{% +} +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini index e7d937f21cc..2ead1d09717 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini @@ -6,11 +6,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.5 -date = 2021-09-29 +version = 1.6 +date = 2023-04-31 name.local = српски name.english = Serbian name.babel = serbian-cyrillic-bosniaherzegovina serbian-cyrl-ba @@ -30,14 +31,14 @@ derivate = no [captions] preface = Предговор ref = Литература -abstract = Абстракт +abstract = Сажетак bib = Библиографиjа chapter = Глава appendix = Додатак contents = Садржаj -listfigure = Листаслика -listtable = Листатабела -index = Индекспоjмова +listfigure = Списак слика +listtable = Списак табела +index = Индекс figure = Слика table = Табела part = Део @@ -53,26 +54,42 @@ glossary = Речник [captions.licr] preface = \CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr ref = \CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra -abstract = \CYRA\cyrb\cyrs\cyrt\cyrr\cyra\cyrk\cyrt -bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri j\cyra +abstract = \CYRS\cyra\cyrzh\cyre\cyrt\cyra\cyrk +bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri\cyrje\cyra chapter = \CYRG\cyrl\cyra\cyrv\cyra appendix = \CYRD\cyro\cyrd\cyra\cyrt\cyra\cyrk -contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra j -listfigure = \CYRL\cyri\cyrs\cyrt\cyra\cyrs\cyrl\cyri\cyrk\cyra -listtable = \CYRL\cyri\cyrs\cyrt\cyra\cyrt\cyra\cyrb\cyre\cyrl\cyra -index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs\cyrp\cyro j\cyrm\cyro\cyrv\cyra +contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra\cyrje +listfigure = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrs\cyrl\cyri\cyrk\cyra +listtable = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrt\cyra\cyrb\cyre\cyrl\cyra +index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs figure = \CYRS\cyrl\cyri\cyrk\cyra table = \CYRT\cyra\cyrb\cyre\cyrl\cyra part = \CYRD\cyre\cyro encl = \CYRP\cyrr\cyri\cyrl\cyro\cyrz\cyri -cc = \CYRK\cyro\cyrp\cyri j\cyre +cc = \CYRK\cyro\cyrp\cyri\cyrje\cyre headto = \CYRP\cyrr\cyri\cyrm\cyra page = \cyrs\cyrt\cyrr\cyra\cyrn\cyra see = \cyrv\cyri\cyrd\cyri -also = \cyrv\cyri\cyrd\cyri\cyrt\cyra\cyrk\cyro\cyrdje\cyre +also = \cyrv\cyri\cyrd\cyri\ \cyrt\cyra\cyrk\cyro\cyrdje\cyre proof = \CYRD\cyro\cyrk\cyra\cyrz glossary = \CYRR\cyre\cyrch\cyrn\cyri\cyrk +[date.gregorian.Genitive] +date.long = [d].[ ][MMMM] [y]. +date.short = [d].[M].[yy]. +months.wide.1 = јануара +months.wide.2 = фебруара +months.wide.3 = марта +months.wide.4 = априла +months.wide.5 = маја +months.wide.6 = јуна +months.wide.7 = јула +months.wide.8 = августа +months.wide.9 = септембра +months.wide.10 = октобра +months.wide.11 = новембра +months.wide.12 = децембра + [date.gregorian] date.long = [d].[ ][MMMM] [y]. date.short = [d].[M].[yy]. @@ -100,20 +117,20 @@ months.narrow.9 = с months.narrow.10 = о months.narrow.11 = н months.narrow.12 = д -days.wide.mon = понедељак +days.wide.mon = понедјељак days.wide.tue = уторак days.wide.wed = сриједа days.wide.thu = четвртак days.wide.fri = петак days.wide.sat = субота days.wide.sun = недјеља -days.abbreviated.mon = пон. -days.abbreviated.tue = ут. -days.abbreviated.wed = ср. -days.abbreviated.thu = чет. -days.abbreviated.fri = пет. -days.abbreviated.sat = суб. -days.abbreviated.sun = нед. +days.abbreviated.mon = пон +days.abbreviated.tue = уто +days.abbreviated.wed = сри +days.abbreviated.thu = чет +days.abbreviated.fri = пет +days.abbreviated.sat = суб +days.abbreviated.sun = нед days.narrow.mon = п days.narrow.tue = у days.narrow.wed = с @@ -121,13 +138,27 @@ days.narrow.thu = ч days.narrow.fri = п days.narrow.sat = с days.narrow.sun = н -dayPeriods.abbreviated.am = прије подне -dayPeriods.abbreviated.pm = по подне -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p +dayPeriods.abbreviated.am = прије подне +dayPeriods.abbreviated.pm = по подне +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM dayPeriods.wide.am = прије подне dayPeriods.wide.pm = по подне +[date.gregorian.Genitive.licr] +months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr\cyra +months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr\cyra +months.wide.3 = \cyrm\cyra\cyrr\cyrt\cyra +months.wide.4 = \cyra\cyrp\cyrr\cyri\cyrl\cyra +months.wide.5 = \cyrm\cyra\cyrje\cyra +months.wide.6 = \cyrje\cyru\cyrn\cyra +months.wide.7 = \cyrje\cyru\cyrl\cyra +months.wide.8 = \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra +months.wide.9 = \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyrr\cyra +months.wide.10 = \cyro\cyrk\cyrt\cyro\cyrb\cyrr\cyra +months.wide.11 = \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyrr\cyra +months.wide.12 = \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyrr\cyra + [date.gregorian.licr] months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr @@ -147,10 +178,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbianc lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -160,11 +191,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ -auxiliary = [ё й щ ъ ы ь э ю я] +delimiters.quotes = „“’’ +auxiliary = [{а\u0302} {е\u0302} {и\u0302} {о\u0302} {у\u0302}] exemplarCharacters = [а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш] index = [А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn @@ -190,7 +221,7 @@ upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У transliteration.gajica.1.0 = { ([ln])j } transliteration.gajica.1.1 = { string = {1|ln|љњ} } transliteration.gajica.2.0 = { ([LN])[jJ] } -transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} } +transliteration.gajica.2.1 = { string = {1|LN|ЉЊ} } transliteration.gajica.3.0 = { dž } transliteration.gajica.3.1 = { string = џ } transliteration.gajica.4.0 = { D[žŽ] } diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini index e61dc30a3d2..7984777f3f4 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini @@ -6,20 +6,18 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.5 -date = 2021-09-29 +version = 1.6 +date = 2023-04-31 name.local = српски -name.english = Serbian +name.english = Montenegrin name.babel = serbian-cyrillic-montenegro serbian-cyrl-me tag.bcp47 = sr-Cyrl-ME language.tag.bcp47 = sr tag.opentype = SRB -region.local = Црна Гора -region.english = Montenegro -region.tag.bcp47 = ME script.name = Cyrillic script.tag.bcp47 = Cyrl script.tag.opentype = cyrl @@ -30,14 +28,14 @@ derivate = no [captions] preface = Предговор ref = Литература -abstract = Абстракт +abstract = Сажетак bib = Библиографиjа chapter = Глава appendix = Додатак contents = Садржаj -listfigure = Листаслика -listtable = Листатабела -index = Индекспоjмова +listfigure = Списак слика +listtable = Списак табела +index = Индекс figure = Слика table = Табела part = Део @@ -53,26 +51,42 @@ glossary = Речник [captions.licr] preface = \CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr ref = \CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra -abstract = \CYRA\cyrb\cyrs\cyrt\cyrr\cyra\cyrk\cyrt -bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri j\cyra +abstract = \CYRS\cyra\cyrzh\cyre\cyrt\cyra\cyrk +bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri\cyrje\cyra chapter = \CYRG\cyrl\cyra\cyrv\cyra appendix = \CYRD\cyro\cyrd\cyra\cyrt\cyra\cyrk -contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra j -listfigure = \CYRL\cyri\cyrs\cyrt\cyra\cyrs\cyrl\cyri\cyrk\cyra -listtable = \CYRL\cyri\cyrs\cyrt\cyra\cyrt\cyra\cyrb\cyre\cyrl\cyra -index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs\cyrp\cyro j\cyrm\cyro\cyrv\cyra +contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra\cyrje +listfigure = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrs\cyrl\cyri\cyrk\cyra +listtable = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrt\cyra\cyrb\cyre\cyrl\cyra +index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs figure = \CYRS\cyrl\cyri\cyrk\cyra table = \CYRT\cyra\cyrb\cyre\cyrl\cyra part = \CYRD\cyre\cyro encl = \CYRP\cyrr\cyri\cyrl\cyro\cyrz\cyri -cc = \CYRK\cyro\cyrp\cyri j\cyre +cc = \CYRK\cyro\cyrp\cyri\cyrje\cyre headto = \CYRP\cyrr\cyri\cyrm\cyra page = \cyrs\cyrt\cyrr\cyra\cyrn\cyra see = \cyrv\cyri\cyrd\cyri -also = \cyrv\cyri\cyrd\cyri\cyrt\cyra\cyrk\cyro\cyrdje\cyre +also = \cyrv\cyri\cyrd\cyri\ \cyrt\cyra\cyrk\cyro\cyrdje\cyre proof = \CYRD\cyro\cyrk\cyra\cyrz glossary = \CYRR\cyre\cyrch\cyrn\cyri\cyrk +[date.gregorian.Genitive] +date.long = [d].[ ][MMMM] [y]. +date.short = [d].[M].[yy]. +months.wide.1 = јануара +months.wide.2 = фебруара +months.wide.3 = марта +months.wide.4 = априла +months.wide.5 = маја +months.wide.6 = јуна +months.wide.7 = јула +months.wide.8 = августа +months.wide.9 = септембра +months.wide.10 = октобра +months.wide.11 = новембра +months.wide.12 = децембра + [date.gregorian] date.long = [d].[ ][MMMM] [y]. date.short = [d].[M].[yy]. @@ -107,13 +121,13 @@ days.wide.thu = четвртак days.wide.fri = петак days.wide.sat = субота days.wide.sun = недјеља -days.abbreviated.mon = пон. -days.abbreviated.tue = ут. -days.abbreviated.wed = ср. -days.abbreviated.thu = чет. -days.abbreviated.fri = пет. -days.abbreviated.sat = суб. -days.abbreviated.sun = нед. +days.abbreviated.mon = пон +days.abbreviated.tue = уто +days.abbreviated.wed = сре +days.abbreviated.thu = чет +days.abbreviated.fri = пет +days.abbreviated.sat = суб +days.abbreviated.sun = нед days.narrow.mon = п days.narrow.tue = у days.narrow.wed = с @@ -121,13 +135,27 @@ days.narrow.thu = ч days.narrow.fri = п days.narrow.sat = с days.narrow.sun = н -dayPeriods.abbreviated.am = прије подне -dayPeriods.abbreviated.pm = по подне -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p +dayPeriods.abbreviated.am = прије подне +dayPeriods.abbreviated.pm = по подне +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM dayPeriods.wide.am = прије подне dayPeriods.wide.pm = по подне +[date.gregorian.Genitive.licr] +months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr\cyra +months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr\cyra +months.wide.3 = \cyrm\cyra\cyrr\cyrt\cyra +months.wide.4 = \cyra\cyrp\cyrr\cyri\cyrl\cyra +months.wide.5 = \cyrm\cyra\cyrje\cyra +months.wide.6 = \cyrje\cyru\cyrn\cyra +months.wide.7 = \cyrje\cyru\cyrl\cyra +months.wide.8 = \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra +months.wide.9 = \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyrr\cyra +months.wide.10 = \cyro\cyrk\cyrt\cyro\cyrb\cyrr\cyra +months.wide.11 = \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyrr\cyra +months.wide.12 = \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyrr\cyra + [date.gregorian.licr] months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr @@ -147,10 +175,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbianc lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -160,11 +188,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ -auxiliary = [ё й щ ъ ы ь э ю я] +delimiters.quotes = „“’’ +auxiliary = [{а\u0302} {е\u0302} {и\u0302} {о\u0302} {у\u0302}] exemplarCharacters = [а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш] index = [А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini index 9183624065e..d2711a3f005 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini @@ -6,20 +6,18 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.5 -date = 2021-09-29 +version = 1.6 +date = 2023-04-31 name.local = српски name.english = Serbian name.babel = serbian-cyrillic-kosovo serbian-cyrl-xk tag.bcp47 = sr-Cyrl-XK language.tag.bcp47 = sr tag.opentype = SRB -region.local = Косово -region.english = Kosovo -region.tag.bcp47 = XK script.name = Cyrillic script.tag.bcp47 = Cyrl script.tag.opentype = cyrl @@ -30,14 +28,14 @@ derivate = no [captions] preface = Предговор ref = Литература -abstract = Абстракт +abstract = Сажетак bib = Библиографиjа chapter = Глава appendix = Додатак contents = Садржаj -listfigure = Листаслика -listtable = Листатабела -index = Индекспоjмова +listfigure = Списак слика +listtable = Списак табела +index = Индекс figure = Слика table = Табела part = Део @@ -53,26 +51,42 @@ glossary = Речник [captions.licr] preface = \CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr ref = \CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra -abstract = \CYRA\cyrb\cyrs\cyrt\cyrr\cyra\cyrk\cyrt -bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri j\cyra +abstract = \CYRS\cyra\cyrzh\cyre\cyrt\cyra\cyrk +bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri\cyrje\cyra chapter = \CYRG\cyrl\cyra\cyrv\cyra appendix = \CYRD\cyro\cyrd\cyra\cyrt\cyra\cyrk -contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra j -listfigure = \CYRL\cyri\cyrs\cyrt\cyra\cyrs\cyrl\cyri\cyrk\cyra -listtable = \CYRL\cyri\cyrs\cyrt\cyra\cyrt\cyra\cyrb\cyre\cyrl\cyra -index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs\cyrp\cyro j\cyrm\cyro\cyrv\cyra +contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra\cyrje +listfigure = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrs\cyrl\cyri\cyrk\cyra +listtable = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrt\cyra\cyrb\cyre\cyrl\cyra +index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs figure = \CYRS\cyrl\cyri\cyrk\cyra table = \CYRT\cyra\cyrb\cyre\cyrl\cyra part = \CYRD\cyre\cyro encl = \CYRP\cyrr\cyri\cyrl\cyro\cyrz\cyri -cc = \CYRK\cyro\cyrp\cyri j\cyre +cc = \CYRK\cyro\cyrp\cyri\cyrje\cyre headto = \CYRP\cyrr\cyri\cyrm\cyra page = \cyrs\cyrt\cyrr\cyra\cyrn\cyra see = \cyrv\cyri\cyrd\cyri -also = \cyrv\cyri\cyrd\cyri\cyrt\cyra\cyrk\cyro\cyrdje\cyre +also = \cyrv\cyri\cyrd\cyri\ \cyrt\cyra\cyrk\cyro\cyrdje\cyre proof = \CYRD\cyro\cyrk\cyra\cyrz glossary = \CYRR\cyre\cyrch\cyrn\cyri\cyrk +[date.gregorian.Genitive] +date.long = [d].[ ][MMMM] [y]. +date.short = [d].[M].[yy]. +months.wide.1 = јануара +months.wide.2 = фебруара +months.wide.3 = марта +months.wide.4 = априла +months.wide.5 = маја +months.wide.6 = јуна +months.wide.7 = јула +months.wide.8 = августа +months.wide.9 = септембра +months.wide.10 = октобра +months.wide.11 = новембра +months.wide.12 = децембра + [date.gregorian] date.long = [d].[ ][MMMM] [y]. date.short = [d].[M].[yy]. @@ -107,13 +121,13 @@ days.wide.thu = четвртак days.wide.fri = петак days.wide.sat = субота days.wide.sun = недеља -days.abbreviated.mon = пон. -days.abbreviated.tue = ут. -days.abbreviated.wed = ср. -days.abbreviated.thu = чет. -days.abbreviated.fri = пет. -days.abbreviated.sat = суб. -days.abbreviated.sun = нед. +days.abbreviated.mon = пон +days.abbreviated.tue = уто +days.abbreviated.wed = сре +days.abbreviated.thu = чет +days.abbreviated.fri = пет +days.abbreviated.sat = суб +days.abbreviated.sun = нед days.narrow.mon = п days.narrow.tue = у days.narrow.wed = с @@ -123,10 +137,24 @@ days.narrow.sat = с days.narrow.sun = н dayPeriods.abbreviated.am = пре подне dayPeriods.abbreviated.pm = по подне -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p -dayPeriods.wide.am = пре подне -dayPeriods.wide.pm = по подне +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM + +[date.gregorian.Genitive.licr] +months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr\cyra +months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr\cyra +months.wide.3 = \cyrm\cyra\cyrr\cyrt\cyra +months.wide.4 = \cyra\cyrp\cyrr\cyri\cyrl\cyra +months.wide.5 = \cyrm\cyra\cyrje\cyra +months.wide.6 = \cyrje\cyru\cyrn\cyra +months.wide.7 = \cyrje\cyru\cyrl\cyra +months.wide.8 = \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra +months.wide.9 = \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyrr\cyra +months.wide.10 = \cyro\cyrk\cyrt\cyro\cyrb\cyrr\cyra +months.wide.11 = \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyrr\cyra +months.wide.12 = \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyrr\cyra [date.gregorian.licr] months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr @@ -147,10 +175,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbianc lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -160,11 +188,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ -auxiliary = [ё й щ ъ ы ь э ю я] +delimiters.quotes = „“’’ +auxiliary = [{а\u0302} {е\u0302} {и\u0302} {о\u0302} {у\u0302}] exemplarCharacters = [а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш] index = [А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini index 2d06ed53efc..4751d68896d 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini @@ -6,11 +6,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.5 -date = 2021-09-29 +version = 1.6 +date = 2023-04-31 name.local = српски name.english = Serbian name.babel = serbian-cyrillic serbian-cyrl @@ -27,14 +28,14 @@ derivate = no [captions] preface = Предговор ref = Литература -abstract = Абстракт +abstract = Сажетак bib = Библиографиjа chapter = Глава appendix = Додатак contents = Садржаj -listfigure = Листаслика -listtable = Листатабела -index = Индекспоjмова +listfigure = Списак слика +listtable = Списак табела +index = Индекс figure = Слика table = Табела part = Део @@ -50,26 +51,42 @@ glossary = Речник [captions.licr] preface = \CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr ref = \CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra -abstract = \CYRA\cyrb\cyrs\cyrt\cyrr\cyra\cyrk\cyrt -bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri j\cyra +abstract = \CYRS\cyra\cyrzh\cyre\cyrt\cyra\cyrk +bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri\cyrje\cyra chapter = \CYRG\cyrl\cyra\cyrv\cyra appendix = \CYRD\cyro\cyrd\cyra\cyrt\cyra\cyrk -contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra j -listfigure = \CYRL\cyri\cyrs\cyrt\cyra\cyrs\cyrl\cyri\cyrk\cyra -listtable = \CYRL\cyri\cyrs\cyrt\cyra\cyrt\cyra\cyrb\cyre\cyrl\cyra -index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs\cyrp\cyro j\cyrm\cyro\cyrv\cyra +contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra\cyrje +listfigure = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrs\cyrl\cyri\cyrk\cyra +listtable = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrt\cyra\cyrb\cyre\cyrl\cyra +index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs figure = \CYRS\cyrl\cyri\cyrk\cyra table = \CYRT\cyra\cyrb\cyre\cyrl\cyra part = \CYRD\cyre\cyro encl = \CYRP\cyrr\cyri\cyrl\cyro\cyrz\cyri -cc = \CYRK\cyro\cyrp\cyri j\cyre +cc = \CYRK\cyro\cyrp\cyri\cyrje\cyre headto = \CYRP\cyrr\cyri\cyrm\cyra page = \cyrs\cyrt\cyrr\cyra\cyrn\cyra see = \cyrv\cyri\cyrd\cyri -also = \cyrv\cyri\cyrd\cyri\cyrt\cyra\cyrk\cyro\cyrdje\cyre +also = \cyrv\cyri\cyrd\cyri\ \cyrt\cyra\cyrk\cyro\cyrdje\cyre proof = \CYRD\cyro\cyrk\cyra\cyrz glossary = \CYRR\cyre\cyrch\cyrn\cyri\cyrk +[date.gregorian.Genitive] +date.long = [d].[ ][MMMM] [y]. +date.short = [d].[M].[yy]. +months.wide.1 = јануара +months.wide.2 = фебруара +months.wide.3 = марта +months.wide.4 = априла +months.wide.5 = маја +months.wide.6 = јуна +months.wide.7 = јула +months.wide.8 = августа +months.wide.9 = септембра +months.wide.10 = октобра +months.wide.11 = новембра +months.wide.12 = децембра + [date.gregorian] date.long = [d].[ ][MMMM] [y]. date.short = [d].[M].[yy]. @@ -120,10 +137,24 @@ days.narrow.sat = с days.narrow.sun = н dayPeriods.abbreviated.am = пре подне dayPeriods.abbreviated.pm = по подне -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p -dayPeriods.wide.am = пре подне -dayPeriods.wide.pm = по подне +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM + +[date.gregorian.Genitive.licr] +months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr\cyra +months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr\cyra +months.wide.3 = \cyrm\cyra\cyrr\cyrt\cyra +months.wide.4 = \cyra\cyrp\cyrr\cyri\cyrl\cyra +months.wide.5 = \cyrm\cyra\cyrje\cyra +months.wide.6 = \cyrje\cyru\cyrn\cyra +months.wide.7 = \cyrje\cyru\cyrl\cyra +months.wide.8 = \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra +months.wide.9 = \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyrr\cyra +months.wide.10 = \cyro\cyrk\cyrt\cyro\cyrb\cyrr\cyra +months.wide.11 = \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyrr\cyra +months.wide.12 = \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyrr\cyra [date.gregorian.licr] months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr @@ -144,10 +175,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbianc lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -157,11 +188,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ -auxiliary = [ё й щ ъ ы ь э ю я] +delimiters.quotes = „“’’ +auxiliary = [{а\u0302} {е\u0302} {и\u0302} {о\u0302} {у\u0302}] exemplarCharacters = [а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш] index = [А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn @@ -187,7 +218,7 @@ upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У transliteration.gajica.1.0 = { ([ln])j } transliteration.gajica.1.1 = { string = {1|ln|љњ} } transliteration.gajica.2.0 = { ([LN])[jJ] } -transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} } +transliteration.gajica.2.1 = { string = {1|LN|ЉЊ} } transliteration.gajica.3.0 = { dž } transliteration.gajica.3.1 = { string = џ } transliteration.gajica.4.0 = { D[žŽ] } diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-BA.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-BA.ini index c0b7ae63940..6aef2efeb3f 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-BA.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-BA.ini @@ -6,11 +6,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.2 -date = 2020-06-30 +version = 1.3 +date = 2023-04-31 name.local = srpski name.english = Serbian name.babel = serbian-latin-bosniaherzegovina serbian-latn-ba @@ -18,8 +19,6 @@ tag.bcp47 = sr-Latn-BA language.tag.bcp47 = sr tag.opentype = SRB region.local = Bosna i Hercegovina -region.english = Bosnia & Herzegovina -region.tag.bcp47 = BA script.name = Latin script.tag.bcp47 = Latn script.tag.opentype = latn @@ -35,8 +34,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadržaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -44,11 +43,11 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi takođe +page = strana +see = vidi +also = vidi takođe proof = Dokaz -glossary = Glossary +glossary = Rečnik [captions.licr] preface = Predgovor @@ -58,8 +57,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadr\v zaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -67,14 +66,14 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi tako\dj e +page = strana +see = vidi +also = vidi tako\dj e proof = Dokaz -glossary = Glossary +glossary = Re\v cnik [date.gregorian] -date.long = [d].[ ][MMMM] [y] +date.long = [d]. [MMMM] [y]. date.short = [d].[M].[yy]. months.wide.1 = januar months.wide.2 = februar @@ -100,20 +99,20 @@ months.narrow.9 = s months.narrow.10 = o months.narrow.11 = n months.narrow.12 = d -days.wide.mon = ponedeljak +days.wide.mon = ponedjeljak days.wide.tue = utorak days.wide.wed = srijeda days.wide.thu = četvrtak days.wide.fri = petak days.wide.sat = subota days.wide.sun = nedjelja -days.abbreviated.mon = pon. -days.abbreviated.tue = ut. -days.abbreviated.wed = sr. -days.abbreviated.thu = čet. -days.abbreviated.fri = pet. -days.abbreviated.sat = sub. -days.abbreviated.sun = ned. +days.abbreviated.mon = pon +days.abbreviated.tue = uto +days.abbreviated.wed = sri +days.abbreviated.thu = čet +days.abbreviated.fri = pet +days.abbreviated.sat = sub +days.abbreviated.sun = ned days.narrow.mon = p days.narrow.tue = u days.narrow.wed = s @@ -121,10 +120,10 @@ days.narrow.thu = č days.narrow.fri = p days.narrow.sat = s days.narrow.sun = n -dayPeriods.abbreviated.am = prije podne -dayPeriods.abbreviated.pm = po podne -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p +dayPeriods.abbreviated.am = prije podne +dayPeriods.abbreviated.pm = po podne +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM dayPeriods.wide.am = prije podne dayPeriods.wide.pm = po podne @@ -147,10 +146,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbian lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -160,11 +159,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ +delimiters.quotes = „“’’ auxiliary = [å q w x y] exemplarCharacters = [a b c č ć d {dž} đ e f g h i j k l {lj} m n {nj} o p r s š t u v z ž] index = [A B C Č Ć D {DŽ} E F G H I J K L {LJ} M N {NJ} O P Q R S Š T U V W X Y Z Ž] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-ME.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-ME.ini index d02aa5898ad..f034f4bbfee 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-ME.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-ME.ini @@ -6,13 +6,14 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.3 -date = 2021-09-29 +version = 1.4 +date = 2023-04-31 name.local = srpski -name.english = Serbian +name.english = Montenegrin name.babel = serbian-latin-montenegro serbian-latn-me tag.bcp47 = sr-Latn-ME language.tag.bcp47 = sr @@ -35,8 +36,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadržaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -44,11 +45,11 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi takođe +page = strana +see = vidi +also = vidi takođe proof = Dokaz -glossary = Glossary +glossary = Rečnik [captions.licr] preface = Predgovor @@ -58,8 +59,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadr\v zaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -67,14 +68,14 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi tako\dj e +page = strana +see = vidi +also = vidi tako\dj e proof = Dokaz -glossary = Glossary +glossary = Re\v cnik [date.gregorian] -date.long = [d].[ ][MMMM] [y] +date.long = [d]. [MMMM] [y]. date.short = [d].[M].[yy]. months.wide.1 = januar months.wide.2 = februar @@ -107,13 +108,13 @@ days.wide.thu = četvrtak days.wide.fri = petak days.wide.sat = subota days.wide.sun = nedjelja -days.abbreviated.mon = pon. -days.abbreviated.tue = ut. -days.abbreviated.wed = sr. -days.abbreviated.thu = čet. -days.abbreviated.fri = pet. -days.abbreviated.sat = sub. -days.abbreviated.sun = ned. +days.abbreviated.mon = pon +days.abbreviated.tue = uto +days.abbreviated.wed = sre +days.abbreviated.thu = čet +days.abbreviated.fri = pet +days.abbreviated.sat = sub +days.abbreviated.sun = ned days.narrow.mon = p days.narrow.tue = u days.narrow.wed = s @@ -121,10 +122,10 @@ days.narrow.thu = č days.narrow.fri = p days.narrow.sat = s days.narrow.sun = n -dayPeriods.abbreviated.am = prije podne -dayPeriods.abbreviated.pm = po podne -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p +dayPeriods.abbreviated.am = prije podne +dayPeriods.abbreviated.pm = po podne +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM dayPeriods.wide.am = prije podne dayPeriods.wide.pm = po podne @@ -147,10 +148,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbian lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -160,11 +161,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ +delimiters.quotes = „“’’ auxiliary = [å q w x y] exemplarCharacters = [a b c č ć d {dž} đ e f g h i j k l {lj} m n {nj} o p r s š t u v z ž] index = [A B C Č Ć D {DŽ} E F G H I J K L {LJ} M N {NJ} O P Q R S Š T U V W X Y Z Ž] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-XK.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-XK.ini index 202e40de458..fe89ff3e12b 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-XK.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-XK.ini @@ -6,11 +6,12 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.3 -date = 2021-09-29 +version = 1.4 +date = 2023-04-31 name.local = srpski name.english = Serbian name.babel = serbian-latin-kosovo serbian-latn-xk @@ -18,8 +19,6 @@ tag.bcp47 = sr-Latn-XK language.tag.bcp47 = sr tag.opentype = SRB region.local = Kosovo -region.english = Kosovo -region.tag.bcp47 = XK script.name = Latin script.tag.bcp47 = Latn script.tag.opentype = latn @@ -35,8 +34,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadržaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -44,11 +43,11 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi takođe +page = strana +see = vidi +also = vidi takođe proof = Dokaz -glossary = Glossary +glossary = Rečnik [captions.licr] preface = Predgovor @@ -58,8 +57,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadr\v zaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -67,14 +66,14 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi tako\dj e +page = strana +see = vidi +also = vidi tako\dj e proof = Dokaz -glossary = Glossary +glossary = Re\v cnik [date.gregorian] -date.long = [d].[ ][MMMM] [y] +date.long = [d]. [MMMM] [y]. date.short = [d].[M].[yy]. months.wide.1 = januar months.wide.2 = februar @@ -107,13 +106,13 @@ days.wide.thu = četvrtak days.wide.fri = petak days.wide.sat = subota days.wide.sun = nedelja -days.abbreviated.mon = pon. -days.abbreviated.tue = ut. -days.abbreviated.wed = sr. -days.abbreviated.thu = čet. -days.abbreviated.fri = pet. -days.abbreviated.sat = sub. -days.abbreviated.sun = ned. +days.abbreviated.mon = pon +days.abbreviated.tue = uto +days.abbreviated.wed = sre +days.abbreviated.thu = čet +days.abbreviated.fri = pet +days.abbreviated.sat = sub +days.abbreviated.sun = ned days.narrow.mon = p days.narrow.tue = u days.narrow.wed = s @@ -123,10 +122,10 @@ days.narrow.sat = s days.narrow.sun = n dayPeriods.abbreviated.am = pre podne dayPeriods.abbreviated.pm = po podne -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p -dayPeriods.wide.am = pre podne -dayPeriods.wide.pm = po podne +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM [date.gregorian.licr] months.wide.1 = januar @@ -147,10 +146,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbian lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -160,11 +159,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ +delimiters.quotes = „“’’ auxiliary = [å q w x y] exemplarCharacters = [a b c č ć d {dž} đ e f g h i j k l {lj} m n {nj} o p r s š t u v z ž] index = [A B C Č Ć D {DŽ} E F G H I J K L {LJ} M N {NJ} O P Q R S Š T U V W X Y Z Ž] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-ijekavsk.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-ijekavsk.ini new file mode 100644 index 00000000000..7195219d1e0 --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn-ijekavsk.ini @@ -0,0 +1,186 @@ +; This file is part of babel. For further details see: +; https://www.ctan.org/pkg/babel +; Data has been collected mainly from the following sources: +; * babel language styles (license LPPL): +; https://www.ctan.org/pkg/babel-contrib +; * polyglossia language styles (license LPPL) +; https://www.ctan.org/pkg/polyglossia +; * Common Locale Data Repository (license Unicode): +; http://cldr.unicode.org/ +; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. + +[identification] +charset = utf8 +version = 1.1 +date = 2023-04-31 +name.local = srpski +name.english = Serbian +name.babel = serbian-latin-ijekavsk serbian-latn-ijekavsk serbian.ijekav +name.polyglossia = serbian +tag.bcp47 = sr-Latn-ijekavsk +language.tag.bcp47 = sr +tag.bcp47.likely = sr-Latn-RS-ijekavsk +tag.opentype = SRB +script.name = Latin +script.tag.bcp47 = Latn +script.tag.opentype = latn +level = 1 +encodings = T1 OT1 LY1 +derivate = no + +[captions] +preface = Predgovor +ref = Literatura +abstract = Sažetak +bib = Bibliografija +chapter = Glava +appendix = Dodatak +contents = Sadržaj +listfigure = Spisak slika +listtable = Spisak tabela +index = Indeks +figure = Slika +table = Tabela +part = Dio +encl = Prilozi +cc = Kopije +headto = Prima +page = strana +see = vidi +also = vidi takođe +proof = Dokaz +glossary = Rječnik + +[captions.licr] +preface = Predgovor +ref = Literatura +abstract = Sa\v zetak +bib = Bibliografija +chapter = Glava +appendix = Dodatak +contents = Sadr\v zaj +listfigure = Spisak slika +listtable = Spisak tabela +index = Indeks +figure = Slika +table = Tabela +part = Dio +encl = Prilozi +cc = Kopije +headto = Prima +page = strana +see = vidi +also = vidi tako\dj e +proof = Dokaz +glossary = Rje\v cnik + +[date.gregorian] +date.long = [d]. [MMMM] [y]. +date.short = [d].[M].[yy]. +months.wide.1 = januar +months.wide.2 = februar +months.wide.3 = mart +months.wide.4 = april +months.wide.5 = maj +months.wide.6 = jun +months.wide.7 = jul +months.wide.8 = avgust +months.wide.9 = septembar +months.wide.10 = oktobar +months.wide.11 = novembar +months.wide.12 = decembar +months.narrow.1 = j +months.narrow.2 = f +months.narrow.3 = m +months.narrow.4 = a +months.narrow.5 = m +months.narrow.6 = j +months.narrow.7 = j +months.narrow.8 = a +months.narrow.9 = s +months.narrow.10 = o +months.narrow.11 = n +months.narrow.12 = d +days.wide.mon = ponedeljak +days.wide.tue = utorak +days.wide.wed = sreda +days.wide.thu = četvrtak +days.wide.fri = petak +days.wide.sat = subota +days.wide.sun = nedelja +days.abbreviated.mon = pon +days.abbreviated.tue = uto +days.abbreviated.wed = sre +days.abbreviated.thu = čet +days.abbreviated.fri = pet +days.abbreviated.sat = sub +days.abbreviated.sun = ned +days.narrow.mon = p +days.narrow.tue = u +days.narrow.wed = s +days.narrow.thu = č +days.narrow.fri = p +days.narrow.sat = s +days.narrow.sun = n +dayPeriods.abbreviated.am = prije podne +dayPeriods.abbreviated.pm = po podne +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM + +[date.gregorian.licr] +months.wide.1 = januar +months.wide.2 = februar +months.wide.3 = mart +months.wide.4 = april +months.wide.5 = maj +months.wide.6 = jun +months.wide.7 = jul +months.wide.8 = avgust +months.wide.9 = septembar +months.wide.10 = oktobar +months.wide.11 = novembar +months.wide.12 = decembar + +[time.gregorian] +time.medium = [HH]:[mm]:[ss] +time.short = [HH]:[mm] + +[typography] +frenchspacing = yes +hyphenrules = serbian +lefthyphenmin = 2 +righthyphenmin = 2 +hyphenchar = +prehyphenchar = +posthyphenchar = +exhyphenchar = +preexhyphenchar = +postexhyphenchar = +hyphenationmin = + +[characters] +delimiters.quotes = „“’’ +auxiliary = [å q w x y] +exemplarCharacters = [a b c č ć d {dž} đ e f g h i j k l {lj} m n {nj} o p r s š t u v z ž] +index = [A B C Č Ć D {DŽ} E F G H I J K L {LJ} M N {NJ} O P Q R S Š T U V W X Y Z Ž] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] + +[numbers] +defaultNumberingSystem = latn +minimumGroupingDigits = 1 +decimal = , +exponential = E +group = . +infinity = ∞ +list = ; +minusSign = - +nan = NaN +perMille = ‰ +percentSign = % +plusSign = + +superscriptingExponent = × + +[counters] diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn.ini index e62ded96286..a331b98eb28 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Latn.ini @@ -6,16 +6,18 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.3 -date = 2021-09-29 +version = 1.4 +date = 2023-04-31 name.local = srpski name.english = Serbian -name.babel = serbian-latin serbian-latn +name.babel = serbian-latin serbian-latn serbian tag.bcp47 = sr-Latn language.tag.bcp47 = sr +tag.bcp47.likely = sr-Latn-RS tag.opentype = SRB script.name = Latin script.tag.bcp47 = Latn @@ -32,8 +34,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadržaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -41,11 +43,11 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi takođe +page = strana +see = vidi +also = vidi takođe proof = Dokaz -glossary = Glossary +glossary = Rečnik [captions.licr] preface = Predgovor @@ -55,8 +57,8 @@ bib = Bibliografija chapter = Glava appendix = Dodatak contents = Sadr\v zaj -listfigure = Slike -listtable = Tabele +listfigure = Spisak slika +listtable = Spisak tabela index = Indeks figure = Slika table = Tabela @@ -64,14 +66,14 @@ part = Deo encl = Prilozi cc = Kopije headto = Prima -page = Strana -see = Vidi -also = Vidi tako\dj e +page = strana +see = vidi +also = vidi tako\dj e proof = Dokaz -glossary = Glossary +glossary = Re\v cnik [date.gregorian] -date.long = [d].[ ][MMMM] [y] +date.long = [d]. [MMMM] [y]. date.short = [d].[M].[yy]. months.wide.1 = januar months.wide.2 = februar @@ -120,10 +122,10 @@ days.narrow.sat = s days.narrow.sun = n dayPeriods.abbreviated.am = pre podne dayPeriods.abbreviated.pm = po podne -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p -dayPeriods.wide.am = pre podne -dayPeriods.wide.pm = po podne +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM [date.gregorian.licr] months.wide.1 = januar @@ -144,10 +146,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbian lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -157,11 +159,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ +delimiters.quotes = „“’’ auxiliary = [å q w x y] exemplarCharacters = [a b c č ć d {dž} đ e f g h i j k l {lj} m n {nj} o p r s š t u v z ž] index = [A B C Č Ć D {DŽ} E F G H I J K L {LJ} M N {NJ} O P Q R S Š T U V W X Y Z Ž] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-ijekavsk.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-ijekavsk.ini new file mode 100644 index 00000000000..84fc8ac03c5 --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-ijekavsk.ini @@ -0,0 +1,200 @@ +; This file is part of babel. For further details see: +; https://www.ctan.org/pkg/babel +; Data has been collected mainly from the following sources: +; * babel language styles (license LPPL): +; https://www.ctan.org/pkg/babel-contrib +; * Common Locale Data Repository (license Unicode): +; http://cldr.unicode.org/ +; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. + +[identification] +charset = utf8 +version = 1.1 +date = 2023-04-31 +name.local = српски +name.english = Serbian +name.babel = serbian-ijekavsk serbianc.ijekav +name.polyglossia = serbian +tag.bcp47 = sr-ijekavsk +language.tag.bcp47 = sr +variant.tag.bcp47 = ijekavsk +tag.bcp47.likely = sr-Cyrl-RS-ijekavsk +tag.opentype = SRB +script.name = Cyrillic +script.tag.bcp47 = Cyrl +script.tag.opentype = cyrl +level = 1 +encodings = T2A +derivate = no + +[captions] +preface = Предговор +ref = Литература +abstract = Сажетак +bib = Библиографиjа +chapter = Глава +appendix = Додатак +contents = Садржаj +listfigure = Списак слика +listtable = Списак табела +index = Индекс +figure = Слика +table = Табела +part = Дио +encl = Прилози +cc = Копиjе +headto = Прима +page = страна +see = види +also = види такође +proof = Доказ +glossary = Рјечник + +[captions.licr] +preface = \CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr +ref = \CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra +abstract = \CYRS\cyra\cyrzh\cyre\cyrt\cyra\cyrk +bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri\cyrje\cyra +chapter = \CYRG\cyrl\cyra\cyrv\cyra +appendix = \CYRD\cyro\cyrd\cyra\cyrt\cyra\cyrk +contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra\cyrje +listfigure = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrs\cyrl\cyri\cyrk\cyra +listtable = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrt\cyra\cyrb\cyre\cyrl\cyra +index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs +figure = \CYRS\cyrl\cyri\cyrk\cyra +table = \CYRT\cyra\cyrb\cyre\cyrl\cyra +part = \CYRD\cyri\cyro +encl = \CYRP\cyrr\cyri\cyrl\cyro\cyrz\cyri +cc = \CYRK\cyro\cyrp\cyri\cyrje\cyre +headto = \CYRP\cyrr\cyri\cyrm\cyra +page = \cyrs\cyrt\cyrr\cyra\cyrn\cyra +see = \cyrv\cyri\cyrd\cyri +also = \cyrv\cyri\cyrd\cyri\ \cyrt\cyra\cyrk\cyro\cyrdje\cyre +proof = \CYRD\cyro\cyrk\cyra\cyrz +glossary = \CYRR\cyrje\cyre\cyrch\cyrn\cyri\cyrk + +[date.gregorian] +date.long = [d].[ ][MMMM] [y]. +date.short = [d].[M].[yy]. +months.wide.1 = јануар +months.wide.2 = фебруар +months.wide.3 = март +months.wide.4 = април +months.wide.5 = мај +months.wide.6 = јун +months.wide.7 = јул +months.wide.8 = август +months.wide.9 = септембар +months.wide.10 = октобар +months.wide.11 = новембар +months.wide.12 = децембар +months.narrow.1 = ј +months.narrow.2 = ф +months.narrow.3 = м +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 = среда +days.wide.thu = четвртак +days.wide.fri = петак +days.wide.sat = субота +days.wide.sun = недеља +days.abbreviated.mon = пон +days.abbreviated.tue = уто +days.abbreviated.wed = сре +days.abbreviated.thu = чет +days.abbreviated.fri = пет +days.abbreviated.sat = суб +days.abbreviated.sun = нед +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 = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM + +[date.gregorian.licr] +months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr +months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr +months.wide.3 = \cyrm\cyra\cyrr\cyrt +months.wide.4 = \cyra\cyrp\cyrr\cyri\cyrl +months.wide.5 = \cyrm\cyra\cyrje +months.wide.6 = \cyrje\cyru\cyrn +months.wide.7 = \cyrje\cyru\cyrl +months.wide.8 = \cyra\cyrv\cyrg\cyru\cyrs\cyrt +months.wide.9 = \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr +months.wide.10 = \cyro\cyrk\cyrt\cyro\cyrb\cyra\cyrr +months.wide.11 = \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr +months.wide.12 = \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr + +[time.gregorian] +time.medium = [HH]:[mm]:[ss] +time.short = [HH]:[mm] + +[typography] +frenchspacing = yes +hyphenrules = serbianc +lefthyphenmin = 2 +righthyphenmin = 2 +hyphenchar = +prehyphenchar = +posthyphenchar = +exhyphenchar = +preexhyphenchar = +postexhyphenchar = +hyphenationmin = + +[characters] +delimiters.quotes = „“’’ +auxiliary = [{а\u0302} {е\u0302} {и\u0302} {о\u0302} {у\u0302}] +exemplarCharacters = [а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш] +index = [А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] + +[numbers] +defaultNumberingSystem = latn +minimumGroupingDigits = 1 +decimal = , +exponential = E +group = . +infinity = ∞ +list = ; +minusSign = - +nan = NaN +perMille = ‰ +percentSign = % +plusSign = + +superscriptingExponent = × + +[counters] +lower = а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш +upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш + +[transforms.prehyphenation] +; With implicit remove's, in 1-4 as x.2 +transliteration.gajica.1.0 = { ([ln])j } +transliteration.gajica.1.1 = { string = {1|ln|љњ} } +transliteration.gajica.2.0 = { ([LN])[jJ] } +transliteration.gajica.2.1 = { string = {1|LN|ЉЊ} } +transliteration.gajica.3.0 = { dž } +transliteration.gajica.3.1 = { string = џ } +transliteration.gajica.4.0 = { D[žŽ] } +transliteration.gajica.4.1 = { string = Џ } +transliteration.gajica.5.0 = { ([abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ]) } +transliteration.gajica.5.1 = { string = {1|abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ|абвгдђежзијклмнопрстћуфхцчшАБВГДЂЕЖЗИЈКЛМНОПРСТЋУФХЦЧШ} } diff --git a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini index 14981dfa239..5a7ccbedd23 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini @@ -6,14 +6,15 @@ ; * Common Locale Data Repository (license Unicode): ; http://cldr.unicode.org/ ; http://unicode.org/copyright.html +; * With contributions by Uroš Stefanović. [identification] charset = utf8 -version = 1.5 -date = 2022-05-14 +version = 1.6 +date = 2023-04-31 name.local = српски name.english = Serbian -name.babel = serbian +name.babel = serbianc serbian name.polyglossia = serbian tag.bcp47 = sr language.tag.bcp47 = sr @@ -29,14 +30,14 @@ derivate = no [captions] preface = Предговор ref = Литература -abstract = Абстракт +abstract = Сажетак bib = Библиографиjа chapter = Глава appendix = Додатак contents = Садржаj -listfigure = Листаслика -listtable = Листатабела -index = Индекспоjмова +listfigure = Списак слика +listtable = Списак табела +index = Индекс figure = Слика table = Табела part = Део @@ -52,41 +53,41 @@ glossary = Речник [captions.licr] preface = \CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr ref = \CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra -abstract = \CYRA\cyrb\cyrs\cyrt\cyrr\cyra\cyrk\cyrt -bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri j\cyra +abstract = \CYRS\cyra\cyrzh\cyre\cyrt\cyra\cyrk +bib = \CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri\cyrje\cyra chapter = \CYRG\cyrl\cyra\cyrv\cyra appendix = \CYRD\cyro\cyrd\cyra\cyrt\cyra\cyrk -contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra j -listfigure = \CYRL\cyri\cyrs\cyrt\cyra\cyrs\cyrl\cyri\cyrk\cyra -listtable = \CYRL\cyri\cyrs\cyrt\cyra\cyrt\cyra\cyrb\cyre\cyrl\cyra -index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs\cyrp\cyro j\cyrm\cyro\cyrv\cyra +contents = \CYRS\cyra\cyrd\cyrr\cyrzh\cyra\cyrje +listfigure = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrs\cyrl\cyri\cyrk\cyra +listtable = \CYRS\cyrp\cyri\cyrs\cyra\cyrk\ \cyrt\cyra\cyrb\cyre\cyrl\cyra +index = \CYRI\cyrn\cyrd\cyre\cyrk\cyrs figure = \CYRS\cyrl\cyri\cyrk\cyra table = \CYRT\cyra\cyrb\cyre\cyrl\cyra part = \CYRD\cyre\cyro encl = \CYRP\cyrr\cyri\cyrl\cyro\cyrz\cyri -cc = \CYRK\cyro\cyrp\cyri j\cyre +cc = \CYRK\cyro\cyrp\cyri\cyrje\cyre headto = \CYRP\cyrr\cyri\cyrm\cyra page = \cyrs\cyrt\cyrr\cyra\cyrn\cyra see = \cyrv\cyri\cyrd\cyri -also = \cyrv\cyri\cyrd\cyri\cyrt\cyra\cyrk\cyro\cyrdje\cyre +also = \cyrv\cyri\cyrd\cyri\ \cyrt\cyra\cyrk\cyro\cyrdje\cyre proof = \CYRD\cyro\cyrk\cyra\cyrz glossary = \CYRR\cyre\cyrch\cyrn\cyri\cyrk [date.gregorian.Genitive] date.long = [d].[ ][MMMM] [y]. date.short = [d].[M].[yy]. -months.wide.1 = јануара -months.wide.2 = фебруара -months.wide.3 = марта -months.wide.4 = априла -months.wide.5 = маја -months.wide.6 = јуна -months.wide.7 = јула -months.wide.8 = августа -months.wide.9 = септембра -months.wide.10 = октобра -months.wide.11 = новембра -months.wide.12 = децембра +months.wide.1 = јануара +months.wide.2 = фебруара +months.wide.3 = марта +months.wide.4 = априла +months.wide.5 = маја +months.wide.6 = јуна +months.wide.7 = јула +months.wide.8 = августа +months.wide.9 = септембра +months.wide.10 = октобра +months.wide.11 = новембра +months.wide.12 = децембра [date.gregorian] date.long = [d].[ ][MMMM] [y]. @@ -138,21 +139,21 @@ days.narrow.sat = с days.narrow.sun = н dayPeriods.abbreviated.am = пре подне dayPeriods.abbreviated.pm = по подне -dayPeriods.narrow.am = a -dayPeriods.narrow.pm = p -dayPeriods.wide.am = пре подне -dayPeriods.wide.pm = по подне +dayPeriods.narrow.am = AM +dayPeriods.narrow.pm = PM +dayPeriods.wide.am = AM +dayPeriods.wide.pm = PM [date.gregorian.Genitive.licr] -months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr\cyra -months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr\cyra -months.wide.3 = \cyrm\cyra\cyrr\cyrt\cyra -months.wide.4 = \cyra\cyrp\cyrr\cyri\cyrl\cyra -months.wide.5 = \cyrm\cyra\cyrje\cyra -months.wide.6 = \cyrje\cyru\cyrn\cyra -months.wide.7 = \cyrje\cyru\cyrl\cyra -months.wide.8 = \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra -months.wide.9 = \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyrr\cyra +months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr\cyra +months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr\cyra +months.wide.3 = \cyrm\cyra\cyrr\cyrt\cyra +months.wide.4 = \cyra\cyrp\cyrr\cyri\cyrl\cyra +months.wide.5 = \cyrm\cyra\cyrje\cyra +months.wide.6 = \cyrje\cyru\cyrn\cyra +months.wide.7 = \cyrje\cyru\cyrl\cyra +months.wide.8 = \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra +months.wide.9 = \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyrr\cyra months.wide.10 = \cyro\cyrk\cyrt\cyro\cyrb\cyrr\cyra months.wide.11 = \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyrr\cyra months.wide.12 = \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyrr\cyra @@ -176,10 +177,10 @@ time.medium = [HH]:[mm]:[ss] time.short = [HH]:[mm] [typography] -frenchspacing = no +frenchspacing = yes hyphenrules = serbianc lefthyphenmin = 2 -righthyphenmin = 3 +righthyphenmin = 2 hyphenchar = prehyphenchar = posthyphenchar = @@ -189,11 +190,11 @@ postexhyphenchar = hyphenationmin = [characters] -delimiters.quotes = „“‘‘ -auxiliary = [ё й щ ъ ы ь э ю я] +delimiters.quotes = „“’’ +auxiliary = [{а\u0302} {е\u0302} {и\u0302} {о\u0302} {у\u0302}] exemplarCharacters = [а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш] index = [А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш] -punctuation = [\\- ‐ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] +punctuation = [\\- ‐ ‑ – , ; \\: ! ? . … ‘ ‚ “ „ ( ) \\[ \\] \\{ \\} * #] [numbers] defaultNumberingSystem = latn @@ -219,7 +220,7 @@ upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У transliteration.gajica.1.0 = { ([ln])j } transliteration.gajica.1.1 = { string = {1|ln|љњ} } transliteration.gajica.2.0 = { ([LN])[jJ] } -transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} } +transliteration.gajica.2.1 = { string = {1|LN|ЉЊ} } transliteration.gajica.3.0 = { dž } transliteration.gajica.3.1 = { string = џ } transliteration.gajica.4.0 = { D[žŽ] } diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def index e27837e44ba..fd06001fb0b 100644 --- a/Master/texmf-dist/tex/generic/babel/luababel.def +++ b/Master/texmf-dist/tex/generic/babel/luababel.def @@ -1515,7 +1515,7 @@ end \else \let\bbl@ams@lap\llap \fi - \ExplSyntaxOn + \ExplSyntaxOn % Required by \bbl@sreplace with \intertext@ \bbl@sreplace\intertext@{\normalbaselines}% {\normalbaselines \ifx\bbl@eqnodir\relax\else\bbl@pardir\@ne\bbl@eqnodir\fi}% diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf index fd843ee1062..5fd7a3c3c83 100644 --- a/Master/texmf-dist/tex/generic/babel/nil.ldf +++ b/Master/texmf-dist/tex/generic/babel/nil.ldf @@ -33,7 +33,7 @@ %% extension |.ins|) which are part of the distribution. %% -\ProvidesLanguage{nil}[2023/04/18 3.88 Nil language] +\ProvidesLanguage{nil}[2023/05/11 v3.89 Nil language] \LdfInit{nil}{datenil} \ifx\l@nil\@undefined \newlanguage\l@nil |