diff options
author | Karl Berry <karl@freefriends.org> | 2024-03-29 21:35:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-03-29 21:35:44 +0000 |
commit | ff4e3b54056f06c0dce5f9423003d8c8fbb5fe33 (patch) | |
tree | 47983b51719b2c01111fb63e49f991ad138ef999 | |
parent | 59e30b63db8a55f8b463dfd85e7a17ace98d5622 (diff) |
babel (29mar24)
git-svn-id: svn://tug.org/texlive/trunk@70809 c570f23f-e606-0410-a88d-b1316a301751
16 files changed, 173 insertions, 108 deletions
diff --git a/Master/texmf-dist/doc/latex/babel/README.md b/Master/texmf-dist/doc/latex/babel/README.md index 1469c5b7f16..aee528f60cf 100644 --- a/Master/texmf-dist/doc/latex/babel/README.md +++ b/Master/texmf-dist/doc/latex/babel/README.md @@ -1,18 +1,18 @@ -## Babel 24.2 +## Babel 24.3 -2024-02-07 +2024-03-29 -This package manages culturally-determined typographical (and other) -rules, and hyphenation patterns for a wide range of languages. Many -language styles work with pdflatex, as well as with xelatex and -lualatex out of the box. A few even work with plain formats. Included -is a set of ini files for about 300 languages. +`babel` is the multilingual framework for localizing documents in +LaTeX, LuaLaTeX, XeLaTeX. It manages culturally-determined +typographical (and other) rules for about 170 to 300 languages, +depending on the engine, with several levels of coverage. A few +languages even work with Plain formats. The latest stable version is available on <https://ctan.org/pkg/babel>. -Changes in version 24.2 are described in: +Changes in version 24.3 are described in: -https://latex3.github.io/babel/news/whats-new-in-babel-24.2.html +https://latex3.github.io/babel/news/whats-new-in-babel-24.3.html Apart from the manual, you can find information on some aspects of babel at: @@ -48,9 +48,12 @@ respective authors. ### Summary of latest changes ``` -24.2 2024-02-07 - * Cleaned up some language names. - * Mosty internal changes and minor fixes. +24.3 2024-03-29 + * A silly mistake in the French locales: the interchar + 'punctuation.space' was named 'puntuation.space' (xetex) + * New setting 'interchar.disable' in \babeladjust (xetex) + * Experimental macro '\localebox' (luatex) + * Alphabetic counter for Bodo (lua/xe) ``` ### Previous changes diff --git a/Master/texmf-dist/doc/latex/babel/babel-code.pdf b/Master/texmf-dist/doc/latex/babel/babel-code.pdf Binary files differindex fa0a7983077..de968014b29 100644 --- a/Master/texmf-dist/doc/latex/babel/babel-code.pdf +++ b/Master/texmf-dist/doc/latex/babel/babel-code.pdf diff --git a/Master/texmf-dist/doc/latex/babel/babel.pdf b/Master/texmf-dist/doc/latex/babel/babel.pdf Binary files differindex 21d664d5bbf..7c263bf3eaa 100644 --- a/Master/texmf-dist/doc/latex/babel/babel.pdf +++ b/Master/texmf-dist/doc/latex/babel/babel.pdf diff --git a/Master/texmf-dist/source/latex/babel/babel.dtx b/Master/texmf-dist/source/latex/babel/babel.dtx index ea14d382bbe..11b73fef9b8 100644 --- a/Master/texmf-dist/source/latex/babel/babel.dtx +++ b/Master/texmf-dist/source/latex/babel/babel.dtx @@ -32,7 +32,7 @@ % % \iffalse %<*filedriver> -\ProvidesFile{babel.dtx}[2024/02/07 v24.2 The Babel package] +\ProvidesFile{babel.dtx}[2024/03/29 v24.3 The Babel package] \documentclass{ltxdoc} \GetFileInfo{babel.dtx} \usepackage{fontspec} @@ -748,7 +748,9 @@ for the language chosen: \selectlanguage{german} \end{verbatim} -This command can be used as environment, too. +This command can be used as environment, too, in case there are +relatively short texts and you do not want to reset the language with a +hardcode value. \begin{note} For ``historical reasons'', a macro name is converted to a language @@ -785,15 +787,18 @@ This command can be used as environment, too. rarely happens, but if it were the case, you must use |otherlanguage| instead. \item In addition, this macro inserts a |\write| in vertical mode, - which may break the vertical spacing in some cases (for example, - between lists). \New{3.64} The behavior can be adjusted with - |\babeladjust{select.write=|\m{mode}|}|, where \m{mode} is |shift| - (which shifts the skips down and adds a |\penalty|); |keep| (the - default -- with it the |\write| and the skips are kept in the order - they are written), and |omit| (which may seem a too drastic solution, - because nothing is written, but more often than not this command is - applied to more or less shorts texts with no sectioning or similar - commands and therefore no language synchronization is necessary). + which may break the vertical spacing in some cases (for example, + between lists or at the beginning of a table cell). \New{3.64} The + behavior can be adjusted with + |\babeladjust{select.write=|\m{mode}|}|, where \m{mode} is |shift| + (which shifts the skips down and adds a |\penalty|); |keep| (the + default -- with it the |\write| and the skips are kept in the order + they are written), and |omit| (which may seem a too drastic + solution, because nothing is written, but more often than not this + command is applied to more or less shorts texts with no sectioning + or similar commands, and therefore no language synchronization is + necessary). In a table cell, a |\leavevmode| just before the + selector may be enough. \end{itemize} \end{warning} @@ -851,7 +856,17 @@ is roughly equivalent to: If you want a change which is really local, you must enclose this environment with an additional grouping, like braces |{}|. -Spaces after the environment are ignored. +Spaces after the environment are ignored.\footnote{Very likely, and +because of the limitations of many old editors with bidi text, the idea +was \cs{end}\texttt{\{otherlanguage\}} had to be a line by itself.} If this +behavior is not desired, you may use the environment +\texttt{selectlanguage}. + +\begin{warning} + Being similar to |\selectlanguage|, the warning above about the + internal |\write| also applies here. The current mode (vertical or + horizonal) is also not changed. +\end{warning} \Describe{\begin\menv{otherlanguage*}}% {\oarg{option-list}\marg{language}\Eenv{otherlanguage*}} @@ -889,9 +904,10 @@ group. |\textcolor| and many others). The same applies to environments, because |arabic| conflicts with |\arabic|. Furthermore, and because of this overloading, detecting the language of a chunk of text by - external tools can become unfeasible. Except if there is a reason for + external tools can become unfeasible (is |\textga| the locale for the + African language Gã or something else?). Except if there is a reason for this ‘syntactical sugar’, the best option is to stick to the default - selectors or to define your own alternatives. + selectors or even to define your own alternatives. \end{warning} \begin{example} @@ -2258,19 +2274,11 @@ to select fonts in addition to the three basic families. \babelfont[hindi]{rm}{Shobhika} \end{verbatim} This makes sure the OpenType script for Devanagari is |deva| and not - |dev2|, in case it is not detected correctly. You may also pass some - options to \textsf{fontspec}: with |silent|, the warnings about - unavailable scripts or languages are not shown (they are only really - useful when the document format is being set up). -\end{note} - -\begin{note} - Directionality is a property affecting margins, indentation, column - order, etc., not just text. Therefore, it is under the direct control - of the language, which applies both the script and the direction to - the text. As a consequence, there is no need to set \texttt{Script} - when declaring a font with |\babelfont| (nor \texttt{Language}). In - fact, it is even discouraged. + |dev2|, in case it is not detected correctly. +% You may also pass some +% options to \textsf{fontspec}: with |silent|, the warnings about +% unavailable scripts or languages are not shown (they are only really +% useful when the document format is being set up). \end{note} \begin{note} @@ -2285,6 +2293,15 @@ to select fonts in addition to the three basic families. \end{note} \begin{note} + Directionality is a property affecting margins, indentation, column + order, etc., not just text. Therefore, it is under the direct control + of the language, which applies both the script and the direction to + the text. As a consequence, there is no need to set \texttt{Script} + when declaring a font with |\babelfont| (nor \texttt{Language}). In + fact, it is even discouraged. +\end{note} + +\begin{note} The keys |Language| and |Script| just pass these values to the \textit{font}, and do \textit{not} set the script for the \textit{language} (and therefore the writing direction). In other @@ -3679,6 +3696,11 @@ the ‘provided’ locale. Currently there is a set of rules for French named |punctuation.space|, which applies proper spacing with characters \textit{;:!?«»}. +\begin{note} + You can use |transforms| and |interchar| at the same time. Only the + relevant key for the current engine is taken into account. +\end{note} + \subsection{Selection based on BCP 47 tags} \label{bcp47} @@ -4461,15 +4483,17 @@ autoload.options\\ autoload.bcp47.prefix\\ autoload.bcp47.options\\ prehyphenation.disable\\ +interchar.disable\\ select.write\\ select.encoding\\ \end{multicols} Most of them are documented elsewhere. With |select.encoding=off|, the encoding is not set when loading a language on the fly with \pdftex{} (only |off|). |prehyphenation.disable| is by default |nohyphenation|, -which means prehyphenation transforms are not applied if the current +which means \luatex{} prehyphenation transforms are not applied if the current hyphenation rules are |nohyphenation|; with |off| they are never -disabled. +disabled. |interchar.disable| takes the same values, but for the +\xetex{} interchar mechanism. For example, you can set |\babeladjust{bidi.text=off}| if you are using an alternative algorithm or with large sections not requiring it. Use @@ -5427,8 +5451,8 @@ wouldn’t exist. % \section{Tools} % % \begin{macrocode} -%<<version=24.2>> -%<<date=2024/02/07>> +%<<version=24.3>> +%<<date=2024/03/29>> % \end{macrocode} % % \textbf{Do not use the following macros in \texttt{ldf} files. They @@ -6588,7 +6612,8 @@ wouldn’t exist. \chardef\localeid\bbl@cl{id@}} % \end{macrocode} % -% The unprotected part of |\selectlanguage|. +% The unprotected part of |\selectlanguage|. In case it is used as +% environment, declare |\endselectlaguage|, just for safety. % % \begin{macrocode} \expandafter\def\csname selectlanguage \endcsname#1{% @@ -6596,6 +6621,7 @@ wouldn’t exist. \bbl@push@language \aftergroup\bbl@pop@language \bbl@set@language{#1}} +\let\endselectlanguage\relax % \end{macrocode} % % \end{macro} @@ -6814,14 +6840,10 @@ wouldn’t exist. % \end{macrocode} % % \begin{environment}{otherlanguage} -% The \Lenv{otherlanguage} environment can be used as an -% alternative to using the |\selectlanguage| declarative -% command. When you are typesetting a document which mixes -% left-to-right and right-to-left typesetting you have to use this -% environment in order to let things work as you expect them to. -% -% The |\ignorespaces| command is necessary to hide the environment -% when it is entered in horizontal mode. +% The \Lenv{otherlanguage} environment can be used as an alternative to +% using the |\selectlanguage| declarative command. The |\ignorespaces| +% command is necessary to hide the environment when it is entered in +% horizontal mode. % % \begin{macrocode} \long\def\otherlanguage#1{% @@ -6835,8 +6857,7 @@ wouldn’t exist. % itself when it is called in horizontal mode. % % \begin{macrocode} -\long\def\endotherlanguage{% - \global\@ignoretrue\ignorespaces} +\long\def\endotherlanguage{\@ignoretrue\ignorespaces} % \end{macrocode} % % \end{environment} @@ -11585,6 +11606,15 @@ wouldn’t exist. \directlua{ Babel.ignore_pre_char = function(node) return false end }} +\@namedef{bbl@ADJ@interchar.disable@nohyphenation}{% + \def\bbl@ignoreinterchar{% + \ifnum\language=\l@nohyphenation + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi}} +\@namedef{bbl@ADJ@interchar.disable@off}{% + \let\bbl@ignoreinterchar\@firstofone} \@namedef{bbl@ADJ@select.write@shift}{% \let\bbl@restorelastskip\relax \def\bbl@savelastskip{% @@ -13598,7 +13628,7 @@ wouldn’t exist. \let\\\bbl@tempfs@nxx\<__fontspec_warning:nxx>% \let\<__fontspec_warning:nxx>\\\bbl@fs@warn@nxx \\\renewfontfamily\\#4% - [\bbl@cl{lsys},% + [\bbl@cl{lsys},% xetex removes unknown features :-( \ifcase\bbl@engine\or RawFeature={family=\bbl@tempb},\fi #2]}{#3}% ie \bbl@exp{..}{#3} \bbl@exp{% @@ -13878,16 +13908,17 @@ wouldn’t exist. % ‘disabled’ with |\bbl@ic@<label>@<lang>|. % % \begin{macrocode} +\def\bbl@ignoreinterchar{% + \ifnum\language=\l@nohyphenation + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi} \newcommand\babelinterchar[5][]{% \let\bbl@kv@label\@empty \bbl@forkv{#1}{\bbl@csarg\edef{kv@##1}{##2}}% \@namedef{\zap@space bbl@xeinter@\bbl@kv@label @#3@#4@#2 \@empty}% - {\ifnum\language=\l@nohyphenation - \expandafter\@gobble - \else - \expandafter\@firstofone - \fi - {#5}}% + {\bbl@ignoreinterchar{#5}}% \bbl@csarg\let{ic@\bbl@kv@label @#2}\@firstofone \bbl@exp{\\\bbl@for\\\bbl@tempa{\zap@space#3 \@empty}}{% \bbl@exp{\\\bbl@for\\\bbl@tempb{\zap@space#4 \@empty}}{% @@ -15540,9 +15571,14 @@ end local d = node.new(node.id'dir') d.dir = '+TRT' node.insert_before(head, node.has_glyph(head), d) + local inmath = false for item in node.traverse(head) do - node.set_attribute(item, - Babel.attr_dir, token.get_macro('bbl@thedir')) + if item.id == 11 then + inmath = (item.subtype == 0) + elseif not inmath then + node.set_attribute(item, + Babel.attr_dir, token.get_macro('bbl@thedir')) + end end end end @@ -15554,6 +15590,14 @@ end \fi % \end{macrocode} % +% Experimental. Tentative name. +% +% \begin{macrocode} +\DeclareRobustCommand\localebox[1]{% + {\def\bbl@insidemath{0}% + \mbox{\foreignlanguage{\languagename}{#1}}}} +% \end{macrocode} +% % \subsection{Layout} % % Unlike \xetex{}, \luatex{} requires only minimal changes for diff --git a/Master/texmf-dist/source/latex/babel/babel.ins b/Master/texmf-dist/source/latex/babel/babel.ins index 4b857314cbb..d498b8ff4f1 100644 --- a/Master/texmf-dist/source/latex/babel/babel.ins +++ b/Master/texmf-dist/source/latex/babel/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{2024/02/07} +\def\filedate{2024/03/29} \def\batchfile{babel.ins} \input docstrip.tex diff --git a/Master/texmf-dist/source/latex/babel/bbcompat.dtx b/Master/texmf-dist/source/latex/babel/bbcompat.dtx index 8d458823607..9c1856b9982 100644 --- a/Master/texmf-dist/source/latex/babel/bbcompat.dtx +++ b/Master/texmf-dist/source/latex/babel/bbcompat.dtx @@ -30,7 +30,7 @@ % % \iffalse %<*dtx> -\ProvidesFile{bbcompat.dtx}[2024/02/07 v24.2] +\ProvidesFile{bbcompat.dtx}[2024/03/29 v24.3] %</dtx> % %% File 'bbcompat.dtx' diff --git a/Master/texmf-dist/source/latex/babel/locale.zip b/Master/texmf-dist/source/latex/babel/locale.zip Binary files differindex bbc0ace01f6..5a90571a6bc 100644 --- a/Master/texmf-dist/source/latex/babel/locale.zip +++ b/Master/texmf-dist/source/latex/babel/locale.zip diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def index 3a1f99d2e7c..a76f7f47b11 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}[2024/02/07 v24.2 Babel common definitions] +\ProvidesFile{babel.def}[2024/03/29 v24.3 Babel common definitions] \ifx\AtBeginDocument\@undefined % TODO. change test. \def\@empty{} \def\loadlocalcfg#1{% @@ -596,8 +596,8 @@ \toks@\expandafter{\bbl@tempc#3}% \expandafter\edef\csname extras\languagename\endcsname{\the\toks@}% \fi} -\def\bbl@version{24.2} -\def\bbl@date{2024/02/07} +\def\bbl@version{24.3} +\def\bbl@date{2024/03/29} \ifx\language\@undefined \csname newcount\endcsname\language \fi @@ -735,6 +735,7 @@ \bbl@push@language \aftergroup\bbl@pop@language \bbl@set@language{#1}} +\let\endselectlanguage\relax \def\BabelContentsFiles{toc,lof,lot} \def\bbl@set@language#1{% from selectlanguage, pop@ % The old buggy way. Preserved for compatibility. @@ -890,8 +891,7 @@ \ifnum\bbl@hymapsel=\@cclv\let\bbl@hymapsel\thr@@\fi \csname selectlanguage \endcsname{#1}% \ignorespaces} -\long\def\endotherlanguage{% - \global\@ignoretrue\ignorespaces} +\long\def\endotherlanguage{\@ignoretrue\ignorespaces} \expandafter\def\csname otherlanguage*\endcsname{% \@ifnextchar[\bbl@otherlanguage@s{\bbl@otherlanguage@s[]}} \def\bbl@otherlanguage@s[#1]#2{% diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty index 0eb07150d03..35fa58deff0 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}[2024/02/07 v24.2 The Babel package] +\ProvidesPackage{babel}[2024/03/29 v24.3 The Babel package] \@ifpackagewith{babel}{debug} {\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}% \let\bbl@debug\@firstofone @@ -466,8 +466,8 @@ \expandafter\@secondoftwo \fi} \fi -\def\bbl@version{24.2} -\def\bbl@date{2024/02/07} +\def\bbl@version{24.3} +\def\bbl@date{2024/03/29} \ifx\language\@undefined \csname newcount\endcsname\language \fi @@ -633,6 +633,7 @@ \bbl@push@language \aftergroup\bbl@pop@language \bbl@set@language{#1}} +\let\endselectlanguage\relax \def\BabelContentsFiles{toc,lof,lot} \def\bbl@set@language#1{% from selectlanguage, pop@ % The old buggy way. Preserved for compatibility. @@ -788,8 +789,7 @@ \ifnum\bbl@hymapsel=\@cclv\let\bbl@hymapsel\thr@@\fi \csname selectlanguage \endcsname{#1}% \ignorespaces} -\long\def\endotherlanguage{% - \global\@ignoretrue\ignorespaces} +\long\def\endotherlanguage{\@ignoretrue\ignorespaces} \expandafter\def\csname otherlanguage*\endcsname{% \@ifnextchar[\bbl@otherlanguage@s{\bbl@otherlanguage@s[]}} \def\bbl@otherlanguage@s[#1]#2{% @@ -3630,6 +3630,15 @@ \directlua{ Babel.ignore_pre_char = function(node) return false end }} +\@namedef{bbl@ADJ@interchar.disable@nohyphenation}{% + \def\bbl@ignoreinterchar{% + \ifnum\language=\l@nohyphenation + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi}} +\@namedef{bbl@ADJ@interchar.disable@off}{% + \let\bbl@ignoreinterchar\@firstofone} \@namedef{bbl@ADJ@select.write@shift}{% \let\bbl@restorelastskip\relax \def\bbl@savelastskip{% diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg index 9b356af30fe..b667ec61a93 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}[2024/02/07 v24.2 Babel hyphens] +\ProvidesFile{hyphen.cfg}[2024/03/29 v24.3 Babel hyphens] \xdef\bbl@format{\jobname} -\def\bbl@version{24.2} -\def\bbl@date{2024/02/07} +\def\bbl@version{24.3} +\def\bbl@date{2024/03/29} \ifx\AtBeginDocument\@undefined \def\@empty{} \fi diff --git a/Master/texmf-dist/tex/generic/babel/locale/brx/babel-brx.ini b/Master/texmf-dist/tex/generic/babel/locale/brx/babel-brx.ini index e95f7fdb714..acffcff76ee 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/brx/babel-brx.ini +++ b/Master/texmf-dist/tex/generic/babel/locale/brx/babel-brx.ini @@ -9,8 +9,8 @@ [identification] charset = utf8 -version = 1.5 -date = 2022-06-14 +version = 1.6 +date = 2024-03-18 name.local = बर’ name.english = Bodo name.babel = bodo @@ -171,3 +171,4 @@ plusSign = + superscriptingExponent = × [counters] +alphabetic = क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex index 43351e1d342..c12481ca1c1 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex +++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french-canada.tex @@ -10,11 +10,10 @@ \BabelBeforeIni{fr-CA}{% } - \ifcase\bbl@engine\or\or % XeTeX % Partly based on babel-french, by Daniel Flipo -\IfBabelIntercharT{puntuation.space}{% +\IfBabelIntercharT{punctuation.space}{% \providecommand{\BabelFrenchGuillemetSpace}{% \leavevmode\nobreak\hskip.8\fontdimen2\font plus.3\fontdimen3\font @@ -26,19 +25,19 @@ \babelcharclass{\CurrentOption}{rightguillemet}{»}% \babelcharclass{\CurrentOption}{opening}{([\{}% just make != default % - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {default, rightguillemet}{colon}{\BabelFrenchColonSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {leftguillemet}{default}{\BabelFrenchGuillemetSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {default}{rightguillemet}{\BabelFrenchGuillemetSpace}% % % Here boundary means essentialy space: - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {boundary}{colon}{\ifhmode\unskip\nobreak\fi\BabelFrenchColonSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {leftguillemet}{boundary}{\BabelFrenchGuillemetSpace\ignorespaces}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {boundary}{rightguillemet}{\ifhmode\unskip\fi\BabelFrenchGuillemetSpace}% } diff --git a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex index a53769ba554..56502534242 100644 --- a/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex +++ b/Master/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex @@ -13,7 +13,7 @@ \ifcase\bbl@engine\or\or % XeTeX % Partly based on babel-french, by Daniel Flipo -\IfBabelIntercharT{puntuation.space}{% +\IfBabelIntercharT{punctuation.space}{% \providecommand{\BabelFrenchGuillemetSpace}{% \leavevmode\nobreak\hskip.8\fontdimen2\font plus.3\fontdimen3\font @@ -28,23 +28,23 @@ \babelcharclass{\CurrentOption}{rightguillemet}{»}% \babelcharclass{\CurrentOption}{opening}{([\{}% just make != default % - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {default, rightguillemet, high, colon}{high}{\BabelFrenchHighSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {default, rightguillemet, high}{colon}{\BabelFrenchColonSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {leftguillemet}{default}{\BabelFrenchGuillemetSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {default, high}{rightguillemet}{\BabelFrenchGuillemetSpace}% % % Here boundary means essentialy space: - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {boundary}{high}{\ifhmode\unskip\nobreak\fi\BabelFrenchHighSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {boundary}{colon}{\ifhmode\unskip\nobreak\fi\BabelFrenchColonSpace}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {leftguillemet}{boundary}{\BabelFrenchGuillemetSpace\ignorespaces}% - \babelinterchar[label=puntuation.space]{\CurrentOption}% + \babelinterchar[label=punctuation.space]{\CurrentOption}% {boundary}{rightguillemet}{\ifhmode\unskip\fi\BabelFrenchGuillemetSpace}% } diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def index 78272358244..b531bcdeb3d 100644 --- a/Master/texmf-dist/tex/generic/babel/luababel.def +++ b/Master/texmf-dist/tex/generic/babel/luababel.def @@ -996,7 +996,7 @@ end \let\\\bbl@tempfs@nxx\<__fontspec_warning:nxx>% \let\<__fontspec_warning:nxx>\\\bbl@fs@warn@nxx \\\renewfontfamily\\#4% - [\bbl@cl{lsys},% + [\bbl@cl{lsys},% xetex removes unknown features :-( \ifcase\bbl@engine\or RawFeature={family=\bbl@tempb},\fi #2]}{#3}% ie \bbl@exp{..}{#3} \bbl@exp{% @@ -1466,9 +1466,14 @@ end local d = node.new(node.id'dir') d.dir = '+TRT' node.insert_before(head, node.has_glyph(head), d) + local inmath = false for item in node.traverse(head) do - node.set_attribute(item, - Babel.attr_dir, token.get_macro('bbl@thedir')) + if item.id == 11 then + inmath = (item.subtype == 0) + elseif not inmath then + node.set_attribute(item, + Babel.attr_dir, token.get_macro('bbl@thedir')) + end end end end @@ -1478,6 +1483,9 @@ end "Babel.math_box_dir", 0) }}% \fi +\DeclareRobustCommand\localebox[1]{% + {\def\bbl@insidemath{0}% + \mbox{\foreignlanguage{\languagename}{#1}}}} \bbl@trace{Redefinitions for bidi layout} \ifnum\bbl@bidimode>\z@ % Any bidi= \matheqdirmode\@ne % A luatex primitive diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf index 434542c8e9f..987796efd1e 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}[2024/02/07 v24.2 Nil language] +\ProvidesLanguage{nil}[2024/03/29 v24.3 Nil language] \LdfInit{nil}{datenil} \ifx\l@nil\@undefined \newlanguage\l@nil diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def index 4da5bc3949a..e1f5387a0ef 100644 --- a/Master/texmf-dist/tex/generic/babel/xebabel.def +++ b/Master/texmf-dist/tex/generic/babel/xebabel.def @@ -248,7 +248,7 @@ \let\\\bbl@tempfs@nxx\<__fontspec_warning:nxx>% \let\<__fontspec_warning:nxx>\\\bbl@fs@warn@nxx \\\renewfontfamily\\#4% - [\bbl@cl{lsys},% + [\bbl@cl{lsys},% xetex removes unknown features :-( \ifcase\bbl@engine\or RawFeature={family=\bbl@tempb},\fi #2]}{#3}% ie \bbl@exp{..}{#3} \bbl@exp{% @@ -348,16 +348,17 @@ \else \bbl@error{double-hyphens-class}{}{}{}% \fi\fi} +\def\bbl@ignoreinterchar{% + \ifnum\language=\l@nohyphenation + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi} \newcommand\babelinterchar[5][]{% \let\bbl@kv@label\@empty \bbl@forkv{#1}{\bbl@csarg\edef{kv@##1}{##2}}% \@namedef{\zap@space bbl@xeinter@\bbl@kv@label @#3@#4@#2 \@empty}% - {\ifnum\language=\l@nohyphenation - \expandafter\@gobble - \else - \expandafter\@firstofone - \fi - {#5}}% + {\bbl@ignoreinterchar{#5}}% \bbl@csarg\let{ic@\bbl@kv@label @#2}\@firstofone \bbl@exp{\\\bbl@for\\\bbl@tempa{\zap@space#3 \@empty}}{% \bbl@exp{\\\bbl@for\\\bbl@tempb{\zap@space#4 \@empty}}{% |