From: "Denis Ryabov" Received: by relay1.vsu.ru (CommuniGate Pro PIPE 5.3.2) with PIPE id 233057314; Sun, 31 Jan 2010 18:35:08 +0300 X-drweb-hash: Received: from forward15.mail.yandex.net ([95.108.130.119] verified) by relay1.vsu.ru (CommuniGate Pro SMTP 5.3.2) with ESMTP id 233057289 for CyrTeX-ru@vsu.ru; Sun, 31 Jan 2010 18:34:49 +0300 Received-SPF: pass receiver=relay1.vsu.ru; client-ip=95.108.130.119; envelope-from=dryabov@yandex.ru Received: from smtp1.mail.yandex.net (smtp1.mail.yandex.net [77.88.46.101]) by forward15.mail.yandex.net (Yandex) with ESMTP id 43ACBC1CEC for ; Sun, 31 Jan 2010 18:33:08 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1264951988; bh=xIdF93/fLHk3CL0s+9DlgXNHLXOtrab1n0cREC38pWQ=; h=Message-ID:From:To:References:Subject:Date:MIME-Version: Content-Type; b=d8yu5KAsRkj0bxacHPpKiuACwpuZfiGaAPHX+af+TxKR3Jo5sh/GSDoUUno+6/LmE yDzKK9N8CIk98nwGt/Ckdx/6MGttIgT67opXNdCucOtY4r4m28Ad/ppRgcIpVz0xmX exIuLjD8exS7H3YMGj2ByNmE5euoAqZl2s3AWmNQ= Received: from marina (unknown [77.66.146.2]) by smtp1.mail.yandex.net (Yandex) with ESMTPA id F3A97E60128 for ; Sun, 31 Jan 2010 18:33:07 +0300 (MSK) Message-ID: <01bd01caa28a$8e7b6b00$9b01a8c0@marina> To: "Cyrillic TeX Users Group" References: Subject: =?koi8-r?B?5NXCzMnSz9fBzsnFINrOwcvP1yDQ0skg0MXSxc7P08Ug09TSz97O2Q==?= =?koi8-r?B?yCDGz9LN1cw=?= Date: Sun, 31 Jan 2010 18:32:10 +0300 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_01BA_01CAA2A3.B3373870" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-Yandex-TimeMark: 1264951988 X-Yandex-Spam: 1 X-Yandex-Front: smtp1.mail.yandex.net X-DrWeb-FlyTrap-Class: NON-SPAM X-DrWeb-FlyTrap-CID: 1 X-DrWeb-FlyTrap-ID: 62721426 This is a multi-part message in MIME format. ------=_NextPart_000_01BA_01CAA2A3.B3373870 Content-Type: text/plain; format=flowed; charset="koi8-r"; reply-type=original Content-Transfer-Encoding: 8bit Доработал пакет для автоматического переноса формул с дублирование знака переносимой операции, в связи с чем хочу задать TeXникам несколько вопросов: - У кого есть возможность, прошу проверить работу пакета на имеющихся математических текстах для выяснения возможных ошибок. - Нужен ли такой пакет в принципе, или всем достаточно существующих методов ручной расстановки возможных переносов в формулах (т.е. имеет ли смысл дорабатывать пакет дальше, т.к. писал я его прежде всего для верстки своей диссертации, и сейчас, после защиты, острой необходимости в его дальнейшем развитии нет)? - Если пакет кажется нужным, то где рекомендуется разместить информацию о нем для привлечения к нему внимания техников (и, соответственно, более широкого тестирования в "боевых условиях")? - Имеет ли смысл впоследствии отправить пакет на CTAN? - Удачно ли выбрано имя пакета rumathbr, или лучше переименовать во что-то другое? - В настоящее время данный пакет конфликтует с пакетом breqn, т.к. последний полностью переопределяет математику. Поэтому хотелось бы узнать, многие ли пользуются пакетом breqn, т.е. имеет ли смысл тратить силы на "стыковку" этих двух пакетов? - Какие опции можно встроить в пакет (я пока вижу две - опцию для разрешения переносов на \cdots и \ldots, и опцию для переопределения только базовой математики (+-=<>_^) без остальных математических команд)? - В настоящее время в пакете переопределяются команды из пакетов amsfonts, amssymb, amstex, boisik, euler, fourier, lucbmath, lucidabr, lucmin, lucmtime, luctime, mathbbol, mdwmath, sbbm, stmaryrd и wasysym. В каких еще известных пакетах определяются свои математические команды (на которых тоже нужно делать переносы)?; - Можно ли (теоретически) сделать правильный перенос на \cdot с выводом \times в случае переноса (вроде бы это можно сделать временно выйдя из математической моды, но внутри группы из мат. моды не выйдешь, а как проверить факт нахождения внутри группы я не знаю)? - Можно ли избавиться от присвоения 12-й категории символам _ и ^ (без этого, по непонятной мне причине, переопределенные команды "забываются" к моменту входа в мат. моду)? - В настоящей реализации переносы реализуются через \discretionary{}{*}{}, поэтому пенальти за перенос определяется величиной \exhyphenpenalty, которая, насколько я понимаю, фиксирована для всего абзаца. Можно ли в такой ситуации как-то задавать разные пенальти для отношений и бинарных операций? Вариант с использованием \discretionary{*}{}{} не слишком удачен, т.к. требует изменения значения \hyphenpenalty, а других вариантов я не вижу (несмотря на анализ tex.web). Заранее благодарен за комментарии. ------- С уважением, Денис Рябов ------=_NextPart_000_01BA_01CAA2A3.B3373870 Content-Type: application/octet-stream; name="rumathbr.sty" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="rumathbr.sty" % =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D % Russian-style hyphenation of inline equations % (C) 2009-2010 Denis Ryabov. % % Based on ideas and code from M.I.Grinchuk "TeX and Russian % Traditions of Typesetting", TUGboat 17 (1996) 4. % % CHANGELOG: % -------------------- 0.98 [31-January-2010] -------------------- % [+] hyphenation on :=3D % [+] correct work with 'icomma' package and option 'icomma' of % 'eulervm' package % [+] correct work with 'program' package % [+] symbols have been added from boisik, euler, fourier, % lucbmath, lucidabr, lucmin, lucmtime, luctime, mathbbol, % mdwmath, sbbm, stmaryrd and wasysym packages. % [-] remove shrinking of space in math (breaked url package) % [#] don't hyphenate after punctuation (',', ';', '\colon' etc.) % [#] create broken commands as robust % [#] some fixes of redeclaring of AMS commands % [#] commented hyphenation on \ldots =E8 \cdots, as TeX doesn't % here by default % -------------------- 0.97 [08-October-2009] -------------------- % [#] problem with operators like '+^\leq' % -------------------- 0.96 [29-September-2009] ------------------ % [#] problem with '-' in AMS \DeclareMathOperator % [#] problem with \ldots in text mode % -------------------- 0.95 [28-September-2009] ------------------ % [#] problem with sub/sup-scripts after relations % [+] hyphenation on \ldots % [+] AMS/Lucida left brackets (lvert, lVert, ulcorner, llcorner) % support % [+] mathbbol.sty left bracket (Lbrack) support % [^] huge code refactoring % -------------------- 0.91 [21-September-2009] ------------------ % [#] problem with space after brackets % -------------------- 0.90 [20-September-2009] ------------------ % [!] first public release % % % KNOWN ISSUES: % expressions like $\sum -y$ require manual insertion of \nobr % before - (that is $\sum \nobr-y$) % 'xy' package: should be loaded after 'rumathbr' to work properly % 'breqn' package: cannot work together with 'rumathbr' % =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D % % =CF=E5=F0=E5=ED=EE=F1 =F1=F2=F0=EE=F7=ED=FB=F5 =F4=EE=F0=EC=F3=EB =E2 =F0= =F3=F1=F1=EA=EE=EC =F1=F2=E8=EB=E5 (=F1 =E4=F3=E1=EB=E8=F0=EE=E2=E0=ED=E8= =E5=EC =E7=ED=E0=EA=EE=E2) % (C) 2009-2010 =C4=E5=ED=E8=F1 =D0=FF=E1=EE=E2. % % =CE=F1=ED=EE=E2=E0=ED=EE =ED=E0 =E8=E4=E5=FF=F5 =E8 =EA=EE=E4=E5 =E8=E7= M.I.Grinchuk "TeX and Russian % Traditions of Typesetting", TUGboat 17 (1996) 4. % % =C8=C7=CC=C5=CD=C5=CD=C8=DF: % -------------------- 0.98 [31 =FF=ED=E2=E0=F0=FF 2010] ----------------= ----- % [+] =EF=E5=F0=E5=ED=EE=F1 =ED=E0 :=3D % [+] =EA=EE=F0=F0=E5=EA=F2=ED=E0=FF =F0=E0=E1=EE=F2=E0 =F1 =EE=EF=F6=E8=E5= =E9 icomma =EF=E0=EA=E5=F2=E0 eulervm =E8 =EF=E0=EA=E5=F2=EE=EC % icomma % [+] =EA=EE=F0=F0=E5=EA=F2=ED=E0=FF =F0=E0=E1=EE=F2=E0 =F1 =EF=E0=EA=E5=F2= =EE=EC program % [+] =E4=EE=E1=E0=E2=EB=E5=ED=FB =F1=E8=EC=E2=EE=EB=FB =E8=E7 =EF=E0=EA=E5= =F2=EE=E2 boisik, euler, fourier, % lucbmath, lucidabr, lucmin, lucmtime, luctime, mathbbol, % mdwmath, sbbm, stmaryrd =E8 wasysym % [-] =F3=E1=F0=E0=ED=EE =F3=EC=E5=ED=FC=F8=E5=ED=E8=E5 =EF=F0=EE=E1=E5=EB= =EE=E2 =E2 =EC=E0=F2=E5=EC=E0=F2=E8=F7=E5=F1=EA=E8=F5 =F4=EE=F0=EC=F3=EB=E0= =F5 % (=ED=E0=F0=F3=F8=E0=EB=EE =F0=E0=E1=EE=F2=F3 =EF=E0=EA=E5=F2=E0 url= ) % [#] =ED=E5 =E4=E5=EB=E0=F2=FC =EF=E5=F0=E5=ED=EE=F1=FB =EF=EE=F1=EB=E5 = =E7=ED=E0=EA=EE=E2 =EF=F3=ED=EA=F2=F3=E0=F6=E8=E8 , ; \colon =E8 =E4=F0. % [#] =EF=E5=F0=E5=ED=EE=F1=E8=EC=FB=E5 =EA=EE=EC=E0=ED=E4=FB =F1=EE=E7=E4= =E0=FE=F2=F1=FF =EA=E0=EA =EA=F0=E5=EF=EA=E8=E5 % [#] =E8=F1=EF=F0=E0=E2=EB=E5=ED=EE =EE=E1=FA=FF=E2=EB=E5=ED=E8=E5 =ED=E5= =EA=EE=F2=EE=F0=FB=F5 AMS-=EA=EE=EC=E0=ED=E4 % [#] =EF=E5=F0=E5=ED=EE=F1 =ED=E0 \ldots =E8 \cdots =E7=E0=EA=EE=EC=EC=E5= =ED=F2=E8=F0=EE=E2=E0=ED, =F2.=EA. TeX =ED=E0 =ED=E8=F5 % =EF=EE-=F3=EC=EE=EB=F7=E0=ED=E8=FE =ED=E5 =EF=E5=F0=E5=ED=EE=F1=E8=F2= % -------------------- 0.97 [08 =EE=EA=F2=FF=E1=F0=FF 2009] -------------= ------- % [#] =F0=E5=F8=E5=ED=E0 =EF=F0=EE=E1=EB=E5=EC=E0 =F1 =EE=EF=E5=F0=E0=F2=EE= =F0=E0=EC=E8 =F2=E8=EF=E0 '+^\leq' % -------------------- 0.96 [29 =F1=E5=ED=F2=FF=E1=F0=FF 2009] ----------= --------- % [#] =F0=E5=F8=E5=ED=E0 =EF=F0=EE=E1=EB=E5=EC=E0 =F1 '-' =E2 AMS \Declar= eMathOperator % [#] =F0=E5=F8=E5=ED=E0 =EF=F0=EE=E1=EB=E5=EC=E0 =F1 \ldots =E2 =F2=E5=EA= =F1=F2=EE=E2=EE=E9 =EC=EE=E4=E5 % -------------------- 0.95 [28 =F1=E5=ED=F2=FF=E1=F0=FF 2009] ----------= --------- % [#] =F0=E5=F8=E5=ED=E0 =EF=F0=EE=E1=EB=E5=EC=E0 =F1 =ED=E0=E4- =E8 =EF=EE= =E4=F1=F2=F0=EE=F7=ED=FB=EC=E8 =E8=ED=E4=E5=EA=F1=E0=EC=E8 =EF=EE=F1=EB=E5= =E7=ED=E0=EA=EE=E2 % [+] =EF=E5=F0=E5=ED=EE=F1 =ED=E0 \ldots % [+] =F3=F7=E8=F2=FB=E2=E0=FE=F2=F1=FF =EE=F2=EA=F0=FB=E2=E0=FE=F9=E8=E5= =F1=EA=EE=E1=EA=E8 =E8=E7 AMS/Lucida (lvert, lVert, % ulcorner, llcorner) % [+] =F3=F7=E8=F2=FB=E2=E0=FE=F2=F1=FF =EE=F2=EA=F0=FB=E2=E0=FE=F9=E8=E5= =F1=EA=EE=E1=EA=E8 =E8=E7 mathbbol.sty (Lbrack) % [^] =EA=EE=E4 =EF=E0=EA=E5=F2=E0 =E2 =E7=ED=E0=F7=E8=F2=E5=EB=FC=ED=EE=E9= =F1=F2=E5=EF=E5=ED=E8 =EF=E5=F0=E5=F0=E0=E1=EE=F2=E0=ED % -------------------- 0.91 [21 =F1=E5=ED=F2=FF=E1=F0=FF 2009] ----------= --------- % [#] =F0=E5=F8=E5=ED=E0 =EF=F0=EE=E1=EB=E5=EC=E0 =F1 =EE=F2=F1=F2=F3=EF=E0= =EC=E8 =EF=EE=F1=EB=E5 =F1=EA=EE=E1=EE=EA % -------------------- 0.90 [20 =F1=E5=ED=F2=FF=E1=F0=FF 2009] ----------= --------- % [!] =EF=E5=F0=E2=E0=FF =EF=F3=E1=EB=E8=F7=ED=E0=FF =E2=E5=F0=F1=E8=FF % % % =C8=C7=C2=C5=D1=D2=CD=DB=C5 =CF=D0=CE=C1=CB=C5=CC=DB: % =E2 =E2=FB=F0=E0=E6=E5=ED=E8=FF=F5 =F2=E8=EF=E0 $\sum -y$ =ED=F3=E6=ED=EE= =E2=F0=F3=F7=ED=F3=FE =E2=F1=F2=E0=E2=EB=FF=F2=FC \nobr % =EF=E5=F0=E5=E4 - (=F2=EE =E5=F1=F2=FC =EF=E8=F1=E0=F2=FC $\sum \nobr-y= $) % =EF=E0=EA=E5=F2 xy: =E4=EB=FF =EA=EE=F0=F0=E5=EA=F2=ED=EE=E9 =F0=E0=E1=EE= =F2=FB =E4=EE=EB=E6=E5=ED =E7=E0=E3=F0=F3=E6=E0=F2=FC =EF=EE=F1=EB=E5 rum= athbr % =EF=E0=EA=E5=F2 breqn: =ED=E5 =EC=EE=E6=E5=F2 =F0=E0=E1=EE=F2=E0=F2=FC = =F1=EE=E2=EC=E5=F1=F2=ED=EE =F1 rumathbr % =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{rumathbr}[2010/01/31 v0.98] \@ifpackageloaded{breqn}% { \PackageError{rumathbr}{'rumathbr' package cannot be used together with= 'breqn' package!}{}% }{} \@ifpackageloaded{xy}% { \PackageError{rumathbr}{'rumathbr' package should be loaded before 'xy'= package!}{}% }{} % INTERFACE % makes next symbol nonbreakable \def\nobr{\penalty\relpenalty} % makes breakable binary operation \def\SetBreakableBin#1{\rumathbr@setbreakable{#1}{\brokenbin}} % makes breakable relation sign \def\SetBreakableRel#1{\rumathbr@setbreakable{#1}{\brokenrel}} % makes breakable inner (like \ldots) \def\SetBreakableInner#1{\rumathbr@setbreakable{#1}{\brokeninner}} % disables breaks after open bracket \def\SetOpenBracket#1{\rumathbr@nobrafter{#1}} % disables breaks after punctuation sign \def\SetPunctuation#1{\rumathbr@nobrafter{#1}} % makes argument as breakable binary operation \DeclareRobustCommand{\brokenbin}[1]{\rumathbr@brokenbin{#1}} % makes argument as breakable relation sign \DeclareRobustCommand{\brokenrel}[1]{\rumathbr@brokenrel{#1}} % makes argument as breakable inner \DeclareRobustCommand{\brokeninner}[1]{\rumathbr@brokeninner{#1}} % IMPLEMENTATION % save default penalty to \exhyphenpenalty % (as \exhyphenpenalty will be actual penalty for mathbreaks) \exhyphenpenalty=3D\relpenalty % disable default breaks \relpenalty=3D13131 \binoppenalty=3D14141 % first symbol in equation is nonbreakable \expandafter\everymath\expandafter{\the\everymath\nobr } % setup basic math \catcode`\^=3D7 \let\upperindex=3D^ \catcode`\^=3D12 \catcode`\_=3D8 \let\lowerindex=3D_ \catcode`\_=3D12 \begingroup \catcode`\=3D\active \xdef=3D{\noexpand\brokenrel{\mathchar\number\math= code`\=3D}} \catcode`\+\active \xdef+{\noexpand\brokenbin{\mathchar\number\mathcode= `\+}} \catcode`\-\active \xdef-{\noexpand\brokenbin{\mathchar\number\mathcode= `\-}} \catcode`\*\active \xdef*{\noexpand\brokenbin{\mathchar\number\mathcode= `\*}} \catcode`\<\active \xdef<{\noexpand\brokenrel{\mathchar\number\mathcode= `\<}} \catcode`\>\active \xdef>{\noexpand\brokenrel{\mathchar\number\mathcode= `\>}} \catcode`\_\active \gdef_#1{\lowerindex{{#1}}} \catcode`\^\active \gdef^#1{\upperindex{{#1}}} \catcode`\(\active \xdef({\mathopen\delimiter\number\delcode`\(\noexpan= d\nobr } \catcode`\[\active \xdef[{\mathopen\delimiter\number\delcode`\[\noexpan= d\nobr } \catcode`\:\active \gdef:{\futurelet\rumathbr@let@token\rumathbr@colont= est} \endgroup \def\rumathbr@colontest% check for :=3D { \ifx=3D\rumathbr@let@token \expandafter\rumathbr@letsign \else \expandafter\rumathbr@colon \fi } \edef\rumathbr@letsign#1{\noexpand\brokenrel{\mathchar\number\mathcode`\:= \mathchar\number\mathcode`\=3D}} \edef\rumathbr@colon{\noexpand\brokenrel{\mathchar\number\mathcode`\:}} \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 \xdef,{\mathpunct\mathchar\number\mathcode`\,\noexpand\nobr } \else \expandafter\gdef\expandafter\domathcomma\expandafter{\domathcomma\= nobr} \fi } \endgroup \begingroup \catcode`\;\active \@ifpackageloaded{program}% check for 'program' package { \gdef;{\ifmmode\semicolon\;\nobr\else\@semicolon\fi} }{ \xdef;{\mathpunct\mathchar\number\mathcode`\;\noexpand\nobr } } \endgroup \AtBeginDocument% { \mathcode`\=3D=3D32768% "8000 \mathcode`\<=3D32768 \mathcode`\>=3D32768 \mathcode`\+=3D32768 \mathcode`\-=3D32768 \mathcode`\*=3D32768 \mathcode`\_=3D32768 \mathcode`\^=3D32768 \mathcode`\(=3D32768 \mathcode`\[=3D32768 \mathcode`\:=3D32768 \mathcode`\,=3D32768 \mathcode`\;=3D32768 \let\rumathbr@orig@resetMathstrut=3D\resetMathstrut@ \begingroup \gdef\resetMathstrut@ { \mathcode`\(=3D16424% "4028 \rumathbr@orig@resetMathstrut \mathcode`\(=3D32768% "8000 } \gdef\newmcodes@ { \mathcode`\'=3D39 \mathcode`\*=3D42 \mathcode`\.=3D24890% "613A \mathcode`\-=3D45 \mathcode`\/=3D47 \mathcode`\:=3D24634% "603A \relax } \endgroup% } \def\rumathbr@ReDeclareRobustCommand#1#2% { \begingroup \ifx#1\undefined \else \edef\var@orig@I{rumathbr@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\en= dcsname} \fi \endgroup% } \def\rumathbr@ReDeclareRobustCommandI#1#2% { \begingroup \ifx#1\undefined \else \edef\var@orig@I{rumathbr@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\en= dcsname} \fi \endgroup% } \def\rumathbr@setbrokens% { \rumathbr@ReDeclareRobustCommandI{\brokenbin}{\rumathbr@brokenbin{##1}}= \rumathbr@ReDeclareRobustCommandI{\brokenrel}{\rumathbr@brokenrel{##1}}= \rumathbr@ReDeclareRobustCommandI{\brokeninner}{\rumathbr@brokeninner{#= #1}}% } \def\rumathbr@unsetbrokens% { \def\brokenbin##1{##1} \def\brokenrel##1{##1} \def\brokeninner##1{##1}% } \def\rumathbr@brokenbin#1% { \relax \def\rumathbr@arg{#1} \def\rumathbr@this{\rumathbr@brokenbin} \def\rumathbr@output{\rumathbr@@brokenbin} \futurelet\rumathbr@let@token\rumathbr@brokenop% } \def\rumathbr@brokenrel#1% { \relax \def\rumathbr@arg{#1} \def\rumathbr@this{\rumathbr@brokenrel} \def\rumathbr@output{\rumathbr@@brokenrel} \futurelet\rumathbr@let@token\rumathbr@brokenop% } \def\rumathbr@brokeninner#1% { \relax \def\rumathbr@arg{#1} \def\rumathbr@this{\rumathbr@brokeninner} \def\rumathbr@output{\rumathbr@@brokeninner} \futurelet\rumathbr@let@token\rumathbr@brokenop% } \def\rumathbr@@brokenbin#1% { \ifnum\lastpenalty=3D\relpenalty \mathbin{#1} \else \mathbin{#1}\rumathbr@selector{#1} \fi \rumathbr@setbrokens \penalty\binoppenalty % } \def\rumathbr@@brokenrel#1% { \ifnum\lastpenalty=3D\relpenalty \mathrel{#1} \else \mathrel{#1}\rumathbr@selector{#1} \fi \rumathbr@setbrokens \penalty\relpenalty % } \def\rumathbr@@brokeninner#1% { \ifnum\lastpenalty=3D\relpenalty \mathinner{#1} \else \mathinner{#1}\rumathbr@selector{#1} \fi \rumathbr@setbrokens \penalty\relpenalty % } \def\rumathbr@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$}}{}}% } \def\rumathbr@brokenop% { \ifmmode \rumathbr@unsetbrokens \ifx_\rumathbr@let@token \let\@command=3D\rumathbr@brokenglue \else\ifx^\rumathbr@let@token \let\@command=3D\rumathbr@brokenglue \else\ifx\relax\rumathbr@let@token \let\@command=3D\rumathbr@brokenskiprelax \else \let\@command=3D\rumathbr@output \fi\fi\fi \else \let\@command=3D\relax \fi \expandafter\@command{\rumathbr@arg}% } \def\rumathbr@brokenglue#1#2#3% { \edef\rumathbr@temp{#1#2{#3}} \expandafter\rumathbr@this{\rumathbr@temp}% } \def\rumathbr@brokenskiprelax#1#2% { \edef\rumathbr@temp{#1#2} \expandafter\rumathbr@this{\rumathbr@temp}% } \def\rumathbr@setbreakable#1#2% { \begingroup \ifx#1\undefined \else \edef\rumathbr@orig{rumathbr@orig@\expandafter\@gobble\string#1} \expandafter\ifx\csname\rumathbr@orig\endcsname\relax \expandafter\rumathbr@ReDeclareRobustCommand\expandafter#1\expand= after{\expandafter#2\expandafter{\csname\rumathbr@orig\endcsname}} \fi \fi \endgroup% } \def\rumathbr@nobrafter#1% { \begingroup \ifx#1\undefined \else \edef\rumathbr@orig{rumathbr@orig@\expandafter\@gobble\string#1} \expandafter\ifx\csname\rumathbr@orig\endcsname\relax \expandafter\rumathbr@ReDeclareRobustCommand\expandafter#1\expand= after{\csname\rumathbr@orig\endcsname\nobr} \fi \fi \endgroup% } % REDECLARATION OF MATH SIGNS % redeclare \not \rumathbr@ReDeclareRobustCommandI{\not}% { \begingroup \edef\rumathbr@orig{rumathbr@orig@\expandafter\@gobble\string#1} \expandafter\ifx\csname\rumathbr@orig\endcsname\relax \brokenrel{\rumathbr@orig@not#1} \else \expandafter\brokenrel\expandafter{\expandafter\rumathbr@orig@not\c= sname\rumathbr@orig\endcsname} \fi \endgroup% } % Open brackets \rumathbr@ReDeclareRobustCommandI{\bigl}{\mathopen\big#1\nobr} \rumathbr@ReDeclareRobustCommandI{\Bigl}{\mathopen\Big#1\nobr} \rumathbr@ReDeclareRobustCommandI{\biggl}{\mathopen\bigg#1\nobr} \rumathbr@ReDeclareRobustCommandI{\Biggl}{\mathopen\Bigg#1\nobr} \SetOpenBracket{\lmoustache} \SetOpenBracket{\langle} \SetOpenBracket{\lbrace} \SetOpenBracket{\lceil} \SetOpenBracket{\lfloor} \SetOpenBracket{\lgroup} \SetOpenBracket{\lvert} \SetOpenBracket{\lVert} \SetOpenBracket{\ulcorner} \SetOpenBracket{\llcorner} \SetOpenBracket{\Lbrack} % Punctuations \SetPunctuation{\ldotp} \SetPunctuation{\cdotp} \SetPunctuation{\colon} \SetPunctuation{\period} % Inners - uncomment if you like to make it breakable %\SetBreakableInner{\ldots} %\SetBreakableInner{\cdots} % Binary Operations \SetBreakableBin{\triangleleft} \SetBreakableBin{\triangleright} \SetBreakableBin{\bigtriangleup} \SetBreakableBin{\bigtriangledown} \SetBreakableBin{\wedge} \let\land=3D\wedge \SetBreakableBin{\vee} \let\lor=3D\vee \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} % TODO (if possible - it should be changed to \t= imes on hyphenation) \def\*{\discretionary{\thinspace\the\textfont2\char2} {\the\textfont2\char2\thinspace}{}} % Relations \SetBreakableRel{\propto} \SetBreakableRel{\sqsubseteq} \SetBreakableRel{\sqsupseteq} \SetBreakableRel{\parallel} \SetBreakableRel{\mid} \SetBreakableRel{\dashv} \SetBreakableRel{\vdash} \SetBreakableRel{\leq} \let\le=3D\leq \SetBreakableRel{\geq} \let\ge=3D\geq \SetBreakableRel{\succ} \SetBreakableRel{\prec} \SetBreakableRel{\approx} \SetBreakableRel{\succeq} \SetBreakableRel{\preceq} \SetBreakableRel{\supset} \SetBreakableRel{\subset} \SetBreakableRel{\supseteq} \SetBreakableRel{\subseteq} \SetBreakableRel{\in} \SetBreakableRel{\ni} \let\owns=3D\ni \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 % Arrows \SetBreakableRel{\nearrow} \SetBreakableRel{\searrow} \SetBreakableRel{\nwarrow} \SetBreakableRel{\swarrow} \SetBreakableRel{\Leftrightarrow} \SetBreakableRel{\Leftarrow} \SetBreakableRel{\Rightarrow} \SetBreakableRel{\leftrightarrow} \SetBreakableRel{\leftarrow} \let\gets=3D\leftarrow \SetBreakableRel{\rightarrow} \let\to=3D\rightarrow \SetBreakableRel{\leftharpoonup} \SetBreakableRel{\leftharpoondown} \SetBreakableRel{\rightharpoonup} \SetBreakableRel{\rightharpoondown} \SetBreakableRel{\longleftarrow} \SetBreakableRel{\Longleftarrow} \SetBreakableRel{\longrightarrow} \SetBreakableRel{\Longrightarrow} \SetBreakableRel{\longleftrightarrow} \SetBreakableRel{\Longleftrightarrow} %\mapstochar - unlikely used as relation symbol by itself (without \joinr= el to smth.) \SetBreakableRel{\mapsto} \SetBreakableRel{\longmapsto} %\lhook - unlikely used as relation symbol by itself (without \joinrel to= smth.) %\rhook - unlikely used as relation symbol by itself (without \joinrel to= smth.) \SetBreakableRel{\hookleftarrow} \SetBreakableRel{\hookrightarrow} \SetBreakableRel{\rightleftharpoons} %From latexsym \SetBreakableBin{\lhd} \SetBreakableBin{\unlhd} \SetBreakableBin{\rhd} \SetBreakableBin{\unrhd} \SetBreakableRel{\Join} \SetBreakableRel{\leadsto} \SetBreakableRel{\sqsubset} \SetBreakableRel{\sqsupset} \@ifpackageloaded{amsfonts}% amsfonts { \SetBreakableRel{\dashrightarrow} \global\let\dasharrow\dashrightarrow \SetBreakableRel{\dashleftarrow} \SetBreakableRel{\vartriangleright} \SetBreakableRel{\vartriangleleft} \SetBreakableRel{\trianglerighteq} \SetBreakableRel{\trianglelefteq} \SetBreakableRel{\rightsquigarrow} \global\let\leadsto\rightsquigarrow }{} \@ifpackageloaded{amssymb}% amssymb { \SetBreakableBin{\boxdot} \SetBreakableBin{\boxplus} \SetBreakableBin{\boxtimes} \SetBreakableBin{\centerdot} \SetBreakableBin{\boxminus} \SetBreakableBin{\veebar} \SetBreakableBin{\barwedge} \SetBreakableBin{\doublebarwedge} \SetBreakableBin{\Cup} \global\let\doublecup\Cup \SetBreakableBin{\Cap} \global\let\doublecap\Cap \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} \global\let\restriction\upharpoonrigh= t \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} \global\let\Doteq\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} \SetBreakableRel{\varpropto} \SetBreakableRel{\smallsmile} \SetBreakableRel{\smallfrown} \SetBreakableRel{\Subset} \SetBreakableRel{\Supset} \SetBreakableRel{\subseteqq} \SetBreakableRel{\supseteqq} \SetBreakableRel{\bumpeq} \SetBreakableRel{\Bumpeq} \SetBreakableRel{\lll} \global\let\llless\lll \SetBreakableRel{\ggg} \global\let\gggtr\ggg \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} }{} \@ifpackageloaded{amstex}% amstex { \SetBreakableRel{\vartriangleright} \global\let\rhd\vartriangleright \SetBreakableRel{\vartriangleleft} \global\let\lhd\vartriangleleft \SetBreakableRel{\trianglerighteq} \global\let\unrhd\trianglerighteq \SetBreakableRel{\trianglelefteq} \global\let\unlhd\trianglelefteq \SetBreakableRel{\rightsquigarrow} \global\let\leadsto\rightsquigarrow= }{} \@ifpackageloaded{boisik}% boisik { \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} \global\let\llless\lll \SetBreakableRel{\ggg} \global\let\gggtr\ggg \SetBreakableRel{\triangleq} \SetBreakableRel{\circeq} \SetBreakableRel{\eqcirc} \SetBreakableRel{\doteqdot} \global\let\Doteq\doteqdot \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} \global\let\doublecup\Cup \SetBreakableBin{\Cap} \global\let\doublecap\Cap \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} }{} \@ifpackageloaded{euler}% euler { \SetBreakableRel{\uparrow} \SetBreakableRel{\downarrow} \SetBreakableRel{\updownarrow} \SetBreakableRel{\Uparrow} \SetBreakableRel{\Downarrow} \SetBreakableRel{\Updownarrow} % \SetBreakableRel{\lhook} % \SetBreakableRel{\rhook} }{} \@ifpackageloaded{fourier}% fourier { \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} }{} % Lucida font (lucbmath,lucidabr,lucmin,lucmtime,luctime) \def\do#1{} \@ifpackageloaded{lucbmath}{ \gdef\do#1{#1} }{} \@ifpackageloaded{lucidabr}{ \gdef\do#1{#1} }{} \@ifpackageloaded{lucmin} { \gdef\do#1{#1} }{} \@ifpackageloaded{lucmtime}{ \gdef\do#1{#1} }{} \@ifpackageloaded{luctime} { \gdef\do#1{#1} }{} \do{ % \SetBreakableRel{\relbar} % \SetBreakableRel{\Relbar} \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} } \@ifpackageloaded{mathbbol}% mathybbol { \SetOpenBracket{\Langle} \SetOpenBracket{\Lparen} }{} \@ifpackageloaded{mdwmath}% mdwmath { \SetBreakableBin{\bitand} \begingroup \catcode`\&\active \xdef&{\noexpand\brokenbin{\mathchar\number\mathco= de`\&}} \endgroup \AtBeginDocument{\mathcode`\&=3D32768 } }{} \@ifpackageloaded{sbbm}% sbbm { \SetOpenBracket{\Lparen} }{} \@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} }{} \@ifpackageloaded{wasysym}% wasysym { \SetBreakableBin{LHD} \SetBreakableBin{RHD} \SetBreakableRel{apprle} \SetBreakableRel{apprge} \SetBreakableRel{wasypropto} \SetBreakableRel{invneg} \SetBreakableBin{ocircle} \SetBreakableRel{logof} }{} ------=_NextPart_000_01BA_01CAA2A3.B3373870--