summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel')
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def125
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty39
-rw-r--r--Master/texmf-dist/tex/generic/babel/hyphen.cfg2
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/tr/babel-turkish.tex2
-rw-r--r--Master/texmf-dist/tex/generic/babel/luababel.def83
-rw-r--r--Master/texmf-dist/tex/generic/babel/nil.ldf2
-rw-r--r--Master/texmf-dist/tex/generic/babel/switch.def10
-rw-r--r--Master/texmf-dist/tex/generic/babel/xebabel.def59
8 files changed, 233 insertions, 89 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 02e3a8c8f6d..d655e4faa53 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/07/19 3.33 Babel common definitions]
+\ProvidesFile{babel.def}[2019/09/27 3.34 Babel common definitions]
\ifx\AtBeginDocument\@undefined
\input plain.def\relax
\fi
@@ -65,6 +65,7 @@
\def\bbl@opt@safe{BR}
\ifx\@uclclist\@undefined\let\@uclclist\@empty\fi
\ifx\bbl@trace\@undefined\def\bbl@trace#1{}\fi
+ \expandafter\newif\csname ifbbl@single\endcsname
\fi
\ifx\bbl@switchflag\@undefined % Prevent double input
\let\bbl@switchflag\relax
@@ -121,6 +122,12 @@
#2}}
\long\def\bbl@afterelse#1\else#2\fi{\fi#1}
\long\def\bbl@afterfi#1\fi{\fi#1}
+\def\bbl@exp#1{%
+ \begingroup
+ \let\\\noexpand
+ \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
+ \edef\bbl@exp@aux{\endgroup#1}%
+ \bbl@exp@aux}
\def\bbl@tempa#1{%
\long\def\bbl@trim##1##2{%
\futurelet\bbl@trim@a\bbl@trim@c##2\@nil\@nil#1\@nil\relax{##1}}%
@@ -187,9 +194,10 @@
\fi}%
\expandafter\bbl@replace@aux#1#2\bbl@nil#2%
\edef#1{\the\toks@}}
-\expandafter\def\expandafter\bbl@parsedef\detokenize{macro:}#1->#2\relax{%
+\bbl@exp{\def\\\bbl@parsedef##1\detokenize{macro:}}#2->#3\relax{%
\def\bbl@tempa{#1}%
- \def\bbl@tempb{#2}}
+ \def\bbl@tempb{#2}%
+ \def\bbl@tempe{#3}}
\def\bbl@sreplace#1#2#3{%
\begingroup
\expandafter\bbl@parsedef\meaning#1\relax
@@ -197,18 +205,20 @@
\edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}%
\def\bbl@tempd{#3}%
\edef\bbl@tempd{\expandafter\strip@prefix\meaning\bbl@tempd}%
- \bbl@exp{\\\bbl@replace\\\bbl@tempb{\bbl@tempc}{\bbl@tempd}}%
- \bbl@exp{%
+ \bbl@xin@{\bbl@tempc}{\bbl@tempe}% If not in macro, do nothing
+ \ifin@
+ \bbl@exp{\\\bbl@replace\\\bbl@tempe{\bbl@tempc}{\bbl@tempd}}%
+ \def\bbl@tempc{% Expanded an executed below as 'uplevel'
+ \\\makeatletter % "internal" macros with @ are assumed
+ \\\scantokens{%
+ \bbl@tempa\\\@namedef{\bbl@stripslash#1}\bbl@tempb{\bbl@tempe}}%
+ \catcode64=\the\catcode64\relax}% Restore @
+ \else
+ \let\bbl@tempc\@empty % Not \relax
+ \fi
+ \bbl@exp{% For the 'uplevel' assignments
\endgroup
- \\\makeatletter % "internal" macros with @ are assumed
- \\\scantokens{\def\\#1\bbl@tempa{\bbl@tempb}}%
- \catcode64=\the\catcode64\relax}} % Restore @
-\def\bbl@exp#1{%
- \begingroup
- \let\\\noexpand
- \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
- \edef\bbl@exp@aux{\endgroup#1}%
- \bbl@exp@aux}
+ \bbl@tempc}} % empty or expand to set #1 with changes
\def\bbl@ifsamestring#1#2{%
\begingroup
\protected@edef\bbl@tempb{#1}%
@@ -288,7 +298,8 @@
everylanguage=1,loadkernel=1,loadpatterns=1,loadexceptions=1,%
adddialect=2,patterns=2,defaultcommands=0,encodedcommands=2,write=0,%
beforeextras=0,afterextras=0,stopcommands=0,stringprocess=0,%
- hyphenation=2,initiateactive=3,afterreset=0,foreign=0,foreign*=0}
+ hyphenation=2,initiateactive=3,afterreset=0,foreign=0,foreign*=0,%
+ beforestart=0}
\bbl@trace{Defining babelensure}
\newcommand\babelensure[2][]{% TODO - revise test files
\AddBabelHook{babel-ensure}{afterextras}{%
@@ -405,8 +416,22 @@
\bbl@id@assign
\chardef\localeid\@nameuse{bbl@id@@\languagename}%
\bbl@patterns{\languagename}}
+\def\bbl@beforestart{%
+ \bbl@usehooks{beforestart}{}%
+ \global\let\bbl@beforestart\relax}
\AtBeginDocument{%
+ \bbl@beforestart
+ \if@filesw
+ \immediate\write\@mainaux{%
+ % \let\string\bbl@nostdfont\string\@gobble
+ \string\bbl@beforestart}%
+ \fi
\expandafter\selectlanguage\expandafter{\bbl@main@language}%
+ \ifbbl@single % must go after the line above
+ \renewcommand\selectlanguage[1]{}%
+ \renewcommand\foreignlanguage[2]{#2}%
+ \global\let\babel@aux\@gobbletwo % Also as flag
+ \fi
\ifcase\bbl@engine\or\pagedir\bodydir\fi} % TODO - a better place
\def\select@language@x#1{%
\ifcase\bbl@select@type
@@ -473,7 +498,7 @@
\expandafter\let\csname normal@char#2\endcsname#3%
\else
\bbl@info{Making #2 an active character}%
- \ifnum\mathcode`#2="8000
+ \ifnum\mathcode`#2=\ifodd\bbl@engine"1000000 \else"8000 \fi
\@namedef{normal@char#2}{%
\textormath{#3}{\csname bbl@oridef@@#2\endcsname}}%
\else
@@ -1551,8 +1576,10 @@
\catcode`\@=\atcatcode
\let\atcatcode\relax
\fi}%
- \let\languagename\bbl@savelangname
- \chardef\localeid\bbl@savelocaleid\relax}
+ \ifx\bbl@KVP@main\@nil % Restore only if not 'main'
+ \let\languagename\bbl@savelangname
+ \chardef\localeid\bbl@savelocaleid\relax
+ \fi}
\def\bbl@setdigits#1#2#3#4#5{%
\bbl@exp{%
\def\<\languagename digits>####1{% ie, \langdigits
@@ -1682,6 +1709,15 @@
\let\bbl@savestrings\@empty
\let\bbl@savetoday\@empty
\let\bbl@savedate\@empty
+ \def\bbl@inipreread##1=##2\@@{%
+ \bbl@trim@def\bbl@tempa{##1}% Redundant below !!
+ % 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
@@ -1695,7 +1731,7 @@
\repeat
\fi}
\def\bbl@iniline#1\bbl@iniline{%
- \@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inireader}#1\@@}% ]
+ \@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
\@nameuse{bbl@secpost@\bbl@section}% ends previous section
@@ -1860,6 +1896,7 @@
\bbl@add\bbl@secpost@identification{\closein1 }%
\catcode`\[=12 \catcode`\]=12 \catcode`\==12 %
\bbl@read@ini{##1}%
+ \endinput
\endgroup}% boxed, to avoid extra spaces:
{\setbox\z@\hbox{\InputIfFileExists{babel-#1.tex}{}{}}}}
{\def\format{lplain}
@@ -1959,30 +1996,32 @@
\edef\thepage{%
\noexpand\babelsublr{\unexpanded\expandafter{\thepage}}}}%
\fi}
- {\bbl@redefine\markright#1{%
- \bbl@ifblank{#1}%
- {\org@markright{}}%
- {\toks@{#1}%
- \bbl@exp{%
- \\\org@markright{\\\protect\\\foreignlanguage{\languagename}%
- {\\\protect\\\bbl@restore@actives\the\toks@}}}}}%
- \ifx\@mkboth\markboth
- \def\bbl@tempc{\let\@mkboth\markboth}
- \else
- \def\bbl@tempc{}
- \fi
- \bbl@redefine\markboth#1#2{%
- \protected@edef\bbl@tempb##1{%
- \protect\foreignlanguage
- {\languagename}{\protect\bbl@restore@actives##1}}%
- \bbl@ifblank{#1}%
- {\toks@{}}%
- {\toks@\expandafter{\bbl@tempb{#1}}}%
- \bbl@ifblank{#2}%
- {\@temptokena{}}%
- {\@temptokena\expandafter{\bbl@tempb{#2}}}%
- \bbl@exp{\\\org@markboth{\the\toks@}{\the\@temptokena}}}
- \bbl@tempc} % end \IfBabelLayout
+ {\ifbbl@single\else
+ \bbl@redefine\markright#1{%
+ \bbl@ifblank{#1}%
+ {\org@markright{}}%
+ {\toks@{#1}%
+ \bbl@exp{%
+ \\\org@markright{\\\protect\\\foreignlanguage{\languagename}%
+ {\\\protect\\\bbl@restore@actives\the\toks@}}}}}%
+ \ifx\@mkboth\markboth
+ \def\bbl@tempc{\let\@mkboth\markboth}
+ \else
+ \def\bbl@tempc{}
+ \fi
+ \bbl@redefine\markboth#1#2{%
+ \protected@edef\bbl@tempb##1{%
+ \protect\foreignlanguage
+ {\languagename}{\protect\bbl@restore@actives##1}}%
+ \bbl@ifblank{#1}%
+ {\toks@{}}%
+ {\toks@\expandafter{\bbl@tempb{#1}}}%
+ \bbl@ifblank{#2}%
+ {\@temptokena{}}%
+ {\@temptokena\expandafter{\bbl@tempb{#2}}}%
+ \bbl@exp{\\\org@markboth{\the\toks@}{\the\@temptokena}}}
+ \bbl@tempc
+ \fi} % end ifbbl@single, end \IfBabelLayout
\bbl@trace{Preventing clashes with other packages}
\bbl@xin@{R}\bbl@opt@safe
\ifin@
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index e866fbbdd6a..d4da81cfb83 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/07/19 3.33 The Babel package]
+\ProvidesPackage{babel}[2019/09/27 3.34 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}%
\let\bbl@debug\@firstofone}
@@ -72,6 +72,12 @@
#2}}
\long\def\bbl@afterelse#1\else#2\fi{\fi#1}
\long\def\bbl@afterfi#1\fi{\fi#1}
+\def\bbl@exp#1{%
+ \begingroup
+ \let\\\noexpand
+ \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
+ \edef\bbl@exp@aux{\endgroup#1}%
+ \bbl@exp@aux}
\def\bbl@tempa#1{%
\long\def\bbl@trim##1##2{%
\futurelet\bbl@trim@a\bbl@trim@c##2\@nil\@nil#1\@nil\relax{##1}}%
@@ -138,9 +144,10 @@
\fi}%
\expandafter\bbl@replace@aux#1#2\bbl@nil#2%
\edef#1{\the\toks@}}
-\expandafter\def\expandafter\bbl@parsedef\detokenize{macro:}#1->#2\relax{%
+\bbl@exp{\def\\\bbl@parsedef##1\detokenize{macro:}}#2->#3\relax{%
\def\bbl@tempa{#1}%
- \def\bbl@tempb{#2}}
+ \def\bbl@tempb{#2}%
+ \def\bbl@tempe{#3}}
\def\bbl@sreplace#1#2#3{%
\begingroup
\expandafter\bbl@parsedef\meaning#1\relax
@@ -148,18 +155,20 @@
\edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}%
\def\bbl@tempd{#3}%
\edef\bbl@tempd{\expandafter\strip@prefix\meaning\bbl@tempd}%
- \bbl@exp{\\\bbl@replace\\\bbl@tempb{\bbl@tempc}{\bbl@tempd}}%
- \bbl@exp{%
+ \bbl@xin@{\bbl@tempc}{\bbl@tempe}% If not in macro, do nothing
+ \ifin@
+ \bbl@exp{\\\bbl@replace\\\bbl@tempe{\bbl@tempc}{\bbl@tempd}}%
+ \def\bbl@tempc{% Expanded an executed below as 'uplevel'
+ \\\makeatletter % "internal" macros with @ are assumed
+ \\\scantokens{%
+ \bbl@tempa\\\@namedef{\bbl@stripslash#1}\bbl@tempb{\bbl@tempe}}%
+ \catcode64=\the\catcode64\relax}% Restore @
+ \else
+ \let\bbl@tempc\@empty % Not \relax
+ \fi
+ \bbl@exp{% For the 'uplevel' assignments
\endgroup
- \\\makeatletter % "internal" macros with @ are assumed
- \\\scantokens{\def\\#1\bbl@tempa{\bbl@tempb}}%
- \catcode64=\the\catcode64\relax}} % Restore @
-\def\bbl@exp#1{%
- \begingroup
- \let\\\noexpand
- \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
- \edef\bbl@exp@aux{\endgroup#1}%
- \bbl@exp@aux}
+ \bbl@tempc}} % empty or expand to set #1 with changes
\def\bbl@ifsamestring#1#2{%
\begingroup
\protected@edef\bbl@tempb{#1}%
@@ -313,6 +322,8 @@
\DeclareOption{silent}{}
\DeclareOption{mono}{}
\DeclareOption{shorthands=off}{\bbl@tempa shorthands=\bbl@tempa}
+\newif\ifbbl@single
+\DeclareOption{selectors=off}{\bbl@singletrue}
\DeclareOption{math=active}{}
\DeclareOption{math=normal}{\def\bbl@mathnormal{\noexpand\textormath}}
\DeclareOption{nocase}{}
diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
index d658be7135f..830f587b6fb 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/07/19 3.33 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2019/09/27 3.34 Babel hyphens]
\xdef\bbl@format{\jobname}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
diff --git a/Master/texmf-dist/tex/generic/babel/locale/tr/babel-turkish.tex b/Master/texmf-dist/tex/generic/babel/locale/tr/babel-turkish.tex
index e7346cf2515..3653ca6ff2a 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/tr/babel-turkish.tex
+++ b/Master/texmf-dist/tex/generic/babel/locale/tr/babel-turkish.tex
@@ -10,7 +10,7 @@
\BabelBeforeIni{tr}{%
}
-\StartBabelCommands*{turkish}{}
+\StartBabelCommands{turkish}{}
\SetCase
{\uccode`i=`İ\relax
\uccode`ı=`I\relax}
diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def
index 69f0adfe3aa..2508b19f91b 100644
--- a/Master/texmf-dist/tex/generic/babel/luababel.def
+++ b/Master/texmf-dist/tex/generic/babel/luababel.def
@@ -490,19 +490,24 @@
\input #1\relax}
\ifx\DisableBabelHook\@undefined\endinput\fi
\AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont}
+\AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts}
\DisableBabelHook{babel-fontspec}
\bbl@trace{Font handling with fontspec}
\@onlypreamble\babelfont
\newcommand\babelfont[2][]{% 1=langs/scripts 2=fam
\edef\bbl@tempa{#1}%
- \def\bbl@tempb{#2}%
+ \def\bbl@tempb{#2}% Used by \bbl@bblfont
\ifx\fontspec\@undefined
\usepackage{fontspec}%
\fi
\EnableBabelHook{babel-fontspec}% Just calls \bbl@switchfont
\bbl@bblfont}
-\newcommand\bbl@bblfont[2][]{% 1=features 2=fontname
- \bbl@ifunset{\bbl@tempb family}{\bbl@providefam{\bbl@tempb}}{}%
+\newcommand\bbl@bblfont[2][]{% 1=features 2=fontname, @font=rm|sf|tt
+ \bbl@ifunset{\bbl@tempb family}%
+ {\bbl@providefam{\bbl@tempb}}%
+ {\bbl@exp{%
+ \\\bbl@sreplace\<\bbl@tempb family >%
+ {\@nameuse{\bbl@tempb default}}{\<\bbl@tempb default>}}}%
% For the default font, just in case:
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\expandafter\bbl@ifblank\expandafter{\bbl@tempa}%
@@ -521,7 +526,18 @@
\\\not@math@alphabet\<#1family>\relax
\\\fontfamily\<#1default>\\\selectfont}%
\\\DeclareTextFontCommand{\<text#1>}{\<#1family>}}}
-\def\bbl@switchfont{%
+\def\bbl@nostdfont#1{%
+ \bbl@ifunset{bbl@WFF@\f@family}%
+ {\bbl@csarg\gdef{WFF@\f@family}{}% Flag, to avoid dupl warns
+ \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.\\%
+ Reported}}
+ {}}%
+\gdef\bbl@switchfont{%
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\bbl@exp{% eg Arabic -> arabic
\lowercase{\edef\\\bbl@tempa{\bbl@cs{sname@\languagename}}}}%
@@ -537,12 +553,7 @@
\global\let\<bbl@##1dflt@\languagename>%
\<bbl@##1dflt@*\bbl@tempa>}}}%
{}}% 1=T - language, already defined
- \def\bbl@tempa{%
- \bbl@warning{The current font is not a standard family:\\%
- \fontname\font\\%
- Script and Language are not applied. Consider\\%
- defining a new family with \string\babelfont.\\%
- Reported}}%
+ \def\bbl@tempa{\bbl@nostdfont{}}%
\bbl@foreach\bbl@font@fams{% don't gather with prev for
\bbl@ifunset{bbl@##1dflt@\languagename}%
{\bbl@cs{famrst@##1}%
@@ -554,6 +565,34 @@
\\\bbl@font@set\<bbl@##1dflt@\languagename>% the main part!
\<##1default>\<##1family>}}}%
\bbl@ifrestoring{}{\bbl@tempa}}%
+\ifx\f@family\@undefined\else % if latex
+ \ifcase\bbl@engine % if pdftex
+ \let\bbl@ckeckstdfonts\relax
+ \else
+ \def\bbl@ckeckstdfonts{%
+ \begingroup
+ \global\let\bbl@ckeckstdfonts\relax
+ \let\bbl@tempa\@empty
+ \bbl@foreach\bbl@font@fams{%
+ \bbl@ifunset{bbl@##1dflt@}%
+ {\@nameuse{##1family}%
+ \bbl@csarg\gdef{WFF@\f@family}{}% Flag
+ \bbl@exp{\\\bbl@add\\\bbl@tempa{* \<##1family> / \f@family\\\\%
+ \space\space\fontname\font\\\\}}%
+ \bbl@csarg\xdef{##1dflt@}{\f@family}%
+ \expandafter\xdef\csname ##1default\endcsname{\f@family}}%
+ {}}%
+ \ifx\bbl@tempa\@empty\else
+ \bbl@warning{The following fonts are not babel standard families:\\%
+ \bbl@tempa
+ There is nothing intrinsically wrong with it, but\\%
+ 'babel' will no set Script and Language. Consider\\%
+ defining a new family with \string\babelfont.\\%
+ Reported}%
+ \fi
+ \endgroup}
+ \fi
+\fi
\def\bbl@font@set#1#2#3{% eg \bbl@rmdflt@lang \rmdefault \rmfamily
\bbl@xin@{<>}{#1}%
\ifin@
@@ -724,7 +763,8 @@
\noindent\box\@tempboxa}
\fi
\IfBabelLayout{tabular}
- {\bbl@replace\@tabular{$}{\bbl@nextfake$}%
+ {\let\bbl@OL@@tabular\@tabular
+ \bbl@replace\@tabular{$}{\bbl@nextfake$}%
\let\bbl@tabular\@tabular
\AtBeginDocument{%
\ifx\bbl@tabular\@tabular\else
@@ -732,7 +772,8 @@
\fi}}
{}
\IfBabelLayout{lists}
- {\bbl@sreplace\list{\parshape}{\bbl@listparshape}%
+ {\let\bbl@OL@list\list
+ \bbl@sreplace\list{\parshape}{\bbl@listparshape}%
\def\bbl@listparshape#1#2#3{%
\parshape #1 #2 #3 %
\ifnum\bbl@getluadir{page}=\bbl@getluadir{par}\else
@@ -748,6 +789,8 @@
\textdir TLT\relax
\def\bbl@pictresetdir{\textdir TRT\relax}%
\fi}%
+ \let\bbl@OL@@picture\@picture
+ \let\bbl@OL@put\put
\bbl@sreplace\@picture{\hskip-}{\bbl@pictsetdir\hskip-}%
\def\put(#1,#2)#3{% Not easy to patch. Better redefine.
\@killglue
@@ -755,21 +798,28 @@
\hb@xt@\z@{\kern#1\unitlength{\bbl@pictresetdir#3}\hss}}%
\AtBeginDocument
{\ifx\tikz@atbegin@node\@undefined\else
+ \let\bbl@OL@pgfpicture\pgfpicture
\bbl@sreplace\pgfpicture{\pgfpicturetrue}{\bbl@pictsetdir\pgfpicturetrue}%
\bbl@add\pgfsys@beginpicture{\bbl@pictsetdir}%
\bbl@add\tikz@atbegin@node{\bbl@pictresetdir}%
\fi}}
{}
\IfBabelLayout{counters}%
- {\bbl@sreplace\@textsuperscript{\m@th}{\m@th\mathdir\pagedir}%
+ {\let\bbl@OL@@textsuperscript\@textsuperscript
+ \bbl@sreplace\@textsuperscript{\m@th}{\m@th\mathdir\pagedir}%
\let\bbl@latinarabic=\@arabic
+ \let\bbl@OL@@arabic\@arabic
\def\@arabic#1{\babelsublr{\bbl@latinarabic#1}}%
\@ifpackagewith{babel}{bidi=default}%
{\let\bbl@asciiroman=\@roman
+ \let\bbl@OL@@roman\@roman
\def\@roman#1{\babelsublr{\ensureascii{\bbl@asciiroman#1}}}%
\let\bbl@asciiRoman=\@Roman
+ \let\bbl@OL@@roman\@Roman
\def\@Roman#1{\babelsublr{\ensureascii{\bbl@asciiRoman#1}}}%
+ \let\bbl@OL@labelenumii\labelenumii
\def\labelenumii{)\theenumii(}%
+ \let\bbl@OL@p@enumiii\p@enumiii
\def\p@enumiii{\p@enumii)\theenumii(}}{}}{}
\bbl@trace{Bidi footnotes}
\ifx\bbl@beforeforeign\leavevmode
@@ -817,12 +867,15 @@
{\bbl@exp{\\\bbl@footnotetext{\\\foreignlanguage{#2}}}{#3}{#4}}}}
\fi
\IfBabelLayout{footnotes}%
- {\BabelFootnote\footnote\languagename{}{}%
+ {\let\bbl@OL@footnote\footnote
+ \BabelFootnote\footnote\languagename{}{}%
\BabelFootnote\localfootnote\languagename{}{}%
\BabelFootnote\mainfootnote{}{}{}}
{}
\IfBabelLayout{extras}%
- {\bbl@sreplace\underline{$\@@underline}{\bbl@nextfake$\@@underline}%
+ {\let\bbl@OL@underline\underline
+ \bbl@sreplace\underline{$\@@underline}{\bbl@nextfake$\@@underline}%
+ \let\bbl@OL@LaTeX2e\LaTeX2e
\DeclareRobustCommand{\LaTeXe}{\mbox{\m@th
\if b\expandafter\@car\f@series\@nil\boldmath\fi
\babelsublr{%
diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf
index d16b8e4f752..30e9ceb01eb 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/07/19 3.33 Nil language]
+\ProvidesLanguage{nil}[2019/09/27 3.34 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 c0a24834630..9b43136cbbe 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/07/19 3.33 Babel switching mechanism]
+\ProvidesFile{switch.def}[2019/09/27 3.34 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.33}
-\def\bbl@date{2019/07/19}
+\def\bbl@version{3.34}
+\def\bbl@date{2019/09/27}
\def\adddialect#1#2{%
\global\chardef#1#2\relax
\bbl@usehooks{adddialect}{{#1}{#2}}%
@@ -139,7 +139,9 @@
% write to auxs
\expandafter\ifx\csname date\languagename\endcsname\relax\else
\if@filesw
- \protected@write\@auxout{}{\string\babel@aux{\languagename}{}}%
+ \ifx\babel@aux\@gobbletwo\else % Set if single in the first, redundant
+ \protected@write\@auxout{}{\string\babel@aux{\languagename}{}}%
+ \fi
\bbl@usehooks{write}{}%
\fi
\fi}
diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def
index bf2da9aca63..f3ab376c6f8 100644
--- a/Master/texmf-dist/tex/generic/babel/xebabel.def
+++ b/Master/texmf-dist/tex/generic/babel/xebabel.def
@@ -82,19 +82,24 @@
\input #1\relax}
\ifx\DisableBabelHook\@undefined\endinput\fi
\AddBabelHook{babel-fontspec}{afterextras}{\bbl@switchfont}
+\AddBabelHook{babel-fontspec}{beforestart}{\bbl@ckeckstdfonts}
\DisableBabelHook{babel-fontspec}
\bbl@trace{Font handling with fontspec}
\@onlypreamble\babelfont
\newcommand\babelfont[2][]{% 1=langs/scripts 2=fam
\edef\bbl@tempa{#1}%
- \def\bbl@tempb{#2}%
+ \def\bbl@tempb{#2}% Used by \bbl@bblfont
\ifx\fontspec\@undefined
\usepackage{fontspec}%
\fi
\EnableBabelHook{babel-fontspec}% Just calls \bbl@switchfont
\bbl@bblfont}
-\newcommand\bbl@bblfont[2][]{% 1=features 2=fontname
- \bbl@ifunset{\bbl@tempb family}{\bbl@providefam{\bbl@tempb}}{}%
+\newcommand\bbl@bblfont[2][]{% 1=features 2=fontname, @font=rm|sf|tt
+ \bbl@ifunset{\bbl@tempb family}%
+ {\bbl@providefam{\bbl@tempb}}%
+ {\bbl@exp{%
+ \\\bbl@sreplace\<\bbl@tempb family >%
+ {\@nameuse{\bbl@tempb default}}{\<\bbl@tempb default>}}}%
% For the default font, just in case:
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\expandafter\bbl@ifblank\expandafter{\bbl@tempa}%
@@ -113,7 +118,18 @@
\\\not@math@alphabet\<#1family>\relax
\\\fontfamily\<#1default>\\\selectfont}%
\\\DeclareTextFontCommand{\<text#1>}{\<#1family>}}}
-\def\bbl@switchfont{%
+\def\bbl@nostdfont#1{%
+ \bbl@ifunset{bbl@WFF@\f@family}%
+ {\bbl@csarg\gdef{WFF@\f@family}{}% Flag, to avoid dupl warns
+ \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.\\%
+ Reported}}
+ {}}%
+\gdef\bbl@switchfont{%
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\bbl@exp{% eg Arabic -> arabic
\lowercase{\edef\\\bbl@tempa{\bbl@cs{sname@\languagename}}}}%
@@ -129,12 +145,7 @@
\global\let\<bbl@##1dflt@\languagename>%
\<bbl@##1dflt@*\bbl@tempa>}}}%
{}}% 1=T - language, already defined
- \def\bbl@tempa{%
- \bbl@warning{The current font is not a standard family:\\%
- \fontname\font\\%
- Script and Language are not applied. Consider\\%
- defining a new family with \string\babelfont.\\%
- Reported}}%
+ \def\bbl@tempa{\bbl@nostdfont{}}%
\bbl@foreach\bbl@font@fams{% don't gather with prev for
\bbl@ifunset{bbl@##1dflt@\languagename}%
{\bbl@cs{famrst@##1}%
@@ -146,6 +157,34 @@
\\\bbl@font@set\<bbl@##1dflt@\languagename>% the main part!
\<##1default>\<##1family>}}}%
\bbl@ifrestoring{}{\bbl@tempa}}%
+\ifx\f@family\@undefined\else % if latex
+ \ifcase\bbl@engine % if pdftex
+ \let\bbl@ckeckstdfonts\relax
+ \else
+ \def\bbl@ckeckstdfonts{%
+ \begingroup
+ \global\let\bbl@ckeckstdfonts\relax
+ \let\bbl@tempa\@empty
+ \bbl@foreach\bbl@font@fams{%
+ \bbl@ifunset{bbl@##1dflt@}%
+ {\@nameuse{##1family}%
+ \bbl@csarg\gdef{WFF@\f@family}{}% Flag
+ \bbl@exp{\\\bbl@add\\\bbl@tempa{* \<##1family> / \f@family\\\\%
+ \space\space\fontname\font\\\\}}%
+ \bbl@csarg\xdef{##1dflt@}{\f@family}%
+ \expandafter\xdef\csname ##1default\endcsname{\f@family}}%
+ {}}%
+ \ifx\bbl@tempa\@empty\else
+ \bbl@warning{The following fonts are not babel standard families:\\%
+ \bbl@tempa
+ There is nothing intrinsically wrong with it, but\\%
+ 'babel' will no set Script and Language. Consider\\%
+ defining a new family with \string\babelfont.\\%
+ Reported}%
+ \fi
+ \endgroup}
+ \fi
+\fi
\def\bbl@font@set#1#2#3{% eg \bbl@rmdflt@lang \rmdefault \rmfamily
\bbl@xin@{<>}{#1}%
\ifin@