diff options
Diffstat (limited to 'macros/latex/contrib/mathsemantics/mathsemantics-semantic.sty')
-rw-r--r-- | macros/latex/contrib/mathsemantics/mathsemantics-semantic.sty | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/macros/latex/contrib/mathsemantics/mathsemantics-semantic.sty b/macros/latex/contrib/mathsemantics/mathsemantics-semantic.sty new file mode 100644 index 0000000000..6ccb0f7b62 --- /dev/null +++ b/macros/latex/contrib/mathsemantics/mathsemantics-semantic.sty @@ -0,0 +1,112 @@ +\ProvidesPackage{mathsemantics-semantic}[2022/05/06] + +% Resolve the dependencies of this package +\RequirePackage{mathsemantics-commons} +\RequirePackage{mathsemantics-syntax} + +\newcommand{\abs}[2][]{\enclose[#1]{\lvert}{#2}{\rvert}} +\newcommand{\ceil}[2][]{\enclose[#1]{\lceil}{#2}{\rceil}} +\newcommand{\dual}[3][]{\enclose[#1]{\langle}{#2\,,#3}{\rangle}} +\newcommand{\floor}[2][]{\enclose[#1]{\lfloor}{#2}{\rfloor}} +\newcommand{\avg}[2][]{\enclose[#1]{\lbrace}{#2}{\rbrace}} +\newcommand{\inner}[3][]{\enclose[#1]{(}{#2\,,\,#3}{)}} +\newcommand{\jump}[2][]{\enclose[#1]{\llbracket}{#2}{\rrbracket}} +\newcommand{\norm}[2][]{\enclose[#1]{\lVert}{#2}{\rVert}} +\newcommand{\restr}[3][]{\enclose[#1]{.}{#2}{\rvert}_{#3}} +\newcommand{\setMid}{|} +\newcommand{\setDef}[3][]{\encloseSet[#1]{\{}{#2}{\setMid}{#3}{\}}} +% Define the distance to a set operator +% The optional argument #1 scales the delimiters +% Argument #2 is the set +% Argument #3 is the quantity +\DeclareMathOperator{\distOp}{dist} +\NewDocumentCommand{\dist}{ O{} g g }{\IfNoValueTF{#3}{\IfNoValueTF{#2}{\distOp}{\distOp_{#2}}}{\distOp_{#2}\enclose[#1]{(}{#3}{)}}} + +% Define the projection operator +% The optional argument #1 scales the delimiters +% Argument #2 is the set to be projected onto +% Argument #3 is the quantity to be projected +\DeclareMathOperator{\projOp}{proj} +\NewDocumentCommand{\proj}{ O{} g d() }{% + \IfNoValueTF{#2}{\projOp}{\projOp_{#2}}\IfNoValueF{#3}{\enclose[#1]{(}{#3}{)}}% +} + +% Define the prox operator +% The optional argument #1 scales the delimiters +% Argument #2 is the function whose prox map we are taking +% Argument #3 is the argument of the prox map +\DeclareMathOperator{\proxOp}{prox} +\NewDocumentCommand{\prox}{ O{} g d() }{% + \IfNoValueTF{#2}{\proxOp}{\proxOp_{#2}}\IfNoValueF{#3}{\enclose[#1]{(}{#3}{)}}% +} + +% Define some mathematical and other operators +\DeclareMathOperator{\aff}{aff} +\DeclareMathOperator{\arcosh}{arcosh} +\DeclareMathOperator{\arcoth}{arcoth} +\DeclareMathOperator{\arsinh}{arsinh} +\DeclareMathOperator{\artanh}{artanh} +\DeclareMathOperator*{\argmax}{arg\,max} +\DeclareMathOperator*{\Argmax}{Arg\,max} +\DeclareMathOperator*{\argmin}{arg\,min} +\DeclareMathOperator*{\Argmin}{Arg\,min} +\DeclareMathOperator{\bdiv}{\textup{\textbf{div}}} +\DeclareMathOperator{\card}{card} +\DeclareMathOperator{\clconv}{\overline{\conv}} +\let\closure\undefined \DeclareMathOperator{\closure}{cl} % WileyNJD-v2.cls (loads stix.sty) +\DeclareMathOperator{\cofac}{cof} +\newcommand{\compactly}{\hookrightarrow\hookrightarrow} +\DeclareMathOperator{\cone}{cone} +\DeclareMathOperator{\conv}{conv} +\newcommand{\corresponds}{\mathrel{\widehat{=}}} +\DeclareMathOperator{\cov}{Cov} +\DeclareMathOperator{\curl}{curl} +\DeclareMathOperator{\dev}{dev} +\let\div\undefined \DeclareMathOperator{\div}{div} +\DeclareMathOperator{\Div}{Div} +% https://tex.stackexchange.com/questions/140642/conditionally-remove-the-space-before-a-one-letter-operator +\newcommand{\dInt}{\mathop{}\!\textup{d}} +\let\d\undefined\newcommand{\d}{\dInt} +\let\diag\undefined \DeclareMathOperator{\diag}{diag} % etna.cls +\DeclareMathOperator{\diam}{diam} +\DeclareMathOperator{\dom}{dom} +\newcommand{\dotcup}{\ensuremath{\mathaccent\cdot\cup}} +\DeclareMathSymbol{\dprod}{\mathbin}{operators}{"3A} +\let\e\undefined \newcommand{\e}{\mathrm{e}} % ifacconf.cls +\newcommand{\embed}{\hookrightarrow} +\newcommand{\embeds}{\embed} +\DeclareMathOperator{\epi}{epi} +\newcommand{\eR}{\overline{\bbR}} +\DeclareMathOperator*{\esssup}{ess\,sup} +\DeclareMathOperator*{\essinf}{ess\,inf} +\let\grad\undefined \DeclareMathOperator{\grad}{grad} % etna.cls +\DeclareMathOperator{\Graph}{Graph} +\newcommand{\id}{\textup{id}} +\DeclareMathOperator{\image}{image} +\DeclareMathOperator{\interior}{int} +\DeclareMathOperator{\inj}{inj} +\newcommand{\laplace}{\Delta} +\DeclareMathOperator*{\limessinf}{lim\,ess\,inf} +\DeclareMathOperator*{\limesssup}{lim\,ess\,sup} +\DeclareMathOperator{\lin}{lin} +\let\rank\undefined \DeclareMathOperator{\rank}{rank} % etna.cls +\DeclareMathOperator{\range}{range} +\DeclareMathOperator{\ri}{ri} +\DeclareMathOperator{\sgn}{sgn} +\DeclareMathOperator{\Sgn}{Sgn} +\DeclareMathOperator{\Span}{span} +\let\supp\undefined \DeclareMathOperator{\supp}{supp} % etna.cls +\DeclareMathOperator{\sym}{sym} +\DeclareMathOperator{\trace}{trace} +\newcommand{\transposeSymbol}{\mkern-1.5mu\textup{T}} +\AtBeginDocument{\providecommand*{\transp}{{\transposeSymbol}}} % postpone it since newtxmath.sty has its own \transp +\DeclareMathOperator{\var}{Var} +\newcommand{\weakly}{\rightharpoonup} +\newcommand{\weaklystar}{\stackrel\star\rightharpoonup} + +\@ifpackageloaded{academicon}{% + \definecolor{orcidlogocolor}{HTML}{A6CE39} + \providecommand*{\orcid}[1]{\href{https://orcid.org/#1}{\textcolor{orcidlogocolor}{\aiOrcid}~\detokenize{#1}}} +}{% + \providecommand*{\orcid}[1]{\href{https://orcid.org/#1}{ORCID~\detokenize{#1}}} +} |