summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def')
-rw-r--r--Master/texmf-dist/tex/xelatex/polyglossia/babelsh.def303
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