texlive[76145] Master/texmf-dist: math-operator (25aug25)
commits+karl at tug.org
commits+karl at tug.org
Mon Aug 25 21:58:37 CEST 2025
Revision: 76145
https://tug.org/svn/texlive?view=revision&revision=76145
Author: karl
Date: 2025-08-25 21:58:36 +0200 (Mon, 25 Aug 2025)
Log Message:
-----------
math-operator (25aug25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/math-operator/README.txt
trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-code.pdf
trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-heading.tex
trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-user-guide.pdf
trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-user-guide.tex
trunk/Master/texmf-dist/source/latex/math-operator/math-operator-code.dtx
trunk/Master/texmf-dist/tex/latex/math-operator/math-operator.sty
Modified: trunk/Master/texmf-dist/doc/latex/math-operator/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/math-operator/README.txt 2025-08-25 19:58:22 UTC (rev 76144)
+++ trunk/Master/texmf-dist/doc/latex/math-operator/README.txt 2025-08-25 19:58:36 UTC (rev 76145)
@@ -1,10 +1,10 @@
- LaTeX Package math-operator v. 1.2a
+ LaTeX Package math-operator v. 1.3
Installation Guide/README
Conrad Kosowsky
-This file is README.txt from version 1.2a of the free and
-open-source LaTeX package "math-operator," released July
+This file is README.txt from version 1.3 of the free and
+open-source LaTeX package "math-operator," released August
2025. The operator package defines some one hundred and
fifty math operator control sequences and provides an
interface to define more. See the user guide, the code
@@ -22,18 +22,19 @@
To install math-operator automatically, update your TeX
distribution or use a package manager such as tlmgr.
-To install math-operator manually requires two steps as follows.
+To install math-operator manually requires two steps as
+follows.
Step 1: You need to generate the package file math-operator.sty
from math-operator-code.dtx. You can do this in two ways:
- (1) Running Plain TeX on math-operator-code.dtx will create
- math-operator.sty as well as other tex files that
- are used for typesetting documentation.
+ (1) Running Plain TeX on math-operator-code.dtx will
+ create math-operator.sty as well as other tex files
+ that are used for typesetting documentation.
- (2) Running LaTeX on math-operator-code.dtx will produce the
- files listed in point (1) including math-operator.sty as
- well as math-operator-code.pdf, which documents the
+ (2) Running LaTeX on math-operator-code.dtx will produce
+ the files listed in point (1) including math-operator.sty
+ as well as math-operator-code.pdf, which documents the
package code.
Step 2: Once you have created math-operator.sty, you should
@@ -93,8 +94,9 @@
math-operator-user-guide.tex
math-operator-heading.tex
- (5) all other files created through the configuration
- process
+ (5) all other files created by using LaTeX
+ to produce the pdf files in point (3)
+ above;
and
Modified: trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-code.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-heading.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-heading.tex 2025-08-25 19:58:22 UTC (rev 76144)
+++ trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-heading.tex 2025-08-25 19:58:36 UTC (rev 76145)
@@ -6,13 +6,13 @@
%%
%% math-operator-code.dtx (with options: `heading')
%%
-%% This file is from version 1.2a of the free and open-source
-%% LaTeX package "math-operator," released July 2025.
+%% This file is from version 1.3 of the free and open-source
+%% LaTeX package "math-operator," released August 2025.
%%
%% Copyright 2025 Conrad Kosowsky
%%
%% This file may be used, distributed, and modified under the
-%% terms of the LaTeX Public Project License, version 1.2ac or
+%% terms of the LaTeX Public Project License, version 1.3c or
%% any later version. The most recent version of this license
%% is available online at
%%
@@ -62,7 +62,7 @@
\makeatletter
\def\packagedate{July 2025}
-\def\packageversion{1.2a}
+\def\packageversion{1.3}
\let\@@section\section
\def\section{\relax
@@ -115,7 +115,7 @@
{\large
\let\thefootnote\relax
- \footnotetext{Acknowledgements: Thanks to Andrew Baker for pointing out a bug in a previous version of \textsf{math-operator}.}
+ \footnotetext{Acknowledgements: Thanks to Andrew Baker for pointing out a bug in a previous version of \textsf{math-operator} and suggesting additional control sequences for the package.}
\parindent=0pt\relax
\leftskip=0pt plus 1fill\relax
\rightskip=0pt plus 1fill\relax
Modified: trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-user-guide.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-user-guide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-user-guide.tex 2025-08-25 19:58:22 UTC (rev 76144)
+++ trunk/Master/texmf-dist/doc/latex/math-operator/math-operator-user-guide.tex 2025-08-25 19:58:36 UTC (rev 76145)
@@ -6,13 +6,13 @@
%%
%% math-operator-code.dtx (with options: `user')
%%
-%% This file is from version 1.2a of the free and open-source
-%% LaTeX package "math-operator," released July 2025.
+%% This file is from version 1.3 of the free and open-source
+%% LaTeX package "math-operator," released August 2025.
%%
%% Copyright 2025 Conrad Kosowsky
%%
%% This file may be used, distributed, and modified under the
-%% terms of the LaTeX Public Project License, version 1.2ac or
+%% terms of the LaTeX Public Project License, version 1.3c or
%% any later version. The most recent version of this license
%% is available online at
%%
@@ -129,7 +129,7 @@
\end{trivlist}
The syntax and implementation of these macros is very similar to the \textsf{amsopn} package.
-The entries of Table~2 differ in the appearance of the resulting operator. The commands in the first column produce operators with medium text, and the commands in the second column produce operators with bold text. The difference between the rows is more subtle and boils down to the automatic spacing before and after the operator.\footnote{\TeX's eight classes of math subformulas are beyond the scope of this user guide, but in summary, the horizontal position of different characters in an equation depends on their math classes. See Donald Knuth, \textit{The \TeX book} (Addison Wesley, 1986), 170; David Salomon, \textit{The Advanced \TeX book} (Springer, 1995), 256–258.} The macros from the first row instruct \TeX\ to treat the operator like an ordinary variable, so they are most appropriate for sets and categories. The macros from the second row instruct \TeX\ to horizontally position the operator like a summation or integral sign, and they are appropriate for functions and probability distributions. But if you are not overly fastidious, for most uses of this package other than category theory, you will probably be fine to just use |\DeclareMathOperator|.
+The entries of Table~2 differ in the appearance of the resulting operator. The commands in the first column produce operators with medium text, and the commands in the second column produce operators with bold text. The difference between the rows is more subtle and boils down to the automatic spacing before and after the operator.\footnote{\TeX's eight classes of math subformulas are beyond the scope of this user guide, but in summary, the horizontal position of different characters in an equation depends on their math classes. See Donald Knuth, \textit{The \TeX book} (Addison Wesley, 1986), 170; David Salomon, \textit{The Advanced \TeX book} (Springer, 1995), 256–258.} The macros from the first row instruct \TeX\ to treat the operator like an ordinary variable, so they are most appropriate for sets and categories. The macros from the second row instruct \TeX\ to horizontally position the operator like a summation or integral sign, and they are appropriate for functions and probability distributions. But if you are not fastidious, for most uses of this package other than category theory, you will probably be fine to just use |\DeclareMathOperator|.
The macros in Table~2 will happily redefine any operator commands, but they will not overwrite other control sequences unless you specifically tell them to do so. The count variable |\operatordefmode| controls the package behavior in this regard as follows:
\begin{itemize}
@@ -196,35 +196,60 @@
\showop\C{$\mathbb C$}{Complex numbers}
\showop\H{$\mathbb H$}{Quaternions (or half-plane)\footnotemark}\footnotetext{In math mode only. Outside of equations, \vrb\H\ will still behave normally. If you want to change the \vrb\H\ operator somehow, you should redefine \vrb\mathH, not \vrb\H.}
\showop\O{$\mathbb O$}{Octonions\footnotemark}\footnotetext{In math mode only. Outside of equations, \vrb\O\ will still behave normally. If you want to change the \vrb\O\ operator somehow, you should redefine \vrb\mathO, not \vrb\O.}
+\showop\F{$\mathbb F$}{Arbitrary field}
\showop\P{$\mathbb P$}{Probability}
\showop\E{$\mathbb E$}{Expectation}
-\section{Categories}{I am not a category theorist, and serious category theorists who use this package will undoubtedly want to define more categories in their own documents using \vrb\DeclareBoldMathText. If I missed any common categories that should be on this list, I am happy to expand it.}
+\section{Categories}{In version 1.3, I doubled the number of control sequences in \textsf{math-operator} for category theory, so this list is fairly substantial. That being said, it by no means exhaustive, and serious category theorists who use this package will likely need to define more categories using \vrb\DeclareBoldMathText.}
\showop{\Ab}{\textbf{Ab}}{Category of abelian groups}
\showop{\Alg}{\textbf{Alg}}{Category of algebras}
+\showop{\Bialg}{\textbf{Bialg}}{Category of bialgebras}
\showop{\Cat}{\textbf{Cat}}{Category of small categories}
+\showop{\CGH}{\textbf{CGH}}{Compactly generated Hausdorff spaces}
+\showop{\CGWH}{\textbf{CGWH}}{Compactly generated weak Hausdorff spaces}
+\showop{\Coalg}{\textbf{Coalg}}{Category of coalgebras}
+\showop{\Comod}{\textbf{Comod}}{Category of comodules}
\showop{\CRing}{\textbf{CRing}}{Category of commutative rings}
\showop{\Field}{\textbf{Field}}{Category of fields}
\showop{\FinGrp}{\textbf{FinGrp}}{Category of finite groups}
+\showop{\FinHilb}{\textbf{FinHilb}}{Category of finite-dimensional Hilbert spaces}
\showop{\FinVect}{\textbf{FinVect}}{Category of finite-dimensional vector spaces}
+\showop{\FinSet}{\textbf{FinSet}}{Category of finite sets}
+\showop{\Frm}{\textbf{Frm}}{Category of frames}
\showop{\Grp}{\textbf{Grp}}{Category of groups}
\showop{\Haus}{\textbf{Haus}}{Category of Hausdorff spaces}
+\showop{\HeytAlg}{\textbf{HeytAlg}}{Category of Heyting algebras}
+\showop{\Hilb}{\textbf{Hilb}}{Category of Hilbert spaces}
+\showop{\HopfAlg}{\textbf{HopfAlg}}{Category of Hopf algebras}
+\showop{\Lat}{\textbf{Lat}}{Category of latices}
+\showop{\LieAlg}{\textbf{LieAlg}}{Category of Lie algebras}
+\showop{\LieGrp}{\textbf{LieGrp}}{Category of Lie groups}
+\showop{\Loc}{\textbf{Loc}}{Category of locales}
\showop{\Man}{\textbf{Man}}{Category of manifolds}
+\showop{\Mat}{\textbf{Mat}}{Category of matrices}
\showop{\Met}{\textbf{Met}}{Category of metric spaces}
\showop{\Mod}{\textbf{Mod}}{Category of modules}
\showop{\Mon}{\textbf{Mon}}{Category of monoids}
\showop{\Ord}{\textbf{Ord}}{Category of preordered sets}
+\showop{\Pos}{\textbf{Pos}}{Category of posets}
+\showop{\Rel}{\textbf{Rel}}{Category of sets and binary relations}
\showop{\Ring}{\textbf{Ring}}{Category of rings}
\showop{\Set}{\textbf{Set}}{Category of sets}
\showop{\Top}{\textbf{Top}}{Category of topological spaces}
+\showop{\Topos}{\textbf{Topos}}{Category of toposes}
\showop{\Vect}{\textbf{Vect}}{Category of vector spaces}
\showop{\cocone}{cocone}{Cocone}
\showop{\colim}{colim}{Colimit}
\showop{\cone}{cone}{Cone}
+\showop{\Ho}{Ho}{Homotopy category}
+\showop{\Hom}{Hom}{Collection of morphisms}
+\showop{\Ob}{Ob}{Collection of objects}
\showop{\op}{$^{\operator at font op}$}{Opposite category}
+\showop{\PSh}{PSh}{Presheaf category}
+\showop{\Sh}{Sh}{Sheaf category}
-\section{Jacobi Elliptic Functions}{Pretty straightforward. If you load \textsf{math-operator} with |jacobi|, you won't be able to use \vrb\sc\ to change to a small-caps font. (But you shouldn't use \vrb\sc\ anyway because it's deprecated.)}
+\section{Jacobi Elliptic Functions}{Pretty straightforward. If you load \textsf{math-operator} with |jacobi|, you won't be able to use \vrb\sc\ to change to a small-caps font. (But you shouldn't use \vrb\sc\ anyway because it's deprecated. Please use \vrb\textsc\ instead.)}
\showop{\cd}{cd}{}
\showop{\cn}{cn}{}
@@ -242,10 +267,13 @@
\section{Linear Algebra}{Some matrix groups and operations.}
\showop{\adj}{adj}{Adjugate matrix}
+\showop{\Cl}{Cl}{Clifford algebra}
+\showop{\codim}{codim}{Codimension}
\showop{\coker}{coker}{Cokernel}
\showop{\GL}{GL}{General linear group}
\showop{\nullity}{nullity}{Nullity}
\showop{\Orthogonal}{O}{Orthogonal group}
+\showop{\Pin}{Pin}{Pin group}
\showop{\proj}{proj}{Projection (onto a vector)}
\showop{\rank}{rank}{Rank}
\showop{\SL}{SL}{Special linear group}
@@ -253,6 +281,7 @@
\showop{\SU}{SU}{Special unitary group}
\showop{\Sp}{Sp}{Symplectic group}
\showop{\spanop}{span}{Span}
+\showop{\Spin}{Spin}{Spin group}
\showop{\tr}{tr}{Trace}
\showop{\T}{$^{\operator at font T}$}{Transpose}
\showop{\Unitary}{U}{Unitary group}
@@ -357,9 +386,10 @@
\showop{\cov}{cov}{Covariance}
\showop{\curl}{curl}{Curl}
\showop{\divop}{div}{Divergence}
+\showop{\Ext}{Ext}{Ext (extension) functor}
+\showop{\Gal}{Gal}{Galois group}
\showop{\grad}{grad}{Gradient}
\showop{\Hess}{$\mathcal{H}$}{Hessian}
-\showop{\Hom}{Hom}{Collection of morphisms}
\showop{\id}{id}{Identity}
\showop{\Im}{Im}{Imaginary part}
\showop{\varIm}{$\Im$}{Imaginary part\footnotemark}\footnotetext{In the \LaTeX\ kernel, \texttt{\string\Im} produces $\Im$, but I decided to change that since Im is more standard than $\Im$.}
@@ -372,7 +402,9 @@
\showop{\varRe}{$\Re$}{Real part\footnotemark}\footnotetext{In the \LaTeX\ kernel, \texttt{\string\Re} produces $\Re$, but I decided to change that since Re is more standard than $\Re$.}
\showop{\Res}{Res}{Residue}
\showop{\Spec}{Spec}{Spectrum}
+\showop{\st}{st}{Standard part (shadow) of a hyperreal number}
\showop{\supp}{supp}{Support}
+\showop{\Tor}{Tor}{Tor (torsion) functor}
\showop{\Var}{Var}{Variance}
\section{Trigonometry}{All inverse, hyperbolic, and inverse hyperbolic trigonometric functions that are not in the \LaTeX\ kernel.}
Modified: trunk/Master/texmf-dist/source/latex/math-operator/math-operator-code.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/math-operator/math-operator-code.dtx 2025-08-25 19:58:22 UTC (rev 76144)
+++ trunk/Master/texmf-dist/source/latex/math-operator/math-operator-code.dtx 2025-08-25 19:58:36 UTC (rev 76145)
@@ -1,9 +1,9 @@
% \iffalse ---!!! FIRST META-COMMENT !!!---
%
%
-% This file is operator-code.dtx from version 1.2a
+% This file is operator-code.dtx from version 1.3
% of the free and open-source LaTeX package "math-operator,"
-% released July 2025.
+% released August 2025.
%
% Running Plain TeX on math-operator-code.dtx will
% produce the following files:
@@ -37,13 +37,13 @@
% \iffalse ---!!! SECOND META-COMMENT !!!---
%
%
-% This file is from version 1.2a of the free and open-source
-% LaTeX package "math-operator," released July 2025.
+% This file is from version 1.3 of the free and open-source
+% LaTeX package "math-operator," released August 2025.
%
% Copyright 2025 Conrad Kosowsky
%
% This file may be used, distributed, and modified under the
-% terms of the LaTeX Public Project License, version 1.2ac or
+% terms of the LaTeX Public Project License, version 1.3c or
% any later version. The most recent version of this license
% is available online at
%
@@ -69,8 +69,8 @@
% math-operator-heading.tex
%
% (5) all other files created by using LaTeX
-% to produce the pdf files in point (4)
-% above
+% to produce the pdf files in point (3)
+% above
%
% and
%
@@ -127,13 +127,13 @@
\askforoverwritefalse
\preamble
-This file is from version 1.2a of the free and open-source
-LaTeX package "math-operator," released July 2025.
+This file is from version 1.3 of the free and open-source
+LaTeX package "math-operator," released August 2025.
Copyright 2025 Conrad Kosowsky
This file may be used, distributed, and modified under the
-terms of the LaTeX Public Project License, version 1.2ac or
+terms of the LaTeX Public Project License, version 1.3c or
any later version. The most recent version of this license
is available online at
@@ -242,7 +242,7 @@
%<*code>
% \fi
%
-% \CheckSum{1567}
+% \CheckSum{1633}
% \init at checksum
%
% \makeatother\CharacterTable
@@ -305,7 +305,7 @@
% \noindent We begin with package declaration. The first 59 lines of |operator.sty| are comments.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{math-operator}[2025/07/23 v. 1.2a]
+\ProvidesPackage{math-operator}[2025/08/24 v. 1.3]
% \end{macrocode}
% Create booleans that we'll use for option processing. One boolean per category of operator.
% \begin{macrocode}
@@ -648,11 +648,13 @@
% Error and warning messages for |\make at newop@cmd|.
% \begin{macrocode}
\def\OperatorBadNameError#1{%
+ \def\@tempa{#1}%
+ \@onelevel at sanitize\@tempa
\PackageError{math-operator}{Invalid name\MessageBreak
- "\detokenize{#1}" for new operator}
+ "\@tempa" for new operator}
{I was expecting the name of the new operator\MessageBreak
to be a single control sequence, but instead\MessageBreak
- you typed "\detokenize{#1}."\MessageBreak
+ you typed "\@tempa."\MessageBreak
This doesn't work. To resolve this error,\MessageBreak
make sure the first argument of the operator\MessageBreak
declaration is a single control sequence.\MessageBreak}}
@@ -900,25 +902,49 @@
\@operatorinfo{Defining category theory notation.}
\DeclareBoldMathText{\Ab}{Ab}
\DeclareBoldMathText{\Alg}{Alg}
+ \DeclareBoldMathText{\Bialg}{Bialg}
\DeclareBoldMathText{\Cat}{Cat}
+ \DeclareBoldMathText{\CGH}{CGH}
+ \DeclareBoldMathText{\CGWH}{CGWH}
+ \DeclareBoldMathText{\Coalg}{Coalg}
+ \DeclareBoldMathText{\Comod}{Comod}
\DeclareBoldMathText{\CRing}{CRing}
\DeclareBoldMathText{\Field}{Field}
\DeclareBoldMathText{\FinGrp}{FinGrp}
+ \DeclareBoldMathText{\FinHilb}{FinHilb}
\DeclareBoldMathText{\FinVect}{FinVect}
+ \DeclareBoldMathText{\FinSet}{FinSet}
+ \DeclareBoldMathText{\Frm}{Frm}
\DeclareBoldMathText{\Grp}{Grp}
\DeclareBoldMathText{\Haus}{Haus}
+ \DeclareBoldMathText{\HeytAlg}{HeytAlg}
+ \DeclareBoldMathText{\Hilb}{Hilb}
+ \DeclareBoldMathText{\HopfAlg}{HopfAlg}
+ \DeclareBoldMathText{\Lat}{Lat}
+ \DeclareBoldMathText{\LieAlg}{LieAlg}
+ \DeclareBoldMathText{\LieGrp}{LieGrp}
+ \DeclareBoldMathText{\Loc}{Loc}
\DeclareBoldMathText{\Man}{Man}
+ \DeclareBoldMathText{\Mat}{Mat}
\DeclareBoldMathText{\Met}{Met}
\DeclareBoldMathText{\Mod}{Mod}
\DeclareBoldMathText{\Mon}{Mon}
\DeclareBoldMathText{\Ord}{Ord}
+ \DeclareBoldMathText{\Pos}{Pos}
+ \DeclareBoldMathText{\Rel}{Rel}
\DeclareBoldMathText{\Ring}{Ring}
\DeclareBoldMathText{\Set}{Set}
\DeclareBoldMathText{\Top}{Top}
+ \DeclareBoldMathText{\Topos}{Topos}
\DeclareBoldMathText{\Vect}{Vect}
\DeclareMathOperator{\cocone}{cocone}
- \DeclareMathOperator{\colim}{colim}
+ \DeclareMathOperator*{\colim}{colim}
\DeclareMathOperator{\cone}{cone}
+ \DeclareMathOperator{\Ho}{Ho}
+ \DeclareMathOperator{\Hom}{Hom}
+ \DeclareMathOperator{\Ob}{Ob}
+ \DeclareMathOperator{\PSh}{PSh}
+ \DeclareMathOperator{\Sh}{Sh}
\@operatorinfo{Defining new operator \string\op.}
\addto at operator@list{\op}
\@operator at robust@def\op{^{\operator at font op}}
@@ -927,6 +953,7 @@
\fi
% \end{macrocode}
%
+%
% \section{Jacobi Elliptic Functions}
%
% Pretty straightforward. The standard classes define |\sc| as a legacy (deprecated) command to access small caps, and we overwrite that definition. I do not feel bad about overwriting deprecated commands.
@@ -960,10 +987,13 @@
\wlog{}
\@operatorinfo{Defining operators from linear algebra.}
\DeclareMathOperator{\adj}{adj}
+ \DeclareMathOperator{\Cl}{Cl}
+ \DeclareMathOperator{\codim}{codim}
\DeclareMathOperator{\coker}{coker}
\DeclareMathText{\GL}{GL}
\DeclareMathOperator{\nullity}{nullity}
\DeclareMathText{\Orthogonal}{O}
+ \DeclareMathOperator{\Pin}{Pin}
\DeclareMathOperator{\proj}{proj}
\DeclareMathOperator{\rank}{rank}
\DeclareMathText{\SL}{SL}
@@ -971,6 +1001,7 @@
\DeclareMathText{\SU}{SU}
\DeclareMathOperator{\Sp}{Sp}
\DeclareMathOperator*{\spanop}{span}
+ \DeclareMathOperator{\Spin}{Spin}
\DeclareMathOperator{\tr}{tr}
\@operatorinfo{Defining new operator \string\T.}
\addto at operator@list{\T}
@@ -1201,9 +1232,10 @@
\DeclareMathOperator{\cov}{cov}
\DeclareMathOperator{\curl}{curl}
\DeclareMathOperator{\divop}{div}
+ \DeclareMathOperator{\Ext}{Ext}
+ \DeclareMathOperator{\Gal}{Gal}
\DeclareMathOperator{\grad}{grad}
\DeclareMathOperator{\Hess}{\mathcal{H}}
- \DeclareMathOperator{\Hom}{Hom}
\DeclareMathOperator{\id}{id}
\DeclareMathOperator{\img}{img}
\DeclareMathOperator{\Info}{\mathcal{I}}
@@ -1212,7 +1244,10 @@
\DeclareMathOperator{\Proj}{Proj}
\DeclareMathOperator{\Res}{Res}
\DeclareMathOperator{\Spec}{Spec}
+ \DeclareMathOperator{\st}{st}
\DeclareMathOperator{\supp}{supp}
+ \DeclareMathOperator{\Tor}{Tor}
+ \DeclareMathOperator{\Var}{Var}
\addto at operator@list{\varIm\varRe\Im\Re}
\@operatorinfo{Defining \string\varIm\space operator from \string\Im.}
\@operatorinfo{Defining \string\varRe\space operator from \string\Re.}
@@ -1220,7 +1255,6 @@
\let\varRe\Re
\DeclareMathOperator{\Im}{Im}
\DeclareMathOperator{\Re}{Re}
- \DeclareMathOperator{\Var}{Var}
\else
\@operatorinfo{Skipping standard operators.}
\fi
@@ -1282,7 +1316,7 @@
%
% \section*{Version History}
%
-% % New features and updates with each version. Listed in no particular order.
+% % New features and updates with each version. Versions are chronological, and features are listed in no particular order.
%
% \begin{multicols*}{2}
% \raggedright\parskip\z@\parindent\z@\leftskip1em\obeylines
@@ -1308,6 +1342,10 @@
% \version{1.2a}{July 2025}
% \item bug fix for non-unicode engines
%
+% \version{1.3}{August 2025}
+% \item added about 30 control sequences to various classes of operators, mostly in category theory
+% \item removed a stray |\detokenize|
+%
% \end{multicols*}
%
%
@@ -1400,7 +1438,7 @@
\end{trivlist}
The syntax and implementation of these macros is very similar to the \textsf{amsopn} package.
-The entries of Table~2 differ in the appearance of the resulting operator. The commands in the first column produce operators with medium text, and the commands in the second column produce operators with bold text. The difference between the rows is more subtle and boils down to the automatic spacing before and after the operator.\footnote{\TeX's eight classes of math subformulas are beyond the scope of this user guide, but in summary, the horizontal position of different characters in an equation depends on their math classes. See Donald Knuth, \textit{The \TeX book} (Addison Wesley, 1986), 170; David Salomon, \textit{The Advanced \TeX book} (Springer, 1995), 256–258.} The macros from the first row instruct \TeX\ to treat the operator like an ordinary variable, so they are most appropriate for sets and categories. The macros from the second row instruct \TeX\ to horizontally position the operator like a summation or integral sign, and they are appropriate for functions and probability distributions. But if you are not overly fastidious, for most uses of this package other than category theory, you will probably be fine to just use |\DeclareMathOperator|.
+The entries of Table~2 differ in the appearance of the resulting operator. The commands in the first column produce operators with medium text, and the commands in the second column produce operators with bold text. The difference between the rows is more subtle and boils down to the automatic spacing before and after the operator.\footnote{\TeX's eight classes of math subformulas are beyond the scope of this user guide, but in summary, the horizontal position of different characters in an equation depends on their math classes. See Donald Knuth, \textit{The \TeX book} (Addison Wesley, 1986), 170; David Salomon, \textit{The Advanced \TeX book} (Springer, 1995), 256–258.} The macros from the first row instruct \TeX\ to treat the operator like an ordinary variable, so they are most appropriate for sets and categories. The macros from the second row instruct \TeX\ to horizontally position the operator like a summation or integral sign, and they are appropriate for functions and probability distributions. But if you are not fastidious, for most uses of this package other than category theory, you will probably be fine to just use |\DeclareMathOperator|.
The macros in Table~2 will happily redefine any operator commands, but they will not overwrite other control sequences unless you specifically tell them to do so. The count variable |\operatordefmode| controls the package behavior in this regard as follows:
\begin{itemize}
@@ -1483,40 +1521,65 @@
\showop\C{$\mathbb C$}{Complex numbers}
\showop\H{$\mathbb H$}{Quaternions (or half-plane)\footnotemark}\footnotetext{In math mode only. Outside of equations, \vrb\H\ will still behave normally. If you want to change the \vrb\H\ operator somehow, you should redefine \vrb\mathH, not \vrb\H.}
\showop\O{$\mathbb O$}{Octonions\footnotemark}\footnotetext{In math mode only. Outside of equations, \vrb\O\ will still behave normally. If you want to change the \vrb\O\ operator somehow, you should redefine \vrb\mathO, not \vrb\O.}
+\showop\F{$\mathbb F$}{Arbitrary field}
\showop\P{$\mathbb P$}{Probability}
\showop\E{$\mathbb E$}{Expectation}
-\section{Categories}{I am not a category theorist, and serious category theorists who use this package will undoubtedly want to define more categories in their own documents using \vrb\DeclareBoldMathText. If I missed any common categories that should be on this list, I am happy to expand it.}
+\section{Categories}{In version 1.3, I doubled the number of control sequences in \textsf{math-operator} for category theory, so this list is fairly substantial. That being said, it by no means exhaustive, and serious category theorists who use this package will likely need to define more categories using \vrb\DeclareBoldMathText.}
\showop{\Ab}{\textbf{Ab}}{Category of abelian groups}
\showop{\Alg}{\textbf{Alg}}{Category of algebras}
+\showop{\Bialg}{\textbf{Bialg}}{Category of bialgebras}
\showop{\Cat}{\textbf{Cat}}{Category of small categories}
+\showop{\CGH}{\textbf{CGH}}{Compactly generated Hausdorff spaces}
+\showop{\CGWH}{\textbf{CGWH}}{Compactly generated weak Hausdorff spaces}
+\showop{\Coalg}{\textbf{Coalg}}{Category of coalgebras}
+\showop{\Comod}{\textbf{Comod}}{Category of comodules}
\showop{\CRing}{\textbf{CRing}}{Category of commutative rings}
\showop{\Field}{\textbf{Field}}{Category of fields}
\showop{\FinGrp}{\textbf{FinGrp}}{Category of finite groups}
+\showop{\FinHilb}{\textbf{FinHilb}}{Category of finite-dimensional Hilbert spaces}
\showop{\FinVect}{\textbf{FinVect}}{Category of finite-dimensional vector spaces}
+\showop{\FinSet}{\textbf{FinSet}}{Category of finite sets}
+\showop{\Frm}{\textbf{Frm}}{Category of frames}
\showop{\Grp}{\textbf{Grp}}{Category of groups}
\showop{\Haus}{\textbf{Haus}}{Category of Hausdorff spaces}
+\showop{\HeytAlg}{\textbf{HeytAlg}}{Category of Heyting algebras}
+\showop{\Hilb}{\textbf{Hilb}}{Category of Hilbert spaces}
+\showop{\HopfAlg}{\textbf{HopfAlg}}{Category of Hopf algebras}
+\showop{\Lat}{\textbf{Lat}}{Category of latices}
+\showop{\LieAlg}{\textbf{LieAlg}}{Category of Lie algebras}
+\showop{\LieGrp}{\textbf{LieGrp}}{Category of Lie groups}
+\showop{\Loc}{\textbf{Loc}}{Category of locales}
\showop{\Man}{\textbf{Man}}{Category of manifolds}
+\showop{\Mat}{\textbf{Mat}}{Category of matrices}
\showop{\Met}{\textbf{Met}}{Category of metric spaces}
\showop{\Mod}{\textbf{Mod}}{Category of modules}
\showop{\Mon}{\textbf{Mon}}{Category of monoids}
\showop{\Ord}{\textbf{Ord}}{Category of preordered sets}
+\showop{\Pos}{\textbf{Pos}}{Category of posets}
+\showop{\Rel}{\textbf{Rel}}{Category of sets and binary relations}
\showop{\Ring}{\textbf{Ring}}{Category of rings}
\showop{\Set}{\textbf{Set}}{Category of sets}
\showop{\Top}{\textbf{Top}}{Category of topological spaces}
+\showop{\Topos}{\textbf{Topos}}{Category of toposes}
\showop{\Vect}{\textbf{Vect}}{Category of vector spaces}
\showop{\cocone}{cocone}{Cocone}
\showop{\colim}{colim}{Colimit}
\showop{\cone}{cone}{Cone}
+\showop{\Ho}{Ho}{Homotopy category}
+\showop{\Hom}{Hom}{Collection of morphisms}
+\showop{\Ob}{Ob}{Collection of objects}
\showop{\op}{$^{\operator at font op}$}{Opposite category}
+\showop{\PSh}{PSh}{Presheaf category}
+\showop{\Sh}{Sh}{Sheaf category}
-\section{Jacobi Elliptic Functions}{Pretty straightforward. If you load \textsf{math-operator} with |jacobi|, you won't be able to use \vrb\sc\ to change to a small-caps font. (But you shouldn't use \vrb\sc\ anyway because it's deprecated.)}
+\section{Jacobi Elliptic Functions}{Pretty straightforward. If you load \textsf{math-operator} with |jacobi|, you won't be able to use \vrb\sc\ to change to a small-caps font. (But you shouldn't use \vrb\sc\ anyway because it's deprecated. Please use \vrb\textsc\ instead.)}
\showop{\cd}{cd}{}
@@ -1537,10 +1600,13 @@
\showop{\adj}{adj}{Adjugate matrix}
+\showop{\Cl}{Cl}{Clifford algebra}
+\showop{\codim}{codim}{Codimension}
\showop{\coker}{coker}{Cokernel}
\showop{\GL}{GL}{General linear group}
\showop{\nullity}{nullity}{Nullity}
\showop{\Orthogonal}{O}{Orthogonal group}
+\showop{\Pin}{Pin}{Pin group}
\showop{\proj}{proj}{Projection (onto a vector)}
\showop{\rank}{rank}{Rank}
\showop{\SL}{SL}{Special linear group}
@@ -1548,6 +1614,7 @@
\showop{\SU}{SU}{Special unitary group}
\showop{\Sp}{Sp}{Symplectic group}
\showop{\spanop}{span}{Span}
+\showop{\Spin}{Spin}{Spin group}
\showop{\tr}{tr}{Trace}
\showop{\T}{$^{\operator at font T}$}{Transpose}
\showop{\Unitary}{U}{Unitary group}
@@ -1662,9 +1729,10 @@
\showop{\cov}{cov}{Covariance}
\showop{\curl}{curl}{Curl}
\showop{\divop}{div}{Divergence}
+\showop{\Ext}{Ext}{Ext (extension) functor}
+\showop{\Gal}{Gal}{Galois group}
\showop{\grad}{grad}{Gradient}
\showop{\Hess}{$\mathcal{H}$}{Hessian}
-\showop{\Hom}{Hom}{Collection of morphisms}
\showop{\id}{id}{Identity}
\showop{\Im}{Im}{Imaginary part}
\showop{\varIm}{$\Im$}{Imaginary part\footnotemark}\footnotetext{In the \LaTeX\ kernel, \texttt{\string\Im} produces $\Im$, but I decided to change that since Im is more standard than $\Im$.}
@@ -1677,7 +1745,9 @@
\showop{\varRe}{$\Re$}{Real part\footnotemark}\footnotetext{In the \LaTeX\ kernel, \texttt{\string\Re} produces $\Re$, but I decided to change that since Re is more standard than $\Re$.}
\showop{\Res}{Res}{Residue}
\showop{\Spec}{Spec}{Spectrum}
+\showop{\st}{st}{Standard part (shadow) of a hyperreal number}
\showop{\supp}{supp}{Support}
+\showop{\Tor}{Tor}{Tor (torsion) functor}
\showop{\Var}{Var}{Variance}
@@ -1731,7 +1801,7 @@
% package date and edition
\def\packagedate{July 2025}
-\def\packageversion{1.2a}
+\def\packageversion{1.3}
% header and footer commands
\let\@@section\section
@@ -1789,7 +1859,7 @@
% title information
{\large
\let\thefootnote\relax
- \footnotetext{Acknowledgements: Thanks to Andrew Baker for pointing out a bug in a previous version of \textsf{math-operator}.}
+ \footnotetext{Acknowledgements: Thanks to Andrew Baker for pointing out a bug in a previous version of \textsf{math-operator} and suggesting additional control sequences for the package.}
\parindent=0pt\relax
\leftskip=0pt plus 1fill\relax
\rightskip=0pt plus 1fill\relax
Modified: trunk/Master/texmf-dist/tex/latex/math-operator/math-operator.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/math-operator/math-operator.sty 2025-08-25 19:58:22 UTC (rev 76144)
+++ trunk/Master/texmf-dist/tex/latex/math-operator/math-operator.sty 2025-08-25 19:58:36 UTC (rev 76145)
@@ -6,13 +6,13 @@
%%
%% math-operator-code.dtx (with options: `code')
%%
-%% This file is from version 1.2a of the free and open-source
-%% LaTeX package "math-operator," released July 2025.
+%% This file is from version 1.3 of the free and open-source
+%% LaTeX package "math-operator," released August 2025.
%%
%% Copyright 2025 Conrad Kosowsky
%%
%% This file may be used, distributed, and modified under the
-%% terms of the LaTeX Public Project License, version 1.2ac or
+%% terms of the LaTeX Public Project License, version 1.3c or
%% any later version. The most recent version of this license
%% is available online at
%%
@@ -58,7 +58,7 @@
%% Happy TeXing!
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{math-operator}[2025/07/23 v. 1.2a]
+\ProvidesPackage{math-operator}[2025/08/24 v. 1.3]
\newif\if at operator@bb % blackboard bold
\newif\if at operator@c % category theory
\newif\if at operator@j % Jacobi elliptic functions
@@ -297,11 +297,13 @@
\expandafter\@secondoftwo
\fi}
\def\OperatorBadNameError#1{%
+ \def\@tempa{#1}%
+ \@onelevel at sanitize\@tempa
\PackageError{math-operator}{Invalid name\MessageBreak
- "\detokenize{#1}" for new operator}
+ "\@tempa" for new operator}
{I was expecting the name of the new operator\MessageBreak
to be a single control sequence, but instead\MessageBreak
- you typed "\detokenize{#1}."\MessageBreak
+ you typed "\@tempa."\MessageBreak
This doesn't work. To resolve this error,\MessageBreak
make sure the first argument of the operator\MessageBreak
declaration is a single control sequence.\MessageBreak}}
@@ -479,25 +481,49 @@
\@operatorinfo{Defining category theory notation.}
\DeclareBoldMathText{\Ab}{Ab}
\DeclareBoldMathText{\Alg}{Alg}
+ \DeclareBoldMathText{\Bialg}{Bialg}
\DeclareBoldMathText{\Cat}{Cat}
+ \DeclareBoldMathText{\CGH}{CGH}
+ \DeclareBoldMathText{\CGWH}{CGWH}
+ \DeclareBoldMathText{\Coalg}{Coalg}
+ \DeclareBoldMathText{\Comod}{Comod}
\DeclareBoldMathText{\CRing}{CRing}
\DeclareBoldMathText{\Field}{Field}
\DeclareBoldMathText{\FinGrp}{FinGrp}
+ \DeclareBoldMathText{\FinHilb}{FinHilb}
\DeclareBoldMathText{\FinVect}{FinVect}
+ \DeclareBoldMathText{\FinSet}{FinSet}
+ \DeclareBoldMathText{\Frm}{Frm}
\DeclareBoldMathText{\Grp}{Grp}
\DeclareBoldMathText{\Haus}{Haus}
+ \DeclareBoldMathText{\HeytAlg}{HeytAlg}
+ \DeclareBoldMathText{\Hilb}{Hilb}
+ \DeclareBoldMathText{\HopfAlg}{HopfAlg}
+ \DeclareBoldMathText{\Lat}{Lat}
+ \DeclareBoldMathText{\LieAlg}{LieAlg}
+ \DeclareBoldMathText{\LieGrp}{LieGrp}
+ \DeclareBoldMathText{\Loc}{Loc}
\DeclareBoldMathText{\Man}{Man}
+ \DeclareBoldMathText{\Mat}{Mat}
\DeclareBoldMathText{\Met}{Met}
\DeclareBoldMathText{\Mod}{Mod}
\DeclareBoldMathText{\Mon}{Mon}
\DeclareBoldMathText{\Ord}{Ord}
+ \DeclareBoldMathText{\Pos}{Pos}
+ \DeclareBoldMathText{\Rel}{Rel}
\DeclareBoldMathText{\Ring}{Ring}
\DeclareBoldMathText{\Set}{Set}
\DeclareBoldMathText{\Top}{Top}
+ \DeclareBoldMathText{\Topos}{Topos}
\DeclareBoldMathText{\Vect}{Vect}
\DeclareMathOperator{\cocone}{cocone}
- \DeclareMathOperator{\colim}{colim}
+ \DeclareMathOperator*{\colim}{colim}
\DeclareMathOperator{\cone}{cone}
+ \DeclareMathOperator{\Ho}{Ho}
+ \DeclareMathOperator{\Hom}{Hom}
+ \DeclareMathOperator{\Ob}{Ob}
+ \DeclareMathOperator{\PSh}{PSh}
+ \DeclareMathOperator{\Sh}{Sh}
\@operatorinfo{Defining new operator \string\op.}
\addto at operator@list{\op}
\@operator at robust@def\op{^{\operator at font op}}
@@ -527,10 +553,13 @@
\wlog{}
\@operatorinfo{Defining operators from linear algebra.}
\DeclareMathOperator{\adj}{adj}
+ \DeclareMathOperator{\Cl}{Cl}
+ \DeclareMathOperator{\codim}{codim}
\DeclareMathOperator{\coker}{coker}
\DeclareMathText{\GL}{GL}
\DeclareMathOperator{\nullity}{nullity}
\DeclareMathText{\Orthogonal}{O}
+ \DeclareMathOperator{\Pin}{Pin}
\DeclareMathOperator{\proj}{proj}
\DeclareMathOperator{\rank}{rank}
\DeclareMathText{\SL}{SL}
@@ -538,6 +567,7 @@
\DeclareMathText{\SU}{SU}
\DeclareMathOperator{\Sp}{Sp}
\DeclareMathOperator*{\spanop}{span}
+ \DeclareMathOperator{\Spin}{Spin}
\DeclareMathOperator{\tr}{tr}
\@operatorinfo{Defining new operator \string\T.}
\addto at operator@list{\T}
@@ -707,9 +737,10 @@
\DeclareMathOperator{\cov}{cov}
\DeclareMathOperator{\curl}{curl}
\DeclareMathOperator{\divop}{div}
+ \DeclareMathOperator{\Ext}{Ext}
+ \DeclareMathOperator{\Gal}{Gal}
\DeclareMathOperator{\grad}{grad}
\DeclareMathOperator{\Hess}{\mathcal{H}}
- \DeclareMathOperator{\Hom}{Hom}
\DeclareMathOperator{\id}{id}
\DeclareMathOperator{\img}{img}
\DeclareMathOperator{\Info}{\mathcal{I}}
@@ -718,7 +749,10 @@
\DeclareMathOperator{\Proj}{Proj}
\DeclareMathOperator{\Res}{Res}
\DeclareMathOperator{\Spec}{Spec}
+ \DeclareMathOperator{\st}{st}
\DeclareMathOperator{\supp}{supp}
+ \DeclareMathOperator{\Tor}{Tor}
+ \DeclareMathOperator{\Var}{Var}
\addto at operator@list{\varIm\varRe\Im\Re}
\@operatorinfo{Defining \string\varIm\space operator from \string\Im.}
\@operatorinfo{Defining \string\varRe\space operator from \string\Re.}
@@ -726,7 +760,6 @@
\let\varRe\Re
\DeclareMathOperator{\Im}{Im}
\DeclareMathOperator{\Re}{Re}
- \DeclareMathOperator{\Var}{Var}
\else
\@operatorinfo{Skipping standard operators.}
\fi
More information about the tex-live-commits
mailing list.