From 79a173622efe7820bb3dfefaeb0b13303ef08b08 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 23 May 2020 03:00:54 +0000 Subject: CTAN sync 202005230300 --- macros/latex/contrib/rec-thy/rec-thy.sty | 330 ++++++++++++++++++++++++++----- 1 file changed, 283 insertions(+), 47 deletions(-) (limited to 'macros/latex/contrib/rec-thy/rec-thy.sty') diff --git a/macros/latex/contrib/rec-thy/rec-thy.sty b/macros/latex/contrib/rec-thy/rec-thy.sty index 4f69ee5fe3..e4faaa5454 100644 --- a/macros/latex/contrib/rec-thy/rec-thy.sty +++ b/macros/latex/contrib/rec-thy/rec-thy.sty @@ -1,5 +1,7 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{rec-thy}[2019/02/17 v3.01 Provides commands for writing up recursion theory papers] +% Release Notes see README +\def\recthyVersion{3.3} +\ProvidesPackage{rec-thy}[v3.3 Provides commands for writing up recursion theory papers] \makeatletter % \newcommand*{\@curpack}{\@currname} %rec-thy.sty \newcommand*{\@packinfo}[1]{\PackageInfo{rec-thy}{#1}} @@ -12,10 +14,7 @@ %leaves us a command \arg defined to do \@recthy@arg % \ProvidesPackage{\@curpack} %file name is package name -% Release Notes -% Version 1.2 -% Added mrref option -% Fixed horrific option processing bug + \RequirePackage{ltxcmds} \RequirePackage{ifxetex,ifpdf} \RequirePackage{suffix} @@ -23,6 +22,7 @@ \RequirePackage{xifthen} \RequirePackage{xkeyval} \RequirePackage{etoolbox} +\RequirePackage{pict2e,picture} \robustify\( \robustify\) \RequirePackage{xparse} @@ -103,6 +103,7 @@ \newif\ifrecthy@nosuppprioritytrees \recthy@nosuppprioritytreestrue \newif\ifrecthy@hyperreqs \recthy@hyperreqstrue \newif\ifrecthy@nooperators \recthy@nooperatorsfalse +\newif\ifrecthy@fix@typeset \recthy@fix@typesettrue %\newif\ifrecthy@nomodule \recthy@nomodulefalse \DeclareOptionX{nohyphenation}{\recthy@nohyphenationtrue} @@ -131,6 +132,11 @@ \DeclareOptionX{suppPriorityTrees}{\recthy@nosuppprioritytreesfalse} \DeclareOptionX{nohyperreqs}{\recthy@hyperreqsfalse} \DeclareOptionX{nooperators}{\recthy@nooperatorstrue} +\DeclareOptionX{compat31}{\recthy@compat@threeOne} +\DeclareOptionX{nofixtype}{\ifrecthy@fix@typesetfalse} + +\newcommand*{\recthy@compat@threeOne}{\recthy@rollback@threeTwo@threeOne@REA} +\newcommand*{\recthy@rollback@threeTwo@threeOne@REA}{} %\DeclareOptionX{nomodule}{\recthy@nomoduletrue} \DeclareOptionX{degjoin}{\def\Tjoin{\Tdegjoin}} @@ -142,6 +148,84 @@ \let\@recthy@ballsymb\@recthy@ballsymb@default \DeclareOptionX{ballsymb}[@recthy@ballsymb@default]{\letcs{\@recthy@ballsymb}{#1}} +\AtEndOfPackage{ + \ifrecthy@fix@typeset + %Defining \overbar + \let\save@mathaccent\mathaccent + \newcommand*\if@single[3]{% + \setbox0\hbox{${\mathaccent"0362{#1}}^H$}% + \setbox2\hbox{${\mathaccent"0362{\kern0pt#1}}^H$}% + \ifdim\ht0=\ht2 #3\else #2\fi + } + %The bar will be moved to the right by a half of \macc@kerna, which is computed by amsmath: + \newcommand*\rel@kern[1]{\kern#1\dimexpr\macc@kerna} + %If there's a superscript following the bar, then no negative kern may follow the bar; + %an additional {} makes sure that the superscript is high enough in this case: + \providecommand*\overbar{\relax} + \renewcommand*\overbar[1]{\@ifnextchar^{{\over@bar{#1}{0}}}{\over@bar{#1}{1}}} + %Use a separate algorithm for single symbols: + \newcommand*\over@bar[2]{\if@single{#1}{\over@bar@{#1}{#2}{1}}{\over@bar@{#1}{#2}{2}}} + \newcommand*\over@bar@[3]{% + \begingroup + \def\mathaccent##1##2{% + %Enable nesting of accents: + \let\mathaccent\save@mathaccent + %If there's more than a single symbol, use the first character instead (see below): + \if#32 \let\macc@nucleus\first@char \fi + %Determine the italic correction: + \setbox\z@\hbox{$\macc@style{\macc@nucleus}_{}$}% + \setbox\tw@\hbox{$\macc@style{\macc@nucleus}{}_{}$}% + \dimen@\wd\tw@ + \advance\dimen@-\wd\z@ + %Now \dimen@ is the italic correction of the symbol. + \divide\dimen@ 3 + \@tempdima\wd\tw@ + \advance\@tempdima-\scriptspace + %Now \@tempdima is the width of the symbol. + \divide\@tempdima 10 + \advance\dimen@-\@tempdima + %Now \dimen@ = (italic correction / 3) - (Breite / 10) + \ifdim\dimen@>\z@ \dimen@0pt\fi + %The bar will be shortened in the case \dimen@<0 ! + \rel@kern{0.6}\kern-\dimen@ + \if#31 + \overline{\rel@kern{-0.6}\kern\dimen@\macc@nucleus\rel@kern{0.4}\kern\dimen@}% + \advance\dimen@0.4\dimexpr\macc@kerna + %Place the combined final kern (-\dimen@) if it is >0 or if a superscript follows: + \let\final@kern#2% + \ifdim\dimen@<\z@ \let\final@kern1\fi + \if\final@kern1 \kern-\dimen@\fi + \else + \overline{\rel@kern{-0.6}\kern\dimen@#1}% + \fi + }% + \macc@depth\@ne + \let\math@bgroup\@empty \let\math@egroup\macc@set@skewchar + \mathsurround\z@ \frozen@everymath{\mathgroup\macc@group\relax}% + \macc@set@skewchar\relax + \let\mathaccentV\macc@nested@a + %The following initialises \macc@kerna and calls \mathaccent: + \if#31 + \macc@nested@a\relax111{#1}% + \else + %If the argument consists of more than one symbol, and if the first token is + %a letter, use that letter for the computations: + \def\gobble@till@marker##1\endmarker{}% + \futurelet\first@char\gobble@till@marker#1\endmarker + \ifcat\noexpand\first@char A\else + \def\first@char{}% + \fi + \macc@nested@a\relax111{\first@char}% + \fi + \endgroup + } + \else + \@packinfo{Not loading Fix Typesetting} + \fi + +} + + \AtEndOfPackage{ \ifrecthy@noprioritytrees \@packinfo{Not loading Priority Tree Helper} @@ -287,16 +371,104 @@ \else \@packinfo{Loading subfun defs.} %DOCUMENT ME + \newcommand{\@pnrelbar}{% + \linethickness{\dimen2}% + \sbox\z@{$\m@th\prec$}% + \dimen@=1.1\ht\z@ + \begin{picture}(\dimen@,.4ex) + \roundcap + \put(0,.2ex){\line(1,0){\dimen@}} + \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}} + \end{picture}% +} + +% \newcommand{\not@pnrelbar}{% +% \linethickness{\dimen2}% +% \sbox\z@{$\m@th\nprec$}% +% \dimen@=1.1\ht\z@ +% \begin{picture}(\dimen@,.4ex) +% \roundcap +% \put(0,.2ex){\line(1,0){\dimen@}} +% \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}} +% \end{picture}% +% } + + \newcommand{\@snrelbar}{% + \linethickness{\dimen2}% + \sbox\z@{$\m@th\succ$}% + \dimen@=1.1\ht\z@ + \begin{picture}(\dimen@,.4ex) + \roundcap + \put(0,.2ex){\line(1,0){\dimen@}} + \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}} + \end{picture}% +} + +% \newcommand{\not@snrelbar}{% +% \linethickness{\dimen2}% +% \sbox\z@{$\m@th\nsucc$}% +% \dimen@=1.1\ht\z@ +% \begin{picture}(\dimen@,.4ex) +% \roundcap +% \put(0,.2ex){\line(1,0){\dimen@}} +% \put(\dimexpr 0.5\dimen@-.2ex\relax,0){\line(1,1){.4ex}} +% \end{picture}% +% } + +\newcommand{\@precneq}{\mathrel{\vcenter{\hbox{\text{\prec@neq}}}}} +\newcommand{\prec@neq}{% + \dimen2=\f@size\dimexpr.04pt\relax + \oalign{% + \noalign{\kern\dimexpr.2ex-.5\dimen2\relax} + $\m@th\prec$\cr + \noalign{\kern-.5\dimen2} + \hidewidth\@pnrelbar\hidewidth\cr + }% +} + +% \newcommand{\@nprecneq}{\mathrel{\vcenter{\hbox{\text{\nprec@neq}}}}} +% \newcommand{\nprec@neq}{% +% \dimen2=\f@size\dimexpr.04pt\relax +% \oalign{% +% \noalign{\kern\dimexpr.2ex-.5\dimen2\relax} +% $\m@th\nprec$\cr +% \noalign{\kern-.5\dimen2} +% \hidewidth\not@pnrelbar\hidewidth\cr +% }% +% } + +\newcommand{\@succneq}{\mathrel{\vcenter{\hbox{\text{\succ@neq}}}}} +\newcommand{\succ@neq}{% + \dimen2=\f@size\dimexpr.04pt\relax + \oalign{% + \noalign{\kern\dimexpr.2ex-.5\dimen2\relax} + $\m@th\prec$\cr + \noalign{\kern-.5\dimen2} + \hidewidth\@snrelbar\hidewidth\cr + }% +} + +% \newcommand{\@nsuccneq}{\mathrel{\vcenter{\hbox{\text{\nsucc@neq}}}}} +% \newcommand{\nsucc@neq}{% +% \dimen2=\f@size\dimexpr.04pt\relax +% \oalign{% +% \noalign{\kern\dimexpr.2ex-.5\dimen2\relax} +% $\m@th\nprec$\cr +% \noalign{\kern-.5\dimen2} +% \hidewidth\not@snrelbar\hidewidth\cr +% }% +% } + \NewDocumentCommand{\subfun}{o}{\prec\IfNoValueTF{#1}{}{_{#1}}} \NewDocumentCommand{\supfun}{o}{\succ\IfNoValueTF{#1}{}{_{#1}}} \NewDocumentCommand{\nsubfun}{o}{\nprec\IfNoValueTF{#1}{}{_{#1}}} \NewDocumentCommand{\nsupfun}{o}{\nsucc\IfNoValueTF{#1}{}{_{#1}}} \NewDocumentCommand{\subfuneq}{o}{\preceq\IfNoValueTF{#1}{}{_{#1}}} + \NewDocumentCommand{\subfunneq}{o}{\@precneq\IfNoValueTF{#1}{}{_{#1}}} \NewDocumentCommand{\supfuneq}{o}{\succeq\IfNoValueTF{#1}{}{_{#1}}} + \NewDocumentCommand{\supfunneq}{o}{\@succneq\IfNoValueTF{#1}{}{_{#1}}} \NewDocumentCommand{\nsubfuneq}{o}{\npreceq\IfNoValueTF{#1}{}{_{#1}}} \NewDocumentCommand{\nsupfuneq}{o}{\nsucceq\IfNoValueTF{#1}{}{_{#1}}} - \NewDocumentCommand{\subfunneq}{o}{\precneq\IfNoValueTF{#1}{}{_{#1}}} - \NewDocumentCommand{\supfunneq}{o}{\succneq\IfNoValueTF{#1}{}{_{#1}}} \fi } @@ -449,7 +621,8 @@ \fi } -\newcommand*{\@recthy@abs}[1]{\lvert#1\rvert} +% \newcommand*{\@recthy@abs}[1]{\lvert#1\rvert} +\DeclarePairedDelimiter\@recthy@abs{\lvert}{\rvert} \newcommand*{\@recthy@ensuretext}[1]{\ensuremath{\text{#1}}} \AtEndOfPackage{ \ifrecthy@nomath @@ -466,7 +639,8 @@ \else \DeclareMathOperator{\Ord}{Ord} \fi - + \DeclarePairedDelimiter\ceil{\lceil}{\rceil} + \DeclarePairedDelimiter\floor{\lfloor}{\rfloor} \recthy@strip{abs} \ifdefined\dom @@ -480,17 +654,40 @@ \providecommand*{\restr}[1]{\mathpunct{\restriction_{#1}}} \providecommand*{\ordpair}[2]{\left( #1, #2 \right) } %%%%%%%%Function commands - \providecommand*{\map}[2]{:#1\mapsto #2} - \providecommand*{\functo}[3]{#1\map{#2}{#3}} + \let\recthy@rollback@threeTwo@threeOne@REA@mathsave=\recthy@rollback@threeTwo@threeOne@REA + \renewcommand*{\recthy@rollback@threeTwo@threeOne@REA}{ + \providecommand*{\map}[2]{:#1\mapsto #2} + \providecommand*{\functo}[3]{#1\map{#2}{#3}} + \ifdefined\funcomp + \else + \let\funcomp=\compfunc + \fi + \recthy@rollback@threeTwo@threeOne@REA@mathsave + } + \providecommand*{\compfunc}{\mathbin{\circ}} \ifdefined\compose \else \let\compose=\compfunc \fi - \ifdefined\funcomp - \else - \let\funcomp=\compfunc - \fi + \ltx@ifpackageloaded{unicode-math}{ + \newcommand{\pmapsto}{\mathrel{\nvrightarrow}} + \newcommand{\pmapsfrom}{\mathrel{\nvleftarrow}} + }{ + % \newcommand{\pmapsto}{}% just for safety + % \newcommand{\pmapsfrom}{}% just for safety + + \DeclareRobustCommand{\pmapsto}{\mathrel{\mathpalette\p@to@gets\to}} + \DeclareRobustCommand{\pmapsfrom}{\mathrel{\mathpalette\p@to@gets\gets}} + + \newcommand{\p@to@gets}[2]{% + \ooalign{\hidewidth$\m@th#1\mapstochar\mkern5mu$\hidewidth\cr$\m@th#1\to$\cr}% + } + } + \newcommand{\fpmapsto}{\mathrel{\pmapsto_{< \infty}}} + \newcommand{\fpmapsfrom}{\mathrel{\pmapsfrom_{< \infty}}} + \newcommand{\ParFuncs}[2]{{#2}^{\subset #1}} + \newcommand{\FinParFuncs}[2]{{#2}^{\subset_{< \infty} #1}} \recthy@strip{ensuretext} \fi } @@ -571,10 +768,16 @@ \newcommand*{\@recthy@Computable}{\@recthy@ensuretext{Computable}} \newcommand*{\@recthy@RecursivelyEnumerable}{\@recthy@ensuretext{Recursively enumerable}} \newcommand*{\@recthy@ComputablyEnumerable}{\@recthy@ensuretext{Computably enumerable}} -\newcommand*{\@recthy@REA}{\ensuremath{\text{REA}}} -\WithSuffix\def\@recthy@REA[#1]{#1-\@recthy@REA\relax} -\newcommand*{\@recthy@CEA}{\ensuremath{\text{CEA}}} -\WithSuffix\def\@recthy@CEA[#1]{#1-\@recthy@CEA\relax} +\def\@recthy@REA{REA} +\def\@recthy@CEA{CEA} + +\NewDocumentCommand{\REA}{d()o}{\ensuremath{\IfValueTF{#2}{#2-}{}\text{\@recthy@REA}\IfValueTF{#1}{[#1]}{}}} +\NewDocumentCommand{\CEA}{d()o}{\ensuremath{\IfValueTF{#2}{#2-}{}\text{\@recthy@CEA}\IfValueTF{#1}{[#1]}{}}} + +% \newcommand*{\@recthy@REA}{\ensuremath{\text{REA}}} +% \WithSuffix\def\@recthy@REA[#1]{#1-\@recthy@REA\relax} +% \newcommand*{\@recthy@CEA}{\ensuremath{\text{CEA}}} +% \WithSuffix\def\@recthy@CEA[#1]{#1-\@recthy@CEA\relax} \DeclareOptionX{reterms}{% \let\@recthy@ce=\@recthy@re @@ -597,9 +800,7 @@ \DeclareOptionX{ceaterms}{% \let\@recthy@REA=\@recthy@CEA } -\DeclareOptionX{reaterms}{% - \let\@recthy@CEA=\@recthy@REA - } + @@ -614,8 +815,6 @@ \recthy@strip{CE} \recthy@strip{Re} \recthy@strip{Ce} - \recthy@strip{REA} - \recthy@strip{CEA} \recthy@strip{recursive} \recthy@strip{computable} \recthy@strip{recursivelyEnumerable} @@ -632,7 +831,7 @@ -\NewDocumentCommand{\@recthy@set}{mg}{\left \{ #1 \IfNoValueTF{#2}{}{\middle | #2} \right \}} +\NewDocumentCommand{\@recthy@set}{mg}{\left \{ #1 \IfNoValueTF{#2}{}{\mid #2} \right \}} % \def\@recthy@set#1{\def\@set@argi@pmg{#1}\@ifnextchar\bgroup\@setst@pmg\@setplain@pmg} % \newcommand*{\@setst@pmg}[1]{\ifthenelse{\isempty{#1}}{\@setplain@pmg}{\left \{ \@set@argi@pmg \middle | #1\right \}}} @@ -652,6 +851,7 @@ % \newcommand*{\@recthy@setcmpminusSYM}{\backsim} % \newcommand*{\@recthy@setminuscmp}[1]{\mathop{\@recthy@setcmpminusSYM} #1} \newcommand*{\@recthy@setovercmp}[1]{\overline{#1}} +\newcommand*{\@recthy@setsimcmp}[1]{\backsim #1} \let\@recthy@setcmp=\@recthy@setovercmp \def\@recthy@setdiffSYM{-} \newcommand*{\@recthy@setdiff}{\mathbin{\@recthy@setdiffSYM}} @@ -663,7 +863,7 @@ \AtEndOfPackage{ -\WithSuffix\def\@recthy@setcmp[#1]#2{#1\@recthy@setminus#2} +% \WithSuffix\def\@recthy@setcmp[#1]#2{#1\@recthy@setminus#2} \ifrecthy@nosets \@packinfo{No set cmds loading.} \else @@ -715,6 +915,8 @@ \newcommand*{\nforall@recthy}{\nforall@orig@recthy} \newcommand*{\existsuniq}{\exists@orig@recthy !} \newcommand*{\nexistsuniq}{\nexists@orig@recthy !} + + \NewDocumentCommand{\axset}{D<>{}d()O{}d()} \WithSuffix\def\existsuniq(#1){\left(\existsuniq #1 \right)\!} \WithSuffix\def\nexistsuniq(#1){\left(\nexistsuniq #1 \right)\!} \WithSuffix\def\existsuniq[#1]{\left[\existsuniq #1 \right]\!} @@ -943,27 +1145,44 @@ \else \@packinfo{ordinal notations loading.} -\providecommand*{\wck}{\ensuremath{\omega^{ck}_1}} +\providecommand*{\wck}{\ensuremath{\omega^{\mathrm{CK}}_1}} % \newcommand*{\ordtype}[1]{\ensuremath{\@recthy@abs{#1}_{\kleeneO}}} \newcommand*{\ordzero}{\ensuremath{0}} \def\kleeneOSYM{\mathcal{O}} - \newcommand*{\kleeneO}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@kleeneObody} - \newcommand*{\@kleeneObody}{\kleeneOSYM\ifdefined\@PMG@parenarg - ^{\@PMG@parenarg}% - \fi% - \ifdefined\@PMG@braketarg - _{\abs{\@PMG@braketarg}}% - \fi} - \WithSuffix\def\@kleeneObody(#1){\def\@PMG@parenarg{#1}\@kleeneObody} - \WithSuffix\def\@kleeneObody[#1]{\def\@PMG@braketarg{#1}\@kleeneObody} - \WithSuffix\def\@kleeneObody*{\def\kleeneOSYM{\overline{\mathcal{O}}}\@kleeneObody} - -\newcommand*{\kleeneObelow}[2][]{\kleeneOSYM_{<#2\ifthenelse{\isempty{#1}}{}{, #1}}} -\let\kleeneOless\kleeneObelow + \NewDocumentCommand{\kleeneO}{sD(){}oD(){}}{{ + \kleeneOSYM^{#2#4}_{% + \IfNoValueTF{#1}{% + \IfNoValueTF{#3}{}{% + \abs{#3}}% + }% + {% + 1% + \IfNoValueTF{#3}{}{% + , \abs{#3} + }% + }% + }% + }} + % \newcommand*{\kleeneO}{\let\@PMG@parenarg\@PMG@undefined\let\@PMG@braketarg\@PMG@undefined\@kleeneObody} + % \newcommand*{\@kleeneObody}{\kleeneOSYM\ifdefined\@PMG@parenarg + % ^{\@PMG@parenarg}% + % \fi% + % \ifdefined\@PMG@braketarg + % _{\abs{\@PMG@braketarg}}% + % \fi} + % \WithSuffix\def\@kleeneObody(#1){\def\@PMG@parenarg{#1}\@kleeneObody} + % \WithSuffix\def\@kleeneObody[#1]{\def\@PMG@braketarg{#1}\@kleeneObody} + % \WithSuffix\def\@kleeneObody*{\def\kleeneOSYM{\mathcal{O}}\@kleeneObody} + +% \newcommand*{\kleeneObelow}[2][]{\kleeneOSYM_{<#2\ifthenelse{\isempty{#1}}{}{, #1}}} +% \let\kleeneOless\kleeneObelow \newcommand*{\kleeneOuniq}{\kleeneO*} \let\ordNotations=\kleeneO \let\uniqOrdNotations=\kleeneOuniq + \newcommand*{\kleeneNum}[1]{{#1}_{\kleeneO}} + \newcommand*{\kleeneZero}{\kleeneNum{0}} + \newcommand*{\kleeneOne}{\kleeneNum{1}} \NewDocumentCommand{\kleeneless}{o}{<_{\kleeneO\IfNoValueTF{#1}{}{,#1}}} \let\kleenel=\kleeneless \NewDocumentCommand{\kleeneleq}{o}{\leq_{\kleeneO\IfNoValueTF{#1}{}{,#1}}} @@ -979,7 +1198,8 @@ \newcommand*{\kleenePlus}{\mathbin{+_{\kleeneO}}} \newcommand*{\kleeneMul}{\cdot_{\kleeneO}} \newcommand*{\kleenehgt}[1]{\lVert #1\rVert_{\kleeneO}} - \let\hgtO=\kleenehgt + \let\kleeneHgt=\kleenehgt + % \let\hgtO=\kleenehgt \newcommand*{\kleenelim}[2]{{#1}_{[#2]}} \newcommand*{\kleenepred}[1]{{#1}^{-}} @@ -1518,7 +1738,7 @@ \NewDocumentCommand{\nconv}{O{}}{\mathpunct{\mkern-4mu{\smallsetminus\mkern 4mu \downarrow}_{#1}}} \newcommand*{\diverge}{\mathpunct{\uparrow}} % \newcommand*{\use}[2]{\mathscr{u}(#1\ifthenelse{\isempty{#2}}{}{,#2})} - \newcommand*{\use}[1]{\mathop{\@recthy@useSYM}[#1]} + \newcommand*{\use}[1]{\mathop{\@recthy@useSYM}\left[#1\right]} % \newcommand*{\use}[1]{\ltx@ifpackageloaded{unicode-math}{\symbffrak{u}}{\mathfrak{u}}\left(#1\right)} % \NewDocumentCommand{\REset}{omd()}{ % W_{#2\IfNoValueTF{#1}{}{, #1}}\IfNoValueTF{#3}{}{^{#3}} @@ -1535,12 +1755,28 @@ \fi} \WithSuffix\def\@REsetbody(#1){\def\@PMG@parenarg{#1}\@REsetbody} \WithSuffix\def\@REsetbody[#1]{\def\@PMG@braketarg{#1}\@REsetbody} - \newcommand*{\alphaREAop}[2][]{\mathcal{J}^{#2}_{#1}} - \let\aREAop=\alphaREAop - \let\reaop=\alphaREAop - \newcommand*{\oneREAop}[1]{J_{#1}} + \NewDocumentCommand{\REAop}{st+d()od()mm}{{\IfBooleanTF{#1}{\mathcal{J}}{\widehat{\mathcal{J}}}}^{\IfBooleanTF{#1}{\vphantom{x}^\dagger}{}#7}_{#6\IfValueTF{#4}{, #4}{}} \IfValueTF{#3}{\left(#3\right)}{\IfValueTF{#5}{\left(#5\right)}{}}} + \NewDocumentCommand{\oneREAop}{st+d()od()m}{{\IfBooleanTF{#1}{\mathcal{J}}{\widehat{\mathcal{J}}}}^{\IfBooleanTF{#1}{\vphantom{x}^\dagger}{}}_{#6\IfValueTF{#4}{, #4}{}} \IfValueTF{#3}{\left(#3\right)}{\IfValueTF{#5}{\left(#5\right)}{}}} \let\iREAop=\oneREAop - \WithSuffix\def\reaop*#1{\oneREAop{#1}} + + \newcommand*{\entersat}[1]{\mathbin{\searrow_{#1}}} + + + % \newcommand*{\alphaREAop}[2][]{\mathcal{J}^{#2}_{#1}} + \let\recthy@rollback@threeTwo@threeOne@REA@computationssave=\recthy@rollback@threeTwo@threeOne@REA + \renewcommand*{\recthy@rollback@threeTwo@threeOne@REA}{ + \let\reaop=\REAop + \let\alphaREAop=\REAop + \let\aREAop=\alphaREAop + \recthy@rollback@threeTwo@threeOne@REA@computationssave + } + + + + + % \newcommand*{\oneREAop}[1]{J_{#1}} + % \let\iREAop=\oneREAop + % \WithSuffix\def\reaop*#1{\oneREAop{#1}} %converges \fi -- cgit v1.2.3