texlive[72320] Master/texmf-dist: babel (18sep24)
commits+karl at tug.org
commits+karl at tug.org
Wed Sep 18 21:25:46 CEST 2024
Revision: 72320
https://tug.org/svn/texlive?view=revision&revision=72320
Author: karl
Date: 2024-09-18 21:25:46 +0200 (Wed, 18 Sep 2024)
Log Message:
-----------
babel (18sep24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/babel/README.md
trunk/Master/texmf-dist/doc/latex/babel/babel-code.pdf
trunk/Master/texmf-dist/doc/latex/babel/babel.pdf
trunk/Master/texmf-dist/source/latex/babel/babel.dtx
trunk/Master/texmf-dist/source/latex/babel/babel.ins
trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
trunk/Master/texmf-dist/source/latex/babel/locale.zip
trunk/Master/texmf-dist/tex/generic/babel/babel.def
trunk/Master/texmf-dist/tex/generic/babel/babel.sty
trunk/Master/texmf-dist/tex/generic/babel/errbabel.def
trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md 2024-09-18 19:25:46 UTC (rev 72320)
@@ -1,6 +1,6 @@
-## Babel 24.9
+## Babel 24.10
-2024-08-29
+2024-09-18
`babel` is the multilingual framework for localizing documents in
LaTeX, LuaLaTeX, XeLaTeX. It manages culturally-determined
@@ -10,9 +10,9 @@
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 24.9 are described in:
+Changes in version 24.10 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-24.9.html
+https://latex3.github.io/babel/news/whats-new-in-babel-24.10.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -48,9 +48,11 @@
### Summary of latest changes
```
-24.9 2024-08-29
- * New transform 'digits.native' (alternative to `mapdigits').
- * Tentative transforms for CJK spacing and line breaking.
+24.10 2024-09-18
+ * \localename replaces the buggy \languagename. Added
+ \mainlocalename.
+ * \babelhyphenmins for better control of those parameters and,
+ in lualatex, \hyphenationmin.
```
### Previous changes
Modified: trunk/Master/texmf-dist/doc/latex/babel/babel-code.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/babel/babel.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/babel/babel.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.dtx 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx 2024-09-18 19:25:46 UTC (rev 72320)
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2024/08/29 v24.9 The Babel package]
+\ProvidesFile{babel.dtx}[2024/09/18 v24.10 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -168,7 +168,10 @@
\def\args#1{%
\def\bbl at tempa{#1}%
\ifx\bbl at tempa\@empty\else#1\vskip1ex\fi\ignorespaces}
-\begingroup % Changes to ltxdoc (add <<...>> syntax)
+% Changes to doc.sty (add <<...>> syntax)
+\def\Module#1{%
+ \mod at math@codes$\langle${\color{thered}$\mathsf{#1}$}$\rangle$}
+\begingroup
\catcode`\<\active
\catcode`\>\active
\gdef\check at plus@etc{%
@@ -182,8 +185,8 @@
\fi\fi\fi
\bbl at next}
\gdef\var at module#1#2#3>>{%
- $\langle$\pm at module#2#3>$\rangle$%
- \ifx*#2\ $\equiv$\fi}
+ $\langle$\pm at module#2#3>$\rangle$%
+ \ifx*#2\ $\equiv$\fi}
\endgroup
\renewcommand*\l at section[2]{%
\ifnum \c at tocdepth >\z@
@@ -281,6 +284,19 @@
and \pdftex, \xetex{} and \luatex{} with the \babel{} package. There
are also some notes on its use with e-Plain and pdf-Plain \TeX.
+\item[\sffamily\color{messages}I only need learn the most basic
+features.] The first subsections (1.1-1.3) describe the traditional way
+of loading a language (with |ldf| files), which is usually all you need.
+The alternative way based on |ini| files, which complements the
+previous one (it does \textit{not} replace it, although it is still
+necessary in some languages), is described below; go to \ref{inifiles}.
+
+\item[\sffamily\color{messages}I don’t like manuals. I prefer sample
+ files.] This manual contains lots of examples and tips, but in GitHub
+ there are many
+ \href{https://github.com/latex3/babel/tree/master/samples}{sample
+ files}.
+
\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}
@@ -312,19 +328,6 @@
\item[\sffamily\color{messages}How can I contribute a new
language?] See section \ref{contribute} for contributing a language.
-\item[\sffamily\color{messages}I only need learn the most basic
-features.] The first subsections (1.1-1.3) describe the traditional way
-of loading a language (with |ldf| files), which is usually all you need.
-The alternative way based on |ini| files, which complements the
-previous one (it does \textit{not} replace it, although it is still
-necessary in some languages), is described below; go to \ref{inifiles}.
-
-\item[\sffamily\color{messages}I don’t like manuals. I prefer sample
- files.] This manual contains lots of examples and tips, but in GitHub
- there are many
- \href{https://github.com/latex3/babel/tree/master/samples}{sample
- files}.
-
\item[\sffamily\color{messages}Where is the code?]
Run |lualatex --jobname=babel-code \let\babelcode\relax\input{babel.dtx}|.
\end{description}
@@ -657,6 +660,100 @@
for |lubakatanga|). See section \ref{bcp47} for further details.
\end{note}
+\subsection{Languages supported by \babel{} with \textsf{ldf} files}
+
+(To be updated.) In the following table most of the languages supported
+by \babel{} with and |.ldf| file are listed, together with the names of
+the option which you can load \babel\ with for each language. Note this
+list is open and the current options may be different. It does not
+include |ini| files (see below). Except in a few cases (eg, |ngerman|,
+|serbianc|, |acadian|) names are those of the Unicode CLDR (or based on
+them).
+
+\begin{description}
+\itemsep=-\parskip
+\sffamily
+\item[Afrikaans] afrikaans
+\item[Azerbaijani] azerbaijani
+\item[Basque] basque
+\item[Breton] breton
+\item[Bulgarian] bulgarian
+\item[Catalan] catalan
+\item[Croatian] croatian
+\item[Czech] czech
+\item[Danish] danish
+\item[Dutch] dutch
+\item[English] english, american (\textit{preferred to} USenglish), british (\textit{preferred to}
+ UKenglish), canadian, australian, newzealand
+\item[Esperanto] esperanto
+\item[Estonian] estonian
+\item[Finnish] finnish
+\item[French] french, acadian
+\item[Galician] galician
+\item[German] ngerman, naustrian, german, austrian
+\item[Greek] greek, polutonikogreek
+\item[Hebrew] hebrew
+\item[Icelandic] icelandic
+\item[Indonesian] indonesian
+\item[Interlingua] interlingua
+\item[Irish Gaelic] irish
+\item[Italian] italian
+\item[Latin] latin
+\item[Lower Sorbian] lowersorbian
+\item[Malay] malay (\textit{preferred to} melayu)
+\item[Northern Sami] northernsami
+\item[Norwegian] norsk, nynorsk
+\item[Polish] polish
+\item[Portuguese] portuguese, brazilian
+\item[Romanian] romanian
+\item[Russian] russian
+\item[Scottish Gaelic] scottishgaelic (\textit{preferred to} scottish)
+\item[Spanish] spanish
+\item[Slovakian] slovak
+\item[Slovenian] slovene
+\item[Swedish] swedish
+\item[Serbian] serbian
+\item[Turkish] turkish
+\item[Ukrainian] ukrainian
+\item[Upper Sorbian] uppersorbian
+\item[Welsh] welsh
+\end{description}
+
+There are more languages not listed above, including \textsf{hindi,
+thai, thaicjk, latvian, turkmen, magyar, mongolian, romansh,
+lithuanian, spanglish, vietnamese, japanese, pinyin, arabic, farsi,
+ibygreek, bgreek, serbianc, frenchle, ethiop} and \textsf{friulan}.
+
+\begin{note}
+ There are also some deprecated names (a few has been even removed):
+ \textsf{frenchb} or \textsf{francais}, as well as \textsf{canadien}
+ (\textsf{french}), \textsf{germanb} (\textsf{german}),
+ \textsf{bahasa}, \textsf{indon} or \textsf{bahasai}
+ (\textsf{indonesian}), \textsf{lsorbian} (\textsf{lowersorbian}),
+ \textsf{bahasam} (\textsf{malay}), \textsf{portuges}
+ (\textsf{portuguese}), \textsf{brazil} (\textsf{brazilian}),
+ \textsf{russianb} (\textsf{russian}), \textsf{usorbian}
+ (\textsf{uppersorbian}), \textsf{vietnam} (\textsf{vietnamese}),
+ \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}
+
+Most of them work out of the box, but some may require extra fonts,
+encoding files, a preprocessor or even a complete framework (like
+\textsf{CJK} or \textsf{luatexja}). For example, if you have got the
+\textsf{velthuis/devnag} package, you can create a file with extension
+|.dn|:
+\begin{verbatim}
+\documentclass{article}
+\usepackage[hindi]{babel}
+\begin{document}
+{\dn devaanaa.m priya.h}
+\end{document}
+\end{verbatim}
+Then you preprocess it with |devnag| \m{file}, which creates
+\m{file}|.tex|; you can then typeset the latter with \LaTeX.
+
\subsection{Modifiers}
\New{3.9c} The basic behavior of some languages can be modified when
@@ -3069,26 +3166,28 @@
\subsection{Accessing language info}
-\Describe{\languagename}{}
-The control sequence |\languagename| contains the name of the
-current language.
+\Describe{\localename}{}
+\DescribeOther{\mainlocalename}
+\DescribeOther{\languagename}
+\New{29.10} The control sequence |\localename| contains the name of the current
+locale. This is now the recommended way to retrieve the current
+language. In addtion, |\mainlocalename| contains the main language.
+|\languagename| is still used internally, but it is now discouraged at
+the user level.
+
\begin{warning}
- Due to some internal inconsistencies in catcodes, it should
- \textit{not} be used to test its value. Use \textsf{iflang}, by
- Heiko Oberdiek.
+ Due to a bug, which lead to some internal inconsistencies in
+ catcodes, |\languagename| should \textit{not} be used to test which
+ is the current language. Rely on |\localename| or, if you still need
+ |\languagename| for some reason, on \textsf{iflang}, by Heiko Oberdiek.
\end{warning}
\Describe{\iflanguage}{\marg{language}\marg{true}\marg{false}}
-If more than one language is used, it might be necessary to know which
-language is active at a specific time. This can be checked by a call
-to |\iflanguage|, but note here ``language'' is used in the \TeX{}
-sense, as a set of hyphenation patterns, and \textit{not} as its
-\textsf{babel} name. This macro takes three arguments. The first
-argument is the name of a language; the second and third arguments are
-the actions to take if the result of the test is true or false
-respectively.
+Here ``language'' is used in the \TeX{} sense, as a set of hyphenation
+patterns, and \textit{not} as its \textsf{babel} name. The first
+argument is the name of a language.
\Describe{\localeinfo}{%
\colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}{\marg{field}}}
@@ -3099,8 +3198,6 @@
\begin{description}
\itemsep=-\parskip
\item[|name.english|] as provided by the Unicode CLDR.
-%%% \item[|name.locale|] is the equivalent of |\languagename|. Not yet
-%%% activated because the bug in \languagename is far from trivial.
\item[|tag.ini|] is the tag of the |ini| file (the way this
file is identified in its name).
\item[|tag.bcp47|] is the full BCP 47 tag (see the warning below). This
@@ -3297,8 +3394,16 @@
\begin{note}
Using |\babelhyphenation| with Southeast Asian scripts is mostly
pointless. But with |\babelpatterns| (below) you may fine-tune line
- breaking (only \luatex). Even if there are no patterns for the
- language, you can add at least some typical cases.
+ breaking (only \luatex). For example:
+\begingroup
+\catcode`@=13
+\def@#1@{{\fontspec{Loma}#1}}
+\begin{verbatim}
+\babelpatterns[thai]{@ศึก@2@ษา@}
+\end{verbatim}
+\endgroup
+ Even if there are no patterns for the language, you can add at least
+ some typical cases.
\end{note}
\begin{note}
@@ -3308,21 +3413,6 @@
fully set up and an error can be raised.
\end{note}
-\Describe{\begin\menv{hyphenrules}}{\marg{language}\Eenv{hyphenrules}}
-
-The environment \Lenv{hyphenrules} can be used to select \emph{only} the
-hyphenation rules to be used (it can be used as command, too). This can
-for instance be used to select ‘nohyphenation’, provided that in
-\file{language.dat} the ‘language’ \textsf{nohyphenation} is defined by
-loading \file{zerohyph.tex}. It deactivates language shorthands, too
-(but not user shorthands).
-
-Except for these simple uses, |hyphenrules| is deprecated and
-|otherlanguage*| (the starred version) is preferred, because the former
-does not take into account possible changes in encodings of characters
-like, say, |'| done by some languages (eg, \textsf{italian},
-\textsf{french}, \textsf{ukrainian}).
-
\Describe{\babelpatterns}{\texttt{[}\langlist\texttt{]}%
\marg{patterns}}
@@ -3374,6 +3464,46 @@
alternative to a transform is |\babelpatterns|.
\end{note}
+\Describe{\babelhyphenmins}{%
+ \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}%
+ \texttt{[}\langlist\texttt{]}%
+ \marg{left}\marg{right}\oarg{hyphenationmin}}
+
+\New{24.10} See the news page for the rationale for this commands. It
+sets the corresponding values for the given languages (all languages
+without the optional argument). With the star, the values are also
+applied immediately (the optional argument and the star are currently
+incompatible). The optional argument is available only in \luatex.
+\begin{example}
+You are typesetting a book with wide lines and want to limit the
+number of hyphens in all languages:
+\begin{verbatim}
+ \babelhyphenmins{3}{4}
+\end{verbatim}
+But there are also some 3-column text and you want to be more flexible:
+\begin{verbatim}
+ \begin{multicols}{3}
+ \babelhyphenmins*{2}{3}
+ ...
+ \end{multicols}
+\end{verbatim}
+\end{example}
+
+\Describe{\begin\menv{hyphenrules}}{\marg{language}\Eenv{hyphenrules}}
+
+The environment \Lenv{hyphenrules} can be used to select \emph{only} the
+hyphenation rules to be used (it can be used as command, too). This can
+for instance be used to select ‘nohyphenation’, provided that in
+\file{language.dat} the ‘language’ \textsf{nohyphenation} is defined by
+loading \file{zerohyph.tex}. It deactivates language shorthands, too
+(but not user shorthands).
+
+Except for these simple uses, |hyphenrules| is deprecated and
+|otherlanguage*| (the starred version) is preferred, because the former
+does not take into account possible changes in encodings of characters
+like, say, |'| done by some languages (eg, \textsf{italian},
+\textsf{french}, \textsf{ukrainian}).
+
\subsection{Transforms}
\label{transforms}
@@ -4385,99 +4515,6 @@
|toc,lof,lot|, but you may redefine it with |\renewcommand| (it's up
to you to make sure no toc type is duplicated).
-\subsection{Languages supported by \babel{} with \textsf{ldf} files}
-
-In the following table most of the languages supported by \babel{} with
-and |.ldf| file are listed, together with the names of the option which
-you can load \babel\ with for each language. Note this list is open and
-the current options may be different. It does not include |ini| files
-(see below). Except in a few cases (eg, |ngerman|, |serbianc|,
-|acadian|) names are those of the Unicode CLDR (or based on them).
-
-\begin{description}
-\itemsep=-\parskip
-\sffamily
-\item[Afrikaans] afrikaans
-\item[Azerbaijani] azerbaijani
-\item[Basque] basque
-\item[Breton] breton
-\item[Bulgarian] bulgarian
-\item[Catalan] catalan
-\item[Croatian] croatian
-\item[Czech] czech
-\item[Danish] danish
-\item[Dutch] dutch
-\item[English] english, american (\textit{preferred to} USenglish), british (\textit{preferred to}
- UKenglish), canadian, australian, newzealand
-\item[Esperanto] esperanto
-\item[Estonian] estonian
-\item[Finnish] finnish
-\item[French] french, acadian
-\item[Galician] galician
-\item[German] ngerman, naustrian, german, austrian
-\item[Greek] greek, polutonikogreek
-\item[Hebrew] hebrew
-\item[Icelandic] icelandic
-\item[Indonesian] indonesian
-\item[Interlingua] interlingua
-\item[Irish Gaelic] irish
-\item[Italian] italian
-\item[Latin] latin
-\item[Lower Sorbian] lowersorbian
-\item[Malay] malay (\textit{preferred to} melayu)
-\item[Northern Sami] northernsami
-\item[Norwegian] norsk, nynorsk
-\item[Polish] polish
-\item[Portuguese] portuguese, brazilian
-\item[Romanian] romanian
-\item[Russian] russian
-\item[Scottish Gaelic] scottishgaelic (\textit{preferred to} scottish)
-\item[Spanish] spanish
-\item[Slovakian] slovak
-\item[Slovenian] slovene
-\item[Swedish] swedish
-\item[Serbian] serbian
-\item[Turkish] turkish
-\item[Ukrainian] ukrainian
-\item[Upper Sorbian] uppersorbian
-\item[Welsh] welsh
-\end{description}
-
-There are more languages not listed above, including \textsf{hindi,
-thai, thaicjk, latvian, turkmen, magyar, mongolian, romansh,
-lithuanian, spanglish, vietnamese, japanese, pinyin, arabic, farsi,
-ibygreek, bgreek, serbianc, frenchle, ethiop} and \textsf{friulan}.
-
-\begin{note}
- There are also some deprecated names (a few has been even removed):
- \textsf{frenchb} or \textsf{francais}, as well as \textsf{canadien}
- (\textsf{french}), \textsf{germanb} (\textsf{german}),
- \textsf{bahasa}, \textsf{indon} or \textsf{bahasai}
- (\textsf{indonesian}), \textsf{lsorbian} (\textsf{lowersorbian}),
- \textsf{bahasam} (\textsf{malay}), \textsf{portuges}
- (\textsf{portuguese}), \textsf{brazil} (\textsf{brazilian}),
- \textsf{russianb} (\textsf{russian}), \textsf{usorbian}
- (\textsf{uppersorbian}), \textsf{vietnam} (\textsf{vietnamese}),
- \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}
-
-Most of them work out of the box, but some may require extra fonts,
-encoding files, a preprocessor or even a complete framework (like
-\textsf{CJK} or \textsf{luatexja}). For example, if you have got the
-\textsf{velthuis/devnag} package, you can create a file with extension
-|.dn|:
-\begin{verbatim}
-\documentclass{article}
-\usepackage[hindi]{babel}
-\begin{document}
-{\dn devaanaa.m priya.h}
-\end{document}
-\end{verbatim}
-Then you preprocess it with |devnag| \m{file}, which creates
-\m{file}|.tex|; you can then typeset the latter with \LaTeX.
-
\subsection{Unicode character properties in \luatex}
\New{3.32} Part of the \babel{} job is to apply Unicode rules to some
@@ -4616,38 +4653,6 @@
\item[zhspacing] Spacing for CJK documents in \xetex.
\end{description}
-\subsection{Current and future work}
-
-The current work is focused on the so-called complex scripts in \luatex{}.
-In 8-bit engines, \babel{} provided a basic support for bidi text as
-part of the style for Hebrew, but it is somewhat unsatisfactory and
-internally replaces some hardwired commands by other hardwired commands
-(generic changes would be much better).
-
-Useful additions would be, for example, time, currency, addresses and
-personal names.\footnote{See for example POSIX, ISO 14652 and the
-Unicode Common Locale Data Repository (CLDR). Those systems, however,
-have limited application to \TeX\ because their aim is just to display
-information and not fine typesetting.}. But that is the easy
-part, because they don't require modifying the \LaTeX{} internals.
-Calendars (Arabic, Persian, Indic, etc.) are under study.
-
-Also interesting are differences in the sentence structure or related
-to it. For example, in Basque the number precedes the name (including
-chapters), in Hungarian ``from (1)'' is ``(1)-b\H{o}l'', but ``from
-(3)'' is ``(3)-b\'{o}l'', in Spanish an item labelled
-``3.$^{\textrm{\scriptsize o}}$'' may be referred to as either
-``\'{\i}tem 3.$^{\textrm{\scriptsize o}}$'' or
-``3.$^{\textrm{\scriptsize er}}$ \'{\i}tem'', and so on.
-
-An option to manage bidirectional document layout in \luatex{} (lists,
-footnotes, etc.) is almost finished, but \xetex{} required more work.
-Unfortunately, proper support for \xetex{} requires patching somehow
-lots of macros and packages (and some issues related to |\special|s
-remain, like color and hyperlinks), so \babel{} resorts to the
-\textsf{bidi} package (by Vafa Khalighi). See the \babel{} repository
-for a small example (|xe-bidi|).
-
\subsection{Tentative and experimental code}
See the code section for |\foreignlanguage*| (a new starred
@@ -5507,8 +5512,8 @@
% \section{Tools}
%
% \begin{macrocode}
-%<<version=24.9>>
-%<<date=2024/08/29>>
+%<<version=24.10>>
+%<<date=2024/09/18>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -6070,7 +6075,7 @@
#1\ifx\@empty#2\else,\bbl at afterfi\bbl at tempb#2\fi}%
\def\bbl at tempe#1=#2\@@{%
\bbl at csarg\edef{mod@#1}{\bbl at tempb#2}}
-\def\bbl at tempd#1.#2\@nnil{% TODO. Refactor lists?
+\def\bbl at tempd#1.#2\@nnil{%
\ifx\@empty#2%
\edef\bbl at tempc{\ifx\bbl at tempc\@empty\else\bbl at tempc,\fi#1}%
\else
@@ -6079,7 +6084,7 @@
\edef\bbl at tempc{%
\ifx\bbl at tempc\@empty\else\bbl at tempc,\fi#1.\bbl at tempb#2}%
\else
- \in@{$modifiers$}{$#1$}% TODO. Allow spaces.
+ \in@{$modifiers$}{$#1$}%
\ifin@
\bbl at tempe#2\@@
\else
@@ -6316,7 +6321,7 @@
\endinput\fi % Same line!
<@Make sure ProvidesFile is defined@>
\ProvidesFile{babel.def}[<@date@> v<@version@> Babel common definitions]
-\ifx\AtBeginDocument\@undefined % TODO. change test.
+\ifx\AtBeginDocument\@undefined
<@Emulate LaTeX@>
\fi
<@Basic macros@>
@@ -6454,12 +6459,13 @@
\fi
\fi\fi}
\let\bbl at initoload\relax
-%<-core>
+%</package|core>
+%<*package>
\def\bbl at provide@locale{%
\ifx\babelprovide\@undefined
\bbl at error{base-on-the-fly}{}{}{}%
\fi
- \let\bbl at auxname\languagename % Still necessary. TODO
+ \let\bbl at auxname\languagename % Still necessary.
\bbl at ifunset{bbl at bcp@map@\languagename}{}% Move uplevel??
{\edef\languagename{\@nameuse{bbl at bcp@map@\languagename}}}%
\ifbbl at bcpallowed
@@ -6483,7 +6489,8 @@
{\bbl at exp{\\\babelprovide[\bbl at autoload@options]{\languagename}}}%
{}%
\fi}
-%<+core>
+%</package>
+%<*package|core>
% \end{macrocode}
%
% \begin{macro}{\iflanguage}
@@ -6700,30 +6707,8 @@
% \begin{macrocode}
\def\BabelContentsFiles{toc,lof,lot}
\def\bbl at set@language#1{% from selectlanguage, pop@
- % The old buggy way. Preserved for compatibility.
- \edef\languagename{%
- \ifnum\escapechar=\expandafter`\string#1\@empty
- \else\string#1\@empty\fi}%
- \ifcat\relax\noexpand#1%
- \expandafter\ifx\csname date\languagename\endcsname\relax
- \edef\languagename{#1}%
- \let\localename\languagename
- \else
- \bbl at info{Using '\string\language' instead of 'language' is\\%
- deprecated. If what you want is to use a\\%
- macro containing the actual locale, make\\%
- sure it does not not match any language.\\%
- Reported}%
- \ifx\scantokens\@undefined
- \def\localename{??}%
- \else
- \scantokens\expandafter{\expandafter
- \def\expandafter\localename\expandafter{\languagename}}%
- \fi
- \fi
- \else
- \def\localename{#1}% This one has the correct catcodes
- \fi
+ % The old buggy way. Preserved for compatibility, but simplified
+ \edef\languagename{\expandafter\string#1\@empty}%
\select at language{\languagename}%
% write to auxs
\expandafter\ifx\csname date\languagename\endcsname\relax\else
@@ -6742,16 +6727,22 @@
%
\newif\ifbbl at bcpallowed
\bbl at bcpallowedfalse
-\def\select at language#1{% from set@, babel at aux
+%
+\def\select at language#1{% from set@, babel at aux, babel at toc
\ifx\bbl at selectorname\@empty
\def\bbl at selectorname{select}%
+ \fi
% set hymap
- \fi
\ifnum\bbl at hymapsel=\@cclv\chardef\bbl at hymapsel4\relax\fi
- % set name
+ % set name (when coming from babel at aux)
\edef\languagename{#1}%
\bbl at fixname\languagename
- % TODO. name at map must be here?
+ % define \localename when coming from set@, with a trick
+ \ifx\scantokens\@undefined
+ \def\localename{??}%
+ \else
+ \bbl at exp{\\\scantokens{\def\\\localename{\languagename}\\\noexpand}\relax}%
+ \fi
\bbl at provide@locale
\bbl at iflanguage\languagename{%
\let\bbl at select@type\z@
@@ -6759,7 +6750,7 @@
\def\babel at aux#1#2{%
\select at language{#1}%
\bbl at foreach\BabelContentsFiles{% \relax -> don't assume vertical mode
- \@writefile{##1}{\babel at toc{#1}{#2}\relax}}}% TODO - plain?
+ \@writefile{##1}{\babel at toc{#1}{#2}\relax}}}%
\def\babel at toc#1#2{%
\select at language{#1}}
% \end{macrocode}
@@ -6862,6 +6853,12 @@
\ifin@\else\bbl at xin@{/k}{/\bbl at tempa}\fi % only kashida
\ifin@\else\bbl at xin@{/p}{/\bbl at tempa}\fi % padding (eg, Tibetan)
\ifin@\else\bbl at xin@{/v}{/\bbl at tempa}\fi % variable font
+ % hyphenation - save mins
+ \babel at savevariable\lefthyphenmin
+ \babel at savevariable\righthyphenmin
+ \ifnum\bbl at engine=\@ne
+ \babel at savevariable\hyphenationmin
+ \fi
\ifin@
% unhyphenated/kashida/elongated/padding = allow stretching
\language\l at unhyphenated
@@ -6873,16 +6870,18 @@
% other = select patterns
\bbl at patterns{#1}%
\fi
- % hyphenation - mins
- \babel at savevariable\lefthyphenmin
- \babel at savevariable\righthyphenmin
+ % hyphenation - set mins
\expandafter\ifx\csname #1hyphenmins\endcsname\relax
\set at hyphenmins\tw@\thr@@\relax
+ \@nameuse{bbl at hyphenmins@}%
\else
\expandafter\expandafter\expandafter\set at hyphenmins
\csname #1hyphenmins\endcsname\relax
\fi
- % reset selector name
+ \@nameuse{bbl at hyphenmins@}%
+ \@nameuse{bbl at hyphenmins@\languagename}%
+ \@nameuse{bbl at hyphenatmin@}%
+ \@nameuse{bbl at hyphenatmin@\languagename}%
\let\bbl at selectorname\@empty}
% \end{macrocode}
%
@@ -7026,6 +7025,7 @@
\bbl at usedategroupfalse
\fi
\bbl at fixname\languagename
+ \let\localename\languagename
% TODO. name at map here?
\bbl at provide@locale
\bbl at iflanguage\languagename{%
@@ -7634,7 +7634,7 @@
% code of the @-sign.
%
% \begin{macrocode}
-\def\bbl at afterldf#1{% TODO. Merge into the next macro? Unused elsewhere
+\def\bbl at afterldf#1{%
\bbl at afterlang
\let\bbl at afterlang\relax
\let\BabelModifiers\relax
@@ -7668,7 +7668,9 @@
% \begin{macrocode}
\def\main at language#1{%
\def\bbl at main@language{#1}%
- \let\languagename\bbl at main@language % TODO. Set localename
+ \let\languagename\bbl at main@language
+ \let\localename\bbl at main@language
+ \let\mainlocalename\bbl at main@language
\bbl at id@assign
\bbl at patterns{\languagename}}
% \end{macrocode}
@@ -7677,8 +7679,7 @@
% beginning of the document, either when the |aux| file is read or, if
% it does not exist, when the |\AtBeginDocument| is executed. Languages
% do not set |\pagedir|, so we set here for the whole document to the
-% main |\bodydir|. TODO. Handle correctly the 'nil' language, to avoid
-% errors in toc files if there was a typo in a name.
+% main |\bodydir|.
%
% The code written to the |aux| file attempts to avoid errors if
% \babel\ is removed from the document.
@@ -7699,7 +7700,8 @@
\immediate\write\@mainaux{\string\@nameuse{bbl at beforestart}}%
\fi
\expandafter\selectlanguage\expandafter{\bbl at main@language}%
-%<-core>
+%</package|core>
+%<*package>
\ifx\bbl at normalsf\@empty
\ifnum\sfcode`\.=\@m
\let\normalsfcodes\frenchspacing
@@ -7709,19 +7711,22 @@
\else
\let\normalsfcodes\bbl at normalsf
\fi
-%<+core>
+%</package>
+%<*package|core>
\ifbbl at single % must go after the line above.
\renewcommand\selectlanguage[1]{}%
\renewcommand\foreignlanguage[2]{#2}%
\global\let\babel at aux\@gobbletwo % Also as flag
\fi}
-%<-core>
+%</package|core>
+%<*package>
\AddToHook{begindocument/before}{%
\let\bbl at normalsf\normalsfcodes
\let\normalsfcodes\relax} % Hack, to delay the setting
-%<+core>
+%</package>%
+%<*package|core>
\ifcase\bbl at engine\or
- \AtBeginDocument{\pagedir\bodydir} % TODO - a better place
+ \AtBeginDocument{\pagedir\bodydir}
\fi
% \end{macrocode}
%
@@ -8079,7 +8084,7 @@
%
% \begin{macrocode}
\begingroup
-\bbl at ifunset{ifincsname}% TODO. Ugly. Correct? Only Plain?
+\bbl at ifunset{ifincsname}%
{\gdef\active at prefix#1{%
\ifx\protect\@typeset at protect
\else
@@ -8262,7 +8267,7 @@
%
% \begin{macrocode}
\def\user at group{user}
-\def\language at group{english} % TODO. I don't like defaults
+\def\language at group{english}
\def\system at group{system}
% \end{macrocode}
%
@@ -8337,7 +8342,6 @@
% used. Unfortunately, \babel{} currently does not keep track of
% defined groups, and therefore there is no way to catch a possible
% change in casing to fix it in the same way languages names are fixed.
-% [TODO].
%
% \begin{macrocode}
\def\languageshorthands#1{\def\language at group{#1}}
@@ -8897,6 +8901,32 @@
%
% \end{macro}
%
+% \begin{macro}{\babelhyphenmins}
+%
+% Only \LaTeX (basically because it’s defined with a \LaTeX{} tool).
+%
+% \begin{macrocode}
+\ifx\NewDocumentCommand\@undefined\else
+ \NewDocumentCommand\babelhyphenmins{sommo}{%
+ \IfNoValueTF{#2}%
+ {\protected at edef\bbl at hyphenmins@{\set at hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \protected at edef\bbl at hyphenatmin@{\hyphenationmin=#5\relax}}%
+ \IfBooleanT{#1}{%
+ \lefthyphenmin=#3\relax
+ \righthyphenmin=#4\relax
+ \IfValueT{#5}{\hyphenationmin=#5\relax}}}%
+ {\edef\bbl at tempb{\zap at space#2 \@empty}%
+ \bbl at for\bbl at tempa\bbl at tempb{%
+ \@namedef{bbl at hyphenmins@\bbl at tempa}{\set at hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \@namedef{bbl at hyphenatmin@\bbl at tempa}{\hyphenationmin=#5\relax}}}%
+ \IfBooleanT{#1}{\bbl at error{hyphenmins-args}{}{}{}}}}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
% \begin{macro}{\bbl at allowhyphens}
%
% This macro makes hyphenation possible. Basically its definition
@@ -9228,7 +9258,7 @@
\csname\bbl at LC\expandafter\endcsname\expandafter{\BabelString}}}
% \end{macrocode}
%
-% A little auxiliary command sets the string. TODO: Formerly used with
+% A little auxiliary command sets the string. Formerly used with
% casing. Very likely no longer necessary, although it’s used in
% |\setlocalecaption|.
%
@@ -9362,7 +9392,7 @@
% separates these two steps.
%
% \begin{macrocode}
-\newcommand\setlocalecaption{% TODO. Catch typos.
+\newcommand\setlocalecaption{%
\@ifstar\bbl at setcaption@s\bbl at setcaption@x}
\def\bbl at setcaption@x#1#2#3{% language caption-name string
\bbl at trim@def\bbl at tempa{#2}%
@@ -9416,7 +9446,6 @@
\bbl at toglobal\bbl at captionslist
\fi
\fi}
-% \def\bbl at setcaption@s#1#2#3{} % TODO. Not yet implemented (w/o 'name')
% \end{macrocode}
%
% \subsection{Macros common to a number of languages}
@@ -9889,7 +9918,8 @@
% \begin{macrocode}
\bbl at trace{Bidi layout}
\providecommand\IfBabelLayout[3]{#3}%
-%<-core>
+%</package|core>
+%<*package>
\newcommand\BabelPatchSection[1]{%
\@ifundefined{#1}{}{%
\bbl at exp{\let\<bbl at ss@#1>\<#1>}%
@@ -9923,7 +9953,8 @@
\select at language@x{\bbl at main@language}}}{}
\IfBabelLayout{captions}%
{\BabelPatchSection{caption}}{}
-%<+core>
+%</package>
+%<*package|core>
% \end{macrocode}
%
% \subsection{Load engine specific macros}
@@ -10028,7 +10059,7 @@
{}%
\let\bbl at KVP@date\@empty
\fi
- \let\bbl at KVP@captions@@\bbl at KVP@captions % TODO. A dirty hack
+ \let\bbl at KVP@captions@@\bbl at KVP@captions
\ifx\bbl at KVP@captions\@nnil
\let\bbl at KVP@captions\bbl at KVP@import
\fi
@@ -10123,7 +10154,6 @@
\fi
\bbl at exp{\\\bbl at add\\\bbl at starthyphens
{\\\bbl at patterns@lua{\languagename}}}%
- % TODO - error/warning if no script
\directlua{
if Babel.script_blocks['\bbl at cl{sbcp}'] then
Babel.loc_to_scr[\the\localeid] = Babel.script_blocks['\bbl at cl{sbcp}']
@@ -10194,7 +10224,7 @@
\bbl at csarg\edef{intsp@#2}{\bbl at KVP@intraspace}%
\fi
\bbl at provide@intraspace
- % == Line breaking: CJK quotes == TODO -> @extras
+ % == Line breaking: CJK quotes ==
\ifcase\bbl at engine\or
\bbl at xin@{/c}{/\bbl at cl{lnbrk}}%
\ifin@
@@ -10430,7 +10460,7 @@
% Load the basic parameters (ids, typography, counters, and a few
% more), while captions and dates are left out. But it may happen some
% data has been loaded before automatically, so we first discard the
-% saved values. (TODO. But preserving previous values would be useful.)
+% saved values.
%
% \begin{macrocode}
\def\bbl at load@basic#1{%
@@ -12427,23 +12457,30 @@
% \end{macrocode}
%
% Now come the macros used to set the direction when a language is
-% switched. First the (mostly) common macros.
+% switched. Testing are based on script names, because it’s the user
+% interface (including |language| and |script| in |\babelprovide|.
+% First the (mostly) common macros.
%
% \begin{macrocode}
\bbl at trace{Macros to switch the text direction}
+\def\bbl at alscripts{,Arabic,Syriac,Thaana,}
+\def\bbl at rscripts{%
+ ,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,%
+ Old Hungarian,Lydian,Mandaean,Manichaean,%
+ Meroitic Cursive,Meroitic,Old North Arabian,%
+ Nabataean,N'Ko,Orkhon,Palmyrene,Inscriptional Pahlavi,%
+ Psalter Pahlavi,Phoenician,Inscriptional Parthian,Samaritan,%
+ Old South Arabian,}%
\def\bbl at provide@dirs#1{%
- \bbl at xin@{\csname bbl at sbcp@#1\endcsname}{,Arab,Syrc,Thaa,}%
+ \bbl at xin@{\csname bbl at sname@#1\endcsname}{\bbl at alscripts\bbl at rscripts}%
\ifin@
- \global\bbl at csarg\chardef{wdir@#1}\tw@
- \else
- \bbl at xin@{\csname bbl at sbcp@#1\endcsname}{%
- ,Armi,Avst,Cprt,Hatr,Hebr,Hung,Lydi,Mand,Mani,Merc,Mero,%
- Narb,Nbat,Nkoo,Orkh,Palm,Phli,Phlp,Phnx,Prti,Samr,Sarb,}%
+ \global\bbl at csarg\chardef{wdir@#1}\@ne
+ \bbl at xin@{\csname bbl at sname@#1\endcsname}{\bbl at alscripts}%
\ifin@
- \global\bbl at csarg\chardef{wdir@#1}\@ne
- \else
- \global\bbl at csarg\chardef{wdir@#1}\z@
+ \global\bbl at csarg\chardef{wdir@#1}\tw@
\fi
+ \else
+ \global\bbl at csarg\chardef{wdir@#1}\z@
\fi
\ifodd\bbl at engine
\bbl at csarg\ifcase{wdir@#1}%
@@ -12954,7 +12991,7 @@
{This macro is available only in LuaLaTeX and XeLaTeX.}%
{Consider switching to these engines.}
\bbl at errmessage{only-lua}
- {This macro is available only in LuaLaTeX.}%
+ {This macro is available only in LuaLaTeX}%
{Consider switching to that engine.}
\bbl at errmessage{unknown-provide-key}
{Unknown key '#1' in \string\babelprovide}%
@@ -12961,12 +12998,12 @@
{See the manual for valid keys}%
\bbl at errmessage{unknown-mapfont}
{Option '\bbl at KVP@mapfont' unknown for\\%
- mapfont. Use 'direction'.}%
+ mapfont. Use 'direction'}%
{See the manual for details.}
\bbl at errmessage{no-ini-file}
{There is no ini file for the requested language\\%
(#1: \languagename). Perhaps you misspelled it or your\\%
- installation is not complete.}%
+ installation is not complete}%
{Fix the name or reinstall babel.}
\bbl at errmessage{digits-is-reserved}
{The counter name 'digits' is reserved for mapping\\%
@@ -12974,7 +13011,7 @@
{Use another name.}
\bbl at errmessage{limit-two-digits}
{Currently two-digit years are restricted to the\\
- range 0-9999.}%
+ range 0-9999}%
{There is little you can do. Sorry.}
\bbl at errmessage{alphabetic-too-large}
{Alphabetic numeral too large (#1)}%
@@ -12986,20 +13023,20 @@
{See the manual for details.}
\bbl at errmessage{unknown-ini-field}
{Unknown field '#1' in \string\BCPdata.\\%
- Perhaps you misspelled it.}%
+ Perhaps you misspelled it}%
{See the manual for details.}
\bbl at errmessage{unknown-locale-key}
{Unknown key for locale '#2':\\%
#3\\%
- \string#1 will be set to \relax}%
+ \string#1 will be set to \string\relax}%
{Perhaps you misspelled it.}%
\bbl at errmessage{adjust-only-vertical}
{Currently, #1 related features can be adjusted only\\%
- in the main vertical list.}%
+ in the main vertical list}%
{Maybe things change in the future, but this is what it is.}
\bbl at errmessage{layout-only-vertical}
{Currently, layout related features can be adjusted only\\%
- in vertical mode.}%
+ in vertical mode}%
{Maybe things change in the future, but this is what it is.}
\bbl at errmessage{bidi-only-lua}
{The bidi method 'basic' is available only in\\%
@@ -13029,11 +13066,11 @@
{See the manual for further info}
\bbl at errmessage{unknown-interchar}
{'#1' for '\languagename' cannot be enabled.\\%
- Maybe there is a typo.}%
+ Maybe there is a typo}%
{See the manual for further details.}
\bbl at errmessage{unknown-interchar-b}
{'#1' for '\languagename' cannot be disabled.\\%
- Maybe there is a typo.}%
+ Maybe there is a typo}%
{See the manual for further details.}
\bbl at errmessage{charproperty-only-vertical}
{\string\babelcharproperty\space can be used only in\\%
@@ -13068,8 +13105,12 @@
{The '#1' ldf style doesn't work with #2,\\%
but you can use the ini locale instead.\\%
Try adding 'provide=*' to the option list. You may\\%
- also want to set 'bidi=' to some value.}%
+ also want to set 'bidi=' to some value}%
{See the manual for further details.}
+\bbl at errmessage{hyphenmins-args}
+ {\string\babelhyphenmins\ accepts either the optional\\%
+ argument or the star, but not both at the same time}%
+ {See the manual for further details.}
%</errors>
%<*patterns>
% \end{macrocode}
Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins 2024-09-18 19:25:46 UTC (rev 72320)
@@ -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/08/29}
+\def\filedate{2024/09/18}
\def\batchfile{babel.ins}
\input docstrip.tex
@@ -105,32 +105,6 @@
\expandafter\gdef\csname #1Var\endcsname{#2}%
\fi}
-% The following is somewhat hackish, but it does the job for babel, and
-% must be used in the following way: <-name> starts a block to be
-% ignored if 'name' is active, and <+name> ends the block (in this
-% order). Used to exclude some parts from babel.def. With the original
-% definitions, some code goes 'visually' in comments/documentation, but
-% with this change they are in the real code. However, it must be
-% considered temporal, because the solution must be to reorganize the
-% code.
-
-\let\bblMinus\minusOption
-\def\minusOption-#1>#2\endLine{%
- \global\let\bblactivefiles\activefiles
- \def\tempa{}%
- \def\do##1##2##3{%
- \def\tempb{#1}\def\tempc{##2}%
- \ifx\tempb\tempc\else
- \expandafter\def\expandafter\tempa\expandafter{%
- \tempa\do##1{##2}##3}%
- \fi}%
- \activefiles
- \let\activefiles\tempa}
-
-\let\bblPlus\plusOption
-\def\plusOption+#1>#2\endLine{%
- \let\activefiles\bblactivefiles}
-
% Preambles
\declarepreamble\mainpreamble
@@ -179,11 +153,30 @@
\file{bplain.tex}{\from{babel.dtx}{bplain}}
\file{blplain.tex}{\from{babel.dtx}{blplain}}
}
+
+% MakeIndex style files
-% compatibility files
+\usedir{makeindex/babel}
+\generate{\file{bbind.ist}{\from{bbidxglo.dtx}{idx}}
+ \file{bbglo.ist}{\from{bbidxglo.dtx}{glo}}}
+
+% lua code
+
+\def\MetaPrefix{--}
+\usepreamble\luapreamble
+\nopostamble
+\generate{\file{babel-transforms.lua}{\from{babel.dtx}{transforms}}}
+\generate{\file{babel-data-bidi.lua}{\from{babel.dtx}{bididata}}}
+\generate{\file{babel-data-cjk.lua}{\from{babel.dtx}{cjkdata}}}
+\generate{\file{babel-bidi-basic-r.lua}{\from{babel.dtx}{basic-r}}}
+\generate{\file{babel-bidi-basic.lua}{\from{babel.dtx}{basic}}}
+
+% Compatibility files
+
\let\minusOption\bblMinus
\let\plusOption\bblPlus
+
\def\compatfile#1{\file{#1.sty}{\from{bbcompat.dtx}{styfile,#1}}}
\generate{%
@@ -246,24 +239,7 @@
\compatfile{bahasam}
}
-% MakeIndex style files
-\usedir{makeindex/babel}
-
-\generate{\file{bbind.ist}{\from{bbidxglo.dtx}{idx}}
- \file{bbglo.ist}{\from{bbidxglo.dtx}{glo}}}
-
-% lua code
-
-\def\MetaPrefix{--}
-\usepreamble\luapreamble
-\nopostamble
-\generate{\file{babel-transforms.lua}{\from{babel.dtx}{transforms}}}
-\generate{\file{babel-data-bidi.lua}{\from{babel.dtx}{bididata}}}
-\generate{\file{babel-data-cjk.lua}{\from{babel.dtx}{cjkdata}}}
-\generate{\file{babel-bidi-basic-r.lua}{\from{babel.dtx}{basic-r}}}
-\generate{\file{babel-bidi-basic.lua}{\from{babel.dtx}{basic}}}
-
\Msg{***********************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move all the files}
Modified: trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx 2024-09-18 19:25:46 UTC (rev 72320)
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2024/08/29 v24.]
+\ProvidesFile{bbcompat.dtx}[2024/09/18 v24.]
%</dtx>
%
%% File 'bbcompat.dtx'
Modified: trunk/Master/texmf-dist/source/latex/babel/locale.zip
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.def 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def 2024-09-18 19:25:46 UTC (rev 72320)
@@ -39,8 +39,8 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2024/08/29 v24.9 Babel common definitions]
-\ifx\AtBeginDocument\@undefined % TODO. change test.
+\ProvidesFile{babel.def}[2024/09/18 v24.10 Babel common definitions]
+\ifx\AtBeginDocument\@undefined
\def\@empty{}
\def\loadlocalcfg#1{%
\openin0#1.cfg
@@ -595,8 +595,8 @@
\toks@\expandafter{\bbl at tempc#3}%
\expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
\fi}
-\def\bbl at version{24.9}
-\def\bbl at date{2024/08/29}
+\def\bbl at version{24.10}
+\def\bbl at date{2024/09/18}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -737,30 +737,8 @@
\let\endselectlanguage\relax
\def\BabelContentsFiles{toc,lof,lot}
\def\bbl at set@language#1{% from selectlanguage, pop@
- % The old buggy way. Preserved for compatibility.
- \edef\languagename{%
- \ifnum\escapechar=\expandafter`\string#1\@empty
- \else\string#1\@empty\fi}%
- \ifcat\relax\noexpand#1%
- \expandafter\ifx\csname date\languagename\endcsname\relax
- \edef\languagename{#1}%
- \let\localename\languagename
- \else
- \bbl at info{Using '\string\language' instead of 'language' is\\%
- deprecated. If what you want is to use a\\%
- macro containing the actual locale, make\\%
- sure it does not not match any language.\\%
- Reported}%
- \ifx\scantokens\@undefined
- \def\localename{??}%
- \else
- \scantokens\expandafter{\expandafter
- \def\expandafter\localename\expandafter{\languagename}}%
- \fi
- \fi
- \else
- \def\localename{#1}% This one has the correct catcodes
- \fi
+ % The old buggy way. Preserved for compatibility, but simplified
+ \edef\languagename{\expandafter\string#1\@empty}%
\select at language{\languagename}%
% write to auxs
\expandafter\ifx\csname date\languagename\endcsname\relax\else
@@ -777,16 +755,21 @@
\let\bbl at savelastskip\relax
\newif\ifbbl at bcpallowed
\bbl at bcpallowedfalse
-\def\select at language#1{% from set@, babel at aux
+\def\select at language#1{% from set@, babel at aux, babel at toc
\ifx\bbl at selectorname\@empty
\def\bbl at selectorname{select}%
+ \fi
% set hymap
- \fi
\ifnum\bbl at hymapsel=\@cclv\chardef\bbl at hymapsel4\relax\fi
- % set name
+ % set name (when coming from babel at aux)
\edef\languagename{#1}%
\bbl at fixname\languagename
- % TODO. name at map must be here?
+ % define \localename when coming from set@, with a trick
+ \ifx\scantokens\@undefined
+ \def\localename{??}%
+ \else
+ \bbl at exp{\\\scantokens{\def\\\localename{\languagename}\\\noexpand}\relax}%
+ \fi
\bbl at provide@locale
\bbl at iflanguage\languagename{%
\let\bbl at select@type\z@
@@ -794,7 +777,7 @@
\def\babel at aux#1#2{%
\select at language{#1}%
\bbl at foreach\BabelContentsFiles{% \relax -> don't assume vertical mode
- \@writefile{##1}{\babel at toc{#1}{#2}\relax}}}% TODO - plain?
+ \@writefile{##1}{\babel at toc{#1}{#2}\relax}}}%
\def\babel at toc#1#2{%
\select at language{#1}}
\newif\ifbbl at usedategroup
@@ -863,6 +846,12 @@
\ifin@\else\bbl at xin@{/k}{/\bbl at tempa}\fi % only kashida
\ifin@\else\bbl at xin@{/p}{/\bbl at tempa}\fi % padding (eg, Tibetan)
\ifin@\else\bbl at xin@{/v}{/\bbl at tempa}\fi % variable font
+ % hyphenation - save mins
+ \babel at savevariable\lefthyphenmin
+ \babel at savevariable\righthyphenmin
+ \ifnum\bbl at engine=\@ne
+ \babel at savevariable\hyphenationmin
+ \fi
\ifin@
% unhyphenated/kashida/elongated/padding = allow stretching
\language\l at unhyphenated
@@ -874,16 +863,18 @@
% other = select patterns
\bbl at patterns{#1}%
\fi
- % hyphenation - mins
- \babel at savevariable\lefthyphenmin
- \babel at savevariable\righthyphenmin
+ % hyphenation - set mins
\expandafter\ifx\csname #1hyphenmins\endcsname\relax
\set at hyphenmins\tw@\thr@@\relax
+ \@nameuse{bbl at hyphenmins@}%
\else
\expandafter\expandafter\expandafter\set at hyphenmins
\csname #1hyphenmins\endcsname\relax
\fi
- % reset selector name
+ \@nameuse{bbl at hyphenmins@}%
+ \@nameuse{bbl at hyphenmins@\languagename}%
+ \@nameuse{bbl at hyphenatmin@}%
+ \@nameuse{bbl at hyphenatmin@\languagename}%
\let\bbl at selectorname\@empty}
\long\def\otherlanguage#1{%
\def\bbl at selectorname{other}%
@@ -938,6 +929,7 @@
\bbl at usedategroupfalse
\fi
\bbl at fixname\languagename
+ \let\localename\languagename
% TODO. name at map here?
\bbl at provide@locale
\bbl at iflanguage\languagename{%
@@ -1246,7 +1238,7 @@
\catcode`\@=\atcatcode \let\atcatcode\relax
\catcode`\==\eqcatcode \let\eqcatcode\relax
\endinput}
-\def\bbl at afterldf#1{% TODO. Merge into the next macro? Unused elsewhere
+\def\bbl at afterldf#1{%
\bbl at afterlang
\let\bbl at afterlang\relax
\let\BabelModifiers\relax
@@ -1262,7 +1254,9 @@
\@onlypreamble\ldf at finish
\def\main at language#1{%
\def\bbl at main@language{#1}%
- \let\languagename\bbl at main@language % TODO. Set localename
+ \let\languagename\bbl at main@language
+ \let\localename\bbl at main@language
+ \let\mainlocalename\bbl at main@language
\bbl at id@assign
\bbl at patterns{\languagename}}
\def\bbl at beforestart{%
@@ -1286,7 +1280,7 @@
\global\let\babel at aux\@gobbletwo % Also as flag
\fi}
\ifcase\bbl at engine\or
- \AtBeginDocument{\pagedir\bodydir} % TODO - a better place
+ \AtBeginDocument{\pagedir\bodydir}
\fi
\def\select at language@x#1{%
\ifcase\bbl at select@type
@@ -1423,7 +1417,7 @@
\bbl at afterfi\csname#1 at sh@#2 at sel\endcsname
\fi}
\begingroup
-\bbl at ifunset{ifincsname}% TODO. Ugly. Correct? Only Plain?
+\bbl at ifunset{ifincsname}%
{\gdef\active at prefix#1{%
\ifx\protect\@typeset at protect
\else
@@ -1505,7 +1499,7 @@
\expandafter\@firstoftwo
\fi}
\def\user at group{user}
-\def\language at group{english} % TODO. I don't like defaults
+\def\language at group{english}
\def\system at group{system}
\def\useshorthands{%
\@ifstar\bbl at usesh@s{\bbl at usesh@x{}}}
@@ -1797,6 +1791,23 @@
{\csname bbl at hyphenation@\bbl at tempa\endcsname\space}%
#2}}}%
\fi}}
+\ifx\NewDocumentCommand\@undefined\else
+ \NewDocumentCommand\babelhyphenmins{sommo}{%
+ \IfNoValueTF{#2}%
+ {\protected at edef\bbl at hyphenmins@{\set at hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \protected at edef\bbl at hyphenatmin@{\hyphenationmin=#5\relax}}%
+ \IfBooleanT{#1}{%
+ \lefthyphenmin=#3\relax
+ \righthyphenmin=#4\relax
+ \IfValueT{#5}{\hyphenationmin=#5\relax}}}%
+ {\edef\bbl at tempb{\zap at space#2 \@empty}%
+ \bbl at for\bbl at tempa\bbl at tempb{%
+ \@namedef{bbl at hyphenmins@\bbl at tempa}{\set at hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \@namedef{bbl at hyphenatmin@\bbl at tempa}{\hyphenationmin=#5\relax}}}%
+ \IfBooleanT{#1}{\bbl at error{hyphenmins-args}{}{}{}}}}
+\fi
\def\bbl at allowhyphens{\ifvmode\else\nobreak\hskip\z at skip\fi}
\def\bbl at t@one{T1}
\def\allowhyphens{\ifx\cf at encoding\bbl at t@one\else\bbl at allowhyphens\fi}
@@ -2029,7 +2040,7 @@
\bbl at xin@{,}{\bbl at language@opts}%
\chardef\bbl at opt@hyphenmap\ifin at 4\else\@ne\fi
\fi}
-\newcommand\setlocalecaption{% TODO. Catch typos.
+\newcommand\setlocalecaption{%
\@ifstar\bbl at setcaption@s\bbl at setcaption@x}
\def\bbl at setcaption@x#1#2#3{% language caption-name string
\bbl at trim@def\bbl at tempa{#2}%
Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty 2024-09-18 19:25:46 UTC (rev 72320)
@@ -33,7 +33,7 @@
%% extension |.ins|) which are part of the distribution.
%%
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2024/08/29 v24.9 The Babel package]
+\ProvidesPackage{babel}[2024/09/18 v24.10 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl at trace[1]{\message{^^J[ #1 ]}}%
\let\bbl at debug\@firstofone
@@ -307,7 +307,7 @@
#1\ifx\@empty#2\else,\bbl at afterfi\bbl at tempb#2\fi}%
\def\bbl at tempe#1=#2\@@{%
\bbl at csarg\edef{mod@#1}{\bbl at tempb#2}}
-\def\bbl at tempd#1.#2\@nnil{% TODO. Refactor lists?
+\def\bbl at tempd#1.#2\@nnil{%
\ifx\@empty#2%
\edef\bbl at tempc{\ifx\bbl at tempc\@empty\else\bbl at tempc,\fi#1}%
\else
@@ -316,7 +316,7 @@
\edef\bbl at tempc{%
\ifx\bbl at tempc\@empty\else\bbl at tempc,\fi#1.\bbl at tempb#2}%
\else
- \in@{$modifiers$}{$#1$}% TODO. Allow spaces.
+ \in@{$modifiers$}{$#1$}%
\ifin@
\bbl at tempe#2\@@
\else
@@ -465,8 +465,8 @@
\expandafter\@secondoftwo
\fi}
\fi
-\def\bbl at version{24.9}
-\def\bbl at date{2024/08/29}
+\def\bbl at version{24.10}
+\def\bbl at date{2024/09/18}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -550,7 +550,7 @@
\ifx\babelprovide\@undefined
\bbl at error{base-on-the-fly}{}{}{}%
\fi
- \let\bbl at auxname\languagename % Still necessary. TODO
+ \let\bbl at auxname\languagename % Still necessary.
\bbl at ifunset{bbl at bcp@map@\languagename}{}% Move uplevel??
{\edef\languagename{\@nameuse{bbl at bcp@map@\languagename}}}%
\ifbbl at bcpallowed
@@ -635,30 +635,8 @@
\let\endselectlanguage\relax
\def\BabelContentsFiles{toc,lof,lot}
\def\bbl at set@language#1{% from selectlanguage, pop@
- % The old buggy way. Preserved for compatibility.
- \edef\languagename{%
- \ifnum\escapechar=\expandafter`\string#1\@empty
- \else\string#1\@empty\fi}%
- \ifcat\relax\noexpand#1%
- \expandafter\ifx\csname date\languagename\endcsname\relax
- \edef\languagename{#1}%
- \let\localename\languagename
- \else
- \bbl at info{Using '\string\language' instead of 'language' is\\%
- deprecated. If what you want is to use a\\%
- macro containing the actual locale, make\\%
- sure it does not not match any language.\\%
- Reported}%
- \ifx\scantokens\@undefined
- \def\localename{??}%
- \else
- \scantokens\expandafter{\expandafter
- \def\expandafter\localename\expandafter{\languagename}}%
- \fi
- \fi
- \else
- \def\localename{#1}% This one has the correct catcodes
- \fi
+ % The old buggy way. Preserved for compatibility, but simplified
+ \edef\languagename{\expandafter\string#1\@empty}%
\select at language{\languagename}%
% write to auxs
\expandafter\ifx\csname date\languagename\endcsname\relax\else
@@ -675,16 +653,21 @@
\let\bbl at savelastskip\relax
\newif\ifbbl at bcpallowed
\bbl at bcpallowedfalse
-\def\select at language#1{% from set@, babel at aux
+\def\select at language#1{% from set@, babel at aux, babel at toc
\ifx\bbl at selectorname\@empty
\def\bbl at selectorname{select}%
+ \fi
% set hymap
- \fi
\ifnum\bbl at hymapsel=\@cclv\chardef\bbl at hymapsel4\relax\fi
- % set name
+ % set name (when coming from babel at aux)
\edef\languagename{#1}%
\bbl at fixname\languagename
- % TODO. name at map must be here?
+ % define \localename when coming from set@, with a trick
+ \ifx\scantokens\@undefined
+ \def\localename{??}%
+ \else
+ \bbl at exp{\\\scantokens{\def\\\localename{\languagename}\\\noexpand}\relax}%
+ \fi
\bbl at provide@locale
\bbl at iflanguage\languagename{%
\let\bbl at select@type\z@
@@ -692,7 +675,7 @@
\def\babel at aux#1#2{%
\select at language{#1}%
\bbl at foreach\BabelContentsFiles{% \relax -> don't assume vertical mode
- \@writefile{##1}{\babel at toc{#1}{#2}\relax}}}% TODO - plain?
+ \@writefile{##1}{\babel at toc{#1}{#2}\relax}}}%
\def\babel at toc#1#2{%
\select at language{#1}}
\newif\ifbbl at usedategroup
@@ -761,6 +744,12 @@
\ifin@\else\bbl at xin@{/k}{/\bbl at tempa}\fi % only kashida
\ifin@\else\bbl at xin@{/p}{/\bbl at tempa}\fi % padding (eg, Tibetan)
\ifin@\else\bbl at xin@{/v}{/\bbl at tempa}\fi % variable font
+ % hyphenation - save mins
+ \babel at savevariable\lefthyphenmin
+ \babel at savevariable\righthyphenmin
+ \ifnum\bbl at engine=\@ne
+ \babel at savevariable\hyphenationmin
+ \fi
\ifin@
% unhyphenated/kashida/elongated/padding = allow stretching
\language\l at unhyphenated
@@ -772,16 +761,18 @@
% other = select patterns
\bbl at patterns{#1}%
\fi
- % hyphenation - mins
- \babel at savevariable\lefthyphenmin
- \babel at savevariable\righthyphenmin
+ % hyphenation - set mins
\expandafter\ifx\csname #1hyphenmins\endcsname\relax
\set at hyphenmins\tw@\thr@@\relax
+ \@nameuse{bbl at hyphenmins@}%
\else
\expandafter\expandafter\expandafter\set at hyphenmins
\csname #1hyphenmins\endcsname\relax
\fi
- % reset selector name
+ \@nameuse{bbl at hyphenmins@}%
+ \@nameuse{bbl at hyphenmins@\languagename}%
+ \@nameuse{bbl at hyphenatmin@}%
+ \@nameuse{bbl at hyphenatmin@\languagename}%
\let\bbl at selectorname\@empty}
\long\def\otherlanguage#1{%
\def\bbl at selectorname{other}%
@@ -836,6 +827,7 @@
\bbl at usedategroupfalse
\fi
\bbl at fixname\languagename
+ \let\localename\languagename
% TODO. name at map here?
\bbl at provide@locale
\bbl at iflanguage\languagename{%
@@ -1144,7 +1136,7 @@
\catcode`\@=\atcatcode \let\atcatcode\relax
\catcode`\==\eqcatcode \let\eqcatcode\relax
\endinput}
-\def\bbl at afterldf#1{% TODO. Merge into the next macro? Unused elsewhere
+\def\bbl at afterldf#1{%
\bbl at afterlang
\let\bbl at afterlang\relax
\let\BabelModifiers\relax
@@ -1160,7 +1152,9 @@
\@onlypreamble\ldf at finish
\def\main at language#1{%
\def\bbl at main@language{#1}%
- \let\languagename\bbl at main@language % TODO. Set localename
+ \let\languagename\bbl at main@language
+ \let\localename\bbl at main@language
+ \let\mainlocalename\bbl at main@language
\bbl at id@assign
\bbl at patterns{\languagename}}
\def\bbl at beforestart{%
@@ -1196,7 +1190,7 @@
\let\bbl at normalsf\normalsfcodes
\let\normalsfcodes\relax} % Hack, to delay the setting
\ifcase\bbl at engine\or
- \AtBeginDocument{\pagedir\bodydir} % TODO - a better place
+ \AtBeginDocument{\pagedir\bodydir}
\fi
\def\select at language@x#1{%
\ifcase\bbl at select@type
@@ -1333,7 +1327,7 @@
\bbl at afterfi\csname#1 at sh@#2 at sel\endcsname
\fi}
\begingroup
-\bbl at ifunset{ifincsname}% TODO. Ugly. Correct? Only Plain?
+\bbl at ifunset{ifincsname}%
{\gdef\active at prefix#1{%
\ifx\protect\@typeset at protect
\else
@@ -1415,7 +1409,7 @@
\expandafter\@firstoftwo
\fi}
\def\user at group{user}
-\def\language at group{english} % TODO. I don't like defaults
+\def\language at group{english}
\def\system at group{system}
\def\useshorthands{%
\@ifstar\bbl at usesh@s{\bbl at usesh@x{}}}
@@ -1707,6 +1701,23 @@
{\csname bbl at hyphenation@\bbl at tempa\endcsname\space}%
#2}}}%
\fi}}
+\ifx\NewDocumentCommand\@undefined\else
+ \NewDocumentCommand\babelhyphenmins{sommo}{%
+ \IfNoValueTF{#2}%
+ {\protected at edef\bbl at hyphenmins@{\set at hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \protected at edef\bbl at hyphenatmin@{\hyphenationmin=#5\relax}}%
+ \IfBooleanT{#1}{%
+ \lefthyphenmin=#3\relax
+ \righthyphenmin=#4\relax
+ \IfValueT{#5}{\hyphenationmin=#5\relax}}}%
+ {\edef\bbl at tempb{\zap at space#2 \@empty}%
+ \bbl at for\bbl at tempa\bbl at tempb{%
+ \@namedef{bbl at hyphenmins@\bbl at tempa}{\set at hyphenmins{#3}{#4}}%
+ \IfValueT{#5}{%
+ \@namedef{bbl at hyphenatmin@\bbl at tempa}{\hyphenationmin=#5\relax}}}%
+ \IfBooleanT{#1}{\bbl at error{hyphenmins-args}{}{}{}}}}
+\fi
\def\bbl at allowhyphens{\ifvmode\else\nobreak\hskip\z at skip\fi}
\def\bbl at t@one{T1}
\def\allowhyphens{\ifx\cf at encoding\bbl at t@one\else\bbl at allowhyphens\fi}
@@ -1939,7 +1950,7 @@
\bbl at xin@{,}{\bbl at language@opts}%
\chardef\bbl at opt@hyphenmap\ifin at 4\else\@ne\fi
\fi}
-\newcommand\setlocalecaption{% TODO. Catch typos.
+\newcommand\setlocalecaption{%
\@ifstar\bbl at setcaption@s\bbl at setcaption@x}
\def\bbl at setcaption@x#1#2#3{% language caption-name string
\bbl at trim@def\bbl at tempa{#2}%
@@ -2287,7 +2298,7 @@
{}%
\let\bbl at KVP@date\@empty
\fi
- \let\bbl at KVP@captions@@\bbl at KVP@captions % TODO. A dirty hack
+ \let\bbl at KVP@captions@@\bbl at KVP@captions
\ifx\bbl at KVP@captions\@nnil
\let\bbl at KVP@captions\bbl at KVP@import
\fi
@@ -2374,7 +2385,6 @@
\fi
\bbl at exp{\\\bbl at add\\\bbl at starthyphens
{\\\bbl at patterns@lua{\languagename}}}%
- % TODO - error/warning if no script
\directlua{
if Babel.script_blocks['\bbl at cl{sbcp}'] then
Babel.loc_to_scr[\the\localeid] = Babel.script_blocks['\bbl at cl{sbcp}']
@@ -2445,7 +2455,7 @@
\bbl at csarg\edef{intsp@#2}{\bbl at KVP@intraspace}%
\fi
\bbl at provide@intraspace
- % == Line breaking: CJK quotes == TODO -> @extras
+ % == Line breaking: CJK quotes ==
\ifcase\bbl at engine\or
\bbl at xin@{/c}{/\bbl at cl{lnbrk}}%
\ifin@
@@ -3982,19 +3992,24 @@
\fi}
\fi
\bbl at trace{Macros to switch the text direction}
+\def\bbl at alscripts{,Arabic,Syriac,Thaana,}
+\def\bbl at rscripts{%
+ ,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,%
+ Old Hungarian,Lydian,Mandaean,Manichaean,%
+ Meroitic Cursive,Meroitic,Old North Arabian,%
+ Nabataean,N'Ko,Orkhon,Palmyrene,Inscriptional Pahlavi,%
+ Psalter Pahlavi,Phoenician,Inscriptional Parthian,Samaritan,%
+ Old South Arabian,}%
\def\bbl at provide@dirs#1{%
- \bbl at xin@{\csname bbl at sbcp@#1\endcsname}{,Arab,Syrc,Thaa,}%
+ \bbl at xin@{\csname bbl at sname@#1\endcsname}{\bbl at alscripts\bbl at rscripts}%
\ifin@
- \global\bbl at csarg\chardef{wdir@#1}\tw@
- \else
- \bbl at xin@{\csname bbl at sbcp@#1\endcsname}{%
- ,Armi,Avst,Cprt,Hatr,Hebr,Hung,Lydi,Mand,Mani,Merc,Mero,%
- Narb,Nbat,Nkoo,Orkh,Palm,Phli,Phlp,Phnx,Prti,Samr,Sarb,}%
+ \global\bbl at csarg\chardef{wdir@#1}\@ne
+ \bbl at xin@{\csname bbl at sname@#1\endcsname}{\bbl at alscripts}%
\ifin@
- \global\bbl at csarg\chardef{wdir@#1}\@ne
- \else
- \global\bbl at csarg\chardef{wdir@#1}\z@
+ \global\bbl at csarg\chardef{wdir@#1}\tw@
\fi
+ \else
+ \global\bbl at csarg\chardef{wdir@#1}\z@
\fi
\ifodd\bbl at engine
\bbl at csarg\ifcase{wdir@#1}%
Modified: trunk/Master/texmf-dist/tex/generic/babel/errbabel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/errbabel.def 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/tex/generic/babel/errbabel.def 2024-09-18 19:25:46 UTC (rev 72320)
@@ -99,7 +99,7 @@
{This macro is available only in LuaLaTeX and XeLaTeX.}%
{Consider switching to these engines.}
\bbl at errmessage{only-lua}
- {This macro is available only in LuaLaTeX.}%
+ {This macro is available only in LuaLaTeX}%
{Consider switching to that engine.}
\bbl at errmessage{unknown-provide-key}
{Unknown key '#1' in \string\babelprovide}%
@@ -106,12 +106,12 @@
{See the manual for valid keys}%
\bbl at errmessage{unknown-mapfont}
{Option '\bbl at KVP@mapfont' unknown for\\%
- mapfont. Use 'direction'.}%
+ mapfont. Use 'direction'}%
{See the manual for details.}
\bbl at errmessage{no-ini-file}
{There is no ini file for the requested language\\%
(#1: \languagename). Perhaps you misspelled it or your\\%
- installation is not complete.}%
+ installation is not complete}%
{Fix the name or reinstall babel.}
\bbl at errmessage{digits-is-reserved}
{The counter name 'digits' is reserved for mapping\\%
@@ -119,7 +119,7 @@
{Use another name.}
\bbl at errmessage{limit-two-digits}
{Currently two-digit years are restricted to the\\
- range 0-9999.}%
+ range 0-9999}%
{There is little you can do. Sorry.}
\bbl at errmessage{alphabetic-too-large}
{Alphabetic numeral too large (#1)}%
@@ -131,20 +131,20 @@
{See the manual for details.}
\bbl at errmessage{unknown-ini-field}
{Unknown field '#1' in \string\BCPdata.\\%
- Perhaps you misspelled it.}%
+ Perhaps you misspelled it}%
{See the manual for details.}
\bbl at errmessage{unknown-locale-key}
{Unknown key for locale '#2':\\%
#3\\%
- \string#1 will be set to \relax}%
+ \string#1 will be set to \string\relax}%
{Perhaps you misspelled it.}%
\bbl at errmessage{adjust-only-vertical}
{Currently, #1 related features can be adjusted only\\%
- in the main vertical list.}%
+ in the main vertical list}%
{Maybe things change in the future, but this is what it is.}
\bbl at errmessage{layout-only-vertical}
{Currently, layout related features can be adjusted only\\%
- in vertical mode.}%
+ in vertical mode}%
{Maybe things change in the future, but this is what it is.}
\bbl at errmessage{bidi-only-lua}
{The bidi method 'basic' is available only in\\%
@@ -174,11 +174,11 @@
{See the manual for further info}
\bbl at errmessage{unknown-interchar}
{'#1' for '\languagename' cannot be enabled.\\%
- Maybe there is a typo.}%
+ Maybe there is a typo}%
{See the manual for further details.}
\bbl at errmessage{unknown-interchar-b}
{'#1' for '\languagename' cannot be disabled.\\%
- Maybe there is a typo.}%
+ Maybe there is a typo}%
{See the manual for further details.}
\bbl at errmessage{charproperty-only-vertical}
{\string\babelcharproperty\space can be used only in\\%
@@ -213,8 +213,12 @@
{The '#1' ldf style doesn't work with #2,\\%
but you can use the ini locale instead.\\%
Try adding 'provide=*' to the option list. You may\\%
- also want to set 'bidi=' to some value.}%
+ also want to set 'bidi=' to some value}%
{See the manual for further details.}
+\bbl at errmessage{hyphenmins-args}
+ {\string\babelhyphenmins\ accepts either the optional\\%
+ argument or the star, but not both at the same time}%
+ {See the manual for further details.}
\endinput
%%
%% End of file `errbabel.def'.
Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg 2024-09-18 19:25:46 UTC (rev 72320)
@@ -37,10 +37,10 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{hyphen.cfg}[2024/08/29 v24.9 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2024/09/18 v24.10 Babel hyphens]
\xdef\bbl at format{\jobname}
-\def\bbl at version{24.9}
-\def\bbl at date{2024/08/29}
+\def\bbl at version{24.10}
+\def\bbl at date{2024/09/18}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\fi
Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf 2024-09-18 19:24:24 UTC (rev 72319)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf 2024-09-18 19:25:46 UTC (rev 72320)
@@ -32,7 +32,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension |.ins|) which are part of the distribution.
%%
-\ProvidesLanguage{nil}[2024/08/29 v24.9 Nil language]
+\ProvidesLanguage{nil}[2024/09/18 v24.10 Nil language]
\LdfInit{nil}{datenil}
\ifx\l at nil\@undefined
\newlanguage\l at nil
More information about the tex-live-commits
mailing list.