diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.def')
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/babel.def | 62 |
1 files changed, 49 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def index 7c5ec15a9bc..44121348c6e 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.def +++ b/Master/texmf-dist/tex/generic/babel/babel.def @@ -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@language=19 % TODO. why? remove? \def\addlanguage{\csname newlanguage\endcsname} -\def\bbl@version{3.57} -\def\bbl@date{2021/04/07} +\def\bbl@version{3.58} +\def\bbl@date{2021/04/26} \def\adddialect#1#2{% \global\chardef#1#2\relax \bbl@usehooks{adddialect}{{#1}{#2}}% @@ -406,8 +406,10 @@ \count@#1\relax \def\bbl@elt##1##2##3##4{% \ifnum\count@=##2\relax - \bbl@info{\string#1 = using hyphenrules for ##1\\% - (\string\language\the\count@)}% + \edef\bbl@tempa{\expandafter\@gobbletwo\string#1}% + \bbl@info{Hyphen rules for '\expandafter\@gobble\bbl@tempa' + set to \expandafter\string\csname l@##1\endcsname\\% + (\string\language\the\count@). Reported}% \def\bbl@elt####1####2####3####4{}% \fi}% \bbl@cs{languages}% @@ -686,14 +688,23 @@ \fi \fi \let\bbl@hymapsel\@cclv - % hyphenation - select patterns - \bbl@patterns{#1}% - % hyphenation - allow stretching with babelnohyphens - \ifnum\language=\l@babelnohyphens + % hyphenation - select rules + \ifnum\csname l@\languagename\endcsname=\l@unhyphenated + \edef\bbl@tempa{u}% + \else + \edef\bbl@tempa{\bbl@cl{lnbrk}}% + \fi + \bbl@xin@{/u}{/\bbl@tempa}% + \ifin@ + % 'unhyphenated' = allow stretching + \language\l@unhyphenated \babel@savevariable\emergencystretch \emergencystretch\maxdimen \babel@savevariable\hbadness \hbadness\@M + \else + % other = select patterns + \bbl@patterns{#1}% \fi % hyphenation - mins \babel@savevariable\lefthyphenmin @@ -1458,10 +1469,13 @@ \newif\if@safe@actives \@safe@activesfalse \def\bbl@restore@actives{\if@safe@actives\@safe@activesfalse\fi} +\chardef\bbl@activated\z@ \def\bbl@activate#1{% + \chardef\bbl@activated\@ne \bbl@withactive{\expandafter\let\expandafter}#1% \csname bbl@active@\string#1\endcsname} \def\bbl@deactivate#1{% + \chardef\bbl@activated\tw@ \bbl@withactive{\expandafter\let\expandafter}#1% \csname bbl@normal@\string#1\endcsname} \def\bbl@firstcs#1#2{\csname#1\endcsname} @@ -1580,12 +1594,25 @@ {\bbl@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@ifunset{bbl@shdef@\string#2}% + {}% + {\bbl@withactive{\expandafter\let\expandafter}#2% + \csname bbl@shdef@\string#2\endcsname + \bbl@csarg\let{shdef@\string#2}\relax}% + \ifcase\bbl@activated\or + \bbl@activate{#2}% + \else + \bbl@deactivate{#2}% + \fi \or + \bbl@ifunset{bbl@shdef@\string#2}% + {\bbl@withactive{\bbl@csarg\let{shdef@\string#2}}#2}% + {}% \csname bbl@oricat@\string#2\endcsname \csname bbl@oridef@\string#2\endcsname \fi}% @@ -2268,8 +2295,8 @@ \ifx\l@english\@undefined \chardef\l@english\z@ \fi -\ifx\l@babelnohyhens\@undefined - \newlanguage\l@babelnohyphens +\ifx\l@unhyphenated\@undefined + \newlanguage\l@unhyphenated \fi \bbl@trace{Bidi layout} \providecommand\IfBabelLayout[3]{#3}% @@ -2329,6 +2356,7 @@ \let\bbl@KVP@script\@nil \let\bbl@KVP@language\@nil \let\bbl@KVP@hyphenrules\@nil + \let\bbl@KVP@linebreaking\@nil \let\bbl@KVP@mapfont\@nil \let\bbl@KVP@maparabic\@nil \let\bbl@KVP@mapdigits\@nil @@ -3487,6 +3515,14 @@ \BabelEnsureInfo} \@namedef{bbl@ADJ@bcp47.toname@off}{% \bbl@bcptonamefalse} +\@namedef{bbl@ADJ@prehyphenation.disable@nohyphenation}{% + \directlua{ Babel.ignore_pre_char = function(node) + return (node.lang == \the\csname l@nohyphenation\endcsname) + end }} +\@namedef{bbl@ADJ@prehyphenation.disable@off}{% + \directlua{ Babel.ignore_pre_char = function(node) + return false + end }} \ifx\directlua\@undefined\else \ifx\bbl@luapatterns\@undefined \input luababel.def |