summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel/babel.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-10-03 21:50:00 +0000
committerKarl Berry <karl@freefriends.org>2020-10-03 21:50:00 +0000
commit310a23d36634820b4ea52d65bbc37810e5265929 (patch)
tree36418c2a73eba43af0e0df2a175db643cf315dd2 /Master/texmf-dist/tex/generic/babel/babel.def
parent00a39cac37f80a75dbdf467250d8bf75cecb4db6 (diff)
babel (3oct20)
git-svn-id: svn://tug.org/texlive/trunk@56531 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.def222
1 files changed, 124 insertions, 98 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 216b0cb7cab..5236ab778d6 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}[2020/09/01 3.48 Babel common definitions]
+\ProvidesFile{babel.def}[2020/10/03 3.49 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.48}
-\def\bbl@date{2020/09/01}
+\def\bbl@version{3.49}
+\def\bbl@date{2020/10/03}
\def\adddialect#1#2{%
\global\chardef#1#2\relax
\bbl@usehooks{adddialect}{{#1}{#2}}%
@@ -614,7 +614,7 @@
\let\bbl@select@type\z@
\expandafter\bbl@switch\expandafter{\languagename}%
\fi}}
-\def\babel@aux#1#2{%
+\def\babel@aux#1#2{% TODO. See how to avoid undefined nil's
\select@language{#1}%
\bbl@foreach\BabelContentsFiles{%
\@writefile{##1}{\babel@toc{#1}{#2}}}}% %% TODO - ok in plain?
@@ -950,6 +950,8 @@
\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@ifset#1#2#3{%
+ \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{#1}}{#3}{#2}}}
\def\bbl@forkv#1#2{%
\def\bbl@kvcmd##1##2##3{#2}%
\bbl@kvnext#1,\@nil,}
@@ -1038,6 +1040,18 @@
\else
\let\bbl@esphack\@empty
\fi}
+\def\bbl@cased{%
+ \ifx\oe\OE
+ \expandafter\in@\expandafter
+ {\expandafter\OE\expandafter}\expandafter{\oe}%
+ \ifin@
+ \bbl@afterelse\expandafter\MakeUppercase
+ \else
+ \bbl@afterfi\expandafter\MakeLowercase
+ \fi
+ \else
+ \expandafter\@firstofone
+ \fi}
\bbl@trace{Compatibility with language.def}
\ifx\bbl@languages\@undefined
\ifx\directlua\@undefined
@@ -1685,6 +1699,11 @@
\let\bbl@nonfrenchspacing\nonfrenchspacing
\fi}
\let\bbl@nonfrenchspacing\nonfrenchspacing
+\let\bbl@elt\relax
+\edef\bbl@fs@chars{%
+ \bbl@elt{\string.}\@m{3000}\bbl@elt{\string?}\@m{3000}%
+ \bbl@elt{\string!}\@m{3000}\bbl@elt{\string:}\@m{2000}%
+ \bbl@elt{\string;}\@m{1500}\bbl@elt{\string,}\@m{1250}}
\bbl@trace{Short tags}
\def\babeltags#1{%
\edef\bbl@tempa{\zap@space#1 \@empty}%
@@ -1928,13 +1947,12 @@
\endgroup
\bbl@scafter}
\let\bbl@endcommands\EndBabelCommands
-\def\bbl@setstring#1#2{%
+\def\bbl@setstring#1#2{% eg, \prefacename{<string>}
\bbl@forlang\bbl@tempa{%
\edef\bbl@LC{\bbl@tempa\bbl@stripslash#1}%
\bbl@ifunset{\bbl@LC}% eg, \germanchaptername
- {\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}}%
+ {\bbl@exp{%
+ \global\\\bbl@add\<\bbl@G\bbl@tempa>{\\\bbl@scset\\#1\<\bbl@LC>}}}%
{}%
\def\BabelString{#2}%
\bbl@usehooks{stringprocess}{}%
@@ -2504,37 +2522,6 @@
\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
- \<bbl@digits@\languagename>####1\\\@nil}%
- \let\<bbl@cntr@digits@\languagename>\<\languagename digits>%
- \def\<\languagename counter>####1{% ie, \langcounter
- \\\expandafter\<bbl@counter@\languagename>%
- \\\csname c@####1\endcsname}%
- \def\<bbl@counter@\languagename>####1{% ie, \bbl@counter@lang
- \\\expandafter\<bbl@digits@\languagename>%
- \\\number####1\\\@nil}}%
- \def\bbl@tempa##1##2##3##4##5{%
- \bbl@exp{% Wow, quite a lot of hashes! :-(
- \def\<bbl@digits@\languagename>########1{%
- \\\ifx########1\\\@nil % ie, \bbl@digits@lang
- \\\else
- \\\ifx0########1#1%
- \\\else\\\ifx1########1#2%
- \\\else\\\ifx2########1#3%
- \\\else\\\ifx3########1#4%
- \\\else\\\ifx4########1#5%
- \\\else\\\ifx5########1##1%
- \\\else\\\ifx6########1##2%
- \\\else\\\ifx7########1##3%
- \\\else\\\ifx8########1##4%
- \\\else\\\ifx9########1##5%
- \\\else########1%
- \\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi
- \\\expandafter\<bbl@digits@\languagename>%
- \\\fi}}}%
- \bbl@tempa}
\def\bbl@provide@new#1{%
\@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands
\@namedef{extras#1}{}%
@@ -2568,14 +2555,41 @@
\fi
\bbl@endcommands
\bbl@load@basic{#1}%
+ % == hyphenmins == (only if new)
\bbl@exp{%
\gdef\<#1hyphenmins>{%
{\bbl@ifunset{bbl@lfthm@#1}{2}{\bbl@cs{lfthm@#1}}}%
{\bbl@ifunset{bbl@rgthm@#1}{3}{\bbl@cs{rgthm@#1}}}}}%
+ % == hyphenrules ==
\bbl@provide@hyphens{#1}%
+ % == frenchspacing == (only if new)
+ \bbl@ifunset{bbl@frspc@#1}{}%
+ {\edef\bbl@tempa{\bbl@cl{frspc}}%
+ \edef\bbl@tempa{\expandafter\@car\bbl@tempa\@nil}%
+ \if u\bbl@tempa % do nothing
+ \else\if n\bbl@tempa % non french
+ \expandafter\bbl@add\csname extras#1\endcsname{%
+ \let\bbl@elt\bbl@fs@elt@i
+ \bbl@fs@chars}%
+ \else\if y\bbl@tempa % french
+ \expandafter\bbl@add\csname extras#1\endcsname{%
+ \let\bbl@elt\bbl@fs@elt@ii
+ \bbl@fs@chars}%
+ \fi\fi\fi}%
+ %
\ifx\bbl@KVP@main\@nil\else
\expandafter\main@language\expandafter{#1}%
\fi}
+\def\bbl@fs@elt@i#1#2#3{%
+ \ifnum\sfcode`#1=#2\relax
+ \babel@savevariable{\sfcode`#1}%
+ \sfcode`#1=#3\relax
+ \fi}%
+\def\bbl@fs@elt@ii#1#2#3{%
+ \ifnum\sfcode`#1=#3\relax
+ \babel@savevariable{\sfcode`#1}%
+ \sfcode`#1=#2\relax
+ \fi}%
\def\bbl@provide@renew#1{%
\ifx\bbl@KVP@captions\@nil\else
\StartBabelCommands*{#1}{captions}%
@@ -2592,6 +2606,16 @@
\fi
% == hyphenrules ==
\bbl@provide@hyphens{#1}}
+\def\bbl@linebreak@export{%
+ \bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
+ \bbl@exportkey{hyphr}{typography.hyphenrules}{}%
+ \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
+ \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
+ \bbl@exportkey{prehc}{typography.prehyphenchar}{}%
+ \bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
+ \bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
+ \bbl@exportkey{intsp}{typography.intraspace}{}%
+ \bbl@exportkey{chrng}{characters.ranges}{}}
\def\bbl@load@basic#1{%
\bbl@ifunset{bbl@inidata@\languagename}{}%
{\getlocaleproperty\bbl@tempa{\languagename}{identification/load.level}%
@@ -2601,21 +2625,12 @@
\bbl@ifunset{bbl@lname@#1}%
{\def\BabelBeforeIni##1##2{%
\begingroup
- \catcode`\[=12 \catcode`\]=12 \catcode`\==12
- \catcode`\;=12 \catcode`\|=12 \catcode`\%=14
\let\bbl@ini@captions@aux\@gobbletwo
\def\bbl@inidate ####1.####2.####3.####4\relax ####5####6{}%
\bbl@read@ini{##1}0%
- \bbl@exportkey{prehc}{typography.prehyphenchar}{}%
- \bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
- \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
- \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
- \bbl@exportkey{hyphr}{typography.hyphenrules}{}%
- \bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
- \bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
- \bbl@exportkey{intsp}{typography.intraspace}{}%
- \bbl@exportkey{chrng}{characters.ranges}{}%
+ \bbl@linebreak@export
\bbl@exportkey{dgnat}{numbers.digits.native}{}%
+ \bbl@exportkey{frspc}{typography.frenchspacing}{u}% unset
\ifx\bbl@initoload\relax\endinput\fi
\endgroup}%
\begingroup % boxed, to avoid extra spaces:
@@ -2681,8 +2696,10 @@
\\\bbl@elt{\bbl@section}{\bbl@tempa}{\the\toks@}}}%
\expandafter\bbl@inireader\bbl@tempa=#2\@@}%
{}}%
-\def\bbl@read@ini#1#2{%
- \bbl@csarg\edef{lini@\languagename}{#1}%
+\def\bbl@fetch@ini#1#2{%
+ \bbl@exp{\def\\\bbl@inidata{%
+ \\\bbl@elt{identification}{tag.ini}{#1}%
+ \\\bbl@elt{identification}{load.level}{#2}}}%
\openin\bbl@readstream=babel-#1.ini
\ifeof\bbl@readstream
\bbl@error
@@ -2691,14 +2708,8 @@
is not complete.}%
{Fix the name or reinstall babel.}%
\else
- \bbl@exp{\def\\\bbl@inidata{%
- \\\bbl@elt{identification}{tag.ini}{#1}%
- \\\bbl@elt{identification}{load.level}{#2}}}%
- \let\bbl@section\@empty
- \let\bbl@savestrings\@empty
- \let\bbl@savetoday\@empty
- \let\bbl@savedate\@empty
- \let\bbl@inireader\bbl@iniskip
+ \catcode`\[=12 \catcode`\]=12 \catcode`\==12
+ \catcode`\;=12 \catcode`\|=12 \catcode`\%=14
\bbl@info{Importing
\ifcase#2 \or font and identification \or basic \fi
data for \languagename\\%
@@ -2712,18 +2723,26 @@
\expandafter\bbl@iniline\bbl@line\bbl@iniline
\fi
\repeat
- \bbl@foreach\bbl@renewlist{%
- \bbl@ifunset{bbl@renew@##1}{}{\bbl@inisec[##1]\@@}}%
- \global\let\bbl@renewlist\@empty
- % Ends last section. See \bbl@inisec
- \def\bbl@elt##1##2{\bbl@inireader##1=##2\@@}%
- \bbl@cs{renew@\bbl@section}%
- \global\bbl@csarg\let{renew@\bbl@section}\relax
- \bbl@cs{secpost@\bbl@section}%
- \bbl@csarg{\global\expandafter\let}{inidata@\languagename}\bbl@inidata
- \bbl@exp{\\\bbl@add@list\\\bbl@ini@loaded{\languagename}}%
- \bbl@toglobal\bbl@ini@loaded
\fi}
+\def\bbl@read@ini#1#2{%
+ \bbl@csarg\edef{lini@\languagename}{#1}%
+ \let\bbl@section\@empty
+ \let\bbl@savestrings\@empty
+ \let\bbl@savetoday\@empty
+ \let\bbl@savedate\@empty
+ \let\bbl@inireader\bbl@iniskip
+ \bbl@fetch@ini{#1}{#2}%
+ \bbl@foreach\bbl@renewlist{%
+ \bbl@ifunset{bbl@renew@##1}{}{\bbl@inisec[##1]\@@}}%
+ \global\let\bbl@renewlist\@empty
+ % Ends last section. See \bbl@inisec
+ \def\bbl@elt##1##2{\bbl@inireader##1=##2\@@}%
+ \bbl@cs{renew@\bbl@section}%
+ \global\bbl@csarg\let{renew@\bbl@section}\relax
+ \bbl@cs{secpost@\bbl@section}%
+ \bbl@csarg{\global\expandafter\let}{inidata@\languagename}\bbl@inidata
+ \bbl@exp{\\\bbl@add@list\\\bbl@ini@loaded{\languagename}}%
+ \bbl@toglobal\bbl@ini@loaded}
\def\bbl@iniline#1\bbl@iniline{%
\@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inipreread}#1\@@}% ]
\def\bbl@iniskip#1\@@{}% if starts with ;
@@ -2842,18 +2861,10 @@
\bbl@csarg{\global\expandafter\let}{cntr@#1@\languagename}\bbl@tempa
\fi}
\def\bbl@after@ini{%
- \bbl@exportkey{lfthm}{typography.lefthyphenmin}{2}%
- \bbl@exportkey{rgthm}{typography.righthyphenmin}{3}%
- \bbl@exportkey{prehc}{typography.prehyphenchar}{}%
- \bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
- \bbl@exportkey{hyphr}{typography.hyphenrules}{}%
- \bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
- \bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
- \bbl@exportkey{intsp}{typography.intraspace}{}%
- \bbl@exportkey{jstfy}{typography.justify}{w}%
- \bbl@exportkey{chrng}{characters.ranges}{}%
+ \bbl@linebreak@export
\bbl@exportkey{dgnat}{numbers.digits.native}{}%
\bbl@exportkey{rqtex}{identification.require.babel}{}%
+ \bbl@exportkey{frspc}{typography.frenchspacing}{u}% unset
\bbl@toglobal\bbl@savetoday
\bbl@toglobal\bbl@savedate}
\ifcase\bbl@engine
@@ -3012,18 +3023,6 @@
\fi
\let\bbl@calendar\@empty
\DeclareRobustCommand\localedate[1][]{\bbl@localedate{#1}}
-\def\bbl@cased{% TODO. Move
- \ifx\oe\OE
- \expandafter\in@\expandafter
- {\expandafter\OE\expandafter}\expandafter{\oe}%
- \ifin@
- \bbl@afterelse\expandafter\MakeUppercase
- \else
- \bbl@afterfi\expandafter\MakeLowercase
- \fi
- \else
- \expandafter\@firstofone
- \fi}
\def\bbl@localedate#1#2#3#4{%
\begingroup
\ifx\@empty#1\@empty\else
@@ -3142,8 +3141,6 @@
\fi}}%
\fi
\bbl@csarg\bbl@toglobal{lsys@#1}}
-\def\bbl@ifset#1#2#3{% TODO. Move to the correct place.
- \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{#1}}{#3}{#2}}}
\def\bbl@xenohyph@d{%
\bbl@ifset{bbl@prehc@\languagename}%
{\ifnum\hyphenchar\font=\defaulthyphenchar
@@ -3167,12 +3164,41 @@
\def\BabelBeforeIni##1##2{%
\begingroup
\bbl@add\bbl@secpost@identification{\closein\bbl@readstream }%
- \catcode`\[=12 \catcode`\]=12 \catcode`\==12
- \catcode`\;=12 \catcode`\|=12 \catcode`\%=14
\bbl@read@ini{##1}1%
\endinput % babel- .tex may contain onlypreamble's
\endgroup}% boxed, to avoid extra spaces:
{\bbl@input@texini{#1}}}
+\def\bbl@setdigits#1#2#3#4#5{%
+ \bbl@exp{%
+ \def\<\languagename digits>####1{% ie, \langdigits
+ \<bbl@digits@\languagename>####1\\\@nil}%
+ \let\<bbl@cntr@digits@\languagename>\<\languagename digits>%
+ \def\<\languagename counter>####1{% ie, \langcounter
+ \\\expandafter\<bbl@counter@\languagename>%
+ \\\csname c@####1\endcsname}%
+ \def\<bbl@counter@\languagename>####1{% ie, \bbl@counter@lang
+ \\\expandafter\<bbl@digits@\languagename>%
+ \\\number####1\\\@nil}}%
+ \def\bbl@tempa##1##2##3##4##5{%
+ \bbl@exp{% Wow, quite a lot of hashes! :-(
+ \def\<bbl@digits@\languagename>########1{%
+ \\\ifx########1\\\@nil % ie, \bbl@digits@lang
+ \\\else
+ \\\ifx0########1#1%
+ \\\else\\\ifx1########1#2%
+ \\\else\\\ifx2########1#3%
+ \\\else\\\ifx3########1#4%
+ \\\else\\\ifx4########1#5%
+ \\\else\\\ifx5########1##1%
+ \\\else\\\ifx6########1##2%
+ \\\else\\\ifx7########1##3%
+ \\\else\\\ifx8########1##4%
+ \\\else\\\ifx9########1##5%
+ \\\else########1%
+ \\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi\\\fi
+ \\\expandafter\<bbl@digits@\languagename>%
+ \\\fi}}}%
+ \bbl@tempa}
\def\bbl@buildifcase#1 {% Returns \bbl@tempa, requires \toks@={}
\ifx\\#1% % \\ before, in case #1 is multiletter
\bbl@exp{%
@@ -3308,7 +3334,7 @@
\bbl@adjust@layout{\let\@tabular\bbl@OL@@tabular}}
\@namedef{bbl@ADJ@layout.lists@on}{%
\bbl@adjust@layout{\let\list\bbl@NL@list}}
-\@namedef{bbl@ADJ@layout.lists@on}{%
+\@namedef{bbl@ADJ@layout.lists@off}{%
\bbl@adjust@layout{\let\list\bbl@OL@list}}
\@namedef{bbl@ADJ@hyphenation.extra@on}{%
\bbl@activateposthyphen}