You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
284 lines
11 KiB
284 lines
11 KiB
%%
|
|
%% This is file `xebabel.def',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% babel.dtx (with options: `xetex')
|
|
%%
|
|
%%
|
|
%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
|
|
%% Copyright (C) 1989-2012 Johannes L. Braams and
|
|
%% any individual authors listed elsewhere in this file.
|
|
%% All rights reserved.
|
|
%%
|
|
%% This file is part of the Babel system.
|
|
%% --------------------------------------
|
|
%%
|
|
%% It may be distributed and/or modified under the
|
|
%% conditions of the LaTeX Project Public License, either version 1.3
|
|
%% of this license or (at your option) any later version.
|
|
%% The latest version of this license is in
|
|
%% http://www.latex-project.org/lppl.txt
|
|
%% and version 1.3 or later is part of all distributions of LaTeX
|
|
%% version 2003/12/01 or later.
|
|
%%
|
|
%% This work has the LPPL maintenance status "maintained".
|
|
%%
|
|
%% The Current Maintainer of this work is Javier Bezos.
|
|
%%
|
|
%% The list of derived (unpacked) files belonging to the distribution
|
|
%% and covered by LPPL is defined by the unpacking scripts (with
|
|
%% extension |.ins|) which are part of the distribution.
|
|
%%
|
|
|
|
\def\BabelStringsDefault{unicode}
|
|
\let\xebbl@stop\relax
|
|
\AddBabelHook{xetex}{encodedcommands}{%
|
|
\def\bbl@tempa{#1}%
|
|
\ifx\bbl@tempa\@empty
|
|
\XeTeXinputencoding"bytes"%
|
|
\else
|
|
\XeTeXinputencoding"#1"%
|
|
\fi
|
|
\def\xebbl@stop{\XeTeXinputencoding"utf8"}}
|
|
\AddBabelHook{xetex}{stopcommands}{%
|
|
\xebbl@stop
|
|
\let\xebbl@stop\relax}
|
|
\def\bbl@intraspace#1 #2 #3\@@{%
|
|
\bbl@csarg\gdef{xeisp@\languagename}%
|
|
{\XeTeXlinebreakskip #1em plus #2em minus #3em\relax}}
|
|
\def\bbl@intrapenalty#1\@@{%
|
|
\bbl@csarg\gdef{xeipn@\languagename}%
|
|
{\XeTeXlinebreakpenalty #1\relax}}
|
|
\def\bbl@provide@intraspace{%
|
|
\bbl@xin@{\bbl@cl{lnbrk}}{s}%
|
|
\ifin@\else\bbl@xin@{\bbl@cl{lnbrk}}{c}\fi
|
|
\ifin@
|
|
\bbl@ifunset{bbl@intsp@\languagename}{}%
|
|
{\expandafter\ifx\csname bbl@intsp@\languagename\endcsname\@empty\else
|
|
\ifx\bbl@KVP@intraspace\@nil
|
|
\bbl@exp{%
|
|
\\\bbl@intraspace\bbl@cl{intsp}\\\@@}%
|
|
\fi
|
|
\ifx\bbl@KVP@intrapenalty\@nil
|
|
\bbl@intrapenalty0\@@
|
|
\fi
|
|
\fi
|
|
\ifx\bbl@KVP@intraspace\@nil\else % We may override the ini
|
|
\expandafter\bbl@intraspace\bbl@KVP@intraspace\@@
|
|
\fi
|
|
\ifx\bbl@KVP@intrapenalty\@nil\else
|
|
\expandafter\bbl@intrapenalty\bbl@KVP@intrapenalty\@@
|
|
\fi
|
|
\bbl@exp{%
|
|
\\\bbl@add\<extras\languagename>{%
|
|
\XeTeXlinebreaklocale "\bbl@cl{lbcp}"%
|
|
\<bbl@xeisp@\languagename>%
|
|
\<bbl@xeipn@\languagename>}%
|
|
\\\bbl@toglobal\<extras\languagename>%
|
|
\\\bbl@add\<noextras\languagename>{%
|
|
\XeTeXlinebreaklocale "en"}%
|
|
\\\bbl@toglobal\<noextras\languagename>}%
|
|
\ifx\bbl@ispacesize\@undefined
|
|
\gdef\bbl@ispacesize{\bbl@cl{xeisp}}%
|
|
\ifx\AtBeginDocument\@notprerr
|
|
\expandafter\@secondoftwo % to execute right now
|
|
\fi
|
|
\AtBeginDocument{%
|
|
\expandafter\bbl@add
|
|
\csname selectfont \endcsname{\bbl@ispacesize}%
|
|
\expandafter\bbl@toglobal\csname selectfont \endcsname}%
|
|
\fi}%
|
|
\fi}
|
|
\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
|
|
\bbl@foreach{#1}{%
|
|
\expandafter\ifx\csname date##1\endcsname\relax
|
|
\IfFileExists{babel-##1.tex}%
|
|
{\babelprovide{##1}}%
|
|
{}%
|
|
\fi}%
|
|
\edef\bbl@tempa{#1}%
|
|
\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, @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}%
|
|
{\bbl@csarg\edef{\bbl@tempb dflt@}{<>{#1}{#2}}% save bbl@rmdflt@
|
|
\bbl@exp{%
|
|
\let\<bbl@\bbl@tempb dflt@\languagename>\<bbl@\bbl@tempb dflt@>%
|
|
\\\bbl@font@set\<bbl@\bbl@tempb dflt@\languagename>%
|
|
\<\bbl@tempb default>\<\bbl@tempb family>}}%
|
|
{\bbl@foreach\bbl@tempa{% ie bbl@rmdflt@lang / *scrt
|
|
\bbl@csarg\def{\bbl@tempb dflt@##1}{<>{#1}{#2}}}}}%
|
|
\def\bbl@providefam#1{%
|
|
\bbl@exp{%
|
|
\\\newcommand\<#1default>{}% Just define it
|
|
\\\bbl@add@list\\\bbl@font@fams{#1}%
|
|
\\\DeclareRobustCommand\<#1family>{%
|
|
\\\not@math@alphabet\<#1family>\relax
|
|
\\\fontfamily\<#1default>\\\selectfont}%
|
|
\\\DeclareTextFontCommand{\<text#1>}{\<#1family>}}}
|
|
\def\bbl@nostdfont#1{%
|
|
\bbl@ifunset{bbl@WFF@\f@family}%
|
|
{\bbl@csarg\gdef{WFF@\f@family}{}% Flag, to avoid dupl warns
|
|
\bbl@infowarn{The current font is not a babel standard family:\\%
|
|
#1%
|
|
\fontname\font\\%
|
|
There is nothing intrinsically wrong with this warning, and\\%
|
|
you can ignore it altogether if you do not need these\\%
|
|
families. But if they are used in the document, you should be\\%
|
|
aware 'babel' will no set Script and Language for them, so\\%
|
|
you may consider defining a new family with \string\babelfont.\\%
|
|
See the manual for further details about \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@cl{sname}}}}%
|
|
\bbl@foreach\bbl@font@fams{%
|
|
\bbl@ifunset{bbl@##1dflt@\languagename}% (1) language?
|
|
{\bbl@ifunset{bbl@##1dflt@*\bbl@tempa}% (2) from script?
|
|
{\bbl@ifunset{bbl@##1dflt@}% 2=F - (3) from generic?
|
|
{}% 123=F - nothing!
|
|
{\bbl@exp{% 3=T - from generic
|
|
\global\let\<bbl@##1dflt@\languagename>%
|
|
\<bbl@##1dflt@>}}}%
|
|
{\bbl@exp{% 2=T - from script
|
|
\global\let\<bbl@##1dflt@\languagename>%
|
|
\<bbl@##1dflt@*\bbl@tempa>}}}%
|
|
{}}% 1=T - language, already defined
|
|
\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}%
|
|
\global\bbl@csarg\let{famrst@##1}\relax}%
|
|
{\bbl@exp{% order is relevant
|
|
\\\bbl@add\\\originalTeX{%
|
|
\\\bbl@font@rst{\bbl@cl{##1dflt}}%
|
|
\<##1default>\<##1family>{##1}}%
|
|
\\\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@infowarn{The following font families will use the default\\%
|
|
settings for all or some languages:\\%
|
|
\bbl@tempa
|
|
There is nothing intrinsically wrong with it, but\\%
|
|
'babel' will no set Script and Language, which could\\%
|
|
be relevant in some languages. If your document uses\\%
|
|
these families, consider redefining them 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@
|
|
\bbl@exp{\\\bbl@fontspec@set\\#1\expandafter\@gobbletwo#1\\#3}%
|
|
\fi
|
|
\bbl@exp{%
|
|
\def\\#2{#1}% eg, \rmdefault{\bbl@rmdflt@lang}
|
|
\\\bbl@ifsamestring{#2}{\f@family}{\\#3\let\\\bbl@tempa\relax}{}}}
|
|
\def\bbl@fontspec@set#1#2#3#4{% eg \bbl@rmdflt@lang fnt-opt fnt-nme \xxfamily
|
|
\let\bbl@tempe\bbl@mapselect
|
|
\let\bbl@mapselect\relax
|
|
\let\bbl@temp@fam#4% eg, '\rmfamily', to be restored below
|
|
\let#4\@empty % Make sure \renewfontfamily is valid
|
|
\bbl@exp{%
|
|
\let\\\bbl@temp@pfam\<\bbl@stripslash#4\space>% eg, '\rmfamily '
|
|
\<keys_if_exist:nnF>{fontspec-opentype}{Script/\bbl@cl{sname}}%
|
|
{\\\newfontscript{\bbl@cl{sname}}{\bbl@cl{sotf}}}%
|
|
\<keys_if_exist:nnF>{fontspec-opentype}{Language/\bbl@cl{lname}}%
|
|
{\\\newfontlanguage{\bbl@cl{lname}}{\bbl@cl{lotf}}}%
|
|
\\\renewfontfamily\\#4%
|
|
[\bbl@cs{lsys@\languagename},#2]}{#3}% ie \bbl@exp{..}{#3}
|
|
\begingroup
|
|
#4%
|
|
\xdef#1{\f@family}% eg, \bbl@rmdflt@lang{FreeSerif(0)}
|
|
\endgroup
|
|
\let#4\bbl@temp@fam
|
|
\bbl@exp{\let\<\bbl@stripslash#4\space>}\bbl@temp@pfam
|
|
\let\bbl@mapselect\bbl@tempe}%
|
|
\def\bbl@font@rst#1#2#3#4{%
|
|
\bbl@csarg\def{famrst@#4}{\bbl@font@set{#1}#2#3}}
|
|
\def\bbl@font@fams{rm,sf,tt}
|
|
\newcommand\babelFSstore[2][]{%
|
|
\bbl@ifblank{#1}%
|
|
{\bbl@csarg\def{sname@#2}{Latin}}%
|
|
{\bbl@csarg\def{sname@#2}{#1}}%
|
|
\bbl@provide@dirs{#2}%
|
|
\bbl@csarg\ifnum{wdir@#2}>\z@
|
|
\let\bbl@beforeforeign\leavevmode
|
|
\EnableBabelHook{babel-bidi}%
|
|
\fi
|
|
\bbl@foreach{#2}{%
|
|
\bbl@FSstore{##1}{rm}\rmdefault\bbl@save@rmdefault
|
|
\bbl@FSstore{##1}{sf}\sfdefault\bbl@save@sfdefault
|
|
\bbl@FSstore{##1}{tt}\ttdefault\bbl@save@ttdefault}}
|
|
\def\bbl@FSstore#1#2#3#4{%
|
|
\bbl@csarg\edef{#2default#1}{#3}%
|
|
\expandafter\addto\csname extras#1\endcsname{%
|
|
\let#4#3%
|
|
\ifx#3\f@family
|
|
\edef#3{\csname bbl@#2default#1\endcsname}%
|
|
\fontfamily{#3}\selectfont
|
|
\else
|
|
\edef#3{\csname bbl@#2default#1\endcsname}%
|
|
\fi}%
|
|
\expandafter\addto\csname noextras#1\endcsname{%
|
|
\ifx#3\f@family
|
|
\fontfamily{#4}\selectfont
|
|
\fi
|
|
\let#3#4}}
|
|
\let\bbl@langfeatures\@empty
|
|
\def\babelFSfeatures{% make sure \fontspec is redefined once
|
|
\let\bbl@ori@fontspec\fontspec
|
|
\renewcommand\fontspec[1][]{%
|
|
\bbl@ori@fontspec[\bbl@langfeatures##1]}
|
|
\let\babelFSfeatures\bbl@FSfeatures
|
|
\babelFSfeatures}
|
|
\def\bbl@FSfeatures#1#2{%
|
|
\expandafter\addto\csname extras#1\endcsname{%
|
|
\babel@save\bbl@langfeatures
|
|
\edef\bbl@langfeatures{#2,}}}
|
|
\input txtbabel.def
|
|
|
|
\endinput
|
|
%%
|
|
%% End of file `xebabel.def'.
|
|
|