diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def | 303 |
1 files changed, 303 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def b/Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def new file mode 100644 index 00000000000..9bf1d1e46b7 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def @@ -0,0 +1,303 @@ +\ifx\initiate@active@char\@undefined +\else + \bbl@afterfi\endinput +\fi +\ProvidesFile{babelsh.def} + [2009/05/07 % + Babel common definitions for shorthands^^J + Taken verbatim from babel.def (2008/07/06 v3.8l)] +\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@remove@special#1{\begingroup + \def\x##1##2{\ifnum`#1=`##2\noexpand\@empty + \else\noexpand##1\noexpand##2\fi}% + \def\do{\x\do}% + \def\@makeother{\x\@makeother}% + \edef\x{\endgroup + \def\noexpand\dospecials{\dospecials}% + \expandafter\ifx\csname @sanitize\endcsname\relax \else + \def\noexpand\@sanitize{\@sanitize}% + \fi}% + \x} +\long\def\bbl@afterelse#1\else#2\fi{\fi#1} +\long\def\bbl@afterfi#1\fi{\fi#1} +\def\initiate@active@char#1{% + \expandafter\ifx\csname active@char\string##1\endcsname\relax + \bbl@afterfi{\@initiate@active@char{#1}}% + \fi} +\begingroup + \catcode`\~\active + \def\x{\endgroup + \def\@initiate@active@char##1{% + \ifcat\noexpand##1\noexpand~\relax + \@ifundefined{normal@char\string##1}{% + \expandafter\let\csname normal@char\string##1\endcsname##1% + \expandafter\gdef + \expandafter##1% + \expandafter{% + \expandafter\active@prefix\expandafter##1% + \csname normal@char\string##1\endcsname}}{}% + \else + \@activated{##1}% + \@namedef{normal@char\string##1}{##1}% + \ifx##1'% + \let\prim@s\bbl@prim@s + \@namedef{normal@char\string##1}{% + \textormath{##1}{^\bgroup\prim@s}}% + \fi + \ifx##1^% + \gdef\bbl@act@caret{% + \ifmmode + \csname normal@char\string^\endcsname + \else + \bbl@afterfi + {\if@safe@actives + \bbl@afterelse\csname normal@char\string##1\endcsname + \else + \bbl@afterfi\csname user@active\string##1\endcsname + \fi}% + \fi} + \fi + \@ifpackagewith{babel}{KeepShorthandsActive}{}{% + \edef\bbl@tempa{\catcode`\noexpand##1\the\catcode`##1}% + \expandafter\AtEndOfPackage\expandafter{\bbl@tempa}}% + \@tempcnta=\lccode`\~ + \lccode`~=`##1% + \lowercase{% + \catcode`~\active + \expandafter\bbl@add@special + \csname \string##1\endcsname + \AtBeginDocument{% + \catcode`##1\active + \if@filesw + \immediate\write\@mainaux{% + \string\catcode`##1\string\active}% + \fi}% + \expandafter\gdef + \expandafter~% + \expandafter{% + \expandafter\active@prefix\expandafter##1% + \csname normal@char\string##1\endcsname}}% + \lccode`\~\@tempcnta + \fi + \ifx##1^% + \@namedef{active@char\string##1}{\bbl@act@caret}% + \else + \@namedef{active@char\string##1}{% + \if@safe@actives + \bbl@afterelse\csname normal@char\string##1\endcsname + \else + \bbl@afterfi\csname user@active\string##1\endcsname + \fi}% + \fi + \@namedef{user@active\string##1}{% + \expandafter\ifx + \csname \user@group @sh@\string##1@\endcsname + \relax + \bbl@afterelse\bbl@sh@select\user@group##1% + {user@active@arg\string##1}{language@active\string##1}% + \else + \bbl@afterfi\csname \user@group @sh@\string##1@\endcsname + \fi}% + \long\@namedef{user@active@arg\string##1}####1{% + \expandafter\ifx + \csname \user@group @sh@\string##1@\string####1@\endcsname + \relax + \bbl@afterelse + \csname language@active\string##1\endcsname####1% + \else + \bbl@afterfi + \csname \user@group @sh@\string##1@\string####1@% + \endcsname + \fi}% + \@namedef{\user@group @sh@\string##1@@}{% + \csname normal@char\string##1\endcsname} + \@namedef{language@active\string##1}{% + \expandafter\ifx + \csname \language@group @sh@\string##1@\endcsname + \relax + \bbl@afterelse\bbl@sh@select\language@group##1% + {language@active@arg\string##1}{system@active\string##1}% + \else + \bbl@afterfi + \csname \language@group @sh@\string##1@\endcsname + \fi}% + \long\@namedef{language@active@arg\string##1}####1{% + \expandafter\ifx + \csname \language@group @sh@\string##1@\string####1@\endcsname + \relax + \bbl@afterelse + \csname system@active\string##1\endcsname####1% + \else + \bbl@afterfi + \csname \language@group @sh@\string##1@\string####1@% + \endcsname + \fi}% + \@namedef{system@active\string##1}{% + \expandafter\ifx + \csname \system@group @sh@\string##1@\endcsname + \relax + \bbl@afterelse\bbl@sh@select\system@group##1% + {system@active@arg\string##1}{normal@char\string##1}% + \else + \bbl@afterfi\csname \system@group @sh@\string##1@\endcsname + \fi}% + \long\@namedef{system@active@arg\string##1}####1{% + \expandafter\ifx + \csname \system@group @sh@\string##1@\string####1@\endcsname + \relax + \bbl@afterelse\csname normal@char\string##1\endcsname####1% + \else + \bbl@afterfi + \csname \system@group @sh@\string##1@\string####1@\endcsname + \fi}% + \@namedef{user@sh@\string##1@\string\protect@}{% + \csname user@active\string##1\endcsname}% + }% + }\x +\def\bbl@sh@select#1#2{% + \expandafter\ifx\csname#1@sh@\string#2@sel\endcsname\relax + \bbl@afterelse\bbl@scndcs + \else + \bbl@afterfi\csname#1@sh@\string#2@sel\endcsname + \fi +} +\def\active@prefix#1{% + \ifx\protect\@typeset@protect + \else + \ifx\protect\@unexpandable@protect + \bbl@afterelse\bbl@afterfi\noexpand#1\@gobble + \else + \bbl@afterfi\bbl@afterfi\protect#1\@gobble + \fi + \fi} +\newif\if@safe@actives +\@safe@activesfalse +\def\bbl@restore@actives{\if@safe@actives\@safe@activesfalse\fi} +\def\bbl@activate#1{% + \expandafter\def + \expandafter#1\expandafter{% + \expandafter\active@prefix + \expandafter#1\csname active@char\string#1\endcsname}% +} +\def\bbl@deactivate#1{% + \expandafter\def + \expandafter#1\expandafter{% + \expandafter\active@prefix + \expandafter#1\csname normal@char\string#1\endcsname}% +} +\def\bbl@firstcs#1#2{\csname#1\endcsname} +\def\bbl@scndcs#1#2{\csname#2\endcsname} +\def\declare@shorthand#1#2{\@decl@short{#1}#2\@nil} +\def\@decl@short#1#2#3\@nil#4{% + \def\bbl@tempa{#3}% + \ifx\bbl@tempa\@empty + \expandafter\let\csname #1@sh@\string#2@sel\endcsname\bbl@scndcs + \@namedef{#1@sh@\string#2@}{#4}% + \else + \expandafter\let\csname #1@sh@\string#2@sel\endcsname\bbl@firstcs + \@namedef{#1@sh@\string#2@\string#3@}{#4}% + \fi} +\def\textormath#1#2{% + \ifmmode + \bbl@afterelse#2% + \else + \bbl@afterfi#1% + \fi} +\def\user@group{user} +\def\language@group{english} +\def\system@group{system} +\def\useshorthands#1{% + \def\user@group{user}% + \initiate@active@char{#1}% + \@tempcnta\lccode`\~ + \lccode`~=`#1% + \lowercase{\catcode`~\active\bbl@activate{~}}% + \lccode`\~\@tempcnta} +\def\defineshorthand{\declare@shorthand{user}} +\def\languageshorthands#1{\def\language@group{#1}} +\def\aliasshorthand#1#2{% + \expandafter\ifx\csname active@char\string#2\endcsname\relax + \ifx\document\@notprerr + \@notshorthand{#2} + \else + \initiate@active@char{#2}% + \@tempcnta\lccode`\~ + \lccode`~=`#2% + \lowercase{\let~#1}% + \lccode`\~\@tempcnta + \fi + \fi +} +\def\@notshorthand#1{% + \PackageError{babel}{% + The character `\string #1' should be made + a shorthand character;\MessageBreak + add the command \string\useshorthands\string{#1\string} to + the preamble.\MessageBreak + I will ignore your instruction}{}% + } +\newcommand*\shorthandon[1]{\bbl@switch@sh{on}#1\@nil} +\newcommand*\shorthandoff[1]{\bbl@switch@sh{off}#1\@nil} +\def\bbl@switch@sh#1#2#3\@nil{% + \@ifundefined{active@char\string#2}{% + \PackageError{babel}{% + The character '\string #2' is not a shorthand character + in \languagename}{% + Maybe you made a typing mistake?\MessageBreak + I will ignore your instruction}}{% + \csname bbl@switch@sh@#1\endcsname#2}% + \ifx#3\@empty\else + \bbl@afterfi\bbl@switch@sh{#1}#3\@nil + \fi} +\def\bbl@switch@sh@off#1{\catcode`#112\relax} +\begingroup + \catcode`\~\active + \def\x{\endgroup + \def\bbl@switch@sh@on##1{% + \begingroup + \lccode`~=`##1% + \lowercase{\endgroup + \catcode`~\active + }% + }% + } +\x +\declare@shorthand{system}{"}{\csname normal@char\string"\endcsname} +\declare@shorthand{system}{'}{% + \textormath{\csname normal@char\string'\endcsname}% + {\sp\bgroup\prim@s}} +\declare@shorthand{system}{`}{\csname normal@char\string`\endcsname} +\def\bbl@prim@s{% + \prime\futurelet\@let@token\bbl@pr@m@s} +\begingroup + \catcode`\'\active\let'\relax + \def\x{\endgroup + \def\bbl@pr@m@s{% + \ifx'\@let@token + \expandafter\pr@@@s + \else + \ifx^\@let@token + \expandafter\expandafter\expandafter\pr@@@t + \else + \egroup + \fi + \fi}% + } +\x +\initiate@active@char{~} +\declare@shorthand{system}{~}{\leavevmode\nobreak\ } +\bbl@activate{~} +\def\bbl@disc#1#2{% + \nobreak\discretionary{#2-}{}{#1}\allowhyphens} +%HERE ENDS THE CODE COPIED FROM babel.def -------------------- +\def\bbl@disc@german#1#2{% + \nobreak\discretionary{#2-}{}{#1}} +\endinput |