diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic')
10 files changed, 117 insertions, 70 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua index a39c69bed77..67377b7517e 100644 --- a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua +++ b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua @@ -171,7 +171,7 @@ function Babel.bidi(head, ispar) if mir == 'rrr' or mir == 'lrr' or mir == 'rrl' or mir == 'rlr' then for ch in node.traverse(node.next(last_lr)) do if ch == item then break end - if ch.id == node.id'glyph' then + if ch.id == node.id'glyph' and characters[ch.char] then ch.char = characters[ch.char].m or ch.char end end @@ -187,7 +187,9 @@ function Babel.bidi(head, ispar) end if last_lr and outer == 'r' then for ch in node.traverse_id(node.id'glyph', node.next(last_lr)) do - ch.char = characters[ch.char].m or ch.char + if characters[ch.char] then + ch.char = characters[ch.char].m or ch.char + end end end if first_n then diff --git a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua index d1fb3c00fce..f75a2ea9205 100644 --- a/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua +++ b/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua @@ -338,7 +338,8 @@ function Babel.bidi(head, ispar, hdir) for r = first_on, q - 1 do nodes[r][2] = temp item = nodes[r][1] -- MIRRORING - if Babel.mirroring_enabled and item.id == GLYPH and temp == 'r' then + if Babel.mirroring_enabled and item.id == GLYPH + and temp == 'r' and characters[item.char] then item.char = characters[item.char].m or item.char end end diff --git a/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua b/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua index 584796078b1..41eddf3a116 100644 --- a/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua +++ b/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua @@ -36,19 +36,24 @@ Babel = Babel or {} +-- TODO: merge ranges into characters, as meta index + Babel.ranges={ {0x0590, 0x05FF, 'r'}, {0x0600, 0x07BF, 'al'}, {0x07C0, 0x085F, 'r'}, {0x0860, 0x086F, 'al'}, {0x08A0, 0x08FF, 'al'}, + {0xE000, 0xF8FF, 'on'}, -- PUA {0xFB1D, 0xFB4F, 'r'}, {0xFB50, 0xFDFF, 'al'}, {0xFE70, 0xFEFF, 'al'}, {0x10800, 0x10C4F, 'r'}, {0x1E800, 0x1E8DF, 'r'}, {0x1E900, 0x1E95F, 'r'}, - {0x1F300, 0x1F9FF, 'on'} + {0x1F300, 0x1F9FF, 'on'}, + {0xF0000, 0xFFFFD, 'on'}, -- PUA + {0x100000, 0x10FFFD, 'on'} -- PUA } Babel.characters={ diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def index d655e4faa53..5fe9abb09e7 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.def +++ b/Master/texmf-dist/tex/generic/babel/babel.def @@ -41,7 +41,7 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{babel.def}[2019/09/27 3.34 Babel common definitions] +\ProvidesFile{babel.def}[2019/10/15 3.35 Babel common definitions] \ifx\AtBeginDocument\@undefined \input plain.def\relax \fi @@ -141,24 +141,26 @@ \bbl@tempa{ } \long\def\bbl@trim@i#1\@nil#2\relax#3{#3{#1}} \long\def\bbl@trim@def#1{\bbl@trim{\def#1}} -\def\bbl@ifunset#1{% - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\bbl@ifunset{ifcsname}% - {}% - {\def\bbl@ifunset#1{% - \ifcsname#1\endcsname - \expandafter\ifx\csname#1\endcsname\relax - \bbl@afterelse\expandafter\@firstoftwo +\begingroup + \gdef\bbl@ifunset#1{% + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + \bbl@ifunset{ifcsname}% + {}% + {\gdef\bbl@ifunset#1{% + \ifcsname#1\endcsname + \expandafter\ifx\csname#1\endcsname\relax + \bbl@afterelse\expandafter\@firstoftwo + \else + \bbl@afterfi\expandafter\@secondoftwo + \fi \else - \bbl@afterfi\expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi}} + \expandafter\@firstoftwo + \fi}} +\endgroup \def\bbl@ifblank#1{% \bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil} \long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4} @@ -567,16 +569,34 @@ \else \bbl@afterfi\csname#1@sh@#2@sel\endcsname \fi} -\def\active@prefix#1{% - \ifx\protect\@typeset@protect - \else - \ifx\protect\@unexpandable@protect - \noexpand#1% - \else - \protect#1% - \fi - \expandafter\@gobble - \fi} +\begingroup +\bbl@ifunset{ifincsname}% + {\gdef\active@prefix#1{% + \ifx\protect\@typeset@protect + \else + \ifx\protect\@unexpandable@protect + \noexpand#1% + \else + \protect#1% + \fi + \expandafter\@gobble + \fi}} + {\gdef\active@prefix#1{% + \ifincsname + \string#1% + \expandafter\@gobble + \else + \ifx\protect\@typeset@protect + \else + \ifx\protect\@unexpandable@protect + \noexpand#1% + \else + \protect#1% + \fi + \expandafter\expandafter\expandafter\@gobble + \fi + \fi}} +\endgroup \newif\if@safe@actives \@safe@activesfalse \def\bbl@restore@actives{\if@safe@actives\@safe@activesfalse\fi} @@ -1371,7 +1391,13 @@ \let\bbl@KVP@mapdigits\@nil \let\bbl@KVP@intraspace\@nil \let\bbl@KVP@intrapenalty\@nil - \bbl@forkv{#1}{\bbl@csarg\def{KVP@##1}{##2}}% TODO - error handling + \bbl@forkv{#1}{% TODO - error handling + \in@{/}{##1}% + \ifin@ + \bbl@renewinikey##1\@@{##2}% + \else + \bbl@csarg\def{KVP@##1}{##2}% + \fi}% \ifx\bbl@KVP@import\@nil\else \bbl@exp{\\\bbl@ifblank{\bbl@KVP@import}}% {\begingroup @@ -1714,10 +1740,7 @@ % Move trims here ?? \bbl@ifunset{bbl@KVP@\bbl@section/\bbl@tempa}% {\expandafter\bbl@inireader\bbl@tempa=##2\@@}% - {\def\bbl@tempc{\expandafter\bbl@inireader\bbl@tempa=}% - \expandafter\expandafter\expandafter - \bbl@tempc\csname bbl@KVP@\bbl@section/\bbl@tempa\endcsname\@@}% - \global\bbl@csarg\let{KVP@\bbl@section/\bbl@tempa}\relax}% + {}}% \let\bbl@inireader\bbl@iniskip \bbl@info{Importing data from babel-#1.ini for \languagename}% \loop @@ -1734,9 +1757,15 @@ \@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inipreread}#1\@@}% ] \def\bbl@iniskip#1\@@{}% if starts with ; \def\bbl@inisec[#1]#2\@@{% if starts with opening bracket + \def\bbl@elt##1##2{\bbl@inireader##1=##2\@@}% + \@nameuse{bbl@renew@\bbl@section}% + \global\bbl@csarg\let{renew@\bbl@section}\relax \@nameuse{bbl@secpost@\bbl@section}% ends previous section \def\bbl@section{#1}% - \@nameuse{bbl@secpre@\bbl@section}% starts current section + \def\bbl@elt##1##2{% + \@namedef{bbl@KVP@#1/##1}{}}% + \@nameuse{bbl@renew@#1}% + \@nameuse{bbl@secpre@#1}% starts current section \bbl@ifunset{bbl@inikv@#1}% {\let\bbl@inireader\bbl@iniskip}% {\bbl@exp{\let\\\bbl@inireader\<bbl@inikv@#1>}}} @@ -1997,7 +2026,8 @@ \noexpand\babelsublr{\unexpanded\expandafter{\thepage}}}}% \fi} {\ifbbl@single\else - \bbl@redefine\markright#1{% + \bbl@ifunset{markright }\bbl@redefine\bbl@redefinerobust + \markright#1{% \bbl@ifblank{#1}% {\org@markright{}}% {\toks@{#1}% @@ -2009,7 +2039,8 @@ \else \def\bbl@tempc{} \fi - \bbl@redefine\markboth#1#2{% + \bbl@ifunset{markboth }\bbl@redefine\bbl@redefinerobust + \markboth#1#2{% \protected@edef\bbl@tempb##1{% \protect\foreignlanguage {\languagename}{\protect\bbl@restore@actives##1}}% @@ -2095,7 +2126,7 @@ } \@onlypreamble\substitutefontfamily \bbl@trace{Encoding and fonts} -\newcommand\BabelNonASCII{LGR,X2,OT2,OT3,OT6,LHE,LWN,LMA,LMC,LMS,LMU} +\newcommand\BabelNonASCII{LGR,X2,OT2,OT3,OT6,LHE,LWN,LMA,LMC,LMS,LMU,PU,PD1} \newcommand\BabelNonText{TS1,T3,TS3} \let\org@TeX\TeX \let\org@LaTeX\LaTeX diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty index d4da81cfb83..53b77216948 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.sty +++ b/Master/texmf-dist/tex/generic/babel/babel.sty @@ -33,7 +33,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{babel}[2019/09/27 3.34 The Babel package] +\ProvidesPackage{babel}[2019/10/15 3.35 The Babel package] \@ifpackagewith{babel}{debug} {\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}% \let\bbl@debug\@firstofone} @@ -91,24 +91,26 @@ \bbl@tempa{ } \long\def\bbl@trim@i#1\@nil#2\relax#3{#3{#1}} \long\def\bbl@trim@def#1{\bbl@trim{\def#1}} -\def\bbl@ifunset#1{% - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\bbl@ifunset{ifcsname}% - {}% - {\def\bbl@ifunset#1{% - \ifcsname#1\endcsname - \expandafter\ifx\csname#1\endcsname\relax - \bbl@afterelse\expandafter\@firstoftwo +\begingroup + \gdef\bbl@ifunset#1{% + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} + \bbl@ifunset{ifcsname}% + {}% + {\gdef\bbl@ifunset#1{% + \ifcsname#1\endcsname + \expandafter\ifx\csname#1\endcsname\relax + \bbl@afterelse\expandafter\@firstoftwo + \else + \bbl@afterfi\expandafter\@secondoftwo + \fi \else - \bbl@afterfi\expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi}} + \expandafter\@firstoftwo + \fi}} +\endgroup \def\bbl@ifblank#1{% \bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil} \long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4} diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg index 830f587b6fb..c8e9d9a1f14 100644 --- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg +++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg @@ -37,7 +37,7 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{hyphen.cfg}[2019/09/27 3.34 Babel hyphens] +\ProvidesFile{hyphen.cfg}[2019/10/15 3.35 Babel hyphens] \xdef\bbl@format{\jobname} \ifx\AtBeginDocument\@undefined \def\@empty{} diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def index 2508b19f91b..0e5b0b731e9 100644 --- a/Master/texmf-dist/tex/generic/babel/luababel.def +++ b/Master/texmf-dist/tex/generic/babel/luababel.def @@ -532,9 +532,12 @@ \bbl@warning{The current font is not a babel standard family:\\% #1% \fontname\font\\% - There is nothing intrinsically wrong with it, but\\% - 'babel' will no set Script and Language. Consider\\% - defining a new family with \string\babelfont.\\% + There is nothing intrinsically wrong with this warning, and\\% + you can ignore it altogether if you do not need these\\% + families. But if they are used in the document, you should be\\% + aware 'babel' will no set Script and Language for them, so\\% + you may consider defining a new family with \string\babelfont.\\% + See the manual for further details about \string\babelfont.\\% Reported}} {}}% \gdef\bbl@switchfont{% diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf index 30e9ceb01eb..4c14ce974ae 100644 --- a/Master/texmf-dist/tex/generic/babel/nil.ldf +++ b/Master/texmf-dist/tex/generic/babel/nil.ldf @@ -32,7 +32,7 @@ %% extension |.ins|) which are part of the distribution. %% -\ProvidesLanguage{nil}[2019/09/27 3.34 Nil language] +\ProvidesLanguage{nil}[2019/10/15 3.35 Nil language] \LdfInit{nil}{datenil} \ifx\l@nil\@undefined \newlanguage\l@nil diff --git a/Master/texmf-dist/tex/generic/babel/switch.def b/Master/texmf-dist/tex/generic/babel/switch.def index 9b43136cbbe..7bd71338472 100644 --- a/Master/texmf-dist/tex/generic/babel/switch.def +++ b/Master/texmf-dist/tex/generic/babel/switch.def @@ -37,7 +37,7 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{switch.def}[2019/09/27 3.34 Babel switching mechanism] +\ProvidesFile{switch.def}[2019/10/15 3.35 Babel switching mechanism] \ifx\AtBeginDocument\@undefined \input plain.def\relax \fi @@ -58,8 +58,8 @@ \countdef\last@language=19 \def\addlanguage{\alloc@9\language\chardef\@cclvi} \fi -\def\bbl@version{3.34} -\def\bbl@date{2019/09/27} +\def\bbl@version{3.35} +\def\bbl@date{2019/10/15} \def\adddialect#1#2{% \global\chardef#1#2\relax \bbl@usehooks{adddialect}{{#1}{#2}}% diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def index f3ab376c6f8..cadb25901c2 100644 --- a/Master/texmf-dist/tex/generic/babel/xebabel.def +++ b/Master/texmf-dist/tex/generic/babel/xebabel.def @@ -124,9 +124,12 @@ \bbl@warning{The current font is not a babel standard family:\\% #1% \fontname\font\\% - There is nothing intrinsically wrong with it, but\\% - 'babel' will no set Script and Language. Consider\\% - defining a new family with \string\babelfont.\\% + There is nothing intrinsically wrong with this warning, and\\% + you can ignore it altogether if you do not need these\\% + families. But if they are used in the document, you should be\\% + aware 'babel' will no set Script and Language for them, so\\% + you may consider defining a new family with \string\babelfont.\\% + See the manual for further details about \string\babelfont.\\% Reported}} {}}% \gdef\bbl@switchfont{% |