From bd031e64d0627026284118a2a8ceaf112f7e04e9 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 1 May 2022 03:03:29 +0000 Subject: CTAN sync 202205010303 --- macros/latex/required/babel/base/README.md | 23 +-- macros/latex/required/babel/base/babel.dtx | 261 +++++++++++++++++--------- macros/latex/required/babel/base/babel.ins | 2 +- macros/latex/required/babel/base/babel.pdf | Bin 855582 -> 857732 bytes macros/latex/required/babel/base/bbcompat.dtx | 2 +- 5 files changed, 182 insertions(+), 106 deletions(-) (limited to 'macros/latex/required') diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md index 92c1e3d366..537cda320d 100644 --- a/macros/latex/required/babel/base/README.md +++ b/macros/latex/required/babel/base/README.md @@ -1,4 +1,4 @@ -## Babel 3.73 +## Babel 3.74 This package manages culturally-determined typographical (and other) rules, and hyphenation patterns for a wide range of languages. Many @@ -8,9 +8,9 @@ is a set of ini files for about 250 languages. The latest stable version is available on . -Changes in version 3.73 are described in: +Changes in version 3.74 are described in: -https://latex3.github.io/babel/news/whats-new-in-babel-3.73.html +https://latex3.github.io/babel/news/whats-new-in-babel-3.74.html Apart from the manual, you can find information on some aspects of babel at: @@ -19,7 +19,7 @@ https://latex3.github.io/babel/ The best way to install and/or update it is with the help of package managers. -### Reporting Bugs +### Reporting bugs If you wish to report a problem or bug in any of these packages please use the @@ -44,18 +44,13 @@ You may also report them to the current maintainer more informally on: Bugs related to specific languages are best reported to their respective authors. -### Summary of Latest changes +### Summary of latest changes ``` -3.73 2022-02-26 - * Fixes a severe bug introduced in 3.72 when amsmath is - loaded. - -3.72 2022-02-24 - * Advances in amsmath (lua). +3.74 2022-04-30 * Fixes: - - Captions in Thai. - - Some settings sometimes ignored with 'onchar' (lua). - - Extra colon in Polish 'cc' (#172) + - Error in transforms if | is active. + - Minor fixes in Khemer, Turkmen, Marathi. + * RTL math improved (with luatex). ``` ### Previous changes diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx index 45b916160f..980ab2b11e 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/02/26 v3.73 The Babel package] +\ProvidesFile{babel.dtx}[2022/04/30 v3.74 The Babel package] \documentclass{ltxdoc} \GetFileInfo{babel.dtx} \usepackage{fontspec} @@ -2752,7 +2752,10 @@ which is not recommended). font. \end{note} -\New{4.41} Many `ini` locale files has been extended with information +\Describe{\localenumeral}{\marg{style}\marg{number}} +\DescribeOther{\localecounterl}{\marg{style}\marg{counter}} + +\New{3.41} Many `ini` locale files has been extended with information about non-positional numerical systems, based on those predefined in CSS. They only work with \xetex{} and \luatex{} and are fully expendable (even inside an unprotected |\edef|). Currently, they are @@ -2784,33 +2787,47 @@ The styles are: \item[Arabic] |abjad|, |maghrebi.abjad| -\item[Belarusan, Bulgarian, Macedonian, Serbian] |lower|, |upper| +\item[Armenian] |lower.letter|, |upper.letter| + +\item[Belarusan, Bulgarian, Church Slavic, Macedonian, Serbian] |lower|, |upper| \item[Bengali] |alphabetic| -\item[Coptic] |epact|,|lower.letters| +\item[Central Kurdish] |alphabetic| -\item[Hebrew] |letters| (neither geresh nor gershayim yet) +\item[Chinese] |cjk-earthly-branch|, |cjk-heavenly-stem|, +|circled.ideograph|, |parenthesized.ideograph|, +|fullwidth.lower.alpha|, |fullwidth.upper.alpha| -\item[Hindi] |alphabetic| +\item[Church Slavic (Glagolitic)] |letters| -\item[Armenian] |lower.letter|, |upper.letter| +\item[Coptic] |epact|, |lower.letters| -\item[Japanese] |hiragana|, |hiragana.iroha|, |katakana|, -|katakana.iroha|, |circled.katakana|, |informal|, |formal|, -|cjk-earthly-branch|, |cjk-heavenly-stem|, f|ullwidth.lower.alpha|, -|fullwidth.upper.alpha| +\item[French] |date.day| (mainly for internal use). \item[Georgian] |letters| \item[Greek] |lower.modern|, |upper.modern|, |lower.ancient|, |upper.ancient| (all with keraia) +\item[Hebrew] |letters| (neither geresh nor gershayim yet) + +\item[Hindi] |alphabetic| + +\item[Italian] |lower.legal|, |upper.legal| + +\item[Japanese] |hiragana|, |hiragana.iroha|, |katakana|, +|katakana.iroha|, |circled.katakana|, |informal|, |formal|, +|cjk-earthly-branch|, |cjk-heavenly-stem|, |circled.ideograph|, +|parenthesized.ideograph|, |fullwidth.lower.alpha|, +|fullwidth.upper.alpha| + \item[Khmer] |consonant| -\item[Korean] |consonant|, |syllabe|, |hanja.informal|, -|hanja.formal|, |hangul.formal|, |cjk-earthly-branch|, -|cjk-heavenly-stem|, |fullwidth.lower.alpha|, |fullwidth.upper.alpha| +\item[Korean] |consonant|, |syllabe|, |hanja.informal|, |hanja.formal|, +|hangul.formal|, |cjk-earthly-branch|, |cjk-heavenly-stem|, +|circled.ideograph|, |parenthesized.ideograph|, +|fullwidth.lower.alpha|, |fullwidth.upper.alpha| \item[Marathi] |alphabetic| @@ -2825,9 +2842,6 @@ The styles are: \item[Thai] |alphabetic| \item[Ukrainian] |lower| , |lower.full|, |upper| , |upper.full| - -\item[Chinese] |cjk-earthly-branch|, |cjk-heavenly-stem|, -|fullwidth.lower.alpha|, |fullwidth.upper.alpha| \end{description} \New{3.45} In addition, native digits (in languages defining them) may @@ -2922,33 +2936,31 @@ If the key does not exist, the macro is set to |\relax| and an error is raised. \New{3.47} With the starred version no error is raised, so that you can take your own actions with undefined properties. +\Describe{\localeid}{} +Each language in the \babel{} sense has its own unique numeric +identifier, which can be retrieved with |\localeid|. + +The |\localeid| is not the same as the |\language| identifier, which +refers to a set of hyphenation patters (which, in turn, is just a +component of the line breaking algorithm described in the next +section). The data about preloaded patterns are store in an internal +macro named |\bbl@languages| (see the code for further details), but +note several locales may share a single |\language|, so they are +separated concepts. In \luatex, the |\localeid| is saved in each node +(when it makes sense) as an attribute, too. + +\Describe{\LocaleForEach}{\marg{code}} \Babel{} remembers which |ini| files have been loaded. There is a loop named |\LocaleForEach| to traverse the list, where |#1| is the name of the current item, so that |\LocaleForEach{\message{ **#1** }}| just shows the loaded |ini|’s. -\begin{note} +\Describe{\BabelEnsureInfo}{} |ini| files are loaded with |\babelprovide| and also when languages are -selected if there is a |\babelfont|. To ensure the |ini| files are -loaded (and therefore the corresponding data) even if these two -conditions are not met, write |\BabelEnsureInfo| in the preamble. -\end{note} - -\Describe{\localeid}{} - -Each language in the \babel{} sense has its own unique numeric -identifier, which can be retrieved with |\localeid|. - -\begin{note} - The |\localeid| is not the same as the |\language| identifier, which - refers to a set of hyphenation patters (which, in turn, is just a - component of the line breaking algorithm described in the next - section). The data about preloaded patterns are store in an internal - macro named |\bbl@languages| (see the code for further details), but - note several locales may share a single |\language|, so they are - separated concepts. In \luatex, the |\localeid| is saved in each node - (where it makes sense) as an attribute, too. -\end{note} +selected if there is a |\babelfont| or they have not been explicitly +declared. To ensure the |ini| files are loaded (and therefore the +corresponding data) even if these two conditions are not met, write +|\BabelEnsureInfo| in the preamble. \subsection{Hyphenation and line breaking} @@ -5104,8 +5116,8 @@ help from Bernd Raichle, for which I am grateful. % \section{Tools} % % \begin{macrocode} -%<> -%<> +%<> +%<> % \end{macrocode} % % \textbf{Do not use the following macros in \texttt{ldf} files. They @@ -11156,6 +11168,8 @@ help from Bernd Raichle, for which I am grateful. \DeclareOption{safe=none}{\let\bbl@opt@safe\@empty} \DeclareOption{safe=bib}{\def\bbl@opt@safe{B}} \DeclareOption{safe=ref}{\def\bbl@opt@safe{R}} +\DeclareOption{safe=refbib}{\def\bbl@opt@safe{BR}} +\DeclareOption{safe=bibref}{\def\bbl@opt@safe{BR}} %<> % \end{macrocode} % @@ -11168,7 +11182,7 @@ help from Bernd Raichle, for which I am grateful. % % \begin{macrocode} \bbl@trace{Cross referencing macros} -\ifx\bbl@opt@safe\@empty\else +\ifx\bbl@opt@safe\@empty\else % ie, if 'ref' and/or 'bib' \def\@newl@bel#1#2#3{% {\@safe@activestrue \bbl@ifunset{#1@#2}% @@ -11235,10 +11249,24 @@ help from Bernd Raichle, for which I am grateful. % \begin{macrocode} \bbl@xin@{R}\bbl@opt@safe \ifin@ - \bbl@redefinerobust\ref#1{% - \@safe@activestrue\org@ref{#1}\@safe@activesfalse} - \bbl@redefinerobust\pageref#1{% - \@safe@activestrue\org@pageref{#1}\@safe@activesfalse} + \edef\bbl@tempc{\expandafter\string\csname ref code\endcsname}% + \bbl@xin@{\expandafter\strip@prefix\meaning\bbl@tempc}% + {\expandafter\strip@prefix\meaning\ref}% + \ifin@ + \bbl@redefine\@kernel@ref#1{% + \@safe@activestrue\org@@kernel@ref{#1}\@safe@activesfalse} + \bbl@redefine\@kernel@pageref#1{% + \@safe@activestrue\org@@kernel@pageref{#1}\@safe@activesfalse} + \bbl@redefine\@kernel@sref#1{% + \@safe@activestrue\org@@kernel@sref{#1}\@safe@activesfalse} + \bbl@redefine\@kernel@spageref#1{% + \@safe@activestrue\org@@kernel@spageref{#1}\@safe@activesfalse} + \else + \bbl@redefinerobust\ref#1{% + \@safe@activestrue\org@ref{#1}\@safe@activesfalse} + \bbl@redefinerobust\pageref#1{% + \@safe@activestrue\org@pageref{#1}\@safe@activesfalse} + \fi \else \let\org@ref\ref \let\org@pageref\pageref @@ -11502,28 +11530,30 @@ help from Bernd Raichle, for which I am grateful. % % \begin{macrocode} \bbl@trace{Preventing clashes with other packages} -\bbl@xin@{R}\bbl@opt@safe -\ifin@ - \AtBeginDocument{% - \@ifpackageloaded{ifthen}{% - \bbl@redefine@long\ifthenelse#1#2#3{% - \let\bbl@temp@pref\pageref - \let\pageref\org@pageref - \let\bbl@temp@ref\ref - \let\ref\org@ref - \@safe@activestrue - \org@ifthenelse{#1}% - {\let\pageref\bbl@temp@pref - \let\ref\bbl@temp@ref - \@safe@activesfalse - #2}% - {\let\pageref\bbl@temp@pref - \let\ref\bbl@temp@ref - \@safe@activesfalse - #3}% - }% - }{}% - } +\ifx\org@ref\@undefined\else + \bbl@xin@{R}\bbl@opt@safe + \ifin@ + \AtBeginDocument{% + \@ifpackageloaded{ifthen}{% + \bbl@redefine@long\ifthenelse#1#2#3{% + \let\bbl@temp@pref\pageref + \let\pageref\org@pageref + \let\bbl@temp@ref\ref + \let\ref\org@ref + \@safe@activestrue + \org@ifthenelse{#1}% + {\let\pageref\bbl@temp@pref + \let\ref\bbl@temp@ref + \@safe@activesfalse + #2}% + {\let\pageref\bbl@temp@pref + \let\ref\bbl@temp@ref + \@safe@activesfalse + #3}% + }% + }{}% + } +\fi % \end{macrocode} % % \end{macro} @@ -11575,7 +11605,6 @@ help from Bernd Raichle, for which I am grateful. % % \subsubsection{\pkg{hhline}} % -% % \begin{macro}{\hhline} % % Delaying the activation of the shorthand characters has introduced @@ -14283,6 +14312,7 @@ end \catcode`\~=12 \catcode`\%=12 \catcode`\&=14 +\catcode`\|=12 \gdef\babelprehyphenation{&% \@ifnextchar[{\bbl@settransform{0}}{\bbl@settransform{0}[]}} \gdef\babelposthyphenation{&% @@ -14541,38 +14571,80 @@ end % % \begin{macrocode} \bbl@trace{Redefinitions for bidi layout} +% +%<<*More package options>> +\chardef\bbl@eqnpos\z@ +\DeclareOption{leqno}{\chardef\bbl@eqnpos\@ne} +\DeclareOption{fleqn}{\chardef\bbl@eqnpos\tw@} +%<> +% \def\BabelNoAMSMath{\let\bbl@noamsmath\relax} \ifnum\bbl@bidimode>\z@ + \ifx\matheqdirmode\@undefined\else + \matheqdirmode\@ne + \fi \let\bbl@eqnodir\relax -% \ifx\matheqdirmode\@undefined\else -% \matheqdirmode\@ne -% \fi + \def\bbl@eqdel{()} + \def\bbl@eqnum{% + {\normalfont\normalcolor + \expandafter\@firstoftwo\bbl@eqdel + \theequation + \expandafter\@secondoftwo\bbl@eqdel}} + \def\bbl@puteqno#1{\eqno\hbox{#1}} + \def\bbl@putleqno#1{\leqno\hbox{#1}} + \def\bbl@eqno@flip#1{% + \ifdim\predisplaysize=-\maxdimen + \eqno + \hb@xt@.01pt{\hb@xt@\displaywidth{\hss{#1}}\hss}% + \else + \leqno\hbox{#1}% + \fi} + \def\bbl@leqno@flip#1{% + \ifdim\predisplaysize=-\maxdimen + \leqno + \hb@xt@.01pt{\hss\hb@xt@\displaywidth{{#1}\hss}}% + \else + \eqno\hbox{#1}% + \fi} \AtBeginDocument{% \ifx\maketag@@@\@undefined % Normal equation, eqnarray - \AddToHook{env/eqnarray/begin}{% + \AddToHook{env/equation/begin}{% \ifnum\bbl@thetextdir>\z@ + \let\@eqnnum\bbl@eqnum \edef\bbl@eqnodir{\noexpand\bbl@textdir{\the\bbl@thetextdir}}% \chardef\bbl@thetextdir\z@ \bbl@add\normalfont{\bbl@eqnodir}% + \ifcase\bbl@eqnpos + \let\bbl@puteqno\bbl@eqno@flip + \or + \let\bbl@puteqno\bbl@leqno@flip + \fi \fi}% - \AddToHook{env/equation/begin}{% + \ifnum\bbl@eqnpos=\tw@\else + \def\endequation{\bbl@puteqno{\@eqnnum}$$\@ignoretrue}% + \fi + \AddToHook{env/eqnarray/begin}{% \ifnum\bbl@thetextdir>\z@ \edef\bbl@eqnodir{\noexpand\bbl@textdir{\the\bbl@thetextdir}}% \chardef\bbl@thetextdir\z@ \bbl@add\normalfont{\bbl@eqnodir}% - \pardir TLT % dir for \eqno is \pardir! - \fi}% - \bbl@xin@{,leqno,}{,\@classoptionslist,}% - \ifin@ - \def\@eqnnum{% - \setbox\z@\hbox{\normalfont\normalcolor(\theequation)}% - \hbox to0.01pt{\hss\hbox to\displaywidth{\box\z@\hss}}}% - \fi + \ifnum\bbl@eqnpos=\@ne + \def\@eqnnum{% + \setbox\z@\hbox{\bbl@eqnum}% + \hbox to0.01pt{\hss\hbox to\displaywidth{\box\z@\hss}}}% + \else + \let\@eqnnum\bbl@eqnum + \fi + \fi} + % Hack. YA luatex bug?: + \expandafter\bbl@sreplace\csname] \endcsname{$$}{\eqno\kern.001pt$$}% \else % amstex \ifx\bbl@noamsmath\@undefined - \@ifpackagewith{amsmath}{leqno}% - {\let\bbl@ams@lap\hbox}% = leqno - {\let\bbl@ams@lap\llap}% = default + \ifnum\bbl@eqnpos=\@ne + \let\bbl@ams@lap\hbox + \else + \let\bbl@ams@lap\llap + \fi \ExplSyntaxOn \bbl@sreplace\intertext@{\normalbaselines}% {\normalbaselines @@ -14592,12 +14664,21 @@ end \bbl@sreplace\textdef@{\hbox}{\bbl@ams@tagbox\hbox}% \bbl@sreplace\maketag@@@{\hbox}{\bbl@ams@tagbox#1}% \fi}% - \AddToHook{env/equation/begin}{% - \ifnum\bbl@thetextdir>\z@ - \ifx\bbl@ams@lap\llap\hrule\@height\z@\fi - \bbl@ams@preset\bbl@ams@flip - \fi}% - \AddToHook{env/equation*/begin}{\bbl@ams@preset\bbl@ams@flip}% + \ifnum\bbl@eqnpos=\tw@\else + \def\bbl@ams@equation{% + \ifnum\bbl@thetextdir>\z@ + \edef\bbl@eqnodir{\noexpand\bbl@textdir{\the\bbl@thetextdir}}% + \chardef\bbl@thetextdir\z@ + \bbl@add\normalfont{\bbl@eqnodir}% + \ifcase\bbl@eqnpos + \def\veqno##1##2{\bbl@eqno@flip{##1##2}}% + \or + \def\veqno##1##2{\bbl@leqno@flip{##1##2}}% + \fi + \fi}% + \AddToHook{env/equation/begin}{\bbl@ams@equation}% + \AddToHook{env/equation*/begin}{\bbl@ams@equation}% + \fi \AddToHook{env/cases/begin}{\bbl@ams@preset\bbl@ams@lap}% \AddToHook{env/multline/begin}{\bbl@ams@preset\hbox}% \AddToHook{env/gather/begin}{\bbl@ams@preset\bbl@ams@lap}% diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins index 0cc5c54977..1c80ae6d80 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/02/26} +\def\filedate{2022/04/30} \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 index c51f53a46d..b68346d6e5 100644 Binary files a/macros/latex/required/babel/base/babel.pdf and b/macros/latex/required/babel/base/babel.pdf differ diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx index 763031c7f8..b7a7c3dfbc 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/02/26 v3.73] +\ProvidesFile{bbcompat.dtx}[2022/04/30 v3.74] % % %% File 'bbcompat.dtx' -- cgit v1.2.3