summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel/babel.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-05-14 21:24:22 +0000
committerKarl Berry <karl@freefriends.org>2020-05-14 21:24:22 +0000
commit0ceebb71618356e1ae06cdfd3cff81e322f2307b (patch)
treefb643d2536a1177f17c7c90410226f1accef7c31 /Master/texmf-dist/tex/generic/babel/babel.sty
parentbb587f3190ec7933ee6a18e994099e566c6e8009 (diff)
babel (13may20)
git-svn-id: svn://tug.org/texlive/trunk@55143 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.sty')
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty257
1 files changed, 127 insertions, 130 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index bfa5ab18295..b78bdcf26d3 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}[2020/04/28 3.43 The Babel package]
+\ProvidesPackage{babel}[2020/05/13 3.44 The Babel package]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}%
\let\bbl@debug\@firstofone}
@@ -285,61 +285,6 @@
\global\let\@ifl@ter@@\@ifl@ter
\def\@ifl@ter#1#2#3#4#5{\global\let\@ifl@ter\@ifl@ter@@}%
\endinput}{}%
-\ifodd\bbl@engine
- \def\bbl@activate@preotf{%
- \let\bbl@activate@preotf\relax % only once
- \directlua{
- Babel = Babel or {}
- %
- function Babel.pre_otfload_v(head)
- if Babel.numbers and Babel.digits_mapped then
- head = Babel.numbers(head)
- end
- if Babel.bidi_enabled then
- head = Babel.bidi(head, false, dir)
- end
- return head
- end
- %
- function Babel.pre_otfload_h(head, gc, sz, pt, dir)
- if Babel.numbers and Babel.digits_mapped then
- head = Babel.numbers(head)
- end
- if Babel.bidi_enabled then
- head = Babel.bidi(head, false, dir)
- end
- return head
- end
- %
- luatexbase.add_to_callback('pre_linebreak_filter',
- Babel.pre_otfload_v,
- 'Babel.pre_otfload_v',
- luatexbase.priority_in_callback('pre_linebreak_filter',
- 'luaotfload.node_processor') or nil)
- %
- luatexbase.add_to_callback('hpack_filter',
- Babel.pre_otfload_h,
- 'Babel.pre_otfload_h',
- luatexbase.priority_in_callback('hpack_filter',
- 'luaotfload.node_processor') or nil)
- }}
- \let\bbl@tempa\relax
- \@ifpackagewith{babel}{bidi=basic}%
- {\def\bbl@tempa{basic}}%
- {\@ifpackagewith{babel}{bidi=basic-r}%
- {\def\bbl@tempa{basic-r}}%
- {}}
- \ifx\bbl@tempa\relax\else
- \let\bbl@beforeforeign\leavevmode
- \AtEndOfPackage{\EnableBabelHook{babel-bidi}}%
- \RequirePackage{luatexbase}%
- \directlua{
- require('babel-data-bidi.lua')
- require('babel-bidi-\bbl@tempa.lua')
- }
- \bbl@activate@preotf
- \fi
-\fi
\bbl@trace{key=value and another general options}
\bbl@csarg\let{tempa\expandafter}\csname opt@babel.sty\endcsname
\def\bbl@tempb#1.#2{%
@@ -384,63 +329,13 @@
\DeclareOption{hyphenmap=select}{\chardef\bbl@opt@hyphenmap\tw@}
\DeclareOption{hyphenmap=other}{\chardef\bbl@opt@hyphenmap\thr@@}
\DeclareOption{hyphenmap=other*}{\chardef\bbl@opt@hyphenmap4\relax}
-\ifodd\bbl@engine
- \DeclareOption{bidi=basic-r}%
- {\ExecuteOptions{bidi=basic}}
- \DeclareOption{bidi=basic}%
- {\let\bbl@beforeforeign\leavevmode
- % TODO - to locale_props, not as separate attribute
- \newattribute\bbl@attr@dir
- % I don't like it, hackish:
- \frozen@everymath\expandafter{%
- \expandafter\bbl@mathboxdir\the\frozen@everymath}%
- \frozen@everydisplay\expandafter{%
- \expandafter\bbl@mathboxdir\the\frozen@everydisplay}%
- \bbl@exp{\output{\bodydir\pagedir\the\output}}%
- \AtEndOfPackage{\EnableBabelHook{babel-bidi}}}
-\else
- \DeclareOption{bidi=basic-r}%
- {\ExecuteOptions{bidi=basic}}
- \DeclareOption{bidi=basic}%
- {\bbl@error
- {The bidi method `basic' is available only in\\%
- luatex. I'll continue with `bidi=default', so\\%
- expect wrong results}%
- {See the manual for further details.}%
- \let\bbl@beforeforeign\leavevmode
- \AtEndOfPackage{%
- \EnableBabelHook{babel-bidi}%
- \bbl@xebidipar}}
- \def\bbl@loadxebidi#1{%
- \ifx\RTLfootnotetext\@undefined
- \AtEndOfPackage{%
- \EnableBabelHook{babel-bidi}%
- \ifx\fontspec\@undefined
- \usepackage{fontspec}% bidi needs fontspec
- \fi
- \usepackage#1{bidi}}%
- \fi}
- \DeclareOption{bidi=bidi}%
- {\bbl@tentative{bidi=bidi}%
- \bbl@loadxebidi{}}
- \DeclareOption{bidi=bidi-r}%
- {\bbl@tentative{bidi=bidi-r}%
- \bbl@loadxebidi{[rldocument]}}
- \DeclareOption{bidi=bidi-l}%
- {\bbl@tentative{bidi=bidi-l}%
- \bbl@loadxebidi{}}
-\fi
-\DeclareOption{bidi=default}%
- {\let\bbl@beforeforeign\leavevmode
- \ifodd\bbl@engine
- \newattribute\bbl@attr@dir
- \bbl@exp{\output{\bodydir\pagedir\the\output}}%
- \fi
- \AtEndOfPackage{%
- \EnableBabelHook{babel-bidi}%
- \ifodd\bbl@engine\else
- \bbl@xebidipar
- \fi}}
+\chardef\bbl@bidimode\z@
+\DeclareOption{bidi=default}{\chardef\bbl@bidimode=\@ne}
+\DeclareOption{bidi=basic}{\chardef\bbl@bidimode=101 }
+\DeclareOption{bidi=basic-r}{\chardef\bbl@bidimode=102 }
+\DeclareOption{bidi=bidi}{\chardef\bbl@bidimode=201 }
+\DeclareOption{bidi=bidi-r}{\chardef\bbl@bidimode=202 }
+\DeclareOption{bidi=bidi-l}{\chardef\bbl@bidimode=203 }
\let\bbl@opt@shorthands\@nnil
\let\bbl@opt@config\@nnil
\let\bbl@opt@main\@nnil
@@ -778,9 +673,114 @@
\else
\DeclareTextFontCommand{\textlatin}{\latintext}
\fi
-\bbl@trace{Basic (internal) bidi support}
+\ifodd\bbl@engine
+ \def\bbl@activate@preotf{%
+ \let\bbl@activate@preotf\relax % only once
+ \directlua{
+ Babel = Babel or {}
+ %
+ function Babel.pre_otfload_v(head)
+ if Babel.numbers and Babel.digits_mapped then
+ head = Babel.numbers(head)
+ end
+ if Babel.bidi_enabled then
+ head = Babel.bidi(head, false, dir)
+ end
+ return head
+ end
+ %
+ function Babel.pre_otfload_h(head, gc, sz, pt, dir)
+ if Babel.numbers and Babel.digits_mapped then
+ head = Babel.numbers(head)
+ end
+ if Babel.bidi_enabled then
+ head = Babel.bidi(head, false, dir)
+ end
+ return head
+ end
+ %
+ luatexbase.add_to_callback('pre_linebreak_filter',
+ Babel.pre_otfload_v,
+ 'Babel.pre_otfload_v',
+ luatexbase.priority_in_callback('pre_linebreak_filter',
+ 'luaotfload.node_processor') or nil)
+ %
+ luatexbase.add_to_callback('hpack_filter',
+ Babel.pre_otfload_h,
+ 'Babel.pre_otfload_h',
+ luatexbase.priority_in_callback('hpack_filter',
+ 'luaotfload.node_processor') or nil)
+ }}
+\fi
+\bbl@trace{Loading basic (internal) bidi support}
+\ifodd\bbl@engine
+ \ifnum\bbl@bidimode>100 \ifnum\bbl@bidimode<200
+ \let\bbl@beforeforeign\leavevmode
+ \AtEndOfPackage{\EnableBabelHook{babel-bidi}}
+ \RequirePackage{luatexbase}
+ \bbl@activate@preotf
+ \directlua{
+ require('babel-data-bidi.lua')
+ \ifcase\expandafter\@gobbletwo\the\bbl@bidimode\or
+ require('babel-bidi-basic.lua')
+ \or
+ require('babel-bidi-basic-r.lua')
+ \fi}
+ % TODO - to locale_props, not as separate attribute
+ \newattribute\bbl@attr@dir
+ % TODO. I don't like it, hackish:
+ \bbl@exp{\output{\bodydir\pagedir\the\output}}
+ \AtEndOfPackage{\EnableBabelHook{babel-bidi}}
+ \fi\fi
+\else
+ \ifnum\bbl@bidimode>100 \ifnum\bbl@bidimode<200
+ \bbl@error
+ {The bidi method `basic' is available only in\\%
+ luatex. I'll continue with `bidi=default', so\\%
+ expect wrong results}%
+ {See the manual for further details.}%
+ \let\bbl@beforeforeign\leavevmode
+ \AtEndOfPackage{%
+ \EnableBabelHook{babel-bidi}%
+ \bbl@xebidipar}
+ \fi\fi
+ \def\bbl@loadxebidi#1{%
+ \ifx\RTLfootnotetext\@undefined
+ \AtEndOfPackage{%
+ \EnableBabelHook{babel-bidi}%
+ \ifx\fontspec\@undefined
+ \usepackage{fontspec}% bidi needs fontspec
+ \fi
+ \usepackage#1{bidi}}%
+ \fi}
+ \ifnum\bbl@bidimode>200
+ \ifcase\expandafter\@gobbletwo\the\bbl@bidimode\or
+ \bbl@tentative{bidi=bidi}
+ \bbl@loadxebidi{}
+ \or
+ \bbl@tentative{bidi=bidi-r}
+ \bbl@loadxebidi{[rldocument]}
+ \or
+ \bbl@tentative{bidi=bidi-l}
+ \bbl@loadxebidi{}
+ \fi
+ \fi
+\fi
+\ifnum\bbl@bidimode=\@ne
+ \let\bbl@beforeforeign\leavevmode
+ \ifodd\bbl@engine
+ \newattribute\bbl@attr@dir
+ \bbl@exp{\output{\bodydir\pagedir\the\output}}%
+ \fi
+ \AtEndOfPackage{%
+ \EnableBabelHook{babel-bidi}%
+ \ifodd\bbl@engine\else
+ \bbl@xebidipar
+ \fi}
+\fi
+\bbl@trace{Macros to switch the text direction}
\def\bbl@alscripts{,Arabic,Syriac,Thaana,}
-\def\bbl@rscripts{%
+\def\bbl@rscripts{% TODO. Base on codes ??
,Imperial Aramaic,Avestan,Cypriot,Hatran,Hebrew,%
Old Hungarian,Old Hungarian,Lydian,Mandaean,Manichaean,%
Manichaean,Meroitic Cursive,Meroitic,Old North Arabian,%
@@ -817,9 +817,9 @@
\bbl@pardir{#1}%
\fi
\bbl@textdir{#1}}
+\AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir}
+\DisableBabelHook{babel-bidi}
\ifodd\bbl@engine % luatex=1
- \AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir}
- \DisableBabelHook{babel-bidi}
\chardef\bbl@thetextdir\z@
\chardef\bbl@thepardir\z@
\def\bbl@getluadir#1{%
@@ -857,9 +857,11 @@
\else
\everyhbox{\textdir TRT\relax}%
\fi}
+ \frozen@everymath\expandafter{%
+ \expandafter\bbl@mathboxdir\the\frozen@everymath}
+ \frozen@everydisplay\expandafter{%
+ \expandafter\bbl@mathboxdir\the\frozen@everydisplay}
\else % pdftex=0, xetex=2
- \AddBabelHook{babel-bidi}{afterextras}{\bbl@switchdir}
- \DisableBabelHook{babel-bidi}
\newcount\bbl@dirlevel
\chardef\bbl@thetextdir\z@
\chardef\bbl@thepardir\z@
@@ -916,20 +918,18 @@
\newtoks\everypar
\everypar=\bbl@severypar
\bbl@severypar{\bbl@xeeverypar\the\everypar}}
- \def\bbl@tempb{%
+ \ifnum\bbl@bidimode>200
\let\bbl@textdir@i\@gobbletwo
\let\bbl@xebidipar\@empty
\AddBabelHook{bidi}{foreign}{%
- \def\bbl@tempa{\def\BabelText########1}%
+ \def\bbl@tempa{\def\BabelText####1}%
\ifcase\bbl@thetextdir
- \expandafter\bbl@tempa\expandafter{\BabelText{\LR{####1}}}%
+ \expandafter\bbl@tempa\expandafter{\BabelText{\LR{##1}}}%
\else
- \expandafter\bbl@tempa\expandafter{\BabelText{\RL{####1}}}%
+ \expandafter\bbl@tempa\expandafter{\BabelText{\RL{##1}}}%
\fi}
- \def\bbl@pardir##1{\ifcase##1\relax\setLR\else\setRL\fi}}
- \@ifpackagewith{babel}{bidi=bidi}{\bbl@tempb}{}%
- \@ifpackagewith{babel}{bidi=bidi-l}{\bbl@tempb}{}%
- \@ifpackagewith{babel}{bidi=bidi-r}{\bbl@tempb}{}%
+ \def\bbl@pardir#1{\ifcase#1\relax\setLR\else\setRL\fi}
+ \fi
\fi
\DeclareRobustCommand\babelsublr[1]{\leavevmode{\bbl@textdir\z@#1}}
\AtBeginDocument{%
@@ -984,8 +984,6 @@
{\bbl@load@language{\CurrentOption}}%
{#1\bbl@load@language{#2}#3}}
\DeclareOption{afrikaans}{\bbl@try@load@lang{}{dutch}{}}
-\DeclareOption{brazil}{\bbl@try@load@lang{}{portuges}{}}
-\DeclareOption{brazilian}{\bbl@try@load@lang{}{portuges}{}}
\DeclareOption{hebrew}{%
\input{rlbabel.def}%
\bbl@load@language{hebrew}}
@@ -994,7 +992,6 @@
\DeclareOption{nynorsk}{\bbl@try@load@lang{}{norsk}{}}
\DeclareOption{polutonikogreek}{%
\bbl@try@load@lang{}{greek}{\languageattribute{greek}{polutoniko}}}
-\DeclareOption{portuguese}{\bbl@try@load@lang{}{portuges}{}}
\DeclareOption{russian}{\bbl@try@load@lang{}{russianb}{}}
\DeclareOption{ukrainian}{\bbl@try@load@lang{}{ukraineb}{}}
\DeclareOption{uppersorbian}{\bbl@try@load@lang{}{usorbian}{}}