diff options
Diffstat (limited to 'macros/latex/required/babel/base')
-rw-r--r-- | macros/latex/required/babel/base/README.md | 27 | ||||
-rw-r--r-- | macros/latex/required/babel/base/babel.dtx | 205 | ||||
-rw-r--r-- | macros/latex/required/babel/base/babel.ins | 2 | ||||
-rw-r--r-- | macros/latex/required/babel/base/babel.pdf | bin | 885961 -> 885304 bytes | |||
-rw-r--r-- | macros/latex/required/babel/base/bbcompat.dtx | 2 |
5 files changed, 123 insertions, 113 deletions
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md index 173be3799d..c431f70b1e 100644 --- a/macros/latex/required/babel/base/README.md +++ b/macros/latex/required/babel/base/README.md @@ -1,6 +1,4 @@ -## Babel 3.81 - -**Development** +## Babel 3.82 This package manages culturally-determined typographical (and other) rules, and hyphenation patterns for a wide range of languages. Many @@ -10,9 +8,9 @@ is a set of ini files for about 250 languages. The latest stable version is available on <https://ctan.org/pkg/babel>. -Changes in version 3.81 are described in: +Changes in version 3.82 are described in: -https://latex3.github.io/babel/news/whats-new-in-babel-3.81.html +https://latex3.github.io/babel/news/whats-new-in-babel-3.82.html Apart from the manual, you can find information on some aspects of babel at: @@ -48,14 +46,17 @@ respective authors. ### Summary of latest changes ``` -3.81 2022-10-04 - * Tibetan line breaking and justification (lines padded with - trailing tshegs). - * New option 'letters' for 'onchar'. - * Conceal 'fontspec' warnings about unknown languages and - scripts with \babelfont. - * More updates to the CLDR 41: Burmese, Dutch, Kwasio, Malay, - Marathi, Mazanderani, Nepali, Norwegian, Norwegian Nynorsk. +3.82 2022-10-23 + * Predefined transforms can be activated after the first + \babelprovide (lua). + * Tibetan for XeTeX. + * More updates to the CLDR 41: Albanian, Kinyarwanda, Maltese, + Odia, Ossetic, Pashto, Polish, Portuguese, Punjabi, Romanian, + Romansh, Russian, Sakha, Sinhala, Slovak, Slovenian, Somali. + * Fixes: + - \MakeXXXcase: a (hopefully) better hack for #189 (see + also #193). + - Thai (with xetex): #182 wasn’t quite fixed. ``` ### Previous changes diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx index 3d8eddc505..44ed19a8f2 100644 --- a/macros/latex/required/babel/base/babel.dtx +++ b/macros/latex/required/babel/base/babel.dtx @@ -32,7 +32,7 @@ % % \iffalse %<*filedriver> -\ProvidesFile{babel.dtx}[2022/10/04 v3.81 The Babel package] +\ProvidesFile{babel.dtx}[2022/10/23 v3.82 The Babel package] \documentclass{ltxdoc} \GetFileInfo{babel.dtx} \usepackage{fontspec} @@ -1232,18 +1232,6 @@ are incompatibilities with other packages. written to the log file.\footnote{You can use alternatively the package \textsf{silence}.} -\Describe{strings=}{\texttt{generic} $\string|$ \texttt{unicode} -$\string|$ \texttt{encoded} $\string|$ \meta{label} $\string|$ -\meta{font encoding}} Selects the encoding of strings in languages -supporting this feature. Predefined labels are |generic| (for -traditional \TeX, LICR and ASCII strings), |unicode| (for engines like -\xetex{} and \luatex) and |encoded| (for special cases requiring mixed -encodings). Other allowed values are font encoding codes (|T1|, |T2A|, -|LGR|, |L7X|...), but only in languages supporting them. Be aware with -|encoded| captions are protected, but they work in |\MakeUppercase| -and the like (this feature misuses some internal \LaTeX\ tools, so use -it only as a last resort). - \Describe{hyphenmap=}{\texttt{off} $\string|$ \texttt{first} $\string|$ \texttt{select} $\string|$ \texttt{other} $\string|$ \texttt{other*}} @@ -2503,11 +2491,11 @@ If the language has been loaded as an argument in |\documentclass| or Unicode engines load the UTF-8 variants, while 8-bit engines load the LICR (ie, with macros like |\'| or |\ss|) ones. -\New{3.23} It may be used without a value. In such a case, the |ini| -file set in the corresponding |babel-<language>.tex| (where -|<language>| is the last argument in |\babelprovide|) is imported. See -the list of recognized languages above. So, the previous example can -be written: +\New{3.23} It may be used without a value, and that is often the +recommended option. In such a case, the |ini| file set in the +corresponding |babel-<language>.tex| (where |<language>| is the last +argument in |\babelprovide|) is imported. See the list of recognized +languages above. So, the previous example is best written as: \begin{verbatim} \babelprovide[_import_]{hungarian} \end{verbatim} @@ -2616,8 +2604,7 @@ it acts on characters, not on spaces). There are currently two ‘actions’, which can be used at the same time (separated by a space): with |ids| the |\language| and the |\localeid| are set to the values of this locale; with |fonts|, the fonts are changed to those of this -locale (as set with |\babelfont|). This option is not compatible with -|mapfont|. Characters can be added or modified with +locale (as set with |\babelfont|). Characters can be added or modified with |\babelcharproperty|. \New{3.81} Option |letters| restricts the ‘actions’ to letters, in the @@ -2665,16 +2652,6 @@ It’s still somewhat experimental. Again, there is an explanation in the \Describe{linebreaking=}{} \New{3.59} Just a synonymous for \texttt{justification}. -\Describe{mapfont=}{\texttt{direction}} -Assigns the font for the writing direction of this language (only with -|bidi=basic|). Whenever possible, instead of this option use |onchar|, -based on the script, which usually makes more sense. More precisely, -what |mapfont=direction| means is, ‘when a character has the same -direction as the script for the “provided” language, then change its -font to that set for this language’. There are 3 directions, following -the bidi Unicode algorithm, namely, Arabic-like, Hebrew-like and left -to right. So, there should be at most 3 directives of this kind. - \begin{note} (1) If you need shorthands, you can define them with |\useshorthands| and |\defineshorthand| as described above. (2) Captions and |\today| @@ -5176,8 +5153,8 @@ help from Bernd Raichle, for which I am grateful. % \section{Tools} % % \begin{macrocode} -%<<version=3.81>> -%<<date=2022/10/04>> +%<<version=3.82>> +%<<date=2022/10/23>> % \end{macrocode} % % \textbf{Do not use the following macros in \texttt{ldf} files. They @@ -5202,6 +5179,10 @@ help from Bernd Raichle, for which I am grateful. {\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} @@ -5340,8 +5321,8 @@ help from Bernd Raichle, for which I am grateful. \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{#1}}{#3}{#2}}} +\def\bbl@ifset#1#2#3{% + \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{\@nameuse{#1}}}{#3}{#2}}} % \end{macrocode} % \end{macro} % @@ -7054,7 +7035,7 @@ help from Bernd Raichle, for which I am grateful. \def\bbl@redefine@long#1{% \edef\bbl@tempa{\bbl@stripslash#1}% \expandafter\let\csname org@\bbl@tempa\endcsname#1% - \expandafter\long\expandafter\def\csname\bbl@tempa\endcsname} + \long\expandafter\def\csname\bbl@tempa\endcsname} \@onlypreamble\bbl@redefine@long % \end{macrocode} % @@ -7631,7 +7612,7 @@ help from Bernd Raichle, for which I am grateful. \bbl@csarg\edef{normal@#2}{% \noexpand\active@prefix\noexpand#1% \expandafter\noexpand\csname normal@char#2\endcsname}% - \expandafter\let\expandafter#1\csname bbl@normal@#2\endcsname + \bbl@ncarg\let#1{bbl@normal@#2}% % \end{macrocode} % % The next level of the code checks whether a user has defined a @@ -8018,10 +7999,8 @@ help from Bernd Raichle, for which I am grateful. \@notshorthand{#2}% \else \initiate@active@char{#2}% - \expandafter\let\csname active@char\string#2\expandafter\endcsname - \csname active@char\string#1\endcsname - \expandafter\let\csname normal@char\string#2\expandafter\endcsname - \csname normal@char\string#1\endcsname + \bbl@ccarg\let{active@char\string#2}{active@char\string#1}% + \bbl@ccarg\let{normal@char\string#2}{normal@char\string#1}% \bbl@activate{#2}% \fi \fi}% @@ -8714,22 +8693,46 @@ help from Bernd Raichle, for which I am grateful. % A temporary hack: \ifx\BabelCaseHack\@undefined \AtBeginDocument{% - \bbl@exp{% - \\\in@{\string\@uclclist}% - {\expandafter\meaning\csname MakeUppercase \endcsname}}% + \bbl@xin@{\string\@uclclist}% + {\bbl@carg\meaning{MakeUppercase }}% \ifin@\else - \expandafter\let\expandafter\bbl@newuc\csname MakeUppercase \endcsname + \chardef\bbl@ulflag\z@ + \bbl@ncarg\let\bbl@newuc{MakeUppercase }% \protected\@namedef{MakeUppercase }#1{{% - \def\reserved@a##1##2{\let##1##2\reserved@a}% - \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% - \protected@edef\reserved@a{\bbl@newuc{#1}}\reserved@a}}% - \expandafter\let\expandafter\bbl@newlc\csname MakeLowercase \endcsname + \chardef\bbl@ulflag\@ne + \ifx\bbl@uclc\@undefined + \bbl@newuc{#1}% + \else + \bbl@ifunset{\languagename @bbl@uclc}% + {\bbl@newuc{#1}}% + {\def\reserved@a##1##2{\let##1##2\reserved@a}% + \bbl@uclc\reserved@a\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{\bbl@newuc{#1}}% Pre-expand + \reserved@a}% + \fi}}% + \bbl@ncarg\let\bbl@newlc{MakeLowercase }% \protected\@namedef{MakeLowercase }#1{{% - \def\reserved@a##1##2{\let##2##1\reserved@a}% - \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% - \protected@edef\reserved@a{\bbl@newlc{#1}}\reserved@a}}% + \chardef\bbl@ulflag\tw@ + \ifx\bbl@uclc\@undefined + \bbl@newlc{#1}% + \else + \bbl@ifunset{\languagename @bbl@uclc}% + {\bbl@newlc{#1}}% + {\def\reserved@a##1##2{\let##2##1\reserved@a}% + \bbl@uclc\reserved@a\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{\bbl@newlc{#1}}% Pre-expand + \reserved@a}% + \fi}}% + \def\bbl@cased{% + \ifcase\bbl@ulflag + \expandafter\@firstofone + \or + \expandafter\MakeUppercase + \or + \expandafter\MakeLowercase + \fi}% \fi} -\fi +\fi % \end{macrocode} % % \begin{macrocode} @@ -9012,12 +9015,9 @@ help from Bernd Raichle, for which I am grateful. \newcommand\SetCase[3][]{% \bbl@patchuclc \bbl@forlang\bbl@tempa{% - \expandafter\bbl@encstring - \csname\bbl@tempa @bbl@uclc\endcsname{\bbl@tempa##1}% - \expandafter\bbl@encstring - \csname\bbl@tempa @bbl@uc\endcsname{##2}% - \expandafter\bbl@encstring - \csname\bbl@tempa @bbl@lc\endcsname{##3}}}% + \bbl@carg\bbl@encstring{\bbl@tempa @bbl@uclc}{\bbl@tempa##1}% + \bbl@carg\bbl@encstring{\bbl@tempa @bbl@uc}{##2}% + \bbl@carg\bbl@encstring{\bbl@tempa @bbl@lc}{##3}}}% %<</Macros local to BabelCommands>> % \end{macrocode} % @@ -9520,7 +9520,7 @@ help from Bernd Raichle, for which I am grateful. % \begin{macrocode} \def\umlauthigh{% \def\bbl@umlauta##1{\leavevmode\bgroup% - \expandafter\accent\csname\f@encoding dqpos\endcsname + \accent\csname\f@encoding dqpos\endcsname ##1\bbl@allowhyphens\egroup}% \let\bbl@umlaute\bbl@umlauta} \def\umlautlow{% @@ -9566,10 +9566,10 @@ help from Bernd Raichle, for which I am grateful. \leavevmode\bgroup \U@D 1ex% {\setbox\z@\hbox{% - \expandafter\char\csname\f@encoding dqpos\endcsname}% + \char\csname\f@encoding dqpos\endcsname}% \dimen@ -.45ex\advance\dimen@\ht\z@ \ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}% - \expandafter\accent\csname\f@encoding dqpos\endcsname + \accent\csname\f@encoding dqpos\endcsname \fontdimen5\font\U@D #1% \egroup} % \end{macrocode} @@ -9953,7 +9953,7 @@ help from Bernd Raichle, for which I am grateful. \ifin@\else\bbl@xin@{/k}{/\bbl@cl{lnbrk}}\fi \ifin@\bbl@arabicjust\fi \bbl@xin@{/p}{/\bbl@cl{lnbrk}}% - \ifin@\AtBeginDocument{\bbl@tibetanjust}\fi + \ifin@\AtBeginDocument{\@nameuse{bbl@tibetanjust}}\fi % == Line breaking: hyphenate.other.(locale|script) == \ifx\bbl@lbkflag\@empty \bbl@ifunset{bbl@hyotl@\languagename}{}% @@ -10104,8 +10104,20 @@ help from Bernd Raichle, for which I am grateful. {\bbl@pre@fs}% {\bbl@post@fs}% \fi - % == Release saved transforms == - \bbl@release@transforms\relax % \relax closes the last item. + % == transforms == + \ifodd\bbl@engine + \ifx\bbl@KVP@transforms\@nnil\else + \def\bbl@elt##1##2##3{% + \in@{$transforms.}{$##1}% + \ifin@ + \def\bbl@tempa{##1}% + \bbl@replace\bbl@tempa{transforms.}{}% + \bbl@carg\bbl@transforms{babel\bbl@tempa}{##2}{##3}% + \fi}% + \csname bbl@inidata@\languagename\endcsname + \bbl@release@transforms\relax % \relax closes the last item. + \fi + \fi % == main == \ifx\bbl@KVP@main\@nnil % Restore only if not 'main' \let\languagename\bbl@savelangname @@ -10911,44 +10923,40 @@ help from Bernd Raichle, for which I am grateful. % % \begin{macrocode} \let\bbl@release@transforms\@empty -\@namedef{bbl@inikv@transforms.prehyphenation}{% - \bbl@transforms\babelprehyphenation} -\@namedef{bbl@inikv@transforms.posthyphenation}{% - \bbl@transforms\babelposthyphenation} +\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{&% - \ifx\bbl@KVP@transforms\@nnil\else - \directlua{ - local str = [==[#2]==] - str = str:gsub('%.%d+%.%d+$', '') - tex.print([[\def\string\babeltempa{]] .. str .. [[}]]) - }&% - \bbl@xin@{,\babeltempa,}{,\bbl@KVP@transforms,}&% + \directlua{ + local str = [==[#2]==] + str = str:gsub('%.%d+%.%d+$', '') + tex.print([[\def\string\babeltempa{]] .. str .. [[}]]) + }&% + \bbl@xin@{,\babeltempa,}{,\bbl@KVP@transforms,}&% + \ifin@ + \in@{.0$}{#2$}&% \ifin@ - \in@{.0$}{#2$}&% - \ifin@ - \directlua{ - local str = string.match([[\bbl@KVP@transforms]], - '%(([^%(]-)%)[^%)]-\babeltempa') - if str == nil then - tex.print([[\def\string\babeltempb{}]]) - else - tex.print([[\def\string\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}{\languagename}{\the\toks@}}}&% - \else - \g@addto@macro\bbl@release@transforms{, {#3}}&% - \fi + \directlua{&% (\attribute) syntax + local str = string.match([[\bbl@KVP@transforms]], + '%(([^%(]-)%)[^%)]-\babeltempa') + if str == nil then + tex.print([[\def\string\babeltempb{}]]) + else + tex.print([[\def\string\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}{\languagename}{\the\toks@}}}&% + \else + \g@addto@macro\bbl@release@transforms{, {#3}}&% \fi \fi} \endgroup @@ -10996,7 +11004,8 @@ help from Bernd Raichle, for which I am grateful. 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)}% + this setting is not safe (see the manual).\\% + Reported}% \hyphenchar\font\defaulthyphenchar \fi\fi \fi}% @@ -12369,7 +12378,7 @@ help from Bernd Raichle, for which I am grateful. % % \begin{macrocode} \ifx\bbl@opt@main\@nnil\else - \bbl@csarg\let{loadmain\expandafter}\csname ds@\bbl@opt@main\endcsname + \bbl@ncarg\let\bbl@loadmain{ds@\bbl@opt@main}% \expandafter\let\csname ds@\bbl@opt@main\endcsname\relax \fi % \end{macrocode} @@ -13246,7 +13255,7 @@ help from Bernd Raichle, for which I am grateful. \<bbl@xeipn@\languagename>}% \\\bbl@toglobal\<extras\languagename>% \\\bbl@add\<noextras\languagename>{% - \XeTeXlinebreaklocale "en"}% + \XeTeXlinebreaklocale ""}% \\\bbl@toglobal\<noextras\languagename>}% \ifx\bbl@ispacesize\@undefined \gdef\bbl@ispacesize{\bbl@cl{xeisp}}% diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins index a40cfd79f3..5128ec755d 100644 --- a/macros/latex/required/babel/base/babel.ins +++ b/macros/latex/required/babel/base/babel.ins @@ -26,7 +26,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %% -\def\filedate{2022/10/04} +\def\filedate{2022/10/23} \def\batchfile{babel.ins} \input docstrip.tex diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf Binary files differindex c667f527ac..161bd23b21 100644 --- a/macros/latex/required/babel/base/babel.pdf +++ b/macros/latex/required/babel/base/babel.pdf diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx index 0bc850a585..2ad2e626b7 100644 --- a/macros/latex/required/babel/base/bbcompat.dtx +++ b/macros/latex/required/babel/base/bbcompat.dtx @@ -30,7 +30,7 @@ % % \iffalse %<*dtx> -\ProvidesFile{bbcompat.dtx}[2022/10/04 v3.81] +\ProvidesFile{bbcompat.dtx}[2022/10/23 v3.82] %</dtx> % %% File 'bbcompat.dtx' |