\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