summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/rmathbr
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-12-11 21:47:54 +0000
committerKarl Berry <karl@freefriends.org>2020-12-11 21:47:54 +0000
commit479eb3104465fad082f92df05b97db9572b28841 (patch)
tree213c24c9274fd86f3f5fa17a8def997be66a75d5 /Master/texmf-dist/tex/latex/rmathbr
parent7a35ddea2c89a32714b0ee82b0d7b897b2e239ec (diff)
rmathbr (11dec20)
git-svn-id: svn://tug.org/texlive/trunk@57114 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/rmathbr')
-rw-r--r--Master/texmf-dist/tex/latex/rmathbr/rmathbr.sty903
1 files changed, 553 insertions, 350 deletions
diff --git a/Master/texmf-dist/tex/latex/rmathbr/rmathbr.sty b/Master/texmf-dist/tex/latex/rmathbr/rmathbr.sty
index efec0525ff2..9003cbf4947 100644
--- a/Master/texmf-dist/tex/latex/rmathbr/rmathbr.sty
+++ b/Master/texmf-dist/tex/latex/rmathbr/rmathbr.sty
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% Copyright (C) 2008-2016 by Denis Ryabov <dryabov@yandex.ru>
+%% Copyright (C) 2008-2020 by Denis Ryabov <dryabov@yandex.ru>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -20,441 +20,577 @@
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{rmathbr}
- [2016/04/10 1.0.3 Repeating of math operator at the broken line and the new line in inline equations]
+ [2020/12/11 1.1 Repeating of math operator at the broken line and the new
+ line in inline equations]
\RequirePackage{ifetex}
-\RequirePackage{mathstyle}
-\@ifpackageloaded{breqn}%
-{
+\RequirePackage{ifluatex}
+\RequirePackage{xkeyval}
+\edef\rmathbr@kv{\@currname.\@currext}
+\def\xDeclareBoolOptionX#1#2{%
+ \define@boolkey{\rmathbr@kv}[rmathbr@kv@]{#1}[true]{#2}%
+}
+\def\xDeclareChoiceOptionX#1[#2]#3[#4]#5{%
+ \define@choicekey{\rmathbr@kv}{#1}[#2]{#3}[#4]{#5}%
+}
+\@ifpackageloaded{breqn}{%
\PackageError{rmathbr}{'rmathbr' package cannot be used together with 'breqn' package!}{}%
}{}
-\@ifpackageloaded{xy}%
-{
- \PackageError{rmathbr}{'rmathbr' package should be loaded before 'xy' package!}{}%
-}{}
\def\nobr{\penalty\relpenalty}
-\def\SetBreakableBin#1{\rmathbr@setbreakable{#1}{\brokenbin}}
\def\SetBreakableRel#1{\rmathbr@setbreakable{#1}{\brokenrel}}
+\def\SetBreakableBin#1{\rmathbr@setbreakable{#1}{\brokenbin}}
\def\SetBreakableInner#1{\rmathbr@setbreakable{#1}{\brokeninner}}
\def\SetOpenBracket#1{\rmathbr@nobrafter{#1}}
-\def\SetMathOperator#1{\rmathbr@setbreakable{#1}{\rmathbr@mathop}}
\def\SetPunctuation#1{\rmathbr@nobrafter{#1}}
-\DeclareRobustCommand{\brokenbin}[1]{\rmathbr@brokenbin{#1}}
+\def\SetMathOperator#1{\rmathbr@setbreakable{#1}{\rmathbr@mathop}}
+\def\UnsetBrokenCmd#1{\rmathbr@unsetbroken{#1}}
+\def\BrokenBinOff{\rmathbr@brokenbinoff}
+\def\BrokenBinOn{\rmathbr@brokenbinon}
\DeclareRobustCommand{\brokenrel}[1]{\rmathbr@brokenrel{#1}}
+\DeclareRobustCommand{\brokenbin}[1]{\rmathbr@brokenbin{#1}}
\DeclareRobustCommand{\brokeninner}[1]{\rmathbr@brokeninner{#1}}
-\exhyphenpenalty=\relpenalty
-\relpenalty=13131
-\binoppenalty=14141
-\expandafter\everymath\expandafter{\the\everymath\nobr }
-\ifnum\catcode`\^=12%
- \begingroup%
- \catcode`\^\active
- \global\let\rmathbr@superscript@text=^%
- \endgroup%
-\else%
- \let\rmathbr@superscript@text=^%
-\fi
-\ifnum\catcode`\_=12%
- \begingroup%
- \catcode`\_\active
- \global\let\rmathbr@subscript@text=_%
- \endgroup%
-\else%
- \let\rmathbr@subscript@text=_%
-\fi
-\def\rmathbr@superscript#1{\rmathbr@superscript@text{{#1}}}
-\def\rmathbr@subscript#1{\rmathbr@subscript@text{{#1}}}
-\begingroup
- \catcode`\^\active\gdef^{\rmathbr@superscript}
- \catcode`\_\active\gdef_{\rmathbr@subscript}
-\endgroup
-\begingroup\catcode`\_=13\catcode`\^=13\lowercase{\endgroup
-\AtBeginDocument%
-{%
- \ifnum\catcode`\^=13
- \let\rmathbr@superscript@text@active=^
- \DeclareRobustCommand{\rmathbrsuperscript}[1]{\rmathbr@superscript@text@active{{#1}}}
- \else
- \DeclareRobustCommand{\rmathbrsuperscript}[1]{\rmathbr@superscript@text{{#1}}}
+\xDeclareBoolOptionX{noactivechars}{
+ \ifrmathbr@kv@noactivechars
+ \PackageWarning{rmathbr}{^^J Option 'noactivechars' is deprecated.^^J
+ Use 'scripts=noactive' instead.^^J}
+ \ExecuteOptionsX{scripts=noactive}
\fi
- \def^{\rmathbrsuperscript}
- \def\rmathbr@superscript@macro{\rmathbrsuperscript}
- \ifnum\catcode`\_=13
- \let\rmathbr@subscript@text@active=_
- \DeclareRobustCommand{\rmathbrsubscript}[1]{\rmathbr@subscript@text@active{{#1}}}
- \else
- \DeclareRobustCommand{\rmathbrsubscript}[1]{\rmathbr@subscript@text{{#1}}}
- \fi
- \def_{\rmathbrsubscript}
- \def\rmathbr@subscript@macro{\rmathbrsubscript}
-}}
-\DeclareOption{mathactivechars}%
-{
- \catcode`\^=12\catcode`\_=12
-}
-\DeclareOption{activechars}%
-{
- \catcode`\^\active\catcode`\_\active
}
-\DeclareOption{noactivechars}%
-{
- \catcode`\^=7\catcode`\_=8
-}
-\ExecuteOptions{mathactivechars}%
-\ProcessOptions
-\begingroup
- \catcode`\=\active
- \ifnum\mathcode`\=<32768
- \xdef={\noexpand\brokenbin{\mathchar\number\mathcode`\=}}
- \else
- \gdef={\brokenbin{\mathchar12349}}
- \fi
-\endgroup
-\begingroup
- \catcode`\+\active
- \ifnum\mathcode`\+<32768
- \xdef+{\noexpand\brokenbin{\mathchar\number\mathcode`\+}}
- \else
- \gdef+{\brokenbin{\mathchar8235}}
+\xDeclareBoolOptionX{mathactivechars}{
+ \ifrmathbr@kv@mathactivechars
+ \PackageWarning{rmathbr}{^^J Option 'mathactivechars' is deprecated.^^J
+ Use 'scripts=mathactive' instead.^^J}
+ \ExecuteOptionsX{scripts=mathactive}
\fi
-\endgroup
-\begingroup
- \catcode`\-\active
- \ifnum\mathcode`\-<32768
- \xdef-{\noexpand\brokenbin{\mathchar\number\mathcode`\-}}
- \else
- \gdef-{\brokenbin{\mathchar8704}}
+}
+\xDeclareBoolOptionX{activechars}{
+ \ifrmathbr@kv@activechars
+ \PackageWarning{rmathbr}{^^J Option 'activechars' is deprecated.^^J
+ Use 'scripts=active' instead.^^J}
+ \ExecuteOptionsX{scripts=active}
\fi
-\endgroup
-\begingroup
- \catcode`\*\active
- \ifnum\mathcode`\*<32768
- \xdef*{\noexpand\brokenbin{\mathchar\number\mathcode`\*}}
- \else
- \gdef*{\brokenbin{\mathchar8707}}
+}
+\let\rmathbr@scriptsmode=\@ne
+\xDeclareChoiceOptionX{scripts}[\val\nr]{noactive,mathactive,active}[mathactive]{
+ \ifcase\nr\relax
+ \let\rmathbr@scriptsmode=\z@
+ \or
+ \let\rmathbr@scriptsmode=\@ne
+ \or
+ \let\rmathbr@scriptsmode=\tw@
\fi
-\endgroup
-\begingroup
- \ifnum\mathcode`\<<32768
- \catcode`\<\active
- \xdef<{\noexpand\brokenbin{\mathchar\number\mathcode`\<}}
- \else
- \catcode`\<\active
- \gdef<{\brokenbin{\mathchar12604}}
+}
+\newif\ifrmathbr@patch@begindocument
+\xDeclareChoiceOptionX{run}[\val\nr]{atload,atbegindocument,auto}[auto]{
+ \ifcase\nr\relax
+ \rmathbr@patch@begindocumentfalse
+ \or
+ \rmathbr@patch@begindocumenttrue
+ \or
+ \@ifpackageloaded{unicode-math}{\rmathbr@patch@begindocumenttrue}{}
+ \@ifpackageloaded{mathtools}{\rmathbr@patch@begindocumenttrue}{}
\fi
-\endgroup
-\begingroup
- \catcode`\>\active
- \ifnum\mathcode`\><32768
- \xdef>{\noexpand\brokenbin{\mathchar\number\mathcode`\>}}
+}
+\xDeclareBoolOptionX{cdottimes}{}
+\xDeclareBoolOptionX{brokenminus}{}
+\xDeclareBoolOptionX{brokencolon}{}
+\xDeclareBoolOptionX{brokenbin}{%
+ \ifrmathbr@kv@brokenbin
\else
- \gdef>{\brokenbin{\mathchar12606}}
+ \AtBeginDocument{\BrokenBinOff}
\fi
-\endgroup
-\begingroup
- \catcode`\(\active
- \xdef({\mathopen\delimiter\number\delcode`\(\noexpand\nobr }
-\endgroup
-\begingroup
- \catcode`\[\active %\]
- \xdef[{\mathopen\delimiter\number\delcode`\[\noexpand\nobr }
-\endgroup
-\AtBeginDocument%
-{
- \mathcode`\==32768% "8000
- \mathcode`\<=32768
- \mathcode`\>=32768
- \mathcode`\+=32768
- \mathcode`\-=32768
- \mathcode`\*=32768
- \mathcode`\_=32768
- \mathcode`\^=32768
- \mathcode`\(=32768
- \mathcode`\[=32768 %\]
- \mathcode`\:=32768
- \mathcode`\,=32768
- \mathcode`\;=32768
- \let\rmathbr@orig@resetMathstrut=\resetMathstrut@
- \begingroup
- \gdef\resetMathstrut@
- {
- \mathcode`\(=16424% "4028
- \rmathbr@orig@resetMathstrut
- \mathcode`\(=32768% "8000
- }
- \gdef\newmcodes@
- {
- \mathcode`\'=39
- \mathcode`\*=42
- \mathcode`\.=24890% "613A
- \mathcode`\-=45
- \mathcode`\/=47
- \mathcode`\:=24634% "603A
- \relax
- }
- \endgroup%
}
+\ExecuteOptionsX{scripts=mathactive}
+\ExecuteOptionsX{run=auto}
+\ExecuteOptionsX{cdottimes=false}
+\ExecuteOptionsX{brokenminus=true}
+\ExecuteOptionsX{brokencolon=false}
+\ExecuteOptionsX{brokenbin=true}
+\ProcessOptionsX
+\ifcase\rmathbr@scriptsmode
+ % nop
+\or
+ \AtBeginDocument{\catcode`\^=12\mathcode`\^=32768\catcode`\_=12\mathcode`\_=32768}
+\or
+ \AtBeginDocument{\catcode`\^\active\catcode`\_\active}
+\fi
+\mathchardef\rmathbr@orig@relpenalty=\relpenalty
+\mathchardef\rmathbr@orig@binoppenalty=\binoppenalty
+\ifluatex\else
+ \exhyphenpenalty=\relpenalty
+\fi
+\relpenalty=13131
+\binoppenalty=14141
+\expandafter\everymath\expandafter{\the\everymath\nobr }
+\begingroup\catcode`\^=7 \global\let\rmathbr@superscript@std=^\endgroup
+\begingroup\catcode`\^=12\global\let\rmathbr@superscript@other=^\endgroup
+\begingroup\catcode`\_=8 \global\let\rmathbr@subscript@std=_\endgroup
+\begingroup\catcode`\_=12\global\let\rmathbr@subscript@other=_\endgroup
+\begingroup\catcode`\'=12\global\let\rmathbr@prime='\endgroup
+\def\rmathbr@superscript#1{\rmathbr@superscript@std{{#1}}}
+\def\rmathbr@subscript#1{\rmathbr@subscript@std{{#1}}}
\begingroup
- \catcode`\:\active \gdef:{\futurelet\rmathbr@let@token\rmathbr@colontest}
+ \catcode`\^\active\gdef^{\rmathbr@superscript}
+ \catcode`\_\active\gdef_{\rmathbr@subscript}
\endgroup
-\def\rmathbr@colontest%
-{
- \ifx=\rmathbr@let@token
- \expandafter\rmathbr@letsign
- \else
- \expandafter\rmathbr@colon
- \fi
-}%
-\ifnum\mathcode`\:<32768
- \edef\rmathbr@letsign#1{\noexpand\brokenrel{\mathchar\number\mathcode`\:\mathchar\number\mathcode`\=}}
- \edef\rmathbr@colon{\noexpand\brokenrel{\mathchar\number\mathcode`\:}}
+\newif\ifrmathbr@activemathchar
+\ifx\Umathcode\@undefined
+ \def\rmathbr@checkmathchar#1{%
+ \ifnum\mathcode#1<32768\relax%
+ \rmathbr@activemathcharfalse%
+ \else%
+ \rmathbr@activemathchartrue%
+ \fi}
+ \def\rmathbr@mathchar#1{\mathchar\number\mathcode#1}
+ \def\rmathbr@makeactivemathopen#1{%
+ \begingroup
+ \xdef\@tempa{\mathopen\delimiter\number\delcode#1 \noexpand\nobr }
+ \begingroup\lccode`~=#1\catcode#1\active\lowercase{\endgroup\xdef~}{\@tempa}
+ \endgroup
+ }
\else
- \def\rmathbr@letsign#1{\brokenrel{\mathchar12346\mathchar12349}}
- \def\rmathbr@colon{\brokenrel{\mathchar12346}}
-\fi
-\begingroup
- \catcode`\,\active
- \@ifpackageloaded{icomma}% check for 'icomma' package
- {
- \expandafter\gdef\expandafter\sm@rtcomma\expandafter{\sm@rtcomma\nobr}
- }{
- \ifx\domathcomma\undefined% check for 'eulervm' package with 'icomma' option
- \ifnum\mathcode`\,<32768
- \xdef,{\mathpunct\mathchar\number\mathcode`\,\noexpand\nobr }
+ \begingroup
+ \mathcode`\+="8000
+ \xdef\rmathbr@activemathcode{\number\Umathcodenum`\+}
+ \endgroup
+ \def\rmathbr@checkmathchar#1{%
+ \ifnum\Umathcodenum#1=\rmathbr@activemathcode\relax%
+ \expandafter\rmathbr@activemathchartrue%
+ \else%
+ \expandafter\rmathbr@activemathcharfalse%
+ \fi}
+ \def\rmathbr@mathchar#1{\Umathcharnum\number\Umathcodenum#1}
+ \def\rmathbr@truncdiv#1#2{((#1-(#2-1)/2)/#2)}
+ \def\rmathbr@modulo#1#2{(#1-\rmathbr@truncdiv{#1}{#2}*#2)}
+ \def\rmathbr@makeactivemathopen#1{%
+ \begingroup
+ \def\@tempa{\Udelcodenum#1}
+ \ifnum\@tempa<"1000000
+ \xdef\@tempb{\mathopen\delimiter\number\@tempa\space\noexpand\nobr }
\else
- \gdef,{\mathpunct\mathchar24891\nobr }
+ \xdef\@tempb{\mathopen\Udelimiter4 %
+\number\numexpr\rmathbr@truncdiv{\rmathbr@modulo{\@tempa}{"40000000}}{"200000}\relax%
+\space\number\numexpr\rmathbr@modulo{\@tempa}{"200000}\relax\noexpand\nobr }
\fi
+ \begingroup\lccode`~=#1\catcode#1\active\expandafter\lowercase\expandafter%
+{\expandafter\endgroup\expandafter\gdef\expandafter~\expandafter}\expandafter{\@tempb}
+ \endgroup
+ }
+\fi
+\def\rmathbr@makeactivemath#1#2#3{
+ \begingroup
+ \rmathbr@checkmathchar{#1}
+ \lccode`~=#1
+ \catcode#1\active
+ \ifrmathbr@activemathchar
+ \PackageWarning{rmathbr}{Redeclare active math #1 symbol to default mathchar value}
+ \lowercase{\gdef~}{#2{#3}}
\else
- \expandafter\gdef\expandafter\domathcomma\expandafter{\domathcomma\nobr}
+ \lowercase{\xdef~}{\noexpand#2{\rmathbr@mathchar{#1}}}
\fi
- }
-\endgroup
-\begingroup
- \catcode`\;\active
- \@ifpackageloaded{program}%
- {
- \gdef;{\ifmmode\semicolon\;\nobr\else\@semicolon\fi}
- }{
- \ifnum\mathcode`\;<32768
- \xdef;{\mathpunct\mathchar\number\mathcode`\;\noexpand\nobr }
+ \endgroup
+}
+\def\rmathbr@makeactivemathpunct#1#2{
+ \begingroup
+ \rmathbr@checkmathchar{#1}
+ \lccode`~=#1
+ \catcode#1\active
+ \ifrmathbr@activemathchar
+ \PackageWarning{rmathbr}{Redeclare active math #1 symbol to default mathchar value}
+ \lowercase{\gdef~}{\mathpunct#2\nobr }
\else
- \gdef;{\mathpunct\mathchar24635\nobr }
+ \lowercase{\xdef~}{\mathpunct\rmathbr@mathchar{#1} \noexpand\nobr }
\fi
- }
-\endgroup
-\def\rmathbr@ReDeclareRobustCommand#1#2% Command without arguments
-{
+ \endgroup
+}
+\newif\ifrmathbr@protected
+\def\rmathbr@ifprotected#1{%
+ \rmathbr@protectedfalse
+ \edef\str@cmd{\string#1\space}
+ \edef\meaning@cmd{\meaning#1}
+ \def\str@contains##1##2{\begingroup\edef\x{\endgroup\noexpand\in@{##1}{##2}}\x}
+ \str@contains\str@cmd\meaning@cmd
+ \ifin@
+ \str@contains{\string\protect\space}\meaning@cmd
+ \ifin@\rmathbr@protectedtrue\else
+ \str@contains{\string\x@protect\space}\meaning@cmd
+ \ifin@\rmathbr@protectedtrue\else
+ \str@contains{\string\@testopt\space}\meaning@cmd
+ \ifin@\rmathbr@protectedtrue\else
+ \str@contains{\string\@protected@testopt\space}\meaning@cmd
+ \ifin@\rmathbr@protectedtrue\fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\def\rmathbr@ReDeclareRobustCommand#1#2{%
\begingroup
- \ifx#1\undefined
+ \ifx#1\@undefined
\else
\edef\var@orig@I{rmathbr@orig@\expandafter\@gobble\string#1}
\edef\var@Ispace{\expandafter\@gobble\string#1 }
\expandafter\ifx\csname\var@orig@I\endcsname\relax
- \expandafter\ifx\csname\var@Ispace\endcsname\relax
- \global\expandafter\let\csname\var@orig@I\endcsname#1
+ \ifetex
+ \expandafter\global\expandafter\let\csname\var@orig@I\endcsname#1
\else
- \global\expandafter\let\csname\var@orig@I\expandafter\endcsname\csname\var@Ispace\endcsname
+ \rmathbr@ifprotected#1
+ \ifrmathbr@protected
+ \expandafter\global\expandafter\let\csname\var@orig@I\expandafter\endcsname%
+\csname\var@Ispace\endcsname
+ \else
+ \expandafter\global\expandafter\let\csname\var@orig@I\endcsname#1
+ \fi
\fi
\fi
- \expandafter\gdef\csname\var@Ispace\endcsname{#2}% no arguments
- \xdef#1{\noexpand\protect\expandafter\noexpand\csname\var@Ispace\endcsname}
+ \ifetex
+ \protected\gdef#1{#2}
+ \else
+ \expandafter\gdef\csname\var@Ispace\endcsname{#2}% no arguments
+ \xdef#1{\noexpand\protect\expandafter\noexpand\csname\var@Ispace\endcsname}
+ \fi
\fi
\endgroup%
}
-\def\rmathbr@ReDeclareRobustCommandI#1#2% Command with one argument
-{
+\def\rmathbr@ReDeclareRobustCommandI#1#2{%
\begingroup
- \ifx#1\undefined
+ \ifx#1\@undefined
\else
\edef\var@orig@I{rmathbr@orig@\expandafter\@gobble\string#1}
- \edef\var@Ispace{\expandafter\@gobble\string#1 }
+ \edef\var@Ispace{\expandafter\@gobble\string#1\space}
\expandafter\ifx\csname\var@orig@I\endcsname\relax
- \expandafter\ifx\csname\var@Ispace\endcsname\relax
- \global\expandafter\let\csname\var@orig@I\endcsname#1
+ \ifetex
+ \expandafter\global\expandafter\let\csname\var@orig@I\endcsname#1
\else
- \global\expandafter\let\csname\var@orig@I\expandafter\endcsname\csname\var@Ispace\endcsname
+ \rmathbr@ifprotected#1
+ \ifrmathbr@protected
+ \expandafter\global\expandafter\let\csname\var@orig@I\expandafter\endcsname%
+\csname\var@Ispace\endcsname
+ \else
+ \expandafter\global\expandafter\let\csname\var@orig@I\endcsname#1
+ \fi
\fi
\fi
- \expandafter\gdef\csname\var@Ispace\endcsname##1{#2}% one argument
- \xdef#1{\noexpand\protect\expandafter\noexpand\csname\var@Ispace\endcsname}
+ \ifetex
+ \protected\gdef#1##1{#2}
+ \else
+ \expandafter\gdef\csname\var@Ispace\endcsname##1{#2}% one argument
+ \xdef#1{\noexpand\protect\expandafter\noexpand\csname\var@Ispace\endcsname}
+ \fi
\fi
\endgroup%
}
-\def\rmathbr@setbrokens%
-{
- \rmathbr@ReDeclareRobustCommandI{\brokenbin}{\rmathbr@brokenbin{##1}}
- \rmathbr@ReDeclareRobustCommandI{\brokenrel}{\rmathbr@brokenrel{##1}}
- \rmathbr@ReDeclareRobustCommandI{\brokeninner}{\rmathbr@brokeninner{##1}}%
+\rmathbr@ReDeclareRobustCommandI{\brokenrel}{\rmathbr@brokenrel{#1}}
+\rmathbr@ReDeclareRobustCommandI{\brokenbin}{\rmathbr@brokenbin{#1}}
+\rmathbr@ReDeclareRobustCommandI{\brokeninner}{\rmathbr@brokeninner{#1}}%
+\let\rmathbr@save@brokenrel=\brokenrel
+\let\rmathbr@save@brokenbin@on=\brokenbin
+\let\rmathbr@save@brokenbin=\brokenbin
+\let\rmathbr@save@brokeninner=\brokeninner
+\def\rmathbr@brokenbinon{%
+ \let\rmathbr@save@brokenbin=\rmathbr@save@brokenbin@on
+ \ifx\brokenbin\@firstofone\else
+ \let\brokenbin=\rmathbr@save@brokenbin
+ \fi
+}
+\def\rmathbr@brokenbinoff{%
+ \let\rmathbr@save@brokenbin=\mathbin
+ \ifx\brokenbin\@firstofone\else
+ \let\brokenbin=\rmathbr@save@brokenbin
+ \fi
}
-\def\rmathbr@unsetbrokens%
-{
- \def\brokenbin##1{##1}
- \def\brokenrel##1{##1}
- \def\brokeninner##1{##1}%
+\def\rmathbr@setbrokens{%
+ \let\brokenrel=\rmathbr@save@brokenrel
+ \let\brokenbin=\rmathbr@save@brokenbin
+ \let\brokeninner=\rmathbr@save@brokeninner
+ \let\rmathbr@colontest=\rmathbr@save@colontest
}
-\def\rmathbr@brokenbin#1%
-{
- \relax
+\def\rmathbr@unsetbrokens{%
+ \let\brokenrel=\@firstofone
+ \let\brokenbin=\@firstofone
+ \let\brokeninner=\@firstofone
+ \let\rmathbr@colontest=\rmathbr@colon@std
+}
+\def\rmathbr@brokenrel#1{%
\def\rmathbr@arg{#1}
- \def\rmathbr@this{\rmathbr@brokenbin}
- \def\rmathbr@output{\rmathbr@@brokenbin}
+ \let\rmathbr@this=\rmathbr@brokenrel
+ \let\rmathbr@output=\rmathbr@@brokenrel
\futurelet\rmathbr@let@token\rmathbr@brokenop%
}
-\def\rmathbr@brokenrel#1%
-{
- \relax
+\def\rmathbr@brokenbin#1{%
\def\rmathbr@arg{#1}
- \def\rmathbr@this{\rmathbr@brokenrel}
- \def\rmathbr@output{\rmathbr@@brokenrel}
+ \let\rmathbr@this=\rmathbr@brokenbin
+ \let\rmathbr@output=\rmathbr@@brokenbin
\futurelet\rmathbr@let@token\rmathbr@brokenop%
}
-\def\rmathbr@brokeninner#1%
-{
- \relax
+\def\rmathbr@brokeninner#1{%
\def\rmathbr@arg{#1}
- \def\rmathbr@this{\rmathbr@brokeninner}
- \def\rmathbr@output{\rmathbr@@brokeninner}
+ \let\rmathbr@this=\rmathbr@brokeninner
+ \let\rmathbr@output=\rmathbr@@brokeninner
\futurelet\rmathbr@let@token\rmathbr@brokenop%
}
-\def\rmathbr@mathop#1%
-{
- \relax
+\def\rmathbr@mathop#1{%
\def\rmathbr@arg{#1}
- \def\rmathbr@this{\rmathbr@mathop}
- \def\rmathbr@output{\rmathbr@@mathop}
+ \let\rmathbr@this=\rmathbr@mathop
+ \let\rmathbr@output=\rmathbr@@mathop
\futurelet\rmathbr@let@token\rmathbr@brokenop%
}
-\def\rmathbr@@brokenbin#1%
-{
+\def\rmathbr@@brokenrel#1{%
\ifnum\lastpenalty=\relpenalty
- \mathbin{#1}
+ \mathrel{#1}
\else
- \mathbin{#1}
+ \mathrel{#1}
\ifx$\rmathbr@let@token
\else
- \rmathbr@selector{#1}
+ \begingroup
+ \hyphenpenalty\rmathbr@orig@relpenalty
+ \rmathbr@selector{#1}
+ \endgroup
\fi
\fi
\rmathbr@setbrokens
- \penalty\binoppenalty %
+ \penalty\relpenalty %
}
-\def\rmathbr@@brokenrel#1%
-{
+\def\rmathbr@@brokenbin#1{%
\ifnum\lastpenalty=\relpenalty
- \mathrel{#1}
+ \mathbin{#1}
\else
- \mathrel{#1}
+ \mathbin{#1}
\ifx$\rmathbr@let@token
\else
- \rmathbr@selector{#1}
+ \begingroup
+ \hyphenpenalty\rmathbr@orig@binoppenalty
+ \rmathbr@selector{#1}
+ \endgroup
\fi
\fi
\rmathbr@setbrokens
- \penalty\relpenalty %
+ \penalty\binoppenalty %
}
-\def\rmathbr@@brokeninner#1%
-{
+\def\rmathbr@@brokeninner#1{%
\ifnum\lastpenalty=\relpenalty
\mathinner{#1}
\else
\mathinner{#1}
\ifx$\rmathbr@let@token
\else
- \rmathbr@selector{#1}
+ \begingroup
+ \hyphenpenalty\rmathbr@orig@relpenalty
+ \rmathbr@selector{#1}
+ \endgroup
\fi
\fi
\rmathbr@setbrokens
\penalty\relpenalty %
}
-\def\rmathbr@@mathop#1%
-{
+\def\rmathbr@@mathop#1{%
\rmathbr@setbrokens
#1\nobr %
}
-\def\rmathbr@selector#1%
-{
+\def\rmathbr@selector#1{%
\mathchoice
{\discretionary{}{\hbox{$\m@th\displaystyle#1$}}{}}
{\discretionary{}{\hbox{$\m@th\textstyle#1$}}{}}
{\discretionary{}{\hbox{$\m@th\scriptstyle#1$}}{}}
{\discretionary{}{\hbox{$\m@th\scriptscriptstyle#1$}}{}}%
}
-\begingroup\catcode`\_=12\catcode`\^=12
-\gdef\rmathbr@brokenop%
-{
+\def\rmathbr@brokenop{%
\ifmmode
\rmathbr@unsetbrokens
- \ifx\rmathbr@subscript@macro\rmathbr@let@token
+ \ifx\rmathbr@subscript@std\rmathbr@let@token
\let\@command=\rmathbr@brokenglue
- \else\ifx_\rmathbr@let@token
+ \else\ifx\rmathbr@subscript@other\rmathbr@let@token
\let\@command=\rmathbr@brokenglue
- \else\ifx\rmathbr@superscript@macro\rmathbr@let@token
+ \else\ifx\rmathbr@superscript@std\rmathbr@let@token
\let\@command=\rmathbr@brokenglue
- \else\ifx^\rmathbr@let@token
+ \else\ifx\rmathbr@superscript@other\rmathbr@let@token
\let\@command=\rmathbr@brokenglue
\else\ifx\limits\rmathbr@let@token
\let\@command=\rmathbr@brokenskip
\else\ifx\nolimits\rmathbr@let@token
\let\@command=\rmathbr@brokenskip
+ \else\ifx\rmathbr@prime\rmathbr@let@token
+ \let\@command=\rmathbr@brokenskip
\else\ifx\relax\rmathbr@let@token
\let\@command=\rmathbr@brokenskip
\else
\let\@command=\rmathbr@output
- \fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi
\else
\let\@command=\relax
\fi
\expandafter\@command\expandafter{\rmathbr@arg}%
}
-\endgroup
-\def\rmathbr@brokenglue#1#2#3%
-{
+\def\rmathbr@brokenglue#1#2#3{%
\def\rmathbr@temp{#1#2{#3}}
\expandafter\rmathbr@this\expandafter{\rmathbr@temp}%
}
-\def\rmathbr@brokenskip#1#2%
-{
+\def\rmathbr@brokenskip#1#2{%
\def\rmathbr@temp{#1#2}
\expandafter\rmathbr@this\expandafter{\rmathbr@temp}%
}
-\def\rmathbr@setbreakable#1#2%
-{
+\def\rmathbr@setbreakable#1#2{%
+ \begingroup
+ \ifx#1\@undefined
+ \else
+ \edef\rmathbr@orig{rmathbr@orig@\expandafter\@gobble\string#1}
+ \expandafter\ifx\csname\rmathbr@orig\endcsname\relax
+ \expandafter\rmathbr@ReDeclareRobustCommand\expandafter#1\expandafter{%
+\expandafter#2\expandafter{\csname\rmathbr@orig\endcsname}}
+ \fi
+ \fi
+ \endgroup%
+}
+\def\rmathbr@nobrafter#1{%
\begingroup
- \ifx#1\undefined
+ \ifx#1\@undefined
\else
\edef\rmathbr@orig{rmathbr@orig@\expandafter\@gobble\string#1}
\expandafter\ifx\csname\rmathbr@orig\endcsname\relax
- \expandafter\rmathbr@ReDeclareRobustCommand\expandafter#1\expandafter{\expandafter#2\expandafter{\csname\rmathbr@orig\endcsname}}
+ \expandafter\rmathbr@ReDeclareRobustCommand\expandafter#1\expandafter{%
+\csname\rmathbr@orig\endcsname\nobr}
\fi
\fi
\endgroup%
}
-\def\rmathbr@nobrafter#1%
-{
+\def\rmathbr@unsetbroken#1{
\begingroup
- \ifx#1\undefined
+ \ifx#1\@undefined
\else
\edef\rmathbr@orig{rmathbr@orig@\expandafter\@gobble\string#1}
\expandafter\ifx\csname\rmathbr@orig\endcsname\relax
- \expandafter\rmathbr@ReDeclareRobustCommand\expandafter#1\expandafter{\csname\rmathbr@orig\endcsname\nobr}
+ \else
+ \expandafter\global\expandafter\let\expandafter#1\csname\rmathbr@orig\endcsname
\fi
\fi
\endgroup%
}
-\rmathbr@ReDeclareRobustCommandI{\not}%
-{
+\def\rmathbr@patch@commands{%
+\rmathbr@makeactivemath{`\=}{\brokenrel}{\mathchar12349}
+\rmathbr@makeactivemath{`\<}{\brokenrel}{\mathchar12604}
+\rmathbr@makeactivemath{`\>}{\brokenrel}{\mathchar12606}
+\rmathbr@makeactivemath{`\+}{\brokenbin}{\mathchar8235}
+\ifrmathbr@kv@brokenminus
+ \rmathbr@makeactivemath{`\-}{\brokenbin}{\mathchar8704}
+\fi
+\rmathbr@makeactivemath{`\*}{\brokenbin}{\mathchar8707}
+\rmathbr@makeactivemathopen{`\(}
+\rmathbr@makeactivemathopen{`\[}
+\@ifpackageloaded{icomma}{%
+ \expandafter\def\expandafter\sm@rtcomma\expandafter{\sm@rtcomma\nobr}
+}{
+ \ifx\domathcomma\@undefined%
+ \rmathbr@makeactivemathpunct{`\,}{\mathchar24891}
+ \else%
+ \expandafter\def\expandafter\domathcomma\expandafter{\domathcomma\nobr}
+ \fi
+}
+\@ifpackageloaded{program}{%
+ \begingroup
+ \catcode`\;\active
+ \lccode`\~=`\;%
+ \lowercase{\gdef~}{\ifmmode\semicolon\;\nobr\else\@semicolon\fi}
+ \endgroup
+}{
+ \rmathbr@makeactivemathpunct{`\;}{\mathchar24635}
+}
+\begingroup%
+ \catcode`\:\active%
+ \lccode`\~=`\:%
+ \lowercase{\gdef~}{\rmathbr@colontest}%
+\endgroup
+\def\rmathbr@colontest{\futurelet\rmathbr@let@token\rmathbr@do@colontest}
+\def\rmathbr@do@colontest{%
+ \ifx=\rmathbr@let@token
+ \expandafter\rmathbr@letsign
+ \else
+ \expandafter\rmathbr@colon
+ \fi
+}%
+\rmathbr@checkmathchar{`\:}
+\ifrmathbr@activemathchar
+ \PackageWarning{rmathbr}{Redeclare active math `\: symbol to default mathchar value}
+ \def\rmathbr@colon@std{\mathchar12346}
+ \ifrmathbr@kv@brokencolon
+ \def\rmathbr@colon{\brokenbin{\rmathbr@colon@std}}
+ \else
+ \def\rmathbr@colon{\mathbin{\rmathbr@colon@std}}
+ \fi
+ \def\rmathbr@letsign##1{\brokenrel{\rmathbr@colon@std\mathchar12349}}
+\else
+ \edef\rmathbr@colon@std{\rmathbr@mathchar{`\:}}
+ \ifrmathbr@kv@brokencolon
+ \def\rmathbr@colon{\brokenbin{\rmathbr@colon@std}}
+ \else
+ \def\rmathbr@colon{\mathbin{\rmathbr@colon@std}}
+ \fi
+ \edef\rmathbr@letsign##1{\noexpand\brokenrel{\rmathbr@colon@std\rmathbr@mathchar{`\=}}}
+\fi
+\let\rmathbr@save@colontest=\rmathbr@colontest%
+\@ifpackageloaded{unicode-math}{
+ \begingroup
+ \def\UnicodeMathSymbol##1##2##3##4{%
+ \ifnum\number##1>127\relax
+ \expandafter\let\expandafter\@char\Uchar\number##1\relax
+ \ifx\@char##2\relax
+ \let\cmd\relax
+ \ifx##3\mathrel
+ \def\cmd{\brokenrel}
+ \else\ifx##3\mathbin
+ \def\cmd{\brokenbin}
+ \else\ifx##3\mathop
+ \def\cmd{\rmathbr@mathop}
+ \else\ifx##3\mathpunct
+ \let\cmd=\nobr
+ \fi\fi\fi\fi
+ \ifx\cmd\relax\else
+ \edef\var@orig@name{rmathbr@orig@\expandafter\@gobble\string##2}
+ \expandafter\def\expandafter\var@orig\expandafter{\csname\var@orig@name\endcsname}
+ \rmathbr@checkmathchar{\number##1}
+ \ifrmathbr@activemathchar
+ \begingroup
+ \lccode`~=\number##1
+ \catcode\number##1\active
+ \lowercase{\endgroup\expandafter\global\expandafter\let\var@orig~}
+ \else
+ \expandafter\xdef\var@orig{\rmathbr@mathchar{\number##1}}
+ \global\mathcode\number##1="8000
+ \fi
+ \ifx\cmd\nobr
+ \edef\@tempa{\expandafter\noexpand\var@orig\noexpand\nobr}
+ \else
+ \edef\@tempa{\expandafter\noexpand\cmd{\expandafter\noexpand\var@orig}}
+ \fi
+ \begingroup
+ \lccode`~=\number##1
+ \catcode\number##1\active
+ \lowercase{\endgroup\expandafter\gdef\expandafter~\expandafter}{\@tempa}
+ \fi
+ \fi
+ \fi
+ }
+ \let\par=\relax
+ \catcode`\"=12
+ \@@input{unicode-math-table.tex}
+ \endgroup
+}{}
+\rmathbr@ReDeclareRobustCommandI{\not}{%
\begingroup
- \edef\rmathbr@orig{rmathbr@orig@\expandafter\@gobble\string#1}
- \expandafter\ifx\csname\rmathbr@orig\endcsname\relax
- \brokenrel{\rmathbr@orig@not#1}
+ \edef\rmathbr@orig{rmathbr@orig@\expandafter\@gobble\string##1}
+ \expandafter\let\expandafter\rmathbr@origmacro\csname\rmathbr@orig\endcsname
+ \ifx\rmathbr@origmacro##1\relax
+ \begingroup
+ \let##1=\rmathbr@origmacro
+ \brokenrel{\rmathbr@orig@not##1}
+ \endgroup
\else
- \expandafter\brokenrel\expandafter{\expandafter\rmathbr@orig@not\csname\rmathbr@orig\endcsname}
+ \brokenrel{\rmathbr@orig@not##1}
\fi
\endgroup%
}
-\rmathbr@ReDeclareRobustCommandI{\bigl}{\rmathbr@mathop{\mathopen\big#1}}
-\rmathbr@ReDeclareRobustCommandI{\Bigl}{\rmathbr@mathop{\mathopen\Big#1}}
-\rmathbr@ReDeclareRobustCommandI{\biggl}{\rmathbr@mathop{\mathopen\bigg#1}}
-\rmathbr@ReDeclareRobustCommandI{\Biggl}{\rmathbr@mathop{\mathopen\Bigg#1}}
+\rmathbr@ReDeclareRobustCommandI{\bigl}{\rmathbr@mathop{\mathopen\big##1}}
+\rmathbr@ReDeclareRobustCommandI{\Bigl}{\rmathbr@mathop{\mathopen\Big##1}}
+\rmathbr@ReDeclareRobustCommandI{\biggl}{\rmathbr@mathop{\mathopen\bigg##1}}
+\rmathbr@ReDeclareRobustCommandI{\Biggl}{\rmathbr@mathop{\mathopen\Bigg##1}}
\SetOpenBracket{\lmoustache}
\SetOpenBracket{\langle}
\SetOpenBracket{\lbrace}
@@ -518,51 +654,50 @@
\SetBreakableBin{\times}
\SetBreakableBin{\cdot}
\def\rmathbr@cdott{%
- %% inplace-expanded mathchoice from mathstyle.sty
- \mathchoice{%
- \mkern\medmuskip$%
- \discretionary{\the\textfont2\char2}{\the\textfont2\char2}{\the\textfont2\char1}%
- $\displaystyle\mkern\medmuskip%
- }{%
- \mkern\medmuskip$%
- \discretionary{\the\textfont2\char2}{\the\textfont2\char2}{\the\textfont2\char1}%
- $\textstyle\mkern\medmuskip%
- }{%
- $%
- \discretionary{\the\scriptfont2\char2}{\the\scriptfont2\char2}{\the\scriptfont2\char1}%
- $\scriptstyle%
- }{%
- $%
- \discretionary{\the\scriptscriptfont2\char2}{\the\scriptscriptfont2\char2}{\the\scriptscriptfont2\char1}%
- $\scriptscriptstyle%
- }
+ $\begingroup\hyphenpenalty\rmathbr@orig@binoppenalty\discretionary%
+ {\hbox{$\m@th\rmathbr@orig@times$}}%
+ {\hbox{$\m@th\rmathbr@orig@times$}}%
+ {\hbox{$\m@th\mkern\medmuskip\rmathbr@orig@cdot\mkern\medmuskip$}}\endgroup$
}
\def\cdott{%
- \ensuremath
- \ifetex
- \ifinner%
- \ifnum\currentgrouptype=15\relax
- \rmathbr@cdott
+ \ifmmode
+ \ifetex
+ \ifinner%
+ \ifnum\currentgrouptype=15\relax
+ \rmathbr@cdott
+ \else
+ \rmathbr@orig@cdot
+ \fi
\else
- \cdot
+ \rmathbr@orig@cdot
\fi
\else
- \cdot
+ \rmathbr@cdott
\fi
\else
- \rmathbr@cdott
+ \rmathbr@orig@cdot
\fi
}
+\ifrmathbr@kv@cdottimes
+ \let\cdot\cdott
+\fi
\def\*{\mathbin{}%
- \mathchoice{%
- \discretionary{\hbox{$\m@th\displaystyle\times$}}{\hbox{$\m@th\displaystyle\times$}}{}%
- }{%
- \discretionary{\hbox{$\m@th\textstyle\times$}}{\hbox{$\m@th\textstyle\times$}}{}%
- }{%
- \discretionary{\hbox{$\m@th\scriptstyle\times$}}{\hbox{$\m@th\scriptstyle\times$}}{}%
- }{%
- \discretionary{\hbox{$\m@th\scriptscriptstyle\times$}}{\hbox{$\m@th\scriptscriptstyle\times$}}{}%
- }%
+ \begingroup%
+ \hyphenpenalty\rmathbr@orig@binoppenalty%
+ \mathchoice{%
+ \discretionary{\hbox{$\m@th\displaystyle\mkern\thinmuskip\times$}}%
+{\hbox{$\m@th\displaystyle\times\mkern\thinmuskip$}}{}%
+ }{%
+ \discretionary{\hbox{$\m@th\textstyle\mkern\thinmuskip\times$}}%
+{\hbox{$\m@th\textstyle\times\mkern\thinmuskip$}}{}%
+ }{%
+ \discretionary{\hbox{$\m@th\scriptstyle\mkern\thinmuskip\times$}}%
+{\hbox{$\m@th\scriptstyle\times\mkern\thinmuskip$}}{}%
+ }{%
+ \discretionary{\hbox{$\m@th\scriptscriptstyle\mkern\thinmuskip\times$}}%
+{\hbox{$\m@th\scriptscriptstyle\times\mkern\thinmuskip$}}{}%
+ }%
+ \endgroup%
\penalty\binoppenalty%
}
\SetBreakableRel{\propto}
@@ -634,8 +769,7 @@
\SetBreakableRel{\leadsto}
\SetBreakableRel{\sqsubset}
\SetBreakableRel{\sqsupset}
-\@ifpackageloaded{amsfonts}% amsfonts
-{
+\@ifpackageloaded{amsfonts}{
\SetBreakableRel{\dashrightarrow} \SetBreakableRel{\dasharrow}
\SetBreakableRel{\dashleftarrow}
\SetBreakableRel{\vartriangleright}
@@ -644,8 +778,7 @@
\SetBreakableRel{\trianglelefteq}
\SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leadsto}
}{}
-\@ifpackageloaded{amssymb}% amssymb
-{
+\@ifpackageloaded{amssymb}{
\SetBreakableBin{\boxdot}
\SetBreakableBin{\boxplus}
\SetBreakableBin{\boxtimes}
@@ -824,16 +957,14 @@
\SetBreakableRel{\curvearrowright}
\SetBreakableRel{\backepsilon}
}{}
-\@ifpackageloaded{amstex}% amstex
-{
+\@ifpackageloaded{amstex}{
\SetBreakableRel{\vartriangleright} \SetBreakableRel{\rhd}
\SetBreakableRel{\vartriangleleft} \SetBreakableRel{\lhd}
\SetBreakableRel{\trianglerighteq} \SetBreakableRel{\unrhd}
\SetBreakableRel{\trianglelefteq} \SetBreakableRel{\unlhd}
\SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leadsto}
}{}
-\@ifpackageloaded{boisik}% boisik
-{
+\@ifpackageloaded{boisik}{
\SetMathOperator{\intup}
\SetOpenBracket{\binampersand}
\SetBreakableRel{\upharpoonright}
@@ -1233,8 +1364,7 @@
\SetBreakableRel{\rightarrowtriangle}
\SetBreakableRel{\leftrightarrowtriangle}
}{}
-\@ifpackageloaded{euler}% euler
-{
+\@ifpackageloaded{euler}{% euler
\SetBreakableRel{\uparrow}
\SetBreakableRel{\downarrow}
\SetBreakableRel{\updownarrow}
@@ -1244,8 +1374,7 @@
% \SetBreakableRel{\lhook}
% \SetBreakableRel{\rhook}
}{}
-\@ifpackageloaded{fourier}% fourier
-{
+\@ifpackageloaded{fourier}{
\SetMathOperator{\iint}
\SetMathOperator{\iiint}
\SetMathOperator{\oiint}
@@ -1274,7 +1403,6 @@
\SetBreakableRel{\curvearrowright}
\SetBreakableRel{\Downarrow}
}{}
-
\ifnum\@ifpackageloaded{lucbmath}{1}{%
\@ifpackageloaded{lucidabr}{1}{%
\@ifpackageloaded{lucmin}{1}{%
@@ -1482,25 +1610,38 @@
\SetBreakableRel{\curvearrowright}
\SetBreakableRel{\backepsilon}
\fi
-\@ifpackageloaded{mathbbol}% mathbbol
-{
+\@ifpackageloaded{mathbbol}{
\SetOpenBracket{\Langle}
\SetOpenBracket{\Lparen}
}{}
-\@ifpackageloaded{mdwmath}% mdwmath
-{
+\@ifpackageloaded{mathtools}{
+ \SetBreakableRel{\vcentcolon}
+ \SetBreakableRel{\dblcolon}
+ \SetBreakableRel{\coloneqq}
+ \SetBreakableRel{\Coloneqq}
+ \SetBreakableRel{\coloneq}
+ \SetBreakableRel{\Coloneq}
+ \SetBreakableRel{\eqqcolon}
+ \SetBreakableRel{\Eqqcolon}
+ \SetBreakableRel{\eqcolon}
+ \SetBreakableRel{\Eqcolon}
+ \SetBreakableRel{\colonapprox}
+ \SetBreakableRel{\Colonapprox}
+ \SetBreakableRel{\colonsim}
+ \SetBreakableRel{\Colonsim}
+}{}
+\@ifpackageloaded{mdwmath}{
\SetBreakableBin{\bitand}
\begingroup
- \catcode`\&\active \xdef&{\noexpand\brokenbin{\mathchar\number\mathcode`\&}}
+ \catcode`\&\active
+ \xdef&{\noexpand\brokenbin{\rmathbr@mathchar{`\&}}}
\endgroup
\AtBeginDocument{\mathcode`\&=32768 }
}{}
-\@ifpackageloaded{sbbm}% sbbm
-{
+\@ifpackageloaded{sbbm}{
\SetOpenBracket{\Lparen}
}{}
-\@ifpackageloaded{stmaryrd}% stmaryrd
-{
+\@ifpackageloaded{stmaryrd}{
\SetOpenBracket{\Lbag}
\SetOpenBracket{\llparenthesis}
\SetOpenBracket{\binampersand}
@@ -1599,8 +1740,7 @@
\SetBreakableRel{\longmapsfrom}
\SetBreakableRel{\Longmapsfrom}
}{}
-\@ifpackageloaded{wasysym}% wasysym
-{
+\@ifpackageloaded{wasysym}{
\SetMathOperator{\varint}
\SetMathOperator{\iint}
\SetMathOperator{\iiint}
@@ -1615,6 +1755,69 @@
\SetBreakableBin{\ocircle}
\SetBreakableRel{\logof}
}{}
+} % \rmathbr@patch@commands
+\ifrmathbr@patch@begindocument
+ \AtBeginDocument{\rmathbr@patch@commands}
+\else
+ \rmathbr@patch@commands
+\fi
+\AtBeginDocument{%
+ \mathcode`\==32768% "8000
+ \mathcode`\<=32768
+ \mathcode`\>=32768
+ \mathcode`\+=32768
+ \ifrmathbr@kv@brokenminus
+ \mathcode`\-=32768
+ \fi
+ \mathcode`\*=32768
+ \mathcode`\(=32768
+ \mathcode`\[=32768 %\]
+ \mathcode`\,=32768
+ \mathcode`\;=32768
+ \mathcode`\:=32768
+ \@ifundefined{resetMathstrut@}{}{% fix amsmath
+ \let\rmathbr@orig@resetMathstrut=\resetMathstrut@
+ \gdef\resetMathstrut@{%
+ \mathcode`\(=16424% "4028
+ \rmathbr@orig@resetMathstrut
+ \mathcode`\(=32768% "8000
+ }
+ \gdef\newmcodes@{%
+ \mathcode`\'=39
+ \mathcode`\*=42
+ \mathcode`\.=24890% "613A
+ \mathcode`\-=45
+ \mathcode`\/=47
+ \mathcode`\:=24634% "603A
+ \relax
+ }
+ }%
+}
+\@ifpackageloaded{bm}{%
+ \let\rmathbr@save@bm@general=\bm@general
+ \def\bm@general#1#2#3#4#5{
+ \rmathbr@save@bm@general{#1}{#2}{%
+ \let\nobr\copy
+ \def\brokenrel##1{\unvcopy{\brokenrel{##1}}}
+ \def\brokenbin##1{\unvcopy{\brokenbin{##1}}}
+ \def\brokeninner##1{\unvcopy{\brokeninner{##1}}}
+ \def\rmathbr@mathop##1{\unvcopy{\rmathbr@mathop{##1}}}
+ \begingroup\catcode`\_\active\lccode`\~`\_\lowercase{\endgroup\def~}##1{\unvcopy{_{##1}}}
+ \begingroup\catcode`\^\active\lccode`\~`\^\lowercase{\endgroup\def~}##1{\unvcopy{^{##1}}}
+ #3}{#4}{#5}
+ }
+ \PackageInfo{rmathbr}{Note: 'bm' package has been patched}{}%
+}{}
+\@ifpackageloaded{xy}{%
+ \ifnum\rmathbr@scriptsmode>0\relax
+ \let\rmathbr@save@xy=\xy
+ \let\rmathbr@save@endxy=\endxy
+ \def\xy{\begingroup\catcode`\^7\catcode`\_8\rmathbr@save@xy}
+ \def\endxy{\rmathbr@save@endxy\endgroup}
+ \PackageInfo{rmathbr}{Note: \string\xy and \string\endxy commands from 'xy'
+ package have been patched}{}%
+ \fi
+}{}
\endinput
%%
%% End of file `rmathbr.sty'.