%\iffalse meta-comment % !Mode:: "TeX:DTX:UK" % !DTXversion:: "2.5a" % % Copyright (C) 2008-2016 by Denis Ryabov % --------------------------------------------------------------------------- % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is Denis Ryabov. % % This work consists of the files rmathbr.dtx and rmathbr.ins % and the derived filebase rmathbr.sty. % % \fi % % \iffalse %<*driver> \ProvidesFile{rmathbr.dtx} % %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{rmathbr} %<*package> [2016/04/10 1.0.3 Repeating of math operator at the broken line and the new line in inline equations] % % %<*driver> \documentclass[a4paper]{ltxdoc} \usepackage[colorlinks, bookmarks, pdfstartview=FitH, pdfpagelayout=OneColumn, pdfauthor={Denis Ryabov}, pdftitle={rmathbr : Repeating of math operator at the broken line and the new line in inline equations}]{hyperref} \usepackage{enumitem} \usepackage{multicol} \usepackage{rmathbr} \setlist{nosep} \pagestyle{headings} \sloppy \clubpenalty=10000 \widowpenalty=10000 \begin{document} \DocInput{rmathbr.dtx} \end{document} % % \fi % % \CheckSum{3299} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % % \providecommand*{\url}{\texttt} % \GetFileInfo{rmathbr.dtx} % \title{The \textsf{rmathbr} package} % \author{Denis Ryabov \\ \url{dryabov@yandex.ru}} % \date{\fileversion~from \filedate} % % \maketitle % % \tableofcontents % % \section{Introduction} % % Repeating of math operator at the broken line and the new line in inline % equations is used in Cyrillic mathematical typography (Russian for example), % but unfortunately \LaTeX{} doesn't provide such an option. There was an attempt % to do it many years ago [see M.I.~Grinchuk ``TeX and Russian Traditions of % Typesetting'', TUGboat 17(4) (1996) 385], but there was no ready to use package. % % This package extends ideas described in ``TeX and Russian Traditions of % Typesetting'' and supports most of \LaTeX{} mathematical packages (some known % issues are listed in ``Known issues'' section below). % % % \section{Usage} % % Just include the package using \verb|\usepackage{rmathbr}| command. % % \begin{multicols}{5} % \noindent $(a+b)^2=a^2+2ab+b^2$, $a^2-b^2=(a+b)\*(a-b)$, % $a^3\pm b^3=(a\pm b)\*(a^2\mp ab+b^2)$, $(1-x)^{-2}=1+2x+3x^2+\ldots$, % $\sin^2\alpha+\cos^2\alpha=1$, $\int x\sin ax\,dx=a^{-2}(\sin ax-ax\cos ax)$, % $t_1t_2\cos\theta=\vec t_1\cdot\vec t_2$, $x=12\cdott 3\cdott 10^3$. % \end{multicols} % % It's recommended to load \textsf{rmathbr} after other packages, because of \textsf{rmathbr} has % special support of many math-related packages: amsfonts, amssymb, amstex, % boisik, euler, eulervm, fourier, icomma, latexsym, lucbmath, lucidabr, lucmin, % lucmtime, luctime, mathbbol, mdwmath, program, sbbm, stmaryrd, wasysym. % % Please, submit any found bugs to \url{https://github.com/dryabov/rmathbr/issues}. % % \section{Options} % % The \textsf{rmathbr} package supports following options: % \begin{itemize} % \item \verb|mathactivechars| (default): assign mathactive (12) category to % \verb|^| and \verb|_| characters. % \item \verb|activechars|: assign active (13) category to \verb|^| and % \verb|_| characters. % \item \verb|noactivechars|: assign default categories to \verb|^| and % \verb|_| characters (7 and 8, correspondingly). % \end{itemize} % % In some cases it might be necessary to change default option for compatibility % with other packages. % % % \section{Macros} % % \DescribeMacro{\*} % % Macro \verb|\*| is used to mark multiplication point that is invisible and % changed to $\times$ at break only. E.g. \verb|(a+b)\*(a-b)|. % % \DescribeMacro{\cdott} % % This command displays \verb|\cdot| ($\cdot$) that is changed to % \verb|\times| ($\times$) at break. % % \DescribeMacro{\nobr} % % This command is used to prevent break expression on the following math % operator. E.g. \verb|a\nobr-b|. % % \DescribeMacro{\SetBreakableBin} % % Declares breakable binary operator, e.g. \verb|\SetBreakableBin{\MyPlus}|. % % \DescribeMacro{\SetBreakableRel} % % Declares breakable relation operator, e.g. \verb|\SetBreakableRel{\MyEqual}|. % % \DescribeMacro{\SetBreakableInner} % % Declares breakable ``inner'' expression, e.g. \verb|\SetBreakableInner{\ldots}|. % % \DescribeMacro{\SetOpenBracket} % % Declares opening bracket (\textsf{rmathbr} disables break directly after brackets), % e.g. \verb|\SetOpenBracket{\MyOpenBracket}|. % % \DescribeMacro{\SetMathOperator} % % Declares math operator (\textsf{rmathbr} disables break directly after operators), % e.g. \verb|\SetMathOperator{\MySum}|. % % \DescribeMacro{\SetPunctuation} % % Declares punctuation command (\textsf{rmathbr} disables break directly after punctuation), % e.g. \verb|\SetPunctuation{\MyColon}|. % % % \section{Known issues} % \begin{itemize} % \item 'xy' package: should be loaded after 'rmathbr' to work properly % \item 'breqn' package: cannot work together with 'rmathbr' % \end{itemize} % % \section{Changelog} % % \subsection*{1.0.3 (10-April-2016)} % \begin{itemize} % \item fix issue with sub-/superscripts in \verb|\Biggl|, \verb|\biggl|, % \verb|\Bigl|, \verb|\bigl| % \end{itemize} % \subsection*{1.0.2 (23-June-2015)} % \begin{itemize} % \item fix issue with expanding of math operators % \end{itemize} % \subsection*{1.0.1 (14-June-2015)} % \begin{itemize} % \item fix \verb|\cdott|-related issues (thanks to Bruno Le Floch) % \item fix some \verb|\SetBreakableRel| and \verb|\SetBreakableBin| declarations % \item fix mathematical operators with \verb|\limits| or \verb|\nolimits| % \end{itemize} % \subsection*{1.0 (02-June-2015)} % \begin{itemize} % \item fix break after math operators (\verb|\sum|, \verb|\int|, etc.) % \item add documentation % \end{itemize} % \subsection*{0.99 (15-November-2010)} % \begin{itemize} % \item don't hyphenate trailing mathsign (e.g.\ in \verb|$2+2=$|) % \item don't change redefined symbols (\verb|\le|, \verb|\ge|, \verb|\to|, etc.) % \end{itemize} % \subsection*{0.98 (31-January-2010)} % \begin{itemize} % \item fix hyphenation on~\verb|:=| % \item correct work with 'icomma' package and option 'icomma' of 'eulervm' package % \item correct work with 'program' package % \item symbols have been added from boisik, euler, fourier, lucbmath, lucidabr, % lucmin, lucmtime, luctime, mathbbol, mdwmath, sbbm, stmaryrd and wasysym packages. % \item remove shrinking of space in math (breaked url package) % \item don't hyphenate after punctuation ('\verb|,|', '\verb|;|', '\verb|\colon|' etc.) % \item create broken commands as robust ones % \item some fixes of redeclaring of AMS commands % \item commented hyphenation on \verb|\ldots| and \verb|\cdots|, as \TeX doesn't break here % \end{itemize} % \subsection*{0.97 (08-October-2009)} % \begin{itemize} % \item fix problem with operators like '\verb|+^\leq|' % \end{itemize} % \subsection*{0.96 (29-September-2009)} % \begin{itemize} % \item fix problem with '\verb|-|' in AMS's \verb|\DeclareMathOperator| % \item fix problem with \verb|\ldots| in text mode % \end{itemize} % \subsection*{0.95 (28-September-2009)} % \begin{itemize} % \item fix problem with sub/sup-scripts after relations % \item fix hyphenation on \verb|\ldots| % \item AMS/Lucida left brackets (\verb|\lvert|, \verb|\lVert|, \verb|\ulcorner|, \verb|\llcorner|) support % \item mathbbol.sty left bracket (\verb|\Lbrack|) support % \item huge code refactoring % \end{itemize} % \subsection*{0.91 (21-September-2009)} % \begin{itemize} % \item fix problem with problem with space after brackets % \end{itemize} % \subsection*{0.90 (20-September-2009)} % \begin{itemize} % \item first public release % \end{itemize} % % % \StopEventually{} % % \section{Code} % % \iffalse %<*package> % \fi % % \subsection*{Initialization} % % \begin{macrocode} \RequirePackage{ifetex} \RequirePackage{mathstyle} % \end{macrocode} % \begin{macrocode} \@ifpackageloaded{breqn}% { \PackageError{rmathbr}{'rmathbr' package cannot be used together with 'breqn' package!}{}% }{} % \end{macrocode} % \begin{macrocode} \@ifpackageloaded{xy}% { \PackageError{rmathbr}{'rmathbr' package should be loaded before 'xy' package!}{}% }{} % \end{macrocode} % % \subsection*{Interface} % % \begin{macro}{\nobr} % Makes next symbol nonbreakable. % \begin{macrocode} \def\nobr{\penalty\relpenalty} % \end{macrocode} % \end{macro} % % % \begin{macro}{\SetBreakableBin} % Makes breakable binary operation. % \begin{macrocode} \def\SetBreakableBin#1{\rmathbr@setbreakable{#1}{\brokenbin}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\SetBreakableRel} % Makes breakable relation sign. % \begin{macrocode} \def\SetBreakableRel#1{\rmathbr@setbreakable{#1}{\brokenrel}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\SetBreakableInner} % Makes breakable inner (like \verb|\ldots|). % \begin{macrocode} \def\SetBreakableInner#1{\rmathbr@setbreakable{#1}{\brokeninner}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\SetOpenBracket} % Disables breaks after open bracket. % \begin{macrocode} \def\SetOpenBracket#1{\rmathbr@nobrafter{#1}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\SetMathOperator} % Disables breaks after math operator. % \begin{macrocode} \def\SetMathOperator#1{\rmathbr@setbreakable{#1}{\rmathbr@mathop}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\SetPunctuation} % Disables breaks after punctuation sign. % \begin{macrocode} \def\SetPunctuation#1{\rmathbr@nobrafter{#1}} % \end{macrocode} % \end{macro} % % \noindent Makes argument as breakable binary operation. % \begin{macrocode} \DeclareRobustCommand{\brokenbin}[1]{\rmathbr@brokenbin{#1}} % \end{macrocode} % Makes argument as breakable relation sign. % \begin{macrocode} \DeclareRobustCommand{\brokenrel}[1]{\rmathbr@brokenrel{#1}} % \end{macrocode} % Makes argument as breakable inner. % \begin{macrocode} \DeclareRobustCommand{\brokeninner}[1]{\rmathbr@brokeninner{#1}} % \end{macrocode} % % \subsection*{Implementation} % % Save default penalty to \verb|\exhyphenpenalty| (as \verb|\exhyphenpenalty| will be actual penalty for math breaks). % \begin{macrocode} \exhyphenpenalty=\relpenalty % \end{macrocode} % Disable default breaks. % \begin{macrocode} \relpenalty=13131 \binoppenalty=14141 % \end{macrocode} % First symbol in equation is nonbreakable. % \begin{macrocode} \expandafter\everymath\expandafter{\the\everymath\nobr } % \end{macrocode} % Setup sub- and superscripts. % \begin{macrocode} \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 % \end{macrocode} % % \begin{macro}{\rmathbr@superscript} % \begin{macrocode} \def\rmathbr@superscript#1{\rmathbr@superscript@text{{#1}}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@subscript} % \begin{macrocode} \def\rmathbr@subscript#1{\rmathbr@subscript@text{{#1}}} % \end{macrocode} % \end{macro} % % \begin{macrocode} \begingroup \catcode`\^\active\gdef^{\rmathbr@superscript} \catcode`\_\active\gdef_{\rmathbr@subscript} \endgroup % \end{macrocode} % Save existing commands. % \begin{macrocode} \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}}} \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} }} % \end{macrocode} % Process options. % \begin{macrocode} \DeclareOption{mathactivechars}% { \catcode`\^=12\catcode`\_=12 } \DeclareOption{activechars}% { \catcode`\^\active\catcode`\_\active } \DeclareOption{noactivechars}% { \catcode`\^=7\catcode`\_=8 } \ExecuteOptions{mathactivechars}% \ProcessOptions % \end{macrocode} % Basic math. % \begin{macrocode} \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}} \fi \endgroup \begingroup \catcode`\-\active \ifnum\mathcode`\-<32768 \xdef-{\noexpand\brokenbin{\mathchar\number\mathcode`\-}} \else \gdef-{\brokenbin{\mathchar8704}} \fi \endgroup \begingroup \catcode`\*\active \ifnum\mathcode`\*<32768 \xdef*{\noexpand\brokenbin{\mathchar\number\mathcode`\*}} \else \gdef*{\brokenbin{\mathchar8707}} \fi \endgroup \begingroup \ifnum\mathcode`\<<32768 \catcode`\<\active \xdef<{\noexpand\brokenbin{\mathchar\number\mathcode`\<}} \else \catcode`\<\active \gdef<{\brokenbin{\mathchar12604}} \fi \endgroup \begingroup \catcode`\>\active \ifnum\mathcode`\><32768 \xdef>{\noexpand\brokenbin{\mathchar\number\mathcode`\>}} \else \gdef>{\brokenbin{\mathchar12606}} \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% } \begingroup \catcode`\:\active \gdef:{\futurelet\rmathbr@let@token\rmathbr@colontest} \endgroup % \end{macrocode} % % \begin{macro}{\rmathbr@colontest} % Check for \verb|:=|. % \begin{macrocode} \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`\:}} \else \def\rmathbr@letsign#1{\brokenrel{\mathchar12346\mathchar12349}} \def\rmathbr@colon{\brokenrel{\mathchar12346}} \fi % \end{macrocode} % \end{macro} % % Check for 'icomma' package and 'eulervm' package with 'icomma' option. % \begin{macrocode} \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 } \else \gdef,{\mathpunct\mathchar24891\nobr } \fi \else \expandafter\gdef\expandafter\domathcomma\expandafter{\domathcomma\nobr} \fi } \endgroup % \end{macrocode} % % Check for 'program' package. % \begin{macrocode} \begingroup \catcode`\;\active \@ifpackageloaded{program}% { \gdef;{\ifmmode\semicolon\;\nobr\else\@semicolon\fi} }{ \ifnum\mathcode`\;<32768 \xdef;{\mathpunct\mathchar\number\mathcode`\;\noexpand\nobr } \else \gdef;{\mathpunct\mathchar24635\nobr } \fi } \endgroup % \end{macrocode} % % \begin{macro}{\rmathbr@ReDeclareRobustCommand} % \begin{macrocode} \def\rmathbr@ReDeclareRobustCommand#1#2% Command without arguments { \begingroup \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 \else \global\expandafter\let\csname\var@orig@I\expandafter\endcsname\csname\var@Ispace\endcsname \fi \fi \expandafter\gdef\csname\var@Ispace\endcsname{#2}% no arguments \xdef#1{\noexpand\protect\expandafter\noexpand\csname\var@Ispace\endcsname} \fi \endgroup% } % \end{macrocode} % \end{macro} % % \begin{macro}{\rmathbr@ReDeclareRobustCommandI} % \begin{macrocode} \def\rmathbr@ReDeclareRobustCommandI#1#2% Command with one argument { \begingroup \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 \else \global\expandafter\let\csname\var@orig@I\expandafter\endcsname\csname\var@Ispace\endcsname \fi \fi \expandafter\gdef\csname\var@Ispace\endcsname##1{#2}% one argument \xdef#1{\noexpand\protect\expandafter\noexpand\csname\var@Ispace\endcsname} \fi \endgroup% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@setbrokens} % \begin{macrocode} \def\rmathbr@setbrokens% { \rmathbr@ReDeclareRobustCommandI{\brokenbin}{\rmathbr@brokenbin{##1}} \rmathbr@ReDeclareRobustCommandI{\brokenrel}{\rmathbr@brokenrel{##1}} \rmathbr@ReDeclareRobustCommandI{\brokeninner}{\rmathbr@brokeninner{##1}}% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@unsetbrokens} % \begin{macrocode} \def\rmathbr@unsetbrokens% { \def\brokenbin##1{##1} \def\brokenrel##1{##1} \def\brokeninner##1{##1}% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@brokenbin} % \begin{macrocode} \def\rmathbr@brokenbin#1% { \relax \def\rmathbr@arg{#1} \def\rmathbr@this{\rmathbr@brokenbin} \def\rmathbr@output{\rmathbr@@brokenbin} \futurelet\rmathbr@let@token\rmathbr@brokenop% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@brokenrel} % \begin{macrocode} \def\rmathbr@brokenrel#1% { \relax \def\rmathbr@arg{#1} \def\rmathbr@this{\rmathbr@brokenrel} \def\rmathbr@output{\rmathbr@@brokenrel} \futurelet\rmathbr@let@token\rmathbr@brokenop% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@brokeninner} % \begin{macrocode} \def\rmathbr@brokeninner#1% { \relax \def\rmathbr@arg{#1} \def\rmathbr@this{\rmathbr@brokeninner} \def\rmathbr@output{\rmathbr@@brokeninner} \futurelet\rmathbr@let@token\rmathbr@brokenop% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@mathop} % \begin{macrocode} \def\rmathbr@mathop#1% { \relax \def\rmathbr@arg{#1} \def\rmathbr@this{\rmathbr@mathop} \def\rmathbr@output{\rmathbr@@mathop} \futurelet\rmathbr@let@token\rmathbr@brokenop% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@@brokenbin} % \begin{macrocode} \def\rmathbr@@brokenbin#1% { \ifnum\lastpenalty=\relpenalty \mathbin{#1} \else \mathbin{#1} \ifx$\rmathbr@let@token \else \rmathbr@selector{#1} \fi \fi \rmathbr@setbrokens \penalty\binoppenalty % } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@@brokenrel} % \begin{macrocode} \def\rmathbr@@brokenrel#1% { \ifnum\lastpenalty=\relpenalty \mathrel{#1} \else \mathrel{#1} \ifx$\rmathbr@let@token \else \rmathbr@selector{#1} \fi \fi \rmathbr@setbrokens \penalty\relpenalty % } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@@brokeninner} % \begin{macrocode} \def\rmathbr@@brokeninner#1% { \ifnum\lastpenalty=\relpenalty \mathinner{#1} \else \mathinner{#1} \ifx$\rmathbr@let@token \else \rmathbr@selector{#1} \fi \fi \rmathbr@setbrokens \penalty\relpenalty % } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@@mathop} % \begin{macrocode} \def\rmathbr@@mathop#1% { \rmathbr@setbrokens #1\nobr % } % \end{macrocode} % \end{macro} % % % \begin{macro}{\rmathbr@selector} % \begin{macrocode} \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$}}{}}% } % \end{macrocode} % \end{macro} % \begin{macrocode} \begingroup\catcode`\_=12\catcode`\^=12 % \end{macrocode} % % \begin{macro}{\rmathbr@brokenop} % \begin{macrocode} \gdef\rmathbr@brokenop% { \ifmmode \rmathbr@unsetbrokens \ifx\rmathbr@subscript@macro\rmathbr@let@token \let\@command=\rmathbr@brokenglue \else\ifx_\rmathbr@let@token \let\@command=\rmathbr@brokenglue \else\ifx\rmathbr@superscript@macro\rmathbr@let@token \let\@command=\rmathbr@brokenglue \else\ifx^\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\relax\rmathbr@let@token \let\@command=\rmathbr@brokenskip \else \let\@command=\rmathbr@output \fi\fi\fi\fi\fi\fi\fi \else \let\@command=\relax \fi \expandafter\@command\expandafter{\rmathbr@arg}% } % \end{macrocode} % \end{macro} % \begin{macrocode} \endgroup % \end{macrocode} % % \begin{macro}{\rmathbr@brokenglue} % \begin{macrocode} \def\rmathbr@brokenglue#1#2#3% { \def\rmathbr@temp{#1#2{#3}} \expandafter\rmathbr@this\expandafter{\rmathbr@temp}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\rmathbr@brokenskip} % \begin{macrocode} \def\rmathbr@brokenskip#1#2% { \def\rmathbr@temp{#1#2} \expandafter\rmathbr@this\expandafter{\rmathbr@temp}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\rmathbr@setbreakable} % \begin{macrocode} \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% } % \end{macrocode} % \end{macro} % % \begin{macro}{\rmathbr@nobrafter} % \begin{macrocode} \def\rmathbr@nobrafter#1% { \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{\csname\rmathbr@orig\endcsname\nobr} \fi \fi \endgroup% } % \end{macrocode} % \end{macro} % % \subsection*{Redeclaration of math signs} % % Redeclare \verb|\not|. % \begin{macrocode} \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} \else \expandafter\brokenrel\expandafter{\expandafter\rmathbr@orig@not\csname\rmathbr@orig\endcsname} \fi \endgroup% } % \end{macrocode} % Open brackets. % \begin{macrocode} \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} \SetOpenBracket{\lceil} \SetOpenBracket{\lfloor} \SetOpenBracket{\lgroup} \SetOpenBracket{\lvert} \SetOpenBracket{\lVert} \SetOpenBracket{\ulcorner} \SetOpenBracket{\llcorner} \SetOpenBracket{\Lbrack} % \end{macrocode} % Math operators. % \begin{macrocode} \SetMathOperator{\coprod} \SetMathOperator{\bigvee} \SetMathOperator{\bigwedge} \SetMathOperator{\biguplus} \SetMathOperator{\bigcap} \SetMathOperator{\bigcup} \SetMathOperator{\int} \SetMathOperator{\prod} \SetMathOperator{\sum} \SetMathOperator{\bigotimes} \SetMathOperator{\bigoplus} \SetMathOperator{\bigodot} \SetMathOperator{\oint} \SetMathOperator{\bigsqcup} \SetMathOperator{\smallint} % \end{macrocode} % Punctuations. % \begin{macrocode} \SetPunctuation{\ldotp} \SetPunctuation{\cdotp} \SetPunctuation{\colon} \SetPunctuation{\period} % \end{macrocode} % % Binary Operations. % \begin{macrocode} \SetBreakableBin{\triangleleft} \SetBreakableBin{\triangleright} \SetBreakableBin{\bigtriangleup} \SetBreakableBin{\bigtriangledown} \SetBreakableBin{\wedge} \SetBreakableBin{\land} \SetBreakableBin{\vee} \SetBreakableBin{\lor} \SetBreakableBin{\cap} \SetBreakableBin{\cup} \SetBreakableBin{\ddagger} \SetBreakableBin{\dagger} \SetBreakableBin{\sqcap} \SetBreakableBin{\sqcup} \SetBreakableBin{\uplus} \SetBreakableBin{\amalg} \SetBreakableBin{\diamond} \SetBreakableBin{\bullet} \SetBreakableBin{\wr} \SetBreakableBin{\div} \SetBreakableBin{\odot} \SetBreakableBin{\oslash} \SetBreakableBin{\otimes} \SetBreakableBin{\ominus} \SetBreakableBin{\oplus} \SetBreakableBin{\mp} \SetBreakableBin{\pm} \SetBreakableBin{\circ} \SetBreakableBin{\bigcirc} \SetBreakableBin{\setminus} \SetBreakableBin{\ast} \SetBreakableBin{\star} \SetBreakableBin{\times} \SetBreakableBin{\cdot} % \end{macrocode} % % \begin{macro}{\cdott} % \verb|\cdott| is \verb|\cdot| that is changed to \verb|\times| at break point. % \begin{macrocode} \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% } } \def\cdott{% \ensuremath \ifetex \ifinner% \ifnum\currentgrouptype=15\relax \rmathbr@cdott \else \cdot \fi \else \cdot \fi \else \rmathbr@cdott \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\*} % \begin{macrocode} \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$}}{}% }% \penalty\binoppenalty% } % \end{macrocode} % \end{macro} % % Relations. % \begin{macrocode} \SetBreakableRel{\propto} \SetBreakableRel{\sqsubseteq} \SetBreakableRel{\sqsupseteq} \SetBreakableRel{\parallel} \SetBreakableRel{\mid} \SetBreakableRel{\dashv} \SetBreakableRel{\vdash} \SetBreakableRel{\leq} \SetBreakableRel{\le} \SetBreakableRel{\geq} \SetBreakableRel{\ge} \SetBreakableRel{\succ} \SetBreakableRel{\prec} \SetBreakableRel{\approx} \SetBreakableRel{\succeq} \SetBreakableRel{\preceq} \SetBreakableRel{\supset} \SetBreakableRel{\subset} \SetBreakableRel{\supseteq} \SetBreakableRel{\subseteq} \SetBreakableRel{\in} \SetBreakableRel{\ni} \SetBreakableRel{\owns} \SetBreakableRel{\gg} \SetBreakableRel{\ll} \SetBreakableRel{\sim} \SetBreakableRel{\simeq} \SetBreakableRel{\perp} \SetBreakableRel{\equiv} \SetBreakableRel{\asymp} \SetBreakableRel{\smile} \SetBreakableRel{\frown} \SetBreakableRel{\models} \SetBreakableRel{\cong} \SetBreakableRel{\notin} \SetBreakableRel{\doteq} \SetBreakableRel{\bowtie} \SetBreakableRel{\neq} % Works well without \SetBreakableRel \SetBreakableRel{\ne} % Works well without \SetBreakableRel % \end{macrocode} % Arrows. % \begin{macrocode} \SetBreakableRel{\nearrow} \SetBreakableRel{\searrow} \SetBreakableRel{\nwarrow} \SetBreakableRel{\swarrow} \SetBreakableRel{\Leftrightarrow} \SetBreakableRel{\Leftarrow} \SetBreakableRel{\Rightarrow} \SetBreakableRel{\leftrightarrow} \SetBreakableRel{\leftarrow} \SetBreakableRel{\gets} \SetBreakableRel{\rightarrow} \SetBreakableRel{\to} \SetBreakableRel{\leftharpoonup} \SetBreakableRel{\leftharpoondown} \SetBreakableRel{\rightharpoonup} \SetBreakableRel{\rightharpoondown} \SetBreakableRel{\longleftarrow} \SetBreakableRel{\Longleftarrow} \SetBreakableRel{\longrightarrow} \SetBreakableRel{\Longrightarrow} \SetBreakableRel{\longleftrightarrow} \SetBreakableRel{\Longleftrightarrow} \SetBreakableRel{\mapsto} \SetBreakableRel{\longmapsto} \SetBreakableRel{\hookleftarrow} \SetBreakableRel{\hookrightarrow} \SetBreakableRel{\rightleftharpoons} % \end{macrocode} % From latexsym. % \begin{macrocode} \SetBreakableBin{\lhd} \SetBreakableBin{\unlhd} \SetBreakableBin{\rhd} \SetBreakableBin{\unrhd} \SetBreakableRel{\Join} \SetBreakableRel{\leadsto} \SetBreakableRel{\sqsubset} \SetBreakableRel{\sqsupset} % \end{macrocode} % amsfonts % \begin{macrocode} \@ifpackageloaded{amsfonts}% amsfonts { \SetBreakableRel{\dashrightarrow} \SetBreakableRel{\dasharrow} \SetBreakableRel{\dashleftarrow} \SetBreakableRel{\vartriangleright} \SetBreakableRel{\vartriangleleft} \SetBreakableRel{\trianglerighteq} \SetBreakableRel{\trianglelefteq} \SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leadsto} }{} % \end{macrocode} % amssymb % \begin{macrocode} \@ifpackageloaded{amssymb}% amssymb { \SetBreakableBin{\boxdot} \SetBreakableBin{\boxplus} \SetBreakableBin{\boxtimes} \SetBreakableBin{\centerdot} \SetBreakableBin{\boxminus} \SetBreakableBin{\veebar} \SetBreakableBin{\barwedge} \SetBreakableBin{\doublebarwedge} \SetBreakableBin{\Cup} \SetBreakableBin{\doublecup} \SetBreakableBin{\Cap} \SetBreakableBin{\doublecap} \SetBreakableBin{\curlywedge} \SetBreakableBin{\curlyvee} \SetBreakableBin{\leftthreetimes} \SetBreakableBin{\rightthreetimes} \SetBreakableBin{\dotplus} \SetBreakableBin{\intercal} \SetBreakableBin{\circledcirc} \SetBreakableBin{\circledast} \SetBreakableBin{\circleddash} \SetBreakableBin{\divideontimes} \SetBreakableBin{\lessdot} \SetBreakableBin{\gtrdot} \SetBreakableBin{\ltimes} \SetBreakableBin{\rtimes} \SetBreakableBin{\smallsetminus} \SetBreakableRel{\circlearrowright} \SetBreakableRel{\circlearrowleft} \SetBreakableRel{\leftrightharpoons} \SetBreakableRel{\Vdash} \SetBreakableRel{\Vvdash} \SetBreakableRel{\vDash} \SetBreakableRel{\twoheadrightarrow} \SetBreakableRel{\twoheadleftarrow} \SetBreakableRel{\leftleftarrows} \SetBreakableRel{\rightrightarrows} \SetBreakableRel{\upuparrows} \SetBreakableRel{\downdownarrows} \SetBreakableRel{\upharpoonright} \SetBreakableRel{\restriction} \SetBreakableRel{\downharpoonright} \SetBreakableRel{\upharpoonleft} \SetBreakableRel{\downharpoonleft} \SetBreakableRel{\rightarrowtail} \SetBreakableRel{\leftarrowtail} \SetBreakableRel{\leftrightarrows} \SetBreakableRel{\rightleftarrows} \SetBreakableRel{\Lsh} \SetBreakableRel{\Rsh} \SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leftrightsquigarrow} \SetBreakableRel{\looparrowleft} \SetBreakableRel{\looparrowright} \SetBreakableRel{\circeq} \SetBreakableRel{\succsim} \SetBreakableRel{\gtrsim} \SetBreakableRel{\gtrapprox} \SetBreakableRel{\multimap} \SetBreakableRel{\therefore} \SetBreakableRel{\because} \SetBreakableRel{\doteqdot} \SetBreakableRel{\Doteq} \SetBreakableRel{\triangleq} \SetBreakableRel{\precsim} \SetBreakableRel{\lesssim} \SetBreakableRel{\lessapprox} \SetBreakableRel{\eqslantless} \SetBreakableRel{\eqslantgtr} \SetBreakableRel{\curlyeqprec} \SetBreakableRel{\curlyeqsucc} \SetBreakableRel{\preccurlyeq} \SetBreakableRel{\leqq} \SetBreakableRel{\leqslant} \SetBreakableRel{\lessgtr} \SetBreakableRel{\risingdotseq} \SetBreakableRel{\fallingdotseq} \SetBreakableRel{\succcurlyeq} \SetBreakableRel{\geqq} \SetBreakableRel{\geqslant} \SetBreakableRel{\gtrless} \SetBreakableRel{\vartriangleright} \SetBreakableRel{\vartriangleleft} \SetBreakableRel{\trianglerighteq} \SetBreakableRel{\trianglelefteq} \SetBreakableRel{\between} \SetBreakableRel{\blacktriangleright} \SetBreakableRel{\blacktriangleleft} \SetBreakableRel{\vartriangle} \SetBreakableRel{\eqcirc} \SetBreakableRel{\lesseqgtr} \SetBreakableRel{\gtreqless} \SetBreakableRel{\lesseqqgtr} \SetBreakableRel{\gtreqqless} \SetBreakableRel{\Rrightarrow} \SetBreakableRel{\Lleftarrow} \SetBreakableRel{\varpropto} \SetBreakableRel{\smallsmile} \SetBreakableRel{\smallfrown} \SetBreakableRel{\Subset} \SetBreakableRel{\Supset} \SetBreakableRel{\subseteqq} \SetBreakableRel{\supseteqq} \SetBreakableRel{\bumpeq} \SetBreakableRel{\Bumpeq} \SetBreakableRel{\lll} \SetBreakableRel{\llless} \SetBreakableRel{\ggg} \SetBreakableRel{\gggtr} \SetBreakableRel{\pitchfork} \SetBreakableRel{\backsim} \SetBreakableRel{\backsimeq} \SetBreakableRel{\lvertneqq} \SetBreakableRel{\gvertneqq} \SetBreakableRel{\nleq} \SetBreakableRel{\ngeq} \SetBreakableRel{\nless} \SetBreakableRel{\ngtr} \SetBreakableRel{\nprec} \SetBreakableRel{\nsucc} \SetBreakableRel{\lneqq} \SetBreakableRel{\gneqq} \SetBreakableRel{\nleqslant} \SetBreakableRel{\ngeqslant} \SetBreakableRel{\lneq} \SetBreakableRel{\gneq} \SetBreakableRel{\npreceq} \SetBreakableRel{\nsucceq} \SetBreakableRel{\precnsim} \SetBreakableRel{\succnsim} \SetBreakableRel{\lnsim} \SetBreakableRel{\gnsim} \SetBreakableRel{\nleqq} \SetBreakableRel{\ngeqq} \SetBreakableRel{\precneqq} \SetBreakableRel{\succneqq} \SetBreakableRel{\precnapprox} \SetBreakableRel{\succnapprox} \SetBreakableRel{\lnapprox} \SetBreakableRel{\gnapprox} \SetBreakableRel{\nsim} \SetBreakableRel{\ncong} \SetBreakableRel{\varsubsetneq} \SetBreakableRel{\varsupsetneq} \SetBreakableRel{\nsubseteqq} \SetBreakableRel{\nsupseteqq} \SetBreakableRel{\subsetneqq} \SetBreakableRel{\supsetneqq} \SetBreakableRel{\varsubsetneqq} \SetBreakableRel{\varsupsetneqq} \SetBreakableRel{\subsetneq} \SetBreakableRel{\supsetneq} \SetBreakableRel{\nsubseteq} \SetBreakableRel{\nsupseteq} \SetBreakableRel{\nparallel} \SetBreakableRel{\nmid} \SetBreakableRel{\nshortmid} \SetBreakableRel{\nshortparallel} \SetBreakableRel{\nvdash} \SetBreakableRel{\nVdash} \SetBreakableRel{\nvDash} \SetBreakableRel{\nVDash} \SetBreakableRel{\ntrianglerighteq} \SetBreakableRel{\ntrianglelefteq} \SetBreakableRel{\ntriangleleft} \SetBreakableRel{\ntriangleright} \SetBreakableRel{\nleftarrow} \SetBreakableRel{\nrightarrow} \SetBreakableRel{\nLeftarrow} \SetBreakableRel{\nRightarrow} \SetBreakableRel{\nLeftrightarrow} \SetBreakableRel{\nleftrightarrow} \SetBreakableRel{\eqsim} \SetBreakableRel{\shortmid} \SetBreakableRel{\shortparallel} \SetBreakableRel{\thicksim} \SetBreakableRel{\thickapprox} \SetBreakableRel{\approxeq} \SetBreakableRel{\succapprox} \SetBreakableRel{\precapprox} \SetBreakableRel{\curvearrowleft} \SetBreakableRel{\curvearrowright} \SetBreakableRel{\backepsilon} }{} % \end{macrocode} % amstex % \begin{macrocode} \@ifpackageloaded{amstex}% amstex { \SetBreakableRel{\vartriangleright} \SetBreakableRel{\rhd} \SetBreakableRel{\vartriangleleft} \SetBreakableRel{\lhd} \SetBreakableRel{\trianglerighteq} \SetBreakableRel{\unrhd} \SetBreakableRel{\trianglelefteq} \SetBreakableRel{\unlhd} \SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leadsto} }{} % \end{macrocode} % boisik % \begin{macrocode} \@ifpackageloaded{boisik}% boisik { \SetMathOperator{\intup} \SetOpenBracket{\binampersand} \SetBreakableRel{\upharpoonright} \SetBreakableRel{\downharpoonright} \SetBreakableRel{\upharpoonleft} \SetBreakableRel{\downharpoonleft} \SetBreakableRel{\leftrightarrows} \SetBreakableRel{\rightleftarrows} \SetBreakableRel{\leftrightharpoons} \SetBreakableRel{\leftleftarrows} \SetBreakableRel{\rightrightarrows} \SetBreakableRel{\upuparrows} \SetBreakableRel{\downdownarrows} \SetBreakableRel{\twoheadrightarrow} \SetBreakableRel{\twoheadleftarrow} \SetBreakableRel{\rightarrowtail} \SetBreakableRel{\leftarrowtail} \SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leftrightsquigarrow} \SetBreakableRel{\Lsh} \SetBreakableRel{\Rsh} \SetBreakableRel{\looparrowleft} \SetBreakableRel{\looparrowright} \SetBreakableRel{\circlearrowright} \SetBreakableRel{\circlearrowleft} \SetBreakableRel{\curvearrowleft} \SetBreakableRel{\curvearrowright} \SetBreakableRel{\nleftarrow} \SetBreakableRel{\nrightarrow} \SetBreakableRel{\nleftrightarrow} \SetBreakableRel{\nLeftarrow} \SetBreakableRel{\nRightarrow} \SetBreakableRel{\nLeftrightarrow} \SetBreakableRel{\Lleftarrow} \SetBreakableRel{\Rrightarrow} \SetBreakableRel{\nLeftrightarroW} % \SetBreakableRel{\lhook} % \SetBreakableRel{\rhook} \SetBreakableRel{\multimap} \SetBreakableRel{\multimapdot} \SetBreakableRel{\therefore} \SetBreakableRel{\because} \SetBreakableRel{\between} \SetBreakableRel{\Vdash} \SetBreakableRel{\Vvdash} \SetBreakableRel{\VDash} \SetBreakableRel{\vDash} \SetBreakableRel{\smallsmile} \SetBreakableRel{\smallfrown} \SetBreakableRel{\shortmid} \SetBreakableRel{\shortparallel} \SetBreakableRel{\thickapprox} \SetBreakableBin{\divideontimes} \SetBreakableBin{\lessdot} \SetBreakableBin{\gtrdot} \SetBreakableRel{\bumpeq} \SetBreakableRel{\Bumpeq} \SetBreakableRel{\leqslant} \SetBreakableRel{\geqslant} \SetBreakableRel{\eqslantless} \SetBreakableRel{\eqslantgtr} \SetBreakableRel{\curlyeqprec} \SetBreakableRel{\curlyeqsucc} \SetBreakableRel{\preccurlyeq} \SetBreakableRel{\succcurlyeq} \SetBreakableRel{\thicksim} \SetBreakableRel{\backsim} \SetBreakableRel{\eqsim} \SetBreakableRel{\backsimeq} \SetBreakableBin{\ltimes} \SetBreakableBin{\rtimes} \SetBreakableRel{\lll} \SetBreakableRel{\llless} \SetBreakableRel{\ggg} \SetBreakableRel{\gggtr} \SetBreakableRel{\triangleq} \SetBreakableRel{\circeq} \SetBreakableRel{\eqcirc} \SetBreakableRel{\doteqdot} \SetBreakableRel{\Doteq} \SetBreakableRel{\risingdotseq} \SetBreakableRel{\fallingdotseq} \SetBreakableRel{\varpropto} \SetBreakableRel{\vartriangleright} \SetBreakableRel{\vartriangleleft} \SetBreakableRel{\trianglerighteq} \SetBreakableRel{\trianglelefteq} \SetBreakableRel{\blacktriangleright} \SetBreakableRel{\blacktriangleleft} \SetBreakableRel{\vartriangle} \SetBreakableBin{\centerdot} \SetBreakableBin{\boxplus} \SetBreakableBin{\boxminus} \SetBreakableBin{\boxtimes} \SetBreakableBin{\boxdot} \SetBreakableBin{\circledcirc} \SetBreakableBin{\circledast} \SetBreakableBin{\circleddash} \SetBreakableBin{\intercal} \SetBreakableRel{\prurel} \SetBreakableRel{\scurel} \SetBreakableRel{\disin} \SetBreakableRel{\nisd} \SetBreakableRel{\fatslash} \SetBreakableRel{\fatbslash} \SetBreakableRel{\nequiv} \SetBreakableRel{\bagmember} \SetBreakableRel{\lvertneqq} \SetBreakableRel{\gvertneqq} \SetBreakableRel{\nleq} \SetBreakableRel{\ngeq} \SetBreakableRel{\nless} \SetBreakableRel{\ngtr} \SetBreakableRel{\nprec} \SetBreakableRel{\nsucc} \SetBreakableRel{\lneqq} \SetBreakableRel{\gneqq} \SetBreakableRel{\nleqslant} \SetBreakableRel{\ngeqslant} \SetBreakableRel{\lneq} \SetBreakableRel{\gneq} \SetBreakableRel{\npreceq} \SetBreakableRel{\nsucceq} \SetBreakableRel{\nleqq} \SetBreakableRel{\ngeqq} \SetBreakableRel{\lnsim} \SetBreakableRel{\gnsim} \SetBreakableRel{\precnsim} \SetBreakableRel{\succnsim} \SetBreakableRel{\precneqq} \SetBreakableRel{\succneqq} \SetBreakableRel{\nsim} \SetBreakableRel{\ncong} \SetBreakableRel{\lnapprox} \SetBreakableRel{\gnapprox} \SetBreakableRel{\precnapprox} \SetBreakableRel{\succnapprox} \SetBreakableRel{\nsubset} \SetBreakableRel{\nsupset} \SetBreakableRel{\varsubsetneq} \SetBreakableRel{\varsupsetneq} \SetBreakableRel{\nsubseteqq} \SetBreakableRel{\nsupseteqq} \SetBreakableRel{\subsetneqq} \SetBreakableRel{\supsetneqq} \SetBreakableRel{\varsubsetneqq} \SetBreakableRel{\varsupsetneqq} \SetBreakableRel{\subsetneq} \SetBreakableRel{\supsetneq} \SetBreakableRel{\nsubseteq} \SetBreakableRel{\nsupseteq} \SetBreakableRel{\nparallel} \SetBreakableRel{\nmid} \SetBreakableRel{\nshortmid} \SetBreakableRel{\nshortparallel} \SetBreakableRel{\nvdash} \SetBreakableRel{\nVdash} \SetBreakableRel{\nvDash} \SetBreakableRel{\nVDash} \SetBreakableRel{\ntrianglerighteq} \SetBreakableRel{\ntrianglelefteq} \SetBreakableRel{\ntriangleleft} \SetBreakableRel{\ntriangleright} \SetBreakableRel{\precapprox} \SetBreakableRel{\succapprox} \SetBreakableRel{\precsim} \SetBreakableRel{\succsim} \SetBreakableRel{\lesssim} \SetBreakableRel{\gtrsim} \SetBreakableRel{\lessapprox} \SetBreakableRel{\gtrapprox} \SetBreakableRel{\leqq} \SetBreakableRel{\geqq} \SetBreakableRel{\lessgtr} \SetBreakableRel{\gtrless} \SetBreakableRel{\lesseqgtr} \SetBreakableRel{\gtreqless} \SetBreakableRel{\lesseqqgtr} \SetBreakableRel{\gtreqqless} \SetBreakableRel{\Subset} \SetBreakableRel{\Supset} \SetBreakableBin{\Cup} \SetBreakableBin{\doublecup} \SetBreakableBin{\Cap} \SetBreakableBin{\doublecap} \SetBreakableRel{\subseteqq} \SetBreakableRel{\supseteqq} \SetBreakableBin{\curlywedge} \SetBreakableBin{\curlyvee} \SetBreakableBin{\veebar} \SetBreakableBin{\barwedge} \SetBreakableBin{\doublebarwedge} \SetBreakableBin{\leftthreetimes} \SetBreakableBin{\rightthreetimes} \SetBreakableBin{\smallsetminus} \SetBreakableRel{\approxeq} \SetBreakableBin{\dotplus} \SetBreakableRel{\pitchfork} \SetBreakableBin{\oblong} \SetBreakableBin{\talloblong} \SetBreakableBin{\sslash} \SetBreakableBin{\bbslash} \SetBreakableRel{\hash} \SetBreakableRel{\varhash} \SetBreakableBin{\convolution} \SetBreakableBin{\coAsterisk} \SetBreakableRel{\veeeq} \SetBreakableRel{\corresponds} \SetBreakableRel{\arceq} \SetBreakableRel{\CircledEq} \SetBreakableRel{\eqbumped} \SetBreakableRel{\dotminus} \SetBreakableRel{\kernelcontraction} \SetBreakableRel{\dotsim} \SetBreakableRel{\simrdots} \SetBreakableBin{\circplus} \SetBreakableBin{\dottimes} \SetBreakableBin{\vartimes} \SetBreakableBin{\merge} \SetBreakableBin{\veeonvee} \SetBreakableBin{\obslash} \SetBreakableBin{\otop} \SetBreakableBin{\obot} \SetBreakableBin{\oleft} \SetBreakableBin{\oright} \SetBreakableBin{\obar} \SetBreakableBin{\otriangle} \SetBreakableBin{\olessthan} \SetBreakableBin{\ogreaterthan} \SetBreakableBin{\ovee} \SetBreakableBin{\owedge} \SetBreakableBin{\boxbslash} \SetBreakableBin{\boxtop} \SetBreakableBin{\boxbot} \SetBreakableBin{\boxleft} \SetBreakableBin{\boxright} \SetBreakableBin{\boxbar} \SetBreakableBin{\boxslash} \SetBreakableBin{\boxtriangle} \SetBreakableBin{\boxast} \SetBreakableBin{\boxcircle} \SetBreakableBin{\boxdivision} \SetBreakableBin{\boxbox} \SetBreakableBin{\diamondop} \SetBreakableBin{\diamondminus} \SetBreakableBin{\diamondbar} \SetBreakableBin{\diamondtimes} \SetBreakableBin{\diamondplus} \SetBreakableBin{\diamondtriangle} \SetBreakableBin{\diamondcircle} \SetBreakableBin{\cupleftarrow} \SetBreakableBin{\varcup} \SetBreakableBin{\varcap} \SetBreakableBin{\varsqcup} \SetBreakableBin{\varsqcap} \SetBreakableRel{\sqSubset} \SetBreakableRel{\sqSupset} \SetBreakableRel{\inplus} \SetBreakableRel{\niplus} \SetBreakableRel{\varisins} \SetBreakableRel{\varnis} \SetBreakableRel{\subsetplus} \SetBreakableRel{\supsetplus} \SetBreakableRel{\subsetpluseq} \SetBreakableRel{\supsetpluseq} \SetBreakableBin{\nplus} \SetBreakableBin{\squplus} \SetBreakableRel{\multimapboth} \SetBreakableRel{\multimapdotboth} \SetBreakableRel{\multimapdotbothB} \SetBreakableRel{\multimapdotbothA} \SetBreakableRel{\multimapinv} \SetBreakableRel{\multimapdotinv} \SetBreakableRel{\multimapbothvert} \SetBreakableRel{\multimapdotbothvert} \SetBreakableRel{\multimapdotbothBvert} \SetBreakableRel{\multimapdotbothAvert} \SetBreakableRel{\dfourier} \SetBreakableRel{\Dfourier} \SetBreakableRel{\ztransf} \SetBreakableRel{\Ztransf} \SetBreakableRel{\Lt} \SetBreakableRel{\Gt} \SetBreakableBin{\leftslice} \SetBreakableBin{\rightslice} \SetBreakableRel{\trianglelefteqslant} \SetBreakableRel{\trianglerighteqslant} \SetBreakableBin{\Ydown} \SetBreakableBin{\Yup} \SetBreakableBin{\Yleft} \SetBreakableBin{\Yright} \SetBreakableRel{\dashVv} \SetBreakableRel{\DashV} \SetBreakableRel{\DashV} \SetBreakableRel{\dashV} \SetBreakableBin{\lbag} \SetBreakableBin{\rbag} \SetBreakableRel{\Perp} \SetBreakableBin{\moo} \SetBreakableBin{\baro} \SetBreakableBin{\pluscirc} \SetBreakableBin{\minuso} \SetBreakableRel{\llcurly} \SetBreakableRel{\ggcurly} \SetBreakableRel{\strictfi} \SetBreakableRel{\strictif} \SetBreakableRel{\ac} \SetBreakableBin{\varintercal} \SetBreakableRel{\equalparallel} \SetBreakableBin{\plustrif} \SetBreakableBin{\smashtimes} \SetBreakableRel{\ltcir} \SetBreakableRel{\gtcir} \SetBreakableRel{\glj} \SetBreakableBin{\Vee} \SetBreakableBin{\Wedge} \SetBreakableBin{\fatsemi} \SetBreakableRel{\forkv} \SetBreakableRel{\topfork} \SetBreakableRel{\twoheaduparrow} \SetBreakableRel{\twoheaddownarrow} \SetBreakableRel{\mapsfrom} \SetBreakableRel{\mapsup} \SetBreakableRel{\mapsdown} \SetBreakableRel{\nVleftarrow} \SetBreakableRel{\nVrightarrow} \SetBreakableRel{\rightarrowcircle} \SetBreakableRel{\nwarrowcorner} \SetBreakableRel{\nearrowcorner} \SetBreakableRel{\barovernorthwestarrow} \SetBreakableRel{\carriagereturn} \SetBreakableRel{\linefeed} \SetBreakableRel{\leftzigzagarrow} \SetBreakableRel{\Nwarrow} \SetBreakableRel{\Nearrow} \SetBreakableRel{\Swarrow} \SetBreakableRel{\Searrow} \SetBreakableRel{\nHuparrow} \SetBreakableRel{\nHdownarrow} \SetBreakableRel{\updownarrowbar} \SetBreakableRel{\barleftarrow} \SetBreakableRel{\rightarrowbar} \SetBreakableRel{\leftsquigarrow} \SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leftrightsquigarrow} \SetBreakableRel{\downzigzagarrow} \SetBreakableRel{\rightthreearrows} \SetBreakableRel{\barleftarrowrightarrowbar} \SetBreakableRel{\leftdasharrow} \SetBreakableRel{\rightdasharrow} \SetBreakableRel{\updasharrow} \SetBreakableRel{\downdasharrow} \SetBreakableRel{\upwhitearrow} \SetBreakableRel{\downwhitearrow} \SetBreakableRel{\whitearrowupfrombar} \SetBreakableRel{\whitearrowuppedestal} \SetBreakableRel{\whitearrowuppedestalhbar} \SetBreakableRel{\whitearrowuppedestalvbar} \SetBreakableRel{\twoheadwhiteuparrow} \SetBreakableRel{\twoheadwhiteuparrowpedestal} \SetBreakableRel{\updownwhitearrow} \SetBreakableRel{\leftblackarrow} \SetBreakableRel{\rightblackarrow} \SetBreakableRel{\upblackarrow} \SetBreakableRel{\downblackarrow} \SetBreakableRel{\leftrightblackarrow} \SetBreakableRel{\updownblackarrow} \SetBreakableRel{\curlyveeuparrow} \SetBreakableRel{\curlyveedownarrow} \SetBreakableRel{\curlywedgeuparrow} \SetBreakableRel{\curlywedgedownarrow} \SetBreakableRel{\Mapsfrom} \SetBreakableRel{\Mapsto} \SetBreakableRel{\leftwhitearrow} \SetBreakableRel{\rightwhitearrow} \SetBreakableRel{\leftwhiteroundarrow} \SetBreakableRel{\rightwhiteroundarrow} \SetBreakableRel{\righttoleftarrow} \SetBreakableRel{\lefttorightarrow} \SetBreakableRel{\looparrowdownleft} \SetBreakableRel{\looparrowdownright} \SetBreakableRel{\uptodownarrow} \SetBreakableRel{\downtouparrow} \SetBreakableRel{\nnearrow} \SetBreakableRel{\ssearrow} \SetBreakableRel{\nnwarrow} \SetBreakableRel{\sswarrow} \SetBreakableRel{\curvearrowleft} \SetBreakableRel{\curvearrowright} \SetBreakableRel{\curvearrowleftright} \SetBreakableRel{\curvearrowbotleft} \SetBreakableRel{\curvearrowbotright} \SetBreakableRel{\curvearrowbotleftright} \SetBreakableRel{\leftrightarroweq} \SetBreakableRel{\eqleftrightarrow} \SetBreakableRel{\dlsh} \SetBreakableRel{\drsh} \SetBreakableRel{\leftarrowTriangle} \SetBreakableRel{\rightarrowTriangle} \SetBreakableRel{\leftrightarrowTriangle} \SetBreakableRel{\leftarrowtriangle} \SetBreakableRel{\rightarrowtriangle} \SetBreakableRel{\leftrightarrowtriangle} }{} % \end{macrocode} % euler % \begin{macrocode} \@ifpackageloaded{euler}% euler { \SetBreakableRel{\uparrow} \SetBreakableRel{\downarrow} \SetBreakableRel{\updownarrow} \SetBreakableRel{\Uparrow} \SetBreakableRel{\Downarrow} \SetBreakableRel{\Updownarrow} % \SetBreakableRel{\lhook} % \SetBreakableRel{\rhook} }{} % \end{macrocode} % fourier % \begin{macrocode} \@ifpackageloaded{fourier}% fourier { \SetMathOperator{\iint} \SetMathOperator{\iiint} \SetMathOperator{\oiint} \SetMathOperator{\oiiint} \SetMathOperator{\slashint} \SetOpenBracket{\llbracket} \SetBreakableRel{\leqslant} \SetBreakableRel{\geqslant} \SetBreakableRel{\parallelslant} \SetBreakableRel{\vDash} \SetBreakableRel{\blacktriangleleft} \SetBreakableRel{\blacktriangleright} \SetBreakableRel{\nleqslant} \SetBreakableRel{\ngeqslant} \SetBreakableRel{\nparallel} \SetBreakableRel{\nparallelslant} \SetBreakableRel{\nvDash} \SetBreakableBin{\intercal} \SetBreakableRel{\varsubsetneq} \SetBreakableRel{\notowns} \SetBreakableBin{\smallsetminus} \SetBreakableRel{\subsetneqq} \SetBreakableRel{\rightrightarrows} \SetBreakableRel{\leftleftarrows} \SetBreakableRel{\curvearrowleft} \SetBreakableRel{\curvearrowright} \SetBreakableRel{\Downarrow} }{} % \end{macrocode} % % Lucida font (lucbmath,lucidabr,lucmin,lucmtime,luctime) % % \begin{macrocode} \ifnum\@ifpackageloaded{lucbmath}{1}{% \@ifpackageloaded{lucidabr}{1}{% \@ifpackageloaded{lucmin}{1}{% \@ifpackageloaded{lucmtime}{1}{% \@ifpackageloaded{luctime}{1}{0}}}}}=1\relax% \SetMathOperator{\surfint} \SetMathOperator{\midint} \SetMathOperator{\midoint} \SetMathOperator{\midsurfint} \SetMathOperator{\largeint} \SetBreakableRel{\leadsfrom} \SetBreakableRel{\defineequal} \SetBreakableRel{\notequiv} \SetBreakableRel{\notapprox} \SetBreakableRel{\notasymp} \SetBreakableRel{\notsubset} \SetBreakableRel{\notsupset} \SetBreakableRel{\notsim} \SetBreakableRel{\notsubseteq} \SetBreakableRel{\notsupseteq} \SetBreakableRel{\notsimeq} \SetBreakableRel{\notsqsubseteq} \SetBreakableRel{\notsqsupseteq} \SetBreakableRel{\notcong} \SetBreakableRel{\notni} \SetBreakableBin{\boxdot} \SetBreakableBin{\boxplus} \SetBreakableBin{\boxtimes} \SetBreakableBin{\centerdot} \SetBreakableRel{\circlearrowright} \SetBreakableRel{\circlearrowleft} \SetBreakableRel{\leftrightharpoons} \SetBreakableBin{\boxminus} \SetBreakableRel{\Vdash} \SetBreakableRel{\Vvdash} \SetBreakableRel{\vDash} \SetBreakableRel{\twoheadrightarrow} \SetBreakableRel{\twoheadleftarrow} \SetBreakableRel{\leftleftarrows} \SetBreakableRel{\rightrightarrows} \SetBreakableRel{\upuparrows} \SetBreakableRel{\downdownarrows} \SetBreakableRel{\upharpoonright} \SetBreakableRel{\downharpoonright} \SetBreakableRel{\upharpoonleft} \SetBreakableRel{\downharpoonleft} \SetBreakableRel{\rightarrowtail} \SetBreakableRel{\leftarrowtail} \SetBreakableRel{\leftrightarrows} \SetBreakableRel{\rightleftarrows} \SetBreakableRel{\Lsh} \SetBreakableRel{\Rsh} \SetBreakableRel{\rightsquigarrow} \SetBreakableRel{\leftsquigarrow} \SetBreakableRel{\leftrightsquigarrow} \SetBreakableRel{\looparrowleft} \SetBreakableRel{\looparrowright} \SetBreakableRel{\circeq} \SetBreakableRel{\succsim} \SetBreakableRel{\gtrsim} \SetBreakableRel{\gtrapprox} \SetBreakableRel{\multimap} \SetBreakableRel{\image} \SetBreakableRel{\original} \SetBreakableRel{\therefore} \SetBreakableRel{\because} \SetBreakableRel{\doteqdot} \SetBreakableRel{\triangleq} \SetBreakableRel{\precsim} \SetBreakableRel{\lesssim} \SetBreakableRel{\lessapprox} \SetBreakableRel{\eqslantless} \SetBreakableRel{\eqslantgtr} \SetBreakableRel{\curlyeqprec} \SetBreakableRel{\curlyeqsucc} \SetBreakableRel{\preccurlyeq} \SetBreakableRel{\leqq} \SetBreakableRel{\leqslant} \SetBreakableRel{\lessgtr} \SetBreakableRel{\risingdotseq} \SetBreakableRel{\fallingdotseq} \SetBreakableRel{\succcurlyeq} \SetBreakableRel{\geqq} \SetBreakableRel{\geqslant} \SetBreakableRel{\gtrless} \SetBreakableRel{\vartriangleright} \SetBreakableRel{\vartriangleleft} \SetBreakableRel{\trianglerighteq} \SetBreakableRel{\trianglelefteq} \SetBreakableRel{\between} \SetBreakableRel{\blacktriangleright} \SetBreakableRel{\blacktriangleleft} \SetBreakableRel{\vartriangle} \SetBreakableRel{\eqcirc} \SetBreakableRel{\lesseqgtr} \SetBreakableRel{\gtreqless} \SetBreakableRel{\lesseqqgtr} \SetBreakableRel{\gtreqqless} \SetBreakableRel{\Rrightarrow} \SetBreakableRel{\Lleftarrow} \SetBreakableBin{\veebar} \SetBreakableBin{\barwedge} \SetBreakableRel{\varpropto} \SetBreakableRel{\smallsmile} \SetBreakableRel{\smallfrown} \SetBreakableRel{\Subset} \SetBreakableRel{\Supset} \SetBreakableBin{\Cup} \SetBreakableBin{\Cap} \SetBreakableBin{\curlywedge} \SetBreakableBin{\curlyvee} \SetBreakableBin{\leftthreetimes} \SetBreakableBin{\rightthreetimes} \SetBreakableRel{\subseteqq} \SetBreakableRel{\supseteqq} \SetBreakableRel{\bumpeq} \SetBreakableRel{\Bumpeq} \SetBreakableRel{\lll} \SetBreakableRel{\ggg} \SetBreakableRel{\pitchfork} \SetBreakableBin{\dotplus} \SetBreakableRel{\backsim} \SetBreakableRel{\backsimeq} \SetBreakableBin{\intercal} \SetBreakableBin{\circledcirc} \SetBreakableBin{\circledast} \SetBreakableBin{\circleddash} \SetBreakableRel{\lvertneqq} \SetBreakableRel{\gvertneqq} \SetBreakableRel{\nleq} \SetBreakableRel{\ngeq} \SetBreakableRel{\nless} \SetBreakableRel{\ngtr} \SetBreakableRel{\nprec} \SetBreakableRel{\nsucc} \SetBreakableRel{\lneqq} \SetBreakableRel{\gneqq} \SetBreakableRel{\nleqslant} \SetBreakableRel{\ngeqslant} \SetBreakableRel{\lneq} \SetBreakableRel{\gneq} \SetBreakableRel{\npreceq} \SetBreakableRel{\nsucceq} \SetBreakableRel{\precnsim} \SetBreakableRel{\succnsim} \SetBreakableRel{\lnsim} \SetBreakableRel{\gnsim} \SetBreakableRel{\nleqq} \SetBreakableRel{\ngeqq} \SetBreakableRel{\precneqq} \SetBreakableRel{\succneqq} \SetBreakableRel{\precnapprox} \SetBreakableRel{\succnapprox} \SetBreakableRel{\lnapprox} \SetBreakableRel{\gnapprox} \SetBreakableRel{\nsim} \SetBreakableRel{\ncong} \SetBreakableRel{\diagup} \SetBreakableRel{\diagdown} \SetBreakableRel{\varsubsetneq} \SetBreakableRel{\varsupsetneq} \SetBreakableRel{\nsubseteqq} \SetBreakableRel{\nsupseteqq} \SetBreakableRel{\subsetneqq} \SetBreakableRel{\supsetneqq} \SetBreakableRel{\varsubsetneqq} \SetBreakableRel{\varsupsetneqq} \SetBreakableRel{\subsetneq} \SetBreakableRel{\supsetneq} \SetBreakableRel{\nsubseteq} \SetBreakableRel{\nsupseteq} \SetBreakableRel{\nparallel} \SetBreakableRel{\nmid} \SetBreakableRel{\nshortmid} \SetBreakableRel{\nshortparallel} \SetBreakableRel{\nvdash} \SetBreakableRel{\nVdash} \SetBreakableRel{\nvDash} \SetBreakableRel{\nVDash} \SetBreakableRel{\ntrianglerighteq} \SetBreakableRel{\ntrianglelefteq} \SetBreakableRel{\ntriangleleft} \SetBreakableRel{\ntriangleright} \SetBreakableRel{\nleftarrow} \SetBreakableRel{\nrightarrow} \SetBreakableRel{\nLeftarrow} \SetBreakableRel{\nRightarrow} \SetBreakableRel{\nLeftrightarrow} \SetBreakableRel{\nleftrightarrow} \SetBreakableBin{\divideontimes} \SetBreakableRel{\eqsim} \SetBreakableRel{\lessdot} \SetBreakableRel{\gtrdot} \SetBreakableBin{\ltimes} \SetBreakableBin{\rtimes} \SetBreakableRel{\shortmid} \SetBreakableRel{\shortparallel} \SetBreakableBin{\smallsetminus} \SetBreakableRel{\thicksim} \SetBreakableRel{\thickapprox} \SetBreakableRel{\approxeq} \SetBreakableRel{\succapprox} \SetBreakableRel{\precapprox} \SetBreakableRel{\curvearrowleft} \SetBreakableRel{\curvearrowright} \SetBreakableRel{\backepsilon} \fi % \end{macrocode} % mathbbol % \begin{macrocode} \@ifpackageloaded{mathbbol}% mathbbol { \SetOpenBracket{\Langle} \SetOpenBracket{\Lparen} }{} % \end{macrocode} % mdwmath % \begin{macrocode} \@ifpackageloaded{mdwmath}% mdwmath { \SetBreakableBin{\bitand} \begingroup \catcode`\&\active \xdef&{\noexpand\brokenbin{\mathchar\number\mathcode`\&}} \endgroup \AtBeginDocument{\mathcode`\&=32768 } }{} % \end{macrocode} % sbmm % \begin{macrocode} \@ifpackageloaded{sbbm}% sbbm { \SetOpenBracket{\Lparen} }{} % \end{macrocode} % stmaryrd % \begin{macrocode} \@ifpackageloaded{stmaryrd}% stmaryrd { \SetOpenBracket{\Lbag} \SetOpenBracket{\llparenthesis} \SetOpenBracket{\binampersand} \SetOpenBracket{\llfloor} \SetOpenBracket{\llceil} \SetOpenBracket{\llbracket} \SetBreakableRel{\shortleftarrow} \SetBreakableRel{\shortrightarrow} \SetBreakableRel{\shortuparrow} \SetBreakableRel{\shortdownarrow} \SetBreakableBin{\Yup} \SetBreakableBin{\Ydown} \SetBreakableBin{\Yleft} \SetBreakableBin{\Yright} \SetBreakableBin{\varcurlyvee} \SetBreakableBin{\varcurlywedge} \SetBreakableBin{\minuso} \SetBreakableBin{\baro} \SetBreakableBin{\sslash} \SetBreakableBin{\bbslash} \SetBreakableBin{\moo} \SetBreakableBin{\varotimes} \SetBreakableBin{\varoast} \SetBreakableBin{\varobar} \SetBreakableBin{\varodot} \SetBreakableBin{\varoslash} \SetBreakableBin{\varobslash} \SetBreakableBin{\varocircle} \SetBreakableBin{\varoplus} \SetBreakableBin{\varominus} \SetBreakableBin{\boxast} \SetBreakableBin{\boxbar} \SetBreakableBin{\boxdot} \SetBreakableBin{\boxslash} \SetBreakableBin{\boxbslash} \SetBreakableBin{\boxcircle} \SetBreakableBin{\boxbox} \SetBreakableBin{\boxempty} \SetBreakableBin{\merge} \SetBreakableBin{\vartimes} \SetBreakableBin{\fatsemi} \SetBreakableRel{\sswarrow} \SetBreakableRel{\ssearrow} \SetBreakableRel{\curlywedgeuparrow} \SetBreakableRel{\curlywedgedownarrow} \SetBreakableBin{\fatslash} \SetBreakableBin{\fatbslash} \SetBreakableBin{\lbag} \SetBreakableBin{\rbag} \SetBreakableBin{\varbigcirc} \SetBreakableRel{\leftrightarroweq} \SetBreakableRel{\curlyveedownarrow} \SetBreakableRel{\curlyveeuparrow} \SetBreakableRel{\nnwarrow} \SetBreakableRel{\nnearrow} \SetBreakableBin{\leftslice} \SetBreakableBin{\rightslice} \SetBreakableBin{\varolessthan} \SetBreakableBin{\varogreaterthan} \SetBreakableBin{\varovee} \SetBreakableBin{\varowedge} \SetBreakableBin{\talloblong} \SetBreakableBin{\interleave} \SetBreakableBin{\obar} \SetBreakableBin{\obslash} \SetBreakableBin{\olessthan} \SetBreakableBin{\ogreaterthan} \SetBreakableBin{\ovee} \SetBreakableBin{\owedge} \SetBreakableBin{\oblong} \SetBreakableRel{\inplus} \SetBreakableRel{\niplus} \SetBreakableBin{\nplus} \SetBreakableRel{\subsetplus} \SetBreakableRel{\supsetplus} \SetBreakableRel{\subsetpluseq} \SetBreakableRel{\supsetpluseq} \SetBreakableRel{\trianglelefteqslant} \SetBreakableRel{\trianglerighteqslant} \SetBreakableRel{\ntrianglelefteqslant} \SetBreakableRel{\ntrianglerighteqslant} \SetBreakableRel{\arrownot} \SetBreakableRel{\Arrownot} \SetBreakableRel{\Mapstochar} \SetBreakableRel{\mapsfromchar} \SetBreakableRel{\Mapsfromchar} \SetBreakableBin{\leftrightarrowtriangle} \SetBreakableRel{\leftarrowtriangle} \SetBreakableRel{\rightarrowtriangle} \SetBreakableRel{\longarrownot} \SetBreakableRel{\Longarrownot} \SetBreakableRel{\Mapsto} \SetBreakableRel{\mapsfrom} \SetBreakableRel{\Mapsfrom} \SetBreakableRel{\Longmapsto} \SetBreakableRel{\longmapsfrom} \SetBreakableRel{\Longmapsfrom} }{} % \end{macrocode} % wasysym % \begin{macrocode} \@ifpackageloaded{wasysym}% wasysym { \SetMathOperator{\varint} \SetMathOperator{\iint} \SetMathOperator{\iiint} \SetMathOperator{\varoint} \SetMathOperator{\oiint} \SetBreakableBin{\LHD} \SetBreakableBin{\RHD} \SetBreakableRel{\apprle} \SetBreakableRel{\apprge} \SetBreakableRel{\wasypropto} \SetBreakableRel{\invneg} \SetBreakableBin{\ocircle} \SetBreakableRel{\logof} }{} % \end{macrocode} % % \iffalse % % \fi % % \Finale \endinput