texlive[71172] Master/texmf-dist: mismath (4may24)

commits+karl at tug.org commits+karl at tug.org
Sat May 4 21:47:07 CEST 2024


Revision: 71172
          https://tug.org/svn/texlive?view=revision&revision=71172
Author:   karl
Date:     2024-05-04 21:47:07 +0200 (Sat, 04 May 2024)
Log Message:
-----------
mismath (4may24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/mismath/README.md
    trunk/Master/texmf-dist/doc/latex/mismath/mismath.pdf
    trunk/Master/texmf-dist/source/latex/mismath/mismath.dtx
    trunk/Master/texmf-dist/source/latex/mismath/mismath.ins
    trunk/Master/texmf-dist/tex/latex/mismath/mismath.sty

Modified: trunk/Master/texmf-dist/doc/latex/mismath/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mismath/README.md	2024-05-04 19:46:59 UTC (rev 71171)
+++ trunk/Master/texmf-dist/doc/latex/mismath/README.md	2024-05-04 19:47:07 UTC (rev 71172)
@@ -5,17 +5,19 @@
 
 The package provides some mathematical macros to typeset:
 - mathematical constants e, i, pi in upright shape (automatically) as recommended by ISO 80000-2,
-- vectors with nice arrows and adjusted norm (and tensors),
+- vectors with nice arrows and adjusted norm, 
+- tensors in sans serif bold italic shape (ISO recommendation),
 - some standard operator names,
+- several commands with useful aliases,
 - improved spacings in mathematical formulas,
 - systems of equations and small matrices,
-- displaymath in double columns for lengthy calculations.
+- displaymath in double columns for lengthy calculations with short expressions.
 
 
 ## Installation
 
 - run LaTeX on mismath.ins, you obtain the file mismath.sty,
-- if then you run XeLaTeX or LuaLaTeX on mismath.dtx you get the file mismath.pdf which is also in the archive,
+- if then you run pdfLaTeX on mismath.dtx you get the file mismath.pdf which is also in the archive,
 - put the files mismath.sty and mismath.pdf in your TeX Directory Structure.
 
 

Modified: trunk/Master/texmf-dist/doc/latex/mismath/mismath.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/mismath/mismath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/mismath/mismath.dtx	2024-05-04 19:46:59 UTC (rev 71171)
+++ trunk/Master/texmf-dist/source/latex/mismath/mismath.dtx	2024-05-04 19:47:07 UTC (rev 71172)
@@ -20,16 +20,16 @@
 %<*package> 
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
 \ProvidesPackage{mismath}   
-    [2024/02/29 v2.12 .dtx Miscellaneous mathematical macros]
+    [2024/05/04 v3.0 .dtx Miscellaneous mathematical macros]
 %</package>
 %<*driver>
 \documentclass{ltxdoc}
-%\usepackage[utf8]{inputenc} % running through XeLaTeX
+\usepackage[utf8]{inputenc} % run through XeLaTeX
 \usepackage[T1]{fontenc}
 \usepackage[english]{babel}
-\usepackage{fontspec}
+%\usepackage{fontspec}
 \usepackage{fourier} % in case of font change, modify 2.1 (3rd §)
-\usepackage[ibrackets,decimalcomma]{mismath}
+\usepackage[ibrackets,decimalcomma,otherReIm]{mismath}
 %\usepackage{amssymb} % unnecessary with fourier
 \usepackage{multicol}
 \usepackage{sectsty}
@@ -40,33 +40,37 @@
 
 \definecolor{darkbrown}{rgb}{0.5,0.1,0.1}
 \allsectionsfont{\color{darkbrown}}
-% The following commands provides several shapes of pi
-% the maximum number of authorized math fonts is reached
+
+% The following commands provide several shapes for pi
 \DeclareFontEncoding{LGR}{}{}
-\DeclareSymbolFont{lgrlmr}{LGR}{lmr}{m}{n}
-\DeclareMathSymbol{\pilmr}{\mathalpha}{lgrlmr}{112}
-\DeclareSymbolFont{lgrAlegreya}{LGR}{Alegreya-LF}{m}{n}
-\DeclareMathSymbol{\piAlegreya}{\mathalpha}{lgrAlegreya}{112}
-\DeclareSymbolFont{lgrCochineal}{LGR}{Cochineal-LF}{m}{n}
-\DeclareMathSymbol{\piCochineal}{\mathalpha}{lgrCochineal}{112}
-\pinumber[upgreek=Euler]
-\DeclareSymbolFont{upgreekSymbol}{U}{psy}{m}{n}
-\DeclareMathSymbol{\piSymbol}{\mathord}{upgreekSymbol}{`p}
-\DeclareSymbolFont{mdCharter}{OML}{mdbch}{m}{n}
-\DeclareMathSymbol{\piCharter}{\mathord}{mdCharter}{"19}
-\DeclareSymbolFont{kp}{U}{jkpmia}{m}{it}
-\DeclareMathSymbol{\pikp}{\mathord}{kp}{"19}
-\DeclareSymbolFont{px}{U}{pxmia}{m}{it}
-\DeclareMathSymbol{\pipx}{\mathord}{px}{"19}
-\DeclareSymbolFont{tx}{U}{txmia}{m}{it}
-\DeclareMathSymbol{\pitx}{\mathord}{tx}{"19}
-% For showing original \i and \j in text mode:
-\DeclareTextFontCommand{\extrafont}{\fontfamily{lmr}\selectfont}
+\def\pilmr{\text{\usefont{LGR}{lmr}{m}{n}\symbol{112}}}
+\def\piAlegreya{\text{\usefont{LGR}{Alegreya-LF}{m}{n}\symbol{112}}}
+\def\piCochineal{\text{\usefont{LGR}{Cochineal-LF}{m}{n}\symbol{112}}}
+\def\piLibSerif{\text{\usefont{LGR}{LibertinusSerif-LF}{m}{n}\symbol{112}}}
+\def\piLibSans{\text{\usefont{LGR}{LibertinusSans-LF}{m}{n}\symbol{112}}}
+\def\pilmss{\text{\usefont{LGR}{lmss}{m}{n}\symbol{112}}}
+\def\pigentium{\text{\usefont{LGR}{gentium}{m}{n}\symbol{112}}}
+\def\pilato{\text{\usefont{LGR}{lato-LF}{m}{n}\symbol{112}}}
+\DeclareFontFamily{U}{eur}{\skewchar\font'177}
+\DeclareFontShape{U}{eur}{m}{n}{%
+    <-6> eurm5 <6-8> eurm7 <8-> eurm10}{}
+\def\piEuler{\text{\usefont{U}{eur}{m}{n}\symbol{"19}}}
+\def\piSymbol{\text{\usefont{U}{psy}{m}{n}\symbol{`p}}}
+\def\piCharter{\text{\usefont{OML}{mdbch}{m}{n}\symbol{"19}}}
+\def\pikp{\text{\usefont{U}{jkpmia}{m}{it}\symbol{"19}}}
+\pinumber[otherpi] % fourier
+\def\pipx{\text{\usefont{U}{pxmia}{m}{it}\symbol{"19}}}
+\def\pitx{\text{\usefont{U}{txmia}{m}{it}\symbol{"19}}}
 
+% Next command is used for showing original Latin Modern \i and \j in text mode:
+%\DeclareTextFontCommand{\extrafont}{\fontfamily{lmr}\selectfont} % useless with fourier
+
 \DisableCrossrefs         
 %\CodelineIndex
 %\RecordChanges
+
 \usepackage{hyperref}
+\let\C\relax % "\C already defined" with hyperref when compiling with xelatex or lualatex
 \hypersetup{%
     colorlinks, 
     linkcolor=blue,
@@ -83,7 +87,7 @@
 %</driver>
 % \fi
 %
-% \CheckSum{831}
+% \CheckSum{845}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -159,8 +163,8 @@
 %        (and LGR encoding pi by default), it is no longer compatible with the older, 
 %    - paren command has been removed, 
 %    - hvect and hlbar have been slightly modified (phantom t instead of phantom h),
-%    - several changes in documentation, 
-%    - now using the Charter font (with the package mathdesign)}
+%    - several changes in the documentation, 
+%    - now using the Charter font in the doc (with the package mathdesign)}
 %
 % \changes{v2.1}{2022/12/26}{
 %    - Improved management of square brackets with the ibrackets package,
@@ -225,11 +229,26 @@
 %
 % \changes{v2.12}{2024/02/29}{
 %    - The xparse package has been removed by mistake in v2.11,
-%        this may cause some compatibility problems with unicode-math;
+%        this may cause some compatibility problems;
 %        it is loaded again by mismath
 %    - Improvements to make pinumber work perfectly with unicode-math
 %    - Small corrections in the doc}
 %
+% \changes{v3.0}{2024/03/15}{
+%    - Rewriting of the pinumber command including the pifonts macro
+%    - Presenting other lgrmath values for pinumber in the doc
+%    - The \C macro is now in AtBeginDocument
+%    - amsmath isn't loaded anymore because mathtools loads it
+%    - Bug fix with options decimalcomma and ibrackets
+%    - New option 'nofunction' to lighten the package loading
+%    - Addition of coker and Res in standard operator names
+%    - New option 'classicReIm' to deactivate Im and Re redefinition
+%    - New option 'otherReIm' to provide an alternative writing with cmsy font
+%    - Removal of the PEupright command
+%    - Additional space in the lfrac macro increased from \: (5mu) to 7mu 
+%    - New optional parameter for adjusting the space in lfrac
+%    - Changing the vphantom in hvect, hvec and lbar from `t' to `A', looks better}
+%
 % \GetFileInfo{mismath.sty}
 %
 % \title{Miscellaneous mathematical macros \\The \textsf{mismath} package\thanks{This document
@@ -236,7 +255,7 @@
 % corresponds to \textsf{mismath}~\fileversion, dated \filedate. 
 % Thanks to François Bastouil for initial help in English translation.}}
 % \author{Antoine Missier \\ \texttt{antoine.missier at ac-toulouse.fr}}
-% \date{February 29, 2024}
+% \date{May 04, 2024}
 %
 % \maketitle
 % \tableofcontents
@@ -243,8 +262,8 @@
 %
 % \section{Introduction}
 %
-% According to the International Standards ISO~31-0:1992 to ISO~31-13:1992 
-% (superseded by ISO~80000-2:2009), mathematical \emph{constants} $\e$, $\i$, $\otherpi$ 
+% According to the International Standards ISO~31-0:1992 to ISO~31-13:1992
+% (superseded by ISO~80000-2:2009), mathematical \emph{constants} $\e$, $\i$, $\pi$ 
 % should be typeset in roman (upright shape) and not in italic like
 % variables (see~\cite{TYPMA}~\cite{NIST}~\cite{SI}~\cite{ICTNS}).
 % This package provides some tools to achieve this automatically.
@@ -262,14 +281,15 @@
 % or worse $\left\Vert \vect{AB} \right\Vert$ (when using |\left|\ldots |\right|).
 % 
 % \smallskip
-% The package also offers other macros for:
+% The package also offers other macros to typeset:
 % \begin{itemize}
-% \item tensors,
-% \item some common operator names,
-% \item a few useful aliases,
-% \item enhancing spacing in mathematical formulas,
+% \item tensors in sans serif bold italic shape 
+% (ISO recommendation~\cite{TYPMA}~\cite{NIST}~\cite{SI}),
+% \item some standard operator names,
+% \item several commands with useful aliases,
+% \item improved spacings in mathematical formulas,
 % \item systems of equations and small matrices,
-% \item displaymath in double columns for lengthy calculations.
+% \item displaymath in double columns for lengthy calculations with short expressions.
 % \end{itemize}
 %
 % To avoid compatibility issues,
@@ -282,36 +302,38 @@
 %
 % \medskip
 % \DescribeEnv{\oarg{options}}
-% The \textsf{mismath} package loads the \textsf{amsmath} package~\cite{AMS}
-% without any options.
-% If you want to use \textsf{amsmath} with specific options (refer to its documentation),
-% you can include these options when calling \textsf{mismath}, or 
-% you can load \textsf{amsmath} 
-% with the desired options before loading \textsf{mismath}.
-% \emph{When using the package \textsf{unicode-math}~\cite{UNIC}, \textsf{mismath} 
-% must be loaded before \textsf{unicode-math}}, just like \textsf{amsmath}.
+% The \textsf{mismath} package loads the \textsf{mathtools}  
+% \footnote{The \textsf{mathtools} package offers numerous helpful macros and improvements 
+% of the \textsf{amsmath} package.}
+% package by Morten Høgholm and Lars Madsen~\cite{TOOL} which in turn loads
+% the \textsf{amsmath} package~\cite{AMS}.
+% If you want to use \mbox{\textsf{amsmath}} or \textsf{mathtools} with specific options,
+% you can include these options as options of \mbox{\textsf{mismath}}, or 
+% you can load \textsf{amsmath} or \textsf{mathtools}
+% with the desired options before loading \mbox{\textsf{mismath}}.
+% When using the package \textsf{unicode-math}~\cite{UNIC}, \textsf{mismath} 
+% should be loaded before \textsf{unicode-math}, just like \textsf{amsmath}.
 %
 % \medskip
-% In addition \textsf{mismath} loads the \textsf{mathtools} package 
-% by Morten Høgholm and Lars Madsen~\cite{TOOL}. 
-% This package offers numerous helpful macros and improvements of the \textsf{amsmath} package.
-%
-% \medskip
-% A recommendation, although rarely followed, is to typeset uppercase 
+% An ISO recommendation, although rarely followed, is to typeset uppercase 
 % Greek letters in italic shape,
-% similar to other variables~\cite{ICTNS}. This can be automatically achieved,
+% as for other variables~\cite{ICTNS}. This is automatically achieved,
 % for some particular fonts, with packages 
 % such as \textsf{fixmath} by Walter Schmidt~\cite{FIXM},
 % \mbox{\textsf{isomath}} by Günter Milde~\cite{ISOM} 
 % or \textsf{pm-isomath} by Claudio Beccari~\cite{PMISO} and optionally with many others
 % (such as \textsf{mathpazo} or \textsf{mathptmx} with the option \texttt{slantedGreek}).
+% When running through \LuaLaTeX\ or \XeLaTeX\ you can also get this result 
+% with the option \mbox{\texttt{math-style=ISO}} provided 
+% by the \textsf{unicode-math} package.
+% We also have the new \mbox{\textsf{mathgreeks}} package~\cite{MGREEK} which offers 
+% a wide range of fonts and different settings with Greek letters.
 % However this feature is not implemented here due to a conflicting rule in France,
 % where all capital letters in mathematics
 % are required to be typeset in upright shape
 % \footnote{The \textsf{frenchmath} package~\cite{FR}
 % ensures to follow the recommended French rules.}.
-% When running through \LuaLaTeX\ or \XeLaTeX\ you can also get this result by 
-% setting the option \mbox{\texttt{math-style=ISO}} in the \textsf{unicode-math} package.
+% The user is free to choose loading one of these packages or not.
 % 
 %
 % \section{Usage}
@@ -338,12 +360,12 @@
 %
 % \medskip
 % \DescribeMacro{\e} \DescribeMacro{\i}  \DescribeMacro{\j} 
-% To avoid cluttering a document that contains many occurrences of Euler's number (e) 
-% or imaginary numbers (i) with |\mathup{e}| or |\mathup{i}|, 
-% the package provides the |\e| command for Euler’s number 
+% To avoid cluttering a document that contains many occurrences of Euler's number $\e$,
+% or imaginary number $\i$, with |\mathup{e}| or |\mathup{i}|, 
+% the package provides the |\e| command for Euler's number 
 % and |\i| or |\j| for imaginary numbers.
 % Let us notice that |\i| and |\j| already exist in LaTeX. In LR (left-to-right) mode, 
-% they produce \mbox{`\extrafont{\i,\ \j}'} without the dot,  
+% they produce \mbox{`\i,\ \j'} without the dot,  
 % allowing you to place accents on them. 
 % However, in mathematical mode, they produce the warning 
 % ``\texttt{LaTeX Warning: Command \string \i\space invalid in math mode on input line}
@@ -355,7 +377,7 @@
 % \DescribeMacro{\MathUp} 
 % Indeed, typing a lot of backslashes for constants like $\e$, $\i$, or $\j$
 % in a document with numerous formulas can become tiresome. 
-% To alleviate this, the package proposes a powerful solution 
+% To alleviate this, the package proposes another solution 
 % with the macro |\MathUp|\marg{char}.
 % For example, when |\MathUp{e}| is called, any subsequent occurrence of $\e$
 % will automatically be set in roman (upright shape), 
@@ -362,12 +384,14 @@
 % without the need to type |\e| explicitly. The effect of this macro 
 % can be either global or local, depending on whether it is used outside or inside an
 % environment or braces.
-% Furthermore, you can call this macro in the preamble to apply the change 
-% from the beginning of the document. This powerful feature allows you 
-% to bring a document up to the standards effortlessly. 
+% Furthermore, you can also call this macro in the preamble, then the change will apply
+% from the beginning of the document. This powerful command allows you 
+% to bring a document up to the standards effortlessly and without changing anything
+% in your mathematical formulas. 
 % In fact, |\MathUp| can be applied to any valid single character, 
-% offering flexibility for various use cases (another use of it with probability 
-% will be presented in section \ref{operators}).
+% offering flexibility for various use cases
+% \footnote{Another use of it with probability 
+% will be presented in section \ref{operators}.}.
 %
 % \medskip
 % \DescribeMacro{\MathIt}
@@ -387,37 +411,47 @@
 % In |\MathNumbers|, the comma separator between letters can be modified 
 % or removed as needed. In fact, this macro only affects the letters e, i, or j; 
 % it has no effect on other characters.
-% On the other hand, |\MathNormal| can be utilized for probability as well 
-% (refer to section \ref{operators}), and it accepts any comma-separated list of arguments.
+% On the other hand, |\MathNormal| accepts any comma-separated list of arguments.
 % This means you can apply the normal italic math mode typesetting to various letters 
 % at once using |\MathNormal|.
+%
+% \medskip
+% \DescribeMacro{\enumber}\DescribeMacro{\inumber}\DescribeMacro{\jnumber}
+% These three commands, used until version 2.2 but only functioning within the preamble, 
+% serve now as aliases for the commands |\MathUp{e}|, |\MathUp{i}| or |\MathUp{j}|, 
+% so they can be used anywhere 
+% in the document or preamble and has an inverse switches with |\MathIt|. 
 % 
 % \medskip
 % \DescribeMacro{\pinumber[\meta{option}]}
-% The mathematical constant $\otherpi$  should also be typeset in upright shape 
+% The constant $\pi$  should also be typeset in upright shape 
 % (see~\cite{TYPMA}, \cite{NIST}, \cite{ICTNS}), which is different from italicized $\itpi$. 
 % However, this recommendation is even less commonly followed compared to the one 
 % concerning  $\e$ and $\i$~\cite{TYPMA}.
-% The |\pinumber| command replaces the italic $\itpi$ with an upright $\otherpi$
-% each time |\pi| is called. It functions in two different ways.
+% Thanks to the |\pinumber| command, the italic $\itpi$ will be replaced 
+% with an upright $\pi$
+% each time |\pi| is called. Thus |\pinumber| makes your document compliant with standards 
+% without changing the source code of your mathematical formulas. 
+% It functions in two different ways.
 %
 % \begin{enumerate}
-% \item You can install a Greek letters package that provides the glyphs in upright shape. 
+% \item You can load a Greek letters package that provides the glyphs in upright shape. 
 % There are many available.
 % Notably, let us mention \textsf{upgreek}~\cite{GREEK}, 
 % \mbox{\textsf{mathdesign}}~\cite{DESIGN},
 % \mbox{\textsf{kpfonts}}~\cite{KPF}, 
-% \mbox{\textsf{fourier}}~\cite{FOUR} (used in the present document),
-% \mbox{\textsf{libertinust1math}},
-% \mbox{\textsf{pxgreeks}} (using \textsf{pxfonts}), \mbox{\textsf{txgreeks}}
-% (using \textsf{txfonts})
+% \mbox{\textsf{fourier}}~\cite{FOUR} (used in the present document), but also
+% \mbox{\textsf{pxgreeks}} (using \textsf{pxfonts}~\cite{PX}), \mbox{\textsf{txgreeks}}
+% (using \textsf{txfonts}~\cite{TX})
 % \footnote{When using \textsf{pxgreeks} or \textsf{txgreeks},
 % they should be loaded \emph{after} \textsf{mismath} to avoid an error
 % due to conflict with the existing macros \texttt{\string\iint}, \texttt{\string\iiint},
 % \texttt{\string\iiiint}, \texttt{\string\idotsint} in \textsf{amsmath}.}, 
-% \textsf{libgreek}, etc.
+% \mbox{\textsf{libertinust1math}}~\cite{LIB}, \textsf{libgreek}, etc.
 % A special mention goes to \textsf{lgrmath} of Jean-François Burnol~\cite{LGR}
-% which allows the use of any Greek LGR-encoded font in math mode. 
+% which allows the use of any Greek LGR-encoded font in math mode,
+% an idea taken up in \textsf{mathgreeks}~\cite{MGREEK}.
+% Also note \textsf{newtxmath}~\cite{NTX} which has several font options.
 % These packages provide commands like |\uppi| (\textsf{upgreek}), 
 % |\piup| (\textsf{mathdesign}, \textsf{kpfonts}, \textsf{lgrmath}), 
 % |\otherpi| (\textsf{fourier}), etc.
@@ -425,102 +459,123 @@
 % letters in upright shape by default, but this in not our goal here.}
 %
 % In this case, |\pinumber| must be called in the preamble 
-% with the name of the command (without the backslash) giving access to the upright pi
-% (piup, uppi, otherpi \ldots) as the argument for the optional parameter.
+% with an optional argument being the name of the command, \emph{without the backslash},
+% giving access to the upright pi:
+% piup, uppi, otherpi\ldots
 % However, installing such a Greek letters package will modify 
 % all the other Greek letter glyphs.
 % ^^A even if, except for pi, they will be in italics. 
 %
-% By using the preliminary code |\MathNumbers{ei}\pinumber[otherpi]| 
-% (assuming the \textsf{fourier} package is loaded)
+% By calling in the preamble |\MathNumbers{ei}\pinumber[otherpi]| 
+% (assuming the \textsf{fourier} package is loaded),
 % you can achieve the following result:
 % \begin{center}
-% |$e^{i\pi} = -1$| \quad yields \quad   $\e^{\i\otherpi}=-1$.
+% |$e^{i\pi} = -1$| \quad yields \quad   $\e^{\i\pi}=-1$.
 % \end{center}
 %
 % \item Without installing a package, it is possible to change only the glyph of pi 
-% without altering the original glyphs for the other Greek letters, 
-% which are typically in italics. 
-% ^^A The original pi will still be accessible with |\itpi|.
+% without altering the other Greek letters, 
+% which are typically in italics.
 %
 % In this case, |\pinumber| must be called in the preamble with an optional argument 
 % of the \texttt{key=value} type. The key name corresponds to a package
 % providing the same glyph.
+% The following table summarizes the available options.
 % When a key is given without a value, |\pinumber| will choose a default value
-% specified below (depending on the key) . 
-% The following table summarizes the available options.
+% specified in the following text (depending on the key).
 %
 % \begin{center}
 % \setlength{\extrarowheight}{1pt}
 % \begin{tabular}{>{\ttfamily}l>{$}c<{$}}
 % \hline
-% \normalfont Option & \mbox{Result} \\
+% {\normalfont Option} lgrmath=... & \mbox{Result} \\
 % \hline
-% lgrmath=lmr & \pilmr \\
-% lgrmath=Alegreya-LF & \piAlegreya \\
-% lgrmath=Cochineal-LF & \piCochineal \\
-% lgrmath=\ldots & \ldots\\
-% upgreek=Euler & \pi \\
-% upgreek=Symbol & \piSymbol \\
+% Alegreya-LF & \piAlegreya \\
+% Cochineal-LF & \piCochineal \\
+% LibertinusSerif-LF & \piLibSerif \\
+% LibertinusSans-LF & \piLibSans \\
+% lmr & \pilmr \\
+% lmss & \pilmss \\
+% gentium & \pigentium\\
+% lato-LF & \pilato \\
 % \hline
 % \end{tabular}
-% \qquad 
+% \qquad
 % \begin{tabular}{>{\ttfamily}l>{$}c<{$}}
 % \hline
-% \normalfont Option & \mbox{Result} \\
+% \normalfont Other options & \mbox{Result} \\
 % \hline
+% fontspec=\ldots & \ldots \\
+% upgreek=Euler & \piEuler \\
+% upgreek=Symbol & \piSymbol \\
 % mathdesign & \piCharter \\
 % kpfonts & \pikp \\
-% fourier &  \otherpi\\
+% fourier & \pi\\
 % pxfonts & \pipx \\
 % txfonts & \pitx \\
-% & \\
 % \hline
 % \end{tabular}
 % \end{center}
 %
+% \medskip
 % \begin{itemize}
+%
 % \item With the \texttt{lgrmath} key, we actually have numerous possibilities 
-% for values (any Greek letters math fonts in LGR encoding). 
+% for values (any Greek letters math font in LGR encoding). 
 % The documentation of the \textsf{lgrmath}
 % package explains how to check an visualize all available fonts on your distribution.
-% We have only presented three of them. The default value is \texttt{lmr}.
+% We have only presented seven of them. The default value is \texttt{lmr}.
+% Other interesting values are \texttt{NotoSerif-LF}, \texttt{Clara-TLF},
+% \texttt{droidserif}, \texttt{fct}, \texttt{llcmss}.
 %
+% \item When |\pinumber| is called without an argument in the preamble, 
+% it corresponds to the option \texttt{lgrmath=lmr}.
+% This $\pilmr$ character is well-suited
+% for use with the Latin Modern font family
+% \footnote{It will look the same as the one provided by \texttt{lgrmath=cmr} or by
+% Günter Milde's \textsf{textalpha} package~\cite{ALPHA}.}.
+%
+% \item With the \texttt{fontspec} key, there are also many possible values,
+% corresponding to the TrueType or OpenType fonts installed on your system
+% (works with \LuaLaTeX\ or \XeLaTeX).
+% See the \textsf{mathgreeks} documentation for examples.
+
 % \item With the \texttt{upgreek} key, the default value is \texttt{Symbol}. 
 % There is a third possible value, \texttt{Symbolsmallscale}, 
 % which provides the same character as \texttt{Symbol} but reduced in size by 10\,\%.
 %
 % \item With the \texttt{mathdesign} key, there are actually 3 possible values: 
-% \texttt{Utopia}, \texttt{Garamond}, or \texttt{Charter} (default value), 
-% but the glyphs obtained for pi look very similar.
+% \texttt{Utopia}, \texttt{Garamond} or \texttt{Charter} (the default value), 
+% but the glyphs obtained for pi look quite similar.
 %
 % \item With the \texttt{kpfonts} key, we have two possible values: 
 % \texttt{normal} (default) and \texttt{light}. The option \texttt{kpfonts=light}
 % provides a slightly less bold character.
 %
-% \item The keys \texttt{fourier} (based on Utopia), \texttt{pxfonts} (based on Palatino)
-% and \texttt{txfonts} (based on Times)
+% \item The last keys, \texttt{fourier} (based on Utopia), \texttt{pxfonts} 
+% (based on Palatino),
+% \texttt{txfonts} (based on Times)
 % are booleans whose default value is \texttt{true} (when called).
+% The \texttt{txfonts} option yields the same glyph than \texttt{lgrmath=txr}.
 %
-% \item When |\pinumber| is called without an argument in the preamble, 
-% it corresponds to the option \texttt{lgrmath=lmr}.
-% This $\pilmr$ character is particularly well-suited
-% for use with the default Computer Modern or Latin Modern font family
-% \footnote{It will look the same as the one provided by
-% Günter Milde's \textsf{textalpha} package~\cite{ALPHA}.}.
 % \end{itemize}
 % \end{enumerate}
 % 
 % The \textsf{unicode-math} package~\cite{UNIC} provides |\uppi|, and you can use
-% |\pinumber[uppi]| to produce automatic upright pi, but, with \textsf{unicode-math},
-% it can be quite complicated 
-% to make some other Greek letters packages work. 
-% In any case, such a package must be loaded after \textsf{unicode-math} and in 
-% |\AtBeginDocument|. 
-% However, \textsf{unicode-math} supports |\pinumber| very well with the 
-% previous \texttt{key=value} options, by calling |\pinumber[option]| after 
-% \mbox{\textsf{unicode-math}}.
+% |\pinumber[uppi]| to produce automatic upright pi in the selected math font,
+% but |\pinumber[uppi]| must be called \emph{after} \mbox{\textsf{unicode-math}},
+% and a math font must have been explicitly chosen with |\setmathfont|.
+% You can also use the \texttt{fontspec} key option to obtain pi in any font 
+% that is supported by \mbox{\textsf{unicode-math}} \eg
+% |\pinumber[fontspec=STIX Two Math]|.
 %
+% For other fonts, it can be quite complicated to make Greek letters packages 
+% work with \textsf{unicode-math}. In any case, such a package must be loaded 
+% after \textsf{unicode-math} and in |\AtBeginDocument|. 
+% However, |\pinumber| supports \textsf{unicode-math} very well with any previous
+% \texttt{key=value} option, by calling |\pinumber|\oarg{option} 
+% after \textsf{unicode-math}.
+%
 % \medskip
 % \DescribeMacro{\itpi}
 % When you activate |\pinumber|, the original italic $\itpi$ 
@@ -555,7 +610,7 @@
 % If you wish to use a different type of arrow, you must call \textsf{esvect}
 % with the appropriate option \emph{before} loading \textsf{mismath}.  
 % For example, using |\usepackage[d]{esvect}|
-% will provide the arrows produced by default in~\cite{VECT}.
+% will provide the same arrows that are used by default in~\cite{VECT}.
 %
 % \medskip 
 % \DescribeMacro{\boldvect}
@@ -567,11 +622,11 @@
 % \begin{minipage}{8cm}
 % \begin{verbatim} 
 %\[ \boldvect \vect{v}
-%   =\lambda\vect{e}_x+\mu\vect{e}_y. \]
+%   =\lambda\vect{e}_x+\mu\vect{e}_y \]
 % \end{verbatim}
 % \end{minipage} 
 % \begin{minipage}{4cm}\vspace{-2ex}
-% $\boldvect \vect{v}=\lambda\vect{e}_x +\mu\vect{e}_y$.
+% $\boldvect \vect{v}=\lambda\vect{e}_x +\mu\vect{e}_y$
 % \end{minipage}
 %
 % \DescribeMacro{\boldvectcommand}
@@ -586,9 +641,12 @@
 % \textsf{unicode-math} provides the |\symbfit| command.
 % To use an alternative command instead of |\boldsymbol| in \textsf{mismath}, 
 % redefine |\boldvectcommand|, 
-% for instance after loading \textsf{fixmath}: 
-% \begin{center} |\renewcommand\boldvectcommand{\mathbold}|. \end{center}
+% for instance after loading \textsf{fixmath}:
 %
+% \medskip
+% \centeredline{|\renewcommand\boldvectcommand{\mathbold}|}
+%
+% \medskip
 % According to ISO rules, symbols for matrices are also in bold italic.
 % Therefore you can use the same |\boldvect| command or create another alias.
 %
@@ -604,28 +662,31 @@
 % \DescribeMacro{\hvect}
 % When vectors with arrows are typeset side by side,
 % the arrows can be set up slightly higher using |\hvect|
-% (which places a vertical phantom box containing ``$t$'') 
+% (which places a vertical phantom box containing `$A$') 
 % to avoid inelegant effects. For example, writing
 % \begin{itemize}
-% \item $\vect{AB}=\hvect{u}+ \vect{AC}$, obtained with |\hvect{u}|,
-% is better than $\vect{AB}=\vect{u}+ \vect{AC}$;
+% \item $\vect{AB}=\hvect{u} + \vect{AC}$, obtained with |\hvect{u}|,
+% looks better than $\vect{AB}=\vect{u}+ \vect{AC}$;
 % \item $\hvect{a} \cdot \vect{b}=0$, obtained with |\hvect{a}|,
-% is better thant $\vect{a} \cdot \vect{b}=0$.
+% looks better than $\vect{a} \cdot \vect{b}=0$.
 % \end{itemize}
-% This adjustment ensures a more visually pleasing appearance when vectors 
-% with arrows are combined in an equation.
+% This adjustment ensures a nicer appearance when vectors 
+% with arrows are combined in an equation
+% \footnote{For a fine tuning you can also use the \texttt{\string\vstrut} or
+% \texttt{\string\cstrut} macros from the \textsf{spacingtricks} package~\cite{SPA}.}.
 % The |\boldvect| and |\arrowvect| switches have the same effect on |\hvect| 
 % as they do on |\vect|.
 %
 % \DescribeMacro{\hvec}
 % In a similar way, |\hvec| raises the little arrow produced by
-% the \LaTeX\ command |\vec|, to the height of the letter ``$t$''
-% (but |\boldvect| have no effect here):
+% the \LaTeX\ command |\vec|, to the height of the letter `$A$'
+% (but |\boldvect| have no effect on |\vec| nor |\hvec|):
 % \begin{itemize}
 % \item $\mathcal{P}=\vec{f}\cdot\hvec{v}$, obtained with |\hvec{v}|,
-% is better than $\mathcal{P}=\vec{f}\cdot\vec{v}$.
+% seems better than $\mathcal{P}=\vec{f}\cdot\vec{v}$;
+% ^^A (the result of |\vec| with \textsf{fourier} may be bad with high letters, \eg $\vec{h}$)
 % \item $\vec{f} =m \hvec{a}$, obtained with |\hvec{a}|,
-% is better than $\vec{f} =m \vec{a}$.
+% seems better than $\vec{f} =m \vec{a}$.
 % \end{itemize}
 %
 % \DescribeMacro{\norm}
@@ -639,11 +700,11 @@
 % instead of $\Vert\vec{h}\Vert$ or $\left\Vert \vec{h} \right\Vert$.
 % Let's notice that the height of the bars don't adjust to content, 
 % but however to context: main text, subscripts or exponents, 
-% \eg $\e^{\norm{\vec{h}}}$. 
+% \eg $X^{\norm{\vec{h}}}$. 
 % This macro is useful only for arguments of special height, such as $\vec{h}$ or $\vect{AB}$
 % and may give bad results in other situations.
 %
-% \pagebreak
+% \medskip
 % \DescribeMacro{\mathbfsfit}\DescribeMacro{\tensor}
 % For tensors symbols, ISO rules recommend using
 % sans serif bold italic, but there
@@ -651,7 +712,7 @@
 % However, the \mbox{\textsf{mismath}} package defines this alphabet 
 % (assuming the font encoding and package you use permits it) 
 % and provides the macro |\mathbfsfit| or its alias |\tensor|.
-% By using |\tensor{T}| you can produce $\tensor{T}$.
+% By writing |\tensor{S}\otimes\tensor{T}|, you get $\tensor{S}\otimes\tensor{T}$.
 %
 % \subsection{Standard operator names}\label{operators}
 %
@@ -681,12 +742,12 @@
 % \[m\frac{\di^2x}{\di t^2}+h\frac{\di x}{\di t}+kx=0\]
 % \end{minipage}
 %
-% This command can also represent \emph{distance} (hence its name):
-% \[\lambda\di(A, \mathcal{F})+\mu\di(B, \mathcal{H}).\]
+% The command |\di| can also represent the \emph{distance}, hence its name:
+% \[\di(u, \cmmathcal{H}) = \frac{\abs{\langle u,v\rangle}}{\lVert v \rVert}.\]
 %
 % \DescribeMacro{\P} \DescribeMacro{\E}
 % To refer to probability
-% \footnote{\LaTeX\ provides also \texttt{\string Pr} which gives $\Pr$.}
+% \footnote{\LaTeX\ provides also \texttt{\string \Pr} which gives $\Pr$.}
 % and expectation the proper use is to typeset the capital letters $\P$, $\E$ 
 % in roman just like any standard function identifier.
 % This can be achieved with |\P| and |\E| commands.
@@ -698,43 +759,45 @@
 %
 % \medskip
 % \DescribeMacro{\V}
-% Variance is generally denoted by $\var$ or $\Var$ (see table below),
+% Variance is generally denoted by $\var$ or $\Var$ (see the following table),
 % but some authors prefer to use $\V$, which can be produced using |\V|.
 %
-% \medskip
+% \pagebreak
 % \DescribeMacro{\MathProba}\DescribeMacro{\MathNormal}
 % As for $\e$, $\i$ or $\j$, you can use |\MathUp{P}|, |\MathUp{E}| 
 % or |\MathUp{V}| to avoid typing many |\P|, |\E| or |\V|. 
 % However you can also achieve this in a single command with |\MathProba|, 
-% for example |\MathProba{P,E}|. We get the inverse toggle with
+% for example |\MathProba{PE}|. We get the inverse toggle with
 % |\MathIt| for any individual letter or |\MathNormal| for a list.
 %
 % \medskip
 % \DescribeMacro{\probastyle}
-% Some authors use ``blackboard bold'' font to represent probability, expectation 
+% Some authors use ``outline'' font shape to represent probability, expectation 
 % and variance: $\mathbb{P}, \mathbb{E}, \mathbb{V}$.
 % The |\probastyle| macro sets the appearance of |\P|, |\E| and |\V|.
 % For instance |\renewcommand\probastyle{\mathbb}|
 % \footnote{The effect of this redefinition is global or local to the container environment 
 % in which it is used.}
-% brings the previous ``double-struck'' letters.
-% The |\mathbb| command comes from \textsf{amsfonts} package
-% (loaded by \textsf{amssymb} but also available standalone)
-% which needs to be called in the preamble.
+% brings the double-struck letters.
+% The |\mathbb| command is provided by \textsf{amsfonts} package
+% (which needs to be called in the preamble), but also by other complete math font
+% packages such as \textsf{mathdesign}, \textsf{kpfonts}, \textsf{fourier}, 
+% \textsf{unicode-math}\ldots
+% \hypertarget{nofunction}{}
 %
 % \medskip
 % The following standard operator names are defined in \textsf{mismath}:
 % \begin{center}
 % \begin{tabular}{rlrlrl}
-% |\adj| & $\adj$ \qquad\mbox{} & |\erf| & $\erf$ \qquad\mbox{} & |\Re| & $\Re$ \\
-% |\Aut| & $\Aut$ & |\grad| & $\grad$ & |\rot| & $\rot$ \\
-% |\codim| & $\codim$ & |\id| & $\id$ & |\sgn| & $\sgn$ \\
-% |\Conv| & $\Conv$ & |\Id| & $\Id$ & |\sinc| & $\sinc$ \\
-% |\cov| & $\cov$ & |\im| & $\im$ & |\spa| & $\spa$ \\
-% |\Cov| & $\Cov$ & |\Im| & $\Im$ & |\tr| & $\tr$ \\
-% |\curl| & $\curl$ & |\lb| & $\lb$ & |\var| & $\var$ \\
-% |\divg| & $\divg$ & |\lcm| & $ \lcm$ & |\Var| & $\Var$  \\
-% |\End| & $\End$ & |\rank| & $\rank$ & |\Zu| & $\Zu$
+% |\adj| & $\adj$ \qquad\mbox{} & |\End| & $\End$ \qquad\mbox{} & |\Res| & $\Res$ \\
+% |\Aut| & $\Aut$ & |\erf| & $\erf$ & |\rot| & $\rot$ \\
+% |\codim| & $\codim$ & |\grad| & $\grad$ & |\sgn| & $\sgn$ \\
+% |\coker| & $\coker$ & |\id| & $\id$ & |\sinc| & $\sinc$ \\
+% |\Conv| & $\Conv$ & |\Id| & $\Id$ & |\spa| & $\spa$ \\
+% |\Cov| & $\Cov$ & |\im| & $\im$ & |\tr| & $\tr$ \\
+% |\cov| & $\cov$ & |\lb| & $\lb$ & |\var| & $\var$ \\
+% |\curl| & $\curl$ & |\lcm| & $ \lcm$ & |\Var| & $\Var$  \\
+% |\divg| & $\divg$ & |\rank| & $\rank$ & |\Zu| & $\Zu$
 % \end{tabular}
 % \end{center}
 %
@@ -745,26 +808,15 @@
 % For the variance, the covariance and the identity function, 
 % two notations are proposed, with or without a first capital letter, 
 % because both are very common.
-% On the other hand, `$\im$' stands for the image of a linear transformation 
-% (like `$\ker$' for the kernel)
-% whereas `$\Im$' is the imaginary part of a complex number.
 % Please note that |\div| already exists ($\div$) and |\span| is a \TeX\ primitive;
 % they haven't been redefined. Therefore the provided macros are called |\divg| (divergence) 
 % and |\spa| (span of a set of vectors).
 % Furthermore |\Z| is used to denote the set of integers (see \ref{aliases}), 
-% which is why we used |\Zu|,
+% which is why we propose |\Zu|,
 % to designate the center of a group: $\Zu(G)$ (from German Zentrum).
 %
-%\medskip
-% \DescribeMacro{\oldRe} \DescribeMacro{\oldIm}
-% The |\Re| and |\Im| macros already existed to refer to real and imaginary part 
-% of a complex number, producing outdated symbols $\oldRe$ and $\oldIm$.
-% However, they have been redefined according to current usage, 
-% as mentioned in the above table. Nevertheless,
-% it is still possible to obtain the old symbols with |\oldRe| and |\oldIm|.
-%
 % \medskip
-% The package \textsf{mismath} also provides some (inverse) circular or hyperbolic functions, 
+% The \textsf{mismath} package also provides some (inverse) circular or hyperbolic functions, 
 % that are missing in \LaTeX:
 % \begin{center}
 % \begin{tabular}{rlrlrl}
@@ -773,21 +825,44 @@
 % |\sech| & $\sech$ & |\arcosh| & $\arcosh$ & |\arsech| & $\arsech$ \\
 % |\csch| & $\csch$ & |\artanh| & $\artanh$ & |\arcsch| & $\arcsch$
 % \end{tabular}
-% \end{center} 
+% \end{center}
 %
+% \DescribeMacro{[nofunction]}
+% Some may find that the definition of all these operators and functions is not useful 
+% for their needs. So, the above definitions (on this page)
+% can be disabled with the \texttt{nofunction} option.
+% \hypertarget{classicReIm}{}
+%
+% \medskip
+% \DescribeMacro{\Re} \DescribeMacro{\Im}
+% The |\Re| and |\Im| macros refer to real and imaginary part 
+% of a complex number. They have been redefined to produce $\mathup{Re}$ and $\mathup{Im}$, 
+% in place of outdated symbols $\oldRe$ and $\oldIm$.
+% Nevertheless, it is still possible to obtain the old symbols 
+% with |\oldRe| and |\oldIm|.
+%
+% \medskip
+% \DescribeMacro{[otherReIm]}
+% An alternative notation $\Re$, $\Im$ is provided by invoking the \texttt{otherReIm}
+% package option,
+% \DescribeMacro{[classicReIm]}
+% whereas the \texttt{classicReIm} option deactivates these redefinitions.
+%
 % \DescribeMacro{\bigO} \DescribeMacro{\bigo} \DescribeMacro{\lito}
-% Asymptotic comparison operators (in Landau notation) are obtained with
-% |\bigO| or |\bigo| and |\lito| commands: 
-% \[ n^2+\bigO(n\log n) \txt{or} n^2+\bigo(n\log n)\txt{and} \e^x=1+x+\lito(x^2).\]
+% Asymptotic comparison operators (in Bachmann-Landau notation) are obtained with
+% |\bigO| or |\bigo| and |\lito| commands. The first one uses
+% the |\cmmathcal| alphabet and the last two compose the letters `O' and `o' in 
+% roman, as for any operator: 
+% \[ n^2+\bigO(n\log n) \txt{or} n^2+\bigo(n\log n)\txt{and} 
+% \e^x=1+x+\frac{x^2}{2}+\lito\bigl(x^2\bigr).\]
 %
 % \subsection{A few useful aliases} \label{aliases}
 % 
-% \onlymathC
 % In the tradition of Bourbaki and D.~Knuth, proper use requires 
 % that classic sets of numbers are typeset in bold roman:
 % $\R, \C, \Z, \N, \Q$, 
-% whereas ``double-barred'' or ``openwork'' letters 
-% ($\mathbb{R}, \mathbb{C}, \mathbb{Z}, \ldots$) 
+% whereas double-struck letters 
+% ($\mathbb{R}, \mathbb{C}, \mathbb{Z}, \mathbb{N}, \mathbb{Q}$) 
 % are reserved for writing at the blackboard~\cite{LSHORT}.
 % Similarly, to designate a field we use $\F$ or $\K$ (Körper in German).
 % We obtain these symbols with the following macros:
@@ -795,23 +870,22 @@
 % |\R|, |\C|, |\Z|, |\N|, |\Q|, |\F|, |\K|.
 % \end{center}
 %
-% \medskip
+% \smallskip
 % \DescribeMacro{\mathset}
 % The |\mathset| command enables you to change the behavior 
 % of all these macros in a global way. 
-% By default, |\mathset| is an alias for |\mathbf|, but if you prefer openwork letters, 
-% you can simply place |\renewcommand\mathset{\mathbb}| where you want, 
-% for instance in the preamble after loading the \textsf{amsfonts} package 
-% (which provides the ``blackboard bold'' typeface,
-% also loaded by \textsf{amssymb}).
+% By default, |\mathset| is an alias for |\mathbf|, but if you prefer outline letters, 
+% you can simply use |\renewcommand\mathset{\mathbb}| (with local effect when
+% inside an environment or a pair of curly braces).
 %
 % \smallskip
 % \DescribeMacro{\onlymathC}
 % The macro |\onlymathC| is designed for cases when |\C| is already defined,
-% but only in text mode (usually when loading the Russian language with \textsf{babel}
-% or \textsf{polyglossia}). The macro preserves the original definition for text mode
+% but only in text mode (usually with the Russian language). Then you get the message:
+% ``\texttt{Command \string\C\space invalid in math mode}''.
+% This macro preserves the original definition for text mode
 % and allows you to use |\C| for the complex number set in math mode.
-% For this purpose, simply call |\onlymathC| once in the preamble or anywhere in the document.
+% Simply call |\onlymathC| once in the preamble or anywhere in the document.
 %
 % \medskip
 % \DescribeMacro{\ds}
@@ -844,11 +918,11 @@
 % \DescribeMacro{\lbar} \DescribeMacro{\hlbar}
 % Large bars over expressions are obtained with |\overline|
 % or its alias |\lbar|, to get for instance $\lbar{z_1z_2}$.
-% Similar to vectors, you can raise the bar (from the height of ``$h$'') with
+% Similar to vectors, you can raise the bar (from the height of `$A$') with
 % the |\hlbar| command, to correct uneven bars heights.
 % \begin{center}
 % $\lbar{z+z'}=\hlbar{z}+\lbar{z'}$, obtained with |\hlbar{z}|,
-% is better than $\lbar{z+z'}=\lbar{z}+\lbar{z'}$.
+% looks better than $\lbar{z+z'}=\lbar{z}+\lbar{z'}$.
 % \end{center}
 %
 % \DescribeMacro{\eqdef} \DescribeMacro{\eqdef*}
@@ -918,23 +992,22 @@
 % (ordinary symbol) and leaving less space around than |\times|:
 % \begin{center}
 % $\lambda+\alpha \mul b-\beta \mul c$, obtained with |\mul|,
-% is better than $\lambda+\alpha \times b-\beta \times c$.
+% looks better than $\lambda+\alpha \times b-\beta \times c$.
 % \end{center}
 %
 % When using |\mul| before a function name or around a |\left...\right| structure, 
 % the space may be too large on one side of |\mul|.
-% To ensure the same amount of space on both sides of |\mul|, 
+% To ensure the same amount of space on both sides, 
 % you can use thin negative spaces |\!| 
 % or enclose the function or structure with braces:
 % \begin{center}
-% $x\mul{\sin x}$, obtained with |x\mul{\sin x}|, is slightly better than $x\mul\sin x$.\\[1ex]
+% $x\mul{\sin x}$, obtained with |x\mul{\sin x}|, is slightly better than $x\mul\sin x$;\\[1ex]
 % |$\sin\!{\left( \frac{\pi}{3} \right)} \mul 2$|\\
-% gives $\sin\!{\left(\frac{\pi}{3}\right)}\mul 2$, which is better than
+% yields $\sin\!{\left(\frac{\pi}{3}\right)}\mul 2$, which looks better than
 % $\sin\left(\frac{\pi}{3}\right)\mul 2$. 
 % \end{center}
-% The thin negative space after the function name is not relative to |\mul|,
-% but is due to the fact that spaces around a |\left...\right| structure
-% are bigger than those produced by single parenthesis |(...)|.
+% The negative thin space after the function name is not related to |\mul|,
+% but to the  ``excessive'' spaces around the |\left... \right| structure.
 %
 % \medskip
 % \DescribeMacro{\pow}
@@ -941,13 +1014,14 @@
 % In the same way, when typesetting an exponent after a closing \emph{big} 
 % parenthesis produced by |\right)|,
 % the exponent appears to be a little to far from the parenthesis.
-% To address this issue, the |\pow|\marg{expr}\marg{pow} command is provided, which sets
-% \meta{expr} between parentheses and adjusts the positioning of the exponent \meta{pow}
-% slightly closer to the right parenthesis
-% \footnote{This macro gives bad results with normal-sized parenthesis.}. 
+% To address this issue, the |\pow|\marg{expr}\marg{pow} command is provided
+% \footnote{This macro gives bad results with \emph{normal-sized} parenthesis.},
+% which sets the positioning of the exponent \meta{pow}
+% slightly closer to the right parenthesis.
 % Compare:
-% \[ \e^a \sim\pow{1+\frac{a}{n}}{n} \txt{which may be better than} 
-% \e^a \sim\left(1+\frac{a}{n}\right)^{n}.\]
+% \[ \e^a =\lim_{n \to +\infty}\pow{1+\frac{a}{n}}{n} 
+% \txt{obtained with \texttt{\string \pow}, rather than} 
+% \e^a =\lim_{n \to +\infty}\left(1+\frac{a}{n}\right)^{n}.\]
 %
 % \DescribeMacro{\abs}
 % The correct typesetting of absolute value (or modular for a complex number) is achieved
@@ -964,17 +1038,19 @@
 % \DescribeMacro{\lfrac}
 % The |\lfrac| macro behaves like |\frac|
 % but with thicker spaces around the arguments,
-% making the corresponding fraction bar slightly longer:\\[2ex]
-% \begin{minipage}{8cm}
-% \begin{verbatim}
-%\[ \lbar{Z} = 
-%   \lfrac{\lbar{z_1-z_2}}{\lbar{z_1+z_2}} \]
-% \end{verbatim}
-% \end{minipage}
-% \begin{minipage}{4cm}\vspace{-3ex}
-% \[ \lbar{Z} = \lfrac{\lbar{z_1-z_2}}{\lbar{z_1+z_2}} \]
-% \end{minipage}
+% making the corresponding fraction bar slightly longer. See the following examples:
+% \[ \lbar{Z} = \lfrac{\lbar{z_1-z_2}}{\lbar{z_1+z_2}} \qquad
+%  u(x)= \lfrac{\frac{1-2x}{5}}{x^2+1} \qquad
+% y'+xy=\lfrac[4mu]{1}{\sqrt{x}}
+% \]
 %
+% This macro has an optional parameter |\lfrac|\oarg{space}\marg{num}\marg{denom}
+% to adjust the length of the fraction bar. The optional \meta{space} argument must be given
+% in \emph{math units} (\texttt{mu}); 
+% the default value is \texttt{7mu} (equivalent to |\:\,|),
+% \texttt{4mu} in the last example.
+% \hypertarget{ibrackets}{}
+%
 % \medskip
 % \DescribeMacro{[ibrackets]}
 % Open intervals are commonly represented with parenthesis, \eg $(0, +\infty)$,
@@ -984,17 +1060,14 @@
 % To address this issue, we have redefined the brackets in the \textsf{ibrackets}
 % package~\cite{BRACKET}.
 % This one can be optionally
-% \footnote{This functionality is optional because there is a conflict
-% when using another command for open intervals with square brackets defined by 
-% \texttt{\string \DeclarePairedDelimiter} from \textsf{mathtools}~\cite{TOOL}.}
 % loaded by \textsf{mismath} using the \texttt{ibrackets} package option.
 % Thus |$x\in ]-\pi,0[ \cup ]2\pi,3\pi[$|
 % \begin{align*}
 % \mbox{yields \ } 
-% x\in ]-\otherpi, 0[ \cup ]2\otherpi, 3\otherpi[ & \mbox{\ with \textsf{ibrackets}}, \\
+% x\in ]-\pi, 0[ \cup ]2\pi, 3\pi[ & \mbox{\ with \textsf{ibrackets}}, \\
 % \mbox{instead of \ }
-% x\in \mathclose{]}-\otherpi, 0 \mathopen{[} \cup 
-% \mathclose{]} 2\otherpi, 3\otherpi \mathopen{[} 
+% x\in \mathclose{]}-\pi, 0 \mathopen{[} \cup 
+% \mathclose{]} 2\pi, 3\pi \mathopen{[} 
 % &\mbox{\ without \textsf{ibrackets}}.
 % \end{align*}
 %
@@ -1017,10 +1090,15 @@
 % For instance |$[a,b] +[c,d]$| yields $[a,b] +[c,d]$
 % but |$[a,b]+ [c,d]$| yields $[a, b]+ [c, d]$.
 %
-% Besides, there are other approaches, for example the |\interval| macro
+% \medskip
+% Note that there are other ways to proceed,
+% for example with |\interval|,
 % from the \textsf{interval} package~\cite{INT},
-% or |\DeclarePairedDelimiters| from the \textsf{mathtools} package~\cite{TOOL}
-% (but this command is incompatible with \textsf{ibrackets}).
+% or with |\DeclarePairedDelimiter|
+% \footnote{You cannot use \texttt{\string\DeclarePairedDelimiter} with square brackets 
+% when \textsf{ibrackets} is loaded.}
+% from \mbox{\textsf{mathtools}}~\cite{TOOL}.
+% \hypertarget{decimalcomma}{}
 %
 % \medskip
 %\DescribeMacro{[decimalcomma]}
@@ -1040,11 +1118,10 @@
 % in particular when running through Lua\LaTeX, using \textsf{unicode-math}
 % and calling |\setmathfont|.
 % Therefore we propose the \textsf{decimalcomma} package~\cite{DEC},
-% functionally identical to that of \textsf{ncccomma} but with lighter code 
-% and without the aforementioned incompatibility.
+% functionally identical to that of \textsf{ncccomma} but 
+% without the aforementioned incompatibility.
 % It can be loaded by \textsf{mismath} using the \texttt{decimalcomma}
-% package option\footnote{\texttt{ibrackets} and \texttt{decimalcomma} are the only
-% options specific to the \textsf{mismath} package.}.
+% package option.
 %
 % \subsection{Environments for systems of equations and small matrices}
 %
@@ -1159,7 +1236,8 @@
 %
 % \DescribeEnv{mathcols}
 % The \texttt{mathcols} environment allows you to arrange 
-% ``long'' calculations in double columns, separated with a central rule, 
+% lengthy calculations with short expressions across two columns
+% separated by a vertical line, 
 % as shown in the following example.
 % However, to use this feature, the \textsf{multicol} package must be loaded in the preamble.
 % The \texttt{mathcols} environment activates mathematical mode
@@ -1194,96 +1272,85 @@
 % \end{verbatim}
 %
 % \vspace{-4ex}
-% \subsection{Old commands}
+% \subsection{Summary of the package options}
 %
-% Here is a summary table of old commands that were used until version 2.2.
-% These commands are still functional and will be maintained for the time being,
-% but a warning message indicates the new alternative.
-% They used to work only in the preamble, affecting the entire document globally, 
-% and lacked an inverse switch.
-% These old commands can now be replaced by the more 
-% versatile and powerful |\MathUp| macro, which can be used anywhere 
-% in the document or preamble and has an inverse switch |\MathIt|. 
-%
-% \begin{center} 
+% The following table summarizes the possible package options. 
+% You can add to them any option you want to pass to \textsf{amsmath} or \textsf{mathtools}.
+% The hyperlinks (in blue) redirect to the paragraphs in the documentation 
+% where these options are described.
+% \begin{center}
 % \setlength{\extrarowheight}{1pt}
-% \begin{tabular}{ll}
+% \begin{tabular}{>{\ttfamily}ll}
 % \hline
-% Old command & New alternative \\
+% \normalfont Option & \mbox{Effect} \\
 % \hline
-% |\enumber| & |\MathUp{e}| \\
-% |\inumber| & |\MathUp{i}| \\
-% |\jnumber| & |\MathUp{j}| \\
-% |\PEupright| & |\MathProba{PE}| \\
+% \hyperlink{nofunction}{nofunction} & don't load some additional function definitions \\
+% \hyperlink{classicReIm}{otherReIm} & typesets |\Re| and |\Im| as $\Re$ and $\Im$ \\
+% \hyperlink{classicReIm}{classicReIm} & preserves |\Re| and |\Im| as $\oldRe$ and $\oldIm$ \\
+% \hyperlink{ibrackets}{ibrackets} & loads the \textsf{ibrackets} package\\
+% \hyperlink{decimalcomma}{decimalcomma} & loads the \textsf{decimalcomma} package \\
 % \hline
 % \end{tabular}
 % \end{center}
-%
-% \medskip
-% You can also utilize |\MathNumbers| instead of |\MathUp| with an argument containing
-% all the constants you want to be typeset in roman (among `e, i, j').
-%
-% Additionally you can include V in the argument of |\MathProba| to refer to variance,
-% (or even use |\MathUp{P}\MathUp{E}|).
-%
-% \medskip
-% In version 2.3 we attempted to replace these old commands
-% with package options based on keyval. However, we found that this method was
-% less efficient and have decided to abandon it.
-% As a result, the command |\mismathset| is now obsolete.
-% Additionally, the command, |\paren|, which was used before version 2.0, 
-% is no longer supported.
-%
 % \StopEventually{}
 % \section{Implementation}
 %
 % We load certain packages conditionally to avoid 'option clash' errors in cases
 % where these packages have been previously loaded with other options.
+% The \textsf{amsmath} package is loaded by \textsf{mathtools}.
 %    \begin{macrocode}
 \newif\ifmm at ibrackets % initialized to false
+\DeclareOption{ibrackets}{\mm at ibracketstrue}
 \newif\ifmm at decimalcomma
-\DeclareOption{ibrackets}{\mm at ibracketstrue}
 \DeclareOption{decimalcomma}{\mm at decimalcommatrue}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{amsmath}}
+\newif\ifmm at nofunction
+\DeclareOption{nofunction}{\mm at nofunctiontrue}
+\newif\ifmm at otherReIm
+\DeclareOption{otherReIm}{\mm at otherReImtrue}
+\newif\ifmm at classicReIm
+\DeclareOption{classicReIm}{\mm at classicReImtrue}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{mathtools}}
 \ProcessOptions \relax
-\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+%\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
 \@ifpackageloaded{mathtools}{}{\RequirePackage{mathtools}}
 \@ifpackageloaded{esvect}{}{\RequirePackage[b]{esvect}}
 \RequirePackage{ifthen}
 \RequirePackage{xparse} % provides \NewDocumentCommand, now in LaTeX3
-\RequirePackage{xspace}
+\RequirePackage{xspace} % for \iif command
 \RequirePackage{iftex}
 \RequirePackage{etoolbox} % provides \AtEndPreamble
-\RequirePackage{xkeyval}
+\RequirePackage{xkeyval} % for \pinumber options
 
 %    \end{macrocode}
 %
 % The package \textsf{unicode-math} causes some compatibility issues
-% with the options \texttt{ibrackets} or \texttt{decimalcomma}: the respective packages
+% with \textsf{ibrackets} and \textsf{decimalcomma}: theses packages
 % must be loaded \emph{after} \textsf{unicode-math},
-% but \textsf{mismath} (like \textsf{amsmath}) must be loaded \emph{before} 
+% but \textsf{mismath} (like \textsf{amsmath}) should be loaded \emph{before} 
 % \textsf{unicode-math}.
-% And to complicate matters, \textsf{unicode-math} defines all its commands 
+% And to complicate matters, \mbox{\textsf{unicode-math}} defines all its commands 
 % by |\AtBeginDocument|.
-% Therefore we used the command |\AtBeginDocument| within
-% |\AtEndPreamble| (from the \textsf{etoolbox} package).
+% Therefore we used the command |\AtEndPreamble|, from the \textsf{etoolbox} package,
+% which makes the job (because both \textsf{ibrackets} and \textsf{decimalcomma}
+% work also in |\AtBeginDocument|).
 %
 % Moreover the command |\mathbfsfit| (used for tensors) is already defined
 % in \textsf{unicode-math} and will not be redefined if \textsf{unicode-math}
 % is loaded.
 %    \begin{macrocode}
+\@ifpackageloaded{unicode-math}{
+    \PackageWarningNoLine{mismath}{The package unicode-math\MessageBreak 
+        should be loaded after mismath}
+}{}
 \newif\ifmm at unicodemath
 \newif\ifmm at multicol
 \AtEndPreamble{% necessary to work with unicode-math
-    \@ifpackageloaded{multicol}{\mm at multicoltrue}{\mm at multicolfalse}
+    \ifmm at decimalcomma\RequirePackage{decimalcomma}\fi
+    \ifmm at ibrackets\RequirePackage{ibrackets}\fi
+    \@ifpackageloaded{multicol}{\mm at multicoltrue}{}
     \@ifpackageloaded{unicode-math}{\mm at unicodemathtrue}{
-        \mm at unicodemathfalse
         \DeclareMathAlphabet{\mathbfsfit}{\encodingdefault}%
             {\sfdefault}{bx}{it}}
-    \AtBeginDocument{% necessary to work with unicode-math
-        \ifmm at ibrackets\RequirePackage{ibrackets}\fi
-        \ifmm at decimalcomma\RequirePackage{decimalcomma}\fi
-    }
 }
 
 %    \end{macrocode}
@@ -1299,7 +1366,6 @@
 
 %    \end{macrocode}
 %
-% \medskip
 % \DescribeMacro{\mm at warning} \DescribeMacro{\mm at macro} \DescribeMacro{\mm at operator} 
 % The next three internal macros serve as meta commands for
 % conditionally defining macros while providing a warning message if the macro already exists.
@@ -1307,8 +1373,8 @@
 % \medskip
 %    \begin{macrocode}
 \newcommand\mm at warning[1]{
-    \PackageWarningNoLine{mismath}{
-        Command \bslash #1 already exist and will not be redefined}
+    \PackageWarningNoLine{mismath}{Command \bslash #1 already exist 
+        \MessageBreak and will not be redefined}
 }
 \newcommand\mm at macro[2]{
     \@ifundefined{#1}{
@@ -1336,7 +1402,7 @@
 %    \begin{macrocode}
 \@ifundefined{mathup}{
     \providecommand*{\mathup}[1]{{\operatorfont #1}}
-    }{\mm at warning{mathup} } % also in kpfonts (and unicode-math)
+    }{\mm at warning{mathup} } % also in kpfonts and unicode-math
 \mm at macro{e}{\mathup{e}}
 \AtBeginDocument{\let\oldi\i \let\oldj\j
     \renewcommand{\i}{\TextOrMath{\oldi}{\mathup{i}}}
@@ -1443,11 +1509,8 @@
 % and may not have a straightforward solution.
 %
 % \medskip
-% In addition to |\MathUp| and |\MathIt|, we also offer the following two commands
-% to set a group of letters in roman typeface: one for for mathematical constants,
-% among `e, i, j', and the other for probability operators, among or `P, E, V'.
-%
-% \medskip
+% In addition to |\MathUp| and |\MathIt|, we also offer the following command
+% to set a group of letters, among `e, i, j', in roman typeface.
 %    \begin{macrocode}
 \newcommand*\MathNumbers[1]{%
     \in@{e}{#1} \ifin@ \MathUp{e} \fi
@@ -1455,12 +1518,6 @@
     \in@{j}{#1} \ifin@ \MathUp{j} \fi
 }
 
-\newcommand*\MathProba[1]{%
-    \in@{P}{#1} \ifin@ \MathUp{P} \fi
-    \in@{E}{#1} \ifin@ \MathUp{E} \fi
-    \in@{V}{#1} \ifin@ \MathUp{V} \fi
-}
-
 %    \end{macrocode}
 % \DescribeMacro{\apply}
 % With the inverse switch |\MathNormal|, you can apply the normal (italic) style 
@@ -1471,7 +1528,7 @@
 % I discovered this powerfull macro on \texttt{iterate190.rssing.com} by searching for 
 % ``TeX How to iterate over a comma separated list''.
 % The answer was posted under the pseudonym `wipet' on 2021/02/26.
-% Let its author, Petr Ol\v sák, be thanked.
+% Let its author, Petr Ol\v{s}ák, be thanked.
 % This macro allows to accomplish tasks that
 % usual loop instructions like |\@for| or |\foreach| cannot achieve due to
 % errors like ``!~Improper alphabetic constant''.
@@ -1496,38 +1553,17 @@
 % They were intended to set some letters in upright shape
 % in math mode, but only worked in the preamble.
 % This is now managed by the more powerful |\MathUp| command, and
-% the old commands are maintained for compatibility reasons.
+% the old commands are maintained but as alias for |\MathUp|.
 % \medskip
 %
 %    \begin{macrocode}
-\newcommand{\enumber}{%
-    \PackageWarning{mismath}{Old command \string\enumber\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathUp{e}}
-    \MathUp{e}
-}
-\newcommand{\inumber}{%
-    \PackageWarning{mismath}{Old command \string\inumber\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathUp{i}}
-    \MathUp{i}
-}    
-\newcommand{\jnumber}{
-    \PackageWarning{mismath}{Old command \string\jnumber\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathUp{j}}
-    \MathUp{j}
-}   
-\newcommand{\PEupright}{
-    \PackageWarning{mismath}{Old command \string\PEupright\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathProba{PE}}
-    \MathUp{P}\MathUp{E}
-}
+\newcommand{\enumber}{\MathUp{e}}
+\newcommand{\inumber}{\MathUp{i}}
+\newcommand{\jnumber}{\MathUp{j}}
 
 %    \end{macrocode}
 %
-% Obtaining an upright Greek letter $\otherpi$ must be handled differently. 
+% Obtaining an upright Greek letter $\pi$ must be handled differently. 
 % The switches are called |\pinumber| and |\pinormal| 
 % and can be used anywhere in the document.
 %
@@ -1534,6 +1570,7 @@
 % But |\pinumber| must be called first in the preamble with an optional argument.
 % This argument can be a valid command name that produces an upright pi letter
 % (after having loading an appropriate package).
+% Compatibility with \textsf{unicode-math} is a bit tricky!
 % When given without an argument in the preamble, 
 % |\pinumber| uses an LGR font encoding called \texttt{lmr}.
 % A new feature (v2.11) is to use |\pinumber| with a keyval option to 
@@ -1541,131 +1578,132 @@
 % a whole package, thus without altering the other (italic) Greek letters. 
 % We achieve this with |\DeclareSymbolFont| and |\DeclareMathSymbol|.
 % We just have to know the ``name'' of the desired symbol font.
-% Compatibility with \textsf{unicode-math} is a bit tricky!
 % 
 % \medskip
 %    \begin{macrocode}
 \newif\ifmm at lgr
-\define at cmdkey{pinumber}[mm@]{lgrmath}[lmr]{\mm at lgrtrue}
+\define at cmdkey{pifonts}[mm@]{lgrmath}[lmr]{\mm at lgrtrue}
 \newif\ifmm at upgreek
-\define at choicekey{pinumber}{upgreek}[\mm at upgreek@option]%
-  {Euler,Symbol,Symbolsmallscale}[Symbol]{\mm at upgreektrue}
+\define at choicekey{pifonts}{upgreek}[\mm at upgreek@option]%
+    {Euler,Symbol,Symbolsmallscale}[Symbol]{\mm at upgreektrue}
 \newif\ifmm at mathdesign
-\define at choicekey{pinumber}{mathdesign}[\mm at mathdesign@option]%
-  {Utopia,Garamond,Charter}[Charter]{\mm at mathdesigntrue}
+\define at choicekey{pifonts}{mathdesign}[\mm at mathdesign@option]%
+    {Utopia,Garamond,Charter}[Charter]{\mm at mathdesigntrue}
 \newif\ifmm at kpfonts
-\define at choicekey{pinumber}{kpfonts}[\mm at kp@option]%
-  {normal,light}[normal]{\mm at kpfontstrue}
-\define at boolkey{pinumber}[mm@]{fourier}[true]{}
-\define at boolkey{pinumber}[mm@]{pxfonts}[true]{}
-\define at boolkey{pinumber}[mm@]{txfonts}[true]{}
+\define at choicekey{pifonts}{kpfonts}[\mm at kp@option]%
+    {normal,light}[normal]{\mm at kpfontstrue}
+\define at boolkeys{pifonts}[mm@]{fourier,pxfonts,txfonts}[true]
+\newif\ifmm at fontspec
+\define at cmdkey{pifonts}[mm@]{fontspec}[GFS Didot]{\mm at fontspectrue}
   
-\newcommand*\pinumber[1][]{%
-    \ifthenelse{\equal{#1}{}}{% no argument given
-      \ifx\@onlypreamble\@notprerr % not in preamble
-        \@ifundefined{savedpi}{
-            \PackageWarning{mismath}{%
-                \string\pinumber\space 
-                must be used in the preamble first}
-        }{\let\pi\savedpi}
-      \else % in the preamble
-        \AtBeginDocument{\let\itpi\pi}% must be here with unicode-math
-        \AtEndPreamble{\AtBeginDocument{
-          %\let\itpi\pi
-          \let\pi\relax
-          \DeclareFontEncoding{LGR}{}{}
-          \DeclareSymbolFont{mm at grup}{LGR}{lmr}{m}{n}
-          \DeclareMathSymbol{\pi}\mathalpha{mm at grup}{"70}
-          \let\savedpi\pi
-        }}
-      \fi
-    }{% command name or keyval options, necessarily in the preamble
-      \AtBeginDocument{\let\itpi\pi}% must be here with unicode-math
-      \AtEndPreamble{\AtBeginDocument{
-        \@ifundefined{#1}{% 
-          \setkeys{pinumber}{#1}
-          \let\pi\relax
-          \ifmm at lgr
-            \DeclareFontEncoding{LGR}{}{}
-            \DeclareSymbolFont{mm at grup}{LGR}{\mm at lgrmath}{m}{n}
-            % may work with bold (b) instead of m
-            \DeclareMathSymbol{\pi}{\mathalpha}{mm at grup}{112}
-          
-          \else\ifmm at upgreek         
-          \ifdefstring{\mm at upgreek@option}{Euler}{
+\newcommand*\pifonts[1]{%
+    \setkeys{pifonts}{#1}
+    \let\pi\relax
+       
+    \ifmm at lgr
+        \DeclareFontEncoding{LGR}{}{}
+        \DeclareSymbolFont{mmupgr}{LGR}{\mm at lgrmath}{m}{n}
+        % may work with bold (b) instead of m
+        \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{112}
+
+    \else\ifmm at fontspec
+        \@ifpackageloaded{fontspec}{}{
+            \PackageError{mismath}{\string\pinumber\space with
+                the `fontspec' option\MessageBreak
+                needs the fontspec package,\MessageBreak
+                which must be run with LuaLaTeX or XeLaTeX}{}
+        }
+        \newfontfamily\mismathgreekfont{\mm at fontspec}[NFSSFamily=mgr]
+        \DeclareSymbolFont{mmupgr}{TU}{mgr}{m}{n}
+        \Umathchardef\pi="7 \symmmupgr "03C0
+         
+    \else\ifmm at upgreek
+        \ifdefstring{\mm at upgreek@option}{Euler}{
             \DeclareFontFamily{U}{eur}{\skewchar\font'177}
             \DeclareFontShape{U}{eur}{m}{n}{%
               <-6> eurm5 <6-8> eurm7 <8-> eurm10}{}
-            \DeclareFontShape{U}{eur}{b}{n}{%
-              <-6> eurb5 <6-8> eurb7 <8-> eurb10}{}
-            \DeclareSymbolFont{mm at grup}{U}{eur}{m}{n}
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{"19} % 25
-          }{
-          \ifdefstring{\mm at upgreek@option}{Symbol}{
-            \DeclareSymbolFont{mm at grup}{U}{psy}{m}{n}
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{`p}
-          }{
-          \ifdefstring{\mm at upgreek@option}{Symbolsmallscale}{
+            \DeclareSymbolFont{mmupgr}{U}{eur}{m}{n}
+            \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{"19}
+        }{
+        \ifdefstring{\mm at upgreek@option}{Symbol}{
+            \DeclareSymbolFont{mmupgr}{U}{psy}{m}{n}
+            \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{`p}
+        }{
+        \ifdefstring{\mm at upgreek@option}{Symbolsmallscale}{
             \DeclareFontFamily{U}{fsy}{}
             \DeclareFontShape{U}{fsy}{m}{n}{<->s*[.9]psyr}{}
-            \DeclareSymbolFont{mm at grup}{U}{fsy}{m}{n}
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{`p}
-          }{}}}
+            \DeclareSymbolFont{mmupgr}{U}{fsy}{m}{n}
+            \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{`p}          
+        }{}}}
           
-          \else\ifmm at mathdesign
-          \ifdefstring{\mm at mathdesign@option}{Utopia}{
-            \DeclareSymbolFont{mm at grup}{OML}{mdput}{m}{n}
-          }{
-          \ifdefstring{\mm at mathdesign@option}{Garamond}{
-            \DeclareSymbolFont{mm at grup}{OML}{mdugm}{m}{n}
-          }{
-          \ifdefstring{\mm at mathdesign@option}{Charter}{
-            \DeclareSymbolFont{mm at grup}{OML}{mdbch}{m}{n}
-          }{}}}
+    \else\ifmm at mathdesign
+        \ifdefstring{\mm at mathdesign@option}{Utopia}{
+            \DeclareSymbolFont{mmupgr}{OML}{mdput}{m}{n}
+        }{
+        \ifdefstring{\mm at mathdesign@option}{Garamond}{
+            \DeclareSymbolFont{mmupgr}{OML}{mdugm}{m}{n}
+        }{
+        \ifdefstring{\mm at mathdesign@option}{Charter}{
+            \DeclareSymbolFont{mmupgr}{OML}{mdbch}{m}{n}
+        }{}}}
 
-          \else\ifmm at fourier
-            \DeclareFontEncoding{FML}{}{}
-            \DeclareSymbolFont{mm at grup}{FML}{futm}{m}{it}
-          
-          \else\ifmm at kpfonts
-          \ifdefstring{\mm at kp@option}{normal}{
-            \DeclareSymbolFont{mm at grup}{U}{jkpmia}{m}{it}
-          }{
-          \ifdefstring{\mm at kp@option}{light}{
-            \DeclareSymbolFont{mm at grup}{U}{jkplmia}{m}{it}          
-          }}
-                         
-          \else\ifmm at pxfonts
-            \DeclareSymbolFont{mm at grup}{U}{pxmia}{m}{it}
-          
-          \else\ifmm at txfonts
-            \DeclareSymbolFont{mm at grup}{U}{txmia}{m}{it}
-          \fi\fi\fi\fi\fi
-          
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{"19}
-          \fi\fi
-          
-          \let\savedpi\pi
+    \else\ifmm at fourier
+        \DeclareFontEncoding{FML}{}{}
+        \DeclareSymbolFont{mmupgr}{FML}{futm}{m}{it}
+
+    \else\ifmm at kpfonts
+        \ifdefstring{\mm at kp@option}{normal}{
+            \DeclareSymbolFont{mmupgr}{U}{jkpmia}{m}{it}
         }{
-          \ifmm at unicodemath
-            \ifthenelse{\equal{#1}{uppi}}{
-              \AtBeginDocument{% 
-                \let\pi\relax
-                \def\pi{\symup{\symbol{"003C0}}}
-                \let\itpi\relax
-                \def\itpi{\symit{\symbol{"003C0}}} % or "1D70B
-              }
-            }{\renewcommand{\pi}{\csname #1\endcsname}}
-          \else
-            \renewcommand{\pi}{\csname #1\endcsname}
-          \fi        
-        
-          \let\savedpi\pi
-        }
-      }}
-    }
+        \ifdefstring{\mm at kp@option}{light}{
+            \DeclareSymbolFont{mmupgr}{U}{jkplmia}{m}{it}
+        }{}}
+
+    \else\ifmm at pxfonts
+        \DeclareSymbolFont{mmupgr}{U}{pxmia}{m}{it}
+
+    \else\ifmm at txfonts
+        \DeclareSymbolFont{mmupgr}{U}{txmia}{m}{it}
+            
+    \fi\fi\fi\fi\fi
+        \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{"19}    
+    \fi\fi\fi
 }
 
+\newcommand*\pinumber[1][]{%
+    \ifthenelse{\equal{#1}{}}{% no argument given
+        \ifx\@onlypreamble\@notprerr % not in preamble
+            \@ifundefined{savedpi}{
+                \PackageWarning{mismath}{%
+                    \string\pinumber\space
+                    must be used in the preamble first}
+            }{\let\pi\savedpi}
+        \else % in the preamble
+            \AtBeginDocument{
+                \let\itpi\pi
+                \pifonts{lgrmath}
+                \let\savedpi\pi
+            }
+        \fi
+    }{% command name or keyval options, necessarily in the preamble
+        \AtBeginDocument{% must be here with unicode-math
+            \let\itpi\pi
+            \@ifundefined{#1}{%
+                \pifonts{#1}
+            }{
+                \ifmm at unicodemath
+                    \ifthenelse{\equal{#1}{uppi}}{% or "1D70B
+                        \renewcommand\pi{\symup{\symbol{"03C0}}}
+                        \renewcommand\itpi{\symit{\symbol{"03C0}}}
+                    }{\renewcommand{\pi}{\csname #1\endcsname}}
+                \else
+                    \renewcommand{\pi}{\csname #1\endcsname}
+                \fi
+            }
+            \let\savedpi\pi}
+      }
+}
+
 \newcommand{\pinormal}{%
   \@ifundefined{itpi}{
     \PackageWarning{mismath}{Command \string\itpi\space undefined,
@@ -1683,9 +1721,30 @@
 }
 
 %    \end{macrocode}
+% When |\pinumber|\oarg{keyval} has been called, you can also get 
+% some other mathematical constants using Greek letters, 
+% \eg $\othergamma$, the Euler-Mascheroni constant:
+% \begin{verbatim}
+% \let\gamma\relax
+% \DeclareMathSymbol{\gamma}{\mathord}{mmupgr}{"0D}
+% \end{verbatim}
+% \vspace{-2ex}
+% If \textsf{unicode-math} is used, you must put these commands in
+% |\AtBeginDocument|.
+% The hexadecimal code |"0D| depends on the option passed to |\pinumber|
+% in the preamble (see the command |\pifonts| above and search in package docs). \\
+% And to get the golden ratio $\othervarphi$:
+% \begin{verbatim}
+% \let\phi\relax
+% \DeclareMathSymbol{\varphi}{\mathord}{mmupgr}{"27}
+% \end{verbatim}
+% \vspace{-2ex}
+% To preserve the original $\gamma$ or $\varphi$, 
+% you can define |\upgamma| or |\upvarphi| instead.
 %
-% And now the commands for vectors (and tensors).
 % \medskip
+% And now the commands for vectors and tensors.
+% \medskip
 %    \begin{macrocode}
 \newboolean{arrowvect}
 \setboolean{arrowvect}{true}
@@ -1693,9 +1752,9 @@
 \newcommand{\boldvect}{\setboolean{arrowvect}{false}}
 \newcommand{\boldvectcommand}{\boldsymbol} % from amsbsy package
 \mm at macro{vect}{\ifthenelse{\boolean{arrowvect}}{
-        \vv}{\boldvectcommand}} % doesn't work well with \if... \fi
-\newcommand*{\hvect}[1]{\vect{\vphantom{t}#1}}
-\newcommand*{\hvec}[1]{\vec{\vphantom{t}#1}}
+    \vv}{\boldvectcommand}} % doesn't work well with \if... \fi
+\newcommand*{\hvect}[1]{\vect{\vphantom{A}#1}}
+\newcommand*{\hvec}[1]{\vec{\vphantom{A}#1}}
 
 \newcommand*{\@norm}[1]{
     \mbox{\raisebox{1.75pt}{\small$\bigl\Vert$}} #1
@@ -1715,9 +1774,7 @@
 \newcommand{\tensor}{\mathbfsfit} % isomath uses \mathsfbfit
 
 %    \end{macrocode}
-%
-% Classic identifiers are presented below.
-% \medskip
+
 %    \begin{macrocode}
 \mm at macro{di}{\mathop{}\!\mathup{d}}
 \newcommand\probastyle{}
@@ -1726,47 +1783,97 @@
 \mm at macro{E}{\operatorname{\probastyle{E}}}
 \mm at macro{V}{\operatorname{\probastyle{V}}}
 
-\mm at operator{\adj}{adj}
-\mm at operator{\Aut}{Aut}
-\mm at operator{\codim}{codim}
-\mm at operator{\Conv}{Conv}
-\mm at operator{\cov}{cov}
-\mm at operator{\Cov}{Cov}
-\mm at macro{curl}{\operatorname{\vect{\mathup{curl}}}}
-\mm at operator[divg]{\divg}{div}
-\mm at operator{\End}{End}
+\newcommand*\MathProba[1]{%
+    \in@{P}{#1} \ifin@ \MathUp{P} \fi
+    \in@{E}{#1} \ifin@ \MathUp{E} \fi
+    \in@{V}{#1} \ifin@ \MathUp{V} \fi
+}
 
-\mm at operator{\erf}{erf}
-\mm at macro{grad}{\operatorname{\vect{\mathup{grad}}}}
-\mm at operator{\id}{id} % mathop or mathord?
-\mm at operator{\Id}{Id}
-\mm at operator{\im}{im}
-\let\oldIm\Im \renewcommand{\Im}{\operatorname{Im}}
-\mm at operator{\lb}{lb}
-\mm at operator{\lcm}{lcm}
+%    \end{macrocode}
+% Classic identifiers are presented below. They will be defined only
+% if the option \texttt{nofunction} has not been activated.
+% \medskip
+%    \begin{macrocode}
+\ifmm at nofunction\else
+    \mm at operator{\adj}{adj}
+    \mm at operator{\Aut}{Aut}
+    \mm at operator{\codim}{codim}
+    \mm at operator{\coker}{coker}
+    \mm at operator{\Conv}{Conv}
+    \mm at operator{\cov}{cov}
+    \mm at operator{\Cov}{Cov}
+    \mm at macro{curl}{\operatorname{\vect{\mathup{curl}}}}
+    \mm at operator[divg]{\divg}{div}
+    
+    \mm at operator{\End}{End}    
+    \mm at operator{\erf}{erf}
+    \mm at macro{grad}{\operatorname{\vect{\mathup{grad}}}}
+    \mm at operator{\id}{id} % mathop or mathord?
+    \mm at operator{\Id}{Id}
+    \mm at operator{\im}{im}
+    \mm at operator{\lb}{lb}
+    \mm at operator{\lcm}{lcm}    
+    \mm at operator{\rank}{rank}
+    
+    \mm at operator{\Res}{Res}
+    \mm at macro{rot}{\operatorname{\vect{\mathup{rot}}}}
+    \mm at operator{\sgn}{sgn}
+    \mm at operator{\sinc}{sinc}
+    \mm at operator[spa]{\spa}{span}
+    \mm at operator{\tr}{tr}
+    \mm at operator{\var}{var}
+    \mm at operator{\Var}{Var}
+    \mm at operator[Zu]{\Zu}{Z}
+    
+    \mm at operator{\arccot}{arccot}
+    \mm at operator{\sech}{sech}
+    \mm at operator{\csch}{csch}
+    \mm at operator{\arsinh}{arsinh}
+    \mm at operator{\arcosh}{arcosh}
+    \mm at operator{\artanh}{artanh}
+    \mm at operator{\arcoth}{arcoth}
+    \mm at operator{\arsech}{arsech}
+    \mm at operator{\arcsch}{arcsch}
+\fi
 
-\mm at operator{\rank}{rank}
-\let\oldRe\Re \renewcommand{\Re}{\operatorname{Re}}
-\mm at macro{rot}{\operatorname{\vect{\mathup{rot}}}}
-\mm at operator{\sgn}{sgn}
-\mm at operator{\sinc}{sinc}
-\mm at operator[spa]{\spa}{span}
-\mm at operator{\tr}{tr}
-\mm at operator{\var}{var}
-\mm at operator{\Var}{Var}
-\mm at operator[Zu]{\Zu}{Z}
+%    \end{macrocode}
+%
+% The |\mathcal| alphabet, from the original Computer Modern font family,
+% is used here to produce $\Re$, $\Im$ and $\bigO$.
+% Several font packages redefines this alphabet producing glyphs that may seem less 
+% suitable for the commands below.
+% We have therefore retained the original |\cmmathcal| math alphabet, 
+% which can be used for other letters.
+% If \textsf{unicode-math} is called, it will redefine the commands |\Re| and |\Im|
+% in |\AtBeginDocument|, hence the use of `|\AtEndPreamble{\AtBeginDocument{|'
+% to ensure that the \textsf{mismath} redefinition occur after the actions 
+% of \textsf{unicode-math}.
+%
+%    \begin{macrocode}
+\DeclareFontFamily{U}{cmsy}{\skewchar\font48 }
+\DeclareFontShape{U}{cmsy}{m}{n}{% from mathalpha
+    <-5.5> cmsy5%
+    <5.5-6.5> cmsy6%
+    <6.5-7.5> cmsy7%
+    <7.5-8.5> cmsy8%
+    <8.5-9.5> cmsy9%
+    <9.5-> cmsy10}{}
+\DeclareMathAlphabet{\cmmathcal}{U}{cmsy}{m}{n}
 
-\mm at operator{\arccot}{arccot}
-\mm at operator{\sech}{sech}
-\mm at operator{\csch}{csch}
-\mm at operator{\arsinh}{arsinh}
-\mm at operator{\arcosh}{arcosh}
-\mm at operator{\artanh}{artanh}
-\mm at operator{\arcoth}{arcoth}
-\mm at operator{\arsech}{arsech}
-\mm at operator{\arcsch}{arcsch}
+\AtEndPreamble{\AtBeginDocument{
+    \ifmm at classicReIm\else
+        \let\oldRe\Re
+        \let\oldIm\Im
+    \ifmm at otherReIm
+        \renewcommand{\Re}{\cmmathcal{R}\mathit{e}}
+        \renewcommand{\Im}{\cmmathcal{I}\mathit{m}}    
+    \else      
+        \renewcommand{\Re}{\operatorname{Re}}
+        \renewcommand{\Im}{\operatorname{Im}}
+    \fi\fi 
+}}
 
-\mm at operator[bigO]{\bigO}{\mathcal{O}}
+\mm at operator[bigO]{\bigO}{\cmmathcal{O}} 
 \mm at operator[bigo]{\bigo}{O}
 \mm at operator[lito]{\lito}{o}
 
@@ -1773,15 +1880,24 @@
 %    \end{macrocode}
 % And finally we present the remaining macros.
 %
-% With Cyrillic languages, the command |\C| may already be defined (only for text mode).
-% Thus, it will not be redefined by \textsf{mismath}. However, one may still want
-% to use our |\C| macro only for math mode without interfering the definition of 
-% the text |\C|, therefore the |\onlymathC| macro. 
+% With Cyrillic languages, the command |\C| may already be defined but only for text mode.
+% Thus, it will not be redefined by \textsf{mismath}. However, when activating
+% |\onlymathC|, you can to use our |\C| macro only for math mode,
+% without interfering the definition of the text |\C| that is already defined.
+%
+% When using \XeTeX\ or \LuaTeX\ engines with the \textsf{hyperref} package,
+% |\C| will be already defined and
+% you get the message "\texttt{Command \string\C\space unavailable in encoding TU}".
+% Therefore |\onlymathC| is automatically called in that case.
 % \medskip
 %    \begin{macrocode}
 \mm at macro{mathset}{\mathbf}
 \mm at macro{R}{\mathset{R}}
-\mm at macro{C}{\mathset{C}}
+\AtBeginDocument{
+    \@ifpackageloaded{hyperref}%
+        {\iftutex\onlymathC\fi}% LuaTex or XeTeX engines
+        {\mm at macro{C}{\mathset{C}}}
+}
 \providecommand\onlymathC{\let\oldC\C 
     \renewcommand{\C}{\TextOrMath{\oldC}{\mathset{C}}} }
 \mm at macro{N}{\mathset{N}}
@@ -1799,7 +1915,7 @@
 
 \mm at macro{lbar}{\overline}
 \@ifundefined{hlbar}{
-    \providecommand*{\hlbar}[1]{\overline{\vphantom{t}#1}}}{
+    \providecommand*{\hlbar}[1]{\overline{\vphantom{A}#1}}}{
     \mm at warning{hlbar} }
 \newcommand\@eqdef{\stackrel{\mathup{def}}{=}}
 \newcommand\@@eqdef{\stackrel{\mathrm{\Delta}}{=}}
@@ -1827,7 +1943,8 @@
     \providecommand*{\abs}[1]{\left\vert#1\right\vert} }{
     \mm at warning{abs} }
 \@ifundefined{lfrac}{
-    \providecommand*{\lfrac}[2]{\frac{\;#1\;}{\;#2\;}} }{
+    \providecommand*{\lfrac}[3][7mu]{%
+        \frac{\mkern#1#2\mkern#1}{\mkern#1#3\mkern#1}} }{
     \mm at warning{lfrac} }
 
 \newcommand{\systemstretch}{1.2}
@@ -1850,8 +1967,8 @@
         \begin{math}\begin{aligned}\displaystyle
   \else
     \PackageError{mismath}{The mathcols environment
-        needs the multicol package}{Add the package multicol
-        to your preamble.}
+        needs the multicol package}{Call the package multicol
+        in your preamble.}
   \fi
 }{%
         \end{aligned}\end{math} \hfill\mbox{}
@@ -1864,7 +1981,7 @@
 }   
 %    \end{macrocode}
 %
-% \begin{thebibliography}{28}
+% \begin{thebibliography}{34}
 % \begin{raggedright}
 % \bibitem{TYPMA} \emph{Typesetting mathematics for science and technology according 
 % to ISO 31/XI}, Claudio Beccari, TUGboat Volume 18 (1997), No.~1.
@@ -1880,6 +1997,8 @@
 % \url{https://old.iupac.org/standing/idcns/italic-roman_dec99.pdf}.
 % \bibitem{VECT} \emph{\textsf{esvect}  -- Typesetting vectors with beautiful 
 % arrow with \LaTeXe}, Eddie Saudrais, CTAN, v1.3 2013/07/11.
+% \bibitem{TOOL} \emph{The \textsf{mathtools} package}, Morten Høgholm, Lars Madsen, CTAN,
+% v1.29 2022/06/29.
 % \bibitem{AMS} \emph{\textsf{amsmath} -- \AmS\ mathmatical facilities for \LaTeX},
 % Frank Mittelbach, Rainer Schöpf, Michael Downes, Davis M.~Jones, David Carlisle, 
 % CTAN, v2.17n 2022/04/08.
@@ -1886,8 +2005,6 @@
 % \bibitem{UNIC} \emph{Experimental Unicode mathematical typesetting: 
 % The \textsf{unicode-math} package}, Will Robertson, Philipp Stephani, Joseph Wright, 
 % Khaled Hosny, and others, CTAN, v0.8r 2023/08/13.
-% \bibitem{TOOL} \emph{The \textsf{mathtools} package}, Morten Høgholm, Lars Madsen, CTAN,
-% v1.29 2022/06/29.
 % \bibitem{FIXM} \emph{The \textsf{fixmath} package for \LaTeXe}, Walter Schmidt, 
 % CTAN, v0.9 2000/04/11.
 % \bibitem{ISOM} \emph{\textsf{isomath} -- Mathematical style for science and technology},
@@ -1894,17 +2011,29 @@
 % Günter Milde, CTAN, v0.6.1 2012/09/04.
 % \bibitem{PMISO} \emph{\textsf{PM-ISOmath}, The Poor Man ISO math bundle}, 
 % the \textsf{pm-isomath} package by Claudio Beccari, CTAN, v1.2.00 2021/08/04.
+% \bibitem{MGREEK} \emph{The \textsf{mathgreeks} package}, Antoine Missier, CTAN,
+% v1.1 2024/05/04.
 % \bibitem{GREEK} \emph{The \textsf{upgreek} package for \LaTeXe}, Walter Schmidt,
 % CTAN, v2.0 2003/02/12.
 % \bibitem{DESIGN} \emph{The \textsf{mathdesign} package},
 % Paul Pichaureau, CTAN, v2.31 2013/08/29.
-% \bibitem{ALPHA} \emph{The \textsf{textalpha} package}
-% (part of the \textsf{greek-fontenc} bundle), Günter Milde, CTAN, v2.1 14/06/2022.
 % \bibitem{KPF} \emph{\textsf{Kp-Fonts} -- The Johannes Kepler project},
 % Christophe Caignaert, CTAN, v3.34 20/09/2022.
 % \bibitem{FOUR} \textsf{Fourier-GUT\hspace{-0.1em}\emph{enberg}},
-% Michel Bovani, CTAN, v1.3 30/01/2005.
+% Michel Bovani, CTAN, v1.3 2005/01/30.
+% \bibitem{PX} \emph{\textsf{PX Fonts} -- Palatino-like fonts in support of mathematics}, 
+% Young Ryu, CTAN, 2000/12/14.
+% \bibitem{TX} \emph{\textsf{TX Fonts} -- Times-like fonts in support of mathematics}, 
+% Young Ryu, CTAN, 2000/12/15.
+% \bibitem{LIB} \emph{The LibertinusT1 Math Package}, Michael Sharpe, CTAN, v2.0.4 2024/01/14.
 % \bibitem{LGR} \emph{The \textsf{lgrmath} package}, Jean-François B., CTAN, v1.0 2022/11/16.
+% \bibitem{NTX} \emph{New TX font package}, Micahel Sharpe, CTAN, v1.735 2024/03/01.
+% \bibitem{ALPHA} \emph{The \textsf{textalpha} package}
+% (part of the \textsf{greek-fontenc} bundle), Günter Milde, CTAN, v2.1 2022/06/14.
+% \bibitem{SPA} \emph{The \textsf{spacingtricks} package}, Antoine Missier, CTAN,
+% v1.8 2023/12/06.
+% \bibitem{BRACKET} \emph{Intelligent brackets -- The \textsf{ibrackets} package},
+% Antoine Missier, CTAN, v1.2, 2023/07/26.
 % \bibitem{INT} \emph{The \textsf{interval} package}, Lars Madsen, CTAN,
 % v0.4 2019/03/06.
 % \bibitem{ICOMMA} \emph{The \textsf{icomma} package for \LaTeXe},
@@ -1918,9 +2047,7 @@
 % \bibitem{SPAL} \emph{The \textsf{spalign} package}, Joseph Rabinoff, CTAN, 2016/10/05.
 % \bibitem{NMATX} \emph{The package \textsf{nicematrix}}, François Pantigny, CTAN,
 % v6.14 2023/02/18.
-% \bibitem{FR} \emph{L'extension \textsf{frenchmath}}, Antoine Missier, CTAN, v2.10 2024/02/25.
-% \bibitem{BRACKET} \emph{Intelligent brackets -- The \textsf{ibrackets} package},
-% Antoine Missier, CTAN, v1.2, 2023/07/26.
+% \bibitem{FR} \emph{L'extension \textsf{frenchmath}}, Antoine Missier, CTAN, v3.0 2024/05/04.
 % \bibitem{LSHORT} \emph{The Not So Short Introduction to \LaTeXe}, 
 % the \textsf{lshort} package by
 % Tobias Oetiker, Hubert Partl, Irene Hyna and Elisabeth Schlegl, CTAN, v6.4 2021/04/09.

Modified: trunk/Master/texmf-dist/source/latex/mismath/mismath.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/mismath/mismath.ins	2024-05-04 19:46:59 UTC (rev 71171)
+++ trunk/Master/texmf-dist/source/latex/mismath/mismath.ins	2024-05-04 19:47:07 UTC (rev 71172)
@@ -46,7 +46,7 @@
 \Msg{*     mismath.sty                                           *}
 \Msg{*                                                           *}
 \Msg{* To produce the documentation run the file mismath.dtx     *}
-\Msg{* through XeLaTeX or LuaLaTeX.                                            *}
+\Msg{* through LaTeX.                                            *}
 \Msg{*                                                           *}
 \Msg{* Happy TeXing!                                             *}
 \Msg{*                                                           *}

Modified: trunk/Master/texmf-dist/tex/latex/mismath/mismath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/mismath/mismath.sty	2024-05-04 19:46:59 UTC (rev 71171)
+++ trunk/Master/texmf-dist/tex/latex/mismath/mismath.sty	2024-05-04 19:47:07 UTC (rev 71172)
@@ -22,42 +22,49 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
 \ProvidesPackage{mismath}
-    [2024/02/29 v2.12 .dtx Miscellaneous mathematical macros]
+    [2024/05/04 v3.0 .dtx Miscellaneous mathematical macros]
+
 \newif\ifmm at ibrackets % initialized to false
+\DeclareOption{ibrackets}{\mm at ibracketstrue}
 \newif\ifmm at decimalcomma
-\DeclareOption{ibrackets}{\mm at ibracketstrue}
 \DeclareOption{decimalcomma}{\mm at decimalcommatrue}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{amsmath}}
+\newif\ifmm at nofunction
+\DeclareOption{nofunction}{\mm at nofunctiontrue}
+\newif\ifmm at otherReIm
+\DeclareOption{otherReIm}{\mm at otherReImtrue}
+\newif\ifmm at classicReIm
+\DeclareOption{classicReIm}{\mm at classicReImtrue}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{mathtools}}
 \ProcessOptions \relax
-\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
 \@ifpackageloaded{mathtools}{}{\RequirePackage{mathtools}}
 \@ifpackageloaded{esvect}{}{\RequirePackage[b]{esvect}}
 \RequirePackage{ifthen}
 \RequirePackage{xparse} % provides \NewDocumentCommand, now in LaTeX3
-\RequirePackage{xspace}
+\RequirePackage{xspace} % for \iif command
 \RequirePackage{iftex}
 \RequirePackage{etoolbox} % provides \AtEndPreamble
-\RequirePackage{xkeyval}
+\RequirePackage{xkeyval} % for \pinumber options
 
+\@ifpackageloaded{unicode-math}{
+    \PackageWarningNoLine{mismath}{The package unicode-math\MessageBreak
+        should be loaded after mismath}
+}{}
 \newif\ifmm at unicodemath
 \newif\ifmm at multicol
 \AtEndPreamble{% necessary to work with unicode-math
-    \@ifpackageloaded{multicol}{\mm at multicoltrue}{\mm at multicolfalse}
+    \ifmm at decimalcomma\RequirePackage{decimalcomma}\fi
+    \ifmm at ibrackets\RequirePackage{ibrackets}\fi
+    \@ifpackageloaded{multicol}{\mm at multicoltrue}{}
     \@ifpackageloaded{unicode-math}{\mm at unicodemathtrue}{
-        \mm at unicodemathfalse
         \DeclareMathAlphabet{\mathbfsfit}{\encodingdefault}%
             {\sfdefault}{bx}{it}}
-    \AtBeginDocument{% necessary to work with unicode-math
-        \ifmm at ibrackets\RequirePackage{ibrackets}\fi
-        \ifmm at decimalcomma\RequirePackage{decimalcomma}\fi
-    }
 }
 
 {\catcode`\|=\z@ \catcode`\\=12 |gdef|bslash{\}} % \bslash command
 
 \newcommand\mm at warning[1]{
-    \PackageWarningNoLine{mismath}{
-        Command \bslash #1 already exist and will not be redefined}
+    \PackageWarningNoLine{mismath}{Command \bslash #1 already exist
+        \MessageBreak and will not be redefined}
 }
 \newcommand\mm at macro[2]{
     \@ifundefined{#1}{
@@ -72,7 +79,7 @@
 
 \@ifundefined{mathup}{
     \providecommand*{\mathup}[1]{{\operatorfont #1}}
-    }{\mm at warning{mathup} } % also in kpfonts (and unicode-math)
+    }{\mm at warning{mathup} } % also in kpfonts and unicode-math
 \mm at macro{e}{\mathup{e}}
 \AtBeginDocument{\let\oldi\i \let\oldj\j
     \renewcommand{\i}{\TextOrMath{\oldi}{\mathup{i}}}
@@ -155,12 +162,6 @@
     \in@{j}{#1} \ifin@ \MathUp{j} \fi
 }
 
-\newcommand*\MathProba[1]{%
-    \in@{P}{#1} \ifin@ \MathUp{P} \fi
-    \in@{E}{#1} \ifin@ \MathUp{E} \fi
-    \in@{V}{#1} \ifin@ \MathUp{V} \fi
-}
-
 \def\apply#1#2{\apply@#1#2,\apply@,}
 \def\apply@#1#2,{\ifx\apply@#2\empty
     \else #1{#2}\afterfi@{\apply@#1}\fi}
@@ -170,150 +171,131 @@
     \apply\MathIt{#1}
 }
 
-\newcommand{\enumber}{%
-    \PackageWarning{mismath}{Old command \string\enumber\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathUp{e}}
-    \MathUp{e}
-}
-\newcommand{\inumber}{%
-    \PackageWarning{mismath}{Old command \string\inumber\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathUp{i}}
-    \MathUp{i}
-}
-\newcommand{\jnumber}{
-    \PackageWarning{mismath}{Old command \string\jnumber\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathUp{j}}
-    \MathUp{j}
-}
-\newcommand{\PEupright}{
-    \PackageWarning{mismath}{Old command \string\PEupright\space
-        is used. \MessageBreak
-        It can be replaced by \string\MathProba{PE}}
-    \MathUp{P}\MathUp{E}
-}
+\newcommand{\enumber}{\MathUp{e}}
+\newcommand{\inumber}{\MathUp{i}}
+\newcommand{\jnumber}{\MathUp{j}}
 
 \newif\ifmm at lgr
-\define at cmdkey{pinumber}[mm@]{lgrmath}[lmr]{\mm at lgrtrue}
+\define at cmdkey{pifonts}[mm@]{lgrmath}[lmr]{\mm at lgrtrue}
 \newif\ifmm at upgreek
-\define at choicekey{pinumber}{upgreek}[\mm at upgreek@option]%
-  {Euler,Symbol,Symbolsmallscale}[Symbol]{\mm at upgreektrue}
+\define at choicekey{pifonts}{upgreek}[\mm at upgreek@option]%
+    {Euler,Symbol,Symbolsmallscale}[Symbol]{\mm at upgreektrue}
 \newif\ifmm at mathdesign
-\define at choicekey{pinumber}{mathdesign}[\mm at mathdesign@option]%
-  {Utopia,Garamond,Charter}[Charter]{\mm at mathdesigntrue}
+\define at choicekey{pifonts}{mathdesign}[\mm at mathdesign@option]%
+    {Utopia,Garamond,Charter}[Charter]{\mm at mathdesigntrue}
 \newif\ifmm at kpfonts
-\define at choicekey{pinumber}{kpfonts}[\mm at kp@option]%
-  {normal,light}[normal]{\mm at kpfontstrue}
-\define at boolkey{pinumber}[mm@]{fourier}[true]{}
-\define at boolkey{pinumber}[mm@]{pxfonts}[true]{}
-\define at boolkey{pinumber}[mm@]{txfonts}[true]{}
+\define at choicekey{pifonts}{kpfonts}[\mm at kp@option]%
+    {normal,light}[normal]{\mm at kpfontstrue}
+\define at boolkeys{pifonts}[mm@]{fourier,pxfonts,txfonts}[true]
+\newif\ifmm at fontspec
+\define at cmdkey{pifonts}[mm@]{fontspec}[GFS Didot]{\mm at fontspectrue}
 
-\newcommand*\pinumber[1][]{%
-    \ifthenelse{\equal{#1}{}}{% no argument given
-      \ifx\@onlypreamble\@notprerr % not in preamble
-        \@ifundefined{savedpi}{
-            \PackageWarning{mismath}{%
-                \string\pinumber\space
-                must be used in the preamble first}
-        }{\let\pi\savedpi}
-      \else % in the preamble
-        \AtBeginDocument{\let\itpi\pi}% must be here with unicode-math
-        \AtEndPreamble{\AtBeginDocument{
-          %\let\itpi\pi
-          \let\pi\relax
-          \DeclareFontEncoding{LGR}{}{}
-          \DeclareSymbolFont{mm at grup}{LGR}{lmr}{m}{n}
-          \DeclareMathSymbol{\pi}\mathalpha{mm at grup}{"70}
-          \let\savedpi\pi
-        }}
-      \fi
-    }{% command name or keyval options, necessarily in the preamble
-      \AtBeginDocument{\let\itpi\pi}% must be here with unicode-math
-      \AtEndPreamble{\AtBeginDocument{
-        \@ifundefined{#1}{%
-          \setkeys{pinumber}{#1}
-          \let\pi\relax
-          \ifmm at lgr
-            \DeclareFontEncoding{LGR}{}{}
-            \DeclareSymbolFont{mm at grup}{LGR}{\mm at lgrmath}{m}{n}
-            % may work with bold (b) instead of m
-            \DeclareMathSymbol{\pi}{\mathalpha}{mm at grup}{112}
+\newcommand*\pifonts[1]{%
+    \setkeys{pifonts}{#1}
+    \let\pi\relax
 
-          \else\ifmm at upgreek
-          \ifdefstring{\mm at upgreek@option}{Euler}{
+    \ifmm at lgr
+        \DeclareFontEncoding{LGR}{}{}
+        \DeclareSymbolFont{mmupgr}{LGR}{\mm at lgrmath}{m}{n}
+        % may work with bold (b) instead of m
+        \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{112}
+
+    \else\ifmm at fontspec
+        \@ifpackageloaded{fontspec}{}{
+            \PackageError{mismath}{\string\pinumber\space with
+                the `fontspec' option\MessageBreak
+                needs the fontspec package,\MessageBreak
+                which must be run with LuaLaTeX or XeLaTeX}{}
+        }
+        \newfontfamily\mismathgreekfont{\mm at fontspec}[NFSSFamily=mgr]
+        \DeclareSymbolFont{mmupgr}{TU}{mgr}{m}{n}
+        \Umathchardef\pi="7 \symmmupgr "03C0
+
+    \else\ifmm at upgreek
+        \ifdefstring{\mm at upgreek@option}{Euler}{
             \DeclareFontFamily{U}{eur}{\skewchar\font'177}
             \DeclareFontShape{U}{eur}{m}{n}{%
               <-6> eurm5 <6-8> eurm7 <8-> eurm10}{}
-            \DeclareFontShape{U}{eur}{b}{n}{%
-              <-6> eurb5 <6-8> eurb7 <8-> eurb10}{}
-            \DeclareSymbolFont{mm at grup}{U}{eur}{m}{n}
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{"19} % 25
-          }{
-          \ifdefstring{\mm at upgreek@option}{Symbol}{
-            \DeclareSymbolFont{mm at grup}{U}{psy}{m}{n}
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{`p}
-          }{
-          \ifdefstring{\mm at upgreek@option}{Symbolsmallscale}{
+            \DeclareSymbolFont{mmupgr}{U}{eur}{m}{n}
+            \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{"19}
+        }{
+        \ifdefstring{\mm at upgreek@option}{Symbol}{
+            \DeclareSymbolFont{mmupgr}{U}{psy}{m}{n}
+            \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{`p}
+        }{
+        \ifdefstring{\mm at upgreek@option}{Symbolsmallscale}{
             \DeclareFontFamily{U}{fsy}{}
             \DeclareFontShape{U}{fsy}{m}{n}{<->s*[.9]psyr}{}
-            \DeclareSymbolFont{mm at grup}{U}{fsy}{m}{n}
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{`p}
-          }{}}}
+            \DeclareSymbolFont{mmupgr}{U}{fsy}{m}{n}
+            \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{`p}
+        }{}}}
 
-          \else\ifmm at mathdesign
-          \ifdefstring{\mm at mathdesign@option}{Utopia}{
-            \DeclareSymbolFont{mm at grup}{OML}{mdput}{m}{n}
-          }{
-          \ifdefstring{\mm at mathdesign@option}{Garamond}{
-            \DeclareSymbolFont{mm at grup}{OML}{mdugm}{m}{n}
-          }{
-          \ifdefstring{\mm at mathdesign@option}{Charter}{
-            \DeclareSymbolFont{mm at grup}{OML}{mdbch}{m}{n}
-          }{}}}
+    \else\ifmm at mathdesign
+        \ifdefstring{\mm at mathdesign@option}{Utopia}{
+            \DeclareSymbolFont{mmupgr}{OML}{mdput}{m}{n}
+        }{
+        \ifdefstring{\mm at mathdesign@option}{Garamond}{
+            \DeclareSymbolFont{mmupgr}{OML}{mdugm}{m}{n}
+        }{
+        \ifdefstring{\mm at mathdesign@option}{Charter}{
+            \DeclareSymbolFont{mmupgr}{OML}{mdbch}{m}{n}
+        }{}}}
 
-          \else\ifmm at fourier
-            \DeclareFontEncoding{FML}{}{}
-            \DeclareSymbolFont{mm at grup}{FML}{futm}{m}{it}
+    \else\ifmm at fourier
+        \DeclareFontEncoding{FML}{}{}
+        \DeclareSymbolFont{mmupgr}{FML}{futm}{m}{it}
 
-          \else\ifmm at kpfonts
-          \ifdefstring{\mm at kp@option}{normal}{
-            \DeclareSymbolFont{mm at grup}{U}{jkpmia}{m}{it}
-          }{
-          \ifdefstring{\mm at kp@option}{light}{
-            \DeclareSymbolFont{mm at grup}{U}{jkplmia}{m}{it}
-          }}
+    \else\ifmm at kpfonts
+        \ifdefstring{\mm at kp@option}{normal}{
+            \DeclareSymbolFont{mmupgr}{U}{jkpmia}{m}{it}
+        }{
+        \ifdefstring{\mm at kp@option}{light}{
+            \DeclareSymbolFont{mmupgr}{U}{jkplmia}{m}{it}
+        }{}}
 
-          \else\ifmm at pxfonts
-            \DeclareSymbolFont{mm at grup}{U}{pxmia}{m}{it}
+    \else\ifmm at pxfonts
+        \DeclareSymbolFont{mmupgr}{U}{pxmia}{m}{it}
 
-          \else\ifmm at txfonts
-            \DeclareSymbolFont{mm at grup}{U}{txmia}{m}{it}
-          \fi\fi\fi\fi\fi
+    \else\ifmm at txfonts
+        \DeclareSymbolFont{mmupgr}{U}{txmia}{m}{it}
 
-            \DeclareMathSymbol{\pi}{\mathord}{mm at grup}{"19}
-          \fi\fi
+    \fi\fi\fi\fi\fi
+        \DeclareMathSymbol{\pi}{\mathord}{mmupgr}{"19}
+    \fi\fi\fi
+}
 
-          \let\savedpi\pi
-        }{
-          \ifmm at unicodemath
-            \ifthenelse{\equal{#1}{uppi}}{
-              \AtBeginDocument{%
-                \let\pi\relax
-                \def\pi{\symup{\symbol{"003C0}}}
-                \let\itpi\relax
-                \def\itpi{\symit{\symbol{"003C0}}} % or "1D70B
-              }
-            }{\renewcommand{\pi}{\csname #1\endcsname}}
-          \else
-            \renewcommand{\pi}{\csname #1\endcsname}
-          \fi
-
-          \let\savedpi\pi
-        }
-      }}
-    }
+\newcommand*\pinumber[1][]{%
+    \ifthenelse{\equal{#1}{}}{% no argument given
+        \ifx\@onlypreamble\@notprerr % not in preamble
+            \@ifundefined{savedpi}{
+                \PackageWarning{mismath}{%
+                    \string\pinumber\space
+                    must be used in the preamble first}
+            }{\let\pi\savedpi}
+        \else % in the preamble
+            \AtBeginDocument{
+                \let\itpi\pi
+                \pifonts{lgrmath}
+                \let\savedpi\pi
+            }
+        \fi
+    }{% command name or keyval options, necessarily in the preamble
+        \AtBeginDocument{% must be here with unicode-math
+            \let\itpi\pi
+            \@ifundefined{#1}{%
+                \pifonts{#1}
+            }{
+                \ifmm at unicodemath
+                    \ifthenelse{\equal{#1}{uppi}}{% or "1D70B
+                        \renewcommand\pi{\symup{\symbol{"03C0}}}
+                        \renewcommand\itpi{\symit{\symbol{"03C0}}}
+                    }{\renewcommand{\pi}{\csname #1\endcsname}}
+                \else
+                    \renewcommand{\pi}{\csname #1\endcsname}
+                \fi
+            }
+            \let\savedpi\pi}
+      }
 }
 
 \newcommand{\pinormal}{%
@@ -338,9 +320,9 @@
 \newcommand{\boldvect}{\setboolean{arrowvect}{false}}
 \newcommand{\boldvectcommand}{\boldsymbol} % from amsbsy package
 \mm at macro{vect}{\ifthenelse{\boolean{arrowvect}}{
-        \vv}{\boldvectcommand}} % doesn't work well with \if... \fi
-\newcommand*{\hvect}[1]{\vect{\vphantom{t}#1}}
-\newcommand*{\hvec}[1]{\vec{\vphantom{t}#1}}
+    \vv}{\boldvectcommand}} % doesn't work well with \if... \fi
+\newcommand*{\hvect}[1]{\vect{\vphantom{A}#1}}
+\newcommand*{\hvec}[1]{\vec{\vphantom{A}#1}}
 
 \newcommand*{\@norm}[1]{
     \mbox{\raisebox{1.75pt}{\small$\bigl\Vert$}} #1
@@ -358,6 +340,7 @@
 
 \newcommand{\tensor}{\mathbfsfit} % isomath uses \mathsfbfit
 
+
 \mm at macro{di}{\mathop{}\!\mathup{d}}
 \newcommand\probastyle{}
 \let\Par\P % end of paragraph symbol
@@ -365,53 +348,88 @@
 \mm at macro{E}{\operatorname{\probastyle{E}}}
 \mm at macro{V}{\operatorname{\probastyle{V}}}
 
-\mm at operator{\adj}{adj}
-\mm at operator{\Aut}{Aut}
-\mm at operator{\codim}{codim}
-\mm at operator{\Conv}{Conv}
-\mm at operator{\cov}{cov}
-\mm at operator{\Cov}{Cov}
-\mm at macro{curl}{\operatorname{\vect{\mathup{curl}}}}
-\mm at operator[divg]{\divg}{div}
-\mm at operator{\End}{End}
+\newcommand*\MathProba[1]{%
+    \in@{P}{#1} \ifin@ \MathUp{P} \fi
+    \in@{E}{#1} \ifin@ \MathUp{E} \fi
+    \in@{V}{#1} \ifin@ \MathUp{V} \fi
+}
 
-\mm at operator{\erf}{erf}
-\mm at macro{grad}{\operatorname{\vect{\mathup{grad}}}}
-\mm at operator{\id}{id} % mathop or mathord?
-\mm at operator{\Id}{Id}
-\mm at operator{\im}{im}
-\let\oldIm\Im \renewcommand{\Im}{\operatorname{Im}}
-\mm at operator{\lb}{lb}
-\mm at operator{\lcm}{lcm}
+\ifmm at nofunction\else
+    \mm at operator{\adj}{adj}
+    \mm at operator{\Aut}{Aut}
+    \mm at operator{\codim}{codim}
+    \mm at operator{\coker}{coker}
+    \mm at operator{\Conv}{Conv}
+    \mm at operator{\cov}{cov}
+    \mm at operator{\Cov}{Cov}
+    \mm at macro{curl}{\operatorname{\vect{\mathup{curl}}}}
+    \mm at operator[divg]{\divg}{div}
 
-\mm at operator{\rank}{rank}
-\let\oldRe\Re \renewcommand{\Re}{\operatorname{Re}}
-\mm at macro{rot}{\operatorname{\vect{\mathup{rot}}}}
-\mm at operator{\sgn}{sgn}
-\mm at operator{\sinc}{sinc}
-\mm at operator[spa]{\spa}{span}
-\mm at operator{\tr}{tr}
-\mm at operator{\var}{var}
-\mm at operator{\Var}{Var}
-\mm at operator[Zu]{\Zu}{Z}
+    \mm at operator{\End}{End}
+    \mm at operator{\erf}{erf}
+    \mm at macro{grad}{\operatorname{\vect{\mathup{grad}}}}
+    \mm at operator{\id}{id} % mathop or mathord?
+    \mm at operator{\Id}{Id}
+    \mm at operator{\im}{im}
+    \mm at operator{\lb}{lb}
+    \mm at operator{\lcm}{lcm}
+    \mm at operator{\rank}{rank}
 
-\mm at operator{\arccot}{arccot}
-\mm at operator{\sech}{sech}
-\mm at operator{\csch}{csch}
-\mm at operator{\arsinh}{arsinh}
-\mm at operator{\arcosh}{arcosh}
-\mm at operator{\artanh}{artanh}
-\mm at operator{\arcoth}{arcoth}
-\mm at operator{\arsech}{arsech}
-\mm at operator{\arcsch}{arcsch}
+    \mm at operator{\Res}{Res}
+    \mm at macro{rot}{\operatorname{\vect{\mathup{rot}}}}
+    \mm at operator{\sgn}{sgn}
+    \mm at operator{\sinc}{sinc}
+    \mm at operator[spa]{\spa}{span}
+    \mm at operator{\tr}{tr}
+    \mm at operator{\var}{var}
+    \mm at operator{\Var}{Var}
+    \mm at operator[Zu]{\Zu}{Z}
 
-\mm at operator[bigO]{\bigO}{\mathcal{O}}
+    \mm at operator{\arccot}{arccot}
+    \mm at operator{\sech}{sech}
+    \mm at operator{\csch}{csch}
+    \mm at operator{\arsinh}{arsinh}
+    \mm at operator{\arcosh}{arcosh}
+    \mm at operator{\artanh}{artanh}
+    \mm at operator{\arcoth}{arcoth}
+    \mm at operator{\arsech}{arsech}
+    \mm at operator{\arcsch}{arcsch}
+\fi
+
+\DeclareFontFamily{U}{cmsy}{\skewchar\font48 }
+\DeclareFontShape{U}{cmsy}{m}{n}{% from mathalpha
+    <-5.5> cmsy5%
+    <5.5-6.5> cmsy6%
+    <6.5-7.5> cmsy7%
+    <7.5-8.5> cmsy8%
+    <8.5-9.5> cmsy9%
+    <9.5-> cmsy10}{}
+\DeclareMathAlphabet{\cmmathcal}{U}{cmsy}{m}{n}
+
+\AtEndPreamble{\AtBeginDocument{
+    \ifmm at classicReIm\else
+        \let\oldRe\Re
+        \let\oldIm\Im
+    \ifmm at otherReIm
+        \renewcommand{\Re}{\cmmathcal{R}\mathit{e}}
+        \renewcommand{\Im}{\cmmathcal{I}\mathit{m}}
+    \else
+        \renewcommand{\Re}{\operatorname{Re}}
+        \renewcommand{\Im}{\operatorname{Im}}
+    \fi\fi
+}}
+
+\mm at operator[bigO]{\bigO}{\cmmathcal{O}}
 \mm at operator[bigo]{\bigo}{O}
 \mm at operator[lito]{\lito}{o}
 
 \mm at macro{mathset}{\mathbf}
 \mm at macro{R}{\mathset{R}}
-\mm at macro{C}{\mathset{C}}
+\AtBeginDocument{
+    \@ifpackageloaded{hyperref}%
+        {\iftutex\onlymathC\fi}% LuaTex or XeTeX engines
+        {\mm at macro{C}{\mathset{C}}}
+}
 \providecommand\onlymathC{\let\oldC\C
     \renewcommand{\C}{\TextOrMath{\oldC}{\mathset{C}}} }
 \mm at macro{N}{\mathset{N}}
@@ -429,7 +447,7 @@
 
 \mm at macro{lbar}{\overline}
 \@ifundefined{hlbar}{
-    \providecommand*{\hlbar}[1]{\overline{\vphantom{t}#1}}}{
+    \providecommand*{\hlbar}[1]{\overline{\vphantom{A}#1}}}{
     \mm at warning{hlbar} }
 \newcommand\@eqdef{\stackrel{\mathup{def}}{=}}
 \newcommand\@@eqdef{\stackrel{\mathrm{\Delta}}{=}}
@@ -449,7 +467,8 @@
     \providecommand*{\abs}[1]{\left\vert#1\right\vert} }{
     \mm at warning{abs} }
 \@ifundefined{lfrac}{
-    \providecommand*{\lfrac}[2]{\frac{\;#1\;}{\;#2\;}} }{
+    \providecommand*{\lfrac}[3][7mu]{%
+        \frac{\mkern#1#2\mkern#1}{\mkern#1#3\mkern#1}} }{
     \mm at warning{lfrac} }
 
 \newcommand{\systemstretch}{1.2}
@@ -472,8 +491,8 @@
         \begin{math}\begin{aligned}\displaystyle
   \else
     \PackageError{mismath}{The mathcols environment
-        needs the multicol package}{Add the package multicol
-        to your preamble.}
+        needs the multicol package}{Call the package multicol
+        in your preamble.}
   \fi
 }{%
         \end{aligned}\end{math} \hfill\mbox{}



More information about the tex-live-commits mailing list.