texlive[58999] Master/texmf-dist: babel (26apr21)
commits+karl at tug.org
commits+karl at tug.org
Tue Apr 27 15:33:33 CEST 2021
Revision: 58999
http://tug.org/svn/texlive?view=revision&revision=58999
Author: karl
Date: 2021-04-27 15:33:33 +0200 (Tue, 27 Apr 2021)
Log Message:
-----------
babel (26apr21)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/babel/README.md
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/hyphen.cfg
trunk/Master/texmf-dist/tex/generic/babel/locale/am/babel-am.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-arabic.tex
trunk/Master/texmf-dist/tex/generic/babel/locale/cs/babel-cs.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/es/babel-es.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/ml/babel-ml.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/nb/babel-nb.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/pl/babel-pl.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-BR.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-PT.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sk/babel-sk.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini
trunk/Master/texmf-dist/tex/generic/babel/locale/ug/babel-uyghur.tex
trunk/Master/texmf-dist/tex/generic/babel/luababel.def
trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
trunk/Master/texmf-dist/tex/generic/babel/xebabel.def
Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md 2021-04-27 13:33:33 UTC (rev 58999)
@@ -1,4 +1,4 @@
-## Babel 3.57
+## Babel 3.58
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -8,9 +8,9 @@
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.57 are described in:
+Changes in version 3.58 are described in:
-https://github.com/latex3/babel/blob/master/news-guides/news/whats-new-in-babel-3.57.md
+https://github.com/latex3/babel/blob/master/news-guides/news/whats-new-in-babel-3.58.md
Apart from the manual, you can find information on some aspects of babel at:
@@ -46,6 +46,20 @@
### Summary of Latest changes
```
+3.58 2021-04-26
+ * More predefined transforms (lua):
+ - doubleletter.hyphen: Norsk
+ - oneletter.nobreak: Czech, Polish, Slovak
+ - hyphen.repeat: Czech, Polish, Portuguese, Slovak, Spanish
+ - punctuation.space: Hindi, Sanskrit
+ - transliteration.hk: Sanskrit
+ - transliteration.gajica: Serbian
+ * 'prehyphenation' transforms are now disabled in verbatim.
+ * New line breaking mode ‘unhyphenated’.
+ * Fix: \shorthandoff*{^} was not revertible (#126).
+ * Experimental code for Arabic justification (with elongated
+ forms: lua).
+
3.57 2021-04-07
* Predefined transforms (lua):
- Arabic: transliteration.dad
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 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx 2021-04-27 13:33:33 UTC (rev 58999)
@@ -31,7 +31,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2021/04/07 v3.57 The Babel package]
+\ProvidesFile{babel.dtx}[2021/04/26 v3.58 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -80,6 +80,13 @@
\usepackage{multicol}
\usepackage{color,colortbl}
\usepackage[linkcolor=blue,urlcolor=blue,colorlinks=true]{hyperref}
+\hypersetup{%
+ pdfsubject={LaTeX Multilingual documents and localization for pdfTeX, LuaTex and
+ XeTeX.},
+ pdfauthor={Johannes Braams, Javier Bezos},
+ pdftitle={Babel},
+ pdfkeywords={TeX, LaTeX, pdfTeX, LuaTeX, XeTeX, internationalization,
+ localization}}
\newcommand\New[1]{%
\colorbox[rgb]{.92, .86, .73}{New #1}\enspace\ignorespaces}
\definecolor{thered} {rgb}{0.65,0.04,0.07}
@@ -89,6 +96,7 @@
\makeatletter
\def\@begintheorem#1#2{%
\list{}{}%
+ \small
\global\advance\@listdepth\m at ne
\item[{\sffamily\bfseries\color{messages}\hspace*{1.3em}%
\MakeUppercase{#1}}]}%
@@ -238,9 +246,9 @@
\begin{description}
\item[\sffamily\color{messages}What is this document about?] This user
guide focuses on internationalization and localization with \LaTeX{}
-and \pdftex, \xetex{} and \luatex{} with the \babel{} package. There are
-also some notes on its use with Plain \TeX. Part II describes the code,
-and usually it can be ignored.
+and \pdftex, \xetex{} and \luatex{} with the \babel{} package. There
+are also some notes on its use with e-Plain and pdf-Plain \TeX . Part II
+describes the code, and usually it can be ignored.
\item[\sffamily\color{messages}What if I’m interested only in the
latest changes?] Changes and new features with relation to version 3.8
@@ -631,7 +639,7 @@
\subsection{Plain}
-In Plain, load languages styles with |\input| and then use
+In e-Plain and pdf-Plain, load languages styles with |\input| and then use
|\begindocument| (the latter is defined by \babel):
\begin{verbatim}
\input estonian.sty
@@ -640,9 +648,10 @@
\begin{warning}
Not all languages provide a |sty| file and some of them are not
- compatible with Plain.\footnote{Even in the \babel{} kernel there
- were some macros not compatible with plain. Hopefully these issues
- have been fixed.}
+ compatible with those formats. Please, refer to
+ \href{https://github.com/latex3/babel/blob/%
+ master/news-guides/guides/using-babel-with-plain.md}{Using babel with
+ Plain} for further details.
\end{warning}
\subsection{Basic language selectors}
@@ -1298,7 +1307,7 @@
|ini| files are not meant only for \babel, and they has been devised as
a resource for other packages. To easy interoperability between \TeX{}
and other systems, they are identified with the BCP 47 codes as
-preferred by the Unicode Common Language Data Repository, which was
+preferred by the Unicode Common Locale Data Repository, which was
used as source for most of the data provided by these files, too (the
main exception being the |\...name| strings).
@@ -1408,7 +1417,7 @@
\begingroup
\setmonofont[Script=Lao,Scale=MatchLowercase]{DejaVu Sans Mono}
\begin{verbatim}
-\babelprovide[import,hyphenrules=+]{lao}
+\babelprovide[import, hyphenrules=+]{lao}
\babelpatterns[lao]{1ດ 1ມ 1ອ 1ງ 1ກ 1າ} % Random
\end{verbatim}
\endgroup
@@ -2490,6 +2499,9 @@
In other engines it just suppresses hyphenation (because the pattern
list is empty).
+\New{3.58} Another special value is |unhyphenated|, which activates a
+line breking mode that allows spaces to be stretched to arbitrary amounts.
+
\Describe{main}{} This valueless option makes the language the main one
(thus overriding that set when \babel\ is loaded). Only in newly defined
languages.
@@ -3034,11 +3046,13 @@
\begingroup
\def\trans#1#2#3{%
- \vspace{1mm}%
- \parbox[t]{2.4cm}{\strut#1}%
- \parbox[t]{4.2cm}{\strut\ttfamily#2}%
+ \vspace{1.5mm}%
+ \parbox[t]{2.2cm}{\raggedright\strut#1}%
+ \hspace{2mm}%
+ \parbox[t]{4.0cm}{\strut\ttfamily#2}%
+ \hspace{2mm}%
\parbox[t]{6.6cm}{\strut#3}\par}
-\bigskip\hrule\nobreak\vspace{1mm}
+\bigskip\hrule\nobreak\vspace{.5mm}
% \strut\hfil Transforms
% \medskip\hrule\nobreak
@@ -3052,18 +3066,37 @@
recommended way to make these transformations (the best way is with
OTF features), but it can get you out of a hurry.}
+\trans{Czech, Polish, Portuguese, Slovak,
+Spanish}{hyphen.repeat}{Explicit hyphens behave like
+|\string\babelhyphen|\allowbreak|\{repeat\}|.}
+
+\trans{Czech, Polish, Slovak}{oneletter.nobreak}{Converts a space after
+a non-syllabic preposition or conjunction into a non-breaking space.}
+
\trans{Greek}{diaeresis.hyphen}{Removes the diaeresis above iota and
upsilon if hyphenated just before. It works with the
three variants.}
-\trans{Hindi}{transliteration.hk}{The Harvard-Kyoto system to romanize
-Devanagari.}
+\trans{Hindi, Sanskrit}{transliteration.hk}{The Harvard-Kyoto system to
+romanize Devanagari.}
+\trans{}{punctuation.space}{Inserts a space before the following
+four characters: \textit{!?:;}\,.}
+
\trans{Hungarian}{digraphs.hyphen}{Hyphenates the long digraphs
\textit{ccs}, \textit{ddz}, \textit{ggy}, \textit{lly}, \textit{nny},
\textit{ssz}, \textit{tty} and \textit{zzs} as \textit{cs-cs},
\textit{dz-dz}, etc.}
+\trans{Norsk}{doubleletter.hyphen}{Hyphenates the doble-letter groups
+\textit{bb}, \textit{dd}, \textit{ff}, \textit{gg}, \textit{ll},
+\textit{mm}, \textit{nn}, \textit{pp}, \textit{rr}, \textit{ss},
+\textit{tt} as \textit{bb-b}, \textit{dd-d}, etc.}
+
+\trans{Serbian}{transliteration.gajica}{(Note |serbian| with |ini|
+files refers to the Cyrillic script, which is here the target.) The
+standard system devised by Ljudevit Gaj.}
+
\vspace{2mm}\hrule\nobreak
\endgroup
@@ -3147,6 +3180,21 @@
\end{verbatim}
\end{example}
+\begin{note}
+ With \luatex{} there is another approach to make text
+ transformations, with the function |fonts.handlers.otf.addfeature|,
+ which adds new features to an OTF font (substitution and
+ positioning). These features can be made language-dependent, and
+ \babel{} by default recognizes this setting if the font has been
+ declared with |\babelfont|. The \textit{transforms} mechanism
+ supplements rather than replaces OTF features.
+
+ With \xetex{}, where \textit{transforms} are not available, there is
+ still another approach, with font mappings, mainly meant to perform
+ encoding conversions and transliterations. Mappings, however, are
+ linked to fonts, not to languages.
+\end{note}
+
\subsection{Selection based on BCP 47 tags}
\label{bcp47}
@@ -4910,8 +4958,8 @@
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.57>>
-%<<date=2021/04/07>>
+%<<version=3.58>>
+%<<date=2021/04/26>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -7104,8 +7152,10 @@
\count@#1\relax
\def\bbl at elt##1##2##3##4{%
\ifnum\count@=##2\relax
- \bbl at info{\string#1 = using hyphenrules for ##1\\%
- (\string\language\the\count@)}%
+ \edef\bbl at tempa{\expandafter\@gobbletwo\string#1}%
+ \bbl at info{Hyphen rules for '\expandafter\@gobble\bbl at tempa'
+ set to \expandafter\string\csname l@##1\endcsname\\%
+ (\string\language\the\count@). Reported}%
\def\bbl at elt####1####2####3####4{}%
\fi}%
\bbl at cs{languages}%
@@ -7597,14 +7647,23 @@
\fi
\fi
\let\bbl at hymapsel\@cclv
- % hyphenation - select patterns
- \bbl at patterns{#1}%
- % hyphenation - allow stretching with babelnohyphens
- \ifnum\language=\l at babelnohyphens
+ % hyphenation - select rules
+ \ifnum\csname l@\languagename\endcsname=\l at unhyphenated
+ \edef\bbl at tempa{u}%
+ \else
+ \edef\bbl at tempa{\bbl at cl{lnbrk}}%
+ \fi
+ \bbl at xin@{/u}{/\bbl at tempa}%
+ \ifin@
+ % 'unhyphenated' = allow stretching
+ \language\l at unhyphenated
\babel at savevariable\emergencystretch
\emergencystretch\maxdimen
\babel at savevariable\hbadness
\hbadness\@M
+ \else
+ % other = select patterns
+ \bbl at patterns{#1}%
\fi
% hyphenation - mins
\babel at savevariable\lefthyphenmin
@@ -8877,10 +8936,13 @@
% or |\normal at char|\m{char} in the case of |\bbl at deactivate|.
%
% \begin{macrocode}
+\chardef\bbl at activated\z@
\def\bbl at activate#1{%
+ \chardef\bbl at activated\@ne
\bbl at withactive{\expandafter\let\expandafter}#1%
\csname bbl at active@\string#1\endcsname}
\def\bbl at deactivate#1{%
+ \chardef\bbl at activated\tw@
\bbl at withactive{\expandafter\let\expandafter}#1%
\csname bbl at normal@\string#1\endcsname}
% \end{macrocode}
@@ -9152,12 +9214,25 @@
{\bbl at error
{I cannot switch `\string#2' on or off--not a shorthand}%
{This character is not a shorthand. Maybe you made\\%
- a typing mistake? I will ignore your instruction}}%
- {\ifcase#1%
+ a typing mistake? I will ignore your instruction.}}%
+ {\ifcase#1% off, on, off*
\catcode`#212\relax
\or
\catcode`#2\active
+ \bbl at ifunset{bbl at shdef@\string#2}%
+ {}%
+ {\bbl at withactive{\expandafter\let\expandafter}#2%
+ \csname bbl at shdef@\string#2\endcsname
+ \bbl at csarg\let{shdef@\string#2}\relax}%
+ \ifcase\bbl at activated\or
+ \bbl at activate{#2}%
+ \else
+ \bbl at deactivate{#2}%
+ \fi
\or
+ \bbl at ifunset{bbl at shdef@\string#2}%
+ {\bbl at withactive{\bbl at csarg\let{shdef@\string#2}}#2}%
+ {}%
\csname bbl at oricat@\string#2\endcsname
\csname bbl at oridef@\string#2\endcsname
\fi}%
@@ -10628,8 +10703,8 @@
\chardef\l at english\z@
\fi
% The following is used to cancel rules in ini files (see Amharic).
-\ifx\l at babelnohyhens\@undefined
- \newlanguage\l at babelnohyphens
+\ifx\l at unhyphenated\@undefined
+ \newlanguage\l at unhyphenated
\fi
% \end{macrocode}
%
@@ -10712,6 +10787,7 @@
\let\bbl at KVP@script\@nil
\let\bbl at KVP@language\@nil
\let\bbl at KVP@hyphenrules\@nil
+ \let\bbl at KVP@linebreaking\@nil
\let\bbl at KVP@mapfont\@nil
\let\bbl at KVP@maparabic\@nil
\let\bbl at KVP@mapdigits\@nil
@@ -11112,7 +11188,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.
+% saved values. (TODO. But preserving previous values would be useful.)
%
% \begin{macrocode}
\def\bbl at load@basic#1{%
@@ -12089,6 +12165,14 @@
\BabelEnsureInfo}
\@namedef{bbl at ADJ@bcp47.toname at off}{%
\bbl at bcptonamefalse}
+\@namedef{bbl at ADJ@prehyphenation.disable at nohyphenation}{%
+ \directlua{ Babel.ignore_pre_char = function(node)
+ return (node.lang == \the\csname l at nohyphenation\endcsname)
+ end }}
+\@namedef{bbl at ADJ@prehyphenation.disable at off}{%
+ \directlua{ Babel.ignore_pre_char = function(node)
+ return false
+ end }}
% TODO: use babel name, override
%
% As the final task, load the code for lua.
@@ -12875,8 +12959,8 @@
\bbl at csarg\gdef{xeipn@\languagename}%
{\XeTeXlinebreakpenalty #1\relax}}
\def\bbl at provide@intraspace{%
- \bbl at xin@{\bbl at cl{lnbrk}}{s}%
- \ifin@\else\bbl at xin@{\bbl at cl{lnbrk}}{c}\fi
+ \bbl at xin@{/s}{/\bbl at cl{lnbrk}}%
+ \ifin@\else\bbl at xin@{/c}{/\bbl at cl{lnbrk}}\fi
\ifin@
\bbl at ifunset{bbl at intsp@\languagename}{}%
{\expandafter\ifx\csname bbl at intsp@\languagename\endcsname\@empty\else
@@ -13581,7 +13665,7 @@
\def\bbl at provide@intraspace{%
\bbl at ifunset{bbl at intsp@\languagename}{}%
{\expandafter\ifx\csname bbl at intsp@\languagename\endcsname\@empty\else
- \bbl at xin@{\bbl at cl{lnbrk}}{c}%
+ \bbl at xin@{/c}{/\bbl at cl{lnbrk}}%
\ifin@ % cjk
\bbl at cjkintraspace
\directlua{
@@ -13867,7 +13951,11 @@
end
Babel.fetch_subtext = {}
-
+
+ Babel.ignore_pre_char = function(node)
+ return (node.lang == \the\l at nohyphenation)
+ end
+
&% Merging both functions doesn't seen feasible, because there are too
&% many differences.
Babel.fetch_subtext[0] = function(head)
@@ -13891,7 +13979,11 @@
if lang == locale or lang == nil then
lang = lang or locale
- word_string = word_string .. unicode.utf8.char(item.char)
+ if Babel.ignore_pre_char(item) then
+ word_string = word_string .. Babel.us_char
+ else
+ word_string = word_string .. unicode.utf8.char(item.char)
+ end
word_nodes[#word_nodes+1] = item
else
break
Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins 2021-04-27 13:33:33 UTC (rev 58999)
@@ -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{2021/04/07}
+\def\filedate{2021/04/26}
\def\batchfile{babel.ins}
\input docstrip.tex
Modified: trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx 2021-04-27 13:33:33 UTC (rev 58999)
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2021/04/07 v3.57]
+\ProvidesFile{bbcompat.dtx}[2021/04/26 v3.58]
%</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 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def 2021-04-27 13:33:33 UTC (rev 58999)
@@ -39,7 +39,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2021/04/07 3.57 Babel common definitions]
+\ProvidesFile{babel.def}[2021/04/26 3.58 Babel common definitions]
\ifx\AtBeginDocument\@undefined % TODO. change test.
% == Code for plain ==
\def\@empty{}
@@ -397,8 +397,8 @@
\fi
\countdef\last at language=19 % TODO. why? remove?
\def\addlanguage{\csname newlanguage\endcsname}
-\def\bbl at version{3.57}
-\def\bbl at date{2021/04/07}
+\def\bbl at version{3.58}
+\def\bbl at date{2021/04/26}
\def\adddialect#1#2{%
\global\chardef#1#2\relax
\bbl at usehooks{adddialect}{{#1}{#2}}%
@@ -406,8 +406,10 @@
\count@#1\relax
\def\bbl at elt##1##2##3##4{%
\ifnum\count@=##2\relax
- \bbl at info{\string#1 = using hyphenrules for ##1\\%
- (\string\language\the\count@)}%
+ \edef\bbl at tempa{\expandafter\@gobbletwo\string#1}%
+ \bbl at info{Hyphen rules for '\expandafter\@gobble\bbl at tempa'
+ set to \expandafter\string\csname l@##1\endcsname\\%
+ (\string\language\the\count@). Reported}%
\def\bbl at elt####1####2####3####4{}%
\fi}%
\bbl at cs{languages}%
@@ -686,14 +688,23 @@
\fi
\fi
\let\bbl at hymapsel\@cclv
- % hyphenation - select patterns
- \bbl at patterns{#1}%
- % hyphenation - allow stretching with babelnohyphens
- \ifnum\language=\l at babelnohyphens
+ % hyphenation - select rules
+ \ifnum\csname l@\languagename\endcsname=\l at unhyphenated
+ \edef\bbl at tempa{u}%
+ \else
+ \edef\bbl at tempa{\bbl at cl{lnbrk}}%
+ \fi
+ \bbl at xin@{/u}{/\bbl at tempa}%
+ \ifin@
+ % 'unhyphenated' = allow stretching
+ \language\l at unhyphenated
\babel at savevariable\emergencystretch
\emergencystretch\maxdimen
\babel at savevariable\hbadness
\hbadness\@M
+ \else
+ % other = select patterns
+ \bbl at patterns{#1}%
\fi
% hyphenation - mins
\babel at savevariable\lefthyphenmin
@@ -1458,10 +1469,13 @@
\newif\if at safe@actives
\@safe at activesfalse
\def\bbl at restore@actives{\if at safe@actives\@safe at activesfalse\fi}
+\chardef\bbl at activated\z@
\def\bbl at activate#1{%
+ \chardef\bbl at activated\@ne
\bbl at withactive{\expandafter\let\expandafter}#1%
\csname bbl at active@\string#1\endcsname}
\def\bbl at deactivate#1{%
+ \chardef\bbl at activated\tw@
\bbl at withactive{\expandafter\let\expandafter}#1%
\csname bbl at normal@\string#1\endcsname}
\def\bbl at firstcs#1#2{\csname#1\endcsname}
@@ -1580,12 +1594,25 @@
{\bbl at error
{I cannot switch `\string#2' on or off--not a shorthand}%
{This character is not a shorthand. Maybe you made\\%
- a typing mistake? I will ignore your instruction}}%
- {\ifcase#1%
+ a typing mistake? I will ignore your instruction.}}%
+ {\ifcase#1% off, on, off*
\catcode`#212\relax
\or
\catcode`#2\active
+ \bbl at ifunset{bbl at shdef@\string#2}%
+ {}%
+ {\bbl at withactive{\expandafter\let\expandafter}#2%
+ \csname bbl at shdef@\string#2\endcsname
+ \bbl at csarg\let{shdef@\string#2}\relax}%
+ \ifcase\bbl at activated\or
+ \bbl at activate{#2}%
+ \else
+ \bbl at deactivate{#2}%
+ \fi
\or
+ \bbl at ifunset{bbl at shdef@\string#2}%
+ {\bbl at withactive{\bbl at csarg\let{shdef@\string#2}}#2}%
+ {}%
\csname bbl at oricat@\string#2\endcsname
\csname bbl at oridef@\string#2\endcsname
\fi}%
@@ -2268,8 +2295,8 @@
\ifx\l at english\@undefined
\chardef\l at english\z@
\fi
-\ifx\l at babelnohyhens\@undefined
- \newlanguage\l at babelnohyphens
+\ifx\l at unhyphenated\@undefined
+ \newlanguage\l at unhyphenated
\fi
\bbl at trace{Bidi layout}
\providecommand\IfBabelLayout[3]{#3}%
@@ -2329,6 +2356,7 @@
\let\bbl at KVP@script\@nil
\let\bbl at KVP@language\@nil
\let\bbl at KVP@hyphenrules\@nil
+ \let\bbl at KVP@linebreaking\@nil
\let\bbl at KVP@mapfont\@nil
\let\bbl at KVP@maparabic\@nil
\let\bbl at KVP@mapdigits\@nil
@@ -3487,6 +3515,14 @@
\BabelEnsureInfo}
\@namedef{bbl at ADJ@bcp47.toname at off}{%
\bbl at bcptonamefalse}
+\@namedef{bbl at ADJ@prehyphenation.disable at nohyphenation}{%
+ \directlua{ Babel.ignore_pre_char = function(node)
+ return (node.lang == \the\csname l at nohyphenation\endcsname)
+ end }}
+\@namedef{bbl at ADJ@prehyphenation.disable at off}{%
+ \directlua{ Babel.ignore_pre_char = function(node)
+ return false
+ end }}
\ifx\directlua\@undefined\else
\ifx\bbl at luapatterns\@undefined
\input luababel.def
Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty 2021-04-27 13:33:33 UTC (rev 58999)
@@ -33,7 +33,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2021/04/07 3.57 The Babel package]
+\ProvidesPackage{babel}[2021/04/26 3.58 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl at trace[1]{\message{^^J[ #1 ]}}%
\let\bbl at debug\@firstofone
Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg 2021-04-27 13:33:33 UTC (rev 58999)
@@ -37,10 +37,10 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{hyphen.cfg}[2021/04/07 3.57 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2021/04/26 3.58 Babel hyphens]
\xdef\bbl at format{\jobname}
-\def\bbl at version{3.57}
-\def\bbl at date{2021/04/07}
+\def\bbl at version{3.58}
+\def\bbl at date{2021/04/26}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\let\orig at dump\dump
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/am/babel-am.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/am/babel-am.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/am/babel-am.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.4
-date = 2020-10-11
+version = 1.5
+date = 2021-04-24
name.local = አማርኛ
name.english = Amharic
name.babel = amharic
@@ -150,7 +150,7 @@
[typography]
frenchspacing = yes
; Modern practice. Use 'amharic' for the traditional one:
-hyphenrules = babelnohyphens
+hyphenrules = unhyphenated
lefthyphenmin = 1
righthyphenmin = 1
hyphenchar =
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.8
-date = 2021-04-05
+version = 1.9
+date = 2021-04-24
name.local = العربية
name.english = Arabic
name.babel = arabic
@@ -26,6 +26,7 @@
level = 1
encodings =
derivate = no
+require.babel = arabic
[captions]
preface = مدخل
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-arabic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-arabic.tex 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-arabic.tex 2021-04-27 13:33:33 UTC (rev 58999)
@@ -9,4 +9,88 @@
\fi
\BabelBeforeIni{ar}{%
}
+
+\ifcase\bbl at engine\or
+
+\directlua{
+
+Babel.ar_tolong = {}
+
+function Babel.ar_justify(head)
+ local substlist = Babel.ar_tolong
+ local GLYPH = node.id'glyph'
+ local substs, width, goal
+ local subst_done = true % false
+ math.randomseed(1)
+ for line in node.traverse_id(node.id'hlist', head) do
+ if (line.glue_sign == 1 and line.glue_order == 0) then % exclude last line!
+ substs = {} % we store all “expandable” letters of each line
+ for n in node.traverse_id(GLYPH, line.head) do
+ if (substlist[n.char]) then
+ table.insert(substs, n)
+ end
+ end
+ line.glue_set = 0 % deactivate normal glue expansion
+ width = node.dimensions(line.head) % check the new width
+ goal = line.width
+
+ while (width < goal and \string#substs > 0) do
+ x = math.random(\string#substs) % choose randomly a glyph
+ oldchar = substs[x].char
+ substs[x].char = substlist[substs[x].char]
+ subst_done = true
+ width = node.dimensions(line.head) % check if the line is too wide
+ % substitute back if the line would be too wide and break:
+ if width > goal then substs[x].char = oldchar break end
+ % if further substitutions have to be done, remove the just
+ % substituted node from the list:
+ table.remove(substs,x)
+ end
+ % Must take into account marks and ins, see luatex manual.
+ % Have to be executed only if there are changes.
+ if subst_done then
+ line.head = node.hpack(line.head, goal, 'exactly')
+ end
+ end
+ end
+ return head
+end
+
+}
+
+\gdef\ArabicSetupJust{%
+ \directlua{
+ Babel.ar_tolong = {}
+ luatexbase.add_to_callback('post_linebreak_filter',
+ Babel.ar_justify, 'Babel.ar_justify')
+ }%
+ % It must be done for each font, and stored separately.
+ % Locale must be taken into account too. Brute force.
+ % No rules at all, yet. The ideal: look at jalt table.
+ % And perhaps other tables (falt?, cswh?). What about kaf?
+ \begingroup
+ \bbl at foreach{%
+ 0628,0629,062A,062B,062C,062D,062E,062F,0630,0631,0632,0633,%
+ 0634,0635,0636,0637,0638,0639,063A,063B,063C,063D,063E,063F,%
+ 0640,0641,0642,0643,0644,0645,0646,0647,0649}{%
+ \setbox\z@\hbox{% Only final, for the moment
+ ^^^^200d\char"##1=%
+ \addfontfeature{RawFeature=+jalt}%
+ ^^^^200d\char"##1}%
+ \directlua{
+ local chars = {}
+ for item in node.traverse(tex.box[0].head) do
+ if item.id == node.id'glyph' and item.char > 128 and
+ not (item.char == 0x200D) then
+ table.insert(chars, item.char)
+ end
+ end
+ if not (chars[1] == chars[2]) then
+ Babel.ar_tolong[chars[1]] = chars[2]
+ end
+ }}%
+ \endgroup}
+
+\fi
+
\endinput
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/cs/babel-cs.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/cs/babel-cs.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/cs/babel-cs.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.2
-date = 2020-06-30
+version = 1.3
+date = 2021-04-24
name.local = čeština
name.english = Czech
name.babel = czech
@@ -183,3 +183,13 @@
superscriptingExponent = ×
[counters]
+
+[transforms.prehyphenation]
+oneletter.nobreak.1.0 = { |[AIiVvOoUuSsZzKk]()|() }
+oneletter.nobreak.1.1 = { insert, penalty=10000 }
+oneletter.nobreak.1.2 = {}
+
+[transforms.posthyphenation]
+hyphen.repeat.1.0 = { (){a}=(){a} }
+hyphen.repeat.1.1 = {}
+hyphen.repeat.1.2 = { no = -, pre = -, post = -, data = 1 }
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/es/babel-es.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/es/babel-es.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/es/babel-es.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.2
-date = 2020-06-30
+version = 1.3
+date = 2021-04-24
name.local = español
name.english = Spanish
name.babel = spanish
@@ -183,3 +183,8 @@
superscriptingExponent = ×
[counters]
+
+[transforms.posthyphenation]
+hyphen.repeat.1.0 = { (){a}=(){a} }
+hyphen.repeat.1.1 = {}
+hyphen.repeat.1.2 = { no = -, pre = -, post = -, data = 1 }
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -12,8 +12,8 @@
[identification]
charset = utf8
-version = 1.9
-date = 2021-04-05
+version = 1.10
+date = 2021-04-24
name.local = हिन्दी
name.english = Hindi
name.babel = hindi
@@ -203,6 +203,15 @@
alphabetic = क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह
[transforms.prehyphenation]
+punctuation.space.1.0 = { {a}()|[:;!{?}]() }
+punctuation.space.1.1 = { insert, penalty = 10000 }
+punctuation.space.1.2 = { spacefactor= .8 .3 .8, data = 2 }
+punctuation.space.1.3 = {}
+punctuation.space.2.0 = { {a}()[:;!{?}]() }
+punctuation.space.2.1 = { insert, penalty = 10000 }
+punctuation.space.2.2 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.2.3 = {}
+; == Harvard-Kyoto ==
; Multiletter
transliteration.hk.1.0 = { lRR }
transliteration.hk.1.1 = { string = ॡ }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ml/babel-ml.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ml/babel-ml.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ml/babel-ml.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.6
-date = 2020-06-30
+version = 1.7
+date = 2021-04-24
name.local = മലയാളം
name.english = Malayalam
name.babel = malayalam
@@ -124,9 +124,6 @@
[typography]
frenchspacing = yes
hyphenrules = malayalam
-; Or else?:
-; linebreaking = s / e
-; hyphenrules = babelnohyphens
lefthyphenmin = 2
righthyphenmin = 2
hyphenchar =
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/nb/babel-nb.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/nb/babel-nb.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/nb/babel-nb.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.3
-date = 2020-10-11
+version = 1.4
+date = 2021-04-24
name.local = norsk bokmål
name.english = Norwegian Bokmål
name.babel = norsk norwegianbokmal
@@ -185,3 +185,9 @@
superscriptingExponent = ×
[counters]
+
+[transforms.posthyphenation]
+doubleletter.hyphen.1.0 = {()([BDFGLMNPRSTbdfglmnprst])|(){1}}
+doubleletter.hyphen.1.1 = { no = {1}, pre = {1}{1}- }
+doubleletter.hyphen.1.2 = remove
+
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/pl/babel-pl.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/pl/babel-pl.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/pl/babel-pl.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.2
-date = 2020-06-30
+version = 1.3
+date = 2021-04-24
name.local = polski
name.english = Polish
name.babel = polish
@@ -183,3 +183,13 @@
superscriptingExponent = ×
[counters]
+
+[transforms.prehyphenation]
+oneletter.nobreak.1.0 = { |[aiouwzAIOUWZ]()|() }
+oneletter.nobreak.1.1 = { insert, penalty=10000 }
+oneletter.nobreak.1.2 = {}
+
+[transforms.posthyphenation]
+hyphen.repeat.1.0 = { (){a}=(){a} }
+hyphen.repeat.1.1 = {}
+hyphen.repeat.1.2 = { no = -, pre = -, post = -, data = 1 }
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-BR.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-BR.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-BR.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.4
-date = 2020-06-30
+version = 1.5
+date = 2021-04-24
name.local = português
name.english = Portuguese
name.babel = brazilian portuguese-brazil portuguese-br
@@ -188,3 +188,8 @@
superscriptingExponent = ×
[counters]
+
+[transforms.posthyphenation]
+hyphen.repeat.1.0 = { (){a}=(){a} }
+hyphen.repeat.1.1 = {}
+hyphen.repeat.1.2 = { no = -, pre = -, post = -, data = 1 }
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-PT.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-PT.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt-PT.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.4
-date = 2020-06-30
+version = 1.5
+date = 2021-04-24
name.local = português
name.english = Portuguese
name.babel = portuguese portuguese-portugal portuguese-pt
@@ -188,3 +188,8 @@
superscriptingExponent = ×
[counters]
+
+[transforms.posthyphenation]
+hyphen.repeat.1.0 = { (){a}=(){a} }
+hyphen.repeat.1.1 = {}
+hyphen.repeat.1.2 = { no = -, pre = -, post = -, data = 1 }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/pt/babel-pt.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.4
-date = 2020-06-30
+version = 1.5
+date = 2021-04-24
name.local = português
name.english = Portuguese
name.babel = portuguese
@@ -185,3 +185,8 @@
superscriptingExponent = ×
[counters]
+
+[transforms.posthyphenation]
+hyphen.repeat.1.0 = { (){a}=(){a} }
+hyphen.repeat.1.1 = {}
+hyphen.repeat.1.2 = { no = -, pre = -, post = -, data = 1 }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 0.10
-date = 2020-06-30
+version = 0.11
+date = 2021-04-24
name.local = संस्कृत
name.english = Sanskrit
name.babel = sanskrit
@@ -110,3 +110,53 @@
superscriptingExponent = ×
[counters]
+
+[transforms.prehyphenation]
+punctuation.space.1.0 = { {a}()|[:;!{?}]() }
+punctuation.space.1.1 = { insert, penalty = 10000 }
+punctuation.space.1.2 = { spacefactor= .8 .3 .8, data = 2 }
+punctuation.space.1.3 = {}
+punctuation.space.2.0 = { {a}()[:;!{?}]() }
+punctuation.space.2.1 = { insert, penalty = 10000 }
+punctuation.space.2.2 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.2.3 = {}
+; == Harvard-Kyoto ==
+; Multiletter
+transliteration.hk.1.0 = { lRR }
+transliteration.hk.1.1 = { string = ॡ }
+transliteration.hk.1.2 = { remove }
+transliteration.hk.1.3 = { remove }
+transliteration.hk.2.0 = { OM }
+transliteration.hk.2.1 = { string = ॐ }
+transliteration.hk.2.2 = { remove }
+transliteration.hk.3.0 = { {007C}{007C} }
+transliteration.hk.3.1 = { string = ॥ }
+transliteration.hk.3.2 = { remove }
+transliteration.hk.4.0 = { ([lR])R }
+transliteration.hk.4.1 = { string = {1|lR|ऌॠ} }
+transliteration.hk.4.2 = { remove }
+transliteration.hk.5.0 = { a([iu]) }
+transliteration.hk.5.1 = { remove }
+transliteration.hk.5.2 = { string = {1|iu|ऐऔ} }
+; Xh
+transliteration.hk.6.0 = { ([kgcjTDtdpb])h }
+transliteration.hk.6.1 = { string = {1|kgcjTDtdpb|खघछझठढथधफभ} }
+transliteration.hk.6.2 = { remove }
+; Single letter
+transliteration.hk.7.0 = { ([MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}']) }
+transliteration.hk.7.1 = { string = {1|MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}'|ंःअआइईउऊऋएओकगङचजञटडणतदनपबमयरलवशषसहळ।ऽ} }
+; Post-process vowels
+transliteration.hk.8.0 = { [{0915}-{0939}]([आइईउऊऋॠऌॡएऐओऔऎऒ]) }
+transliteration.hk.8.1 = {}
+transliteration.hk.8.2 = { string = {1|आइईउऊऋॠऌॡएऐओऔऎऒ|ािीुूृॄॢॣेैोौॆॊ} }
+transliteration.hk.9.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
+transliteration.hk.9.1 = {}
+transliteration.hk.9.2 = { string = ^^^^094d{1} }
+; Duplicated (a trick)
+transliteration.hk.10.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
+transliteration.hk.10.1 = {}
+transliteration.hk.10.2 = { string = ^^^^094d{1} }
+; Inherent a
+transliteration.hk.11.0 = { [{0915}-{0939}]{0905} }
+transliteration.hk.11.1 = {}
+transliteration.hk.11.2 = { remove }
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 0.10
-date = 2020-06-30
+version = 0.11
+date = 2021-04-2430
name.english = Sanskrit
name.babel = sanskrit
name.polyglossia = sanskrit
@@ -95,3 +95,53 @@
delimiters.quotes.0 =
[counters]
+
+[transforms.prehyphenation]
+punctuation.space.1.0 = { {a}()|[:;!{?}]() }
+punctuation.space.1.1 = { insert, penalty = 10000 }
+punctuation.space.1.2 = { spacefactor= .8 .3 .8, data = 2 }
+punctuation.space.1.3 = {}
+punctuation.space.2.0 = { {a}()[:;!{?}]() }
+punctuation.space.2.1 = { insert, penalty = 10000 }
+punctuation.space.2.2 = { insert, spacefactor= .8 .3 .8, data = 1 }
+punctuation.space.2.3 = {}
+; == Harvard-Kyoto ==
+; Multiletter
+transliteration.hk.1.0 = { lRR }
+transliteration.hk.1.1 = { string = ॡ }
+transliteration.hk.1.2 = { remove }
+transliteration.hk.1.3 = { remove }
+transliteration.hk.2.0 = { OM }
+transliteration.hk.2.1 = { string = ॐ }
+transliteration.hk.2.2 = { remove }
+transliteration.hk.3.0 = { {007C}{007C} }
+transliteration.hk.3.1 = { string = ॥ }
+transliteration.hk.3.2 = { remove }
+transliteration.hk.4.0 = { ([lR])R }
+transliteration.hk.4.1 = { string = {1|lR|ऌॠ} }
+transliteration.hk.4.2 = { remove }
+transliteration.hk.5.0 = { a([iu]) }
+transliteration.hk.5.1 = { remove }
+transliteration.hk.5.2 = { string = {1|iu|ऐऔ} }
+; Xh
+transliteration.hk.6.0 = { ([kgcjTDtdpb])h }
+transliteration.hk.6.1 = { string = {1|kgcjTDtdpb|खघछझठढथधफभ} }
+transliteration.hk.6.2 = { remove }
+; Single letter
+transliteration.hk.7.0 = { ([MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}']) }
+transliteration.hk.7.1 = { string = {1|MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}'|ंःअआइईउऊऋएओकगङचजञटडणतदनपबमयरलवशषसहळ।ऽ} }
+; Post-process vowels
+transliteration.hk.8.0 = { [{0915}-{0939}]([आइईउऊऋॠऌॡएऐओऔऎऒ]) }
+transliteration.hk.8.1 = {}
+transliteration.hk.8.2 = { string = {1|आइईउऊऋॠऌॡएऐओऔऎऒ|ािीुूृॄॢॣेैोौॆॊ} }
+transliteration.hk.9.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
+transliteration.hk.9.1 = {}
+transliteration.hk.9.2 = { string = ^^^^094d{1} }
+; Duplicated (a trick)
+transliteration.hk.10.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
+transliteration.hk.10.1 = {}
+transliteration.hk.10.2 = { string = ^^^^094d{1} }
+; Inherent a
+transliteration.hk.11.0 = { [{0915}-{0939}]{0905} }
+transliteration.hk.11.1 = {}
+transliteration.hk.11.2 = { remove }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sk/babel-sk.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sk/babel-sk.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sk/babel-sk.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.2
-date = 2020-06-30
+version = 1.3
+date = 2021-04-24
name.local = slovenčina
name.english = Slovak
name.babel = slovak
@@ -183,3 +183,13 @@
superscriptingExponent = ×
[counters]
+
+[transforms.prehyphenation]
+oneletter.nobreak.1.0 = { |[AIiVvOoUuSsZzKk]()|() }
+oneletter.nobreak.1.1 = { insert, penalty=10000 }
+oneletter.nobreak.1.2 = {}
+
+[transforms.posthyphenation]
+hyphen.repeat.1.0 = { (){a}=(){a} }
+hyphen.repeat.1.1 = {}
+hyphen.repeat.1.2 = { no = -, pre = -, post = -, data = 1 }
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-BA.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2021-04-24
name.local = српски
name.english = Serbian
name.babel = serbian-cyrillic-bosniaherzegovina
@@ -187,3 +187,16 @@
[counters]
lower = а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш
upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш
+
+[transforms.prehyphenation]
+; With implicit remove's, in 1-4 as x.2
+transliteration.gajica.1.0 = { ([ln])j }
+transliteration.gajica.1.1 = { string = {1|ln|љњ} }
+transliteration.gajica.2.0 = { ([LN])[jJ] }
+transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} }
+transliteration.gajica.3.0 = { dž }
+transliteration.gajica.3.1 = { string = џ }
+transliteration.gajica.4.0 = { D[žŽ] }
+transliteration.gajica.4.1 = { string = Џ }
+transliteration.gajica.5.0 = { ([abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ]) }
+transliteration.gajica.5.1 = { string = {1|abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ|абвгдђежзијклмнопрстћуфхцчшАБВГДЂЕЖЗИЈКЛМНОПРСТЋУФХЦЧШ} }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-ME.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2021-04-24
name.local = српски
name.english = Serbian
name.babel = serbian-cyrillic-montenegro
@@ -187,3 +187,16 @@
[counters]
lower = а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш
upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш
+
+[transforms.prehyphenation]
+; With implicit remove's, in 1-4 as x.2
+transliteration.gajica.1.0 = { ([ln])j }
+transliteration.gajica.1.1 = { string = {1|ln|љњ} }
+transliteration.gajica.2.0 = { ([LN])[jJ] }
+transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} }
+transliteration.gajica.3.0 = { dž }
+transliteration.gajica.3.1 = { string = џ }
+transliteration.gajica.4.0 = { D[žŽ] }
+transliteration.gajica.4.1 = { string = Џ }
+transliteration.gajica.5.0 = { ([abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ]) }
+transliteration.gajica.5.1 = { string = {1|abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ|абвгдђежзијклмнопрстћуфхцчшАБВГДЂЕЖЗИЈКЛМНОПРСТЋУФХЦЧШ} }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl-XK.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2021-04-24
name.local = српски
name.english = Serbian
name.babel = serbian-cyrillic-kosovo
@@ -187,3 +187,16 @@
[counters]
lower = а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш
upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш
+
+[transforms.prehyphenation]
+; With implicit remove's, in 1-4 as x.2
+transliteration.gajica.1.0 = { ([ln])j }
+transliteration.gajica.1.1 = { string = {1|ln|љњ} }
+transliteration.gajica.2.0 = { ([LN])[jJ] }
+transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} }
+transliteration.gajica.3.0 = { dž }
+transliteration.gajica.3.1 = { string = џ }
+transliteration.gajica.4.0 = { D[žŽ] }
+transliteration.gajica.4.1 = { string = Џ }
+transliteration.gajica.5.0 = { ([abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ]) }
+transliteration.gajica.5.1 = { string = {1|abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ|абвгдђежзијклмнопрстћуфхцчшАБВГДЂЕЖЗИЈКЛМНОПРСТЋУФХЦЧШ} }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr-Cyrl.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2021-04-24
name.local = српски
name.english = Serbian
name.babel = serbian-cyrillic
@@ -184,3 +184,16 @@
[counters]
lower = а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш
upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш
+
+[transforms.prehyphenation]
+; With implicit remove's, in 1-4 as x.2
+transliteration.gajica.1.0 = { ([ln])j }
+transliteration.gajica.1.1 = { string = {1|ln|љњ} }
+transliteration.gajica.2.0 = { ([LN])[jJ] }
+transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} }
+transliteration.gajica.3.0 = { dž }
+transliteration.gajica.3.1 = { string = џ }
+transliteration.gajica.4.0 = { D[žŽ] }
+transliteration.gajica.4.1 = { string = Џ }
+transliteration.gajica.5.0 = { ([abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ]) }
+transliteration.gajica.5.1 = { string = {1|abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ|абвгдђежзијклмнопрстћуфхцчшАБВГДЂЕЖЗИЈКЛМНОПРСТЋУФХЦЧШ} }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini 2021-04-27 13:33:33 UTC (rev 58999)
@@ -11,8 +11,8 @@
[identification]
charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2021-04-24
name.local = српски
name.english = Serbian
name.babel = serbian
@@ -185,3 +185,16 @@
[counters]
lower = а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш
upper = А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш
+
+[transforms.prehyphenation]
+; With implicit remove's, in 1-4 as x.2
+transliteration.gajica.1.0 = { ([ln])j }
+transliteration.gajica.1.1 = { string = {1|ln|љњ} }
+transliteration.gajica.2.0 = { ([LN])[jJ] }
+transliteration.gajica.2.1 = { string = {1|LN|ЉЉ} }
+transliteration.gajica.3.0 = { dž }
+transliteration.gajica.3.1 = { string = џ }
+transliteration.gajica.4.0 = { D[žŽ] }
+transliteration.gajica.4.1 = { string = Џ }
+transliteration.gajica.5.0 = { ([abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ]) }
+transliteration.gajica.5.1 = { string = {1|abvgdđežzijklmnoprstćufhcčšABVGDĐEŽZIJKLMNOPRSTĆUFHCČŠ|абвгдђежзијклмнопрстћуфхцчшАБВГДЂЕЖЗИЈКЛМНОПРСТЋУФХЦЧШ} }
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ug/babel-uyghur.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ug/babel-uyghur.tex 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ug/babel-uyghur.tex 2021-04-27 13:33:33 UTC (rev 58999)
@@ -10,6 +10,8 @@
\BabelBeforeIni{ug}{%
}
+\ifcase\bbl at engine\or
+
\newattribute\bblug at disc
\bblug at disc=-1
@@ -72,4 +74,6 @@
ug.hyphenate, "Babel.locale.uyghur.hyphenate")
}
+\fi
+
\endinput
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/generic/babel/luababel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/luababel.def 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/luababel.def 2021-04-27 13:33:33 UTC (rev 58999)
@@ -505,7 +505,7 @@
\def\bbl at provide@intraspace{%
\bbl at ifunset{bbl at intsp@\languagename}{}%
{\expandafter\ifx\csname bbl at intsp@\languagename\endcsname\@empty\else
- \bbl at xin@{\bbl at cl{lnbrk}}{c}%
+ \bbl at xin@{/c}{/\bbl at cl{lnbrk}}%
\ifin@ % cjk
\bbl at cjkintraspace
\directlua{
@@ -929,6 +929,10 @@
Babel.fetch_subtext = {}
+ Babel.ignore_pre_char = function(node)
+ return (node.lang == \the\l at nohyphenation)
+ end
+
&% Merging both functions doesn't seen feasible, because there are too
&% many differences.
Babel.fetch_subtext[0] = function(head)
@@ -952,7 +956,11 @@
if lang == locale or lang == nil then
lang = lang or locale
- word_string = word_string .. unicode.utf8.char(item.char)
+ if Babel.ignore_pre_char(item) then
+ word_string = word_string .. Babel.us_char
+ else
+ word_string = word_string .. unicode.utf8.char(item.char)
+ end
word_nodes[#word_nodes+1] = item
else
break
Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf 2021-04-27 13:33:33 UTC (rev 58999)
@@ -32,7 +32,7 @@
%% extension |.ins|) which are part of the distribution.
%%
-\ProvidesLanguage{nil}[2021/04/07 3.57 Nil language]
+\ProvidesLanguage{nil}[2021/04/26 3.58 Nil language]
\LdfInit{nil}{datenil}
\ifx\l at nil\@undefined
\newlanguage\l at nil
Modified: trunk/Master/texmf-dist/tex/generic/babel/xebabel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/xebabel.def 2021-04-27 13:32:15 UTC (rev 58998)
+++ trunk/Master/texmf-dist/tex/generic/babel/xebabel.def 2021-04-27 13:33:33 UTC (rev 58999)
@@ -52,8 +52,8 @@
\bbl at csarg\gdef{xeipn@\languagename}%
{\XeTeXlinebreakpenalty #1\relax}}
\def\bbl at provide@intraspace{%
- \bbl at xin@{\bbl at cl{lnbrk}}{s}%
- \ifin@\else\bbl at xin@{\bbl at cl{lnbrk}}{c}\fi
+ \bbl at xin@{/s}{/\bbl at cl{lnbrk}}%
+ \ifin@\else\bbl at xin@{/c}{/\bbl at cl{lnbrk}}\fi
\ifin@
\bbl at ifunset{bbl at intsp@\languagename}{}%
{\expandafter\ifx\csname bbl at intsp@\languagename\endcsname\@empty\else
More information about the tex-live-commits
mailing list.