From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/rmathbr/README | 16 + macros/latex/contrib/rmathbr/rmathbr.dtx | 2162 ++++++++++++++++++++++++++++++ macros/latex/contrib/rmathbr/rmathbr.ins | 57 + macros/latex/contrib/rmathbr/rmathbr.pdf | Bin 0 -> 244898 bytes 4 files changed, 2235 insertions(+) create mode 100644 macros/latex/contrib/rmathbr/README create mode 100644 macros/latex/contrib/rmathbr/rmathbr.dtx create mode 100644 macros/latex/contrib/rmathbr/rmathbr.ins create mode 100644 macros/latex/contrib/rmathbr/rmathbr.pdf (limited to 'macros/latex/contrib/rmathbr') diff --git a/macros/latex/contrib/rmathbr/README b/macros/latex/contrib/rmathbr/README new file mode 100644 index 0000000000..de0780e02a --- /dev/null +++ b/macros/latex/contrib/rmathbr/README @@ -0,0 +1,16 @@ +rmathbr 1.0.3 +============= + +Repeating of math operator at the broken line and the new line +in inline equations (common in Cyrillic mathematical typography) + +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. diff --git a/macros/latex/contrib/rmathbr/rmathbr.dtx b/macros/latex/contrib/rmathbr/rmathbr.dtx new file mode 100644 index 0000000000..6bdcc488cf --- /dev/null +++ b/macros/latex/contrib/rmathbr/rmathbr.dtx @@ -0,0 +1,2162 @@ +%\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 diff --git a/macros/latex/contrib/rmathbr/rmathbr.ins b/macros/latex/contrib/rmathbr/rmathbr.ins new file mode 100644 index 0000000000..40f251e448 --- /dev/null +++ b/macros/latex/contrib/rmathbr/rmathbr.ins @@ -0,0 +1,57 @@ +%% 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. +%% + +\input docstrip.tex +\keepsilent + +\usedir{tex/latex/rmathbr} + +\preamble + +This is a generated file. + +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. + +\endpreamble + +\generate{\file{rmathbr.sty}{\from{rmathbr.dtx}{package}}} + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* rmathbr.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file rmathbr.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile diff --git a/macros/latex/contrib/rmathbr/rmathbr.pdf b/macros/latex/contrib/rmathbr/rmathbr.pdf new file mode 100644 index 0000000000..270819baf9 Binary files /dev/null and b/macros/latex/contrib/rmathbr/rmathbr.pdf differ -- cgit v1.2.3