summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel/xebabel.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/xebabel.def')
-rw-r--r--Master/texmf-dist/tex/generic/babel/xebabel.def28
1 files changed, 23 insertions, 5 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/xebabel.def b/Master/texmf-dist/tex/generic/babel/xebabel.def
index 4e1433a00bc..cd47364b3c6 100644
--- a/Master/texmf-dist/tex/generic/babel/xebabel.def
+++ b/Master/texmf-dist/tex/generic/babel/xebabel.def
@@ -45,6 +45,12 @@
\AddBabelHook{xetex}{stopcommands}{%
\xebbl@stop
\let\xebbl@stop\relax}
+\def\bbl@intraspace#1 #2 #3\@@{%
+ \bbl@csarg\gdef{xeisp@\bbl@cs{sbcp@\languagename}}%
+ {\XeTeXlinebreakskip #1em plus #2em minus #3em\relax}}
+\def\bbl@intrapenalty#1\@@{%
+ \bbl@csarg\gdef{xeipn@\bbl@cs{sbcp@\languagename}}%
+ {\XeTeXlinebreakpenalty #1\relax}}
\AddBabelHook{xetex}{loadkernel}{%
\begingroup
% Reset chars "80-"C0 to category "other", no case mapping:
@@ -85,10 +91,11 @@
\ifx\fontspec\@undefined
\usepackage{fontspec}%
\fi
- \EnableBabelHook{babel-fontspec}%
+ \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}}{}%
+ % For the default font, just in case:
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\expandafter\bbl@ifblank\expandafter{\bbl@tempa}%
{\bbl@csarg\edef{\bbl@tempb dflt@}{<>{#1}{#2}}% save bbl@rmdflt@
@@ -125,8 +132,9 @@
\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}}%
+ Script and Language are not applied. Consider\\%
+ defining a new family with \string\babelfont.\\%
+ Reported}}%
\bbl@foreach\bbl@font@fams{% don't gather with prev for
\bbl@ifunset{bbl@##1dflt@\languagename}%
{\bbl@cs{famrst@##1}%
@@ -149,8 +157,18 @@
\def\bbl@fontspec@set#1#2#3{% eg \bbl@rmdflt@lang fnt-opt fnt-nme
\let\bbl@tempe\bbl@mapselect
\let\bbl@mapselect\relax
- \bbl@exp{\<fontspec_set_family:Nnn>\\#1%
- {\bbl@cs{lsys@\languagename},#2}}{#3}%
+ \bbl@exp{% TODO - should be global, but even local does its job
+ % I'm still not sure -- must investigate
+ \<keys_if_exist:nnF>{fontspec-opentype}%
+ {Script/\bbl@cs{sname@\languagename}}%
+ {\\\newfontscript{\bbl@cs{sname@\languagename}}%
+ {\bbl@cs{sotf@\languagename}}}%
+ \<keys_if_exist:nnF>{fontspec-opentype}%
+ {Language/\bbl@cs{lname@\languagename}}%
+ {\\\newfontlanguage{\bbl@cs{lname@\languagename}}%
+ {\bbl@cs{lotf@\languagename}}}%
+ \<fontspec_set_family:Nnn>\\#1%
+ {\bbl@cs{lsys@\languagename},#2}}{#3}% ie \bbl@exp{..}{#3}
\let\bbl@mapselect\bbl@tempe
\bbl@toglobal#1}%
\def\bbl@font@rst#1#2#3#4{%