summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-11-11 21:12:10 +0000
committerKarl Berry <karl@freefriends.org>2023-11-11 21:12:10 +0000
commit501719bfed98b8d0f17c48707c4e58999f742f0f (patch)
tree021ce3a271666aa6f434c49ef59453797c26e066
parent3ea7d20391c1e2a566cd37f1ae577632beaaf774 (diff)
babel (11nov23)
git-svn-id: svn://tug.org/texlive/trunk@68816 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/babel/README.md17
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel-code.pdfbin635805 -> 641895 bytes
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel.pdfbin413338 -> 417319 bytes
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.dtx240
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.ins2
-rw-r--r--Master/texmf-dist/source/latex/babel/bbcompat.dtx2
-rw-r--r--Master/texmf-dist/source/latex/babel/locale.zipbin1033891 -> 1036974 bytes
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def6
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty6
-rw-r--r--Master/texmf-dist/tex/generic/babel/hyphen.cfg6
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/bua/babel-bua.ini166
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/bua/babel-buriat.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/or/babel-or.ini7
-rw-r--r--Master/texmf-dist/tex/generic/babel/luababel.def6
-rw-r--r--Master/texmf-dist/tex/generic/babel/nil.ldf2
-rw-r--r--Master/texmf-dist/tex/generic/babel/xebabel.def99
16 files changed, 525 insertions, 46 deletions
diff --git a/Master/texmf-dist/doc/latex/babel/README.md b/Master/texmf-dist/doc/latex/babel/README.md
index 3373157bb63..2957d780bb4 100644
--- a/Master/texmf-dist/doc/latex/babel/README.md
+++ b/Master/texmf-dist/doc/latex/babel/README.md
@@ -1,6 +1,6 @@
-## Babel 3.96
+## Babel 3.97
-2023-10-25
+2023-11-11
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -10,9 +10,9 @@ is a set of ini files for about 275 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.96 are described in:
+Changes in version 3.97 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-3.96.html
+https://latex3.github.io/babel/news/whats-new-in-babel-3.97.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -48,12 +48,9 @@ respective authors.
### Summary of latest changes
```
-3.96 2023-10-25
- * Added LGI to non-ASCII encodings.
- * New macro: \asciiencoding.
- * Removed OT1 in some ini files.
- * Improved support for Odia (thanks to @avisekjena).
- * Transform 'hyphen.repeat' in Croatian.
+3.97 2023-11-11
+ * Support for 'interchar' (xetex).
+ * New locale for Buriat, thanks to J. Khaganov.
```
### Previous changes
diff --git a/Master/texmf-dist/doc/latex/babel/babel-code.pdf b/Master/texmf-dist/doc/latex/babel/babel-code.pdf
index 7d0d603a36d..130befcb9ee 100644
--- a/Master/texmf-dist/doc/latex/babel/babel-code.pdf
+++ b/Master/texmf-dist/doc/latex/babel/babel-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/babel/babel.pdf b/Master/texmf-dist/doc/latex/babel/babel.pdf
index 4d1628d7d1c..da4b04f9288 100644
--- a/Master/texmf-dist/doc/latex/babel/babel.pdf
+++ b/Master/texmf-dist/doc/latex/babel/babel.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/babel/babel.dtx b/Master/texmf-dist/source/latex/babel/babel.dtx
index 8346f33f4bb..4345b09198a 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}[2023/10/25 v3.96 The Babel package]
+\ProvidesFile{babel.dtx}[2023/11/11 v3.97 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -271,10 +271,11 @@ are also some notes on its use with e-Plain and pdf-Plain \TeX.
\item[\sffamily\color{messages}What if I’m interested only in the
latest changes?] Changes and new features with relation to version 3.8
-are highlighted with \New{X.XX}\hspace{-.5em}, and there are some notes
-for the latest versions in
-\href{https://latex3.github.io/babel/}{the
-\babel{} site}. The most recent features can be still unstable.
+are highlighted with \New{X.XX}\hspace{-.5em}
+(\raisebox{.15ex}{$\oplus$} is a link to the \babel{} site), and there
+are some notes for the latest versions in
+\href{https://latex3.github.io/babel/}{the \babel{} site}. The most
+recent features can be still unstable.
\item[\sffamily\color{messages}Can I help?] Sure! If you are interested
in the \TeX{} multilingual support, please join the
@@ -2852,7 +2853,6 @@ languages. They are (from \textsf{interface3.pdf}):
\makebox[\linewidth][c]{*\qquad*\qquad*}
\smallskip
-
A few options (only \luatex) set some properties of the writing system
used by the language. These properties are \textit{always} applied to
the script, no matter which language is active. Although somewhat
@@ -3772,6 +3772,73 @@ This feature is activated with the first |\babelposthyphenation| or
\New{3.85} Enables and disables the transform with the given label in
the current language.
+\subsection{Support for \xetex{} interchar}
+
+\New{3.97} A few macros are provided to deal with locale dependent
+inter-character rules (aka ‘interchar’).
+
+\Describe{\babelcharclass}{\marg{locale}\marg{name}\marg{char-list}}
+
+Declares a new character class, which is assigned to the characters in
+\marg{char-list}, entered either as characters or in macro form
+(eg,~|\}|). If you need to enter them by their numeric value, use the
+\TeX{} |^|-notation (eg,~|^^^^1fa0|). Ranges are allowed, with a
+hyphen (eg,~|.,;a-zA-Z|). If you need the hyphen to be assigned a
+class, write it at the very beginning of the list.
+
+There are several predefined ‘global’ classes, namely
+|default|, |cjkideogram|, |cjkleftpunctuation|, |cjkrightpunctuation|,
+|boundary|, and |ignore|, which are described in the \xetex{} manual
+(currently CJK classes are ‘empty’, but they will be assigned in a
+future release).
+
+\Describe{\babelinterchar}{\oarg{options}\marg{locale}
+ \marg{class-first}\marg{class-second}\marg{code}}
+
+\marg{class-first} and \marg{class-second} can be comma separated lists
+of char classes, and all combinations are defined (so that 2 first
+classes with 2 second classes, define 4 combinations). In the
+\marg{options} field a key named |label| is available, which allows to
+enable or to disable the rule with the following two commands. Like
+prehyphenation transforms in \luatex{}, interchars are not applied if the
+current hyphenation rules are |nohyphenation|.
+
+\Describe{\enablelocaleinterchar}{\marg{label}}
+\DescribeOther{\disablelocaleinterchar}{\marg{label}}
+
+Enable or disable the interchar rules with the given label for the
+current language.
+
+\begin{example}
+ Not very useful, but illustrative (taken from the unfortunately
+ obsolete \textsf{interchar} package, by Zou Ho), to colorize the
+ letters ‘x’ and ‘y’ (this way to group text is usually not a
+ good idea, however).
+\begin{verbatim}
+\usepackage{color}
+\babelcharclass{english}{colored}{xy}
+\babelinterchar{english}{default, boundary}{colored}{\bgroup\color{red}}
+\babelinterchar{english}{colored}{default, boundary}{\egroup}
+\end{verbatim}
+ A more realistic example follows, which inserts a thin space
+ between a digit and a percent sign. Note the former is entered as a
+ range, and the latter in command form:
+\begin{verbatim}
+\babelcharclass{english}{digit}{0-9}
+\babelcharclass{english}{percent}{\%}
+\babelinterchar[label=percent]{english}{digit}{percent}{\,}
+\end{verbatim}
+\end{example}
+
+\begin{warning}
+ Keep in mind two points: (1) a character can be assigned a single
+ class; this is a limitation in the interchar mechanims that often
+ leads to incompatibilities; (2) since the character classes set with
+ |\babelcharclass| are saved (so that they can be restored), there is a
+ limit in the number of characters in the \marg{char-list} (which,
+ however, must be large enough for many uses).
+\end{warning}
+
\subsection{Selection based on BCP 47 tags}
\label{bcp47}
@@ -4462,7 +4529,7 @@ ibygreek, bgreek, serbianc, frenchle, ethiop} and \textsf{friulan}.
(\textsf{portuguese}), \textsf{brazil} (\textsf{brazilian}),
\textsf{russianb} (\textsf{russian}), \textsf{usorbian}
(\textsf{uppersorbian}), \textsf{vietnam} (\textsf{vietnamese}),
- \textsf{northernsami} (\textsf{samin}), \textsf{ukraineb}
+ \textsf{samin} (\textsf{northernsami}), \textsf{ukraineb}
(\textsf{ukrainian}). Deprecated names come in many cases from the
times when they had to be shortened to 8 characters.
\end{note}
@@ -5563,8 +5630,8 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.96>>
-%<<date=2023/10/25>>
+%<<version=3.97>>
+%<<date=2023/11/11>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -5757,7 +5824,7 @@ wouldn’t exist.
\bbl@trim{\expandafter\bbl@kvcmd\expandafter{\bbl@forkv@a}}{#2}{#4}}
% \end{macrocode}
%
-% A \textit{for} loop. Each item (trimmed), is |#1|. It cannot be
+% A \textit{for} loop. Each item (trimmed) is |#1|. It cannot be
% nested (it's doable, but we don't need it).
%
% \begin{macrocode}
@@ -13626,9 +13693,9 @@ wouldn’t exist.
%
% \subsection{XeTeX}
%
-% Unfortunately, the current encoding cannot be retrieved and
-% therefore it is reset always to |utf8|, which seems a sensible
-% default.
+% Unfortunately, the current encoding cannot be retrieved and
+% therefore it is reset always to |utf8|, which seems a sensible
+% default.
%
% \begin{macrocode}
%<<*Footnote changes>>
@@ -13747,6 +13814,145 @@ wouldn’t exist.
\DisableBabelHook{babel-fontspec}
<@Font selection@>
\def\bbl@provide@extra#1{}
+% \end{macrocode}
+%
+% \section{Support for interchar}
+%
+% \xetex{} reserves some values for CJK (although they are not set in
+% \textsc{xelatex}), so we make sure they are skipped. Define some user
+% names for the global classes, too.
+%
+% \begin{macrocode}
+\ifnum\xe@alloc@intercharclass<\thr@@
+ \xe@alloc@intercharclass\thr@@
+\fi
+\chardef\bbl@xeclass@default@=\z@
+\chardef\bbl@xeclass@cjkideogram@=\@ne
+\chardef\bbl@xeclass@cjkleftpunctuation@=\tw@
+\chardef\bbl@xeclass@cjkrightpunctuation@=\thr@@
+\chardef\bbl@xeclass@boundary@=4095
+\chardef\bbl@xeclass@ignore@=4096
+% \end{macrocode}
+%
+% The machinery is activated with a hook (enabled only if actually
+% used). Here |\bbl@tempc| is pre-set with |\bbl@usingxeclass|, defined
+% below. The standard mechanism based on |\originalTeX| to save, set
+% and restore values is used. |\count@| stores the previous char to be
+% set, except at the beginning (0) and after |\bbl@upto|, which is the
+% previous char negated, as a flag to mark a range.
+%
+% \begin{macrocode}
+\AddBabelHook{babel-interchar}{beforeextras}{%
+ \@nameuse{bbl@xechars@\languagename}}
+\DisableBabelHook{babel-interchar}
+\protected\def\bbl@charclass#1{%
+ \ifnum\count@<\z@
+ \count@-\count@
+ \loop
+ \bbl@exp{%
+ \\\babel@savevariable{\XeTeXcharclass`\Uchar\count@}}%
+ \XeTeXcharclass\count@ \bbl@tempc
+ \ifnum\count@<`#1\relax
+ \advance\count@\@ne
+ \repeat
+ \else
+ \babel@savevariable{\XeTeXcharclass`#1}%
+ \XeTeXcharclass`#1 \bbl@tempc
+ \fi
+ \count@`#1\relax}
+% \end{macrocode}
+%
+% Now the two user macros. Char classes are declared implicitly, and
+% then the macro to be executed at the |babel-interchar| hook is
+% created. The list of chars to be handled by the hook defined above
+% has internally the form
+% |\bbl@usingxeclass\bbl@xeclass@punct@english||\bbl@charclass{.}|%
+% |\bbl@charclass{,}| (etc.), where |\bbl@usingxeclass| stores the class to be
+% applied to the subsequent characters. The \cs{ifcat} part deals with
+% the alternative way to enter characters as macros (eg, |\}|). As a
+% special case, hyphens are stored as |\bbl@upto|, to deal with ranges.
+%
+% \begin{macrocode}
+\newcommand\babelcharclass[3]{%
+ \EnableBabelHook{babel-interchar}%
+ \bbl@csarg\newXeTeXintercharclass{xeclass@#2@#1}%
+ \def\bbl@tempb##1{%
+ \ifx##1\@empty\else
+ \ifx##1-%
+ \bbl@upto
+ \else
+ \bbl@charclass{%
+ \ifcat\noexpand##1\relax\bbl@stripslash##1\else\string##1\fi}%
+ \fi
+ \expandafter\bbl@tempb
+ \fi}%
+ \bbl@ifunset{bbl@xechars@#1}%
+ {\toks@{%
+ \babel@savevariable\XeTeXinterchartokenstate
+ \XeTeXinterchartokenstate\@ne
+ }}%
+ {\toks@\expandafter\expandafter\expandafter{%
+ \csname bbl@xechars@#1\endcsname}}%
+ \bbl@csarg\edef{xechars@#1}{%
+ \the\toks@
+ \bbl@usingxeclass\csname bbl@xeclass@#2@#1\endcsname
+ \bbl@tempb#3\@empty}}
+\protected\def\bbl@usingxeclass#1{\count@\z@ \let\bbl@tempc#1}
+\protected\def\bbl@upto{%
+ \ifnum\count@>\z@
+ \advance\count@\@ne
+ \count@-\count@
+ \else\ifnum\count@=\z@
+ \bbl@charclass{-}%
+ \else
+ \bbl@error{Double hyphens aren't allowed in \string\babelcharclass\\%
+ because it's potentially ambiguous}%
+ {See the manual for further info}%
+ \fi\fi}
+% \end{macrocode}
+%
+% And finally, the command with the code to be inserted. If the language
+% doesn’t define a class, then use the global one, as defined above.
+% For the definition there is a intermediate macro, which can be
+% ‘disabled’ with |\bbl@ic@<label>@<lang>|.
+%
+% \begin{macrocode}
+\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@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}}{%
+ \XeTeXinterchartoks
+ \@nameuse{bbl@xeclass@\bbl@tempa @%
+ \bbl@ifunset{bbl@xeclass@\bbl@tempa @#2}{}{#2}}
+ \@nameuse{bbl@xeclass@\bbl@tempb @%
+ \bbl@ifunset{bbl@xeclass@\bbl@tempb @#2}{}{#2}}
+ = \expandafter{%
+ \csname bbl@ic@\bbl@kv@label @#2\expandafter\endcsname
+ \csname\zap@space bbl@xeinter@\bbl@kv@label
+ @#3@#4@#2 \@empty\endcsname}}}}
+\DeclareRobustCommand\enablelocaleinterchar[1]{%
+ \bbl@ifunset{bbl@ic@#1@\languagename}%
+ {\bbl@error
+ {'#1' for '\languagename' cannot be enabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}}%
+ {\bbl@csarg\let{ic@#1@\languagename}\@firstofone}}
+\DeclareRobustCommand\disablelocaleinterchar[1]{%
+ \bbl@ifunset{bbl@ic@#1@\languagename}%
+ {\bbl@error
+ {'#1' for '\languagename' cannot be disabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}}%
+ {\bbl@csarg\let{ic@#1@\languagename}\@gobble}}
%</xetex>
% \end{macrocode}
%
@@ -14227,7 +14433,7 @@ wouldn’t exist.
end
}
\endgroup
-\ifx\newattribute\@undefined\else
+\ifx\newattribute\@undefined\else % Test for plain
\newattribute\bbl@attr@locale
\directlua{ Babel.attr_locale = luatexbase.registernumber'bbl@attr@locale' }
\AddBabelHook{luatex}{beforeextras}{%
@@ -14779,7 +14985,7 @@ function Babel.arabic.justify_hlist(head, line, gc, size, pack)
width = node.dimensions(line.head) % The 'natural' width
k_curr = #k_list % Traverse backwards, from the end
wt_pos = 1
-
+
while width < goal do
subst_done = true
k_item = k_list[k_curr].node
@@ -15007,14 +15213,14 @@ end
\else
\bbl@error{\string\babelcharproperty\space can be used only in\\%
vertical mode (preamble or between paragraphs)}%
- {See the manual for futher info}%
+ {See the manual for further info}%
\fi}
\newcommand\bbl@chprop[3][\the\count@]{%
\@tempcnta=#1\relax
\bbl@ifunset{bbl@chprop@#2}%
{\bbl@error{No property named '#2'. Allowed values are\\%
direction (bc), mirror (bmg), and linebreak (lb)}%
- {See the manual for futher info}}%
+ {See the manual for further info}}%
{}%
\loop
\bbl@cs{chprop@#2}{#3}%
diff --git a/Master/texmf-dist/source/latex/babel/babel.ins b/Master/texmf-dist/source/latex/babel/babel.ins
index b08918afa20..b47775f1173 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{2023/10/25}
+\def\filedate{2023/11/11}
\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 e534dab18fc..61e273e2f5a 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}[2023/10/25 v3.96]
+\ProvidesFile{bbcompat.dtx}[2023/11/11 v3.97]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/Master/texmf-dist/source/latex/babel/locale.zip b/Master/texmf-dist/source/latex/babel/locale.zip
index 1e3c1a842c1..0c241c10289 100644
--- a/Master/texmf-dist/source/latex/babel/locale.zip
+++ b/Master/texmf-dist/source/latex/babel/locale.zip
Binary files differ
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index ba551971ccf..c8d8e5b5c3d 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/10/25 v3.96 Babel common definitions]
+\ProvidesFile{babel.def}[2023/11/11 v3.97 Babel common definitions]
\ifx\AtBeginDocument\@undefined % TODO. change test.
\def\@empty{}
\def\loadlocalcfg#1{%
@@ -595,8 +595,8 @@
\toks@\expandafter{\bbl@tempc#3}%
\expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
\fi}
-\def\bbl@version{3.96}
-\def\bbl@date{2023/10/25}
+\def\bbl@version{3.97}
+\def\bbl@date{2023/11/11}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index 49a152e228a..9217a51f66e 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/10/25 v3.96 The Babel package]
+\ProvidesPackage{babel}[2023/11/11 v3.97 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}%
\let\bbl@debug\@firstofone
@@ -470,8 +470,8 @@
\expandafter\@secondoftwo
\fi}
\fi
-\def\bbl@version{3.96}
-\def\bbl@date{2023/10/25}
+\def\bbl@version{3.97}
+\def\bbl@date{2023/11/11}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
index c414a082b6f..59e4eb657b3 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/10/25 v3.96 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2023/11/11 v3.97 Babel hyphens]
\xdef\bbl@format{\jobname}
-\def\bbl@version{3.96}
-\def\bbl@date{2023/10/25}
+\def\bbl@version{3.97}
+\def\bbl@date{2023/11/11}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/locale/bua/babel-bua.ini b/Master/texmf-dist/tex/generic/babel/locale/bua/babel-bua.ini
new file mode 100644
index 00000000000..b9ffa9cf370
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/bua/babel-bua.ini
@@ -0,0 +1,166 @@
+; 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:
+; * Common Locale Data Repository (license Unicode):
+; http://cldr.unicode.org/
+; http://unicode.org/copyright.html
+; Contributed by J. Khaganov <@ponte-vecchio>
+
+[identification]
+charset = utf8
+version = 1.0
+date = 2023-10-29
+name.local = Буряад
+name.english = Buriat
+name.babel = buriat
+tag.bcp47 = bua
+language.tag.bcp47 = bua
+tag.bcp47.likely = bua-Cyrl-RU
+tag.opentype = RBU
+script.name = Cyrillic
+script.tag.bcp47 = Cyrl
+script.tag.opentype = cyrl
+level = 1
+encodings = T2A T2B
+derivate = no
+
+[captions]
+preface = Оршол
+ref = Ашаглаһан ном
+abstract = Тобшолол
+bib = Ном зүй
+chapter = Бүлэг
+appendix = Хабсаралта
+contents = Гаршаг
+listfigure = Зурагай жагсаалт
+listtable = Хүснэгэтэй жагсаалт
+index = Бүгэд хэлхээс
+figure = Зураг
+table = Хүсэнэгт
+part = Бүлэг
+encl = Оруулаха
+cc =
+headto =
+page = Хуудаһан
+see = Үз
+also = Mүн үз
+proof =
+glossary =
+
+[captions.licr]
+preface = \CYRO\cyrr\cyrsh\cyro\cyrl
+ref = \CYRA\cyrsh\cyra\cyrg\cyrl\cyra\cyrhsha\cyra\cyrn\space \cyrn\cyro\cyrm
+abstract = \CYRT\cyro\cyrb\cyrsh\cyro\cyrl\cyro\cyrl
+bib = \CYRN\cyro\cyrm\space \cyrz\cyry\cyrishrt
+chapter = \CYRB\cyry\cyrl\cyrerev\cyrg
+appendix = \CYRH\cyra\cyrb\cyrs\cyra\cyrr\cyra\cyrl\cyrt\cyra
+contents = \CYRG\cyra\cyrr\cyrsh\cyra\cyrg
+listfigure = \CYRZ\cyru\cyrr\cyra\cyrg\cyra\cyrishrt\space \cyrzh\cyra\cyrg\cyrs\cyra\cyra\cyrl\cyrt
+listtable = \CYRH\cyry\cyrs\cyrn\cyrerev\cyrg\cyrerev\cyre\cyrishrt\space \cyrzh\cyra\cyrg\cyrs\cyra\cyra\cyrl\cyrt
+index = \CYRB\cyry\cyrg\cyrerev\cyrd\space \cyrh\cyrerev\cyrl\cyrh\cyrerev\cyrerev\cyrs
+figure = \CYRZ\cyru\cyrr\cyra\cyrg
+table = \CYRH\cyry\cyrs\cyrerev\cyrn\cyrerev\cyrg\cyrt
+part = \CYRB\cyry\cyrl\cyrerev\cyrg
+encl = \CYRO\cyrr\cyru\cyru\cyrl\cyra\cyrh\cyra
+cc =
+headto =
+page = \CYRH\cyru\cyru\cyrd\cyra\cyrhsha\cyra\cyrn
+see = \CYRY\cyrz
+also = \CYRM\cyry\cyrn\space \cyry\cyrz
+proof =
+glossary =
+
+[date.gregorian]
+date.long = [y][ ]оной [MMMM][ ]һарын [dd]-ны
+date.short = [dd] [MM][ ]һара [y]
+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 = арбан хоёр
+; TODO: Tibetan/Sanskrit variants
+days.wide.sun = Гарагай нэгэн
+days.wide.mon = Гарагай хоёр
+days.wide.tue = Гарагай гурбан
+days.wide.wed = Гарагай дүрбэн
+days.wide.thu = Гарагай табан
+days.wide.fri = Гарагай зургаан
+days.wide.sat = Гарагай долоон
+
+[date.gregorian.licr]
+months.wide.1 = \cyrn\cyrerev\cyrg\cyrerev\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.2 = \cyrh\cyro\cyryo\cyrr\cyrd\cyru\cyrg\cyra\cyra\cyrr
+months.wide.3 = \cyrg\cyru\cyrr\cyrb\cyra\cyrd\cyru\cyrg\cyra\cyrr
+months.wide.4 = \cyrd\cyry\cyrr\cyrb\cyrerev\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.5 = \cyrt\cyra\cyrb\cyra\cyrd\cyru\cyrg\cyra\cyra\cyrr
+months.wide.6 = \cyrz\cyru\cyrr\cyrg\cyra\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.7 = \cyrd\cyro\cyrl\cyro\cyro\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.8 = \cyrn\cyra\cyrishrt\cyrm\cyra\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.9 = \cyryu\cyrhsha\cyrerev\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.10 = \cyra\cyrr\cyrb\cyra\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.11 = \cyra\cyrr\cyrb\cyra\cyrn\space \cyrn\cyrerev\cyrg\cyrerev\cyrd\cyry\cyrg\cyrerev\cyrerev\cyrr
+months.wide.12 = \cyra\cyrr\cyrb\cyra\cyrn\space \cyrh\cyro\cyryo\cyrr\cyrd\cyru\cyrg\cyra\cyra\cyrr
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules = mongolian
+lefthyphenmin =
+righthyphenmin =
+hyphenchar =
+prehyphenchar =
+posthyphenchar =
+exhyphenchar =
+preexhyphenchar =
+postexhyphenchar =
+hyphenationmin =
+
+[characters]
+delimiters.quotes = ‘’ “” «»
+exemplarCharacters = [ а б в г д е ё ж з и й к л м н о ө п р с т у ү ф х ц ч ш щ ъ ы ь э ю я]
+auxiliary = [ е ё ф щ ъ ь ]
+punctuation = [\\- ‐ ‑ – — , ; \\: ! ? . … ' ‘ ’ \" “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ ″]
+index = [ А Б В Г Д Е Ё Ж З И Й К Л М Н О Ө П Р С Т У Ү Ф Х Һ Ц Ч Ш Щ Ъ Ы Ь Э Ю Я ]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits = 1
+decimal = ,
+exponential = E
+group =
+infinity = ∞
+list = ;
+minusSign = -
+nan =
+perMille = ‰
+percentSign = %
+plusSign = +
+superscriptingExponent = ×
+
+[counters]
+upper = А Б В Г Д Е Ж З И К Л М Н О Ө П Р С Т У Ү Ф Х Һ Ц Ч Ш Щ Э Ю Я
+upper.full = А Б В Г Д Е Ё Ж З И Й К Л М Н О Ө П Р С Т У Ү Ф Х Һ Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
+lower = а б в г д е ж з и к л м н о ө п р с т у ү ф х һ ц ч ш щ э ю я
+lower.full = а б в г д е ё ж з и й к л м н о ө п р с т у ү ф х һ ц ч ш щ ъ ы ь э ю я \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/bua/babel-buriat.tex b/Master/texmf-dist/tex/generic/babel/locale/bua/babel-buriat.tex
new file mode 100644
index 00000000000..8d5fe7eed6b
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/bua/babel-buriat.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{bua}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/or/babel-or.ini b/Master/texmf-dist/tex/generic/babel/locale/or/babel-or.ini
index 7ac84c045ab..269b5087031 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/or/babel-or.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/or/babel-or.ini
@@ -10,8 +10,8 @@
[identification]
charset = utf8
-version = 1.11
-date = 2023-10-21
+version = 1.12
+date = 2023-11-02
name.local = ଓଡ଼ିଆ
name.english = Odia
name.babel = odia oriya
@@ -170,8 +170,7 @@ plusSign = +
superscriptingExponent = ×
[counters]
-alphabetic = କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ ଢ ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯ ର ଲ ଳ ଶ ସ ଷ ହ କ୍ଷ
-; alphabetic = କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ ଡ଼ ଢ ଢ଼ ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯ ୟ ର ଲ ଳ ୱ ଶ ଷ ସ ହ
+alphabetic = କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ ଡ଼ ଢ ଢ଼ ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯ ୟ ର ଲ ଳ ୱ ଶ ଷ ସ ହ
akshar = ଅ ଆ ଇ ଈ ଉ ଊ ଋ ଏ ଐ ଓ ଔ
[transforms.prehyphenation]
diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def
index c66ad6f222a..d1b790c836a 100644
--- a/Master/texmf-dist/tex/generic/babel/luababel.def
+++ b/Master/texmf-dist/tex/generic/babel/luababel.def
@@ -295,7 +295,7 @@
end
}
\endgroup
-\ifx\newattribute\@undefined\else
+\ifx\newattribute\@undefined\else % Test for plain
\newattribute\bbl@attr@locale
\directlua{ Babel.attr_locale = luatexbase.registernumber'bbl@attr@locale' }
\AddBabelHook{luatex}{beforeextras}{%
@@ -1156,14 +1156,14 @@ end
\else
\bbl@error{\string\babelcharproperty\space can be used only in\\%
vertical mode (preamble or between paragraphs)}%
- {See the manual for futher info}%
+ {See the manual for further info}%
\fi}
\newcommand\bbl@chprop[3][\the\count@]{%
\@tempcnta=#1\relax
\bbl@ifunset{bbl@chprop@#2}%
{\bbl@error{No property named '#2'. Allowed values are\\%
direction (bc), mirror (bmg), and linebreak (lb)}%
- {See the manual for futher info}}%
+ {See the manual for further info}}%
{}%
\loop
\bbl@cs{chprop@#2}{#3}%
diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf
index 448f7943629..12bef876f9e 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/10/25 v3.96 Nil language]
+\ProvidesLanguage{nil}[2023/11/11 v3.97 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 871b220583a..65def7931db 100644
--- a/Master/texmf-dist/tex/generic/babel/xebabel.def
+++ b/Master/texmf-dist/tex/generic/babel/xebabel.def
@@ -275,6 +275,105 @@
\bbl@csarg\def{famrst@#4}{\bbl@font@set{#1}#2#3}}
\def\bbl@font@fams{rm,sf,tt}
\def\bbl@provide@extra#1{}
+\ifnum\xe@alloc@intercharclass<\thr@@
+ \xe@alloc@intercharclass\thr@@
+\fi
+\chardef\bbl@xeclass@default@=\z@
+\chardef\bbl@xeclass@cjkideogram@=\@ne
+\chardef\bbl@xeclass@cjkleftpunctuation@=\tw@
+\chardef\bbl@xeclass@cjkrightpunctuation@=\thr@@
+\chardef\bbl@xeclass@boundary@=4095
+\chardef\bbl@xeclass@ignore@=4096
+\AddBabelHook{babel-interchar}{beforeextras}{%
+ \@nameuse{bbl@xechars@\languagename}}
+\DisableBabelHook{babel-interchar}
+\protected\def\bbl@charclass#1{%
+ \ifnum\count@<\z@
+ \count@-\count@
+ \loop
+ \bbl@exp{%
+ \\\babel@savevariable{\XeTeXcharclass`\Uchar\count@}}%
+ \XeTeXcharclass\count@ \bbl@tempc
+ \ifnum\count@<`#1\relax
+ \advance\count@\@ne
+ \repeat
+ \else
+ \babel@savevariable{\XeTeXcharclass`#1}%
+ \XeTeXcharclass`#1 \bbl@tempc
+ \fi
+ \count@`#1\relax}
+\newcommand\babelcharclass[3]{%
+ \EnableBabelHook{babel-interchar}%
+ \bbl@csarg\newXeTeXintercharclass{xeclass@#2@#1}%
+ \def\bbl@tempb##1{%
+ \ifx##1\@empty\else
+ \ifx##1-%
+ \bbl@upto
+ \else
+ \bbl@charclass{%
+ \ifcat\noexpand##1\relax\bbl@stripslash##1\else\string##1\fi}%
+ \fi
+ \expandafter\bbl@tempb
+ \fi}%
+ \bbl@ifunset{bbl@xechars@#1}%
+ {\toks@{%
+ \babel@savevariable\XeTeXinterchartokenstate
+ \XeTeXinterchartokenstate\@ne
+ }}%
+ {\toks@\expandafter\expandafter\expandafter{%
+ \csname bbl@xechars@#1\endcsname}}%
+ \bbl@csarg\edef{xechars@#1}{%
+ \the\toks@
+ \bbl@usingxeclass\csname bbl@xeclass@#2@#1\endcsname
+ \bbl@tempb#3\@empty}}
+\protected\def\bbl@usingxeclass#1{\count@\z@ \let\bbl@tempc#1}
+\protected\def\bbl@upto{%
+ \ifnum\count@>\z@
+ \advance\count@\@ne
+ \count@-\count@
+ \else\ifnum\count@=\z@
+ \bbl@charclass{-}%
+ \else
+ \bbl@error{Double hyphens aren't allowed in \string\babelcharclass\\%
+ because it's potentially ambiguous}%
+ {See the manual for further info}%
+ \fi\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@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}}{%
+ \XeTeXinterchartoks
+ \@nameuse{bbl@xeclass@\bbl@tempa @%
+ \bbl@ifunset{bbl@xeclass@\bbl@tempa @#2}{}{#2}}
+ \@nameuse{bbl@xeclass@\bbl@tempb @%
+ \bbl@ifunset{bbl@xeclass@\bbl@tempb @#2}{}{#2}}
+ = \expandafter{%
+ \csname bbl@ic@\bbl@kv@label @#2\expandafter\endcsname
+ \csname\zap@space bbl@xeinter@\bbl@kv@label
+ @#3@#4@#2 \@empty\endcsname}}}}
+\DeclareRobustCommand\enablelocaleinterchar[1]{%
+ \bbl@ifunset{bbl@ic@#1@\languagename}%
+ {\bbl@error
+ {'#1' for '\languagename' cannot be enabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}}%
+ {\bbl@csarg\let{ic@#1@\languagename}\@firstofone}}
+\DeclareRobustCommand\disablelocaleinterchar[1]{%
+ \bbl@ifunset{bbl@ic@#1@\languagename}%
+ {\bbl@error
+ {'#1' for '\languagename' cannot be disabled.\\%
+ Maybe there is a typo.}%
+ {See the manual for further details.}}%
+ {\bbl@csarg\let{ic@#1@\languagename}\@gobble}}
\providecommand\bbl@provide@intraspace{}
\bbl@trace{Redefinitions for bidi layout}
\def\bbl@sspre@caption{%