diff options
author | Karl Berry <karl@freefriends.org> | 2017-05-19 21:04:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-05-19 21:04:34 +0000 |
commit | f8c0d78dfb667dc3616ccb52c746d8a365a18985 (patch) | |
tree | 2b306eb06b41ea0998b5c3d8a53eeb61cb1cc531 /Master/texmf-dist/tex/generic/babel/babel.def | |
parent | 5d9ea1718230f7705e5aba6f17989d5415e28cad (diff) |
babel (19may17)
git-svn-id: svn://tug.org/texlive/trunk@44427 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.def')
-rw-r--r-- | Master/texmf-dist/tex/generic/babel/babel.def | 330 |
1 files changed, 254 insertions, 76 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def index 4d3a6bbcae9..815dedaecb6 100644 --- a/Master/texmf-dist/tex/generic/babel/babel.def +++ b/Master/texmf-dist/tex/generic/babel/babel.def @@ -38,7 +38,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %% File 'babel.dtx' -%%\ProvidesFile{babel.dtx}[2017/04/28 v3.9t The Babel package] +%%\ProvidesFile{babel.dtx}[2017/05/19 v3.10 The Babel package] %% Babel package for LaTeX2e. %% Copyright (C) 1989-2008 by Johannes Braams, %% TeXniek @@ -56,7 +56,7 @@ \wlog{File: #1 #4 #3 <#2>}% \let\ProvidesFile\@undefined} \fi -\ProvidesFile{babel.def}[2017/04/28 3.9t Babel common definitions] +\ProvidesFile{babel.def}[2017/05/19 3.10 Babel common definitions] \ifx\AtBeginDocument\@undefined \input plain.def\relax \fi @@ -67,7 +67,7 @@ \let\bbl@afterlang\relax \let\bbl@language@opts\@empty \fi -\def\bbl@tempa{3.9t}% +\def\bbl@tempa{3.10}% \ifx\bbl@version\bbl@tempa\else \input switch.def\relax \fi @@ -152,6 +152,38 @@ \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} +\def\bbl@forkv#1#2{% + \def\bbl@kvcmd##1##2##3{#2}% + \bbl@kvnext#1,\@nil,} +\def\bbl@kvnext#1,{% + \ifx\@nil#1\relax\else + \bbl@ifblank{#1}{}{\bbl@forkv@eq#1=\@empty=\@nil{#1}}% + \expandafter\bbl@kvnext + \fi} +\def\bbl@forkv@eq#1=#2=#3\@nil#4{% + \bbl@trim@def\bbl@forkv@a{#1}% + \bbl@trim{\expandafter\bbl@kvcmd\expandafter{\bbl@forkv@a}}{#2}{#4}} +\def\bbl@vforeach#1#2{% + \def\bbl@forcmd##1{#2}% + \bbl@fornext#1,\@nil,} +\def\bbl@fornext#1,{% + \ifx\@nil#1\relax\else + \bbl@ifblank{#1}{}{\bbl@trim\bbl@forcmd{#1}}% + \expandafter\bbl@fornext + \fi} +\def\bbl@foreach#1{\expandafter\bbl@vforeach\expandafter{#1}} +\def\bbl@replace#1#2#3{% in #1 -> repl #2 by #3 + \toks@{}% + \def\bbl@replace@aux##1#2##2#2{% + \ifx\bbl@nil##2% + \toks@\expandafter{\the\toks@##1}% + \else + \toks@\expandafter{\the\toks@##1#3}% + \bbl@afterfi + \bbl@replace@aux##2#2% + \fi}% + \expandafter\bbl@replace@aux#1#2\bbl@nil#2% + \edef#1{\the\toks@}} \def\bbl@exp#1{% \begingroup \let\\\noexpand @@ -234,7 +266,7 @@ adddialect=2,patterns=2,defaultcommands=0,encodedcommands=2,write=0,% beforeextras=0,afterextras=0,stopcommands=0,stringprocess=0,% hyphenation=2,initiateactive=3,afterreset=0} -\newcommand\babelensure[2][]{% +\newcommand\babelensure[2][]{% TODO - revise test files \AddBabelHook{babel-ensure}{afterextras}{% \ifcase\bbl@select@type \@nameuse{bbl@e@\languagename}% @@ -247,7 +279,7 @@ \ifx\@empty##1\else\noexpand##1\expandafter\bbl@tempb\fi}% \edef\bbl@tempa{\bbl@tempb#1\@empty}% \def\bbl@tempb##1=##2\@@{\@namedef{bbl@ens@##1}{##2}}% - \bbl@for\bbl@tempa\bbl@tempa{\expandafter\bbl@tempb\bbl@tempa\@@}% + \bbl@foreach\bbl@tempa{\bbl@tempb##1\@@}% \def\bbl@tempc{\bbl@ensure}% \expandafter\bbl@add\expandafter\bbl@tempc\expandafter{% \expandafter{\bbl@ens@include}}% @@ -257,8 +289,8 @@ \bbl@exp{% \endgroup \def\<bbl@e@#2>{\the\toks@{\bbl@ens@fontenc}}}} -\def\bbl@ensure#1#2#3{% - \def\bbl@tempb##1{% elt for \bbl@ensured list +\def\bbl@ensure#1#2#3{% 1: include 2: exclude 3: fontenc + \def\bbl@tempb##1{% elt for (excluding) \bbl@captionslist list \ifx##1\@empty\else \in@{##1}{#2}% \ifin@\else @@ -278,7 +310,7 @@ \fi \expandafter\bbl@tempb \fi}% - \expandafter\bbl@tempb\bbl@ensured\@empty + \expandafter\bbl@tempb\bbl@captionslist\today\@empty \def\bbl@tempa##1{% elt for include list \ifx##1\@empty\else \bbl@csarg\in@{ensure@\languagename\expandafter}\expandafter{##1}% @@ -288,11 +320,21 @@ \expandafter\bbl@tempa \fi}% \bbl@tempa#1\@empty} -\def\bbl@ensured{% +\def\bbl@captionslist{% \prefacename\refname\abstractname\bibname\chaptername\appendixname \contentsname\listfigurename\listtablename\indexname\figurename \tablename\partname\enclname\ccname\headtoname\pagename\seename - \alsoname\proofname\glossaryname\today} + \alsoname\proofname\glossaryname} +\def\bbl@ldfinit{% + \let\bbl@screset\@empty + \let\BabelStrings\bbl@opt@string + \let\BabelOptions\@empty + \let\BabelLanguages\relax + \ifx\originalTeX\@undefined + \let\originalTeX\@empty + \else + \originalTeX + \fi} \def\LdfInit#1#2{% \chardef\atcatcode=\catcode`\@ \catcode`\@=11\relax @@ -308,26 +350,20 @@ \ldf@quit{#1}% \fi \fi - \let\bbl@screset\@empty - \let\BabelStrings\bbl@opt@strings - \let\BabelOptions\@empty - \let\BabelLanguages\relax - \ifx\originalTeX\@undefined - \let\originalTeX\@empty - \else - \originalTeX - \fi} + \bbl@ldfinit} \def\ldf@quit#1{% \expandafter\main@language\expandafter{#1}% \catcode`\@=\atcatcode \let\atcatcode\relax \catcode`\==\eqcatcode \let\eqcatcode\relax \endinput} -\def\ldf@finish#1{% - \loadlocalcfg{#1}% +\def\bbl@afterldf#1{% \bbl@afterlang \let\bbl@afterlang\relax \let\BabelModifiers\relax - \let\bbl@screset\relax + \let\bbl@screset\relax}% +\def\ldf@finish#1{% + \loadlocalcfg{#1}% + \bbl@afterldf{#1}% \expandafter\main@language\expandafter{#1}% \catcode`\@=\atcatcode \let\atcatcode\relax \catcode`\==\eqcatcode \let\eqcatcode\relax} @@ -346,16 +382,20 @@ \else \select@language{#1}% \fi} -\def\bbl@add@special#1{% - \begingroup - \def\do{\noexpand\do\noexpand}% - \def\@makeother{\noexpand\@makeother\noexpand}% - \edef\x{\endgroup - \def\noexpand\dospecials{\dospecials\do#1}% - \expandafter\ifx\csname @sanitize\endcsname\relax \else - \def\noexpand\@sanitize{\@sanitize\@makeother#1}% - \fi}% - \x} +\def\bbl@add@special#1{% 1:a macro like \", \?, etc. + \bbl@add\dospecials{\do#1}% test @sanitize = \relax, for back. compat. + \bbl@ifunset{@sanitize}{}{\bbl@add\@sanitize{\@makeother#1}}% + \ifx\nfss@catcodes\@undefined\else % TODO - same for above + \begingroup + \catcode`#1\active + \nfss@catcodes + \ifnum\catcode`#1=\active + \endgroup + \bbl@add\nfss@catcodes{\@makeother#1}% + \else + \endgroup + \fi + \fi} \def\bbl@remove@special#1{% \begingroup \def\x##1##2{\ifnum`#1=`##2\noexpand\@empty @@ -457,11 +497,11 @@ \@ifpackagewith{babel}{KeepShorthandsActive}% {\let\bbl@restoreactive\@gobble}% {\def\bbl@restoreactive#1{% - \edef\bbl@tempa{% - \noexpand\AfterBabelLanguage\noexpand\CurrentOption + \bbl@exp{% + \\\AfterBabelLanguage\\\CurrentOption {\catcode`#1=\the\catcode`#1\relax}% - \noexpand\AtEndOfPackage{\catcode`#1=\the\catcode`#1\relax}}% - \bbl@tempa}% + \\\AtEndOfPackage + {\catcode`#1=\the\catcode`#1\relax}}}% \AtEndOfPackage{\let\bbl@restoreactive\@gobble}} \def\bbl@sh@select#1#2{% \expandafter\ifx\csname#1@sh@#2@sel\endcsname\relax @@ -663,25 +703,23 @@ \def\bbl@tempc{#1}% \bbl@fixname\bbl@tempc \bbl@iflanguage\bbl@tempc{% - \bbl@loopx\bbl@attr{#2}{% + \bbl@vforeach{#2}{% \ifx\bbl@known@attribs\@undefined \in@false \else - \@expandtwoargs\in@{,\bbl@tempc-\bbl@attr,}{,\bbl@known@attribs,}% + \@expandtwoargs\in@{,\bbl@tempc-##1,}{,\bbl@known@attribs,}% \fi \ifin@ \bbl@warning{% - You have more than once selected the attribute '\bbl@attr'\\% + You have more than once selected the attribute '##1'\\% for language #1}% \else - \edef\bbl@tempa{% - \noexpand\bbl@add@list - \noexpand\bbl@known@attribs{\bbl@tempc-\bbl@attr}}% - \bbl@tempa - \edef\bbl@tempa{\bbl@tempc-\bbl@attr}% + \bbl@exp{% + \\\bbl@add@list\\\bbl@known@attribs{\bbl@tempc-##1}}% + \edef\bbl@tempa{\bbl@tempc-##1}% \expandafter\bbl@ifknown@ttrib\expandafter{\bbl@tempa}\bbl@attributes% - {\csname\bbl@tempc @attr@\bbl@attr\endcsname}% - {\@attrerr{\bbl@tempc}{\bbl@attr}}% + {\csname\bbl@tempc @attr@##1\endcsname}% + {\@attrerr{\bbl@tempc}{##1}}% \fi}}} \@onlypreamble\languageattribute \newcommand*{\@attrerr}[2]{% @@ -732,18 +770,13 @@ \babel@beginsave \def\babel@save#1{% \expandafter\let\csname babel@\number\babel@savecnt\endcsname#1\relax - \begingroup - \toks@\expandafter{\originalTeX\let#1=}% - \edef\x{\endgroup - \def\noexpand\originalTeX{\the\toks@ \expandafter\noexpand - \csname babel@\number\babel@savecnt\endcsname\relax}}% - \x + \toks@\expandafter{\originalTeX\let#1=}% + \bbl@exp{% + \def\\\originalTeX{\the\toks@\<babel@\number\babel@savecnt>\relax}}% \advance\babel@savecnt\@ne} -\def\babel@savevariable#1{\begingroup - \toks@\expandafter{\originalTeX #1=}% - \edef\x{\endgroup - \def\noexpand\originalTeX{\the\toks@ \the#1\relax}}% - \x} +\def\babel@savevariable#1{% + \toks@\expandafter{\originalTeX #1=}% + \bbl@exp{\def\\\originalTeX{\the\toks@\the#1\relax}}} \def\bbl@frenchspacing{% \ifnum\the\sfcode`\.=\@m \let\bbl@nonfrenchspacing\relax @@ -781,8 +814,8 @@ \ifx\@empty#1% \protected@edef\bbl@hyphenation@{\bbl@hyphenation@\space#2}% \else - \edef\bbl@tempb{\zap@space#1 \@empty}% - \bbl@for\bbl@tempa\bbl@tempb{% + \bbl@vforeach{#1}{% + \def\bbl@tempa{##1}% \bbl@fixname\bbl@tempa \bbl@iflanguage\bbl@tempa{% \bbl@csarg\protected@edef{hyphenation@\bbl@tempa}{% @@ -863,10 +896,9 @@ \bbl@loop\bbl@tempa{##2}{% empty items and spaces are ok \advance\count@\@ne \toks@\expandafter{\bbl@tempa}% - \edef\bbl@tempb{% - \bbl@templ{\romannumeral\count@}{\the\toks@}% - \count@=\the\count@\relax}% - \expandafter\SetString\bbl@tempb}}% + \bbl@exp{% + \\\SetString\bbl@templ{\romannumeral\count@}{\the\toks@}% + \count@=\the\count@\relax}}}% \newcommand\SetCase[3][]{% \bbl@patchuclc \bbl@forlang\bbl@tempa{% @@ -923,7 +955,7 @@ \let\bbl@sc@fontenc\space % <- " " \def\bbl@tempa##1=##2\@nil{% \bbl@csarg\edef{sc@\zap@space##1 \@empty}{##2 }}% - \bbl@for\bbl@tempb{label=#1}{\expandafter\bbl@tempa\bbl@tempb\@nil}% + \bbl@vforeach{label=#1}{\bbl@tempa##1\@nil}% \def\bbl@tempa##1 ##2{% space -> comma ##1% \ifx\@empty##2\else\ifx,##1,\else,\fi\bbl@afterfi\bbl@tempa##2\fi}% @@ -931,13 +963,13 @@ \edef\bbl@sc@label{\expandafter\zap@space\bbl@sc@label\@empty}% \edef\bbl@sc@charset{\expandafter\zap@space\bbl@sc@charset\@empty}% \def\bbl@encstring##1##2{% - \bbl@for\bbl@tempc\bbl@sc@fontenc{% - \bbl@ifunset{T@\bbl@tempc}% + \bbl@foreach\bbl@sc@fontenc{% + \bbl@ifunset{T@####1}% {}% - {\ProvideTextCommand##1\bbl@tempc{##2}% + {\ProvideTextCommand##1{####1}{##2}% \bbl@toglobal##1% \expandafter - \bbl@toglobal\csname\bbl@tempc\string##1\endcsname}}}% + \bbl@toglobal\csname####1\string##1\endcsname}}}% \def\bbl@sctest{% \@expandtwoargs \in@{,\bbl@opt@strings,}{,\bbl@sc@label,\bbl@sc@fontenc,}}% @@ -996,7 +1028,7 @@ \bbl@forlang\bbl@tempa{% \edef\bbl@LC{\bbl@tempa\bbl@stripslash#1}% \bbl@ifunset{\bbl@LC}% eg, \germanchaptername - {\global\expandafter + {\global\expandafter % TODO - con \bbl@exp ? \bbl@add\csname\bbl@G\bbl@tempa\expandafter\endcsname\expandafter {\expandafter\bbl@scset\expandafter#1\csname\bbl@LC\endcsname}}% {}% @@ -1051,9 +1083,9 @@ \fi}% \bbl@tempa} \AtEndOfPackage{% - \ifx\bbl@hymapopt\@undefined + \ifx\bbl@opt@hyphenmap\@undefined \@expandtwoargs\in@{,}{\bbl@language@opts}% - \chardef\bbl@hymapopt\ifin@4\else\@ne\fi + \chardef\bbl@opt@hyphenmap\ifin@4\else\@ne\fi \fi} \def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}% \dimen\z@\ht\z@ \advance\dimen\z@ -\ht\tw@% @@ -1240,6 +1272,153 @@ \aftergroup\endinput \fi \fi} +\newcommand\babelprovide[2][]{% + \let\bbl@savelangname\languagename + \def\languagename{#2}% + \let\bbl@KVP@captions\@nil + \let\bbl@KVP@main\@nil + \let\bbl@KVP@hyphenrules\@nil + \bbl@forkv{#1}{\bbl@csarg\def{KVP@##1}{##2}}% TODO - error handling + \bbl@ifunset{date#2}% + {\bbl@provide@new{#2}}% + {\bbl@ifblank{#1}% + {\bbl@error + {If you want to modify `#2' you must tell how in\\% + the optional argument. Currently there are two\\% + options: captions=lang-tag, hyphenrules=lang-list}% + {Use this macro as documented} +}% + {\bbl@provide@renew{#2}}}% + \babelensure{#2}% + \let\languagename\bbl@savelangname} +\def\bbl@provide@new#1{% + \bbl@provide@hyphens{#1}% + \@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands + \@namedef{extras#1}{}% + \@namedef{noextras#1}{}% + \StartBabelCommands*{#1}{captions}% + \ifx\bbl@KVP@captions\@nil + \def\bbl@tempb##1{% elt for \bbl@captionslist + \ifx##1\@empty\else + \bbl@exp{% + \\\SetString\\##1{% + \\\bbl@nocaption{\bbl@stripslash##1}{\<#1\bbl@stripslash##1>}}}% + \expandafter\bbl@tempb + \fi}% + \expandafter\bbl@tempb\bbl@captionslist\@empty + \else + \bbl@read@ini{\bbl@KVP@captions}% Here all letters cat = 11 + \bbl@after@ini + \bbl@savestrings + \fi + \StartBabelCommands*{#1}{date}% + \bbl@exp{% + \\\SetString\\\today{\\\bbl@nocaption{today}{\<#1today>}}}% + \EndBabelCommands + \expandafter\gdef\csname#1hyphenmins\endcsname{23}% + \ifx\bbl@KVP@main\@nil\else + \expandafter\main@language\expandafter{#1}% + \fi} +\def\bbl@provide@renew#1{% + \bbl@provide@hyphens{#1}% + \ifx\bbl@KVP@captions\@nil\else + \StartBabelCommands*{#1}{captions}% + \bbl@read@ini{\bbl@KVP@captions}% Here all letters cat = 11 + \bbl@after@ini + \bbl@savestrings + \EndBabelCommands + \fi} +\def\bbl@provide@hyphens#1{% + \let\bbl@tempa\relax + \ifx\bbl@KVP@hyphenrules\@nil\else + \bbl@replace\bbl@KVP@hyphenrules{ }{,}% + \bbl@foreach\bbl@KVP@hyphenrules{% + \ifx\bbl@tempa\relax % if not yet found + \bbl@ifsamestring{##1}{+}% + {{\bbl@exp{\\\addlanguage\<l@##1>}}}% + {}% + \bbl@ifunset{l@##1}% + {}% + {\bbl@exp{\let\bbl@tempa\<l@##1>}}% + \fi}% + \fi + \ifx\bbl@tempa\relax % if no option or no language found + \bbl@ifunset{l@#1}% no hyphenrules found - fallback + {\bbl@exp{\\\adddialect\<l@#1>\language}}% + {}% + \else + \bbl@exp{\\\adddialect\<l@#1>\bbl@tempa}% found in opt list + \fi} +\def\bbl@read@ini#1{% + \openin1=babel-#1.ini + \ifeof1 + \bbl@error + {There is no ini file for the requested language\\% + (#1). Perhaps you misspelled it or your installation\\% + is not complete.}% + {Fix the name or reinstall babel.}% + \else + \let\bbl@section\@empty + \let\bbl@savestrings\@empty + \loop + \endlinechar\m@ne + \read1 to \bbl@line + \endlinechar`\^^M + \if T\ifeof1F\fi T\relax % Trick, because inside \loop + \ifx\bbl@line\@empty\else + \expandafter\bbl@iniline\bbl@line\bbl@iniline + \fi + \repeat + \fi} +\def\bbl@iniline#1\bbl@iniline{% + \@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inikv}#1\@@} %] +\def\bbl@iniskip#1\@@{}% if starts with ; +\def\bbl@inisec[#1]#2\@@{% if starts with opening bracket + \def\bbl@section{#1}% + \bbl@debug{\message{[[ #1 ]]^^J}}} +\def\bbl@inikv#1=#2\@@{% otherwise, key=value + \bbl@trim@def\bbl@tempa{#1}% + \bbl@trim\toks@{#2}% + \bbl@ifunset{bbl@ini@\bbl@section}% + {}% + {\bbl@exp{% + \<bbl@ini@\bbl@section>\bbl@tempa=\the\toks@\\\@nil}}} +\def\bbl@after@ini{% + % make sure Script and Language takes some value + \bbl@exp{\\\bbl@ifblank{\@nameuse{bbl@lotf@\languagename}}}% + {\bbl@csarg\gdef{lotf@\languagename}{dflt}}{}% + \bbl@exp{\\\bbl@ifblank{\@nameuse{bbl@sotf@\languagename}}}% + {\bbl@csarg\gdef{sotf@\languagename}{DFLT}}{}} +\def\bbl@exportkey#1#2#3#4{% 1:bbl id,2:ini name,3:ini key,4:ini val + \bbl@ifsamestring{#2}{#3}% + {\bbl@csarg\gdef{#1@\languagename}{#4}}% + {}} +\ifcase\bbl@engine + \bbl@csarg\def{ini@captions.licr}#1=#2\@nil{% TODO - copypaste pattern + \bbl@ifblank{#2}% + {\bbl@exp{% + \toks@{\\\bbl@nocaption{#1}\<\languagename#1name>}}}% + {\toks@{#2}}% + \bbl@exp{% + \\\bbl@add\\\bbl@savestrings{% NOTE - with date will be global + \\\SetString\<#1name>{\the\toks@}}}} +\else + \def\bbl@ini@captions#1=#2\@nil{% + \bbl@ifblank{#2}% + {\bbl@exp{% + \toks@{\\\bbl@nocaption{#1}\<\languagename#1name>}}}% + {\toks@{#2}}% + \bbl@exp{% + \\\bbl@add\\\bbl@savestrings{% + \\\SetString\<#1name>{\the\toks@}}}} +\fi +\def\bbl@ini@identification#1=#2\@nil{% TODO - not only with captions + \bbl@exportkey{lname}{name.english}{#1}{#2}% + \bbl@exportkey{lbcp}{tag.bcp47}{#1}{#2}% + \bbl@exportkey{lotf}{tag.opentype}{#1}{#2}% + \bbl@exportkey{sname}{script.name}{#1}{#2}% + \bbl@exportkey{sbcp}{script.tag.bcp47}{#1}{#2}% + \bbl@exportkey{sotf}{script.tag.opentype}{#1}{#2}} \ifx\bbl@opt@safe\@empty\else \def\@newl@bel#1#2#3{% {\@safe@activestrue @@ -1417,11 +1596,10 @@ \let\ensureascii\@firstofone \AtBeginDocument{% \in@false - \bbl@loopx\bbl@tempa\BabelNonASCII{% is there a non-ascii enc? + \bbl@foreach\BabelNonASCII{% is there a non-ascii enc? \ifin@\else - \edef\bbl@tempb{{,\bbl@tempa enc.def,}{,\@filelist,}}% - \lowercase\expandafter{\expandafter\in@\bbl@tempb}% - \fi} + \lowercase{\@expandtwoargs\in@{,#1enc.def,}{,\@filelist,}}% + \fi}% \ifin@ % if a non-ascii has been loaded \def\ensureascii#1{{\fontencoding{OT1}\selectfont#1}}% \DeclareTextCommandDefault{\TeX}{\org@TeX}% @@ -1439,7 +1617,7 @@ \def\ensureascii##1{{\fontencoding{#1}\selectfont##1}}% \fi}% \fi}% - \bbl@loopx\bbl@tempa\@filelist{\expandafter\bbl@tempb\bbl@tempa\@@}% + \bbl@foreach\@filelist{\bbl@tempb#1\@@}% TODO - \@@ de mas?? \@expandtwoargs\in@{,\cf@encoding,}{,\BabelNonASCII,}% \ifin@\else \edef\ensureascii#1{{% |