%% Глобальные опции: %% %% russianbinops - включает повторяющиеся при перениосе бинарные отношения/операции. %% При этом унарные операции следует набирать так: ${-}1+1=0$. %% %% activedash - "русские" тире без использования кавычки (--- вместо "---) %% Так как знак "-" используется не только для набора, но и как "минус", %% всевозможные отрицательные величины следует набирать так: \hskip \minus 1pt \def\russian@ds@activedash{\let\activedash\relax} \def\russian@ds@russianbinops{\let\russianbinops\relax} \def\russian@ds@draft{\let\russiandraft\relax} \@for\CurrentRussianOption:=\@classoptionslist\do{% \@ifundefined{russian@ds@\CurrentRussianOption}% {\relax}% {\@expandtwoargs\@removeelement\CurrentRussianOption \@unusedoptionlist\@unusedoptionlist \@nameuse{russian@ds@\CurrentRussianOption}}}% \ifx\activedash\undefined \message{^^Jrussian.cfg: Dash is INACTIVE} \else \message{^^Jrussian.cfg: Dash is ACTIVE} \initiate@active@char{-} \addto\extrasrussian{\bbl@activate{-}} \addto\noextrasrussian{\bbl@deactivate{-}} {\catcode`\-=12 \gdef\minus{-}% \catcode`\<=12 \gdef\less{<}% \catcode`\>=12 \gdef\greater{>}% \gdef\russian@sh@endash{--}% \def\\{\global\let\sp@ce= }\\ } \declare@shorthand{russian}{-}{\@@@@minus} \def\@@@@minus{\textormath{\russian@sh@minus}{\@@@minus}} \def\@@@minus{\minus} \def\russian@sh@minus{% \def\russian@sh@tmp{% \ifx\protect\russian@sh@next \def\next{\expandafter\russian@sh@minus\@gobble}% \else \ifx-\russian@sh@next \let\next\russian@sh@myendash \else \let\next\russian@sh@defis \fi \fi \next}% \futurelet\russian@sh@next\russian@sh@tmp} \def\russian@sh@myendash-{\russian@sh@myendash@} \def\russian@sh@myendash@{% \def\russian@sh@tmp{% \ifx\protect\russian@sh@next \def\next{\expandafter\russian@sh@myendash@\@gobble}% \else \ifx-\russian@sh@next \let\next\russian@sh@myemdash \else \let\next\russian@sh@endash \fi \fi \next}% \futurelet\russian@sh@next\russian@sh@tmp} \def\russian@sh@myemdash-{% \ifvmode \let\next\@Ccdash \else \let\next\@Dcdash \fi \next} \def\@Dcdash{% \ifdim\lastskip\greater\z@ \unskip\nobreak\hskip.2em \else \nobreak\hskip\z@ \fi \cyrdash \futurelet\russian@sh@next\hskip@fter} % \afterassignment\hskip@fter % \let\russian@sh@next= } \def\hskip@fter{% \ifx\russian@sh@next\sp@ce \def\next{\hskip.2em\ignorespaces}% \else \ifx~\russian@sh@next \def\next{\nobreak\hskip.2em\ignorespaces}% \else \ifx"\russian@sh@next \def\next{\nobreak\hskip\z@\relax}% \else \def\next{\penalty\exhyphenpenalty\hskip\z@\relax}% \fi \fi \fi \next} \def\russian@sh@defis{% \leavevmode\nobreak\hskip\z@ \minus \penalty\exhyphenpenalty\hskip\z@\relax} \declare@shorthand{system}{-}{\minus} \ifx\nfss@catcodes\@undefined \else \addto\nfss@catcodes{% \@makeother\-% } \fi \declare@shorthand{russian}{"}{\futurelet\@next\qu@te} \def\qu@te{\if\@next\sp@ce\dq\else\bbl@afterfi\qqu@te\fi} \def\qqu@te{\if\@next\bgroup\dq\else\bbl@afterfi\qqqu@te"\fi} \def\qqqu@te#1#2{\@ifundefined{russian@sh@\string#1@\string#2@}% {\dq#2}{\@nameuse{russian@sh@\string#1@\string#2@}}} % \newdimen\@@skip@@ \AtBeginDocument{% \catcode`\-=13 \def\@cline#1-#2\@nil{% \omit \@multicnt#1% \advance\@multispan\m@ne \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi \@multicnt#2% \advance\@multicnt\minus#1% \advance\@multispan\@ne \leaders\hrule\@height\arrayrulewidth\hfill \cr \noalign{\vskip\minus\arrayrulewidth}} % \let\@raisebox@=\raisebox % \def\raisebox#1{\let\@@m=-\def-{\minus}\edef\@tempa{#1}\let-=\@@m\@raisebox@{\@tempa}} % \let\@hskip@=\hskip % \def\@@hskip@{\@hskip@\the\@@skip@@\egroup} % \def\hskip{\bgroup\def\@@@@minus{\minus}\afterassignment\@@hskip@\@@skip@@=} } \fi \ifx\russianbinops\undefined \message{russian.cfg: Binary operators/relations are ENGLISH^^J^^J} \ifx\activedash\undefined \else \AtBeginDocument{% \def\@@@minus{\minus}% } \fi \else \message{russian.cfg: Binary operators/relations are RUSSIAN^^J^^J} \ifx\russiandraft\undefined \def\@@overfull{} \else \def\@@overfull{\rlap{\hskip\marginparsep\textbullet}} \fi \def\@@defrbinop#1{% \expandafter\let\csname @@\string#1\endcsname=#1% \def#1{\csname @@\string#1\endcsname\nobreak\discretionary{\@@overfull}{\hbox{\m@th$\csname @@\string#1\endcsname$}}{}}} \let\@@defrrel\@@defrbinop \mathchardef\@@plus=\mathcode`\+ \mathchardef\@@equal=\mathcode`\= \mathchardef\@@less=\mathcode`\< \mathchardef\@@greater=\mathcode`\> \begingroup \catcode96=12 \catcode`\+\active\gdef+{\@@plus\nobreak\discretionary{\@@overfull}{\hbox{\m@th$\@@plus$}}{}}% \catcode`\=\active\gdef={\@@equal\nobreak\discretionary{\@@overfull}{\hbox{\m@th$\@@equal$}}{}}% \catcode`\<\active\gdef<{\@@less\nobreak\discretionary{\@@overfull}{\hbox{\m@th$\@@less$}}{}}% \catcode`\>\active\gdef>{\@@greater\nobreak\discretionary{\@@overfull}{\hbox{\m@th$\@@greater$}}{}}% \endgroup \AtBeginDocument{% \def\le{\leqslant}% \def\ge{\geqslant}% \@@defrrel\leqslant \@@defrrel\geqslant \@@defrbinop\cdot \@@defrbinop\times \@@defrrel\ne \@@defrbinop\in \@@defrbinop\notin \@@defrrel\subset \@@defrrel\supset \@@defrbinop\cup \@@defrbinop\cap \@@defrrel\to \mathcode`\==32768 \mathcode`\+=32768 \mathcode`\<=32768 \mathcode`\>=32768 } \ifx\activedash\undefined \mathchardef\@@minus=\mathcode`\- \begingroup \catcode96=12 \catcode`\-\active\gdef-{\@@minus\nobreak\discretionary{\@@overfull}{\hbox{\m@th$\@@minus$}}{}}% \ifx\newmcodes@\undefined \else \catcode`\"=12 \gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A% \let\std@minus=\@@minus \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax} \fi \endgroup \AtBeginDocument{% \mathcode`\-=32768 } \else \AtBeginDocument{% \def\@@@minus{\minus\nobreak\discretionary{\@@overfull}{\hbox{\m@th$\minus$}}{}}% } \fi \fi \endinput