diff options
author | Karl Berry <karl@freefriends.org> | 2019-09-27 21:26:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-09-27 21:26:38 +0000 |
commit | 7bed24813daab3ed3c3064781cb74cf8081adb4d (patch) | |
tree | 48e3b4ff0bef8fc25eeb0cb3e612c4d5b4d4388b /Master/texmf-dist/tex | |
parent | 1d47bb1c83bdddf2d3ea784a0915f0227a2769da (diff) |
babel (27sep19)
git-svn-id: svn://tug.org/texlive/trunk@52194 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/babel.def | 125 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/babel.sty | 39 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/hyphen.cfg | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/locale/tr/babel-turkish.tex | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/luababel.def | 83 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/nil.ldf | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/switch.def | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/xebabel.def | 59 |
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@ |