texlive[71863] Master/texmf-dist: mathastext (21jul24)

commits+karl at tug.org commits+karl at tug.org
Sun Jul 21 22:20:50 CEST 2024


Revision: 71863
          https://tug.org/svn/texlive?view=revision&revision=71863
Author:   karl
Date:     2024-07-21 22:20:50 +0200 (Sun, 21 Jul 2024)
Log Message:
-----------
mathastext (21jul24)

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

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex
    trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestmathversions.tex
    trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodelinux.tex
    trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodemacos.tex

Modified: trunk/Master/texmf-dist/doc/latex/mathastext/ChangeLog.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathastext/ChangeLog.md	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/doc/latex/mathastext/ChangeLog.md	2024-07-21 20:20:50 UTC (rev 71863)
@@ -1,6 +1,84 @@
 MATHASTEXT CHANGE LOG
 =====================
 
+1.4a \[2024/07/20\]
+----
+
+* There was a documentation glitch in 1.4 and also a problem with the
+  `\MTprimeskip` feature being lost under the emergency fall-back
+  `everymath` option.
+
+1.4 \[2024/07/20\]
+---
+
+* Since 1.2 of 2012/12/20, mathastext has used mathematically active
+  characters to propose certain advanced functionalities.  For reasons half
+  lost in the mists of time but whose main one was surely to keep the
+  meaning of the active shape of characters unchanged outside of math mode,
+  this mathematical activation, and (in most cases) the definitions of what
+  active characters do, were done again at *each* entrance into math mode.
+  At this 1.4 release, mathastext does not inject *any* code whatsoever into
+  the `\everymath` and `\everydisplay` toks registers anymore (except for
+  one font-related hack needed under LuaLaTeX, see below).  Your documents
+  will compile a tiny bit faster.
+
+* In (unsual) documents where users play with catcodes and mathcodes it is
+  impossible to keep exact backward compatibility, because documented user
+  commands which acted formerly a toggles with delayed action now will enact
+  changes immediately if in the document body.  In practice consequences are
+  expected to be few, because catcode active characters are (as was already
+  the case with earlier releases) hacked only when they are Babel shorthands
+  and they are then modified in a way altering only their action in math
+  mode.  The precise description of what mathastext does when mathematically
+  activating (or not) a character, depending on circumstances, is to be
+  found among small-print comments in the section "Extended scope of the
+  math alphabets commands".  See also the documentation of the
+  `\MTmathactiveletters` command for some specifics regarding ascii letters.
+
+* New option: `everymath`. It instructs mathastext to revert (partially)
+  to its legacy code which uses `\everymath/\everydisplay`.  This reversal
+  is partial, the handling of ascii letters not being included into it.  The
+  `everymath` option is there only to try as a quick fix in case transition
+  to this release causes a major problem in a user document and time is
+  lacking to investigate.  Please report to the author such issues.  Option
+  `everymath` is destined to be removed at next major release.
+
+* New option: `activedigits`.  Enjoy.
+
+* It is now easier to hook into the mathastext architecture for
+  mathematically activated ascii letters.  See the new section "Hacking
+  letters (and even digits) for special tasks".
+
+* Bugfix: do not override special behavior of the math mode dot in
+  babel-spanish.
+
+* Bugfix: A desperate hack related to LuaLaTeX font matters and dating
+  back to 1.3o 2016/05/03 had been for some years in dire need of an update
+  regarding fonts using `Renderer=HarfBuzz`.  This is done now.  Thanks to
+  tex.sx `user691586` for report.  This is currently the sole remaining
+  usage of `\everymath/\everydisplay`.
+
+* Bugfix: an optional feature related to `\{` and `\}` was broken since an
+  upstream LaTeX change at its 2020-02-02 release.
+
+* With option symbolmisc, those math symbol macros formerly defined via
+  `\DeclareRobustCommand` are now declared via `\protected\def`.
+
+* Removal of legacy branches previously kept to support LaTeX earlier than
+  2020-02-02.
+
+* Removal of support for EU1 and EU2 font encodings.
+
+* Option `noasterisk` deprecated at 1.2d 2013/01/02 has (finally) been removed.
+
+* Four test files previously included and auto-extracted from the
+  distributed dtx have been dropped.  One of them is still available
+  on the package homepage.
+
+* Some parts of the documentation have been massively re-ordered and even to some
+  extent improved.  But there may be some occasions where obsolete statements will
+  be found having the legacy `\everymath/\everydisplay` situation as background.
+
 1.3zb \[2023/12/29\]
 -----
 
@@ -156,7 +234,7 @@
   to some other (robust) math alphabet macros, but were not
   robust in the strict sense. This does cause some issues for
   moving arguments in the context of multiple math versions,
-  hence it was a bug. The special behaviour of the math
+  hence it was a bug. The special behavior of the math
   alphabet commands (they redefine themselves and other macros
   on first use) makes is somewhat problematic for mathastext
   to keep them updated across math versions and at the same
@@ -400,16 +478,14 @@
 * bugfix: under option nosmalldelims, `\lbrace` and `\rbrace` were
   redefined as math symbols and could not be used as delimiters.
 
-1.3d \[2015/02/26\]
+1.3d \[2014/05/23\]
 ----
 
-* the documentation mentions the improved compatibility of mathastext
+* A 2015/02/26 edit to the documentation mentions the
+  improved compatibility of mathastext
   with the latest (3.34) beamer release: no more need for
   `\usefonttheme{professionalfonts}`.
 
-1.3d \[2014/05/23\]
-----
-
 * new commands `\MTstandardgreek` and `\MTcustomgreek`.
 
 * The Greek letters, in case of use of one of the package related
@@ -540,6 +616,8 @@
       mechanism of letting non-letter symbols obey the math alphabet
       commands.
 
+*  the `noasterisk` option is deprecated and made a no-op.
+
 *  documentation extended and improved.
 
 1.2c \[2012/12/31\]
@@ -684,6 +762,11 @@
       complete manner to adapt the math configuration to fonts
       provided with no math support.
 
+1.13d
+----
+
+*  new macros `\MTstandardgreek` and `\MTcustomgreek`
+
 1.13b
 ----
 

Modified: trunk/Master/texmf-dist/doc/latex/mathastext/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathastext/README.md	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/doc/latex/mathastext/README.md	2024-07-21 20:20:50 UTC (rev 71863)
@@ -12,9 +12,9 @@
 
 The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`)
 
-Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
+Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
 
-      Source: mathastext.dtx 1.3zb 2023/12/29
+      Source: mathastext.dtx 1.4a 2024/07/20
 
 
 DESCRIPTION
@@ -82,6 +82,84 @@
 RECENT CHANGES
 ==============
 
+1.4a \[2024/07/20\]
+----
+
+* There was a documentation glitch in 1.4 and also a problem with the
+  `\MTprimeskip` feature being lost under the emergency fall-back
+  `everymath` option.
+
+1.4 \[2024/07/20\]
+---
+
+* Since 1.2 of 2012/12/20, mathastext has used mathematically active
+  characters to propose certain advanced functionalities.  For reasons half
+  lost in the mists of time but whose main one was surely to keep the
+  meaning of the active shape of characters unchanged outside of math mode,
+  this mathematical activation, and (in most cases) the definitions of what
+  active characters do, were done again at *each* entrance into math mode.
+  At this 1.4 release, mathastext does not inject *any* code whatsoever into
+  the `\everymath` and `\everydisplay` toks registers anymore (except for
+  one font-related hack needed under LuaLaTeX, see below).  Your documents
+  will compile a tiny bit faster.
+
+* In (unsual) documents where users play with catcodes and mathcodes it is
+  impossible to keep exact backward compatibility, because documented user
+  commands which acted formerly a toggles with delayed action now will enact
+  changes immediately if in the document body.  In practice consequences are
+  expected to be few, because catcode active characters are (as was already
+  the case with earlier releases) hacked only when they are Babel shorthands
+  and they are then modified in a way altering only their action in math
+  mode.  The precise description of what mathastext does when mathematically
+  activating (or not) a character, depending on circumstances, is to be
+  found among small-print comments in the section "Extended scope of the
+  math alphabets commands".  See also the documentation of the
+  `\MTmathactiveletters` command for some specifics regarding ascii letters.
+
+* New option: `everymath`. It instructs mathastext to revert (partially)
+  to its legacy code which uses `\everymath/\everydisplay`.  This reversal
+  is partial, the handling of ascii letters not being included into it.  The
+  `everymath` option is there only to try as a quick fix in case transition
+  to this release causes a major problem in a user document and time is
+  lacking to investigate.  Please report to the author such issues.  Option
+  `everymath` is destined to be removed at next major release.
+
+* New option: `activedigits`.  Enjoy.
+
+* It is now easier to hook into the mathastext architecture for
+  mathematically activated ascii letters.  See the new section "Hacking
+  letters (and even digits) for special tasks".
+
+* Bugfix: do not override special behavior of the math mode dot in
+  babel-spanish.
+
+* Bugfix: A desperate hack related to LuaLaTeX font matters and dating
+  back to 1.3o 2016/05/03 had been for some years in dire need of an update
+  regarding fonts using `Renderer=HarfBuzz`.  This is done now.  Thanks to
+  tex.sx `user691586` for report.  This is currently the sole remaining
+  usage of `\everymath/\everydisplay`.
+
+* Bugfix: an optional feature related to `\{` and `\}` was broken since an
+  upstream LaTeX change at its 2020-02-02 release.
+
+* With option symbolmisc, those math symbol macros formerly defined via
+  `\DeclareRobustCommand` are now declared via `\protected\def`.
+
+* Removal of legacy branches previously kept to support LaTeX earlier than
+  2020-02-02.
+
+* Removal of support for EU1 and EU2 font encodings.
+
+* Option `noasterisk` deprecated at 1.2d 2013/01/02 has (finally) been removed.
+
+* Four test files previously included and auto-extracted from the
+  distributed dtx have been dropped.  One of them is still available
+  on the package homepage.
+
+* Some parts of the documentation have been massively re-ordered and even to some
+  extent improved.  But there may be some occasions where obsolete statements will
+  be found having the legacy `\everymath/\everydisplay` situation as background.
+
 1.3zb \[2023/12/29\]
 -----
 
@@ -133,63 +211,3 @@
 * Fix long-standing hyperlink problems in the documentation:
   blue color words should now all be functioning hyperlinks.
 
-1.3z \[2023/09/01\]
-----
-
-Fix 1.3y regression which broke `selfGreek` option due to internal
-renamings.  Thanks to Stephan Korell for report.
-
-1.3y \[2022/11/04\]
-----
-
-(the 1.3x had an annoying documentation bug, and had already
-been pushed to CTAN, hence the version increase to 1.3y)
-
-* mathastext now requires the `\expanded` primitive (which is
-  available with all major engines since TeXLive 2019).
-
-* Revisit parts of the documentation (mainly
-  the Examples, and the section on Greek letters) and shuffle
-  the other parts to surely improve things. Mention
-  the [mathfont](https://ctan.org/pkg/mathfont)
-  and [frenchmath](https://ctan.org/pkg/frenchmath) packages.
-
-* Add the `ncccomma` option which loads the
-  [ncccomma](https://ctan.org/pkg/ncccomma)
-  package to allow the comma as decimal separator.
-
-* Add the `binarysemicolon` option to let the semi-colon
-  be of type `\mathbin`, not `\mathpunct`.
-
-* Add the `frenchmath*` option which does all three of
-  `frenchmath`, `ncccomma` and `binarysemicolon`.
-
-* Under the `LGRgreek` and `LGRgreeks` options only:
-
-  - make available upright and italic Greek letters in math mode
-    via `\alphaup`, `\alphait`, ...  control sequences, in
-    addition to those not using such postfixed-names.
-
-  - add `\mathgreekup` and `\mathgreekit` math alphabets.
-
-  - add `\MTgreekupdefault` and `\MTgreekitdefault`.  The former
-    replaces `\updefault` which was used in some places and since
-    LaTeX 2020-02-02 caused systematic Font Warnings about the
-    substitution of `up` by `n`.
-
-  These new features required an extensive internal refactoring
-  which is expected to not induce changes to most existing
-  documents.  But it may induce changes to those using some
-  unusual configuration in the preamble, as made possible via the
-  package macros; this can apply only to documents authored by
-  those few people who actually read the documentation.  For full
-  details make sure to read the PDF documentation about this
-  change.
-
-* Fix "`\Digamma` under `LGRgreek` option uses the shape for
-  lowercase not uppercase Greek".
-
-* Fix some incongruities in log messages related to Greek
-  letters and emitted during math version creation in the
-  preamble.
-

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

Modified: trunk/Master/texmf-dist/doc/latex/mathastext/mathastext.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathastext/mathastext.tex	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/doc/latex/mathastext/mathastext.tex	2024-07-21 20:20:50 UTC (rev 71863)
@@ -1,12 +1,12 @@
-\def\MSTpkgdate    {2023/12/29}
-\def\MSTpkgversion {1.3zb}
+\def\MSTpkgdate    {2024/07/20}
+\def\MSTpkgversion {1.4a}
 %%----------------------------------------------------------------
 %% Package: mathastext
 %% Info:    Use the text font in math mode (JFB)
-%% Version: 1.3zb 2023/12/29
+%% Version: 1.4a 2024/07/20
 %% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
-%%                                                <jfbu at free dot fr>
+%% Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
+%%                                   <jfbu at free dot fr>
 %% Examples of use of mathastext:
 %%        http://jf.burnol.free.fr/mathastext.html
 %%        http://jf.burnol.free.fr/showcase.html

Deleted: trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestalphabets.tex	2024-07-21 20:20:50 UTC (rev 71863)
@@ -1,265 +0,0 @@
-\def\testfileincipit{Test file to accompany \texttt{mathastext}
-version \texttt{1.3zb} of \texttt{2023/12/29}}
-%%----------------------------------------------------------------
-%% Package: mathastext
-%% Info:    Use the text font in math mode (JFB)
-%% Version: 1.3zb 2023/12/29
-%% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
-%%                                                <jfbu at free dot fr>
-%% Examples of use of mathastext:
-%%        http://jf.burnol.free.fr/mathastext.html
-%%        http://jf.burnol.free.fr/showcase.html
-%%----------------------------------------------------------------
-%% This file `mathastexttestalphabets.tex' is for testing the extended
-%% scope of the math alphabet commands with package `mathastext', via
-%% the package command \MTnonlettersobeymathxx.
-%%
-%% Compile either with latex, pdflatex, lualatex (pdf output) or xelatex.
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[hscale=0.66, vscale=0.72]{geometry}
-\usepackage{amsmath}
-\usepackage{mathtools}\mathtoolsset{centercolon}
-%% WARNING THIS IS INCOMPATIBLE WITH BABEL+FRENCHB
-%% BUT WITH MATHASTEXT LOADED THIS IS CORRECTED
-%% *IF* \MTnonlettersobeymathxx IS MADE USE OF.
-\usepackage{iftex}
-\ifXeTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \XeLaTeX)}
-\usepackage[no-math]{fontspec}
-\setmainfont[ExternalLocation,
-             Mapping=tex-text,
-             BoldFont=texgyretermes-bold,
-             ItalicFont=texgyretermes-italic,
-             BoldItalicFont=texgyretermes-bolditalic]{texgyretermes-regular}
-\setmonofont[ExternalLocation,
-             Mapping=tex-text]{texgyrecursor-regular}
-\setsansfont[ExternalLocation,
-             Mapping=tex-text]{texgyreheros-regular}
-\else
-\ifLuaTeX % for pdf output
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \LuaLaTeX)}
-\usepackage[no-math]{fontspec}
-\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
-\setmonofont[Ligatures=TeX]{TeX Gyre Cursor}
-\setsansfont[Ligatures=TeX]{TeX Gyre Heros}
-\else
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage{tgtermes}
-\usepackage{tgcursor}
-\usepackage{tgheros}
-\fi\fi
-\usepackage{metalogo} % must be loaded /after/ [no-math]fontspec
-\usepackage[french]{babel}
-\usepackage[italic,asterisk]{mathastext}
-\MTlettershape{n}\Mathastext[upright]
-\MTnonlettersobeymathxx
-\MTexplicitbracesobeymathxx
-\delimitershortfall-1pt
-\usepackage{color}
-\begin{document}
-\testfileincipit
-
-\begin{center}
-  \bfseries Two features of \texttt{mathastext}:\\
-extended scope of the math alphabets and added italic corrections\par
-\end{center}
-
-The package makes
-${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}\,{\{}\,{\}}$,
-the asterisk $*$, and $.\,/\,\vert\,\backslash\,{\#}\,{\$}\,{\%}\,{\&}$ obey the
-math alphabet commands (this is the maximal list, some characters may have been
-excluded by the corresponding package options). For the characters listed first
-the mechanism involves a `mathematical activation'.
-
-As this process may create incompatibilities, it will be put into action
-for
-${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}$
-only if the user makes use of the package command
-\verb|\MTnonlettersobeymathxx| (and the braces necessitate
-\verb|\MTexplicitbracesobeymathxx|).
-
-It could be that one such character has been made `active' in the entire
-document by some other package, typically a language definition file for the
-\verb|babel| system. Here for example we have used \verb|babel| with the
-\verb|french| option, which makes the high punctuation characters !?:; active
-throughout the document (extra spacing is put in front of the character when
-used in text; no change in math but perhaps for other languages and characters
-this could happen, it is up to the language definition file to decide).
-
-When \verb|mathastext| detects that a character it wants to `mathematically
-activate' is already `active', it does not go further except if it seems that
-the activation was done by Babel. If the activation was done by Babel, then
-\verb|mathastext| replaces the expansion of the active character in math mode by
-what is necessary to achieve its goal. It does not additionally mathematically
-activate the character; rather it makes sure that the character is \emph{not}
-mathematically active. In the present document the colon was made mathematically
-active by \verb|mathtools| but this was already canceled in the preamble by
-\verb|mathastext| as it was loaded later. And it is better so, because the
-combination \verb|babel| (with option \verb|frenchb|) +\verb|mathtools| (with
-\verb|centercolon|) makes \verb|$:$| create an infinite loop!
-
-But even if someone had mathematically activated the colon after the preamble,
-or after the loading of \verb|mathastext|, this would be canceled again
-automatically for each inline or displayed mathematical formula (if the user
-does \verb|\MTnonlettersobeymathxx|).
-
-The conclusion with \verb|\MTnonlettersobeymathxx| is: if some package has tried
-to make the character mathematically active, this will be overruled by
-\verb|mathastext|; if some package has made the character globally active, then
-the package wins except if it is Babel, as \verb|mathastext| may in the latter
-case safely modify the action in math mode (paying attention to the fact that
-the character should be usable in \verb|\label| and \verb|\ref| in and outside
-of math mode).
-
-The displayed equations next illustrate the extended scope of the math alphabets
-which now apply to $=$, $-$, $($, $)$, $[$, $]$ (but not to the large delimiters
-of course). Furthermore, for testing purposes the equations were labeled using
-such characters, for example the last one has label \verb|eq=7|, to check that
-the mathematical activation of $=$ does not cause problems with
-\verb|\label/\ref|.
-
-\def\testformula{\quad\Biggl\lbrace\biggl(\left(\left[[\sin(a) + \cos(b) - \log(c) =
-\sec(d)]\right]\right)\biggr)\Biggr\rbrace}
-\begin{equation}\testformula\label{eq:1}\end{equation}
-\begin{equation}\mathnormalbold{mathnormalbold:\testformula}\label{eq;2}\end{equation}
-\begin{equation}\mathrm{mathrm:\testformula}\label{eq?3}\end{equation}
-\begin{equation}\mathbf{mathbf:\testformula}\label{eq!4}\end{equation}
-\begin{equation}\mathit{mathit:\testformula}\label{eq(5}\end{equation}
-\begin{equation}\mathtt{mathtt:\testformula}\label{eq)6}\end{equation}
-\begin{equation}\mathsf{mathsf:\testformula}\label{eq=7}\end{equation}
-
-Equations above are numbered \ref{eq:1}, \ref{eq;2}, \ref{eq?3}, \ref{eq!4}, and
-$\ref{eq(5}$, $\ref{eq)6}$, and $\ref{eq=7}$.
-
-\def\testline#1{$#1$&$\mathnormalbold{#1}$&$\mathrm{#1}$&$\mathbf{#1}$&$\mathit{#1}$&$\mathtt{#1}$&$\mathsf{#1}$}
-
-\centerline{\begin{tabular}{ccccccc}
-\testline{a!b}\\
-\testline{a?b}\\
-\testline{a,b}\\
-\testline{a;b}\\
-\testline{a:b}\\
-\testline{a:=b}\\
-\testline{a\vcentcolon= b}\\
-\testline{a\colon b}\\
-\testline{a.b}\\
-\testline{a-b}\\
-\testline{a+b}\\
-\testline{a=b}\\
-\testline{a<b}\\
-\testline{a>b}\\
-\testline{<x,y>}\\
-\testline{\mathopen{<} x,y\mathclose{>}}\\
-\testline{\left< x,y\right>}\\
-\testline{a/b}\\
-\testline{a\backslash b}\\
-\testline{a\setminus b}\\
-\testline{a|b}\\
-\testline{a\mid b}\\
-\testline{(a,b)}\\
-\testline{[a,b]}\\
-\testline{\{a,b\}}
-\end{tabular}}
-
-The question mark has been made active by \verb|babel+frenchb|.
-\verb|mathastext| has imposed in math mode its ways (now \verb|$\mathbf{???}$|
-gives $\mathbf{???}$). As the extra spacing is added by \verb|frenchb| only in
-text, we had to use the math alphabet to check that indeed \verb|mathastext|
-overruled Babel.
-
-To double-check we will now make \string? mathematically active:
-\verb|\mathcode`?="8000|\mathcode`?="8000. This is a sure cause for disaster
-normally with Babel (don't do this at home without \verb|mathastext|!). But here
-with \verb|$?$| no bad surprise (infinite loop!) awaits us: just $?$.
-
-Let's take some other character, for example the opening parenthesis, and make
-it catcode active:
-\verb|\catcode`(=\active \def ({X}|.
-Let's try the input
-\verb|( and $($|.
-\begingroup
-\catcode`(=\active \gdef ({X}
-This gives ( and $($. We see that \verb|mathastext| does not attempt to modify
-the definition of the active character, as this activation was not done via the
-\verb|babel| services. \catcode`\(=12 \mathcode`(="8000 We now revert the
-parenthesis to catcode other (but maintain \verb|\def ({X}| as definition of its
-active version), and then make it mathematically active using the command
-\verb|\mathcode`(="8000|. If we try \verb|$((($| we see that the parenthesis is
-not converted into an $X$: $((($. The mathematically active character was
-overruled by \verb|mathastext|.
-
-Issuing \verb|\MTnonlettersdonotobeymathxx|\MTnonlettersdonotobeymathxx\ we do
-get the $X$'s from the input \verb|$((($|: $((($
-\endgroup
-This shows that \verb|mathastext| now does not modify in math mode the
-non-letter \verb|(|.
-
-\MTversion{upright}\MTnonlettersobeymathxx
-We defined in the preamble of the document a \verb|mathastext|-enhanced
-math version (named \verb|upright|) having the Latin letters upright in
-math mode. Let's switch to
-it: \newline
-\hbox to\linewidth{\hss\verb|\MTversion{upright}|\hss}
-
-With a font which is neither italic nor slanted, \verb|mathastext| automatically
-inserts italic corrections for better positioning of the subscript:
-\verb|$f_i^i$| gives
-$f_i^i$.
-After \verb|\MTnoicinmath| which turns off this feature\MTnoicinmath{}, the same
-input gives $f_i^i$, which is different.
-\footnote{last time I tried, this only worked with PDF\LaTeX{}, not with
-  \LuaLaTeX{} or \XeTeX{}.}
-
-Again with italic corrections on (\verb|\MTicinmath|)\MTicinmath{}
-\verb|$f_{abc}^{def}$| gives $f_{abc}^{def}$, and here is another one:
-$f^{f_{abc}^{def}}_u$. Without italic corrections\MTnoicinmath: $f_{abc}^{def}$,
-and respectively $f^{f_{abc}^{def}}_u$.
-
-\MTicinmath
-
-\verb|mathastext| does not add these italic corrections inside arguments of
-math alphabets, as this would prevent the formation of ligatures:
-$\mathnormal{ff}$, $\mathrm{ff}$, $\mathit{ff}$, $\mathbf{ff}$, $\mathtt{ff}$
-(no ligature in teletype) and $\mathsf{ff}$.\footnote{\llap{\textcolor{magenta}{\bfseries Changed!\kern3em}}Prior to 1.3i,
-  italic corrections were added to the \string\mathnormal\ arguments.}
-
-\centerline{\begin{tabular}{ccccccc}
-\testline{a!b}\\
-\testline{a?b}\\
-\testline{a,b}\\
-\testline{a;b}\\
-\testline{a:b}\\
-\testline{a:=b}\\
-\testline{a\vcentcolon= b}\\
-\testline{a\colon b}\\
-\testline{a.b}\\
-\testline{a-b}\\
-\testline{a+b}\\
-\testline{a=b}\\
-\testline{a<b}\\
-\testline{a>b}\\
-\testline{<x,y>}\\
-\testline{\mathopen{<} x,y\mathclose{>}}\\
-\testline{\left< x,y\right>}\\
-\testline{a/b}\\
-\testline{a\backslash b}\\
-\testline{a\setminus b}\\
-\testline{a|b}\\
-\testline{a\mid b}\\
-\testline{(a,b)}\\
-\testline{[a,b]}\\
-\testline{\{a,b\}}
-\end{tabular}}
-
-\end{document}
-\endinput
-%%
-%% End of file `mathastexttestalphabets.tex'.

Deleted: trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestmathversions.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestmathversions.tex	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestmathversions.tex	2024-07-21 20:20:50 UTC (rev 71863)
@@ -1,43 +0,0 @@
-\def\testfileincipit{Test file to accompany \texttt{mathastext}
-version \texttt{1.3zb} of \texttt{2023/12/29}}
-%%----------------------------------------------------------------
-%% Package: mathastext
-%% Info:    Use the text font in math mode (JFB)
-%% Version: 1.3zb 2023/12/29
-%% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
-%%                                                <jfbu at free dot fr>
-%% Examples of use of mathastext:
-%%        http://jf.burnol.free.fr/mathastext.html
-%%        http://jf.burnol.free.fr/showcase.html
-%%----------------------------------------------------------------
-%% This file `mathastexttestversions.tex' is for testing the enhanced
-%% concept of math versions provided by the package `mathastext'.
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[T1]{fontenc}
-\usepackage{newcent}
-\usepackage[subdued]{mathastext}
-\Mathastext[newcent]
-\renewcommand\familydefault\ttdefault
-\Mathastext[courier]
-\renewcommand\familydefault\sfdefault
-\Mathastext[avantgarde]
-\renewcommand\familydefault\rmdefault
-\begin{document}
-\testfileincipit
-
-text in NewCentury and $math\ as\ in\ default$,%
-\MTversion{courier} text in Courier and $math\ in\ Courier$,%
-\MTversion{avantgarde} text in AvantGarde and $math\ in\ AvantGarde$,%
-\MTversion[newcent]{courier} text in NewCentury and $math\ in\
-Courier$,\MTversion{bold} text in bold NewCentury and $math\ as\ in\
-bold\ default$,\MTversion[courier]{avantgarde} text in Courier and
-$math\ in\ AvantGarde$.
-\end{document}
-\endinput
-%%
-%% End of file `mathastexttestmathversions.tex'.

Deleted: trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodelinux.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodelinux.tex	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodelinux.tex	2024-07-21 20:20:50 UTC (rev 71863)
@@ -1,120 +0,0 @@
-\def\testfileincipit{Test file to accompany \texttt{mathastext}
-version \texttt{1.3zb} of \texttt{2023/12/29}}
-%%----------------------------------------------------------------
-%% Package: mathastext
-%% Info:    Use the text font in math mode (JFB)
-%% Version: 1.3zb 2023/12/29
-%% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
-%%                                                <jfbu at free dot fr>
-%% Examples of use of mathastext:
-%%        http://jf.burnol.free.fr/mathastext.html
-%%        http://jf.burnol.free.fr/showcase.html
-%%----------------------------------------------------------------
-%% This file `mathastexttestunicodelinux.tex' is for testing the use
-%% of the package `mathastext' with the unicode engines XeTeX or LuaLaTeX.
-%%
-%% Fonts which were available on a Linux machine are used. Beware that
-%% compilation with LuaLaTeX will abort with errors if specified fonts do not
-%% exist on your system.
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[hscale=0.8]{geometry}
-\usepackage{multicol}
-\usepackage[no-math]{fontspec}
-\usepackage{lmodern}
-\usepackage{metalogo}
-\usepackage{iftex}
-\ifXeTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \XeLaTeX)}
-\else
-\ifLuaTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \LuaLaTeX)}
-\fi\fi
-\usepackage[subdued,italic,asterisk]{mathastext}
-\setmainfont[Color=999999]{Verdana}      \Mathastext[Verdana]
-\setmainfont[Color=0000FF]{Arial}        \Mathastext[Arial]
-\setmainfont[Color=00C000]{DejaVu Serif} \Mathastext[DejaVu]
-\setmainfont[Color=FF0000]{Andale Mono}  \Mathastext[Andale]
-%% commented out as these fonts do not exist anymore on the Linux box
-%% I have access to (test last done 2016/01/15)
-%%\setmainfont[Color=C000C0]{URW Chancery L}    \Mathastext[Chancery]
-%%\setmainfont[Color=800080]{URW Palladio L}    \Mathastext[Palladio]
-\setmainfont[Color=808000]{Liberation Serif}  \Mathastext[Liberation]
-\MTDeclareVersion{Times}{T1}{ptm}{m}{n}
-\begin{document}
-\MTversion{normal}
-\testfileincipit
-
-This test uses \verb|mathastext| with its \emph{italic}, \emph{asterisk}, and
-\emph{subdued} options. The base document fonts are the Latin Modern ones (in
-OpenType format). The other OpenType fonts were chosen from those available on
-a Linux machine. We also used the Times font in traditional \TeX\ font T1
-encoding, to demonstrate the removal since release \texttt{1.3u} of a former
-limitation that all math versions had to share the same font encoding, else
-some characters such as the dotless \texttt{i} ($\imath$), or the minus sign
-could well vanish from the output in the non-normal math versions.
-
-Furthermore we test (last line of each block, on the left) if the non-letter
-characters obey the math alphabet \verb|\mathbf|. In the normal and bold math
-versions, this feature is de-activated, as option \emph{subdued} was used; and
-if activated we should then use in these math versions the package
-\verb|\Mathbf| rather than \verb|\mathbf| which is there still the original
-one, which will use encoding \verb|OT1| in the normal and bold versions, as we
-loaded \verb|fontspec| with its option \emph{no-math}.
-
-Some among the fonts tested have no bold variant or no italic variant.
-
-Note: the two unicode engines \XeLaTeX\ and \LuaLaTeX\ give likely not fully
-identical results particularly for the math mode. At least this is what I
-observed regularly over the years with the variant of this file prepared for
-fonts available on Mac OS, which is my main system where I develop
-|\mathastext|. Lastly for example (TL2019, august 2019), \LuaLaTeX\ could not
-find the bold variant of some system font, but \XeLaTeX\ did. And the spacing
-for the letters of the Didot font was vastly different between the two
-engines.
-
-\newcommand\TEST[1]{\MTversion{#1}\def\tmpa{#1}%
-  \def\tmpb{normal}\def\tmpc{bold}%
-  \ifx\tmpa\tmpb\else\ifx\tmpa\tmpc\else \MTnonlettersobeymathxx
-  \MTexplicitbracesobeymathxx\fi\fi
-\begin{multicols}{2}
-\hbox to\columnwidth{\hbox to\columnwidth{\hfil
-                $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}}
-   \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ }
-   \centerline{ $0123456789$ }
-   \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ }
-   \centerline{ $\mathbf{!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash}$ }
-\columnbreak
-   \centerline{ abcdefghijklmnopqrstuvwxyz }
-   \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ }
-   \centerline{ 0123456789}
-   \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-   \centerline{\bfseries !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-\end{multicols}}
-\begin{multicols}{2}
-   \centerline{\textbf{math mode}}
-\columnbreak
-   \centerline{ \textbf{text} }
-\end{multicols}
-\TEST{DejaVu}
-\TEST{Verdana}
-\TEST{Andale}
-%%\TEST{Palladio}
-\TEST{Arial}
-%%\TEST{Chancery}
-\TEST{Liberation}
-\TEST{bold}\TEST{normal}\TEST{Times}
-\end{document}
-\endinput
-%%
-%% End of file `mathastexttestunicodelinux.tex'.

Deleted: trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodemacos.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodemacos.tex	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/doc/latex/mathastext/mathastexttestunicodemacos.tex	2024-07-21 20:20:50 UTC (rev 71863)
@@ -1,124 +0,0 @@
-\def\testfileincipit{Test file to accompany \texttt{mathastext}
-version \texttt{1.3zb} of \texttt{2023/12/29}}
-%%----------------------------------------------------------------
-%% Package: mathastext
-%% Info:    Use the text font in math mode (JFB)
-%% Version: 1.3zb 2023/12/29
-%% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
-%%                                                <jfbu at free dot fr>
-%% Examples of use of mathastext:
-%%        http://jf.burnol.free.fr/mathastext.html
-%%        http://jf.burnol.free.fr/showcase.html
-%%----------------------------------------------------------------
-%% This file `mathastexttestunicodemacos.tex' is for testing the use
-%% of the package `mathastext' with the unicode engines XeTeX or LuaLaTeX.
-%%
-%% Mac OS X specific fonts are used (initially tested on 10.8.2).
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[hscale=0.85]{geometry}
-\usepackage{multicol}
-\usepackage[no-math]{fontspec}
-\usepackage{lmodern}
-\usepackage{metalogo}
-\usepackage{iftex}
-\ifXeTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \XeLaTeX)}
-\else
-\ifLuaTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \LuaLaTeX)}
-\fi\fi
-\usepackage[subdued,italic,asterisk]{mathastext}
-\setmainfont[Color=FF0000]{Hoefler Text}  \Mathastext[Hoefler]
-\setmainfont[Color=336633]{American Typewriter}\Mathastext[Typewriter]
-\setmainfont[Color=0000FF]{Herculanum}    \Mathastext[Herculanum]
-\setmainfont[Color=FF00FF]{Didot}         \Mathastext[Didot]
-\setmainfont[Color=999999]{Comic Sans MS} \Mathastext[Comic]
-\MTDeclareVersion{Times}{T1}{ptm}{m}{n}
-\begin{document}
-\MTversion{normal}
-\testfileincipit
-
-This test uses \verb|mathastext| with its \emph{italic}, \emph{asterisk}, and
-\emph{subdued} options. The base document fonts are the Latin Modern ones (in
-OpenType format). The other OpenType fonts were chosen from those available on
-a Mac OS machine. We also used the Times font in traditional \TeX\ font T1
-encoding, to demonstrate the removal since release \texttt{1.3u} of a former
-limitation that all math versions had to share the same font encoding, else
-some characters such as the dotless \texttt{i} ($\imath$), or the minus sign
-could well vanish from the output in the non-normal math versions.
-
-Furthermore we test (last line of each block, on the left) if the non-letter
-characters obey the math alphabet \verb|\mathbf|. In the normal and bold math
-versions, this feature is de-activated, as option \emph{subdued} was used; and
-if activated we should then use in these math versions the package
-\verb|\Mathbf| rather than \verb|\mathbf| which is there still the original
-one, which will use encoding \verb|OT1| in the normal and bold versions, as we
-loaded \verb|fontspec| with its option \emph{no-math}.
-
-Some among the fonts tested have no bold variant or no italic variant.
-
-Note (tested 2013/09/03): for some reason the \verb|Color| specifications in the
-\verb|\setmainfont| commands work only
-with \XeLaTeX{}, not with \LuaLaTeX{}; a few months back I had not noticed
-such a difference between the two engines.
-
-Update (tested 2016/01/15 with reasonably up-to-date TL2015): \verb|Color|
-spec in use of \verb|\setmainfont| command now functional again with
-\LuaLaTeX.
-
-Note (tested 2019/08/11, reasonably up-to-date TL2019): spacing with the Didot
-font differs widely between \XeLaTeX\ and \LuaLaTeX{} (perhaps related to
-italic corrections, see the package documentation), and also it seems
-\LuaLaTeX{} will not find (from our generic usage of the \verb|fontspec|
-interface, at least) bold variants of the Hoefler Text and American Typewriter
-fonts, contrarily to \XeLaTeX. Also, the \emph{italic} option remains
-seemingly without effect with \LuaLaTeX{} in the case of the Hoefler Text font
-(see the package source code comments on some problems with the two ``modes''
-for text fonts under \LuaLaTeX, which may be related with this specific issue
-here).
-
-Update (tested 2022/10/29, with 1.3x and up-to-date TL2022): it appears that
-most, perhaps even all, of the remarks in the preceding note are now obsolete
-as I do not see obvious differences between outputs from \XeLaTeX{} versus
-\LuaLaTeX{} but I did not seriously compare, only quickly done.
-
-\newcommand\TEST[1]{\MTversion{#1}\def\tmpa{#1}%
-  \def\tmpb{normal}\def\tmpc{bold}%
-  \ifx\tmpa\tmpb\else\ifx\tmpa\tmpc\else \MTnonlettersobeymathxx
-  \MTexplicitbracesobeymathxx\fi\fi
-\begin{multicols}{2}
-\hbox to\columnwidth{\hbox to\columnwidth{\hfil
-                $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}}
-   \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ }
-   \centerline{ $0123456789$ }
-   \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ }
-   \centerline{ $\mathbf{!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash}$ }
-\columnbreak
-   \centerline{ abcdefghijklmnopqrstuvwxyz }
-   \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ }
-   \centerline{ 0123456789 }
-   \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-   \centerline{\bfseries !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-\end{multicols}}
-\begin{multicols}{2}
-   \centerline{\textbf{math mode}}
-\columnbreak
-   \centerline{ \textbf{text} }
-\end{multicols}
-\TEST{Didot}\TEST{Comic}\TEST{normal}\TEST{Herculanum}
-\TEST{Hoefler}\TEST{Typewriter}\TEST{bold}\TEST{Times}
-\end{document}
-\endinput
-%%
-%% End of file `mathastexttestunicodemacos.tex'.

Modified: trunk/Master/texmf-dist/source/latex/mathastext/mathastext.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/mathastext/mathastext.dtx	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/source/latex/mathastext/mathastext.dtx	2024-07-21 20:20:50 UTC (rev 71863)
@@ -2,8 +2,8 @@
 % N.B.: this dtx file does NOT use \DocInput, it only uses docstrip.
 % The LaTeX source of the documentation is NOT prefixed with %'s.
 %<*dtx>
-\def\dtxtimestamp {Time-stamp: <29-12-2023 at 10:54:52 CET>}
-\def\docdate{2023/12/29}
+\def\dtxtimestamp {Time-stamp: <20-07-2024 at 22:26:18 CEST>}
+\def\docdate{2024/07/20}
 % To extract run etex on this file, then to build documentation run
 % latexmk on mathastext.tex then dvipdfmx on the dvi.
 % For more information see http://jf.burnol.free.fr/v13/INSTALL.txt
@@ -11,8 +11,8 @@
 % due to usage of \xA7 (<A7>) as an active character.
 %</dtx>
 %<*drv>
-\def\MSTpkgdate    {2023/12/29}
-\def\MSTpkgversion {1.3zb}
+\def\MSTpkgdate    {2024/07/20}
+\def\MSTpkgversion {1.4a}
 %</drv>
 %<*dtx>
 \iffalse % meta-comment
@@ -32,9 +32,9 @@
 
 The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`)
 
-Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
+Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
 
-      Source: mathastext.dtx 1.3zb 2023/12/29
+      Source: mathastext.dtx 1.4a 2024/07/20
 
 %</readme>
 %<*dtx>
@@ -44,10 +44,10 @@
 %%----------------------------------------------------------------
 %% Package: mathastext
 %% Info:    Use the text font in math mode (JFB)
-%% Version: 1.3zb 2023/12/29
+%% Version: 1.4a 2024/07/20
 %% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
-%%                                                <jfbu at free dot fr>
+%% Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
+%%                                   <jfbu at free dot fr>
 %% Examples of use of mathastext:
 %%        http://jf.burnol.free.fr/mathastext.html
 %%        http://jf.burnol.free.fr/showcase.html
@@ -95,19 +95,11 @@
 \begingroup
 \input docstrip.tex
 \askforoverwritefalse
-\def\testfilepreamble{\string\def\string\testfileincipit{Test file
-    to accompany \string\texttt{mathastext}^^J%
-    version \string\texttt{\MSTpkgversion} of \string\texttt{\MSTpkgdate}}}
 \generate{\nopreamble\nopostamble
     \file{README.md}{\from{mathastext.dtx}{readme}}
     \file{ChangeLog.md}{\from{mathastext.dtx}{changelog}}
   \usepostamble\defaultpostamble
     \file{mathastext.tex}{\from{mathastext.dtx}{drv}}
-  \usepreamble\testfilepreamble
-    \file{mathastexttestmathversions.tex}{\from{mathastext.dtx}{mathversions}}
-    \file{mathastexttestunicodemacos.tex}{\from{mathastext.dtx}{macos}}
-    \file{mathastexttestunicodelinux.tex}{\from{mathastext.dtx}{linux}}
-    \file{mathastexttestalphabets.tex}{\from{mathastext.dtx}{alphabets}}
   \usepreamble\defaultpreamble
     \file{mathastext.sty}{\from{mathastext.dtx}{package}}%
 }
@@ -120,7 +112,8 @@
 % no file extractions if latex compilation was on mathastext.tex
 \ifdefined\MessageDeFin\AtEndDocument{\MessageDeFin}\fi
 \begingroup\catcode1 0 \catcode`\\ 12 
-% this is to fool TeX's recognition of \if/\else/\fi like tokens in test files
+% This is to fool TeX's recognition of \if/\else/\fi like tokens in test files,
+% but on 2024/07/14 I removed from the dtx four previously included such filss.
 ^^Aiffalse
 %</dtx>
 %<*readme>
@@ -200,6 +193,84 @@
 
 %</changelog>
 %<*readme|changelog>
+1.4a \[2024/07/20\]
+----
+
+* There was a documentation glitch in 1.4 and also a problem with the
+  `\MTprimeskip` feature being lost under the emergency fall-back
+  `everymath` option.
+
+1.4 \[2024/07/20\]
+---
+
+* Since 1.2 of 2012/12/20, mathastext has used mathematically active
+  characters to propose certain advanced functionalities.  For reasons half
+  lost in the mists of time but whose main one was surely to keep the
+  meaning of the active shape of characters unchanged outside of math mode,
+  this mathematical activation, and (in most cases) the definitions of what
+  active characters do, were done again at *each* entrance into math mode.
+  At this 1.4 release, mathastext does not inject *any* code whatsoever into
+  the `\everymath` and `\everydisplay` toks registers anymore (except for
+  one font-related hack needed under LuaLaTeX, see below).  Your documents
+  will compile a tiny bit faster.
+
+* In (unsual) documents where users play with catcodes and mathcodes it is
+  impossible to keep exact backward compatibility, because documented user
+  commands which acted formerly a toggles with delayed action now will enact
+  changes immediately if in the document body.  In practice consequences are
+  expected to be few, because catcode active characters are (as was already
+  the case with earlier releases) hacked only when they are Babel shorthands
+  and they are then modified in a way altering only their action in math
+  mode.  The precise description of what mathastext does when mathematically
+  activating (or not) a character, depending on circumstances, is to be
+  found among small-print comments in the section "Extended scope of the
+  math alphabets commands".  See also the documentation of the
+  `\MTmathactiveletters` command for some specifics regarding ascii letters.
+
+* New option: `everymath`. It instructs mathastext to revert (partially)
+  to its legacy code which uses `\everymath/\everydisplay`.  This reversal
+  is partial, the handling of ascii letters not being included into it.  The
+  `everymath` option is there only to try as a quick fix in case transition
+  to this release causes a major problem in a user document and time is
+  lacking to investigate.  Please report to the author such issues.  Option
+  `everymath` is destined to be removed at next major release.
+
+* New option: `activedigits`.  Enjoy.
+
+* It is now easier to hook into the mathastext architecture for
+  mathematically activated ascii letters.  See the new section "Hacking
+  letters (and even digits) for special tasks".
+
+* Bugfix: do not override special behavior of the math mode dot in
+  babel-spanish.
+
+* Bugfix: A desperate hack related to LuaLaTeX font matters and dating
+  back to 1.3o 2016/05/03 had been for some years in dire need of an update
+  regarding fonts using `Renderer=HarfBuzz`.  This is done now.  Thanks to
+  tex.sx `user691586` for report.  This is currently the sole remaining
+  usage of `\everymath/\everydisplay`.
+
+* Bugfix: an optional feature related to `\{` and `\}` was broken since an
+  upstream LaTeX change at its 2020-02-02 release.
+
+* With option symbolmisc, those math symbol macros formerly defined via
+  `\DeclareRobustCommand` are now declared via `\protected\def`.
+
+* Removal of legacy branches previously kept to support LaTeX earlier than
+  2020-02-02.
+
+* Removal of support for EU1 and EU2 font encodings.
+
+* Option `noasterisk` deprecated at 1.2d 2013/01/02 has (finally) been removed.
+
+* Four test files previously included and auto-extracted from the
+  distributed dtx have been dropped.  One of them is still available
+  on the package homepage.
+
+* Some parts of the documentation have been massively re-ordered and even to some
+  extent improved.  But there may be some occasions where obsolete statements will
+  be found having the legacy `\everymath/\everydisplay` situation as background.
+
 1.3zb \[2023/12/29\]
 -----
 
@@ -251,6 +322,8 @@
 * Fix long-standing hyperlink problems in the documentation:
   blue color words should now all be functioning hyperlinks.
 
+%</readme|changelog>
+%<*changelog>
 1.3z \[2023/09/01\]
 ----
 
@@ -311,8 +384,6 @@
   letters and emitted during math version creation in the
   preamble.
 
-%</readme|changelog>
-%<*changelog>
 1.3w \[2019/11/16\]
 ----
 
@@ -358,7 +429,7 @@
   to some other (robust) math alphabet macros, but were not
   robust in the strict sense. This does cause some issues for
   moving arguments in the context of multiple math versions,
-  hence it was a bug. The special behaviour of the math
+  hence it was a bug. The special behavior of the math
   alphabet commands (they redefine themselves and other macros
   on first use) makes is somewhat problematic for mathastext
   to keep them updated across math versions and at the same
@@ -620,16 +691,14 @@
   redefined as math symbols and could not be used as delimiters.
 
 
-1.3d \[2015/02/26\]
+1.3d \[2014/05/23\]
 ----
 
-* the documentation mentions the improved compatibility of mathastext
+* A 2015/02/26 edit to the documentation mentions the
+  improved compatibility of mathastext
   with the latest (3.34) beamer release: no more need for
   `\usefonttheme{professionalfonts}`.
 
-1.3d \[2014/05/23\]
-----
-
 * new commands `\MTstandardgreek` and `\MTcustomgreek`.
 
 * The Greek letters, in case of use of one of the package related
@@ -760,6 +829,8 @@
       mechanism of letting non-letter symbols obey the math alphabet
       commands.
 
+*  the `noasterisk` option is deprecated and made a no-op.
+
 *  documentation extended and improved.
 
 1.2c \[2012/12/31\]
@@ -904,6 +975,11 @@
       complete manner to adapt the math configuration to fonts
       provided with no math support.
 
+1.13d
+----
+
+*  new macros `\MTstandardgreek` and `\MTcustomgreek`
+
 1.13b
 ----
 
@@ -972,502 +1048,6 @@
 %%% mode: latex
 %%% End:
 %</drv>
-%<*mathversions>
-%% This file `mathastexttestversions.tex' is for testing the enhanced
-%% concept of math versions provided by the package `mathastext'.
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[T1]{fontenc}
-\usepackage{newcent}
-\usepackage[subdued]{mathastext}
-\Mathastext[newcent]
-\renewcommand\familydefault\ttdefault
-\Mathastext[courier]
-\renewcommand\familydefault\sfdefault
-\Mathastext[avantgarde]
-\renewcommand\familydefault\rmdefault
-\begin{document}
-\testfileincipit
-
-text in NewCentury and $math\ as\ in\ default$,%
-\MTversion{courier} text in Courier and $math\ in\ Courier$,%
-\MTversion{avantgarde} text in AvantGarde and $math\ in\ AvantGarde$,%
-\MTversion[newcent]{courier} text in NewCentury and $math\ in\
-Courier$,\MTversion{bold} text in bold NewCentury and $math\ as\ in\
-bold\ default$,\MTversion[courier]{avantgarde} text in Courier and
-$math\ in\ AvantGarde$. 
-\end{document}
-%</mathversions>
-%<*macos>
-%% This file `mathastexttestunicodemacos.tex' is for testing the use 
-%% of the package `mathastext' with the unicode engines XeTeX or LuaLaTeX.
-%%
-%% Mac OS X specific fonts are used (initially tested on 10.8.2).
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[hscale=0.85]{geometry}
-\usepackage{multicol}
-\usepackage[no-math]{fontspec}
-\usepackage{lmodern}
-\usepackage{metalogo}
-\usepackage{iftex}
-\ifXeTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \XeLaTeX)}
-\else
-\ifLuaTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \LuaLaTeX)}
-\fi\fi
-\usepackage[subdued,italic,asterisk]{mathastext}
-\setmainfont[Color=FF0000]{Hoefler Text}  \Mathastext[Hoefler]
-\setmainfont[Color=336633]{American Typewriter}\Mathastext[Typewriter]
-\setmainfont[Color=0000FF]{Herculanum}    \Mathastext[Herculanum]
-\setmainfont[Color=FF00FF]{Didot}         \Mathastext[Didot]
-\setmainfont[Color=999999]{Comic Sans MS} \Mathastext[Comic]
-\MTDeclareVersion{Times}{T1}{ptm}{m}{n}
-\begin{document}
-\MTversion{normal}
-\testfileincipit
-
-This test uses \verb|mathastext| with its \emph{italic}, \emph{asterisk}, and
-\emph{subdued} options. The base document fonts are the Latin Modern ones (in
-OpenType format). The other OpenType fonts were chosen from those available on
-a Mac OS machine. We also used the Times font in traditional \TeX\ font T1
-encoding, to demonstrate the removal since release \texttt{1.3u} of a former
-limitation that all math versions had to share the same font encoding, else
-some characters such as the dotless \texttt{i} ($\imath$), or the minus sign
-could well vanish from the output in the non-normal math versions.
-
-Furthermore we test (last line of each block, on the left) if the non-letter
-characters obey the math alphabet \verb|\mathbf|. In the normal and bold math
-versions, this feature is de-activated, as option \emph{subdued} was used; and
-if activated we should then use in these math versions the package
-\verb|\Mathbf| rather than \verb|\mathbf| which is there still the original
-one, which will use encoding \verb|OT1| in the normal and bold versions, as we
-loaded \verb|fontspec| with its option \emph{no-math}.
-
-Some among the fonts tested have no bold variant or no italic variant.
-
-Note (tested 2013/09/03): for some reason the \verb|Color| specifications in the
-\verb|\setmainfont| commands work only
-with \XeLaTeX{}, not with \LuaLaTeX{}; a few months back I had not noticed
-such a difference between the two engines.
-
-Update (tested 2016/01/15 with reasonably up-to-date TL2015): \verb|Color|
-spec in use of \verb|\setmainfont| command now functional again with
-\LuaLaTeX.
-
-Note (tested 2019/08/11, reasonably up-to-date TL2019): spacing with the Didot
-font differs widely between \XeLaTeX\ and \LuaLaTeX{} (perhaps related to
-italic corrections, see the package documentation), and also it seems
-\LuaLaTeX{} will not find (from our generic usage of the \verb|fontspec|
-interface, at least) bold variants of the Hoefler Text and American Typewriter
-fonts, contrarily to \XeLaTeX. Also, the \emph{italic} option remains
-seemingly without effect with \LuaLaTeX{} in the case of the Hoefler Text font
-(see the package source code comments on some problems with the two ``modes''
-for text fonts under \LuaLaTeX, which may be related with this specific issue
-here).
-
-Update (tested 2022/10/29, with 1.3x and up-to-date TL2022): it appears that
-most, perhaps even all, of the remarks in the preceding note are now obsolete
-as I do not see obvious differences between outputs from \XeLaTeX{} versus
-\LuaLaTeX{} but I did not seriously compare, only quickly done.
-
-\newcommand\TEST[1]{\MTversion{#1}\def\tmpa{#1}%
-  \def\tmpb{normal}\def\tmpc{bold}%
-  \ifx\tmpa\tmpb\else\ifx\tmpa\tmpc\else \MTnonlettersobeymathxx
-  \MTexplicitbracesobeymathxx\fi\fi
-\begin{multicols}{2}
-\hbox to\columnwidth{\hbox to\columnwidth{\hfil
-                $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}}
-   \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ }
-   \centerline{ $0123456789$ }
-   \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ }
-   \centerline{ $\mathbf{!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash}$ }
-\columnbreak
-   \centerline{ abcdefghijklmnopqrstuvwxyz }
-   \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ }
-   \centerline{ 0123456789 }
-   \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-   \centerline{\bfseries !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-\end{multicols}}
-\begin{multicols}{2} 
-   \centerline{\textbf{math mode}} 
-\columnbreak
-   \centerline{ \textbf{text} }
-\end{multicols}
-\TEST{Didot}\TEST{Comic}\TEST{normal}\TEST{Herculanum}
-\TEST{Hoefler}\TEST{Typewriter}\TEST{bold}\TEST{Times}
-\end{document}
-%</macos>
-%<*linux>
-%% This file `mathastexttestunicodelinux.tex' is for testing the use 
-%% of the package `mathastext' with the unicode engines XeTeX or LuaLaTeX.
-%%
-%% Fonts which were available on a Linux machine are used. Beware that
-%% compilation with LuaLaTeX will abort with errors if specified fonts do not
-%% exist on your system.
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[hscale=0.8]{geometry}
-\usepackage{multicol}
-\usepackage[no-math]{fontspec}
-\usepackage{lmodern}
-\usepackage{metalogo}
-\usepackage{iftex}
-\ifXeTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \XeLaTeX)}
-\else
-\ifLuaTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \LuaLaTeX)}
-\fi\fi
-\usepackage[subdued,italic,asterisk]{mathastext}
-\setmainfont[Color=999999]{Verdana}      \Mathastext[Verdana]
-\setmainfont[Color=0000FF]{Arial}        \Mathastext[Arial]
-\setmainfont[Color=00C000]{DejaVu Serif} \Mathastext[DejaVu]
-\setmainfont[Color=FF0000]{Andale Mono}  \Mathastext[Andale]
-%% commented out as these fonts do not exist anymore on the Linux box
-%% I have access to (test last done 2016/01/15)
-%%\setmainfont[Color=C000C0]{URW Chancery L}    \Mathastext[Chancery]
-%%\setmainfont[Color=800080]{URW Palladio L}    \Mathastext[Palladio]
-\setmainfont[Color=808000]{Liberation Serif}  \Mathastext[Liberation]
-\MTDeclareVersion{Times}{T1}{ptm}{m}{n}
-\begin{document}
-\MTversion{normal}
-\testfileincipit
-
-This test uses \verb|mathastext| with its \emph{italic}, \emph{asterisk}, and
-\emph{subdued} options. The base document fonts are the Latin Modern ones (in
-OpenType format). The other OpenType fonts were chosen from those available on
-a Linux machine. We also used the Times font in traditional \TeX\ font T1
-encoding, to demonstrate the removal since release \texttt{1.3u} of a former
-limitation that all math versions had to share the same font encoding, else
-some characters such as the dotless \texttt{i} ($\imath$), or the minus sign
-could well vanish from the output in the non-normal math versions.
-
-Furthermore we test (last line of each block, on the left) if the non-letter
-characters obey the math alphabet \verb|\mathbf|. In the normal and bold math
-versions, this feature is de-activated, as option \emph{subdued} was used; and
-if activated we should then use in these math versions the package
-\verb|\Mathbf| rather than \verb|\mathbf| which is there still the original
-one, which will use encoding \verb|OT1| in the normal and bold versions, as we
-loaded \verb|fontspec| with its option \emph{no-math}.
-
-Some among the fonts tested have no bold variant or no italic variant.
-
-Note: the two unicode engines \XeLaTeX\ and \LuaLaTeX\ give likely not fully
-identical results particularly for the math mode. At least this is what I
-observed regularly over the years with the variant of this file prepared for
-fonts available on Mac OS, which is my main system where I develop
-|\mathastext|. Lastly for example (TL2019, august 2019), \LuaLaTeX\ could not
-find the bold variant of some system font, but \XeLaTeX\ did. And the spacing
-for the letters of the Didot font was vastly different between the two
-engines.
-
-\newcommand\TEST[1]{\MTversion{#1}\def\tmpa{#1}%
-  \def\tmpb{normal}\def\tmpc{bold}%
-  \ifx\tmpa\tmpb\else\ifx\tmpa\tmpc\else \MTnonlettersobeymathxx
-  \MTexplicitbracesobeymathxx\fi\fi
-\begin{multicols}{2}
-\hbox to\columnwidth{\hbox to\columnwidth{\hfil
-                $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}}
-   \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ }
-   \centerline{ $0123456789$ }
-   \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ }
-   \centerline{ $\mathbf{!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash}$ }
-\columnbreak
-   \centerline{ abcdefghijklmnopqrstuvwxyz }
-   \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ }
-   \centerline{ 0123456789}
-   \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-   \centerline{\bfseries !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-\end{multicols}}
-\begin{multicols}{2} 
-   \centerline{\textbf{math mode}} 
-\columnbreak
-   \centerline{ \textbf{text} }
-\end{multicols}
-\TEST{DejaVu}
-\TEST{Verdana}
-\TEST{Andale}
-%%\TEST{Palladio}
-\TEST{Arial}
-%%\TEST{Chancery}
-\TEST{Liberation}
-\TEST{bold}\TEST{normal}\TEST{Times}
-\end{document}
-%</linux>
-%<*alphabets>
-%% This file `mathastexttestalphabets.tex' is for testing the extended
-%% scope of the math alphabet commands with package `mathastext', via
-%% the package command \MTnonlettersobeymathxx.
-%%
-%% Compile either with latex, pdflatex, lualatex (pdf output) or xelatex.
-%%
-%% See `mathastext.dtx' for the copyright and conditions of distribution or
-%% modification.
-%%
-\documentclass{article}
-\usepackage[hscale=0.66, vscale=0.72]{geometry}
-\usepackage{amsmath}
-\usepackage{mathtools}\mathtoolsset{centercolon}
-%% WARNING THIS IS INCOMPATIBLE WITH BABEL+FRENCHB
-%% BUT WITH MATHASTEXT LOADED THIS IS CORRECTED
-%% *IF* \MTnonlettersobeymathxx IS MADE USE OF.
-\usepackage{iftex}
-\ifXeTeX
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \XeLaTeX)}
-\usepackage[no-math]{fontspec}
-\setmainfont[ExternalLocation,
-             Mapping=tex-text,
-             BoldFont=texgyretermes-bold,
-             ItalicFont=texgyretermes-italic,
-             BoldItalicFont=texgyretermes-bolditalic]{texgyretermes-regular}
-\setmonofont[ExternalLocation,
-             Mapping=tex-text]{texgyrecursor-regular}
-\setsansfont[ExternalLocation,
-             Mapping=tex-text]{texgyreheros-regular}
-\else
-\ifLuaTeX % for pdf output
-\expandafter\def\expandafter\testfileincipit\expandafter
- {\testfileincipit\ (compiled with \LuaLaTeX)}
-\usepackage[no-math]{fontspec}
-\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
-\setmonofont[Ligatures=TeX]{TeX Gyre Cursor}
-\setsansfont[Ligatures=TeX]{TeX Gyre Heros}
-\else
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage{tgtermes}
-\usepackage{tgcursor}
-\usepackage{tgheros}
-\fi\fi
-\usepackage{metalogo} % must be loaded /after/ [no-math]fontspec
-\usepackage[french]{babel}
-\usepackage[italic,asterisk]{mathastext}
-\MTlettershape{n}\Mathastext[upright]
-\MTnonlettersobeymathxx
-\MTexplicitbracesobeymathxx
-\delimitershortfall-1pt
-\usepackage{color}
-\begin{document}
-\testfileincipit
-
-\begin{center}
-  \bfseries Two features of \texttt{mathastext}:\\
-extended scope of the math alphabets and added italic corrections\par
-\end{center}
-
-The package makes
-${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}\,{\{}\,{\}}$,
-the asterisk $*$, and $.\,/\,\vert\,\backslash\,{\#}\,{\$}\,{\%}\,{\&}$ obey the
-math alphabet commands (this is the maximal list, some characters may have been
-excluded by the corresponding package options). For the characters listed first
-the mechanism involves a `mathematical activation'.
-
-As this process may create incompatibilities, it will be put into action
-for
-${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}$
-only if the user makes use of the package command
-\verb|\MTnonlettersobeymathxx| (and the braces necessitate
-\verb|\MTexplicitbracesobeymathxx|).
-
-It could be that one such character has been made `active' in the entire
-document by some other package, typically a language definition file for the
-\verb|babel| system. Here for example we have used \verb|babel| with the
-\verb|french| option, which makes the high punctuation characters !?:; active
-throughout the document (extra spacing is put in front of the character when
-used in text; no change in math but perhaps for other languages and characters
-this could happen, it is up to the language definition file to decide).
-
-When \verb|mathastext| detects that a character it wants to `mathematically
-activate' is already `active', it does not go further except if it seems that
-the activation was done by Babel. If the activation was done by Babel, then
-\verb|mathastext| replaces the expansion of the active character in math mode by
-what is necessary to achieve its goal. It does not additionally mathematically
-activate the character; rather it makes sure that the character is \emph{not}
-mathematically active. In the present document the colon was made mathematically
-active by \verb|mathtools| but this was already canceled in the preamble by
-\verb|mathastext| as it was loaded later. And it is better so, because the
-combination \verb|babel| (with option \verb|frenchb|) +\verb|mathtools| (with
-\verb|centercolon|) makes \verb|$:$| create an infinite loop!
-
-But even if someone had mathematically activated the colon after the preamble,
-or after the loading of \verb|mathastext|, this would be canceled again
-automatically for each inline or displayed mathematical formula (if the user
-does \verb|\MTnonlettersobeymathxx|).
-
-The conclusion with \verb|\MTnonlettersobeymathxx| is: if some package has tried
-to make the character mathematically active, this will be overruled by
-\verb|mathastext|; if some package has made the character globally active, then
-the package wins except if it is Babel, as \verb|mathastext| may in the latter
-case safely modify the action in math mode (paying attention to the fact that
-the character should be usable in \verb|\label| and \verb|\ref| in and outside
-of math mode). 
-
-The displayed equations next illustrate the extended scope of the math alphabets
-which now apply to $=$, $-$, $($, $)$, $[$, $]$ (but not to the large delimiters
-of course). Furthermore, for testing purposes the equations were labeled using
-such characters, for example the last one has label \verb|eq=7|, to check that
-the mathematical activation of $=$ does not cause problems with
-\verb|\label/\ref|. 
-
-\def\testformula{\quad\Biggl\lbrace\biggl(\left(\left[[\sin(a) + \cos(b) - \log(c) = 
-\sec(d)]\right]\right)\biggr)\Biggr\rbrace}
-\begin{equation}\testformula\label{eq:1}\end{equation}
-\begin{equation}\mathnormalbold{mathnormalbold:\testformula}\label{eq;2}\end{equation}
-\begin{equation}\mathrm{mathrm:\testformula}\label{eq?3}\end{equation}
-\begin{equation}\mathbf{mathbf:\testformula}\label{eq!4}\end{equation}
-\begin{equation}\mathit{mathit:\testformula}\label{eq(5}\end{equation}
-\begin{equation}\mathtt{mathtt:\testformula}\label{eq)6}\end{equation}
-\begin{equation}\mathsf{mathsf:\testformula}\label{eq=7}\end{equation}
-
-Equations above are numbered \ref{eq:1}, \ref{eq;2}, \ref{eq?3}, \ref{eq!4}, and
-$\ref{eq(5}$, $\ref{eq)6}$, and $\ref{eq=7}$.
-
-\def\testline#1{$#1$&$\mathnormalbold{#1}$&$\mathrm{#1}$&$\mathbf{#1}$&$\mathit{#1}$&$\mathtt{#1}$&$\mathsf{#1}$}
-
-\centerline{\begin{tabular}{ccccccc}
-\testline{a!b}\\
-\testline{a?b}\\
-\testline{a,b}\\
-\testline{a;b}\\
-\testline{a:b}\\
-\testline{a:=b}\\
-\testline{a\vcentcolon= b}\\
-\testline{a\colon b}\\
-\testline{a.b}\\
-\testline{a-b}\\
-\testline{a+b}\\
-\testline{a=b}\\
-\testline{a<b}\\
-\testline{a>b}\\
-\testline{<x,y>}\\
-\testline{\mathopen{<} x,y\mathclose{>}}\\
-\testline{\left< x,y\right>}\\
-\testline{a/b}\\
-\testline{a\backslash b}\\
-\testline{a\setminus b}\\
-\testline{a|b}\\
-\testline{a\mid b}\\
-\testline{(a,b)}\\
-\testline{[a,b]}\\
-\testline{\{a,b\}}
-\end{tabular}}
-
-The question mark has been made active by \verb|babel+frenchb|. 
-\verb|mathastext| has imposed in math mode its ways (now \verb|$\mathbf{???}$|
-gives $\mathbf{???}$). As the extra spacing is added by \verb|frenchb| only in
-text, we had to use the math alphabet to check that indeed \verb|mathastext|
-overruled Babel. 
-
-To double-check we will now make \string? mathematically active:
-\verb|\mathcode`?="8000|\mathcode`?="8000. This is a sure cause for disaster
-normally with Babel (don't do this at home without \verb|mathastext|!). But here
-with \verb|$?$| no bad surprise (infinite loop!) awaits us: just $?$.
-
-Let's take some other character, for example the opening parenthesis, and make
-it catcode active:
-\verb|\catcode`(=\active \def ({X}|. 
-Let's try the input 
-\verb|( and $($|.
-\begingroup
-\catcode`(=\active \gdef ({X} 
-This gives ( and $($. We see that \verb|mathastext| does not attempt to modify
-the definition of the active character, as this activation was not done via the
-\verb|babel| services. \catcode`\(=12 \mathcode`(="8000 We now revert the
-parenthesis to catcode other (but maintain \verb|\def ({X}| as definition of its
-active version), and then make it mathematically active using the command
-\verb|\mathcode`(="8000|. If we try \verb|$((($| we see that the parenthesis is
-not converted into an $X$: $((($. The mathematically active character was
-overruled by \verb|mathastext|.
-
-Issuing \verb|\MTnonlettersdonotobeymathxx|\MTnonlettersdonotobeymathxx\ we do
-get the $X$'s from the input \verb|$((($|: $((($ 
-\endgroup 
-This shows that \verb|mathastext| now does not modify in math mode the
-non-letter \verb|(|.
-
-\MTversion{upright}\MTnonlettersobeymathxx
-We defined in the preamble of the document a \verb|mathastext|-enhanced
-math version (named \verb|upright|) having the Latin letters upright in
-math mode. Let's switch to
-it: \newline
-\hbox to\linewidth{\hss\verb|\MTversion{upright}|\hss}
-
-With a font which is neither italic nor slanted, \verb|mathastext| automatically
-inserts italic corrections for better positioning of the subscript:
-\verb|$f_i^i$| gives
-$f_i^i$.
-After \verb|\MTnoicinmath| which turns off this feature\MTnoicinmath{}, the same
-input gives $f_i^i$, which is different. 
-\footnote{last time I tried, this only worked with PDF\LaTeX{}, not with
-  \LuaLaTeX{} or \XeTeX{}.}
-
-Again with italic corrections on (\verb|\MTicinmath|)\MTicinmath{} 
-\verb|$f_{abc}^{def}$| gives $f_{abc}^{def}$, and here is another one:
-$f^{f_{abc}^{def}}_u$. Without italic corrections\MTnoicinmath: $f_{abc}^{def}$,
-and respectively $f^{f_{abc}^{def}}_u$.
-
-\MTicinmath 
-
-\verb|mathastext| does not add these italic corrections inside arguments of
-math alphabets, as this would prevent the formation of ligatures:
-$\mathnormal{ff}$, $\mathrm{ff}$, $\mathit{ff}$, $\mathbf{ff}$, $\mathtt{ff}$
-(no ligature in teletype) and $\mathsf{ff}$.\footnote{\llap{\textcolor{magenta}{\bfseries Changed!\kern3em}}Prior to 1.3i,
-  italic corrections were added to the \string\mathnormal\ arguments.}
-
-\centerline{\begin{tabular}{ccccccc}
-\testline{a!b}\\
-\testline{a?b}\\
-\testline{a,b}\\
-\testline{a;b}\\
-\testline{a:b}\\
-\testline{a:=b}\\
-\testline{a\vcentcolon= b}\\
-\testline{a\colon b}\\
-\testline{a.b}\\
-\testline{a-b}\\
-\testline{a+b}\\
-\testline{a=b}\\
-\testline{a<b}\\
-\testline{a>b}\\
-\testline{<x,y>}\\
-\testline{\mathopen{<} x,y\mathclose{>}}\\
-\testline{\left< x,y\right>}\\
-\testline{a/b}\\
-\testline{a\backslash b}\\
-\testline{a\setminus b}\\
-\testline{a|b}\\
-\testline{a\mid b}\\
-\testline{(a,b)}\\
-\testline{[a,b]}\\
-\testline{\{a,b\}}
-\end{tabular}}
-
-\end{document}
-%</alphabets>
 %<*dtx>
 ^^Afi^^Aendgroup % end of big \iffalse block including generated files
 % Removal of the *sfixed found in tex/latex/mlmodern/omxmlmex.fd
@@ -1523,7 +1103,7 @@
 \def\cmd#1{\cs{\expandafter\cmd at to@cs\string#1}}
 \def\cmd at to@cs#1#2{\char\number`#2\relax}
 % Here I am loading doc=v2 but formerly I was using ltxdoc via scrdoc
-% which I dropped at release 1.4l (2022-05-29) and without much
+% which I dropped at (etoc) release 1.4l (2022-05-29) and without much
 % thinking I had kept this.
 \DeclareRobustCommand\cs[1]{\texttt{\bslash#1}}
 % As I may have the * active, or macro names with _ or ^, I should
@@ -1552,12 +1132,19 @@
 % is set by geometry package and a4paper option from xint.tex file.  So it
 % seems I only need the hologo loading:
 \usepackage{hologo}
-\DeclareRobustCommand*{\eTeX}{\hologo{eTeX}}%
-\DeclareRobustCommand*{\pdfLaTeX}{\hologo{pdfLaTeX}}%
-\DeclareRobustCommand*{\LuaTeX}{\hologo{LuaTeX}}%
-\DeclareRobustCommand*{\LuaLaTeX}{\hologo{LuaLaTeX}}%
-\DeclareRobustCommand*{\XeTeX}{\hologo{XeTeX}}%
-\DeclareRobustCommand*{\XeLaTeX}{\hologo{XeLaTeX}}%
+% 1.4 fix to some extra line spacing obviously caused by usage of the
+% \hologo macro.
+% I opened  https://github.com/ho-tex/hologo/issues/9
+% after testing, actually only XeTeX and XeLaTeX are problematic
+% update: as per @u-fischer the problem goes away if graphicx package
+% is loaded, but we don't use it in this document...
+\def\msthologo#1{\smash{\hologo{#1}}}
+\DeclareRobustCommand*{\eTeX}{\msthologo{eTeX}}%
+\DeclareRobustCommand*{\pdfLaTeX}{\msthologo{pdfLaTeX}}%
+\DeclareRobustCommand*{\LuaTeX}{\msthologo{LuaTeX}}%
+\DeclareRobustCommand*{\LuaLaTeX}{\msthologo{LuaLaTeX}}%
+\DeclareRobustCommand*{\XeTeX}{\msthologo{XeTeX}}%
+\DeclareRobustCommand*{\XeLaTeX}{\msthologo{XeLaTeX}}%
 %
 \makeatother
 %%% end of ltxdoc+srcdoc emulation from June 2022 xint.dtx,
@@ -1669,7 +1256,8 @@
             asterisk,%
             defaultmathsizes,%
             symbolmisc,symbolre,%
-            LGRgreek+]{mathastext}
+            LGRgreek+,
+            activedigits]{mathastext}
 \let\symbolbullet\bullet
 \let\bullet\originalbullet
 % This version will use the mlmodern font which is current
@@ -1790,15 +1378,15 @@
 \def\tt {\normalfont\ttfamily}
 % mais bon, en fait je ne les utilise pas.
 
-% 2023/12/27 pas encore
-% \newcommand\mstrelease[1]{\hyperlink{v#1}{\texttt{#1}}}
-
 % 2023/12/27
 \DeclareRobustCommand\ctanpkg[1]
       {\texorpdfstring{\href{https://ctan.org/pkg/#1}{#1}}{#1}}
 
-% bataille avec le rendu de l'entr\xE9e 1.3zb du change log
-% \hyphenation{ncc-comma}
+% 2024/07/10
+% Attention que si la cible n'existe pas il n'y a AUCUN warning
+% dans le log...
+\newcommand\mstrelease[1]{\hyperlink{#1}{\texttt{#1}}}
+
 \begin{document}
 % \makeatletter\show\mv at normal\makeatother
 % contient
@@ -1924,10 +1512,6 @@
 \end{verbatim}
 The package records which font is set up for text, at the time it is
 loaded,
-%\footnote{alternatively it is possible to configure the text font after
-  % loading \mst, and then the command \cs{Mathastext} will accomplish the
-  % necessary changes to the font for letters, digits and a few extra ascii
-  % symbols in math mode.}
 and
 then arranges things in order for this text font to be used in math mode as
 well. So, with the preamble as above
@@ -1955,294 +1539,7 @@
 As one can see, this is a very limited list! Some possibilities exist
 regarding Greek letters and will be described later. 
 
-\subsection{Miscellanea}
 
-Please note that most of this section was written many years ago (except for
-the item about math alphabets which was enriched with important background
-information and moved upfront at |1.3zb|).  But it should still be valid!
-%
-\begin{description}
-
-\item[math alphabets:] Let us first recall fundamental facts of life, in the
-  world of traditional PDF\TeX\ engine and \TeX\ fonts, as background for
-  understanding what \mst does in this context, which will be explained next.
-  People familiar with using Unicode engines and \ctanpkg{unicode-math}, please be
-  aware that the semantics there of the \LaTeX\ math alphabet commands are
-  \textbf{significantly} modified!
-\begin{snugshade}
-\begin{itemize}
-\item In the default \LaTeX\ set-up all five of \xA7\mathrm\xA7, \xA7\mathbf\xA7,
-  \xA7\mathit\xA7, \xA7\mathsf\xA7 and \xA7\mathtt\xA7 tell \TeX\ to use for their arguments
-  specific \texttt{OT1}-encoded fonts,
-\item if the document body uses, as will be the case probably with any
-  language other than English or its variants, some other encoding such as
-  \texttt{T1} for its fonts, there is no change whatsoever to the math
-  configuration, indeed most font packages ignore it completely,
-\item it is thus a priori wrong to think of these commands as switching to
-  some body text font, although letters within their scopes will act as in a
-  text font, and in particular obey ligatures (this also applies to operator
-  names defined by |amsmath|'s \cs{DeclareMathOperator} which are, with some
-  extras not mentioned here, as using \xA7\mathrm\xA7),
-\item these commands are completely different in spirit from the \LaTeX\
-  \cs{textrm}, \cs{textbf}, and others, which change only some font axis;
-  indeed the math alphabet commands inherit from legacy Knuth's \cs{rm},
-  \cs{bf}, and others which are complete font specifiers,
-\item in particular when nesting, it is the inner-most which wins,
-\item only mathematical characters (such as letters) which are declared to
-  \TeX\ as being of ``variable family type'' react to being in the argument of
-  a math alphabet command,
-\item lowercase Greek letters are by default in \LaTeX\ immune to math
-  alphabets (so \verb|\mathrm{\pi}| induces no change in output), but the
-  eleven uppercase Greek letters are of ``variable family type'' because they
-  are picked in the \texttt{OT1}-encoded font also used for operator names
-  (the one to which \xA7\mathrm\xA7 maps), \emph{and they occupy the exact same
-    slots in the \emph{\texttt{OML}}-encoding to which} \xA7\mathnormal\xA7 maps! So
-  in default \TeX, \verb|\mathnormal{\Gamma}| gives a slanted one. The slots
-  occupied in \texttt{OML}-encoding by the lowercase Greek letters (to which
-  encoding they are a priori assigned) give
-  completely unrelated glyphs in the \texttt{OT1}-encoding, so it makes sense
-  that the default \LaTeX\ declares them to not react to math alphabets.
-  Notice though, that if \LaTeX\ had declared a \cs{mathnormalbold}, mapping
-  to a bold \texttt{OML}-encoded font, it would have made sense to also have
-  \cs{alpha}, \cs{beta}, etc... be of ``variable family type'',
-\item but of course then one should a priori never use |\mathbf{\pi}| for
-  example, because the default \xA7\mathbf\xA7 selects an \texttt{OT1}-encoded
-  font, where there is no pi glyph whatsoever and in particular not at the slot of
-  pi in the \texttt{OML} encoding (slot number 25)!
-\end{itemize}
-\end{snugshade}
-Please keep all the above in mind when trying to understand what \mst does
-with math alphabets.  The most significant point described next naturally is that
-\mst will sync \xA7\mathnormal\xA7, \xA7\mathrm\xA7, \xA7\mathbf\xA7, \xA7\mathit\xA7, \xA7\mathsf\xA7 and
-\xA7\mathtt\xA7 to map to the \mst-ified body text fonts.
-  \begin{itemize}
-  \item \xA7\mathnormal\xA7, \xA7\mathrm\xA7, \xA7\mathbf\xA7, \xA7\mathit\xA7,
-    \xA7\mathsf\xA7 and \xA7\mathtt\xA7 are modified to use the \mst-ified
-    text fonts; this can be disabled via \xA7defaultalphabets\xA7 and
-    related individual options, but the package always provides
-    \xA7\Mathnormal\xA7, \xA7\Mathrm\xA7, etc..., to match the \mst font
-    configuration (\RLNote{changed:}{1.3za}prior to |1.3za|
-    \xA7defaultalphabets\xA7 and related options also caused the \mst
-    alphabet commands not to be defined).  Recall that there may
-    arise a ``too many math alphabets'' error if too many of these
-    commands are \emph{used} in the document: 
-    \emph{declaring} them is not by itself the cause of the error.  See the
-    \LaTeX\ news entry of its \texttt{2021-11-15} release for
-    the counter \texttt{localmathalphabets} (with default value 2)
-    which can be now be used if one hits such a difficulty.
-  \item We define a new math alphabet command
-    \xA7\mathnormalbold\xA7 which gives direct access to
-    the bold version of the \xA7\mathnormal\xA7 alphabet
-    (rather than using either the \cs{bm} command from
-    the \ctanpkg{bm} package or the \cs{boldsymbol} command
-    from the \ctanpkg{amsbsy} package). As it does not
-    exist in the default \LaTeX{} math font set-up, this
-    alphabet is \emph{not} subjected to the {subdued option} action.
-
-\item version \RightNote{1.2}|1.2| of \mst has extended the scope of the math
-  alphabets to apply to non-alphabetical characters and to
-  operator names. This respects the automatic white spaces
-  added by \TeX{} around math symbols.
-\item The\RightNote{1.3i}
-  extra skips around letters (see \autoref{sec:mathskips} and
-  \autoref{sec:ic}) are removed in the scope of the math alphabets.
-
-  \item Depending on options, further math alphabet commands
-    are defined by the package: \xA7\MathEulerBold\xA7,
-    \xA7\MathEuler\xA7, \xA7\MathPSymbol\xA7, and since |1.3x| under
-    the \xA7LGRgreek\xA7 family of options\RightNote{1.3x} also
-    \xA7\mathgreekup\xA7 and \xA7\mathgreekit\xA7.  See
-    \autoref{sec:newgreek}.
-  \item \RightNote{1.3za}Addition of \xA7\mathgreekupbold\xA7 and
-    \xA7\mathgreekitbold\xA7 under the \xA7LGRgreek\xA7 family of options. 
-  \item With\RightNote{1.3za} the \xA7LGRgreek+\xA7 option
-    which enhances Greek letters with a specific behavior when in the
-    arguments of the \xA7\mathrm\xA7, \xA7\mathbf\xA7, etc..., math alphabet
-    commands, this special behavior is not triggered by the \xA7\Mathrm\xA7,
-    \xA7\Mathbf\xA7, et al., which are genuine unmodifed math alphabet commands.  See
-    \autoref{sec:newgreekplus}.
-  \end{itemize}
-
-\item[the en-dash as minus sign:] very often the -
-  character from the text font does not give a good
-  minus sign. So by default, the package uses the
-  en-dash sign \textendash{}. Use \xA7noendash\xA7 to
-  deactivate it. Starting with version |1.12| of the
-  package this `en-dash as minus' should work in all
-  encodings, including Unicode (if \ctanpkg{fontspec} has been
-  loaded); see also |unicodeminus| for OpenType fonts.
-
-\item[amsmath:] \strut the behaviour of the
-  \cs{DeclareMathOperator}\RightNote{1.3n} command
-  of |amsmath| is modified by \mst for it to use the correct font.
-  Additionally, release |1.3n| of \mst at long last also handles an extra
-  operation done by |amsmath| for |'.:/-*| to be used in operator names
-  without the extra math spacing.%
-%
-\footnote{To the experts: there is a long story here that \cs{newmcodes@}
-  hardcodes the font, that it was not compatible with Unicode engines, that
-  during some time (2013-2016) \texttt{lualatex-math} fixed that and very
-  recently |amsopn.sty 2016/03/08 v2.02| also, so now \texttt{lualatex-math
-    1.6} does nothing as it is already fixed ``upstream'' in |amsopn.sty|, but
-  anyhow in both cases, this still hardcoded the font, so finally \mst does
-  the right thing from its point of view. See the code comments for more,
-  there is an issue here with \LuaLaTeX\ not applying the curly right quote
-  contrarily to \XeLaTeX.}
-%
-This customization is suppressed in \xA7subdued\xA7 mode for the |normal| and |bold|
-math versions.
-
-\item[hbar:] the default \LaTeX\ definition of \xA7\hbar\xA7 would in our context
-  make use of the |h| of the current math font (so for us, it is also the text
-  font, perhaps in italic shape), but with a bar accross the |h| from the
-  original default math font for letters (usually |cmmi|). We redefine
-  \cs{hbar} to use the text font macron accent (|\=|) as a mock math accent
-  (this takes into account the \xA7italic\xA7 option and is compatible with
-  subscripts and superscripts).
-
-  Since |1.12| \mst when dealing with a Unicode font sets the \cs{hbar}
-  to be the character from the font having hexadecimal codepoint |U+0127|.
-
-  Since |1.3u| the general 8bits font encoding is
-  supported\RightNote{1.3u} (see discussion of the |mathaccents| option
-  at end of this list for the shared limitations). Brief testing with
-  various usual \TeX\ fonts shows that the vertical positioning of
-  the bar isn't satisfying. It is planned to either add a parameter to
-  adjust it or to modify altogether the mode of construction of the |\hbar|.
-
-  Use \xA7nohbar\xA7 to tell \mst not do provide its own |\hbar|.
-
-
-\item[dotless i and j:] by default the package redefines \cs{imath} and
-  \cs{jmath} to give (in math mode) the dotless i and j (if it exists at
-  all) from the text font.%
-%
-\footnote{\RightNote{1.3t}Since \texttt{1.12} it also redefined \cs{i} and
-  \cs{j} for usability both in text and math modes, but this has been
-  dropped at \texttt{1.3t}. Breaking change!}
-
-\item[asterisk:] versions of \mst earlier than |1.2d [2013/01/02]|
-  did not do anything
-  with the \cs{ast} control sequence but did pick the asterisk
-  $*$ in the document text font, and this often was a rather
-  silly thing as the text asterisk is generally in a raised
-  position. Furthermore, the $*$ lost its status of a binary
-  operator and was treated as an `ordinary' symbol. An option
-  |noasterisk| turned this feature off. Starting with |1.2d|,
-  the |noasterisk| option is deprecated and the new default is
-  to do nothing. But when option \xA7asterisk\xA7 is received by the
-  package, then both \cs{ast} and $*$ are simultaneously
-  modified to use (as binary operators) the text asterisk,
-  slightly lowered. The amount of lowering\footnote{with the
-    option \texttt{symbolmisc}, the asterisk is picked from
-    the Symbol font, and the amount of lowering is
-    non-customizable; however if a math alphabet command is
-    used, the asterisk is then again from a text font and the
-    lowering will be as specified by \cs{MTlowerast}.} is
-  decided by the mandatory argument to the command
-  \csb{MTlowerast}\marg{dimen}. The package initially does
-  \cs{MTlowerast}|{.3\height}|. Doing \cs{MTlowerast}|{.5ex}| is
-  not a good idea as it does not scale properly in the script
-  and scriptscript styles. With an argument given as a
-  multiple of |\height|, the asterisk will behave as expected
-  in subscripts and subscripts of subscripts. But $*$ is now
-  `mathematically active'\thinspace\footnote{in a hopefully
-    safe way, for example {\ttfamily\$\string\label\{eq*1\}\$}
-    is ok.} and |$R^*$| or |$R^\ast$| \emph{must} be input as
-  |$R^{*}$| and |$R^{\ast}$|. Furthermore, they will obey the
-  math alphabet commands.
-
-\item[\XeTeX{} and \LuaLaTeX{}:] regarding the en-dash and the
-  dotless i and j, the package is now under the Unicode engines
-  compatible not only with the ``Unicode'' \LaTeX\ font encodings
-  EU1 (\XeTeX, old fontspec), EU2 (\LuaLaTeX, old fontspec), TU
-  (\XeTeX\ and \LuaLaTeX, modern fontspec), but also with
-  traditional 8bits-encodings declared as a |fontenc|
-  option.\RightNote{1.3u}
-
-% obsolete
-  % Formerly, with a Unicode engine,
-  % only OT1, T1 and LY1 were supported by \mst as the 8bit encoding
-  % of the document text font, regarding the minus as en-dash and
-  % the dotless i and j.
-
- \item[fontspec:] one more note to users of
-\XeTeX{}/\LuaLaTeX{} with \ctanpkg{fontspec}:\newline 
-\fbox{it has to be
-loaded {with the option} |no-math|}, 
-and \emph{before} \mst.
-
-\item[vec accent:] The default \cs{vec} accent is not
-  appropriate for upright letters, so  \mst
-  provides a \cs{fouriervec} which takes its glyph in a
-  Fourier font, and an Ersatz \cs{pmvec} 
-  which is reasonably good looking on upright letters
-  and works with the \cs{rightarrow} glyph. Contrarily
-  to version |1.0|, the default \cs{vec} is not
-  overwritten with \cs{fouriervec}. And contrarily to
-  version |1.1|, one now needs to pass the option
-  \xA7fouriervec\xA7 to have the math accent \cs{fouriervec}
-  defined by the package.%
-%
-\footnote{this costs a math family, as I never came back to this to try to
-  do otherwise.}
-
-\item[math accents:] if option \xA7mathaccents\xA7 is used then \mst attempts to let
-  the math accents |\acute|, |\grave|, etc... use the suitable glyphs from the
-  text font. Prior to |1.3u| only |OT1|, |T1|, and |LY1| were supported (via
-  hardcoded slots). It should now work with any 8bits font
-  encoding\RightNote{1.3u} having been declared as an option to the
-  \ctanpkg{fontenc} package (and of course providing the ten needed text accents which
-  will mock math accents).%
-  %
-  \footnote{The code will raise low-level \TeX\ errors if the user attempts to
-    use an 8bits font encoding whose \LaTeX\ definition file is lacking the
-    suitable uses of \cs{DeclareTextAccent} or if the low level \LaTeX\ macro
-    implementation of text accents changes significantly; in such cases please
-    report the problem to the author, so that it can be documented in future
-    releases!}
-
-  The |\vec| math accent is not handled here, as it is not available in the
-  usual 8bits font encodings. See the \xA7fouriervec\xA7 option or the \xA7\pmvec\xA7
-  command.
-
-  The math accents obey the \xA7subdued\xA7 option\RightNote{1.3u}
-  and will change in sync with the \mst-ified text font used in
-  each non subdued math version.
-
-  (Very) brief testing during |1.3u| development with \XeTeX\ and \LuaTeX\ let
-  the author conclude that usage with the \cs{Umathaccent} primitive of an
-  OpenType accent glyph slot (which in the text font is for usage as a
-  postpended combining character) gives definitely bad horizontal placements
-  for both engines (each in its own way). Thus, the redefinitions of accents
-  for a \mst declared math version with an OpenType font is by default
-  canceled.%
-%
-\footnote{I.e., the \cs{grave} etc... control sequences will, in math versions
-  with an OpenType \mst-ified font, expand to macros holding their initial
-  meanings, unmodified by \mst, which was in force at the
-  |\string\begin\string{document\string}|.}
-%
-  Use \xA7unimathaccents\xA7 to force usage of the OpenType font text
-  accents glyph slots with the \cs{Umathaccent} primitive. Expert users are
-  invited to check out the code and to contribute suggestions if some extras
-  can improve it.
- 
-\item[varying font encodings:] the very first release of \mst dealt with only
-  one font; very soon thereafter it acquired the capacity to define multiple
-  math versions, each one using its own text font. But, as was documented at
-  this location formerly, various encoding dependent decisions were done once
-  and for all during package loading.
-
-  This meant in particular that the minus sign (using the text endash), the
-  dotless |i| and |j|, the |\hbar|, the math accents were all set up for only
-  one unique font encoding. It was thus recommended that all math versions
-  share the same font encoding.
-
-  The |1.3u| release has lifted this restriction.\RightNote{1.3u}
-\end{description}
-
-
 \subsection{Examples}
 \label{sec:examples}
 
@@ -2473,7 +1770,7 @@
 % \href{http://mirrors.ctan.org/help/Catalogue/entries/cbgreek-complete.html}{cbfonts},
 % \href{http://mirrors.ctan.org/help/Catalogue/entries/txfontsb.html}{txfontsb}.
 
-\emph{Since |1.3x| this documentation uses globally the |mlmodern|%
+\emph{Since \mstrelease{1.3y} this documentation uses globally the |mlmodern|%
 %
 \footnote{Daniel Benjamin \textsc{Miller}, \emph{A blacker Type 1 version of Computer Modern, with multilingual
     support}, \url{https://ctan.org/pkg/mlmodern}. I have added to the preamble
@@ -2500,7 +1797,7 @@
 
    \subsubsection{The \blueit{italic} option}
 
-In the initial version |1.0|, the Latin letters in
+In the initial version \mstrelease{1.0}, the Latin letters in
 mathematical mode assumed the exact same shape as in
 text mode, and this meant, generally speaking, that
 they would turn up upright. Doing this gives a very
@@ -2510,15 +1807,15 @@
 
 Nevertheless, soon after I posted the initial version
 of the package to CTAN, I was overwhelmed by
-numerous\footnote{this means ``more then one.''}
+numerous\footnote{this means ``more than one.''}
 questions\footnote{I thank in particular
 Tariq~\textsc{Perwez} and Kevin~\textsc{Klement} for
 their kind remarks (chronological order).}  on how to
 have the letters be in italic shape.
 
-The default is still, as in version |1.0|, for everything to be in
+The default is still, as in version \mstrelease{1.0}, for everything to be in
 upright shape, but it suffices to pass to the package the option
-\xA7italic\xA7\RightNote{1.1} to let the Latin letters in math mode be
+\xA7italic\xA7\RightNote{\mstrelease{1.1}} to let the Latin letters in math mode be
 in italic shape.%
 %
 \footnote{more precisely stated, the value of \cs{itdefault}
@@ -2547,7 +1844,7 @@
 
 \subsubsection[The subdued option]{The \blueit{subdued} option}\label{sec:subdued}
 
-This option was introduced in |v1.15|.\RightNote{1.15} It provides a manner to
+This option was introduced in |v1.15|.\RightNote{\mstrelease{1.15}} It provides a manner to
 switch on the \mst-\emph{ification} only for limited portions of
 the document, with the help  of the mechanism of math versions. Without the
 \xA7subdued\xA7 option, the \emph{mathastextification} applies by default
@@ -2560,7 +1857,7 @@
 has its utility, as I think is illustrated enough by the examples given at the
 start of this document and it works reasonably well.
 
-\begin{framed}
+\begin{shaded*}
   \mst was not written initially in order to allow its action to
   be completely canceled. It does not store (all) mathcodes nor
   does it set them (all) when changing math versions; only that would
@@ -2569,7 +1866,7 @@
   official interface to math mode, as it is almost entirely
   preamble only).
 
-  Releases |1.3t| and |1.3u| do this kind of things to maintain
+  Releases \mstrelease{1.3t} and \mstrelease{1.3u} do this kind of things to maintain
   usability across multiple \mst-ified math versions of characters
   which are obviously font encoding dependent such as the minus
   sign as en-dash (or unicode minus), the dotless i, the |\hbar|,
@@ -2581,7 +1878,7 @@
   mode and to multiple math versions amounts to some kind of a
   kludge, added to an initial design which handled a single unique
   text font.
-\end{framed}
+\end{shaded*}
 
 To get the displayed math
 (almost) as if \mst had not been loaded, one must also
@@ -2590,7 +1887,7 @@
 in the default \LaTeX{} math mode set-up to three distinct fonts
 whereas \mst will pick (even subdued) the three of them in the same
 font,%
-\footnote{\RightNote{1.3t}The minus sign is now perfectly subdued,
+\footnote{\RightNote{\mstrelease{1.3t}}The minus sign is now perfectly subdued,
 because its original mathcode is stored and restored; this was only
 way to handle the case with Unicode engines
 where the math operator font is in a classic
@@ -2604,13 +1901,13 @@
 be on the safe side one needs the \xA7basic\xA7 option which limits the
 mathastextification to letters and digits.%
 %
-\footnote{\RightNote{1.3d}The \xA7subdued\xA7 mode does extinguish
+\footnote{\RightNote{\mstrelease{1.3d}}The \xA7subdued\xA7 mode does extinguish
 in the normal and bold math versions the action of options \xA7selfGreek\xA7,
 \xA7eulergreek\xA7, and \xA7symbolgreek\xA7 (previously only \xA7LGRgreek\xA7 was
 subdue-able).}
-\footnote{\RightNote{1.3t}The \texttt{\string\imath} and
+\footnote{\RightNote{\mstrelease{1.3t}}The \texttt{\string\imath} and
 \texttt{\string\jmath} now obey the subdued regime.}
-\footnote{\RightNote{1.3u}Also \texttt{\string\hbar} 
+\footnote{\RightNote{\mstrelease{1.3u}}Also \texttt{\string\hbar} 
 and the math accents (see \xA7mathaccents\xA7 option) obey the subdued regime.}
 %
 Even then, in some circumstances, this may not suffice: for example the
@@ -2644,28 +1941,46 @@
 customization done by \mst, if it was loaded with the \xA7LGRgreek\xA7 or one of the
 other Greek related options.
 
-\begin{framed}
-  Release |1.3x| has added important new aspects to the handling of Greek
+\begin{shaded*}
+  Release \mstrelease{1.3y} has added important new aspects to the handling of Greek
   letters via the \xA7LGRgreek\xA7 option.  Make sure to read the \autoref{sec:newgreek}.
-\end{framed}
+\end{shaded*}
 
-\subsection{More miscellanea}
+\subsection{Miscellanea}
 
-This may repeat information already given.
+Please note that most material to be found in this section was written many
+years ago (except the two subsections on \xA7frenchmath\xA7 on one hand and 
+intervals on the other hand).  But it should still be valid!
 
+Ultimately most information here should be moved into the
+reference sections \autoref{sec:cmd} and \autoref{sec:opt}, and only some
+generalities should be kept here.
+
+\subsubsection{Load \mst always last}
+
+The ``large'' math symbols are not modified in any way by \mst. Only loading
+some math font packages such as \ctanpkg{fourier}, \ctanpkg{kpfonts}, \ctanpkg{mathabx}, \ctanpkg{mathdesign},
+\ctanpkg{txfonts}, \ctanpkg{newtxmath}, \ctanpkg{libertinust1math}, others\dots{} will change them. Think of loading these
+packages before \mst, else they might undo what \mst did.
+
+More generally any package (such as \ctanpkg{amsmath}) dealing with math mode should be
+loaded \emph{before} \mst.
+
 \subsubsection{Avoid \texorpdfstring{\texttt{OT1}}{OT1} encoding}
 
-  We specified in our minimal working example a |T1| encoding (|LY1| would
-  have been ok, too) because the default |OT1| does not have the
+  The default |OT1| does not have the
   {\color{joli}\DeleteShortVerb{\|}
   $\mathord{<}\,\mathord{>}\,\mathord{|}$\,\{\,\}} and
   {\color{joli}$\backslash$\MakeShortVerb{\|}} glyphs. If
   \mst detects |OT1| as the default encoding it will leave these characters to
-  their defaults from the math fonts.\footnote{the \xA7subdued\xA7 option, described next,
+  their defaults from the math fonts.%
+%
+\footnote{The \xA7subdued\xA7 option, described next,
   acts a bit otherwise, it forces, contrarily to its usual low-key character,
   the replacement of |OT1| by |T1| for the fonts ultimately used with letters
   and digits in math mode.}
-\begin{framed}
+%
+\begin{shaded*}
   If \mst detects the obsolete |OT1| encoding it does not do anything with
   \DeleteShortVerb{\|}<, >, |, \{, and \} which (except for monospace fonts)
   are not available in that encoding.\MakeShortVerb{\|}
@@ -2672,33 +1987,41 @@
    To fully benefit from \mst it is
   recommended to use some other encoding having these glyphs such as |T1| or
   |LY1|.
-\end{framed}
+\end{shaded*}
 
 
 \subsubsection{Derivative, minus, asterisk}
 
 The text characters {}'{} and  {}-{} are not used, and the asterisk is
-done optionally:
+done only optionally:
 \begin{itemize}
 \item the derivative sign ${}'$ is left to its default as the text font
-  glyph {}'{} is not, as a rule, a satisfying alternative.\footnote{|v1.2| adds
+  glyph {}'{} is not, as a rule, a satisfying alternative.%
+%
+\footnote{|v1.2| adds
  a customizable tiny space before ${}'$ to separate it from the previous
  letter, this is really needed when using upright letters in math mode with
  the CM derivative glyph.{\MTversion{upright}\sffamily\MTprimeskip{.5mu}%
    Compare $f'$ with \MTprimeskip{0mu}$f'$.} }
+
 \item   for the minus sign \mst uses the endash character
-  \textendash, if available, and not the hyphen character -.%
-%
-\footnote{see the \xA7unicodeminus\xA7 option if using an OpenType font.}
-%
-\item the \xA7asterisk\xA7 option is mandatory for \mst to replace the binary math
-  operator $*$ (and the equivalent control sequence \cs{ast}) with a version
-  which uses the text asterisk * suitably lowered\footnote{the amount of
-    lowering can be customized.} (and with the correct spaces around it as
-  binary operator). The reason is that after this inputs such as |$R^*$|
-  or |$R^\ast$| raise errors and \emph{must} be written |$R^{*}$| or |$R^{\ast}$|.
+  \textendash, if available, and not the hyphen character -.  With 
+an OpenType font, \mst uses per default the EN DASH U+2013 (see \xA7unicodeminus\xA7).
+
+\item the \xA7asterisk\xA7 option is required for \mst to use the text font for the
+  binary infix math operator $*$ and
+  the control sequence \cs{ast}.  They will use then the text asterisk
+  * suitably lowered, and with the correct spaces around it as binary
+  operator.
+  \begin{snugshade}
+    Attention that with this option, inputs such as |$R^*$| or |$R^\ast$|
+    raise errors and \emph{must} be replaced by |$R^{*}$|, respectively
+    |$R^{\ast}$|.
+  \end{snugshade}
 \end{itemize}
 
+\subsubsection{Large symbols and delimiters}
+
 Nothing is changed to the ``large'' math symbols, except for
 $\MToriginalprod$ and $\MToriginalsum$ in inline math which, like here:
 $\prod\sum$, will be taken from the Symbol Font if option \xA7symbolmisc\xA7
@@ -2705,20 +2028,106 @@
 was used. 
 
 The left and right delimiters are taken from
-the text font only for the base size: any |\big|, |\bigl|, |\bigr|,
-etc\dots reverts to the original math symbols. 
+the text font only for the base size: any one of |\big|, |\bigl|, |\bigr|,
+etc\dots will trigger the use of the original math symbols. 
 
+\subsubsection{amsmath}
+The behavior of the
+  \cs{DeclareMathOperator}\RightNote{\mstrelease{1.3n}} command
+  of |amsmath| is modified by \mst for it to use the correct font.
+  Additionally, release \mstrelease{1.3n} of \mst at long last also handles an extra
+  operation done by |amsmath| for |'.:/-*| to be used in operator names
+  without the extra math spacing.%
+%
+\footnote{To the experts: there is a long story here that \cs{newmcodes@}
+  hardcodes the font, that it was not compatible with Unicode engines, that
+  during some time (2013-2016) \texttt{lualatex-math} fixed that and very
+  recently |amsopn.sty 2016/03/08 v2.02| also, so now \texttt{lualatex-math
+    1.6} does nothing as it is already fixed ``upstream'' in |amsopn.sty|, but
+  anyhow in both cases, this still hardcoded the font, so finally \mst does
+  the right thing from its point of view. See the code comments for more,
+  there is an issue here with \LuaLaTeX\ not applying the curly right quote
+  contrarily to \XeLaTeX.}
+%
+This customization is suppressed in \xA7subdued\xA7 mode for the |normal| and |bold|
+math versions.
 
-\subsubsection{Load \mst always last}
+\subsubsection{hbar}
+The default \LaTeX\ definition of \xA7\hbar\xA7 would in our context
+  make use of the |h| of the current math font (so for us, it is also the text
+  font, perhaps in italic shape), but with a bar accross the |h| from the
+  original default math font for letters (usually |cmmi|). We redefine
+  \cs{hbar} to use the text font macron accent (|\=|) as a mock math accent
+  (this takes into account the \xA7italic\xA7 option and is compatible with
+  subscripts and superscripts).
 
-The ``large'' math symbols are not modified in any way by \mst. Only loading
-some math font packages such as \ctanpkg{fourier}, \ctanpkg{kpfonts}, \ctanpkg{mathabx}, \ctanpkg{mathdesign},
-\ctanpkg{txfonts}, \ctanpkg{newtxmath}, etc\dots{} will change them. Think of loading these
-packages before \mst, else they might undo what \mst did.
+  Since \mstrelease{1.12} \mst when dealing with a Unicode font sets the \cs{hbar}
+  to be the character from the font having hexadecimal codepoint |U+0127|.
 
-More generally any package (such as \ctanpkg{amsmath}) dealing with math mode should be
-loaded \emph{before} \mst.
+  Since \mstrelease{1.3u} the general 8bits font encoding is
+  supported\RightNote{\mstrelease{1.3u}} (see discussion of the |mathaccents| option
+  at end of this list for the shared limitations). Brief testing with
+  various usual \TeX\ fonts shows that the vertical positioning of
+  the bar isn't satisfying. It is planned to either add a parameter to
+  adjust it or to modify altogether the mode of construction of the |\hbar|.
 
+  Use \xA7nohbar\xA7 to tell \mst not do provide its own |\hbar|.
+
+
+\subsubsection{Dotless i and j}
+By default the package redefines \cs{imath} and
+  \cs{jmath} to give (in math mode) the dotless i and j (if it exists at
+  all) from the text font.%
+
+ \subsubsection{fontspec}
+
+\fbox{\ctanpkg{fontspec}
+has to be
+loaded {with the option} |no-math|}, 
+\emph{and before} \mst.
+
+\subsubsection{vec accent}
+
+The default \cs{vec} accent is not appropriate for upright letters, so \mst
+provides under option \xA7fouriervec\xA7 a math accent control sequence
+\cs{fouriervec} which takes its glyph in a Fourier font.  A poorman Ersatz
+\cs{pmvec} is always available ; it is reasonably good looking on upright
+letters and works with the \cs{rightarrow} glyph.
+
+\subsubsection{math accents}
+If option \xA7mathaccents\xA7 is used then \mst attempts to let
+  the math accents |\acute|, |\grave|, etc... use the suitable glyphs from the
+  text font.
+
+  The |\vec| math accent is not handled here, as it is not available in the
+  usual 8bits font encodings. See the \xA7fouriervec\xA7 option or the \xA7\pmvec\xA7
+  command.
+
+  The math accents obey the \xA7subdued\xA7 option\RightNote{\mstrelease{1.3u}}
+  and will change in sync with the \mst-ified text font used in
+  each non subdued math version.
+
+\begin{footnotesize}
+  (Very) brief testing during \mstrelease{1.3u} development with \XeTeX\ and \LuaTeX\ let
+  the author conclude that usage with the \cs{Umathaccent} primitive of an
+  OpenType accent glyph slot (which in the text font is for usage as a
+  postpended combining character) gives definitely bad horizontal placements
+  for both engines (each in its own way). Thus, the redefinitions of accents
+  for a \mst declared math version with an OpenType font is by default
+  canceled.%
+%
+\footnote{I.e., the \cs{grave} etc... control sequences will, in math versions
+  with an OpenType \mst-ified font, expand to macros holding their initial
+  meanings, unmodified by \mst, which was in force at the
+  |\string\begin\string{document\string}|.}
+%
+  Use \xA7unimathaccents\xA7 to force usage of the OpenType font text
+  accents glyph slots with the \cs{Umathaccent} primitive. Expert users are
+  invited to check out the code and to contribute suggestions if some extras
+  can improve it.\par
+\end{footnotesize}
+ 
+
 \subsubsection{Sans serif in math}
 
 The following set-up often gives esthetically pleasing results: it is to
@@ -2733,8 +2142,6 @@
 
 \subsubsection{\mst with \ctanpkg{beamer}}\label{ssec:beamer}
 
-%\noindent\llap{\textcolor{green}{\bfseries 2015/02/26}\hspace{1em}}
-
 Starting
 with release |3.34| of \ctanpkg{beamer}%
 %
@@ -2791,24 +2198,9 @@
 \item and load \mst afterwards (with possibly some font packages loaded in-between), passing it
   the option \xA7frenchmath*\xA7.
 \end{itemize}
-% \begin{footnotesize}
-%   The\RightNote{1.3zb} release |2.7| dated |2023/12/23| of
-%   \ctanpkg{frenchmath} required \mst to add a compatiblity patch and modify
-%   the \xA7frenchmath*\xA7 option.  The above instructions cause a build crash with
-%   |2.7| \ctanpkg{frenchmath} and \mst |1.3za| and earlier.  One must use \mst
-%   |1.3zb| or later.\par
-% \end{footnotesize}
-% Also, \ctanpkg{frenchmath} must be at least at
-% version |2.7| of |2023/12/23|.%
 
 Limited testing indicated that the combination of the two packages (using the
 options as indicated above) works satisfactorily. 
-% as expected but that some adjustments may be needed for some of
-% the macros defined by \ctanpkg{frenchmath}: we
-% observed in particular that the |\paral| command (which produces
-% $\mathrel{/\!\!/}$) may not work well if the $/$ is picked up from the text
-% font due to \mst (alternative could be for most text fonts
-% |\def\paral{\mathrel{//}}|),
 There may be some minor adjustments to do, as the \mst-ified math font may
 cause issues to some of
 the \ctanpkg{frenchmath} macros: for exemple \cs{Oijk} may not work
@@ -2886,9 +2278,9 @@
 the comma (to some extent) `intelligent', i.e. decide on the spacing type
 (ordinary or punctuation) depending on next token.  Do not load directly the packages
 but simply use the corresponding option and \mst will do the loading and take
-appropriate needed measures for compatibility. The\RightNote{1.3zb} \xA7decimalcomma\xA7 option is
+appropriate needed measures for compatibility. The\RightNote{\mstrelease{1.3zb}} \xA7decimalcomma\xA7 option is
 included in the \xA7frenchmath*\xA7 option, and the \xA7ncccomma\xA7
-option is included in the \xA7frenchmath+\xA7 option.\RightNote{1.3zb}
+option is included in the \xA7frenchmath+\xA7 option.\RightNote{\mstrelease{1.3zb}}
 
 Let's give another example of usage of \ctanpkg{mathtools} here to define a
 macro for integer ranges:
@@ -2924,7 +2316,418 @@
   \mst actions on square brackets (and parentheses).\par
 \end{footnotesize}
 
+\subsubsection{Unicode engines}
 
+\mst is minimally Unicode aware since \mstrelease{1.12} and can be used with \XeTeX{} or
+\LuaTeX{}. Starting with release \mstrelease{1.3}, it needs |luatex| to be at least
+as recent as the one which was provided with the TL2013 distribution.
+
+However \mst applies only to (a subset of) the |32-127| ascii range, and
+optionally to Greek letters, but for the latter only if provided via ``\TeX\
+fonts'' such as Euler, Symbol or LGR-encoded fonts. 
+It does not know how to use a given Unicode font simultaneously for Latin and
+Greek letters. 
+
+Thus, first consider much better alternatives:
+\begin{itemize}
+\item Since 2018, the package \ctanpkg{mathfont}%
+%
+\footnote{Conrad \textsc{Kosowsky}, \emph{Use TrueType and OpenType fonts in math mode}
+\url{https://ctan.org/pkg/mathfont}.}
+%
+adapts Unicode text fonts to usage in math mode.  It works with both \XeTeX\
+and \LuaTeX.
+\item For \XeTeX\ only, \ctanpkg{mathspec}%
+%
+\footnote{Andrew Gilbert \textsc{Moschou}, \emph{Specify arbitrary fonts for mathematics in \XeTeX}
+\url{https://ctan.org/pkg/mathspec}.}
+%
+also allows usage of arbitrary text fonts in mathematics.
+\item and of course
+\ctanpkg{unicode-math}%
+%
+\footnote{Will \textsc{Robertson}, et al., \emph{Unicode mathematics with
+    support for XeTeX and LuaTeX} \url{https://ctan.org/pkg/unicode-math}.}
+%
+is the standard package for using OpenType fonts which are equipped with the needed extra
+support being used in \TeX\ math mode.
+\end{itemize}
+
+If using any one of the above you probably don't need, don't want, and should
+not use \mst.
+
+Let me insist that \mst has not been tested in any systematic
+manner under the Unicode engines; and that it is expected to be most definitely
+incompatible with \ctanpkg{unicode-math}, although your mileage may vary and some
+features may appear to work.
+
+When using \mst with either \XeTeX{} or \LuaTeX{} it is recommended to use the
+\ctanpkg{fontspec} package (see remark below on \cs{encodingdefault}).  Furthermore,
+if using \ctanpkg{fontspec} it is \emph{necessary} to load it with its
+|no-math| option, and this \emph{must} happen before loading \mst.
+\begin{shaded*}
+\begin{itemize}[label=$\bullet$, leftmargin=1em]
+\item
+  Use \ctanpkg{fontspec} with its
+  \emph{no-math} option, and load it \emph{prior} to \mst. As some packages
+  load \ctanpkg{fontspec} themselves (for example |polyglossia|), a
+  \centeredline{|\PassOptionsToPackage{no-math}{fontspec}|} early in the
+  preamble might be needed.
+
+\item
+  The \ctanpkg{amsmath} package, if used, \emph{must} be loaded \emph{prior} to \mst.
+
+\item
+  Under |lualatex| engine, it is recommended to also load the package
+  \ctanpkg{lualatex-math}.%  Please check its documentation as possibly it has now
+  % been incorporated upstream (I am not following up on the situation).
+\end{itemize}
+\end{shaded*}
+
+I already mentioned in the \autoref{sec:ic} the fact that
+the italic corrections were not available for OpenType fonts
+under the \XeTeX{} engine and only partially available for the
+\LuaTeX{} engine, with the result that the spacings in math
+mode when using for the letters an upright text font will be
+less satisfying than with the standard PDF\TeX{} engine (the
+OpenType fonts not being usable with the latter engine, this is
+not a criterion of choice anyhow).
+
+To define math versions when using unicode fonts, use \ctanpkg{fontspec}'s
+\cs{setmainfont} before the \cs{Mathastext}\oarg{version} command, or simply
+before loading \mst for the default math versions.
+
+It is possible to mix usage of Unicode fonts and classical \TeX{}
+fonts. All used 8bits font encoding must have been passed as
+options to the \ctanpkg{fontenc} package.
+
+\subsubsection{The unicodeminus option}
+
+For legacy reason, \mst uses by default the |EN DASH U+2013| for the minus
+sign in math mode, if the font is determined to be a ``Unicode'' font.
+
+There is now the \xA7unicodeminus\xA7\RightNote{\mstrelease{1.3q}} to use rather
+% BORDEL DE BORDEL DE FAIT CHIER \verb ET Text for \verb command ended by end
+% of line. je l'ai patch\xE9 dans etoc et xint mais pas ici encore.
+|MINUS SIGN U+2212|.%
+\footnote{Thanks to Tobias~\textsc{Brink} who asked for this feature.}
+%
+Check \hyperref[nicodeminus]{\ttfamily\hyphenchar\font=189 its documentation}
+on page \pageref{nicodeminus}.
+
+\subsubsection{Two examples with OpenType fonts}
+
+\begingroup\def\MacroFont{\normalfont\footnotesize\ttfamily}
+I include
+here two examples which compiled successfully (a long time ago!) with \XeTeX{} and
+\LuaLaTeX{}, the first one on a Linux machine, the second one on a Mac
+OS X machine.
+\begin{verbatim}
+\documentclass{article}
+\usepackage[hscale=0.8]{geometry}
+\usepackage{multicol}
+\usepackage[no-math]{fontspec}
+\usepackage{lmodern}
+\usepackage[subdued,italic]{mathastext}
+\setmainfont[Color=999999]{Verdana}      \Mathastext[Verdana]
+\setmainfont[Color=0000FF]{Arial}        \Mathastext[Arial]
+\setmainfont[Color=00FF00]{DejaVu Serif} \Mathastext[DejaVu]
+\MTDeclareVersion{times}{T1}{ptm}{m}{n}
+\setmainfont[Color=FF0000]{Andale Mono}  \Mathastext[Andale]
+\begin{document}
+\newcommand\TEST[1]{\MTversion{#1}%
+\begin{multicols}{2}
+\hbox to\columnwidth{\hbox to\columnwidth{\hfil
+                $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}}
+   \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ }
+   \centerline{ $0123456789$ }
+   \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
+   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ }
+\columnbreak
+   \centerline{ abcdefghijklmnopqrstuvwxyz }
+   \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ }
+   \centerline{ 0123456789}
+   \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
+   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
+\end{multicols}}
+\begin{multicols}{2} 
+   \centerline{\textbf{math mode}} 
+\columnbreak
+   \centerline{ \textbf{text} }
+\end{multicols}
+\TEST{DejaVu}\TEST{Verdana}\TEST{times}\TEST{Andale}
+\TEST{Arial}\TEST{bold}\TEST{normal}
+\end{document}
+\end{verbatim}
+And now the same thing with fonts available on Mac OS X:
+\begin{verbatim}
+\documentclass{article}
+\usepackage[hscale=0.8]{geometry}
+\usepackage{multicol}
+\usepackage[no-math]{fontspec}
+\usepackage{lmodern}
+\usepackage[subdued,italic]{mathastext}
+\setmainfont[Color=FF0000]{Hoefler Text}  \Mathastext[Hoefler]
+\setmainfont[Color=336633]{American Typewriter}\Mathastext[Typewriter]
+\setmainfont[Color=0000FF]{Herculanum}    \Mathastext[Herculanum]
+\setmainfont[Color=FF00FF]{Didot}         \Mathastext[Didot]
+\setmainfont[Color=999999]{Comic Sans MS} \Mathastext[Comic]
+\begin{document}
+   --- copy here the code from the previous example ---
+\TEST{Didot}\TEST{Comic}\TEST{normal}\TEST{Herculanum}
+\TEST{Hoefler}\TEST{Typewriter}\TEST{bold}
+\end{document}
+\end{verbatim}
+\endgroup
+
+
+\subsubsection{Compatibility with other packages}\label{sec:compat}
+
+Regarding the namespace of the package almost all internally used macros use
+\cs{mst@} prefix.  Almost all user commands have \cs{MT} prefix, the oldest ones
+may use \cs{Mathastext} or variants.%
+%
+\footnote{It is only years after initial release that I became aware that
+package \ctanpkg{mathtools} used \cs{MT\string_} prefix (with an underscore as
+shown) for most internal constructs, and sometimes \cs{MT@}, and those can not
+clash with our \cs{MT[a-z\string|A-Z]} for public commands and \cs{mst@} for
+internal macros.  They do have however user commands \cs{MTFlushSpaceAbove} and
+\cs{MTFlushSpaceBelow}, but nothing else hence some retroactive relief.}
+
+Compatibility issues are often questions of who decides last.  They are
+naturally to be expected with packages dealing with the math setting.  The fix
+is simply to load \mst last. In particular one should \emph{always} load \mst
+\emph{after} \ctanpkg{amsmath} (this is especially needed with Unicode engines
+but applies in general as well).
+
+Any definition made in a package loaded before \mst of the font to be
+used for letters or for the common characters in the |ascii| basic range
+will be overruled by the loading of \mst (this includes the case
+when the earlier package had made the character `mathematically active').
+Conversely most of the set-up done by \mst may well be overruled by
+packages loaded later which do math related things.
+
+Starting with version \mstrelease{1.2}, \mst makes some characters
+`mathematically active' to achieve certain effects: automatic insertion of the
+italic corrections when using an upright text font in math (\autoref{sec:ic}),
+extended scope of the math alphabet commands which now apply to non-letter
+symbols (\autoref{sec:mathxx}; and also to math operator names, but this is
+much easier to achieve). And the (already mathematically active) right quote
+is modified to have some extra space added before the derivative glyph ${}'$
+(see \xA7\MTprimeskip\xA7).
+
+This mathematical activation is compatible with the \cs{label} and \cs{ref}
+commands in and outside of math mode.
+
+But a difficulty arises when some other package has
+made the character `catcode active' everywhere in the document. If it is
+detected for such a character that \mst wishes to make `mathematically active'
+that it is aready `catcode active', \mst then checks if it is handling a Babel
+shorthand.  If yes, it then hacks into \ctanpkg{babel} support macros for that
+character to let it do what it desires it to do in math mode.  And it does not
+make the character mathematically active, to the contrary it makes sure
+that the character is \emph{not} mathematically active.
+
+\begin{footnotesize}
+  This last paragraph applies to the characters
+  {{;}\,{,}\,{:}\,{!}\,{?}\,{+}\,{\textendash}\,{=}\,{<}\,{>}\,{(}\,{)}\,{[}\,{]},*}
+  mentioned in \autoref{sec:mathxx} as `hard non-letters'.  The right tick
+  (which is already mathematically active per default) is also handled via a
+  similar process, and in particular is tested for being a Babel shorthand
+  (which happens in particular with the Spanish language |activeacute| option).
+
+  The reason for avoiding in general for a catcode active character to be at
+  same time mathematically active is illustrated in next shaded box.
+
+  In the case of the Spanish active |'|, the advantage of \mst intervention to
+  reset its mathcode is that in case of a faulty input as a curly right tick
+  |U+8217| ', which \LaTeX{} will map to \cs{textquoteright} which itself
+  gives the catcode 12 |'|, it will show as curly quote in output not as prime
+  glyph, as \mst removes its mathematical activation.  This complements the
+  \LaTeX{} warnings about \cs{textquoteright} being invalid in math mode.
+
+  The ascii letters can not have been made active by Babel interface (see code
+  comments of \cs{mst at do@activecase}) so if an ascii letter is catcode active
+  when \mst examines it, nothing will change to its meaning.
+
+  \CHANGED{\mstrelease{1.4}}At \mstrelease{1.4} these actions are done for
+  ascii letters at loading of the package or via \csb{MTmathactiveletters},
+  which is itself done by \csb{MTversion} when entering non-subdued math
+  version.  Check documentation of \csb{MTmathactiveletters} for some relevant
+  details.\par
+\end{footnotesize}
+
+\begin{shaded*}
+\footnotesize
+On matters of \emph{mathematical} versus \emph{catcode} active character
+tokens, here is some code, not involving \mst, that you should \textbf{not}
+try at home:
+\begin{verbatim}
+    \documentclass{article}
+    \usepackage[french]{babel}
+    \usepackage{mathtools}\mathtoolsset{centercolon}
+    \begin{document}
+    $:$
+    \end{document}
+\end{verbatim}
+\fbox{DO NOT DO THIS AT HOME}\thinspace: it creates (with |pdflatex|) an infinite
+loop.
+% %
+% \footnote{This seems to still be the case with Babel |3.9f| and
+%   frenchb.ldf |2.6e|, as tested on Sep. 2, 2013. Again tested with up-to-date
+%   TL2015 Jan. 15, 2016 with same result. Again tested July 11, 2024 with
+% up-to-date TL2024 with the
+% same result.}
+% %
+This is due
+to the fact that the colon is simultaneously active (this is made by
+\ctanpkg{babel-french} at begin document) and mathematically active (done by
+\ctanpkg{mathtools} in the preamble). The interaction gives an infinite loop.
+%
+%  Such a
+% situation will be cured by \mst, even loaded before \ctanpkg{mathtools},
+% \emph{if} use is made of \xA7\MTnonlettersobeymathxx\xA7.
+%
+%  At each math formula
+% \mst will detect that Babel has activated the colon, and will cancel the
+% mathematical activation (the precise definition done by \ctanpkg{mathtools} was
+% already lost at begin document due to overwriting by \ctanpkg{babel} but the fact that
+% the character was mathematically active remained true).
+\par
+\end{shaded*}
+
+
+  Regarding mathematical activation,  an incompatibility of
+  another type arose with \ctanpkg{amsmath}.  To fix it, \mst now replaces
+  an inner macro of \ctanpkg{amsmath}
+  (\cs{resetMathstrut@}) with its own version.\\
+  \null\hspace{1cm}\fbox{Always load \ctanpkg{amsmath} before \mst.}
+
+\begin{footnotesize}
+  Actually this last commandment was already made necessary by the use of the
+  text endash to represent the minus sign in math mode, and, especially for
+  Unicode engines, some aspects of the \cs{DeclareMathOperator} macro from
+  \ctanpkg{amsmath}.\par
+\end{footnotesize}
+
+
+
+    \begin{shaded*}
+      \textcolor{magenta}{\bfseries New with 1.3i:} \mst patches |\url| of
+      packages \ctanpkg{url} and \ctanpkg{hyperref}, and also |\nolinkurl|, to force them
+      to do automatically \xA7\MTeverymathoff\xA7. Indeed they use math mode, and it
+      is better to turn \mst off for their dealings.
+
+      See the \xA7\MTeverymathoff\xA7 documentation.
+    \end{shaded*}
+   
+
+
+\subsection{Math alphabets}
+
+Let us first recall fundamental facts of life, in the
+  world of traditional PDF\TeX\ engine and \TeX\ fonts, as background for
+  understanding what \mst does in this context.
+  People familiar with using Unicode engines and \ctanpkg{unicode-math}, please be
+  aware that the semantics there of the \LaTeX\ math alphabet commands are
+  \textbf{significantly} modified!
+\begin{shaded*}
+\begin{itemize}
+\item In the default \LaTeX\ set-up all five of \xA7\mathrm\xA7, \xA7\mathbf\xA7,
+  \xA7\mathit\xA7, \xA7\mathsf\xA7 and \xA7\mathtt\xA7 tell \TeX\ to use for their arguments
+  specific \texttt{OT1}-encoded fonts.
+\item If the document body uses, as will be the case probably with any
+  language other than English or its variants, some other encoding such as
+  \texttt{T1} for its fonts, there is no change whatsoever to the math
+  configuration, indeed most font packages ignore it completely.
+\item It is thus a priori wrong to think of these commands as switching to
+  some body text font, although letters within their scopes will act as in a
+  text font, and in particular obey ligatures (this also applies to operator
+  names defined by |amsmath|'s \cs{DeclareMathOperator} which are, with some
+  extras not mentioned here, as using \xA7\mathrm\xA7).
+\item These commands are completely different in spirit from the \LaTeX\
+  \cs{textrm}, \cs{textbf}, and others, which change only some font axis;
+  indeed the math alphabet commands inherit from legacy Knuth's \cs{rm},
+  \cs{bf}, and others which are complete font specifiers.
+\item In particular when nesting, it is the inner-most which wins.
+\item Only mathematical characters (such as letters) which are declared to
+  \TeX\ as being of ``variable family type'' react to being in the argument of
+  a math alphabet command.
+\item Lowercase Greek letters are by default in \LaTeX\ immune to math
+  alphabets (so \verb|\mathrm{\pi}| induces no change in output), but the
+  eleven uppercase Greek letters are of ``variable family type'' because they
+  are picked in the \texttt{OT1}-encoded font also used for operator names
+  (the one to which \xA7\mathrm\xA7 maps), \emph{and they occupy the exact same
+    slots in the \emph{\texttt{OML}}-encoding to which} \xA7\mathnormal\xA7 maps! So
+  in default \TeX, \verb|\mathnormal{\Gamma}| gives a slanted glyph. The slots
+  occupied in \texttt{OML}-encoding by the lowercase Greek letters (to which
+  encoding they are a priori assigned) give
+  completely unrelated glyphs in the \texttt{OT1}-encoding, so it makes sense
+  that the default \LaTeX\ declares lowercase Greek to not react to math alphabets.
+  Notice though, that if \LaTeX\ had declared a \cs{mathnormalbold}, mapping
+  to a bold \texttt{OML}-encoded font, it would have made sense to also have
+  \cs{alpha}, \cs{beta}, etc... be of ``variable family type''.
+\item But of course even if |\pi| is of such ``variable family type'' then
+  |\mathbf{\pi}| will give garbage because the default \xA7\mathbf\xA7 selects an
+  \texttt{OT1}-encoded font, where there is no pi glyph whatsoever and in
+  particular not at the slot (which is 25) of $\pi$ in the \texttt{OML} encoding!
+\end{itemize}
+\end{shaded*}
+
+Please keep all the above in mind when trying to understand what \mst does
+with math alphabets.  The most significant point described next naturally is that
+\mst will sync \xA7\mathnormal\xA7, \xA7\mathrm\xA7, \xA7\mathbf\xA7, \xA7\mathit\xA7, \xA7\mathsf\xA7 and
+\xA7\mathtt\xA7 to map to the \mst-ified body text fonts.
+  \begin{itemize}
+  \item \xA7\mathnormal\xA7, \xA7\mathrm\xA7, \xA7\mathbf\xA7, \xA7\mathit\xA7,
+    \xA7\mathsf\xA7 and \xA7\mathtt\xA7 are modified to use the \mst-ified
+    text fonts; this can be disabled via \xA7defaultalphabets\xA7 and
+    related individual options, but the package always provides
+    \xA7\Mathnormal\xA7, \xA7\Mathrm\xA7, etc..., to match the \mst font
+    configuration (\RLNote{changed:}{\mstrelease{1.3za}}prior to \mstrelease{1.3za}
+    \xA7defaultalphabets\xA7 and related options also caused the \mst
+    alphabet commands not to be defined).  Recall that there may
+    arise a ``too many math alphabets'' error if too many of these
+    commands are \emph{used} in the document: 
+    \emph{declaring} them is not by itself the cause of the error.  See the
+    \LaTeX\ news entry of its \texttt{2021-11-15} release for
+    the counter \texttt{localmathalphabets} (with default value 2)
+    which can be now be used if one hits such a difficulty.
+  \item We define a new math alphabet command
+    \xA7\mathnormalbold\xA7 which gives direct access to
+    the bold version of the \xA7\mathnormal\xA7 alphabet
+    (rather than using either the \cs{bm} command from
+    the \ctanpkg{bm} package or the \cs{boldsymbol} command
+    from the \ctanpkg{amsbsy} package). As it does not
+    exist in the default \LaTeX{} math font set-up, this
+    alphabet is \emph{not} subjected to the {subdued option} action.
+
+\item Version \RightNote{\mstrelease{1.2}}\mstrelease{1.2} of \mst has extended the scope of the math
+  alphabets to apply to non-alphabetical characters and to
+  operator names. This respects the automatic white spaces
+  added by \TeX{} around math symbols.  See the devoted \autoref{sec:mathxx}.
+\item The optional\RightNote{\mstrelease{1.3i}}
+  extra skips around letters (see \autoref{sec:mathskips} and
+  \autoref{sec:ic}) are removed in the scope of the math alphabets.
+
+  \item Depending on options, further math alphabet commands
+    are defined by the package: \xA7\MathEulerBold\xA7,
+    \xA7\MathEuler\xA7, \xA7\MathPSymbol\xA7, and since \mstrelease{1.3y} under
+    the \xA7LGRgreek\xA7 family of options\RightNote{\mstrelease{1.3y}} also
+    \xA7\mathgreekup\xA7 and \xA7\mathgreekit\xA7.  See
+    \autoref{sec:newgreek}.  And also \xA7\mathgreekupbold\xA7 and
+    \xA7\mathgreekitbold\xA7 under the \xA7LGRgreek\xA7 family of
+    options.\RightNote{\mstrelease{1.3za}}
+
+  \item With\RightNote{\mstrelease{1.3za}} the \xA7LGRgreek+\xA7 option
+    which enhances Greek letters with a specific behavior when in the
+    arguments of the \xA7\mathrm\xA7, \xA7\mathbf\xA7, etc..., math alphabet
+    commands, this special behavior is not triggered by the \xA7\Mathrm\xA7,
+    \xA7\Mathbf\xA7, et al., which are genuine unmodifed math alphabet commands.  See
+    \autoref{sec:newgreekplus}.
+  \end{itemize}
+
+
 \subsection{Math versions}\label{sec:mathversions}
 
 \LaTeX{} has the concept of \emph{math versions}%
@@ -2972,13 +2775,13 @@
 \footnote{When not using math versions at all (so not using \texttt{subdued}
 mode either) another way to achieve distinct fonts in text and math is
 naturally to modify the document text font \emph{after} having loaded \mst (or
-after last usage of \cs{Mathastext} without optional argument).
-Another way is to use \cs{MTfamily}, \cs{MTencoding}, \cs{MTseries},
-\cs{MTshape}, \cs{MTlettershape} in the preamble before a call to
-\cs{Mathastext} which will configure math fonts without having modified the
+after last usage of \csb{Mathastext} without optional argument).
+Another way is to use \csb{MTfamily}, \csb{MTencoding}, \csb{MTseries},
+\csb{MTshape}, \csb{MTlettershape} in the preamble before a call to
+\csb{Mathastext} which will configure math fonts without having modified the
 document text fonts.  However if one does \texttt{\string\MTversion\{normal\}}
 in the document then the text font will be reset to what was recorded as math
-font by the \cs{Mathastext} call in the preamble (as said above, when not
+font by the \csb{Mathastext} call in the preamble (as said above, when not
 using \texttt{subdued} option).}
 
 The native \LaTeX{} command \cs{mathversion}\marg{version\_name} would change
@@ -3000,19 +2803,19 @@
 for the non-\emph{normal} and non-\emph{bold} math versions if
 using the \xA7subdued\xA7 option, \cs{MTversion} does further additional tasks:
 \begin{itemize}
-\item it resets\RightNote{1.3u} the \xA7\hbar\xA7, \cs{imath}
+\item it resets\RightNote{\mstrelease{1.3u}} the \xA7\hbar\xA7, \cs{imath}
   (see \xA7\inodot\xA7), \cs{jmath}, math accents (see option
   \xA7mathaccents\xA7) and minus sign as en dash according to the used
   font encoding for the \mst-ified text font,
-\item (see sections \ref{sec:mathskips} and \ref{sec:ic}) it re-issues the
+\item (see \autoref{sec:mathskips} and \autoref{sec:ic}) it re-issues the
   command \xA7\MTmathactiveletters\xA7 to let a to z, A to Z, be mathematically
   active in order to automatically insert the skips as defined by the user
   with \xA7\MTsetmathskips\xA7, and the italic corrections (if the font is not
   italic or slanted),
-\item (see section \ref{sec:extraskips}) it resets the extra spaces after the
+\item (see \autoref{sec:extraskips}) it resets the extra spaces after the
   symbols $\exists$, $\forall$ and before the derivative ${}'$ to the values as
   decided by the user in the preamble on a \emph{per version} basis,
-\item (see section \ref{sec:mathxx}) it re-issues the commands
+\item (see \autoref{sec:mathxx}) it re-issues the commands
   \xA7\MTmathoperatorsobeymathxx\xA7 and \xA7\MTeasynonlettersobeymathxx\xA7  to let
   the math operator names and (`easy') non letter characters obey the math
   alphabets,
@@ -3059,7 +2862,7 @@
   Modern ones or have been set-up by other packages;
   for example by the \ctanpkg{fourier} package with option
   `upright', which gives upright Greek letters.
-\item[\xA7LGRgreek\xA7:] (this was substantially updated at |1.3x|, make sure to
+\item[\xA7LGRgreek\xA7:] (this was substantially updated at \mstrelease{1.3y}, make sure to
   read the new documentation at \autoref{sec:newgreek})
   this option is for fonts which additionally to Latin
   letters also provide Greek letters in |LGR| encoding. Here is
@@ -3088,7 +2891,7 @@
  If you use the \xA7italic\xA7 option note that the italic Greek
  letters from the |cbfonts| are not the same glyphs as 
   the default Greek letters from the |OML| encoded font |cmmi|.
-\item[\xA7LGRgreek+\xA7:] \RightNote{1.3za}extends \xA7LGRgreek\xA7 to allow abusive
+\item[\xA7LGRgreek+\xA7:] \RightNote{\mstrelease{1.3za}}extends \xA7LGRgreek\xA7 to allow abusive
   usage of \cs{mathrm} and alike commands with Greek letters.
   This is very much not in the spirit (especially with traditional
   ``8bit'' \TeX\ fonts) of the \LaTeX\ kernel concept of math alphabet
@@ -3146,17 +2949,17 @@
   the digits and operator names (most of the time this means ``upright
   shape'', but it can be otherwise),
 \item[\xA7itgreek\xA7]: says that Greek letters (both lowercase and uppercase) will
-  be in `|it|' shape. \RLNote{changed:}{1.3x}More precisely the expansion of
+  be in `|it|' shape. \RLNote{changed:}{\mstrelease{1.3y}}More precisely the expansion of
   \xA7\MTgreekitdefault\xA7 is used.
 
-  This was changed at |1.3x|, formerly the value of \cs{itdefault} which was in
+  This was changed at \mstrelease{1.3y}, formerly the value of \cs{itdefault} which was in
   force at the time of using \xA7\Mathastext\xA7 (or at time of loading the package
   if no use is made of \xA7\Mathastext\xA7) was used.
 \item[\xA7upgreek\xA7]:  says that Greek letters (both lowercase and uppercase) will
-  be in `|n|' shape. \RLNote{changed:}{1.3x}More precisely the expansion of
+  be in `|n|' shape. \RLNote{changed:}{\mstrelease{1.3y}}More precisely the expansion of
   \xA7\MTgreekupdefault\xA7 is used.
 
-  This was changed at |1.3x|, formerly the value of \cs{updefault} which was in
+  This was changed at \mstrelease{1.3y}, formerly the value of \cs{updefault} which was in
   force at the time of using \xA7\Mathastext\xA7 (or at time of loading the package
   if no use is made of \xA7\Mathastext\xA7) was used.  But since \LaTeX{}
   |2020-02-02| this caused many Font Warnings in the log because
@@ -3187,7 +2990,7 @@
 |DejaVuSerif-TLF| (needs \ctanpkg{dejavu} package on your system),
 etc\dots
 
-\begin{framed}
+\begin{shaded*}
   \xA7\MTitgreek\xA7, \xA7\MTupgreek\xA7, \xA7\MTitGreek\xA7, \xA7\MTupGreek\xA7
   have some effect only if one of the \xA7LGRgreek\xA7, \xA7LGRgreeks\xA7,
   \xA7selfGreek\xA7 or \xA7selfGreeks\xA7 options was passed to the package.
@@ -3198,7 +3001,7 @@
 
   \xA7\MTgreekfont\xA7 has an effect only for \xA7LGRgreek\xA7 and \xA7selfGreek\xA7.  It is
   without any effect with \xA7LGRgreeks\xA7 and \xA7selfGreeks\xA7.
-\end{framed}
+\end{shaded*}
 
 
 \subsubsection{Control sequences to access directly upright or italic
@@ -3205,7 +3008,7 @@
   shape for Greek under \texttt{LGRgreek} option}
 \label{sec:newgreek}
 
-Some changes were made at |1.3x| to enhance the \xA7LGRgreek\xA7 (and \xA7LGRgreeks\xA7)
+Some changes were made at \mstrelease{1.3y} to enhance the \xA7LGRgreek\xA7 (and \xA7LGRgreeks\xA7)
 options with new features.  Everything which will be explained here applies
 only to these two options.
 
@@ -3224,7 +3027,7 @@
 argument).  Their default definitions are to expand to `|n|' and `|it|'
 respectively.  They can also be defined prior to loading \mst.
 
-See\RightNote{1.3x} the \autoref{table:greekup} and \autoref{table:greekit}
+See\RightNote{\mstrelease{1.3y}} the \autoref{table:greekup} and \autoref{table:greekit}
 for illustrations (using here the Libertinus Serif font).
 \begin{table}[htbp]
 \MTversion{libertinus}
@@ -3364,7 +3167,7 @@
 math version basis, depending only on how the options or commands were used
 in the preamble.
 
-Furthermore\RightNote{1.3x} two math alphabets are provided
+Furthermore\RightNote{\mstrelease{1.3y}} two math alphabets are provided
 \centeredline{\xA7\mathgreekup\xA7}
 \centeredline{\xA7\mathgreekit\xA7}
 which can be used to map a letter to the corresponding Greek fonts:
@@ -3379,7 +3182,7 @@
 \centeredline{$\mathgreekit{W}=\mathgreekit{\Omega}=\mathgreekit{\Omegaup}=\Omegait$}
 }
 
-Some\RightNote{1.3x} refactoring%
+Some\RightNote{\mstrelease{1.3y}} refactoring%
 %
 \footnote{Technically, formerly two symbol fonts were declared, one for the
   lowercase Greek letters and one for the uppercase Greek letters; now those
@@ -3386,7 +3189,7 @@
   are dropped and replaced by two symbol fonts, one for `italic' Greek letters,
   the other for `upright' Greek letters.}
 %
-was required to achieve this at |1.3x|
+was required to achieve this at \mstrelease{1.3y}
 and it is not 100\% backwards compatible: if none of the \xA7itgreek\xA7 etc\dots\
 things was used, the Greek letters formerly would follow the shape of Latin
 letters (for lowercase Greek) and of operator names (for uppercase Greek).
@@ -3414,10 +3217,10 @@
 \subsubsection{\cs{mathgreekupbold} and \cs{mathgreekitbold}}
 \label{sec:newgreekbold}
 
-Again this applies only to \xA7LGRgreek\xA7 and \xA7LGRgreeks\xA7 options (and the |1.3za|
+Again this applies only to \xA7LGRgreek\xA7 and \xA7LGRgreeks\xA7 options (and the \mstrelease{1.3za}
 added \xA7LGRgreek+\xA7 and \xA7LGRgreeks+\xA7).
 
-See\RightNote{1.3za} the \autoref{table:greekupbold} and \autoref{table:greekitbold}
+See\RightNote{\mstrelease{1.3za}} the \autoref{table:greekupbold} and \autoref{table:greekitbold}
 for illustration of usage (in math mode only) of code such as
 \begin{verbatim}
     \mathgreekupbold{\alpha}
@@ -3594,7 +3397,7 @@
   the \texttt{LGRgreek+} option}
 \label{sec:newgreekplus}
 
-With option\RightNote{1.3za} \xA7LGRgreek+\xA7 or \xA7LGRgreeks+\xA7, \mst makes Greek
+With option\RightNote{\mstrelease{1.3za}} \xA7LGRgreek+\xA7 or \xA7LGRgreeks+\xA7, \mst makes Greek
 letters control sequences \cs{alpha}, \cs{beta}, ... (but not \cs{alphaup} or
 \cs{betait} and the others) react in a special manner within the scope of
 \xA7\mathnormal\xA7, \xA7\mathrm\xA7, \xA7\mathit\xA7, \xA7\mathbf\xA7, and \xA7\mathnormalbold\xA7, but not
@@ -3671,15 +3474,24 @@
 \xA7\mathbf\xA7 originate in Plain \TeX\ \cs{rm} and \cs{bf} and are still quite
 akin to it, they are font switching commands nothing more or less.
 
+\subsection{Advanced capacities}
 
-\subsection{Extra spaces around letters}
+Some such capacities are on per default (but if with \xA7subdued\xA7 option will be
+turned off in the \emph{normal} and \emph{bold} math versions), others require
+an action from the user for activation.
+
+\subsubsection{Extra spaces around letters}
 \label{sec:mathskips}
 
-This is a new feature added with release |1.3|: the command \xA7\MTsetmathskips\xA7
-allows the user to set up some spaces (more precisely, `mu glue'; but stretch
-and shrink are discarded) to be
-automatically inserted around the letters in math mode. Some (very) unrealistic
-uses:
+This is a new feature%
+%
+\footnote{It was new in 2013 indeed.  Not so much new now, but it is never too
+late to try it out.}
+%
+added with release \mstrelease{1.3}: the command \xA7\MTsetmathskips\xA7 allows the
+user to set up some spaces (more precisely, `mu glue'; but stretch and shrink
+are discarded) to be automatically inserted around the letters in math
+mode. Some (very) unrealistic uses:
 \begin{verbatim}
 % this may be anywhere in the document (also within a math group):
 \MTsetmathskips{x}{20.33mu}{15.66mu}% 20.33mu before all x's and 15.66mu after.
@@ -3699,28 +3511,25 @@
 \xA7\MTunsetmathskips\xA7 cancels previous use of \cs{MTsetmathskips} for a given
 letter.
 
-The implementation relies on the `mathematical activation' of letters, which is
-done by default by the package since release |1.2b|. Should this cause
-compatibility problems, the command \xA7\MTmathstandardletters\xA7 cancels it
+The implementation relies on the `mathematical activation' of letters, which
+is done by default by the package since release \mstrelease{1.2b}. Should this
+cause compatibility problems, the command \xA7\MTmathstandardletters\xA7 cancels it
 entirely. To reactivate it, there is \xA7\MTmathactiveletters\xA7. Note that
-\cs{MTmathactiveletters} is done automatically by \mst when loaded, and also
-each time the package enhanced math-version-switch command \xA7\MTversion\xA7 is used,
-except for the normal and bold math versions under the \xA7subdued\xA7 option.
+\xA7\MTmathactiveletters\xA7 is done automatically (as part of \xA7\MTicinmath\xA7) by
+\mst when loaded (if not with \xA7subdued\xA7 option), and also each time the
+package enhanced math-version-switch command \xA7\MTversion\xA7 is used, except for
+the normal and bold math versions under the \xA7subdued\xA7 option.
 
-% Earlier this `mathematical activation' of letters had been used by the package
-% only to add automatically italic corrections, as described in the next
-% section.
-
-\begin{framed}
+\begin{shaded*}
   The extra skips are set at natural width; they do not contribute to the
   overall stretchability or shrinkability of the math formula and do not
   create break points. 
 
-  \textcolor{magenta}{\bfseries Changed with |1.3i|}: they are \emph{not}
+  \textcolor{magenta}{\bfseries Changed with \mstrelease{1.3i}}: they are \emph{not}
   applied within the scope of math alphabet commands.
-\end{framed}
+\end{shaded*}
 
-\subsection{Italic corrections}
+\subsubsection{Background on italic corrections in math mode}
 \label{sec:ic}
 
 {\small Note: this is somewhat technical discussion which may well be skipped in
@@ -3824,9 +3633,14 @@
 
 We learn in Appendix G of the \TeX book that the italic correction is used for
 the horizontal shift of the superscript with respect to the position of
-the subscript: $\mathit{f_i^j}$, or, 
+% CETTE LIGNE PROVOQUE L'AJOUT D'UN LINESKIP
+% the subscript: $\mathit{f_i^j}$, or,
+% En fait d\xE9j\xE0 en Plain TeX, configuration de base la hauteur totale de
+% $f_i^j$ est > 12pt = baselineskip !
+% Work-around ad hoc
+the subscript: \smash{$\mathit{f_i^j}$}, or,
 going back now to the standard math italics $f_i^j$. In the next paragraphs
-we use $f_i^i$ for more accurate comparison of the positioning of the sub- and superscript.
+we use \smash{$f_i^i$} for more accurate comparison of the positioning of the sub- and superscript.
 
 If we try something like this: |${f\/}_i^i$| we obtain ${f\/}_i^i$. Our
 overlapping game with |\rlap{$f_i^i$}${f\/}_i^i$| gives
@@ -3889,15 +3703,10 @@
     italic corrections are canceled inside the arguments to the math alphabet
     commands, to allow the formation of ligatures as
     is expected in the standard default \TeX{} font set-up in math.%
-% \footnotemark
-% \global\let\saved at Href@B\Hy at footnote@currentHref 
   \end{framed}\vskip-.75\baselineskip
 \end{framed}
-%\addtocounter{footnote}{-1}%
-%\let\Hy at footnote@currentHref\saved at Href@A 
-%
 \footnotetext{the situation is rather ironical! by the way, the warnings in
-  section \ref{sec:mathxx} with \texttt{\$x\^{}?\$} or similar are less of an
+  \autoref{sec:mathxx} with \texttt{\$x\^{}?\$} or similar are less of an
   issue here, because the letter is only \emph{followed} by \texttt{\char92/}
   and anyhow the whole is put by \mst within group braces, so no surprises
   with \texttt{\$x\^{}y\$} or \texttt{\$\char92mathbin x\$}. Nevertheless it
@@ -3905,16 +3714,10 @@
   composite objects, something which could surprise other packages. The
   command \csb{MTmathstandardletters} cancels this mechanism.}
 
-%\addtocounter{footnote}{1}%
-% \let\Hy at footnote@currentHref\saved at Href@B 
-%
-% \footnotetext{\RightNote{1.3i}Formerly, italic corrections were added to the
-%  \cs{mathnormal} arguments.}
-
 \makeatother
 
 The feature-implementing commands \xA7\MTicinmath\xA7, \xA7\MTnoicinmath\xA7,
-\xA7\MTicalsoinmathxx\xA7 are described in section \ref{sec:cmds}.
+\xA7\MTicalsoinmathxx\xA7 are described in \autoref{sec:cmds}.
 \endgroup
 
 \textbf{\hbox{Note:}} \emph{from brief testing on 2012/12/28, \XeTeX{} seems not
@@ -3944,11 +3747,7 @@
 
 \noindent\kern-0.5em\relax2022/10/29: no change with current TL2022.}
 
-% For more see
-% \url{http://tex.stackexchange.com/a/337076} which explores also the differences
-% between the two Unicode engines regarding italic corrections in pure text mode.
-
-\subsection{Extra  glue after \texorpdfstring{\cs{exists}}{\textbackslash
+\subsubsection{Extra glue after \texorpdfstring{\cs{exists}}{\textbackslash
 exists}, \texorpdfstring{\cs{forall}}{\textbackslash forall}, and before the prime glyph}
 \label{sec:extraskips}
 
@@ -3998,21 +3797,16 @@
 the document body, or after |\MTversion{normal}|) and the \emph{bold} math
 version (either at the start of the document body after \cs{boldmath}, or after
 |\MTversion{bold}|) do not have any extra skip inserted (even one of zero
-width) after $\oldforall$, $ \oldexists$, or before the ${}'$.%
-%
-%\footnote{\RightNote{1.3j}Formerly, skips of zero widths were inserted.}
+width) after $\oldforall$, $ \oldexists$, or before the ${}'$.
 
 \endgroup
 
-
-\subsection{Extended scope of the math alphabets commands}
+\subsubsection{Extended scope of the math alphabets commands}
 \label{sec:mathxx}
 
 \begingroup
 \MTversion{italic}\renewcommand\familydefault\sfdefault
-% il faudra peut-\xEAtre que j'annule cette fa\xE7on qu'\xE0 mathastext de tripatouiller
-% \familydefault... 
-\makeatletter\let\mst at doasterisk\relax\makeatother
+\MTnormalasterisk
 
 Ever since the initial version of the package, some characters usually
 unaffected by the math alphabet commands \cs{mathbf}, \cs{mathtt},
@@ -4027,7 +3821,8 @@
 picked up in the text font) as this would, for reasons of the inner workings of
 \TeX{}, not be compatible with the automatically inserted spaces around them.
 
-A revolutionary\RightNote{1.2} ;-) novelty is introduced with version |1.2| of the package:
+A revolutionary\RightNote{\mstrelease{1.2}} ;-) novelty is introduced with
+version \mstrelease{1.2} of the package:
 \begin{enumerate}
 \item the pre-declared or user-declared (using the |amsmath|
   \cs{DeclareMathOperator} or equivalent) operator names obey the math
@@ -4034,14 +3829,23 @@
   alphabet commands,\footnote{contrarily to the next feature, this one is not
     likely to create incompatibilities with other packages, so it is
     activated by default.}
-\item and, \emph{optionally}, all non alphabetical
-  characters\footnote{of course some of them are input preceded by a
-    backslash, and the backslash itself is input as \cs{backslash}.} treated by
-  \mst, \emph{i.e.}, if not disabled by options,
-  ${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}\,{\{}\,{\}}$,
-  the asterisk $*$, and
-  $.\,/\,\vert\,\backslash\,{\#}\,{\$}\,{\%}\,{\&}$%
-%
+\item as well as all non alphabetical characters treated by \mst.
+\end{enumerate}
+
+The non-letters handled by \mst (if not disabled by options) fall into two
+groups:
+\begin{itemize}[nosep]
+\item Those to which \TeX{} associates some specific spacings:
+  \centeredline{${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,%
+                 {(}\,{)}\,{[}\,{]}\,{<}\,{>}\,{\{}\,{\}}\,*$}
+      We call them the ``hard'' ones.
+\item Those for which \TeX{} uses so-called ordinary spacings:
+  \centeredline{$.\,/\,\vert\,\backslash\,{\#}\,{\$}\,{\%}\,{\&}$}
+      We call them the ``easy'' ones.
+\end{itemize}
+The ``easy'' non-letters are handled \emph{easily} by \mst, simply
+by declaring them to be of ``variable family type''.  This will
+be done automatically.%
 \footnote{%
   ${\#}\,{\$}\,{\%}\,{\&}$ obey the math alphabets since the initial version
   of \mst; the dot $.$, the slash $/$, the vertical bar $\vert$ and the
@@ -4049,432 +3853,327 @@
   around them, and the procedure is then activated by default since
   \texttt{1.2} for these characters as they are `easy non-letters'. But for
   \cs{mid} and \cs{setminus} which are $\vert$ and $\backslash$ with special
-  spacing (of type \cs{mathrel} and \cs{mathbin} resp.) the procedure has
-  some constraints explained in the framed box on next page and the
-  activation requires \cs{MTnonlettersobeymathxx}.}
+  spacing (of type \cs{mathrel} and \cs{mathbin} resp.) the
+  activation requires \csb{MTnonlettersobeymathxx}.}
 %
-will also obey
-  the math alphabet commands (when not used as delimiters). The
-  important thing is that the spaces added by \TeX{} before and after
-  are not modified.
 
-\end{enumerate}
+The ``hard'' non-letters require a more complex approach using a concept
+called ``mathematical activation''.  For reasons explained next, this is not
+done automatically and requires the user to employ the command
+\xA7\MTnonlettersobeymathxx\xA7 (or, for the specific case of the asterisk the option
+\xA7asterisk\xA7).
+
+\begin{shaded*}
+  It is a fundamental feature that the spacing added by \TeX{} before and
+  after each such \mst-ified non-letter is in no way modified.
+\end{shaded*}
+
+
 Let us compare, for example, the new behavior of \cs{mathtt} and \cs{mathbf}
-\MTmathoperatorsobeymathxx\MTnonlettersobeymathxx\MTeasynonlettersobeymathxx
-\[ \mathtt{(\sin(n!)<\cos(m-p)?)}\qquad \mathbf{[\sin(x+y)=\cos(z-t)]}\] 
-with the traditional default behavior:
-\MTmathoperatorsdonotobeymathxx\MTnonlettersdonotobeymathxx
+when \xA7\MTnonlettersobeymathxx\xA7 has been used
+\MTmathoperatorsobeymathxx
+\MTnonlettersobeymathxx
+\MTeasynonlettersobeymathxx
+\[ new:\quad \mathtt{(\sin(n!)<\cos(m-p)?)}\qquad \mathbf{[\sin(x+y)=\cos(z-t)]}\] 
+with the traditional default behavior one observes without \mst or in
+\xA7subdued\xA7 normal or bold math version:
+\MTmathoperatorsdonotobeymathxx
+\MTnonlettersdonotobeymathxx
 \MTeasynonlettersdonotobeymathxx
-\[ \mathtt{(\sin(n!)<\cos(m-p)?)}\qquad \mathbf{[\sin(x+y)=\cos(z-t)]}\] 
+\[ standard:\quad \mathtt{(\sin(n!)<\cos(m-p)?)}\qquad \mathbf{[\sin(x+y)=\cos(z-t)]}\] 
 
-The first feature is activated by default, except of course for the normal and
-bold math versions when the package was given the \emph{subdued} option. The
-second feature is \emph{off} by default for the characters listed first. It is
-\emph{on} for the `easy' cases
-${\#}\,{\$}\,{\%}\,{\&}\,.\,/\,\vert\,\backslash$ (activating the feature for
-them puts no constraint on the user input and should not be too upsetting to
-other packages), and also for $*$ but only if this was required explicitly by
-the option \xA7asterisk\xA7, as the user then is supposed to know that |$R^*$| is no
-valid input anymore and should be replaced by |$R^{*}$|. The remaining `difficult'
-cases create similar
-constraints, which will be commented more upon next. The commands%
-\footnote{these commands are to be used outside of math mode.
-  Their scope is limited to the current \LaTeX{} environment or group. They use
-  the \cs{everymath} and \cs{everydisplay} mechanism so if the document needs to
-  modify these token lists it has to do so in a responsible manner, extending
-  not annihilating their previous contents.} 
-%
-for deactivation are:\\
+The commands for
+\emph{deactivation} are:\\
 \mbox{}\hspace{1cm}\csb{MTmathoperatorsdonotobeymathxx},\\
 \mbox{}\hspace{1cm}\csb{MTeasynonlettersdonotobeymathxx},\\
 \mbox{}\hspace{1cm}\csb{MTnonlettersdonotobeymathxx},\\
-and those for activation:\\
-\mbox{}\hspace{1cm}\csb{MTmathoperatorsobeymathxx} regards operator names and is executed by default,\\
-\mbox{}\hspace{1cm}\csb{MTeasynonlettersobeymathxx} is done by default and applies to \centeredline{${\#}\,{\$}\,{\%}\,{\&}\,.\,/\,\vert\,\backslash$} and also to $*$ under package option \xA7asterisk\xA7,\\
-\mbox{}\hspace{1cm}\csb{MTnonlettersobeymathxx} is \emph{not} done by default (see explanations why in the framed box next) and regards \centeredline{${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}$} and also \cs{mid} and \cs{setminus} but applies to
-the braces ${\{}\,{\}}$ only if \csb{MTexplicitbracesobeymathxx} is also used.\par
-%
-%% suppression de cette note de bas de page \xE0 1.3u car elle est obsol\xE8te
-%% (pas s\xFBr si \xE0 100%, mais en tout cas l'exemple avec \mathbf{-} n'a plus
-%% de probl\xE8me.
-% \footnote{when in subdued mode, the
-%   math alphabets are the default ones, not the ones modified by \mst to use the
-%   document text fonts. As a result, matters of font encodings may then give
-%   unexpected results, for example for $-$. On the present document page we
-%   switched to a math version to escape from the |subdued| mode and avoid the
-%   problem with \cs{mathbf\{-\}} giving in the normal (subdued) math version
-%   {\MTversion{normal}\MTnonlettersobeymathxx$\mathbf-$\sffamily, when
-%     `non-letters' are declared to obey math alphabets.}}
+and those for \emph{activation}:\\
+\mbox{}\hspace{1cm}\csb{MTmathoperatorsobeymathxx} (done by default),\\
+\mbox{}\hspace{1cm}\csb{MTeasynonlettersobeymathxx} (done by default),\\
+\mbox{}\hspace{1cm}\csb{MTnonlettersobeymathxx} is \emph{not} done by default
+(see explanations why in the shaded box next) and applies to the ``hard''
+non-letters mentioned above and also to \cs{mid} and \cs{setminus}.
+Furthermore, it applies to
+the braces ${\{}\,{\}}$ only if \csb{MTexplicitbracesobeymathxx} is also used.
 
-\begin{framed}
-  \textbf{Important:} the package does \csb{MTnonlettersdonotobeymathxx} by
-  default. The reason is that activating the mechanism adds some constraints to
-  the way things must be input, adding
-\centeredline{|\usepackage{mathastext}|\csb{MTnonlettersobeymathxx}}
-  to a pre-existing
-  document might well create errors: 
-  all these characters treated by \mst, such
-  as |?|, |[|, |<| now represent (in math mode only!) \emph{two} `tokens' and
-  this will utterly confuse \TeX{} if some precautions are not taken: |$x^?$|,
-  |$R^+$| or |$\mathopen<A\mathclose>$| \emph{must} now be coded as |$x^{?}$|,
-  |$R^{+}$| and |$\mathopen{<}A\mathclose{>}$| (the rule is to do as if |?|,
-  |+|, |<| or |>| were each really \emph{two} characters).
 
-  Even if this rule is respected in the document source, it is still a
-  possibility that incompatibilities with other packages will arise because
-  \mst does a \emph{mathematical activation} of the characters which could be
-  unexpected and unchecked for by other packages. This is precisely the case
-  with the \ctanpkg{amsmath} package, and the problem goes away by just making sure
-  that |amsmath| is loaded before \mst{} (generally speaking, \mst should be
-  loaded last after all packages dealing with math things).
-\end{framed}
+\begin{shaded*}
+  \textbf{Important:} the package does not execute on its own
+  \csb{MTnonlettersobeymathxx}. The reason is that the
+  mechanism in effet replaces the original ``hard'' characters such as 
+  |?|, |[|, |<| by (in math mode only) a more complex structure, which
+  ceases looking to \TeX{} as only one token, and as a consequence |$x^?$|, |$R^+$|
+  or |$\mathopen<A\mathclose>$| raise an error, the workaround being to
+  employ additional braces: |$x^{?}$|, |$R^{+}$| and |$\mathopen{<}A\mathclose{>}$|.
 
-The braces |\{| and |\}| remain unresponsive to the alphabet changing commands
-even after \csb{MTnonlettersobeymathxx}. One must issue also
-\csb{MTexplicitbracesobeymathxx}, but it has the disadvantage that |\{| and
-|\}| become then unusable as variable-size delimiters: |\big\{| or |\big\}|
-create errors and one must make use of |\big\lbrace| and |\big\rbrace|. But
-\MTmathoperatorsobeymathxx\MTnonlettersobeymathxx\MTexplicitbracesobeymathxx
-one can now enjoy $\mathtt{\{a, a>b\}}$, $\mathbf{\{a, a>b\}}$,
-$\mathsf{\{a, a>b\}}$, or even $\mathnormalbold{\{a, a>b\}}$.\footnote{this
-  last example uses the \cs{mathnormalbold} additional alphabet defined by
-  \mst.}\footnote{Let me recall that braces will anyhow not be handled at all
-  by \mst if the document
-  font encoding is |OT1|, except under option |alldelims|.}
+  Similarly |$R^*$| does not work anymore under option \xA7asterisk\xA7, the user is
+  supposed to know that with this option |$R^{*}$| is the mark-up to use.
 
-Even with \csb{MTnonlettersobeymathxx}, the parenthese-like symbols $($, $)$, 
-$[$, $]$, $<$ and $>$ and the slashes $/$, $\backslash$, \emph{if used as
-  left/right delimiters} (i.e.\@ with |\left/\right|) do not react to math
-alphabet commands. This is mainly explained by the fact that the text font
-will not contain suitable glyphs, hence no attempt was made to make the
-delimiters pick up their glyphs there.
+  Thus, if one adds
+  \centeredline{|\usepackage{mathastext}|\xA7\MTnonlettersobeymathxx\xA7} to a
+  pre-existing document, it is needed to check if the mark-up satisfies
+  to the above guidelines.  For this reason the mechanism is by default
+  not activated and the user has to execute:
+  \centeredline{\xA7\MTnonlettersobeymathxx\xA7}
+  This can be done in the preamble and will trigger actual modifications
+  only at time of |\begin{document}|.
+\end{shaded*}
 
-But \mst does try to pick up most of the `small variants' of the delimiters
-from the text font: |$\left<x\right>$| gives $\left<x\right>$ (but
-|$\left<b\right>$| gives $\left<b\right>$.) Notice that this differs from
-standard \LaTeX{} for which |$\left< x\right>$| gives $\langle x\rangle$. As
-it is perhaps a bit strange to have $\left< x\right>$ next to
-$\left< X\right>$ there is option \xA7nosmalldelims\xA7: with this option the
-small-sized variants of the delimiters are not modified by \mst (option
-\xA7nosmalldelims\xA7 has the side effect that, for the non-delimiter uses of 
-|\{, \}| 
-to be \mst-ified it is necessary to issue \csb{MTnonlettersobeymathxx} and
-\csb{MTexplicitbracesobeymathxx}.)
 
-At any rate, as said above, whether `small' or not, delimiters are
-unresponsive to math alphabet commands, due to technical aspects of \TeX, and
-the way \mst handles these things. Examples: |\mathbf{<a,b>}| gives
-$\mathbf{<a,b>}$
-%{\setbox0\hbox{$\mathbf{<a,b>}$}\typeout{ICI}\showboxdepth\maxdimen
-%  \showboxbreadth\maxdimen \showbox0} 
-(no use of |\left/\right|, hence brackets do obey the math alphabets --- as we
-issued \xA7\MTnonlettersobeymathxx\xA7 a bit earlier), |\mathbf{\left<a,b\right>}|
-gives $\mathbf{\left<a,b\right>}$ (brackets used with |\left/\right| do not
-obey the math alphabets), |\mathbf{\mathopen{<}a,b \mathclose{>}}| gives
-$\mathbf{\mathopen{<} a,b \mathclose{>}}$ (no |\left/\right|, brackets
-do obey the math alphabets).
 
-\endgroup
-For comparison, the \LaTeX{} standard behavior for
-\centeredline{|\mathbf{\mathopen{<}a,b\mathclose{>}}|}
-is $\mathbf{\mathopen{<} a,b
-  \mathclose{>}}$ (neither brackets nor the comma do respond).
+\begin{footnotesize}
+Some \TeX nical notes:%
+%
+\footnote{The complete truth is only to be found in source code.  Here are
+  some extra details:
 
+  The
+  dollar sign and the curly braces are not tested for mathematical or catcode
+  activation.
 
-\subsection{Unicode engines}
+  The $*$\RLNote{changed:}{\mstrelease{1.4}} is tested as
+  are the ``hard'' non-letters, except under option \xA7everymath\xA7. On the
+  other hand \cs{ast} will be modified independently of what is decided for
+  $*$.  Comprenne qui pourra.}
 
-\mst is minimally Unicode aware since |1.12| and can be used with \XeTeX{} or
-\LuaTeX{}. Starting with release |1.3|, it needs |luatex| to be at least
-as recent as the one which was provided with the TL2013 distribution.
+\begin{itemize}[nosep]
+\item
+The asterisk $*$ is associated with its own option \xA7asterisk\xA7, because
+independently of the matter of its behavior in the scope of math alphabets
+commands, its handling by \mst (via the \xA7\MTlowerast\xA7 associated
+configuration) always requires it to be made mathematically active and to
+expand to a more complex structure.  So once this option is received by the
+package, it goes full steam and also adds by default the responsiveness to
+math alphabet commands (in non-\xA7subdued\xA7 math versions).
 
-However \mst applies only to (a subset of) the |32-127| ascii range, and
-optionally to Greek letters, but for the latter only if provided via ``\TeX\
-fonts'' such as Euler, Symbol or LGR-encoded fonts. 
-It does not know how to use a given Unicode font simultaneously for Latin and
-Greek letters. 
+\item The legacy situation which is a bit late to change is that the
+  responsiveness of the asterisk to math alphabets being on by default under
+  option \xA7asterisk\xA7, it was decided that this responsiveness would be turned
+  off by \xA7\MTeasynonlettersdonotobeymathxx\xA7 and back on by
+  \xA7\MTeasynonlettersobeymathxx\xA7, although the $*$ is part of the ``hard''
+  non-letters.  One can use \xA7\MTnormalasterisk\xA7 to stop the $*$ to obey math
+  alphabet commands, but it also cancels the \xA7\MTlowerast\xA7 mechanism.
 
-Thus, first consider much better alternatives:
-\begin{itemize}
-\item Since 2018, the package \ctanpkg{mathfont}%
+\item At\RLNote{changed:}{\mstrelease{1.4}} \mstrelease{1.4} ``easy''
+  non-letters found out to be (at |\begin{document}| or with \xA7\MTversion\xA7
+    except for \xA7subdued\xA7 \emph{normal} or \emph{bold}) mathematically active
+    characters will not get overridden by \mst.
+    This applies for example with
+    the dot ``.'' under \ctanpkg{babel} with Spanish language.  Its special
+    behavior to transform into a comma ``,'' if before a digit is now
+    kept.  As an amusing side note, if \xA7\MTnonlettersobeymathxx\xA7 is used, this
+    comma does obey math alphabet commands.
+
+\item An ``easy'' non-letter which (at |\begin{document}| or with \xA7\MTversion\xA7
+  except for \xA7subdued\xA7 \emph{normal} or \emph{bold}) is catcode active will
+  still be set by \mst to be of ``variable family type'', if it is not
+  mathematically active.  The catcode status is not checked nor modified, only
+  the mathcode as per previous item.  Now whether the \mst-ification has any
+  effect depends on how the user has configured the catcode active character
+  to behave if in math mode.
+
+\item When \mst wants to employ mathematical activation for a non-letter
+  character among the ``hard'' cases (inclusive of the asterisk), which is done
+  at |\begin{document}| if not \xA7subdued\xA7 or with every \xA7\MTversion\xA7 except for
+    \xA7subdued\xA7 \emph{normal} or \emph{bold}, it first checks if this character
+    is currently catcode active.  If this is the case, it then checks if the
+    character is a \ctanpkg{babel} shorthand.  If yes, it then hooks into
+    \ctanpkg{babel} internals to modify the way this shorthand acts in math
+    mode, so that now the character will respond to math alphabet commands.
+    If however the catcode active character does not appear to be a
+    \ctanpkg{babel} shorthand, then \mst does not do anything at all (beyond
+    its general business at package loading time to set-up the
+    font used for the non-active token).
 %
-\footnote{Conrad \textsc{Kosowsky}, \emph{Use TrueType and OpenType fonts in math mode}
-\url{https://ctan.org/pkg/mathfont}.}
+  In relation to this context  \mst should always be loaded \emph{after} \ctanpkg{babel}.
+  And also \emph{after} the \ctanpkg{amsmath} package.
+
+\item
+The braces |\{| and |\}| remain unresponsive to the alphabet changing commands
+even after \csb{MTnonlettersobeymathxx}. The user must employ for this
+\centeredline{\csb{MTexplicitbracesobeymathxx}}
+This has the disadvantage that |\{| and
+|\}| become then unusable as variable-size delimiters: |\big\{| or |\big\}|
+create errors and one must make use of |\big\lbrace| and |\big\rbrace|. But
 %
-adapts Unicode text fonts to usage in math mode.  It works with both \XeTeX\
-and \LuaTeX.
-\item For \XeTeX\ only, \ctanpkg{mathspec}%
+\MTmathoperatorsobeymathxx
+\MTnonlettersobeymathxx
+\MTexplicitbracesobeymathxx
 %
-\footnote{Andrew Gilbert \textsc{Moschou}, \emph{Specify arbitrary fonts for mathematics in \XeTeX}
-\url{https://ctan.org/pkg/mathspec}.}
+one can now enjoy $\mathtt{\{a, a>b\}}$, $\mathbf{\{a, a>b\}}$,
+$\mathsf{\{a, a>b\}}$, or even $\mathnormalbold{\{a, a>b\}}$.%
 %
-also allows usage of arbitrary text fonts in mathematics.
-\item and of course
-\ctanpkg{unicode-math}%
+\footnote{This
+  last example uses the \csb{mathnormalbold} additional alphabet defined by
+  \mst.}%
 %
-\footnote{Will \textsc{Robertson}, et al., \emph{Unicode mathematics with
-    support for XeTeX and LuaTeX} \url{https://ctan.org/pkg/unicode-math}.}
-%
-is the standard package for using OpenType fonts which are equipped with the needed extra
-support being used in \TeX\ math mode.
-\end{itemize}
+\footnote{Let me recall that braces will anyhow not be handled at all
+  by \mst if the document
+  font encoding is |OT1|, except under option |alldelims|.}
 
-If using any one of the above you probably don't need, don't want, and should
-not use \mst.
-
-Let me insist that \mst has not been tested in any systematic
-manner under the Unicode engines; and that it is expected to be most definitely
-incompatible with \ctanpkg{unicode-math}, although your mileage may vary and some
-features may appear to work.
-
-When using \mst with either \XeTeX{} or \LuaTeX{} it is recommended to use the
-\ctanpkg{fontspec} package (see remark below on \cs{encodingdefault}).  Furthermore,
-if using \ctanpkg{fontspec} it is \emph{necessary} to load it with its
-|no-math| option, and this \emph{must} happen before loading \mst.
-\begin{framed}
-\begin{itemize}[label=$\bullet$, leftmargin=1em]
 \item
-  Use \ctanpkg{fontspec} with its
-  \emph{no-math} option, and load it \emph{prior} to \mst. As some packages
-  load \ctanpkg{fontspec} themselves (for example |polyglossia|), a
-  \centeredline{|\PassOptionsToPackage{no-math}{fontspec}|} early in the
-  preamble might be needed.
+Even with \csb{MTnonlettersobeymathxx}, the parentheses-like symbols $($, $)$, 
+$[$, $]$, $<$ and $>$ and the slashes $/$, $\backslash$, \emph{if used as
+  left/right delimiters} (i.e.\@ with |\left/\right|) will not respond to math
+alphabet commands. This is mainly explained by the fact that the text font
+will not contain suitable glyphs, hence no attempt was made by \mst to make the
+delimiters pick up their glyphs there.
 
-\item
-  The \ctanpkg{amsmath} package, if used, \emph{must} be loaded \emph{prior} to \mst.
+But \mst does try to pick up most of the `small variants' of the delimiters
+from the text font: |$\left<x\right>$| gives $\left<x\right>$ but
+|$\left<b\right>$| gives $\left<b\right>$.  Notice that this differs from
+standard \LaTeX{} for which |$\left< x\right>$| gives $\langle x\rangle$. As
+it is perhaps a bit strange to have $\left< x\right>$ and $\left< y\right>$
+not use the same bracketing glyphs, there is an option \xA7nosmalldelims\xA7: with
+this option the small-sized variants of the delimiters are not modified by
+\mst (option \xA7nosmalldelims\xA7 has the side effect that, for the non-delimiter
+uses of |\{, \}| to be \mst-ified it is necessary to issue
+\csb{MTnonlettersobeymathxx} and \csb{MTexplicitbracesobeymathxx}.)\par
 
 \item
-  Under |lualatex| engine, it is recommended to also load the package
-  \ctanpkg{lualatex-math}.%  Please check its documentation as possibly it has now
-  % been incorporated upstream (I am not following up on the situation).
+At any rate, as said above, whether `small' or not, delimiters will remain
+unresponsive to math alphabet commands, due to technical aspects of \TeX, and
+the way \mst handles these things. Examples:
+\begin{itemize}[nosep]
+\item |\mathbf{<a,b>}| gives $\mathbf{<a,b>}$: no use of |\left/\right|, hence
+  brackets do obey the math alphabets --- as we issued
+  \xA7\MTnonlettersobeymathxx\xA7 a bit earlier, 
+\item |\mathbf{\left<a,b\right>}| gives
+  $\mathbf{\left<a,b\right>}$:  delimiters used with |\left/\right| will not obey
+  the math alphabets,
+\item |\mathbf{\mathopen{<}a,b \mathclose{>}}| gives
+  $\mathbf{\mathopen{<} a,b \mathclose{>}}$: no |\left/\right|, so the
+  brackets do obey the math alphabets due to \xA7\MTnonlettersobeymathxx\xA7.
+\item 
+\MTnonlettersdonotobeymathxx
+to compare, the \LaTeX{} standard for
+|\mathbf{\mathopen{<}a,b\mathclose{>}}| is to produce
+$\mathbf{\mathopen{<} a,b \mathclose{>}}$: neither brackets nor the comma are
+responding to \cs{mathbf}.
 \end{itemize}
-\end{framed}
+\end{itemize}
+\end{footnotesize}
 
-% obsolete with release 1.3:
-% A little piece of the functionality of \mst is less fully
-% realized under the \LuaLaTeX{} engine than it is with
-% \XeTeX{}. This is a temporary situation as the needed feature
-% of \LuaLaTeX{} has been implemented in its latest development
-% release. I will update \mst when these binaries will have
-% reached the distribution stage.
+\endgroup
 
-I already mentioned in the section \ref{sec:ic} the fact that
-the italic corrections were not available for OpenType fonts
-under the \XeTeX{} engine and only partially available for the
-\LuaTeX{} engine, with the result that the spacings in math
-mode when using for the letters an upright text font will be
-less satisfying than with the standard PDF\TeX{} engine (the
-OpenType fonts not being usable with the latter engine, this is
-not a criterion of choice anyhow).
+\subsubsection{Hacking letters (and even digits) for special tasks}
+\label{ssec:hackingletters}
 
-To define math versions when using unicode fonts, use \ctanpkg{fontspec}'s
-\cs{setmainfont} before the \cs{Mathastext}\oarg{version} command, or simply
-before loading \mst for the default math versions.
+For some ascii characters, i.e.\@ the ``hard'' non-letters considered in the
+previous section, and even more spectacularly for all ascii letters, \mst
+achieves the capabilities describes in earlier sections via a \TeX nique known
+as ``mathematically active characters''.  For letters this is turned on by
+default, but for the non-letter characters it is the command
+\cs{MTnonlettersobeymathxx} which triggers this mathematical activation.
 
-It is possible to mix usage of Unicode fonts and classical \TeX{}
-fonts. All used 8bits font encoding must have been passed as
-options to the \ctanpkg{fontenc} package.
+It is possible for daring \LaTeX{} users to hook into this architecture.
+Release \mstrelease{1.4} has made this especially easy regarding ascii letters
+(and even for digits if using the package option \xA7activedigits\xA7).
 
-\subsubsection{The unicodeminus option}
+Except if told otherwise, \mst will make all Latin ascii letters mathematically
+active, and when \TeX{} encounters e.g.\@ `e' in math mode it replaces it with
+the macro having name \cs{MTcommandlettere} (mind the ending |e|).  Its
+default definition inserts \hyperref[sec:mathskips]{optional extra skips}
+and/or an \hyperref[sec:ic]{italic correction}.
 
-For legacy reason, \mst uses by default the |EN DASH U+2013| for the minus
-sign in math mode, if the font is determined to be a ``Unicode'' font.
-
-There is now the \xA7unicodeminus\xA7\RightNote{1.3q} to use rather
-% BORDEL DE BORDEL DE FAIT CHIER \verb ET Text for \verb command ended by end
-% of line. je l'ai patch\xE9 dans etoc et xint mais pas ici encore.
-|MINUS SIGN U+2212|.%
-\footnote{Thanks to Tobias~\textsc{Brink} who asked for this feature.}
+You can redefine this \cs{MTcommandlettere}, or any
+\cs{MTcommandletter}\meta{ascii-letter}, to achieve (globally or locally)
+custom goals.%
 %
-Check \hyperref[nicodeminus]{\ttfamily\hyphenchar\font=189 its documentation}
-on page \pageref{nicodeminus}.
-
-\subsubsection{Two examples}
-
-I include
-here two examples which compiled successfully with \XeTeX{} and
-\LuaLaTeX{}, the first one on a Linux machine, the second one on a Mac
-OS X machine.\footnote{A |tex mathastext.dtx| (in a temporary repertory) on a
-  copy of |kpsewhich mathastext.dtx| will extract extended versions of
-  these examples as test files.}
+\footnote{\CHANGED{\mstrelease{1.4}}%
+Prior to \mstrelease{1.4}, there was no equivalent to
+\cs{MTcommandletter}\meta{letter}.  An internal macro \cs{mst@}\meta{letter}
+stood for what is denoted now \cs{MTmathcharletter}\meta{letter}, but required
+a \cs{protected} if redefined as it was submitted to an \cs{edef} during
+processing.}
+%
+Attention, this redefinition should not use `e' itself as a ``naked''
+character to typeset in math mode, else an infinite loop will arise at time of
+use. To access a symbol equivalent to the ``naked'' `e', use
+\cs{MTmathcharlettere} (again mind the ending |e|).  For example:
 \begin{verbatim}
-\documentclass{article}
-\usepackage[hscale=0.8]{geometry}
-\usepackage{multicol}
-\usepackage[no-math]{fontspec}
-\usepackage{lmodern}
-\usepackage[subdued,italic]{mathastext}
-\setmainfont[Color=999999]{Verdana}      \Mathastext[Verdana]
-\setmainfont[Color=0000FF]{Arial}        \Mathastext[Arial]
-\setmainfont[Color=00FF00]{DejaVu Serif} \Mathastext[DejaVu]
-\MTDeclareVersion{times}{T1}{ptm}{m}{n}
-\setmainfont[Color=FF0000]{Andale Mono}  \Mathastext[Andale]
-\begin{document}
-\newcommand\TEST[1]{\MTversion{#1}%
-\begin{multicols}{2}
-\hbox to\columnwidth{\hbox to\columnwidth{\hfil
-                $abcdefghijklmnopqrstuvwxyz$\hfil}\kern-2.5em{#1}}
-   \centerline{ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$ }
-   \centerline{ $0123456789$ }
-   \centerline{ $!\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\backslash$ }
-\columnbreak
-   \centerline{ abcdefghijklmnopqrstuvwxyz }
-   \centerline{ ABCDEFGHIJKLMNOPQRSTUVWXYZ }
-   \centerline{ 0123456789}
-   \centerline{ !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,%
-   \$\,\%\,\&\,<\,>\,|\,\{\,\}\,\char92 }
-\end{multicols}}
-\begin{multicols}{2} 
-   \centerline{\textbf{math mode}} 
-\columnbreak
-   \centerline{ \textbf{text} }
-\end{multicols}
-\TEST{DejaVu}\TEST{Verdana}\TEST{times}\TEST{Andale}
-\TEST{Arial}\TEST{bold}\TEST{normal}
-\end{document}
+\renewcommand\MTcommandlettere{\mathsf{\MTmathcharlettere}}% not \mathsf{e}!
 \end{verbatim}
-And now the same thing with fonts available on Mac OS X:
+In this case we could do the simpler approach with \cs{textsf}, which works
+as it will then typeset the |e| in text mode, not math mode.
 \begin{verbatim}
-\documentclass{article}
-\usepackage[hscale=0.8]{geometry}
-\usepackage{multicol}
-\usepackage[no-math]{fontspec}
-\usepackage{lmodern}
-\usepackage[subdued,italic]{mathastext}
-\setmainfont[Color=FF0000]{Hoefler Text}  \Mathastext[Hoefler]
-\setmainfont[Color=336633]{American Typewriter}\Mathastext[Typewriter]
-\setmainfont[Color=0000FF]{Herculanum}    \Mathastext[Herculanum]
-\setmainfont[Color=FF00FF]{Didot}         \Mathastext[Didot]
-\setmainfont[Color=999999]{Comic Sans MS} \Mathastext[Comic]
-\begin{document}
-   --- copy here the code from the previous example ---
-\TEST{Didot}\TEST{Comic}\TEST{normal}\TEST{Herculanum}
-\TEST{Hoefler}\TEST{Typewriter}\TEST{bold}
-\end{document}
+\renewcommand\MTcommandlettere{\textsf{e}}%                  not \mathsf{e}!
 \end{verbatim}
-% The test files which will be produced by running |latex| on
-% |mathastext.dtx| are more extent.
+This gives a priori the same result in our \mst context, which
+picks the font for \cs{mathsf} from the one used by \cs{textsf}, assuming here
+default configuration in the preamble following the loading of \mst.%
+%
+\footnote{This example simply reassigns \texttt{e} to another font, and one
+could use also the \LaTeX{} command \cs{DeclareMathSymbol} for this.  But few
+\LaTeX{} users are familiar with its interface, and such an approach could
+cost adding an extra math symbol font, depending on what one wants to do.
+Besides \cs{DeclareMathSymbol} is a preamble-only command, which limits
+considerably its usability, forcing basically the change to apply to the whole
+document. Using the \mst interface via mathematically active characters opens
+up the possibility of arbitrary replacements, of local scope in the document
+body.}
 
-\subsection{Compatibility issues}\label{sec:compat}
+ 
+It is recommended in general to add an extra pair of braces
+to avoid problems when used with |_| and |^|.  Let's give an other example and
+demonstrate its output:
+\begin{verbatim}
+\[
+\renewcommand\MTcommandlettere{{\mathcolor{blue}{\mathsf{\MTmathcharlettere}}}}%
+abcde^efgh
+\]
+\end{verbatim}
+\MTversion{times}
+\[
+\renewcommand\MTcommandlettere{{\mathcolor{blue}{\mathsf{\MTmathcharlettere}}}}%
+abcde^efgh
+\]%
+\MTversion{normal}%
+As this document is in \xA7subdued\xA7 mode, we had, to show the effect, to
+switch temporarily to some math version activating \mst, and we used here a
+|times| math version with Times and Helvetica clones.
 
-Compatibility issues (or just questions of who decides last) are naturally to
-be expected with packages dealing with the math setting; the fix is simply to
-load \mst last. And one should always load |amsmath| before \mst (this is
-especially true when using Unicode engines but applies in general as well).
+If you redefine \cs{MTcommandlettere} as described in this section the optional extra
+math skips added before or after via \xA7\MTsetmathskips\xA7 will be lost, as well
+as the automatic italic correction |\/| added by \mst for an upright font, and it
+is up to the redefinition of \cs{MTcommandlettere} to do the job.
 
-Any definition made in a package loaded before \mst of the font to be
-used for letters or for the common characters in the |ascii| basic range
-will be overruled by the loading of \mst (this includes the case
-when the earlier package had made the character `mathematically active').
-Conversely most of the set-up done by \mst may well be overruled by
-packages loaded later which do math related things.
+The explanations above apply to any (ascii) Latin letters \meta{ascii-letter}
+with associed macros \cs{MTcommandletter}\meta{ascii-letter} and ``naked''
+symbol command \cs{MTmathcharletter}\meta{ascii-letter}.
 
-Starting with version |1.2|, \mst makes some characters `mathematically
-active' to achieve certain effects: automatic insertion of the italic
-corrections when using an upright text font in math, extended scope of
-the math alphabet commands which now apply to non-letter symbols (and
-also to math operator names, but this is much easier to achieve). And
-the (already mathematically active) right quote is modified to have some
-extra space added before the derivative glyph ${}'$.
-
-This is compatible with using \cs{label} and \cs{ref} in and outside of
-math mode. But a difficulty arises when some other package has made the
-character `globally active' everywhere in the document. The action of
-\mst is made anew at each mathematical inline or displayed formula. If
-it is detected that a character has been activated then nothing further
-will be done (so the \mst feature\footnote{italic correction insertion
-  for the latin letters, receptivity to the math alphabet action for the
-  other characters.} for that character is lost) \emph{except} if it
-appears that this activation was done by the Babel system. In that case
-\mst does not make the character mathematically active but it modifies
-in the appropriate manner the action of Babel for that character in math
-mode. Furthermore \mst makes the character mathematically
-\emph{inactive}.\footnote{only the characters
-  {{;}\,{,}\,{:}\,{!}\,{?}\,{+}\,{\textendash}\,{=}\,{<}\,{>}\,{(}\,{)}\,{[}\,{]}\,*}
-  mentioned in section \ref{sec:mathxx} as `difficult non letters' (and
-  the right quote {'}) and
-  the latin letters are concerned here; it seems highly unprobable that
-  a latin letter ${\in}\{a\mbox{--}z,A\mbox{--}Z\}$ will have been made
-  globally active (only letters never being used in command names are
-  possible candidates), but \mst has been
-  designed to cope with it, should it happen ...}
-
-Here is indeed some code that you should \textbf{not} try at
-home:
+With option \xA7activedigits\xA7 you can even extend the game to digits.  The
+``raw'' digit symbol is kept as a math symbol control sequence
+\cs{MTmathchardigit}\meta{y} where \meta{y} stands for the Roman version of
+the digit: empty
+for $0$, then |i|, |ii|, etc... until |ix|.  The macro to redefine for special
+effect is \cs{MTcommanddigit}\meta{y}. Example:
 \begin{verbatim}
-    \documentclass{article}
-    \usepackage[french]{babel}
-    \usepackage{mathtools}\mathtoolsset{centercolon}
-    \begin{document}
-    $:$
-    \end{document}
+\[
+\renewcommand\MTcommanddigit{{\MTmathchardigit^{\mathcolor{blue}{1}}
+                                             _{\mathcolor{red}{2}}}}%
+\renewcommand\MTcommanddigiti{{\boxed{\mathbf{\MTmathchardigiti}}}}
+0^0_0
+\]
 \end{verbatim}
-\fbox{DO NOT DO THIS AT HOME}\thinspace: it creates an infinite
-loop.\footnote{This seems to still be the case with Babel |3.9f| and
-  frenchb.ldf |2.6e|, as tested on Sep. 2, 2013. Again tested with up-to-date
-  TL2015 Jan. 15, 2016 with same result.} This is due
-to the fact that the colon is simultaneously active (this is made by
-\ctanpkg{babel-french} at begin document) and mathematically active (done by
-\ctanpkg{mathtools} in the preamble). The interaction gives an infinite loop. Such a
-situation will be cured by \mst, even loaded before \ctanpkg{mathtools},
-\emph{if} use is made of \cs{MTnonlettersobeymathxx}. At each math formula
-\mst will detect that Babel has activated the colon, and will cancel the
-mathematical activation (the precise definition done by \ctanpkg{mathtools} was
-already lost at begin document due to overwriting by \ctanpkg{babel} but the fact that
-the character was mathematically active remained true).
+\MTversion{times}
+\[
+\renewcommand\MTcommanddigit{{\MTmathchardigit^{\mathcolor{blue}{1}}
+                                             _{\mathcolor{red}{2}}}}%
+\renewcommand\MTcommanddigiti{{\boxed{\mathbf{\MTmathchardigiti}}}}
+0^0_0
+\]%
+\MTversion{normal}%
+(\cs{boxed} is from \ctanpkg{amsmath}) Let's hope you find better
+usage... recall that you can't use digit $0$ in its redefinition but must use
+\cs{MTcommanddigit}.  But you can of course use other digits... except if
+their definitions use the digit $0$ rather than the non-active symbol control
+sequence \cs{MTmathchardigit}.
 
+See also \xA7\MTmathactiveletters\xA7 and \xA7\MTmathactivedigits\xA7.
 
 
-  So far I have briefly described the problem of document active
-  characters (see the test file |mathastexttestalphabets.tex| for more
-  explanations and illustrations,  and the commented source code of the
-  package). Pure mathematical activation revealed an incompatibility of
-  another type with \ctanpkg{amsmath}. To fix it, \mst now replaces
-  an inner macro of \ctanpkg{amsmath}
-  (\cs{resetMathstrut@}) with its own version.\\
-  \null\hspace{1cm}\fbox{Always load \ctanpkg{amsmath} before \mst.}\\
-  Actually this last commandment was already made necessary by the use of the
-  text endash to represent the minus sign in math mode, and, especially for
-  Unicode engines, some aspects of the \cs{DeclareMathOperator} macro from
-  \ctanpkg{amsmath}.
 
-  \begin{framed}\kern-.75\baselineskip
-    \begin{framed}
-      \textbf{Important!} As is mentioned in the section \ref{sec:mathxx},
-      after command \xA7\MTnonlettersobeymathxx\xA7, characters such as
-      |?|, or |[|, now represent \emph{two} `tokens' and this will utterly
-      confuse \TeX{} if some precautions are not taken. Examples: |$0^+$| or
-      |$x\mathrel?y$| or |$R^*$| \emph{must} be input now as |$0^{+}$|
-      and, respectively, 
-      |$x\mathrel{?}y$| or |$R^{*}$|. This is why the package does
-      \xA7\MTnonlettersdonotobeymathxx\xA7 by default.
-    \end{framed}\vskip-.75\baselineskip
-  \end{framed}
-  One thing to take note of is that this mechanism uses the \cs{everymath}
-  and \cs{everydisplay}, so if it is needed to add to these \TeX{} `token
-  lists' some additional things this should be done in a way preserving the
-  former contents.
-
-  If one issues (after |\begin{document}|) |\everymath={}| and
-    |\everydisplay={}| this annihilates not only all the \mst (evil ?) doings
-    with math active characters but also everything else some other package
-    might have put in these token registers, so it is better, if the need
-    arises to cancel the math activation of characters done by \mst to use the
-    command \xA7\MTeverymathoff\xA7, which does all of
-    \xA7\MTmathoperatorsdonotobeymathxx\xA7, \xA7\MTnonlettersdonotobeymathxx\xA7 (already
-    default), \xA7\MTmathstandardletters\xA7, \xA7\MTnormalprime\xA7, and
-    \xA7\MTnormalasterisk\xA7. This is supposed to be used in a group or
-    environment (as there is no |\MTactivemathon|). It must be used prior to
-    entering math mode.
-
-    \begin{framed}
-      \textcolor{magenta}{\bfseries New with 1.3i:} \mst patches |\url| of
-      packages \ctanpkg{url} and \ctanpkg{hyperref}, and also |\nolinkurl|, to force them
-      to do automatically \xA7\MTeverymathoff\xA7. Indeed they use math mode, and it
-      is better to turn \mst off for their dealings.
-    \end{framed}
-   
-
 % 2 septembre 2013; finalis\xE9 22:58
 % Mardi 19 d\xE9cembre 2023: l'utilisation de bleu alors que ce n'est
 % pas un lien \xE9tait tr\xE8s mauvais.
@@ -4503,7 +4202,7 @@
 \item \mstcmd{Mathastext} (or \mstcmd{mathastext}) reinitializes \mst: it sets the
   fonts used in math mode (in versions |normal| and |bold|) for letters,
   digits and a few ascii symbols to the \emph{current} defaults of encoding,
-  family, series and shape.\footnote{\texttt{\char92Mathastext} updates also
+  family, series and shape.\footnote{\csb{Mathastext} updates also
     the font and shapes for the Greek letters (|LGRgreek| option), and the
     skips to be inserted after the symbols $\oldforall$ and $\oldexists$,
     see \emph{infra.}} Both the normal and bold math version are modified by
@@ -4517,7 +4216,7 @@
       the \LaTeX{} \cs{DeclareMathVersion} macro. \emph{Do not use}
         |\string\Mathastext[foo]| \emph{with
         |foo| equal to ``normal'' or ``bold'';} this is already taken care of by the
-      initial loading of the package or a later command \cs{Mathastext}
+      initial loading of the package or a later command \csb{Mathastext}
       without any optional argument.  And it will be rejected.}
   \item %\textbf{inheritance:}
     \csb{Mathastext}\oarg{version\_name}\oarg{parent\_name}
@@ -4553,7 +4252,7 @@
     \mstcmd{MTlettershape}\marg{sh}.%
 %
 \footnote{These commands exist also with
-    long names: \texttt{\char92Mathastextencoding},
+    long names: \csb{Mathastextencoding},
     etc\dots{} The same applies to the other commands
     mentioned in this section.}
 % 
@@ -4597,7 +4296,7 @@
   of the time of loading the package.}  else letters will
   have the same shape as used for digits and operator-names.
 
-  Another optional argument may be used as last argument.\RightNote{1.3c}
+  Another optional argument may be used as last argument.\RightNote{\mstrelease{1.3c}}
   Similarly as its
   use with \xA7\Mathastext\xA7 this makes the declared math version inherit, for
   things not modified by \mst like large symbols, the font set up of the math
@@ -4645,7 +4344,7 @@
     redefined). In the absence of the optional argument, the mandatory one is
     used. The versions \emph{must} be either |normal|, or |bold|, or previously
     declared ones via \xA7\Mathastext\xA7 or \xA7\MTDeclareVersion\xA7. 
-  \item the starred variant\RightNote{1.3c} does the math set-up, but changes \emph{nothing} to
+  \item the starred variant\RightNote{\mstrelease{1.3c}} does the math set-up, but changes \emph{nothing} to
     the text fonts (see \autoref{sec:mathversions} for a description of the math
     set-up, which summarizes 
     what is done additionally to only using \LaTeX{}'s |\mathversion|).
@@ -4659,7 +4358,7 @@
   option the package checks separately the letter shape for lowercase and
   uppercase. 
 
-  \RightNote{1.3j}\xA7\MTversion\xA7 also does \xA7\MTexistsdoesskip\xA7,
+  \RightNote{\mstrelease{1.3j}}\xA7\MTversion\xA7 also does \xA7\MTexistsdoesskip\xA7,
   \xA7\MTforalldoesskip\xA7, and also \xA7\MTprimedoesskip\xA7,
   \csb{MTmathoperatorsobeymathxx}, except under the |subdued| option for
   \emph{normal} and \emph{bold}, in which case it does the opposite actions.
@@ -4668,17 +4367,13 @@
   the |italic| option) combining the |h| letter and the \={ } accent from the
   \mst font. Note that \cs{mathrm}|{\hbar}| and \cs{mathbf}|{\hbar}| will
   work and that \cs{hbar} does scale in subscripts and exponents. Since
-  |1.3u|, this is a priori compatible with all 8bits text font
-  encodings\RightNote{1.3u} supporting the |\=| text accent in
+  \mstrelease{1.3u}, this is a priori compatible with all 8bits text font
+  encodings\RightNote{\mstrelease{1.3u}} supporting the |\=| text accent in
   the LaTeX way.%
 %
-\footnote{\RightNote{1.3u}The horizontal skips for letter |h| from
-  \cs{MTsetmathskips} are ignored for \cs{hbar}.%  Formerly, a positive
-  % ``before'' skip was not properly taken into account for the horizontal
-  % positioning of the accent and thus gave a bad result. The user can extend
-  % the package \cs{hbar} definition to add skips.
-}
-\footnote{\RightNote{1.3u}The \cs{hbar} redefinition is canceled in normal and
+\footnote{\RightNote{\mstrelease{1.3u}}The horizontal skips for letter |h| from
+  \csb{MTsetmathskips} are ignored for \cs{hbar}.}
+\footnote{\RightNote{\mstrelease{1.3u}}The \cs{hbar} redefinition is canceled in normal and
   bold math versions under the |subdued| option.}
   
 \item \mstcmd{fouriervec}: this is a |\vec| accent taken from the Fourier font;
@@ -4687,7 +4382,7 @@
 \item \mstcmd{pmvec}: this provides a poor man \cs{vec} accent command, for
 upright letters. It uses the right arrow. Does not change
 size in subscripts and exponents.
-\item \RLNote{new description:}{1.3za}\mstcmd{Mathnormal}, \mstcmd{Mathrm},
+\item \RLNote{new description:}{\mstrelease{1.3za}}\mstcmd{Mathnormal}, \mstcmd{Mathrm},
   \mstcmd{Mathbf}, \mstcmd{Mathit}, \mstcmd{Mathsf}, \mstcmd{Mathtt}: they use the
   \mst-ified fonts.  By default, \mstcmd{mathnormal}, \mstcmd{mathrm},
   \mstcmd{mathbf}, \mstcmd{mathit}, \mstcmd{mathsf}, \mstcmd{mathtt} are redefined
@@ -4707,7 +4402,7 @@
    This command is also made available under \xA7subdued\xA7 option in
    the ``normal'' and ``bold'' math versions, as \LaTeX\ does not define it a
    priori, contrarily to \xA7\mathbf\xA7 and other math alphabet commands.
- \item \RightNote{1.3x}\mstcmd{mathgreekup}: math alphabet, only available
+ \item \RightNote{\mstrelease{1.3y}}\mstcmd{mathgreekup}: math alphabet, only available
    under \xA7LGRgreek\xA7 (or \xA7LGRgreeks\xA7) option, which gives access to `upright'
    Greek letters (picked up from a font available in |LGR|-encoding).  Note
    that the package also defines \cs{alphaup}, \dots, \cs{piup}, \dots\
@@ -4725,7 +4420,7 @@
    support as long as suitable usage of \xA7\MTgreekfont\xA7 later on configures a
    suitable font).
 
-  \RightNote{1.3za}Also \mstcmd{mathgreekupbold}.
+  \RightNote{\mstrelease{1.3za}}Also \mstcmd{mathgreekupbold}.
 
 \begin{footnotesize}
   These math alphabets are also available under \xA7subdued\xA7 option in the
@@ -4764,7 +4459,7 @@
   the \xA7subdued\xA7 option anyhow.\par
 \end{footnotesize}
 
-\item \RightNote{1.3x}\mstcmd{mathgreekit}: math alphabet, only available
+\item \RightNote{\mstrelease{1.3y}}\mstcmd{mathgreekit}: math alphabet, only available
   under \xA7LGRgreek\xA7 (or \xA7LGRgreeks\xA7) option, which gives access to `italic'
   Greek letters (picked up from a font available in |LGR|-encoding).  The
   actual shape is configurable via re-defining \xA7\MTgreekitdefault\xA7 and then
@@ -4771,7 +4466,7 @@
   redeclaring the math version via \xA7\Mathastext\xA7 (with optional argument if
   for a math version other than the ``normal'' one), or \xA7\MTDeclareVersion\xA7.
 
-  \RightNote{1.3za}Also \mstcmd{mathgreekitbold}.
+  \RightNote{\mstrelease{1.3za}}Also \mstcmd{mathgreekitbold}.
 
   \begin{footnotesize}
     See the discussion of \xA7\mathgreekup\xA7 for some \TeX\ hacker level
@@ -4782,13 +4477,6 @@
   font for use in math mode. By default, |\imath| and |\jmath| are redefined to use
   them. Since \texttt{1.3t}, these macros obey the \texttt{subdued}
   regime.
-%
-% \footnote{\RightNote{1.3t}Formerly (i.e.\@ since \texttt{1.12}) \mst
-%   redefined the \texttt{\string\i} and \texttt{\string\j} as robust
-%   commands usable both in text and math mode and using the above macros
-%   in the latter. I have decided it wasn't such a good idea and there is
-%   from now on \texttt{1.3t} no such redefinition of \texttt{\string\i}
-%   and \texttt{\string\j}!}
 \item \mstcmd{MathEuler}, \mstcmd{MathEulerBold}: math alphabets to access
 all the glyphs of the Euler font, if option |eulergreek| (or
 |eulerdigits| was passed to the package.
@@ -4811,7 +4499,7 @@
   \cs{let}\cs{varepsilon}$=$\cs{epsilon}, etc\dots,
   in case only the `variant' form of the letter was used
   in the documents.
-\item \hypertarget{symbolmisc}{Miscelleneous mathematical symbols} from the
+\item \hypertarget{symbolmisc}{Miscellaneous mathematical symbols} from the
   postscript Symbol font are made available (or replaced) by option
   \xA7symbolmisc\xA7.\footnote{option \blueit{asterisk} is also required to treat the
     $*$. 
@@ -4818,7 +4506,7 @@
     Recall from \autoref{sec:mathxx} that the asterisk in math mode (also
     when using the control sequence \cs{ast}) appears then to \TeX{} to be
     a composite object.}
-  \makeatletter\let\mst at doasterisk\mst@@doasterisk\makeatother They are
+  \MTactiveasterisk They are
   \cs{prod}~$\prod$ \cs{sum}~$\sum$ \cs{implies}~$\implies$
   \cs{impliedby}~$\impliedby$ \cs{iff}~$\iff$ \cs{shortiff}~$\shortiff$
   \cs{to}~$\to$ \cs{longto}~$\longto$ \cs{mapsto}~$\mapsto$
@@ -4864,47 +4552,89 @@
 The timing for actions of \mst falls into three cases:
 
 \begin{enumerate}
-\item things done during the loading of the package, or delayed to
-  |\AtBeginDocument|,
+\item things done by \mst itself during its loading (some are delayed to
+  |\begin{document}|),
 \item things done as the result of user commands, either in the preamble or in
-  the body of the document,
+  the body of the document, (but note that some commands if used in preamble
+  have a real effect only  at the time of |\begin{document}|),
 \item things done everytime math mode is entered.
 \end{enumerate}
 
-The second category overlaps with the others, as the (preamble) use of some
-commands can have either immediate effect or only trigger some actions in
-|\AtBeginDocument| or perhaps only influence the things done later by \mst
-each time math mode is entered.
+At \mstrelease{1.4}\RLNote{changed:}{\mstrelease{1.4}} a very significant
+change took place: the last category, the one of things done everytime math mode
+is entered, has become \emph{empty}.%
+%
+\footnote{There ia always an exception to a good
+rule, and here it is: only with \LuaLaTeX{} engine, a certain
+command is executed as part of \cs{everymath}.  For details see
+\csb{MTfixfonts}.}
 
-The third category deserves some brief additional comments: it mainly (but not
-exclusively) regards the ``math activation'' of characters, and conversely all
-``math activations'' fall into this category. The package re-checks each time
-math mode is entered if some characters have been made in-between catcode
-active, or math active, and takes appropriate decisions: one important aspect
-of this issue is that |babel|'s mechanism for activating character was not, last
-time I checked, very robust against math active characters. I now checked
-again (on January 15, 2016) that
-\begin{verbatim}
-    \documentclass{article}
-    \usepackage[french]{babel}
-    \usepackage{mathtools}\mathtoolsset{centercolon}
-    \begin{document}
-    $:$
-    \end{document}
-\end{verbatim}
-creates an infinite loop (see section \ref{sec:compat} where this was
-mentioned already, some years ago). Thus \mst has (since |1.2e 2013/01/10|) a
-somewhat elaborate mechanism related to these issues (see the code comments),
-installed into the list of things done by \TeX\ systematically each time
-it enters math mode. For some legacy reason the package also puts into
-this list a few other things which could arguably be done elsewhere once and
-for all. The command \csb{MTeverymathoff} cancels all actions done by
-\mst.
+The \xA7everymath\xA7 option added at \mstrelease{1.4} re-establishes the legacy
+behavior.  Except for ascii letters: they will not even then be made
+mathematically active at each entrance in to math mode, but only once at time
+of package loading (if not \xA7subdued\xA7) and also when using \xA7\MTversion\xA7 (for
+non-\xA7subdued\xA7 math versions).
 
+\begin{shaded*}
+Under \xA7everymath\xA7 option some commands described here as being usable
+everywhere have in fact an effect only if used externally of math mode.
+The documentation is only accurate for the default \mstrelease{1.4}
+configuration, not for the legacy one as re-enacted by \xA7everymath\xA7.
+\end{shaded*}
+
+\subsubsection{Expert commands which are preamble-only}
+
+\begin{enumerate}[label=$\bullet$, leftmargin=1em]
+\item \mstcmd{MTgreekupdefault}:\RightNote{\mstrelease{1.3y}} a command with
+  no argument whose expansion specifies, under \xA7LGRgreek\xA7 regime, the
+  shape for the `|up|' Greek control sequences (and for the no-postfix
+  Greek control sequences under \xA7upgreek\xA7 option) in all \mst math
+  versions declared \emph{afterwards} via \cs{Mathastext} or
+  \cs{MTDeclareVersion}.  The a priori default for this shape is `|n|'
+  (without the quotes).  See
+  \autoref{sec:newgreek}.
+
+  This command can also be defined \emph{prior} to loading the package,
+  as the package itself only does:
+  \centeredline{|\providecommand*\MTgreekupdefault{n}|}
+
+\item \mstcmd{MTgreekitdefault}:\RightNote{\mstrelease{1.3y}} a command with
+  no argument whose expansion specifies, under \xA7LGRgreek\xA7 regime, the
+  shape for the `|it|' Greek control sequences (and for the no-postfix
+  Greek control sequences under \xA7itgreek\xA7 option) in all \mst math
+  versions declared \emph{afterwards} via \cs{Mathastext} or
+  \cs{MTDeclareVersion}.  The a priori default for this shape is `|it|'
+  (without the quotes).
+  See \autoref{sec:newgreek}.
+
+  This command can also be defined \emph{prior} to loading the package,
+  as the package itself only does:
+  \centeredline{|\providecommand*\MTgreekitdefault{it}|}
+\end{enumerate}
+
+
 \subsubsection{Expert commands usable everywhere}\label{sec:cmds}
 
 \begin{enumerate}[label=$\bullet$, leftmargin=1em]
 
+  \item \mstcmd{MTcustomgreek}:\RightNote{\mstrelease{1.3d}} in case \mst has been loaded with one of its
+    Greek related options, this activates the corresponding
+    customization of Greek letters in math mode. It is issued
+    automatically by the package in the preamble (except if loaded with
+    |subdued| option) and at each switch of math version via
+    |\MTversion| or |\MTversion*| (except for the normal and bold math
+    versions in subdued mode). Also available as
+    |\Mathastextcustomgreek|. May be used even inside of math mode.
+
+  \item \mstcmd{MTstandardgreek}:\RightNote{\mstrelease{1.3d}} in case \mst was loaded with one of the Greek
+    related options this command reverts the customization, it resets the Greek
+    letters to their definitions in force at package loading time. Can be used
+    in the preamble, but is mainly for the document body (may even be used
+    inside math mode ...). Done automatically
+    under the |subdued| option when switching to the normal or bold math
+    version. Also available as |\Mathastextstandardgreek|.
+
+
 \DeleteShortVerb{\|}%
 
 \item \mstcmd{MTsetmathskips}\marg{a-z|A-Z}\marg{muglue\_before}\marg{muglue\_after}:
@@ -4911,17 +4641,17 @@
 %
 \MakeShortVerb{\|}%
 %
-  is\RightNote{1.3a} used to specify extra skips (or rather mu glue) to be
+  is\RightNote{\mstrelease{1.3a}} used to specify extra skips (or rather mu glue) to be
   inserted in math mode, before and after a letter. The rationale is that
   standard text fonts used in math mode may sometimes cause glyph (near-)
   collisions with math symbols, as \TeX{} has some implicit expectations on the
   design of fonts for math letters. 
 
-  \begin{framed}
+  \begin{snugshade}
     These extra skips around letters are set at their natural width and do not
     add any stretchability or shrinkability to the math formula as a whole,
     nor do they result in extra potential break points.
-  \end{framed}
+  \end{snugshade}
   
   Random (silly) examples:
   \centeredline{|\MTsetmathskips{x}{\medmuskip}{\thickmuskip}|} \centeredline
@@ -4941,19 +4671,19 @@
 \makeatother
 \end{verbatim}
 
-  \begin{framed}
+  \begin{snugshade}
     \emph{\color{magenta}\bfseries Starting with |v1.3i|:} the extra skips are
     \emph{not} applied to the letters within the scope of math alphabet
     commands, or the letters from operator names (pre-defined or user
     declared).
-  \end{framed}
+  \end{snugshade}
 
 {\footnotesize
   Note that contrarily to the \csb{MTexistsskip}, \csb{MTforallskip}, and
   \csb{MTprimeskip} commands described next, these extra skips (which may be
   specified in the preamble) are not recorded in the definition of the math
-  version (as defined via \xA7\Mathastext\xA7 with its optional argument or via
-  \xA7\MTDeclareVersion\xA7). The declared skips hold thoughout the document
+  version (as defined via \csb{Mathastext} with its optional argument or via
+  \csb{MTDeclareVersion}). The declared skips hold thoughout the document
   until modified or canceled, independently of math versions (of
   course, \mst cancels the skips in the normal and bold math versions if
   package option \blueit{subdued} was used).\par}
@@ -4967,18 +4697,15 @@
   cancels the skips 
   for that letter (they are not set to |0mu| but completely removed).
 
+  The argument may be a macro (or any expandable code) expanding to a letter.
 
-  % setting the skips to |0mu| which prevents formation of ligatures
-  % when the letter is used inside a \cs{mathbf} for example). Example (using a
-  % version with upright Latin Modern): \centeredline
-  % {|\MTsetmathskips{f}{8mu}{0mu}$gffg\MTunsetmathskips{f}ff\mathbf{ff}$|}
-  % gives: \begingroup\MTversion{upright}%
-  % \MTsetmathskips{f}{8mu}{0mu}$gffg\MTunsetmathskips{f}ff\mathbf{ff}$\endgroup.
-  % The ligature was correctly formed.
 
-  The argument may be a macro (or any expandable code) expanding to a letter.
+\item \RightNote{\mstrelease{1.3j}}\mstcmd{MTnormalexists}, \mstcmd{MTexistsdoesskip}: the
+  latter (done by default if not |subdued|, and also on each use of
+  |\MTversion| in the body of the document) makes it so that $\oldexists$
+  takes into account the math glue as specified by \xA7\MTexistsskip\xA7. The
+  former is its opposite.
 
-
 \item \mstcmd{MTexistsskip}\marg{math glue}: specifies the amount of skip or more
   generally glue to put after each $\oldexists$ math symbol. Indeed, upright
   letters (or digits for that matter) often appear to be positioned a bit too
@@ -4991,17 +4718,13 @@
   version (and subsequent ones). One may also use the command at any time in
   the document. In the case of the option |subdued|, the skip is canceled in
   the \emph{normal} and \emph{bold} math versions.
-%
-% \footnote{\RightNote{1.3j}%
-% Formerly, it was set to |0mu|.}
-%
   In the case of the option |italic|, the
   default skip is set to zero.
 
-\item \RightNote{1.3j}\mstcmd{MTnormalexists}, \mstcmd{MTexistsdoesskip}: the
+\item \RightNote{\mstrelease{1.3j}}\mstcmd{MTnormalforall}, \mstcmd{MTforalldoesskip}: the
   latter (done by default if not |subdued|, and also on each use of
-  |\MTversion| in the body of the document) makes it so that $\oldexists$
-  takes into account the math glue as specified by \csb{MTexistsskip}. The
+  |\MTversion| in the body of the document) makes it so that $\oldforall$
+  takes into account the math glue as specified by \xA7\MTforallskip\xA7. The
   former is its opposite.
 
 \item \mstcmd{MTforallskip}\marg{math glue}: the default is to add a |.6667mu| math
@@ -5012,138 +4735,191 @@
     be declared} math versions. In the case of the option |subdued|, the skip
   is canceled in the \emph{normal} and \emph{bold} math
   versions.
-%
-%\footnote{\RightNote{1.3j}Formerly, it was set to |0mu|.} 
   In the
   case of the option |italic|, the default skip is zero for all math versions.
   One may use the command at any location in the document.
 
-\item \RightNote{1.3j}\mstcmd{MTnormalforall}, \mstcmd{MTforalldoesskip}: the
-  latter (done by default if not |subdued|, and also on each use of
-  |\MTversion| in the body of the document) makes it so that $\oldforall$
-  takes into account the math glue as specified by \csb{MTforallskip}. The
-  former is its opposite.
+\item \RightNote{\mstrelease{1.3j}}\mstcmd{MTnormalprime},
+  \mstcmd{MTprimedoesskip}: the latter (done by default if not |subdued|,
+  and also on each use of \csb{MTversion} in the body of the document except
+  for the \xA7subdued\xA7 \emph{normal} and \emph{bold} math version) makes it so
+  that $'$ takes into account the math glue as specified by
+  \xA7\MTprimeskip\xA7. The former is its opposite. In all cases the right quote
+  |'| is a mathematically active character throughout the document producing
+  ${}'$ as is the default in \TeX, it is only its meaning which changes to
+  include or not an extra skip.
 
-\item \mstcmd{MTprimeskip}\marg{math glue}: the default is to add a |0.5mu| skip
-  before the derivative glyph, except for the |italic| option. In the case of
-  the option |subdued|, the skip is canceled in the \emph{normal} and
+  \begin{footnotesize}
+    Even though \xA7\MTprimedoesskip\xA7 is not done in the \xA7subdued\xA7 case, it is
+    \emph{not} a no-op even then in the preamble or in the \emph{normal} and
+    \emph{bold} math versions.\par
+  \end{footnotesize}
+
+\item \mstcmd{MTprimeskip}\marg{math glue}: specifies the amount of math
+  skip to add before the derivative glyph.  The default iniitial value is
+  |0.5mu|, except with the |italic| option where it is |0mu|.  In the case
+  of the option |subdued|, the skip is canceled in the \emph{normal} and
   \emph{bold} math versions.
-%
-%\footnote{\RightNote{1.3j}Formerly, it was set to
-%    |0mu|.}
 
-% obsolete et m\xEAme faux avec 1.3j
-% \footnote{if \cs{begin\{document\}} is not followed
-%     with \cs{MTversion\{normal\}}, the latest values set in the preamble by
-%     these commands are used at the beginning of the document,
-%     even under option \texttt{subdued}.}
+\item \mstcmd{MTnormalasterisk}, \mstcmd{MTactiveasterisk}: the latter will
+  use for |*| and |\ast| the text font asterisk, suitably lowered; the former
+  if used in the preamble tells \mst to not modify the non-\mst situation, or
+  if used in the body to revert to it. Both are no-op's in absence of option
+  \xA7asterisk\xA7.
 
-\item \mstcmd{MTlowerast}\marg{dimen}: a \cs{raisebox} command is
+\begin{footnotesize}
+  A legacy feature is that \xA7\MTactiveasterisk\xA7 is \emph{not} a no-op in
+  \xA7subdued\xA7 \emph{normal} or \emph{bold} math versions, and does let the
+  asterisk obey the \xA7\MTlowerast\xA7 configuration, if used explicitly by user
+  (even in the preamble). 
+
+  At \mstrelease{1.4}\RLNote{changed:}{\mstrelease{1.4}} \mst checks at
+  |\begin{document}| (or each time \xA7\MTaciveasterisk\xA7 is made use of) if
+  * is a Babel shorthand (which I far as I know is the case of no
+  language) or is already mathematically active.  In the latter case the
+  * is not modified in math mode; and it is not modified either if
+  found to be catcode active but not a \ctanpkg{babel} shorthand.  In
+  contrast, the \cs{ast} will always be set to obey \xA7\MTlowerast\xA7
+  configurtion configuration after \xA7\MTactiveasterisk\xA7.
+
+\end{footnotesize}
+
+\item \mstcmd{MTlowerast}\marg{dimen}: under option \xA7asterisk\xA7
+  a \cs{raisebox} command is
   used to lower the text asterisk to produce a reasonable math
   asterisk. The package uses this command initially with
   argument |0.3\height|, this will have to be fine-tuned for
   each given text font but worked out ok with the fonts we
-  tried. Note that the dimension argument will be used also in
+  tried.  The dimension argument will be used also in
   sub-scripts and sub-sub-scripts, so it is best not to use an
-  absolute dimension.
+  absolute dimension.  The dimension specification is for text
+  it can not be with |mu| unit.
 
 \item \mstcmd{MTmathoperatorsobeymathxx}, \mstcmd{MTmathoperatorsdonotobeymathxx}: the
   former is done by default, it makes operator names obey math alphabets. See
-  also section \ref{sec:mathxx}. This functionality \emph{does
+  also \autoref{sec:mathxx}. This functionality \emph{does
     {\normalfont\bfseries not} rely}
   on ``math active characters''. Automatically issued by each \cs{MTversion},
   except under option |subdued| when switching to \emph{normal} or \emph{bold}.
 
-  \item \mstcmd{MTcustomgreek}:\RightNote{1.3d} in case \mst has been loaded with one of its
-    Greek related options, this activates the corresponding
-    customization of Greek letters in math mode. It is issued
-    automatically by the package in the preamble (except if loaded with
-    |subdued| option) and at each switch of math version via
-    |\MTversion| or |\MTversion*| (except for the normal and bold math
-    versions in subdued mode). Also available as
-    |\Mathastextcustomgreek|. May be used even inside of math mode.
+\item \mstcmd{MTmathactiveletters}:\RightNote{\mstrelease{1.3}}
+   `math activation' of all ascii Latin
+  letters. This is done by the package automatically except under the
+  \xA7subdued\xA7 option.
 
-  \item \mstcmd{MTstandardgreek}:\RightNote{1.3d} in case \mst was loaded with one of the Greek
-    related options this command reverts the customization, it resets the Greek
-    letters to their definitions in force at package loading time. Can be used
-    in the preamble, but is mainly for the document body (may even be used
-    inside math mode ...). Done automatically
-    under the |subdued| option when switching to the normal or bold math
-    version. Also available as |\Mathastextstandardgreek|.
-\end{enumerate}
+  At \mstrelease{1.4}\RLNote{changed:}{\mstrelease{1.4}} its behavior was
+  modified significantly: instead of setting some toggle obeyed only at
+  entrance of math mode, it acts on the spot immediately.
+\begin{snugshade}
+  Formerly, this command was only a configuration toggle with no immediate
+  impact (and was not usable from inside math mode).  Indeed, the \mst work of
+  mathematical activation was done (or not done) \emph{each time} math mode
+  was entered (if not in \xA7subdued\xA7), and the ascii letters kept standard
+  mathcodes outside of math mode.
 
-\subsubsection{Expert commands which are preamble-only}
+  The command now does the mathematical activation on the spot and the meaning
+  of the active shape of the ascii letters --- a priori undefined because
+  typesetting a document with an active ascii letter is near impossible, as no
+  \LaTeX{} command name used in the document can contain it --- is modified
+  here and then; but of course the catcodes are not modified only the
+  mathcodes are. Except if \mst is loaded with the \xA7subdued\xA7 option, this
+  mathematical activation is executed already at package loading time.
 
-\begin{enumerate}[label=$\bullet$, leftmargin=1em]
-\item \mstcmd{MTgreekupdefault}:\RightNote{1.3x} a command with
-  no argument whose expansion specifies, under \xA7LGRgreek\xA7 regime, the
-  shape for the `|up|' Greek control sequences (and for the no-postfix
-  Greek control sequences under \xA7upgreek\xA7 option) in all \mst math
-  versions declared \emph{afterwards} via \cs{Mathastext} or
-  \cs{MTDeclareVersion}.  The a priori default for this shape is `|n|'
-  (without the quotes).  See
-  \autoref{sec:newgreek}.
+  If with the \xA7subdued\xA7 option, the command is inactive in the preamble, as
+  well as in the \emph{normal} and \emph{bold} math versions.  In all cases it
+  gets (re-)executed automatically when \xA7\MTversion\xA7 is used for activating a
+  non-subdued math version.
 
-  This command can also be defined \emph{prior} to loading the package,
-  as the package itself only does:
-  \centeredline{|\providecommand*\MTgreekupdefault{n}|}
+  \begin{footnotesize}
+    The new situation may be dangerous if the document author makes a letter,
+    say |A|, catcode active at some point, with a definition of the active
+    state using |\string A|.  As \mst has (earlier, in the preamble) set |A|
+    to be mathematically active as well, and as the \cs{string} changes
+    nothing to that, an infinite loop will be triggered by such an |A| in math
+    mode.
 
-\item \mstcmd{MTgreekitdefault}:\RightNote{1.3x} a command with
-  no argument whose expansion specifies, under \xA7LGRgreek\xA7 regime, the
-  shape for the `|it|' Greek control sequences (and for the no-postfix
-  Greek control sequences under \xA7itgreek\xA7 option) in all \mst math
-  versions declared \emph{afterwards} via \cs{Mathastext} or
-  \cs{MTDeclareVersion}.  The a priori default for this shape is `|it|'
-  (without the quotes).
-  See \autoref{sec:newgreek}.
+    But, having an active ascii letter can only be in very localized portions
+    of a document, and only be authored by experts.  The experts should
+    carefully make sure the mathcode of the letter is not active if they set
+    the catcode to active and let the active meaning use \cs{string} on the
+    letter itself, thus we can trust that the mathematical activation done
+    earlier by \mst is undone and there will be no problems.\par
+  \end{footnotesize}
 
-  This command can also be defined \emph{prior} to loading the package,
-  as the package itself only does:
-  \centeredline{|\providecommand*\MTgreekitdefault{it}|}
-\end{enumerate}
+  This \mstrelease{1.4} change may thus need to be followed by some
+  adjustments in some quite special circumstances caused by some expert
+  interventions.
 
-\subsubsection{Expert commands usable only outside of math mode}\label{sec:cmdsoutmath}
+  See \autoref{sec:mathskips} and \autoref{sec:ic} for the rationale of this
+  mathematical activation, and \autoref{ssec:hackingletters} for ways to
+  use it for other goals.
+\end{snugshade}
+  \begin{footnotesize}
+    If you do want mathematically active letters also in subdued \emph{normal}
+    or \emph{bold} math versions (to apply tricks such as those of
+    \autoref{ssec:hackingletters}) there is \cs{mst at mathactivateletters} which
+    does not check the \xA7subdued\xA7 status.\par
+  \end{footnotesize}
+  
+\item \mstcmd{MTmathstandardletters}:\RightNote{\mstrelease{1.3}}
+  turns off the mathematical active
+  ascii letters, i.e.\@ reverts their mathcodes to package font configuration.
+  Here ``standard'' thus only means
+  that the letters will not be mathematically active, but they are still under the
+  influence of \mst regarding the typeface they use, so they are only
+  ``standard'' from \mst point of view.
 
-They are usable only from outside math mode because they act via turning on
-or off the execution, each time math mode is entered, of certain macros added
-by \mst to the \cs{everymath} and \cs{everydisplay} token list variables.
+  At \mstrelease{1.4}\RLNote{changed:}{\mstrelease{1.4}} its behavior was
+  modified: instead of setting some toggle obeyed only at entrance of math
+  mode, it acts on the spot immediately.
+  \begin{snugshade}
+    \xA7\MTmathstandardletters\xA7 will not try to restore the meaning associated to
+    the catcode active variant of the letter token which may have been in place
+    at the time of \xA7\MTmathactiveletters\xA7.  This meaning is not saved for
+    later reset.
 
-\begin{enumerate}[label=$\bullet$, leftmargin=1em]
+    \emph{Except} if the \emph{letter} was an active Babel-shorthand at the time
+    of \xA7\MTmathactiveletters\xA7, which is in fact almost impossible to achieve
+    via the \ctanpkg{babel} interface.
 
-\item \mstcmd{MTmathactiveletters}: activates the `math activation' of Latin
-  letters. This is done by the package during loading, except under the
-  |subdued| option.
-%
-% \footnote{\RightNote{1.3j}Formerly, it was also executed
-%    from each \cs{Mathastext} in the preamble.}
-  It is again executed in the
-  body at each \cs{MTversion}, except under the |subdued| option when
-  switching to the \emph{normal} or \emph{bold} math versions.
+    And if the letter was catcode-active due to user action,
+    \xA7\MTmathactiveletters\xA7 will not have made it mathematically active, nor
+    will it have modified its active meaning.  So the active meaning may get
+    overwritten only for a letter having a normal catcode at time of
+    \xA7\MTmathactiveletters\xA7 but which for some reason has some meaning
+    associated to its catcode active variant.
+  \end{snugshade}
 
-  The letters are made mathematically active\footnote{the |mathcode|'s are
-    only modified at the time of execution of \cs{everymath},
-    \cs{everydisplay}.} to insert the extra skips as specified by
-  \csb{MTsetmathskips} (see section \ref{sec:mathskips}), and also possibly
-  the italic corrections when using upright fonts (see section \ref{sec:ic}).
+\item \mstcmd{MTmathactivedigits}:\RLNote{new:}{\mstrelease{1.4}}
+  is a no-op except under option
+  \xA7activedigits\xA7.  It then makes all digits mathematically active and is
+  executed during package loading, except if \xA7subdued\xA7.  It is again executed
+  when entering any non-\xA7subdued\xA7 math version in the document body.  See
+  \autoref{ssec:hackingletters} for an example of use.
 
-\item \mstcmd{MTmathstandardletters}: cancels the `math activation' of the letters.
-  Must be re-issued after each \csb{MTversion}, but see
-  \csb{MTeverymathdefault}.
+  \begin{footnotesize}
+    If you do want mathematically active digits also in subdued \emph{normal}
+    or \emph{bold} math versions (to apply tricks such as those of
+    \autoref{ssec:hackingletters}) there is \cs{mst at mathactivatedigits} which
+    does not check the \xA7subdued\xA7 status.\par
+  \end{footnotesize}
 
+\item \mstcmd{MTmathstandarddigits}:\RLNote{new:}{\mstrelease{1.4}}
+  a no-op except under option
+  \xA7activedigits\xA7.  Under this option it resets the digits to their normal
+  mathcodes as configured by the package.
+
 \item \mstcmd{MTicinmath}: this command is executed by default by \mst except in
   case of option |subdued| or if the user chosen letter shape is oblique (|it|
   or |sl|). It tells \mst to add italic corrections after all letters in math
   mode, except within the scope of math alphabets.
-%
-% \footnote{\RightNote{1.3i}%
-% Formerly, italic corrections were added to the (non-oblique) letters of
-%     \cs{mathnormal} arguments.}
 
-  This command and the next ones in this item can be used in the preamble as
-  well as in the body of the document (in case of |subdued| option, using the
-  commands from within the preamble will remain without effect, as the
-  document body will start in the subdued normal math version anyhow.) But
-  each \cs{MTversion} in the body will re-emit \cs{MTicinmath} (in case of
+  This\RLNote{changed:}{\mstrelease{1.4}}
+  command and the next ones in this item can be used anywhere in the
+  document and even from inside math mode.  In case of \xA7subdued\xA7 option, using the
+  command from within the preamble remains without effect, as the
+  document body will start in the subdued normal math version anyhow.
+  Each \cs{MTversion} in the body reemits \cs{MTicinmath} (in case of
   non-oblique letter shape), except if the
   |subdued| option was used and the chosen math version is \emph{normal} or
   \emph{bold}.
@@ -5153,54 +4929,38 @@
 
 {\footnotesize
 
-  It may theoretically be used from inside math mode, but the included
-  \xA7\MTmathactiveletters\xA7 will have an effect only if issued prior to
-  entering math mode.
+  The description above about the command not being executed if the letter
+  shape is italic or slanted is not quite right, as it refers only to the
+  act of inserting or not italic correction.  The
+  \xA7\MTmathactiveletters\xA7 component is always executed, however it will be a
+  no-op in |subdued| \emph{normal} and \emph{bold}.
 
   \mstcmd{MTnoicinmath}: this command deactivates the package added
   italic corrections. It can be used inside as well as outside
-  of math mode (or in the preamble of the document).
+  of math mode (or in the preamble of the document).  Note that it does not
+  deactivate the mathematical activation of the ascii letters.  Use
+  \xA7\MTmathstandardletters\xA7 for that.
 
-  \mstcmd{MTICinmath}, \mstcmd{MTnoICinmath}: these commands activate the italic
-  corrections only for the uppercase letters (but recall that \cs{MTicinmath}
-  is done by default, thus this will typically have to follow
-  \cs{MTnoicinmath}.)
+  \mstcmd{MTICinmath}, \mstcmd{MTnoICinmath}: only acts on the uppercase
+  letters. But recall that \cs{MTicinmath} is done by default, thus
+  using italic corrections only for uppercase needs to go via
+  \cs{MTnoicinmath} then \cs{MTICinmath}.
 
-% obsol\xE8te 1.3i
-  % Following some decision of the package author whose rationale has been
-  % forgotten, afer \cs{MTICinmath} italic corrections for uppercase letters in
-  % arguments to all math alphabets (\emph{i.e.} also \cs{mathnormal}) are
-  % suppressed (with \cs{MTicinmath} the italic corrections are suppressed
-  % inside the scope of math alphabets \emph{except} \cs{mathnormal}.)
-  % No italic corrections are explicitly added inside arguments of math
-  % alphabets.
-
  \mstcmd{MTicalsoinmathxx}: this command de-activates the de-activation of
   the italic corrections inside the arguments to the math alphabet
-  commands. 
-% apart from \cs{mathnormal}. 
+  commands.
   It can be issued inside as well as outside of math mode. Will be effective
   only if \xA7\MTicinmath\xA7 or \xA7\MTICinmath\xA7 is in force.
-% obsol\xE8te 1.3i
-    % \footnote{it is provided
-    % for the \mst defined math alphabet \cs{mathnormalbold} which
-    % contrarily to \cs{mathnormal} is not treated apart from the other
-    % math alphabets.}
   To cancel its effect either enclose it in a group or
     environment or re-issue \xA7\MTicinmath\xA7 after it.
 
 }
 
-\item \mstcmd{MTnormalasterisk}, \mstcmd{MTactiveasterisk}: the latter will use for |*|
-  and |\ast| the text font asterisk, suitably lowered; the former tells \mst
-  to not modify the \LaTeX\ default. Both are no-op without option
-  \xA7asterisk\xA7.
-
 \item \mstcmd{MTeasynonlettersobeymathxx}, \mstcmd{MTeasynonlettersdonotobeymathxx}: the
   former is done by default, it makes characters \verb+.+, \verb+/+, \verb+|+,
   \verb+\+, \verb+#+, \verb+$+, \verb+%+, and \verb+&+
   (if not excluded by package options) obey math alphabet commands. See also
-  section \ref{sec:mathxx}. This functionality does \emph{not} make the
+  \autoref{sec:mathxx}. This functionality does \emph{not} make the
   characters ``math active'' (but it does modify |\mathcode|'s, naturally).
 
 \item \mstcmd{MTnonlettersobeymathxx}, \mstcmd{MTnonlettersdonotobeymathxx}: the former
@@ -5213,89 +4973,91 @@
   it will have to be coded |$a^{!}$|. Hence, by default, the package does
   \xA7\MTnonlettersdonotobeymathxx\xA7.
 
-  \begin{framed}
-    Under |subdued| option, \cs{MTnonlettersobeymathxx} effect is of course
-    canceled in the \emph{normal} and \emph{bold} math versions; but please
-    note that when switching back to a non-subdued math version it will be
-    mandatory to issue again \cs{MTnonlettersobeymathxx} explicitly if its
-    effect is to be re-activated.
-
-    In particular, executing \cs{MTnonlettersobeymathxx} in the preamble or at
-    the start of the document body serves nothing, because the document is in
-    the subdued \emph{normal} math version regime then. It must thus be
-    executed after the first usage of \cs{MTversion} switching to a
-    non-subdued math version, and again on each successive exit from the
-    \emph{normal} or \emph{bold} math versions.
-  \end{framed}
-
 \item \mstcmd{MTexplicitbracesobeymathxx}: extends an earlier \xA7\MTnonlettersobeymathxx\xA7
   to also treat  \verb|\{| and \verb|\}|. But then |\left\{|, |\right\}| must
   be coded |\left\lbrace|, |\right\rbrace| rather. There is also
   \mstcmd{MTexplicitbracesdonotobeymathxx}.
 
-\item \RightNote{1.3j}\mstcmd{MTnormalprime}, \mstcmd{MTprimedoesskip}: the latter (done by default if not
-  |subdued|, and also on each use of \csb{MTversion} in the body of the document
-  except for the |subdued| \emph{normal} and \emph{bold} math version)
-  makes it so that $'$ takes into account the math glue as specified by
-  \csb{MTprimeskip}. The former is its opposite. In all cases the right quote
-  |'| is a mathematically active character producing ${}'$ as is the default
-  in \TeX, it is only its meaning which changes to include or not an extra
-  skip. For some (legacy) reason, this change of meaning is done anew
-  by \mst each time math mode is entered. The commands of this item are thus
-  no-op from inside math mode.
-
-
-\item \RightNote{1.3j}\mstcmd{MTeverymathdefault}: this hook is executed by
-  \csb{MTversion}\marg{version\_name}, except under option |subdued|
-  when switching to the \emph{normal} or \emph{bold} math versions. Its
+\item \RightNote{\mstrelease{1.3j}}\mstcmd{MTeverymathdefault}: this hook is executed by
+  \csb{MTversion}\marg{version\_name} (but if under option |subdued|
+  and switching to the \emph{normal} or \emph{bold} math version its default
+  effect is overruled by an \xA7\MTeverymathoff\xA7 executed after it). Its
   default meaning is:
 \begin{verbatim}
     \MTactiveasterisk % this has no effect without option asterisk
     \MTprimedoesskip  % this makes prime glyph obey extra space
     \MTeasynonlettersobeymathxx
-    \MTicinmath       % this does \MTmathactiveletters, hence also skips from
-                      % \MTsetmathskips are obeyed.
+    \MTicinmath       % this does \MTmathactiveletters, hence the extra
+                      % skips from \MTsetmathskips are obeyed.
+    \MTmathactivedigits % this is a no-op in absence of option activedigits
     \MTfixfonts       % only operant under LuaLaTeX.
 \end{verbatim}
-  {\footnotesize Notice that under |subdued| option, switching to the
+  {\footnotesize Under |subdued| option, switching to the
     \emph{normal} or \emph{bold} version does \csb{MTeverymathoff} which
-    includes \cs{MTnonlettersdonotobeymathxx}.
+    includes \xA7\MTnonlettersdonotobeymathxx\xA7.
 
     The default
     \xA7\MTeverymathdefault\xA7 which is issued when going back to a
     non-\emph{normal} or \emph{bold} math version doesn't do
-    \cs{MTnonlettersobeymathxx}: thus it is up to the user to correct this if
-    needed (no issue without |subdued| option).
+    \xA7\MTnonlettersobeymathxx\xA7: thus it is up to the user to correct this if
+    desired.
 
 
 Notice also that \csb{MTversion}\marg{version\_name}, except for \emph{normal}
 or \emph{bold} if |subdued| does \csb{MTforalldoesskip} and
 \csb{MTexistsdoesskip}, which are not included in \cs{MTeverymathdefault}
-actions as they are not related to \cs{everymath} and \cs{everydisplay}.\par}
+actions as they are not related to \cs{everymath} and \cs{everydisplay}.\par
 
-\item \RightNote{1.3j}\mstcmd{MTeverymathoff}: does \xA7\MTnormalasterisk\xA7,
+At \mstrelease{1.4}, the name of this command diverges somewhat from its
+action as mathematical activation of ascii letters (or, optionally, of digits)
+will happen on the spot and not during \cs{everymath} or \cs{everydisplay}
+execution.\par
+}
+
+\item \RightNote{\mstrelease{1.3j}}\mstcmd{MTeverymathoff}: does \xA7\MTnormalasterisk\xA7,
   \xA7\MTnormalprime\xA7, \xA7\MTnonlettersdonotobeymathxx\xA7,
-  \xA7\MTeasynonlettersdonotobeymathxx\xA7, \xA7\MTmathstandardletters\xA7 and
+  \xA7\MTeasynonlettersdonotobeymathxx\xA7, \xA7\MTmathstandardletters\xA7,
+  \xA7\MTmathstandarddigits\xA7\RightNote{\mstrelease{1.4}} and
   \xA7\MTdonotfixfonts\xA7.
 
-  {\footnotesize \RightNote{1.3i}The commands
-    |\url/\nolinkurl| of package |hyperref| and |url| from |url.sty| (which
+    Automatically done by \csb{MTversion}|{normal}| (or |{bold}|) under option |subdued|
+    (and
+    also \csb{MTnormalexists} and
+    \csb{MTnormalforall} are executed then).
+
+
+  {\footnotesize \RightNote{\mstrelease{1.3i}}The commands
+    |\url/\nolinkurl| of package |hyperref| and |\url| from |url.sty| (which
     use math mode under the hood) are patched by \mst to do \xA7\MTeverymathoff\xA7
     automatically: this is needed because \mst modifies anew some mathcodes
     \emph{each time math mode is entered,} hence may overwrite to some extent
-    the specific preparation done by |{url,hyperref}.sty|.
-        % {\parfillskip0pt\hfill
-        % \rlap{\kern10pt\textcolor{magenta}{\bfseries New! (1.3i)}}\par}
+    the specific preparations done by |{url,hyperref}.sty|.
 
-    Automatically done by \csb{MTversion} under option |subdued|
-    if switching to the \emph{normal} or \emph{bold} math versions; and
-    \csb{MTversion} then does also \csb{MTnormalexists} and
-    \csb{MTnormalforall}.
-\par}
+    \RightNote{\mstrelease{1.4}}However, in some cases it may be interesting to
+    be able to apply hacks as described in \autoref{ssec:hackingletters}.
+    You can use now \xA7\MTeverymathoff\xA7 as a hook inside
+    |\url| and |\nolinkurl| commands.  Perhaps redefine it (locally) to do
+    all of the above except \xA7\MTmathstandardletters\xA7 and/or
+    \xA7\MTmathstandarddigits\xA7, and use the \autoref{ssec:hackingletters}
+    instructions to achieve special effects for some letters or digits in
+    the URLs rendered via |\url| and |\nolinkurl|.
+  \par
+  }
 
+\end{enumerate}
+
+\subsubsection{Expert commands usable only outside of math mode}\label{sec:cmdsoutmath}
+
+There is only one pair of commands here: \xA7\MTfixfonts\xA7 and \xA7\MTdonotfixfonts\xA7.
+They are operant only under \LuaLaTeX{}.  As \xA7\MTeverymathdefault\xA7 and
+\xA7\MTeverymathoff\xA7 use them, they arguably could have been listed here, but
+only for engine \LuaLaTeX{}.
+
 \small
 
-\item \RightNote{1.3o}\mstcmd{MTfixfonts}: this is operant only under
+\begin{enumerate}[label=$\bullet$, leftmargin=1em]
+
+\item \RightNote{\mstrelease{1.3o}}\mstcmd{MTfixfonts}: this is operant only under
   \LuaLaTeX{}. It has the effect that each time math mode is entered macro
   \csb{MTfixmathfonts} will be executed. The latter forces so-called |base|
   mode for the used text font in math mode, in an effort to (only partially,
@@ -5302,16 +5064,19 @@
   see code comments) fix the fact that OpenType features such as Lining
   Figures were in some cases not being applied in math mode when one uses text
   fonts there (text fonts are declared by \LuaTeX+|luaotfload| to use |node|
-  mode, which is non-functional in math.) It is invoked automatically by the
+  or |harf| mode, which are non-functional in math.) It is invoked automatically by the
   package (except for |normal| and |bold| math versions under |subdued|
   option), and in normal situations, there is no reason to use it directly.
 
+  \RLNote{changed:}{\mstrelease{1.4}}The hack was updated at \mstrelease{1.4}
+  in order to also handle fonts using |Renderer=HarfBuzz|.
+
 % pas envie de perdre mon temps l\xE0-dessus. D'ailleurs peut-\xEAtre d\xE9j\xE0 pour
 % commencer bm ne fonctionne pas avec fontes OpenType.
 
 % Notice (not tested) that package |bm| is presumably not compatible.
 
-\item \RightNote{1.3o}\mstcmd{MTdonotfixfonts}: cancels the job of
+\item \RightNote{\mstrelease{1.3o}}\mstcmd{MTdonotfixfonts}: cancels the job of
   |\MTfixfonts|. Done automatically in \xA7subdued\xA7 mode when in the |normal| or
   |bold| math version; in normal contexts, there is no reason to use this
   command. Only operant under \LuaLaTeX.
@@ -5321,17 +5086,19 @@
 \subsubsection{Expert commands usable only in math mode}
 
 \begin{enumerate}[label=$\bullet$, leftmargin=1em]
-{\small
-\item\RightNote{1.3p}%
+
+\item\RightNote{\mstrelease{1.3p}}%
 \mstcmd{MTfixmathfonts}: this used to be an internal package macro
-  but it is given a public name at |1.3p| because I discovered that
+  but it is given a public name at \mstrelease{1.3p} because I discovered that
   |$..\hbox{\mathversion{foo}$..$}..$| causes an
   issue and one needs to invoke again \cs{MTfixmathfonts} \emph{after} the
   \verb|\hbox|, for some reason. To be used \emph{only} under \LuaLaTeX{} and only for
   such rare cases where it may be needed.\par
-}
+
 \end{enumerate}
 
+\normalsize
+
 \section{Package options}
 
 \subsection{Summary of main options}
@@ -5410,10 +5177,10 @@
    handles Greek letters, also lowercase (but not uppercase) Greek
    letters will use this a priori italic shape except if some other
    option such as \blueit{upgreek} was used.%
-   \footnote{Since \texttt{1.3x}, in presence of the \blueit{LGRgreek}
-     option in addition to \blueit{italic}, the \cs{MTgreekitdefault}
+   \footnote{Since \texttt{1.3y}, in presence of the \blueit{LGRgreek}
+     option in addition to \blueit{italic}, the \csb{MTgreekitdefault}
      shape is then used for lowercase Greek letters and
-     \cs{MTgreekupdefault} for uppercase.}
+     \csb{MTgreekupdefault} for uppercase.}
  \item \mstopt{frenchmath}: configures the lowercase Latin letters to use
    italic shape (\cs{itdefault}), and uppercase Latin letters to be in
    same shape as for digits and operator names (i.e.\@ a priori
@@ -5424,8 +5191,8 @@
    and uppercase Greek letters will use the same shape as
    operator names, except if some other option such as \blueit{itgreek}
    was used.%
-   \footnote{Under \blueit{LGRgreek} and since |1.3x|, the
-     \cs{MTgreekupdefault} is used for Greek letters if no other option
+   \footnote{Under \blueit{LGRgreek} and since \mstrelease{1.3y}, the
+     \csb{MTgreekupdefault} is used for Greek letters if no other option
      such as \blueit{itgreek} was employed.}
 
    \begin{snugshade}
@@ -5434,9 +5201,7 @@
      be in the same shape as the one for digits and operator
      names) is \textbf{not} undone in the \xA7subdued\xA7 ``normal''
      and ``bold'' math versions.  It holds throughout the
-     document, but math versions declared by \mst may use
-     \xA7\MTshape\xA7 and \xA7\MTlettershape\xA7 to, in effect, obtain
-     whatever configuration is desired.
+     document.
 
      As a bonus, note that doing
      \centeredline{|\usepackage[basic,subdued,frenchmath]{mathastext}|} 
@@ -5490,7 +5255,7 @@
 %\end{footnotesize}
 
 
-\item \mstopt{defaultalphabets}: \RLNote{new behavior}{1.3za}\mst
+\item \mstopt{defaultalphabets}: \RLNote{new behavior}{\mstrelease{1.3za}}\mst
   always defines \cs{Mathnormal}, \cs{Mathrm}, \cs{Mathbf} etc... to
   refer to the \mst-ified text fonts, and redefines the math
   alphabets \cs{mathrm}, \cs{mathit}, \cs{mathtt} etc\dots{} (but
@@ -5501,15 +5266,15 @@
   be available whether or not this option is made use of.
 
   \begin{footnotesize}
-    Prior to |1.3za| (and since |1.15f|), this option also prevented the
+    Prior to \mstrelease{1.3za} (and since \mstrelease{1.15f}), this option also prevented the
     package to declare the \cs{Mathnormal} et al.\@ and \cs{mathnormalbold}
     commands.  In this context, recall that the dreaded ``too many math
     alphabets'' error can only occur on \emph{use} in the document of too many
     of such commands, and not at the time of their declarations.  The author's
-    notes from time of |1.15f| release (|2012/10/25|) only say that it may not
+    notes from time of \mstrelease{1.15f} release (|2012/10/25|) only say that it may not
     be ``useful'' to package user to have both (for example) |\mathrm| and
     |\Mathrm|, which sounds weird if they are to acquire distinct meanings.
-    So since |1.3za| both will exist.  In the default package configuration
+    So since \mstrelease{1.3za} both will exist.  In the default package configuration
     |\mathrm| is configured to expand to |\Mathrm| (with some extra behavior
     under \xA7LGRgreek+\xA7), and with this option or the \xA7defaultrm\xA7 option
     |\mathrm| is kept with its original meaning (and the \xA7LGRgreek+\xA7 extras do
@@ -5516,7 +5281,7 @@
     not work).\par
   \end{footnotesize}
 
-\item \RLNote{changed:}{1.3za}\mstopt{defaultnormal}, \mstopt{defaultrm},
+\item \RLNote{changed:}{\mstrelease{1.3za}}\mstopt{defaultnormal}, \mstopt{defaultrm},
   \mstopt{defaultbf}, \mstopt{defaultit}, \mstopt{defaultsf},
   \mstopt{defaulttt}: tell \mst to not set up, respectively, the
   \cs{mathnormal}, \cs{mathrm}, \cs{mathbf}, \cs{mathit}, \cs{mathsf}, and
@@ -5524,11 +5289,11 @@
   always via \cs{Mathnormal}, \cs{Mathrm}, \cs{Mathbf}, \cs{Mathit}, etc...
 
   \begin{footnotesize}
-    Prior to |1.3za| these options also prevented the creation of the
+    Prior to \mstrelease{1.3za} these options also prevented the creation of the
     corresponding \mst command with an uppercased initial.\par
   \end{footnotesize}
 
-\item \mstopt{ncccomma}:\RightNote{1.3x} it triggers the loading of the
+\item \mstopt{ncccomma}:\RightNote{\mstrelease{1.3y}} it triggers the loading of the
   \ctanpkg{ncccomma} package%
 %
 \footnote{Alexander I. \textsc{Rozhenko}, \emph{Use comma as decimal
@@ -5553,8 +5318,8 @@
   reenact it.  For background on this issue see
   \url{https://github.com/latex3/babel/issues/190}.
 
-  This does not apply to \ctanpkg{decimalcomma} |1.3| or later.}
-\item \mstopt{decimalcomma}:\RightNote{1.3zb} it triggers the loading of the
+  This does not apply to \ctanpkg{decimalcomma} \mstrelease{1.3} or later.}
+\item \mstopt{decimalcomma}:\RightNote{\mstrelease{1.3zb}} it triggers the loading of the
   \ctanpkg{decimalcomma} package%
 %
 \footnote{Antoine \textsc{Missier}, \emph{Comma for decimal numbers},
@@ -5565,7 +5330,7 @@
   \emph{\texttt{decimalcomma}}, the correct way is to use the eponymous
   option.}
 
-\item \mstopt{binarysemicolon}:\RightNote{1.3x} sets (except if
+\item \mstopt{binarysemicolon}:\RightNote{\mstrelease{1.3y}} sets (except if
   \blueit{nopunctuation} is used) the semi-colon to let \TeX\ use
   spacing of binary type, not punctuation type, around the semi-colon
   (it is often used in French mathematical typesetting as separator in
@@ -5575,12 +5340,12 @@
   The effect applies to all math versions, even the \emph{normal} and
   \emph{bold} math versions with \mst having been loaded with the
   \blueit{subdued} option.
-\item \mstopt{frenchmath*}:\RLNote{CHANGED!}{1.3zb} does all three of \blueit{frenchmath},
+\item \mstopt{frenchmath*}:\RLNote{CHANGED!}{\mstrelease{1.3zb}} does all three of \blueit{frenchmath},
   \blueit{decimalcomma} and \blueit{binarysemicolon}.
 
 \begin{footnotesize}
-  Prior to |1.3zb|, this option did what is now available via \xA7frenchmath+\xA7.
-  The |1.3zb|
+  Prior to \mstrelease{1.3zb}, this option did what is now available via \xA7frenchmath+\xA7.
+  The \mstrelease{1.3zb}
   change was made as a follow-up consecutive to the |2.7| release \ctanpkg{frenchmath}.
   Indeed this option as explained in \autoref{ssec:frenchmath} is provided as
   a compatiblity layer with \ctanpkg{frenchmath}, and it was mandatory to
@@ -5588,19 +5353,53 @@
   consecutive to the internal change of \ctanpkg{frenchmath} at its |2.7|
   release to use \ctanpkg{decimalcomma}.\par
 \end{footnotesize}
-\item \mstopt{frenchmath+}:\RightNote{1.3zb} does all three of \blueit{frenchmath},
+\item \mstopt{frenchmath+}:\RightNote{\mstrelease{1.3zb}} does all three of \blueit{frenchmath},
   \blueit{ncccomma} and \blueit{binarysemicolon}.  This is what used to be
-  called \xA7frenchmath*\xA7 prior to |1.3zb|.
+  called \xA7frenchmath*\xA7 prior to \mstrelease{1.3zb}.
 \item \mstopt{endash}, \mstopt{emdash}: use the text font en-dash (\textendash) or even
  the em-dash (\textemdash, but this seems crazy) for the minus sign
  rather than {}-{}. \xA7endash\xA7 option is default for the package.
-\item \mstopt{unicodeminus}:\RightNote{1.3q} use the |MINUS SIGN U+2212| (requires
+\item \mstopt{unicodeminus}:\RightNote{\mstrelease{1.3q}} use the |MINUS SIGN U+2212| (requires
   \ctanpkg{fontspec}.) Or, in the form |unicodeminus=HHHH| with four \emph{uppercased}
   hexadecimal digits: use the |U+HHHH| code point. As \xA7noendash\xA7 really means
   ``use the hyphen from the text font'', \xA7unicodeminus\xA7 remains without effect
   under it, or, naturally, under \xA7nominus\xA7. Without this option,
   \mst uses the |EN DASH U+2013| by default for OpenType fonts.
-\item \mstopt{asterisk}: use the text font (or the Symbol font) asterisk in math mode. 
+\item \mstopt{asterisk}: this tells \mst to replace the binary math operator $*$
+  and the control sequence \cs{ast} with versions which uses the text asterisk
+  * suitably lowered, and with the correct spaces around it as binary
+  operator.  The amount of lowering%
+%
+\footnote{With the option
+    \texttt{symbolmisc}, the asterisk is picked from the Symbol font, and the
+    amount of lowering is non-customizable; however if a math alphabet command
+    is used, the asterisk is then again from a text font and the lowering will
+    be as specified by \cs{MTlowerast}.}
+%
+  is decided by the mandatory argument to the command
+  \csb{MTlowerast}\marg{dimen}. The package does
+  \cs{MTlowerast}|{.3\height}|. Using the |ex| unit as in
+  \cs{MTlowerast}|{.5ex}| is not a good idea as it does not scale properly in
+  the script and scriptscript styles.
+
+  Attention that if using this option, inputs such as |$R^*$| or |$R^\ast$|
+  raise errors and \emph{must} be replaced by |$R^{*}$|, respectively
+  |$R^{\ast}$|.  The $*$ is now `mathematically active'\thinspace%
+%
+\footnote{In
+    a hopefully safe way, for example {\ttfamily\$\string\label\{eq*1\}\$} is
+    ok.}
+%
+  and |*| and |\ast| will obey the math alphabet
+  commands (see \autoref{sec:mathxx}).
+ 
+\item \mstopt{activedigits}: makes all digits mathematically active!  This is
+  reserved to expert \LaTeX{} users.  See \autoref{ssec:hackingletters} for an
+  example.  Do not use this option if you don't intend to make use of such
+  techniques to achieve special effects at some location of your document at
+  least. (I know this goes without saying, but passing this option and not
+  using it is only adding overhead to all your equations with digits).
+
 \item \mstopt{nohbar}: prevents \mst from defining its own
   \cs{hbar}.
 \item \mstopt{noendash}: the minus sign will be the - from the
@@ -5690,7 +5489,7 @@
     declared |\alphaup|, |\alphait|, ...., and the 
     associated \xA7\mathgreekup\xA7
     and \xA7\mathgreekit\xA7 commands to access the underlying fonts, and also since
-    |1.3za| \xA7\mathgreekupbold\xA7 and \xA7\mathgreekitbold\xA7.
+    \mstrelease{1.3za} \xA7\mathgreekupbold\xA7 and \xA7\mathgreekitbold\xA7.
 
     The font used by these math
     alphabet commands in the subdued ``normal'' and ``bold'' is either
@@ -5699,7 +5498,7 @@
     \xA7\MTgreekfont\xA7 when the command \xA7\Mathastext\xA7 (without
     optional argument) was used in the preamble.
 
-    |1.3za| fixes here a bug which froze the target font to be
+    \mstrelease{1.3za} fixes here a bug which froze the target font to be
     the one at time of loading the package: this bug applied
     (only) to the subdued ``normal'' and ``bold'' math versions
     and was not readily visible as there is a priori no reason to
@@ -5716,7 +5515,7 @@
   \xA7LGRgreek\xA7 and then \xA7\MTgreekfont\xA7 manually appropriately.
 
 \item \mstopt{LGRgreek+} and
-  \mstopt{LGRgreeks+}:\RightNote{1.3za} they extend
+  \mstopt{LGRgreeks+}:\RightNote{\mstrelease{1.3za}} they extend
   respectively \xA7LGRgreek\xA7 or \xA7LGRgreeks\xA7 to let Greek letters
   control sequences when in the scope of \xA7\mathrm\xA7, \xA7\mathit\xA7,
   and \xA7\mathbf\xA7 behave as would be expected by LaTeX users who
@@ -5747,7 +5546,7 @@
 accents. As in vanilla \LaTeX{}, they are taken from the font
 for the digits and \cs{log}-like names. Obey the alphabet
 changing commands.
- \item \mstopt{unimathaccents}:\RightNote{1.3u} extends |mathaccents| to
+ \item \mstopt{unimathaccents}:\RightNote{\mstrelease{1.3u}} extends |mathaccents| to
 OpenType fonts. Gave bad results in my brief testing.
  \item \mstopt{defaultimath}: do not overwrite \cs{imath} and
  \cs{jmath} to use \cs{inodot} and \cs{jnodot}.
@@ -5756,8 +5555,26 @@
  \item \mstopt{fouriervec}: provides a \cs{fouriervec} command. The user can then
  add in the preamble \cs{let}\cs{vec}$=$\cs{fouriervec}. There is also
  always available a ``poor man'' vec accent \cs{pmvec} for upright letters.
- \end{enumerate}
+\item \mstopt{everymath}:\RLNote{new:}{\mstrelease{1.4}} this option tells
+  \mst to employ as in the \mstrelease{1.3} releases the
+  \cs{everymath}/\cs{everydisplay} registers to store certain actions to be
+  executed at each entrance into math mode.  The main change with
+  \mstrelease{1.4} is that mathcode changes done by user (or possibly via
+  language changes in a multilingual \ctanpkg{babel} context) in the document
+  body, and which apply to those characters which \mst used to handle as part of
+  \cs{everymath}/\cs{everydisplay}, will now have an effect, whereas with
+  earlier releases or this one
+  with the \xA7everymath\xA7 option, they may get overruled by \mst.  Use
+  \xA7everymath\xA7 for backward compatibility if needed (and \emph{only} if needed).
+  Notice though that regarding ascii letters, there is no return to the
+  pre-\mstrelease{1.4}: they will not acquire their mathcode active status only
+  at each entrance into math mode, even with this option,
+  but once and for all at package loading time, if not \xA7subdued\xA7, or when using
+  \xA7\MTversion\xA7 to enter a non-\xA7subdued\xA7 math version.
 
+  Please report breakages you may encounter to author.
+\end{enumerate}
+
 Thanks to Kevin~\textsc{Klement}, Tariq~\textsc{Perwez}
 and Ricard~\textsc{Torres} for sending bug reports and feature requests when
 the first version of the package was issued.
@@ -5780,6 +5597,7 @@
 \label{sec:changelog}
 
 \begingroup
+\hyphenation{Lua-La-TeX}
 
 \def\MacroFont{\footnotesize\normalfont}
 % utilis\xE9 par verbatim en classe scrdoc (ou plut\xF4t shortvrb)
@@ -5817,16 +5635,27 @@
     \lccode`\~`1
 \lowercase{\endgroup\def~}{\ifvmode\medskip\expandafter\@DTXLOGhelper\fi 1}
 
+% 2024/07/10 hypertargets pour \mstrelease (import\xE9 de etoc, et j'ai d\xE9j\xE0 ici
+% toute une infrastructure rendant le truc trivial avec un fol 1 actif).  Par
+% contre j'ai fait une modification s/#1\[/#1 \[/ car le #1 avant se terminait
+% par un espace.\]\]
+% Et attention au detokenize...
+% Il y a juste un probl\xE8me avec le cas "1.15f and 1.15g".
 \begingroup
     \catcode`\| 0
     \catcode`\\ 12
-|long|gdef|@DTXLOGhelper #1 ----#2|par{|@@DTXLOGhelper #1\[\]|par}
-|long|gdef|@@DTXLOGhelper #1\[#2\]#3|par%
-    {|textbf{#1}% le #1 ici contient un espace
+% Je r\xE9duis \xE0 --- ici.
+|long|gdef|@DTXLOGhelper #1 ---#2|par{|@@DTXLOGhelper #1 \[\]|par}
+|long|gdef|@@DTXLOGhelper #1 \[#2\]#3|par%
+    {|hypertarget{|detokenize|expandafter{|fixonexv#1 and|relax}}{|textbf{#1}} %
      |ifx|relax #2|relax|else [#2]|fi
      |par|nopagebreak}
 |endgroup
 
+% uniquement pour s'occuper de "1.15f and 1.15g" et en profitant du fait qu'il
+% n'y a de r\xE9f\xE9rence \xE0 1.15g nulle part.
+\def\fixonexv#1 and#2\relax{#1}
+
 \catcode`-=\active
 \def-{%
   \catcode`M\active
@@ -5869,7 +5698,7 @@
 \StopEventually{\end{document}\endinput}
 
 \cleardoublepage
-\newgeometry{hmarginratio=3:2}
+\newgeometry{hmarginratio=2:1}
 \small
 
 \section{Implementation}
@@ -5884,27 +5713,44 @@
 %
 %</dtx>
 %<*package>
-% The usual catcode regime for letters and digits is assumed and some characters
-% such as |*|, |`|, |"|, |=| are supposed to be of catcode other at the time of loading
-% of \mst. The source of \mst takes precautions for some other characters such
-% as the right quote |'|, which may thus be active with no harm at the time of
-% loading. By the way, I think \LaTeX2e should have provided to authors a
+% The comments are a kind of palimpsest.  Indeed they are not destined to the
+% reader but to the author: when coming back to the source code perhaps years
+% after having last looked at it, all bits of past information even if
+% obsolete are useful.  Not only comments but perhaps also some ancient parts
+% of the code itself are a bit strange (the author hardly new any \LaTeX{} at
+% that time).
+%
+% For about the same reason, there may be some long macro names which do not
+% fit in the margins and that one sees only partially.  The author sometimes
+% has used a workaround to hyphenate, but not systematically.  Life is
+% time-limited.  At \mstrelease{1.4} large chunks of code have been re-ordered
+% but the global architecture is still somewhat of a mess and doing some such
+% large diffs makes it sometimes difficult to follow small bits of code across
+% commit history, so this is done reluctantly.
+%
+% The usual catcode regime for letters and digits is assumed and some
+% characters such as |*|, |`|, |"|, |=| are supposed to be of catcode other at
+% the time of loading of \mst. The source of \mst takes precautions for some
+% other characters such as the right quote |'|, which may thus be active with
+% no harm at the time of loading (note added |2024/07/16|: very hard to
+% understand why I was so paranoid, but I have kept this annoying constraint).
+%
+% By the way, I think \LaTeX2e should have provided to authors a
 % standard macro to be used at the beginning of a style file to make sure the
 % catcodes are standard. Shorthands created by Babel should be mostly no problem
 % as Babel does the activation only at the |\begin{document}|.
 %
-% The comments have been accumulating through successive versions with only
-% partial efforts to achieve some sort of coherence; as a result some are a
-% bit strange or obsolete to various degrees. And the similar remark
-% applies to some ancient parts of the code itself!
-%
-% Should I require |2005/12/01| \LaTeX? (not sure about the month).
+% \mstrelease{1.4} removes a few code branches still there for support to
+% old \LaTeX{} and requires \LaTeX{} |2020-02-02| (which made |\{| and |\}|
+% \cs{protected}; earlier release |2019-10-01| had math macros such as the
+% math accents and \cs{hbar} robust and so far we kept supporting both new and
+% old contexts).
 %    \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
+\NeedsTeXFormat{LaTeX2e}[2020/02/02]
 \ProvidesPackage {mathastext}
-  [2023/12/29 v1.3zb Use the text font in math mode (JFB)]
+  [2024/07/20 v1.4a Use the text font in math mode (JFB)]
 %    \end{macrocode}
-% |1.3zb| avoids writing \mst info messages also to console output, only log file.
+% \mstrelease{1.3zb} avoids writing \mst info messages also to console output, only log file.
 % Make prefix occupy 20 not 25 characters for alignment with \texttt{LaTeX Font Info},
 % as the latter often issues info messages.  For similar reason the usages of
 % \cs{PackageInfo} will be done with empty lines above and below for better visual
@@ -5915,16 +5761,9 @@
 \immediate\write\m at ne{}
 \PackageInfo{mathastext}{Starting the math mode configuration\@gobble}
 %    \end{macrocode}
-% \LaTeX{} |2019-10-01| release has made robust math macros such as the math
-% accents and \cs{hbar}. 
-%    \begin{macrocode}
-\newif\ifmst at robust@obsessed at LaTeX@era
-\@ifl at t@r\fmtversion{2019/10/01}{\mst at robust@obsessed at LaTeX@eratrue}{}
-\edef\mst at robustifyingspace{\ifmst at robust@obsessed at LaTeX@era\space\fi}
-%    \end{macrocode}
 % Testing for \XeTeX\ and \LuaLaTeX.
 %
-% |1.3g 2015/10/15|: update for the naming of primitives, the situation has
+% \mstrelease{1.3g} |2015/10/15|: update for the naming of primitives, the situation has
 % evolved both on \XeTeX\ side and on the \LuaLaTeX\ side (LaTeX base
 % |2015/10/01|): I was told "U" named math primitives were always available
 % for \LuaLaTeX. For \XeTeX, the XeTeX prefix got replaced by U prefix with
@@ -5967,10 +5806,37 @@
 \ifmst at LuaTeX\mst at XeOrLuatrue\fi
 \ifmst at XeTeX \mst at XeOrLuatrue\fi
 %    \end{macrocode}
-% |1.2|: all inner macros of \mst now starts with |\mst@| for a cleaner
+% \mstrelease{1.4}.  I only checked this is correct with TL2024.
+% The macro will be used with |#1| a catcode 11 or 12 token or a one character
+% control sequence such as |\#|.
+%    \begin{macrocode}
+\ifmst at XeTeX
+  \def\mst at OnlyIfNotMathActive#1{%
+      \ifnum\mst at Umathcodenum`#1="1FFFFF
+           \expandafter\@gobble
+      \else\expandafter\@firstofone
+      \fi
+   }
+\else\ifmst at LuaTeX
+  \def\mst at OnlyIfNotMathActive#1{%
+      \ifnum\mst at Umathcodenum`#1="1000000
+           \expandafter\@gobble
+      \else\expandafter\@firstofone
+      \fi
+   }
+\else
+  \def\mst at OnlyIfNotMathActive#1{%
+      \ifnum\mathcode`#1="8000
+           \expandafter\@gobble
+      \else\expandafter\@firstofone
+      \fi
+   }
+\fi\fi
+%    \end{macrocode}
+% \mstrelease{1.2}: all inner macros of \mst now starts with |\mst@| for a cleaner
 % name-space. 
 %
-% |1.3l 2016/01/29|: hmmm... at this late stage where nobody would expect me
+% \mstrelease{1.3l} |2016/01/29|: hmmm... at this late stage where nobody would expect me
 % to still look at the code, I have found at least two macros which still
 % didn't: \cs{do at the@endashstuff} and \cs{do at the@emdashstuff}.
 %
@@ -5980,16 +5846,16 @@
 % engines for a while, hence it is not hard to adapt to the replacement of
 % |EU1/EU2| by |TU|, maintaining compatibility with legacy installations.
 %
+% At \mstrelease{1.4} the support for obsolete |EU1| and |EU2| font encodings
+% has been removed.
+%
 % \begin{macro}{\mst at OneifUniEnc}
 % The \cs{mst at OneifUniEnc} is expandable but must be used after
 % having set \cs{mst at tmp@enc}... 
 %    \begin{macrocode}
 \def\mst at oti{OT1}
-\def\mst at eui{EU1}\def\mst at euii{EU2}\def\mst at tu{TU}
-\def\mst at OneifUniEnc {%
-    \ifx \mst at tmp@enc\mst at tu   1\else
-    \ifx \mst at tmp@enc\mst at eui  1\else
-    \ifx \mst at tmp@enc\mst at euii 1\else 0\fi\fi\fi }
+\def\mst at tu{TU}
+\def\mst at OneifUniEnc{\ifx\mst at tmp@enc\mst at tu1\else0\fi}
 \newif\ifmst at goahead
 \newif\ifmst at abort
 %    \end{macrocode}
@@ -6006,9 +5872,13 @@
   \def\mst at enc{\encodingdefault}
   \def\mst at fam{\familydefault}
   \def\mst at ser{\seriesdefault}
-  \def\mst at opsh{\shapedefault}  %% will be default shape for operator names
+%    \end{macrocode}
+% \noindent\cs{mst at opsh} will hold default shape for operator names.\newline
+% \cs{mst at ltsh} will hold default shape for letters.
+%    \begin{macrocode}
+  \def\mst at opsh{\shapedefault}
   \def\mst at bold{\bfdefault}
-  \def\mst at ltsh{\shapedefault}  %% will be default shape for letters
+  \def\mst at ltsh{\shapedefault}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -6017,7 +5887,7 @@
 % \end{macro}
 % \end{macro}
 %  \begin{macro}{\mst at greekfont}
-%    |1.15c|: for use by the LGRgreek and selfGreek options. Defined as
+%    \mstrelease{1.15c}: for use by the LGRgreek and selfGreek options. Defined as
 %    an \cs{edef} in order to be able to set-up once and for all the
 %    Greek at the time of \cs{usepackage}. Modifiable in the preamble
 %    via \cs{MTgreekfont}\marg{font\_name}\cs{Mathastext}.
@@ -6026,20 +5896,22 @@
 %    \end{macrocode}
 %  \end{macro}
 % \begin{macro}{Package options}
-%   |2011/03/09|: |1.13| introduces the option LGRgreek and systematic use
+%   |2011/03/09|: \mstrelease{1.13} introduces the option LGRgreek and systematic use
 %   of \cs{if...} conditionals, for better readability (by myself) of
 %   the code.
 %
-%   |1.3x| of |2022/11/03| adds |ncccomma|, |binarysemicolon| and
+%   \mstrelease{1.3y} of |2022/11/03| adds |ncccomma|, |binarysemicolon| and
 %   |frenchmath*| options.
 %
-%   |1.3za| adds |LGRgreek+| and |LGRgreeks+|.
+%   \mstrelease{1.3za} adds |LGRgreek+| and |LGRgreeks+|.
 %
-%   |1.3zb| adds |decimalcomma| and modifies |frenchmath*| to use it.  And
-%   provides |frenchmath+| as an alias to former |frenchmath*|.  Consecutive
-%   to the change at |2.7| of \ctanpkg{frenchmath} which replaced
+%   \mstrelease{1.3zb} adds |decimalcomma| and modifies |frenchmath*| to use
+%   it.  And provides |frenchmath+| as an alias to former |frenchmath*|.
+%   Consecutive to the change at |v2.7| of \ctanpkg{frenchmath} which replaced
 %   \ctanpkg{ncccomma} by \ctanpkg{decimalcomma} and broke the compatibility
 %   recipe explained in \autoref{ssec:frenchmath}.
+%
+%   \mstrelease{1.4} adds options |everymath| and |activedigits|.
 %    \begin{macrocode}
 \newif\ifmst at italic
 \newif\ifmst at frenchmath
@@ -6082,18 +5954,20 @@
 \newif\ifmst at noexclam
     \DeclareOption{noexclam}{\mst at noexclamtrue}
 \newif\ifmst at asterisk
-    \DeclareOption{noasterisk}{\PackageWarningNoLine{mathastext}
-        {option `noasterisk\string' is deprecated.^^J\space\space\space 
-         Check the documentation}}
     \DeclareOption{asterisk}{\mst at asterisktrue}
 \newif\ifmst at nospecials
     \DeclareOption{nospecials}{\mst at nospecialstrue}
-\newif\ifmst at basic % 1.3 to avoid unnecessary patch of amsmath \newmcodes@
+\newif\ifmst at basic
     \DeclareOption{basic}{\mst at basictrue
     \ExecuteOptions{noparenthesis,nopunctuation,%
                     noplusnominus,noequal,noexclam,nospecials,nolessnomore}}
 \newif\ifmst at nohbar
     \DeclareOption{nohbar}{\mst at nohbartrue}
+%    \end{macrocode}
+% \mstrelease{1.4} adds option |activedigits|.
+%    \begin{macrocode}
+\newif\ifmst at activedigits
+    \DeclareOption{activedigits}{\mst at activedigitstrue}
 \newif\ifmst at nodigits
     \DeclareOption{nodigits}{\mst at nodigitstrue}
 \newif\ifmst at defaultimath
@@ -6100,7 +5974,7 @@
     \DeclareOption{defaultimath}{\mst at defaultimathtrue}
 \newif\ifmst at mathaccents
     \DeclareOption{mathaccents}{\mst at mathaccentstrue}
-\newif\ifmst at unimathaccents % 1.3u
+\newif\ifmst at unimathaccents
     \DeclareOption{unimathaccents}{\mst at mathaccentstrue\mst at unimathaccentstrue}
 \newif\ifmst at needsymbol
 \newif\ifmst at symboldelimiters
@@ -6108,7 +5982,7 @@
 \newif\ifmst at symboldigits
     \DeclareOption{symboldigits}{\mst at needsymboltrue\mst at symboldigitstrue}
 \newif\ifmst at symbolgreek
-\newif\ifmst at customgreek %% new with 1.3d
+\newif\ifmst at customgreek
     \DeclareOption{symbolgreek}{\mst at needsymboltrue\mst at symbolgreektrue
                                 \mst at customgreektrue }
 \newif\ifmst at symbolre
@@ -6144,13 +6018,13 @@
     \DeclareOption{itGreek}{\def\mst at greek@select{1}}
     \DeclareOption{upGreek}{\def\mst at greek@select{2}}
 %    \end{macrocode}
-% Starting with |1.15f| the meaning of the `defaultxx' options has changed. They
+% Starting with \mstrelease{1.15f} the meaning of the `defaultxx' options has changed. They
 % now prevent |mathastext| from defining additional alphabets rather than
 % prevent it from identifying the `mathxx' with the new `Mathxx'. The
 % `Mathnormal' and `Mathrm' alphabet commands are always created as they are
 % SymbolFontAlphabets.
 %
-% This was again changed at |1.3za|.  The additional alphabets are
+% This was again changed at \mstrelease{1.3za}.  The additional alphabets are
 % always declared, the options only prevent mapping the existing
 % `mathxx' to the new `Mathxx'.  This may be breaking change if
 % people used these options because they had a need for the
@@ -6169,7 +6043,7 @@
 \newif\ifmst at defaulttt
     \DeclareOption{defaulttt}{\mst at defaulttttrue}
 %    \end{macrocode}
-% Here and elsewhere |1.3za| has removed an
+% Here and elsewhere \mstrelease{1.3za} has removed an
 % \cs{ifmst at nonormalbold} conditional.
 %    \begin{macrocode}
 \DeclareOption{defaultalphabets}{\ExecuteOptions{defaultnormal,defaultrm,%
@@ -6185,15 +6059,21 @@
 \newif\ifmst at fouriervec
     \DeclareOption{fouriervec}{\mst at fouriervectrue}
 %    \end{macrocode}
-% |1.15|: the subdued option. 
+% \mstrelease{1.15}: the |subdued| option. 
 %    \begin{macrocode}
 \newif\ifmst at subdued
     \DeclareOption{subdued}{\mst at subduedtrue}
 %    \end{macrocode}
-% |1.3q|: the unicode option. Thanks to Tobias~\textsc{Brink} for suggesting its
-% incorporation. The parsing of |\CurrentOption| does not seek any robustness,
-% it just does its job if the option is used correctly.
+% \mstrelease{1.4}: the |everymath| option.
 %    \begin{macrocode}
+\newif\ifmst at everymath
+    \DeclareOption{everymath}{\mst at everymathtrue}
+%    \end{macrocode}
+%   \mstrelease{1.3q}: the |unicode| option. Thanks to Tobias~\textsc{Brink}
+%   for suggesting its incorporation. The parsing of \cs{CurrentOption} does
+%   not seek any robustness, it just does its job if the option is used
+%   correctly.
+%    \begin{macrocode}
 \def\mst at unicodeminus {2013}
 \def\mst at checkoption #1unicodeminus#2\mst@#3\mst@@
    {\ifx\\#3\\\PackageWarningNoLine{mathastext}
@@ -6216,7 +6096,7 @@
 %
 %   This broke usage of \cs{Mathastext} macro in preamble.
 %
-%   |1.3w| works around this via \cs{mst at DeclareMathAccent}. And other
+%   \mstrelease{1.3w} works around this via \cs{mst at DeclareMathAccent}. And other
 %   changes were made in \mst code to cope with these complications around
 %   robustness.
 %    \begin{macrocode}
@@ -6226,13 +6106,36 @@
   \DeclareMathAccent{#1}}
 %    \end{macrocode}
 % \end{macro}
+% \begin{macro}{\mst at normalversionname}
+% \begin{macro}{\mst at boldversionname}
 % Helper macros to test math version names. User is not allowed to redefine
 % via \cs{Mathastext} with optional argument or via \cs{MTDeclareVersion} the
-% |normal| and |bold| math versions! Added at |1.3w|, about 7 years late.
+% |normal| and |bold| math versions. Added at \mstrelease{1.3w}, about 7 years late.
 %    \begin{macrocode}
 \def\mst at normalversionname{normal}%
 \def\mst at boldversionname{bold}%
 %    \end{macrocode}
+% \end{macro}\end{macro}
+% \begin{macro}{\mst at OnlyIfNotSubdued}
+%   \mstrelease{1.3u} adds this check that we are not in a subdued normal or
+%   bold math version. We do not push the |#1| out of the TeX conditionals,
+%   and anyhow there was no real need for expandable coding.
+%    \begin{macrocode}
+\def\mst at OnlyIfNotSubdued#1{%
+    \ifmst at subdued
+      \ifx\math at version\mst at normalversionname
+      \else
+        \ifx\math at version\mst at boldversionname
+        \else
+          #1%
+        \fi
+      \fi
+    \else
+      #1%
+    \fi
+}%
+%    \end{macrocode}
+% \end{macro}
 %  \begin{macro}{\exists} \begin{macro}{\mst at exists@skip}
 %  \begin{macro}{\forall} \begin{macro}{\mst at forall@skip} 
 %  \begin{macro}{\MTnormalexists}
@@ -6240,7 +6143,7 @@
 %  \begin{macro}{\MTnormalforall}
 %  \begin{macro}{\MTforalldoesskip }
 %  
-%      |1.15e| |2012/10/21|: math skip/glue \emph{after} \cs{exists} and
+%      \mstrelease{1.15e} |2012/10/21|: math skip/glue \emph{after} \cs{exists} and
 %      \cs{forall}, this is useful with upright letters in math mode.
 %      Each math version has its own user defined values for the skips,
 %      stored as macros. The redefinitions of $\exists$ and $\forall$ are
@@ -6249,20 +6152,20 @@
 %
 %      The subdued option (later and only for the normal and bold math
 %      version) and the italic option (here) set to zero the package
-%      default skips. With |1.2| the skips can be modified on the fly in
+%      default skips. With \mstrelease{1.2} the skips can be modified on the fly in
 %      the document, they are not necessarily set in the preamble once
 %      and for all for each math version.
 %
-%      |1.3j| adds \cs{MTnormalexists}, \cs{MTexistsdoesskip},
+%      \mstrelease{1.3j} adds \cs{MTnormalexists}, \cs{MTexistsdoesskip},
 %      \cs{MTnormalforall}, \cs{MTforalldoesskip}.
 %
-%      Earlier to |1.3j|, |\let\mst at exists@original\exists| was done at End of
+%      Earlier to \mstrelease{1.3j}, |\let\mst at exists@original\exists| was done at End of
 %      Package, now it is done at Begin Document, and same for |\forall|. We
 %      pay attention that use of \cs{MTnormalexists} etc... inside the
 %      preamble does not create self-let's.
 %
 %      Also |subdued| mode will do \cs{MTnormalexists}, \cs{MTnormalforall}
-%      (earlier than |1.3j|, it only set the muskips to |0mu|.) Same when
+%      (earlier than \mstrelease{1.3j}, it only set the muskips to |0mu|.) Same when
 %      using |\MTversion{normal}|, if |subdued|.
 %
 %      For some (random, legacy) reason, the handling of $\exists$ and
@@ -6269,12 +6172,12 @@
 %      $\forall$ is part of the things
 %      not included inside |\everymath/\everydisplay|.
 %
-%      |1.3v| The \mst-defined \cs{exists} and \cs{forall} are created
+%      \mstrelease{1.3v} The \mst-defined \cs{exists} and \cs{forall} are created
 %      \cs{protected}. We feel this matches better with their default
 %      definition as \cs{mathchardef} tokens than dealing with \LaTeX2e robust
 %      macros. Besides, the coding is simpler.
 %    \begin{macrocode}
-\newmuskip\mst at exists@muskip  %% v 1.15e
+\newmuskip\mst at exists@muskip
 \newmuskip\mst at forall@muskip
 \def\mst at exists@skip{1mu}
 \def\mst at forall@skip{.6667mu}
@@ -6318,13 +6221,13 @@
 %  \begin{macro}{\MTnormalprime}
 %  \begin{macro}{\MTprimedoesskip}
 %
-%    |1.2| |2012/12/17|: math skip/glue \emph{before} the \cs{prime}
+%    \mstrelease{1.2} |2012/12/17|: math skip/glue \emph{before} the \cs{prime}
 %    glyph. This is useful with the default CM glyph and upright letters
 %    (in contrast the prime from |txfonts| works fine with upright
 %    letters). For this we replace the \LaTeX{} kernel \cs{active at math@prime}
 %    with our own skip-enhanced version \cs{mst at active@math at prime}.
 %
-%    |1.2b| |2012/12/31|: doing\\
+%    \mstrelease{1.2b} |2012/12/31|: doing\\
 %    \null\hspace{1cm}|{\catcode`\'=\active \global\let'\mst at active@math at prime}|\\
 %    is awfully wrong when the right quote is made active at begin document by
 %    some other package (as happens with |babel| for some languages). So \mst
@@ -6340,40 +6243,95 @@
 %    does its job only as part of the \cs{everymath} and
 %    \cs{everydisplay} token lists.
 %
-%    |1.2e| being paranoid, we take precautions against a possibly
+%    \mstrelease{1.2e} being paranoid, we take precautions against a possibly
 %    catcode active right quote at
 %    the time of loading mathastext.
 %
-% |1.3i| adds \cs{MTactiveprime}.
+% \mstrelease{1.3i} adds \cs{MTactiveprime}.
 % 
-% |1.3j| renames it to \cs{MTprimedoesskip}. Besides, it makes use in the
-% preamble of \cs{MTnormalprime} or \cs{MTprimedoesskip}. 
+% \mstrelease{1.3j} renames it to \cs{MTprimedoesskip}. Besides, it makes use in the
+% preamble of \cs{MTnormalprime} or \cs{MTprimedoesskip}.
+%
+% \mstrelease{1.4} adds the support for the new ``non-everymath''
+% implementation, which has to satisfy to very different constraints.
+%
+% The \cs{MTprimedoesskip} is not a |no-op| in |subdued| math version.
+% This is legacy situation, not changed at \mstrelease{1.4}.
+%
 %    \begin{macrocode}
-\newmuskip\mst at prime@muskip   %% v 1.2
+\newmuskip\mst at prime@muskip
 \def\mst at prime@skip{.5mu}
 \ifmst at italic\ifmst at frenchmath\else\def\mst at prime@skip{0mu}\fi\fi
+%    \end{macrocode}
+% Shouldn't I have rather hacked \cs{prim at s}? (answer: perhaps related to
+% Babel see a comment above).\par
+% \noindent
+% TODO: clarify why I used \cs{sp} not |^| in
+% \cs{mst at active@math at prime} in 2012/2013.\newline
+% TODO: clarify why I am paranoid regarding the |'| catcode here.
+%
+% The |everymath| branch was initially superficially refactored at
+% \mstrelease{1.4}, but unfortunately as \cs{mst at mathactivate} had been
+% modified to not handle mathematically active characters, this meant that the
+% \mst feature of extra math skip was lost under the |everymath| option, due to
+% an oversight by the author.  For this among other reasons having mainly to
+% do with code comments we did \mstrelease{1.4a}.
+%
+% At \mstrelease{1.4} we can not go via \cs{mst at mathactivate} (defined further
+% down in the code) which filters out the already mathematically active
+% characters.
+%
+% Why am I paranoid here about |'| catcode at package loading time? (this
+% looks ridiculous...).
+%    \begin{macrocode}
+\def\mst at tmp#1{%
+\def\mst at mathactivateprime{%
+  \ifnum\catcode`#1=\active
+    \@ifundefined{active at char#1}
+                 {}
+                 {\mst at do@activecase #1{}{\mst at active@math at prime}}%
+  \else
+    \mst@@mathactivate #1{}{\mst at active@math at prime}%
+  \fi
+}%
+%    \end{macrocode}
+% The ``undo'' is needed at \mstrelease{1.4} (but not if |everymath|).
+%    \begin{macrocode}
+\def\mst at undo@mathactivateprime{\mst at mathdeactivate#1{"8000}}%
+}\expandafter\mst at tmp\string'
 \def\mst at active@math at prime{\sp\bgroup\mskip\mst at prime@muskip\prim at s}
-{\catcode`\'=12 
-\gdef\mst@@modifyprime{\mst at mathactivate'{}\mst at active@math at prime}}
-\newcommand*\MTnormalprime   {\let\mst at modifyprime\@empty }
-\newcommand*\MTprimedoesskip {\let\mst at modifyprime\mst@@modifyprime}
-\ifmst at subdued
-    \MTnormalprime
+\ifmst at everymath
+    \newcommand*\MTnormalprime  {\let\mst at modifyprime\@empty}
+    \newcommand*\MTprimedoesskip{\let\mst at modifyprime\mst at mathactivateprime}%
+    \AtBeginDocument{%
+      \everymath\expandafter
+               {\the\everymath    \mst at modifyprime \MTnormalprime}%
+      \everydisplay\expandafter
+               {\the\everydisplay \mst at modifyprime \MTnormalprime}%
+%    \end{macrocode}
+% MEMO: |subdued| case will do its own \cs{MTnormalprime} at
+% |\begin{document}| later as part of \cs{MTeverymathoff}.
+%    \begin{macrocode}
+      \MTprimedoesskip
+    }
 \else
-    \MTprimedoesskip
+%    \end{macrocode}
+% \mstrelease{1.4} must do things a bit differently.
+%    \begin{macrocode}
+    \newcommand*\MTnormalprime  {\mst at undo@mathactivateprime}
+    \newcommand*\MTprimedoesskip{\mst at mathactivateprime}
+%    \end{macrocode}
+% MEMO: |subdued| case will do its own \cs{MTnormalprime} at
+% |\begin{document}| later as part of \cs{MTeverymathoff}.
+%    \begin{macrocode}
+    \AtBeginDocument{\MTprimedoesskip}
 \fi
-\AtBeginDocument{%
-  \everymath\expandafter
-           {\the\everymath    \mst at modifyprime \MTnormalprime}%
-  \everydisplay\expandafter
-           {\the\everydisplay \mst at modifyprime \MTnormalprime}%
-}
 %    \end{macrocode}
 %  \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
 % \begin{macro}{\MTexistsskip}
 % \begin{macro}{\MTforallskip}
 % \begin{macro}{\MTprimeskip}
-%   |1.15e|: These user macros set up the amount of muglue after
+%   \mstrelease{1.15e}: These user macros set up the amount of muglue after
 %   \cs{exists} or \cs{forall}. The normal and
 %   bold math versions inherit the same skips; these skips are set to
 %   zero in case of the subdued, or the italic option. Each command
@@ -6380,7 +6338,7 @@
 %   \cs{Mathastext}\oarg{version\_name} stores the current values in
 %   the definition of the math version.
 %
-%   |1.2|: \cs{MTprimeskip} added, the silly \cs{@onlypreamble} are removed
+%   \mstrelease{1.2}: \cs{MTprimeskip} added, the silly \cs{@onlypreamble} are removed
 %   and the macros are modified to have immediate effect in the document,
 %   independently of their possible use in the preamble for the math
 %   versions to store values.
@@ -6433,7 +6391,7 @@
 %        mathastext font (both in the current math version). If option
 %        |noparenthesis| was used, we leave everything untouched.
 %
-%    In |1.3a|, |2013/09/04|, the modification is done only at the time of
+%    In \mstrelease{1.3a}, |2013/09/04|, the modification is done only at the time of
 %    \cs{MTnonlettersobeymathxx}. It is canceled by
 %    \cs{MTnonlettersdonotobeymathxx}. So the code has been moved to these
 %    macros and here we just store at the begin document the then meaning of
@@ -6440,28 +6398,42 @@
 %    \cs{resetMathstrut@}, and check also if \cs{MTnonlettersobeymathxx} has
 %    been invoked in the preamble.
 %
-%    |1.3f| |2015/09/12| issues only an Info message not a Warning, as I am
+%    \mstrelease{1.3f} |2015/09/12| issues only an Info message not a Warning, as I am
 %    becoming aware from another context (etoc) that Warnings are stressful to
 %    users, in some integrated environments for editing and compiling \LaTeX{}
 %    source files.
+%
+%    \mstrelease{1.4} adds here an \cs{AtEndOfPackage}.  As this must be
+%    executed (if not in the legacy |everymath| context) after the
+%    redefinition of \cs{MTnonlettersobeymathxx} which happens at begin
+%    document.
 %    \begin{macrocode}
 \ifmst at noparen\else
-\AtBeginDocument{%
-    \@ifundefined{resetMathstrut@}{% nothing to do, no amsmath
-    }{% amsmath loaded, and possibly patched by things such as lualatex-math
-    \let\mst at savedresetMathstrut@\resetMathstrut@
-% \PackageInfo{mathastext}{current `at begin document\string' meaning of
-%                          amsmath\MessageBreak
-%                          \string\resetMathstrut@\space preserved for
-%                          future use\@gobble}%
-    \ifx\mst at the\the % means that \MTnonlettersobeymathxx was used in preamble
-      \let\mst at the\@gobble\MTnonlettersobeymathxx
-   \fi}}
+\AtEndOfPackage{%
+  \AtBeginDocument{%
+    \@ifundefined{resetMathstrut@}
+      {}%
+      {%
+       \let\mst at savedresetMathstrut@\resetMathstrut@
+%    \end{macrocode}
+% The |\ifx\mst at the\the| is true iff \cs{MTnonlettersobeymathxx} was used in preamble
+% (last compared to \cs{MTnonlettersdonotobeymathxx}).
+% Setting \cs{mst at the} to \cs{@gobble} here wiil cause \cs{MTnonlettersobeymathxx}
+% to indeed modify \cs{resetMathstrut@} (and it resets \cs{mst at the} to \cs{the} for
+% its behavior in \cs{everymath}).
+%    \begin{macrocode}
+       \ifx\mst at the\the
+         \let\mst at the\@gobble
+         \MTnonlettersobeymathxx
+       \fi
+      }%
+  }%
+}%
 \fi
 %    \end{macrocode}
 %  \end{macro} 
 %
-%      |1.2| |2012/12/20| does some rather daring \emph{math} activation of
+%      \mstrelease{1.2} |2012/12/20| does some rather daring \emph{math} activation of
 %      \verb$; , : ! ? + - = < > ( ) [ ]$  in
 %      math mode to achieve something I wanted to do since a long time: overcome
 %      the mutually excluding relation between the variable-family concept and
@@ -6476,7 +6448,7 @@
 %    the entrance of the math mode are discussed later),\\
 %    \null\hspace{1cm}\fbox{but the concerned characters will now expand in math
 %    mode to \emph{two} tokens.}\\
-%      |1.2c| |2012/12/31|: hence, this current
+%      \mstrelease{1.2c} |2012/12/31|: hence, this current
 %      implementation puts constraints on the input: |$x^?$| or |$x\mathrel?y$|
 %      now create errors. They must be input
 %      |$x^{?}$|, respectively |$x\mathrel{?}y$|.\\
@@ -6488,8 +6460,7 @@
 %        should be used instead) but it can be activated for them too.
 %      
 %
-%  \begin{macro}{\mst at mathactivate}
-%    |1.2b| |2012/12/30|: there were bad oversights in the |1.2| code
+%    \mstrelease{1.2b} |2012/12/30|: there were bad oversights in the \mstrelease{1.2} code
 %    for \cs{mst at mathactivate} related to the possibility for some
 %    characters to have been made active (in the sense of the catcode)
 %    elsewhere (something which often is done by language definition
@@ -6503,7 +6474,7 @@
 %    |:| (assuming for the latter that things would have worked ok before
 %    the twiddling by \mst).
 %
-%    |1.2e| |2013/01/09|: alas |$\ref{eq:1}$| still was a problem.
+%    \mstrelease{1.2e} |2013/01/09|: alas |$\ref{eq:1}$| still was a problem.
 %    Indeed in that case the \mst prefix had no means to know it was
 %    inside a \cs{ref} so it made the character expand to its \mst
 %    redefinition, which is not acceptable inside a
@@ -6566,13 +6537,13 @@
 %    the mathcode to 32768!!}, rather it makes \emph{sure} the character
 %    is not mathematically active.
 %
-%    As |1.2e| is a bit paranoid it takes precautions against
+%    As \mstrelease{1.2e} is a bit paranoid it takes precautions against
 %    the possibility of characters it treats being active at
 %    the time of its loading. Excepted from the scope of the
 %    paranoia are the latin letters (that would be crazy!) and
 %    also |*|, |"| and the left quote |`|.
 %
-%    |1.2f| |2013/01/21| with earlier versions (*) it was important not
+%    \mstrelease{1.2f} |2013/01/21| with earlier versions (*) it was important not
 %    to do twice the business of \cs{mst at mathactivate} (think
 %    |$\hbox{$?$}$|), so I used (this was a bit wasteful) some sort of
 %    boolean macro for each character. But now that there are the
@@ -6590,57 +6561,274 @@
 %    |\label| or |\ref|. So testing for active characters should be done
 %    always... many things should be done always... I leave as is.
 %
-%    |1.3i| |2016/01/06| removes a spurious end of line space in
+%    \mstrelease{1.3i} |2016/01/06| removes a spurious end of line space in
 %    \cs{mst at mathactivate} (did not show as anyhow done in math mode).
 %
-%  \begin{macro}{\mst at do@az}
-%  \begin{macro}{\mst at do@AZ}
-%  \begin{macro}{\mst at addtodo@az}
-%  \begin{macro}{\mst at addtodo@AZ}
-%  \begin{macro}{\mst at the}
-%    |1.2b| |2012/12/28| now that we understand the great advantages of |"8000|
-%    we do it also for all letters a-z and A-Z to insert automatically the
-%    italic corrections. See the \hyperref[sec:ic]{discussion} in the user
-%    manual. Ironically I wrote the code initially for the |italic| option only
-%    to realize later it was more suitable to using an \emph{upright} text font
-%    in math mode! So this mathematical activation of the letters is not done if
-%    the font shape is detected to be |it| or |sl|; to bypass this the command
-%    \cs{MTicinmath} is provided.
+%    \mstrelease{1.4} has significantly refactored the coding, there were
+%    simplication from a changed way to use \cs{mst at mathactivate} for letters
+%    and added branches to accomodate the renouncement to \cs{everymath}.
+% \begin{macro}{\mst at do@activecase}
+% Called by \cs{mst at mathactivate} if |#1| is catcode active.
 %
-%    |1.2e| |2013/01/10| corrects a bad oversight of |1.2b| in
-%    \cs{mst at mathactivate} which made the reproduction of the user manual
-%    illustrations with |$f_i^i$| impossible. As \cs{mst at mathactivate} was
-%    originally used also to get the non-letters obey math alphabet while
-%    maintaining the \TeX{} spacings, it added no extra braces. The braces
-%    should however be added for expansion of math active letters, in order of
-%    things like |x^y| to work as expected. (the group braces do not prevent
-%    ligatures when the letters are arguments to the math alphabet commands,
-%    the added macros \cs{mst at itcorr} and \cs{mst at before<letter>} expanding to
-%    nothing).
+% Check if token activation originates apparently into \ctanpkg{babel}:
+% \begin{itemize}[nosep]
+% \item if NO, nothing is done. The active meaning of |#1| is not modified.
+% \item if YES, we hook into \ctanpkg{babel} associated macros so
+%   that in math mode the catcode active token does what \mst expects it to
+%   do. Its \cs{mathcode} is set to the
+%   one of the associated \cs{mathalpha} symbol as declared by \mst, except
+%   for asterisk and right tick which simply use their ascii number as mathcode.
+% \end{itemize}
 %
-%    Added note |2016/01/06|: it should be explicitly said that the extra
-%    |{..}| in |\mst at mathactivate| for letters end up creating |\hbox|'es
-%    around each letter with its extra skips and explicit italic correction,
-%    when present. These skips are thus set at natural width and do not add
-%    any break point.
+% In the case of \ctanpkg{babel}-spanish which has a catcode active right
+% tick, resetting its mathcode has the advantage to reveal in output the case
+% of a faulty input using the curly right tick U+8217 which one can get easily
+% from copy paste, for example from the |babel-spanish.pdf| file.
 %
-%  \begin{macro}{\MTmath-}\begin{macro}{activeletters}
-%  \begin{macro}{\MTmath-}\begin{macro}{standardletters}
-%    |1.3| |2013/09/02| extends the use of mathematically active letters to
-%    allow the user to specify muglue before and after the letter itself (see
-%    \cs{MTsetmathskips}, below).
-%    Mathematically active letters were previously used only to add the italic
-%    correction; the math activation has now been separated and put in
-%    \cs{MTmathactiveletters}. There is also \cs{MTmathactiveLetters} to allow
-%    math activation only for the uppercase letters. To cancel the (now default,
-%    even with option |italic|) math
-%    activation of letters, there is \cs{MTmathstandardletters}. Version |1.3a|
-%    removes some silly |\string|'s from the code, which prevented to pass
-%    macros as first argument to the command.
-%  \begin{macro}{\MTnonletters-}\begin{macro}{obeymathxx}
-%  \begin{macro}{\MTnonletters-}\begin{macro}{donotobeymathxx}
-%  \begin{macro}{\resetMathstrut@}
-%    These macros are modified in version |1.3a| |2013/09/04| in order to
+% And in general it is dangerous to have a character both catcode active and
+% mathcode active. 
+%
+% Some auxiliaries.
+%    \begin{macrocode}
+\def\mst at magic@v #1#2#3#4#5{#1#3#4}
+\def\mst at magic@vi #1#2#3#4#5#6{#1#2#4#5}
+\def\mst at fork{\ifmmode\mst at magic@v\fi\@thirdofthree}
+\def\mst at safefork{\ifmmode\if at safe@actives\else\mst at magic@vi\fi\fi\@thirdofthree}
+%    \end{macrocode}
+% Some refactoring (and streamlining) at \mstrelease{1.4} here.
+% \begin{footnotesize}
+%   There was at some point in the case of a Babel-active token a special
+%   hanlding for |#1| to use \cs{MTmathcharletter}|#1| (and event for
+%   digits!).  But this is almost impossible to arise in practice:
+% \begin{itemize}[nosep]
+% \item Babel commands to set up a shorthand are preamble only (they use
+%   \cs{AtBeginDocument}),
+% \item A shorthand is made active at begin document, and we don't want that
+%   for a letter!
+% \item Activation is recorded as an instruction in the |.aux| file which
+%   breaks it almost surely (except perhaps for letter |Z| or such not
+%   likely to appear in macro names in the |.aux| file).
+% \item Even if we somehow hack against that (which I did to test) a more
+%   subtle problem arises that Babel updates \cs{nfss at catcodes}, so that the
+%   latter will want to make (e.g.) |a| of catcode 12! This causes breakage
+%   very easily at the time of \cs{process at table} almost as easily as with
+%   the |a| set to be an active character...
+% \end{itemize}
+%
+%^^A In revisiting and
+%^^A improving the coding here (following up on a simplification of
+%^^A \cs{mst at mathactivate} itself, I discovered a bug of earlier releases: in
+%^^A this fictitious "letter made active by Babel" branch the insertion of mu
+%^^A glue around the letter was lost, only the italic correction was kept in the
+%^^A modified meaning of Babel active letter in math mode.  This bug was
+%^^A dissolved by the new way \cs{mst at mathactivate} is used by
+%^^A \cs{mst at DeclareMathLetter} and the ensuing simplifcation here.  But in fact
+%^^A as summarized above this is purely fictitious code, which will never get
+%^^A executed in real life!
+%^^A As I am not of the repenting type, I also add at \mstrelease{1.4} a similar
+%^^A fictituous layer for catcode active digits...\par
+% \end{footnotesize}
+% |#1| here is a character token of catcode 11 or 12.
+% We do something only if the catcode activation appears to have been triggered
+% by \ctanpkg{babel}.  The test has been moved earlier at \mstrelease{1.4}.
+%    \begin{macrocode}
+\def\mst at do@activecase#1#2#3{%
+%    \end{macrocode}
+% As letters and digits are impossible here, |#2| is either empty (which
+% happens only now for asterisk and right tick) or a single token (\cs{mathclose},
+% \cs{mathopen},... ).  When |#2| is not empty, |#3| is always a mathchar
+% token.  For safety we make sure then the mathcode is not active.
+%
+% The rationale is
+% to avoid context where people have both catcode and math active and use
+% |\string|.  In the case of \ctanpkg{babel}-spanish with
+% |activeacute| option it allows to reveal more easily input errors using
+% curly right tick U+8217.
+%
+% Arguably I probably mainly wanted to do this if the character was found
+% catcode active but not a Babel shorthand.  But it ended into the Babel
+% branch and the non-Babel branch for active catcode is to do nothing.
+%
+% |#2| is empty exactly for the case of the right tick and the asterisk.
+% In all other cases, then |#3| is a mathchar token.
+%    \begin{macrocode}
+    \ifx\relax #2\relax\mathcode`#1=`#1\relax\else\mathcode`#1=#3\relax\fi
+%    \end{macrocode}
+% Less \cs{expandafter}'s at \mstrelease{1.4}.  Also, it is now required
+% to make sure:
+% \begin{itemize}[nosep]
+% \item not do it twice in succession (else infinite loop),
+% \item and undo it when deactivating.
+% \end{itemize}
+% This was easily done under legacy code (now only used under |everymath|
+% option, and only for non-letters) as it activated only when entering into
+% math mode.
+%
+% This is more annoying when activation happens in an uncontrolled
+% scope, and we handle this via a \cs{mst at hackedshorthand@<char>} flag.
+%
+% MEMO: the undoing is done in \cs{mst at mathdeactivate} which is invoked
+% only for those non-letters submitted to \cs{mst at mathactivate}.
+%    \begin{macrocode}
+    \ifmst at everymath\else\@ifundefined{mst at hackedshorthand@#1}{\fi
+    \expandafter\let\csname mst at orig@user at active#1\expandafter\endcsname
+                    \csname user at active#1\endcsname
+    \expandafter\let\csname mst at orig@normal at char#1\expandafter\endcsname
+                    \csname normal at char#1\endcsname
+    \ifmst at everymath\else}{}\fi
+%    \end{macrocode}
+% No more \cs{edef}'s at \mstrelease{1.4}.  At this release, in letter case
+% |#3| is empty and |#2| is a single token which needs no extra brace
+% pair as this brace pair will come from its expansion.
+% We can use |{#2}{#3}| in all cases rather than either |{{#2#3}}{}| versus
+% |{#2}#3| depending on whether |#1| is letter or not as was done in the past.
+% Attention that |#2| and |#3| may each be empty.
+%    \begin{macrocode}
+    \def\mst at tmp##1##2{\def##1{\mst at fork{#2}{#3}##2}}%
+    \expandafter\mst at tmp\csname user at active#1\expandafter\endcsname
+                        \csname mst at orig@user at active#1\endcsname
+    \def\mst at tmp##1##2{\def##1{\mst at safefork{#2}{#3}##2}}%
+    \expandafter\mst at tmp\csname normal at char#1\expandafter\endcsname
+                        \csname mst at orig@normal at char#1\endcsname
+    \ifmst at everymath
+    \else
+      \expandafter\let\csname mst at hackedshorthand@#1\endcsname\@empty
+    \fi
+}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mst@@mathactivate}
+%    \begin{macrocode}
+\begingroup
+  \catcode`\~=\active
+  \def\x{%
+\endgroup
+%    \end{macrocode}
+% |##1| is always a token of catcode 11 or 12.
+%    \begin{macrocode}
+\ifmst at everymath
+   \def\mst@@mathactivate##1##2##3{%
+      \begingroup
+      \lccode`~=`##1
+      \lccode`##1=`##1
+%    \end{macrocode}
+% Careful here as |##2| is empty in the asterisk and prime case.  And |##3|
+% also is at \mstrelease{1.4} empty for letters.
+%    \begin{macrocode}
+      \lowercase{\endgroup
+%    \end{macrocode}
+%   Refactoring at \mstrelease{1.4} merged the catcode 11 and catcode 12
+%   branches here and in particular avoided in former case an \cs{edef}.  This
+%   helped into providing the \cs{MTcommandletter}\meta{letter} as a
+%   customizable macro. There was no equivalent to this macro, which here is
+%   |##2|, prior to \mstrelease{1.4}.
+%    \begin{macrocode}
+        \mathcode`##1="8000
+        \def~{##2##3}%
+      }%
+    }%
+\else
+   \def\mst@@mathactivate##1##2##3{%
+      \begingroup
+      \lccode`~=`##1
+      \lccode`##1=`##1
+      \lowercase{\endgroup
+        \mathcode`##1="8000
+%    \end{macrocode}
+% Also, \mstrelease{1.4} possibly execute \cs{mst at mathactivate} everywhere
+% in document body (at version changes for example) or at begin document.
+% Hence this modifies globally the active meaning.  So we add some safeguard
+% here using an \cs{ifmmode}.  And we store the original meaning of the
+% active variant of the token to reset it when ``undoing''.
+%
+% Careful not to do it twice in a row... (but this means \cs{mst at deactivate}
+% might not revert to a user custom redefinition done in-between but to a
+% prior one; although if the character is made active the second
+% \cs{mst at mathactivate} would not have been done).
+%    \begin{macrocode}
+        \@ifundefined{mst at prioractivemeaning@##1}
+                     {\expandafter\let
+                      \csname mst at prioractivemeaning@##1\endcsname ~}
+                     {}%
+        \def~{\ifmmode##2##3\else##1\fi}%
+      }%
+    }%
+\fi
+}\x
+%    \end{macrocode}
+%   At \mstrelease{1.4} the macro was split into two, to test first whether the
+%   character which is encountered is currently with active catcode.
+%
+%   At \mstrelease{1.4}  the non-catcode active branch is entered only if the
+%   character isn't mathematically active at time of use..
+%
+%   Careful that |#2| and |#3| may each be empty.  The test for being a Babel
+%   shorthand is done here and not as prior to \mst at release{1.4} inside
+%   \cs{mst at do@activecase}.
+%    \begin{macrocode}
+\def\mst at mathactivate#1#2#3{%
+    \ifnum\catcode`#1=\active
+      \@ifundefined{active at char#1}{}{\mst at do@activecase #1{#2}{#3}}%
+    \else
+      \mst at OnlyIfNotMathActive{#1}{\mst@@mathactivate #1{#2}{#3}}%
+    \fi
+}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mst at mathdeactivate}
+% This is needed at \mstrelease{1.4} for non-letters which are mathematically
+% activated.  See comments above in \cs{mst at do@activecase}.  Works in
+% sync with \cs{mst at addtodo@nonletters}.
+%
+% The \cs{mst at mathdeactivate} is active (sic) only in the non |everymath|
+% situation.  It will restore a previously existing active meaning if it has
+% been changed.
+%    \begin{macrocode}
+\ifmst at everymath
+\else
+\def\mst at mathdeactivate#1#2{%
+  \mathcode`#1=#2\relax
+  \@ifundefined{active at char#1}
+      {\@ifundefined{mst at prioractivemeaning@#1}
+             {}%
+             {\mst at restoreactivemeaning#1%
+              \expandafter\let\csname mst at prioractivemeaning@#1\endcsname\relax}%
+      }
+      {\@ifundefined{mst at hackedshorthand@#1}
+       {}
+       {\expandafter\let\csname user at active#1\expandafter\endcsname
+                        \csname mst at orig@user at active#1\endcsname
+        \expandafter\let\csname normal at char#1\expandafter\endcsname
+                       \csname mst at orig@normal at char#1\endcsname
+        \expandafter\let\csname mst at hackedshorthand@#1\endcsname\relax
+       }%
+      }%
+}%
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mst at restoreactivemeaning}
+%   At \mstrelease{1.4} when we undo the mathematical activation we now also
+%   restore the prior existing active meaning, if any.  Only in the ``no
+%   |everymath|'' branch (because in the |everymath| \TeX{} itself takes care
+%   of that on exiting the scope of the math mode).
+%    \begin{macrocode}
+\def\mst at restoreactivemeaning#1{%
+    \begingroup
+    \lccode`~=`#1
+    \lccode`#1=`#1
+    \lowercase{\endgroup
+      \expandafter\let\expandafter~\csname mst at prioractivemeaning@#1\endcsname
+    }%
+}
+\fi
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mst at do@nonletters}
+% \begin{macro}{\mst at addtodo@nonletters}
+% \begin{macro}{\mst at the}
+% \begin{macro}{\MTnonlettersobeymathxx}
+% \begin{macro}{\MTnonlettersdonotobeymathxx}
+%    These macros are modified in version \mstrelease{1.3a} |2013/09/04| in order to
 %    cleverly adjust, or not, the |amsmath| \cs{resetMathstrut@}. When used in
 %    the preamble, they just modify \cs{mst at the}. And there is code at begin
 %    document to check the status there of \cs{mst at the} and if its meaning is
@@ -6658,7 +6846,7 @@
 %    |2016/03/03 v2.15a| of |amsmath.sty| is still not compatible with a math
 %    active opening parenthesis. Hence my patch here is still needed.
 %
-%    At |1.3u| \cs{MTnonlettersobeymathxx} and \cs{MTeasynonlettersobeymathxx}
+%    At \mstrelease{1.3u} \cs{MTnonlettersobeymathxx} and \cs{MTeasynonlettersobeymathxx}
 %    are made no-ops under subdued mode. This fixes some bug if for example
 %    the former was used in preamble or immediately after |\begin{document}|
 %    making the minus sign math active although the \mst action was
@@ -6667,42 +6855,42 @@
 %    versions.
 %    \begin{macrocode}
 \newtoks\mst at do@nonletters
-\newtoks\mst at do@easynonletters
-\newtoks\mst at do@az
-\newtoks\mst at do@AZ
+\ifmst at everymath
+\else
+    \newtoks\mst at undo@nonletters
+\fi
+%    \end{macrocode}
+% |#1| is a category 12 character, |#2| is a \cs{mathopen}, or \cs{mathclose},
+% etc..., |#3| is a \cs{mathchar} (of variable family type).
+%
+% At \mstrelease{1.4}, \cs{mst at mathactivate} will not do anything if |#1|
+% is mathcode active (but not catcode active) at time of use.
+%    \begin{macrocode}
+\ifmst at everymath
+    \def\mst at addtodo@nonletters#1#2#3{\mst at do@nonletters\expandafter
+                   {\the\mst at do@nonletters\mst at mathactivate#1#2#3}%
+    }%
+\else
+%    \end{macrocode}
+% We need to automatize some safeguards related to \cs{mst at do@activecase} when
+% deactivating.
+%    \begin{macrocode}
+    \def\mst at addtodo@nonletters#1#2#3{\mst at do@nonletters\expandafter
+                   {\the\mst at do@nonletters\mst at mathactivate#1#2#3}%
+        \edef\mst at tmp{\noexpand\mst at mathdeactivate#1{\the\mathcode`#1}}%
+        \mst at undo@nonletters\expandafter\expandafter\expandafter
+                  {\expandafter\mst at tmp\the\mst at undo@nonletters}%
+    }%
+\fi
 \let\mst at the\@gobble
-\newcommand*\MTnonlettersdonotobeymathxx{%
-    \ifx\mst at the\@gobble
-    \else
-      \@ifundefined{mst at savedresetMathstrut@}{}{%
-        \PackageInfo{mathastext}{restoring for this group or environment
-                                 the original\MessageBreak
-                                 amsmath \protect\resetMathstrut@}%
-      \let\resetMathstrut@\mst at savedresetMathstrut@}%
-    \fi
-    \let\mst at the\@gobble
-}%
 %    \end{macrocode}
-% |1.3u| adds this check that we are not in a subdued normal or bold math
-% version. No need for expandable coding.
+% As \cs{mst at savedresetMathstrut@} will only be defined at begin document,
+% the next two macros are no-op in the preamble.
 %    \begin{macrocode}
-\def\mst at OnlyIfNotSubdued#1{%
-    \ifmst at subdued
-      \ifx\math at version\mst at normalversionname
-      \else
-        \ifx\math at version\mst at boldversionname
-        \else
-          #1%
-        \fi
-      \fi
-    \else
-      #1%
-    \fi
-}%
-\def\mst at nonlettersobeymathxx{%
-    \ifx\mst at the\the
-    \else
-      \@ifundefined{mst at savedresetMathstrut@}{}{%
+\def\mst at redefine@resetMathstrut@{%
+      \@ifundefined{mst at savedresetMathstrut@}
+      {}
+      {%
         \ifmst at symboldelimiters
           \def\resetMathstrut@{%
            \setbox\z@\hbox{\the\textfont\symmtpsymbol\char40
@@ -6715,227 +6903,179 @@
                         \the\textfont\symoperators\char40}%
            \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@}%
         \fi
-      \PackageInfo{mathastext}{\string\resetMathstrut@\space 
-      from amsmath replaced for this\MessageBreak group or environment}}%
+        \PackageInfo{mathastext}{\string\resetMathstrut@\space 
+        from amsmath replaced for this\MessageBreak group or environment}%
+      }%
+}%
+\def\mst at restore@resetMathstrut@{%
+      \@ifundefined{mst at savedresetMathstrut@}{}{%
+        \PackageInfo{mathastext}{restoring for this group or environment
+                                 the original\MessageBreak
+                                 amsmath \protect\resetMathstrut@}%
+      \let\resetMathstrut@\mst at savedresetMathstrut@}%
+}%
+\ifmst at everymath
+  \newcommand*\MTnonlettersobeymathxx{%
+    \mst at OnlyIfNotSubdued{%
+        \ifx\mst at the\the
+        \else
+           \mst at redefine@resetMathstrut@
+        \fi
+        \let\mst at the\the
+    }%
+  }%
+  \newcommand*\MTnonlettersdonotobeymathxx{%
+    \ifx\mst at the\@gobble
+    \else
+      \mst at restore@resetMathstrut@
     \fi
-    \let\mst at the\the
-}%
-\newcommand*\MTnonlettersobeymathxx
-   {\mst at OnlyIfNotSubdued\mst at nonlettersobeymathxx}%
-\newcommand*\MTeasynonlettersdonotobeymathxx{\let\mst at theeasy\@gobble}%
-\def\mst at easynonlettersobeymathxx{\let\mst at theeasy\the}%
-\newcommand*\MTeasynonlettersobeymathxx
-   {\mst at OnlyIfNotSubdued\mst at easynonlettersobeymathxx}%
-\MTeasynonlettersobeymathxx % no-op here if subdued mode
-\def\mst at mathactiveletters{\let\mst at thef\the \let\mst at theF\the}%
-\newcommand*\MTmathactiveletters
-   {\mst at OnlyIfNotSubdued\mst at mathactiveletters}%
-\MTmathactiveletters % no-op here if subdued mode
-\def\mst at mathactiveLetters{\let\mst at theF\the}%
-\newcommand*\MTmathactiveLetters
-   {\mst at OnlyIfNotSubdued\mst at mathactiveLetters}%
-\newcommand*\MTmathstandardletters{\let\mst at thef\@gobble \let\mst at theF\@gobble}%
+    \let\mst at the\@gobble
+  }%
+\else
+  \newcommand*\MTnonlettersobeymathxx{%
+     \mst at OnlyIfNotSubdued{%
+        \AtBeginDocument{\MTnonlettersobeymathxx}%
+     }%
+  }%
+  \newcommand*\MTnonlettersdonotobeymathxx{%
+     \AtBeginDocument{\MTnonlettersdonotobeymathxx}%
+  }%
+  \AtBeginDocument{%
+    \renewcommand*\MTnonlettersobeymathxx{%
+        \mst at OnlyIfNotSubdued{%
+             \the\mst at do@nonletters
+             \ifx\mst at the\the
+             \else
+                \mst at redefine@resetMathstrut@
+             \fi
+             \let\mst at the\the
+         }%
+    }%
+    \renewcommand*\MTnonlettersdonotobeymathxx{%
+        \the\mst at undo@nonletters
+        \ifx\mst at the\@gobble
+        \else
+           \mst at restore@resetMathstrut@
+        \fi
+        \let\mst at the\@gobble
+    }%
+  }%
+\fi
 %    \end{macrocode}
-%  \begin{macro}{\MTicinmath}
-%  \begin{macro}{\MTICinmath}
-%  \begin{macro}{\MTnoicinmath}
-%  \begin{macro}{\MTicalsoinmathxx}
-%      \cs{MTnoicinmath} can also be used from inside math mode. 
-%
-%      \cs{MTicalsoinmathxx} is destined to be used inside
-%      \cs{mathnormalbold} as I didn't want to add the complication of
-%      extracting the family number used inside \cs{mathnormalbold} (will
-%      perhaps come back if I have time to spend on
-%      |source2e|). Added note |2016/01/06|: this number is a priori simply
-%      |symmtletterfont+1|.
-%
-%      \cs{MTicinmath} can also be used inside math mode, to revert an
-%      earlier \cs{MTnoicinmath} from inside the same math group: the math mode
-%      had to be entered with the math activation of letters allowed.
-%
-%      |1.3i| |2016/01/06|: For some reason which I have now forgotten I did
-%      until now:
-% \begin{verbatim}
-% \def\mst at itcorr{\ifnum\fam=\m at ne\/\else\ifnum\fam=\symmtletterfont\/\fi\fi}%
-% \end{verbatim}
-%      hence italic corrections were also applied inside \cs{mathnormal} (for
-%      upright fonts; \cs{mathnormalbold} math alphabet was not treated like
-%      \cs{mathnormal}). I now drop this to be more in sync with the handling
-%      of the extra skips around letters. Everything gets suppressed inside
-%      all math alphabets, allowing ligatures, even for \cs{mathnormal}.
-%
+% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% \begin{macro}{\MTeasynonlettersobeymathxx}
+% \begin{macro}{\MTeasynonlettersdonotobeymathxx}
 %    \begin{macrocode}
-\newcommand*\MTicinmath{% 
-    \MTmathactiveletters
-    \def\mst at itcorr{\ifnum\fam=\m at ne\/\fi}%
-    \let\mst at ITcorr\mst at itcorr}
-\newcommand*\MTICinmath{%
-    \MTmathactiveLetters 
-    \def\mst at ITcorr{\ifnum\fam=\m at ne\/\fi}}
-\newcommand*\MTnoicinmath{\let\mst at itcorr\@empty\let\mst at ITcorr\@empty}
-\newcommand*\MTnoICinmath{\let\mst at ITcorr\@empty}
-\newcommand*\MTicalsoinmathxx{%
-    \ifx\mst at itcorr\@empty\else\def\mst at itcorr{\/}\fi
-    \ifx\mst at ITcorr\@empty\else\def\mst at ITcorr{\/}\fi}
+\newtoks\mst at do@easynonletters
+\ifmst at everymath
+    \newcommand*\MTeasynonlettersdonotobeymathxx{\let\mst at theeasy\@gobble}%
+    \newcommand*\MTeasynonlettersobeymathxx{%
+                \mst at OnlyIfNotSubdued{\let\mst at theeasy\the}%
+    }%
+    \MTeasynonlettersobeymathxx
+\else
+    \newtoks\mst at undo@easynonletters
+    \newcommand*\MTeasynonlettersdonotobeymathxx{\the\mst at undo@easynonletters}
+    \newcommand*\MTeasynonlettersobeymathxx{%
+                \mst at OnlyIfNotSubdued{\the\mst at do@easynonletters}%
+    }%
+    \AtEndOfPackage{\MTeasynonlettersobeymathxx}%
+\fi
 %    \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
-% \begin{macro}{\MTsetmathskips}
-% \begin{macro}{\MTunsetmathskips}
-%   |1.3| |2013/09/02|: user level command to specify extra spaces in math mode
-%   around the letters (only the 7bit a,b,..,z and A,B,..,Z). First parameter is
-%   the letter, second is the math skip to be inserted before, and third the
-%   skip to be inserted after; for example \cs{thickmuskip} or explicitly
-%   |0.1mu|.
+% \end{macro}\end{macro}
+% \begin{macro}{\mst at addtodo@easynonletters}
+% |#1| is a one character control sequence (|\.|, |\/|, |\#|, |\%| or |\&|)
+% and |#2| is a mathchar.
 %
-%   For this, letters are made mathematically active. This is now the package
-%   default (version |1.2| did this only in the absence of option |italic|, or
-%   more precisely when the font used was not of shape |it| or |sl|). But if
-%   \cs{MTsetmathskips} has not been used for that letter, the only effect of
-%   the math activation is, as in |1.2|, to add the italic correction
-%   automatically, except when the font shape is detected to be |it| or |sl|; in
-%   these latter cases, although mathematically active, the letter acts in the
-%   standard way.
+% Perhaps I should use the Unicode engine \cs{Umathcode} et alia.  I do this
+% at other places.  However
+% I realized in 2013 and it is still true in 2024 that \LaTeX{} interface
+% \cs{DeclareSymbolFont} does not allow to declare more than 16 font
+% families even with \LuaLaTeX{} despite the latter allowing 256 such.
 %
-%   The command \cs{MTmathstandardletters} turns off math activation and its
-%   effects for all letters.
+% So why bother?
 %
-%   Ligatures within the argument of a math alphabet command are impeached by
-%   skips; so \cs{MTunsetmathskips} is provided to cancel the skips for one
-%   specific letter (|f| for example).
-%
-%   |1.3a| |2013/09/04|: I strangely had |\string#1| inside \cs{MTsetmathskips}.
-%   Phobic of catcode active letters... but with |\string| one needs some
-%   |\expandafter| to use \cs{MTsetmathskips} in an |\@for| loop for example. It
-%   is better to allow the first argument to be a macro or anything expanding to
-%   a letter, and to not be paranoid about improbable catcode active letters
-%   (the user just has to tame them at the time of the \cs{MTsetmathskip}) so I
-%   take out these |\string|'s.
-%
-%   |1.3i| |2016/01/06|: the extra skips are suppressed for the arguments of
-%   math alphabet commands. This applies in particular for amsmath's
-%   \cs{DeclareMathOperator}.
-%
+% \mstrelease{1.4} adds to this legacy branch a test to not override
+% a mathematically active ``easy'' non-letter.  Main case is the dot
+% with Babel Spanish.
 %    \begin{macrocode}
-\newcommand*\MTsetmathskips[3]{%
-    \@namedef{mst at before#1}{\ifnum\fam=\m at ne\mskip#2\relax\fi }%
-    \@namedef{mst at after#1}{\ifnum\fam=\m at ne\mskip#3\relax\fi }%
-}
-\newcommand*\MTunsetmathskips[1]{%
-    \@namedef{mst at before#1}{}%
-    \@namedef{mst at after#1}{}%
-}
+\ifmst at everymath
+    \def\mst at addtodo@easynonletters#1#2{%
+      \mst at do@easynonletters\expandafter{%
+          \the\mst at do@easynonletters
+          \mst at OnlyIfNotMathActive{#1}{\mathcode`#1=#2}%
+      }%
+    }%
+    \def\mst at addtodo@easynonletters at U#1#2{%
+      \mst at do@easynonletters\expandafter{%
+          \the\mst at do@easynonletters
+          \mst at OnlyIfNotMathActive{#1}{\mst at Umathcodenum`#1=#2}%
+      }%
+    }%
+\else
 %    \end{macrocode}
-% \end{macro}\end{macro}
-% \begin{macro}{\mst at mathactivate}
-% \begin{macro}{\mst at addtodo@nonletters}
-% \begin{macro}{\mst at addtodo@easynonletters}
-% \begin{macro}{\mst at addtodo@az}
-% \begin{macro}{\mst at addtodo@AZ}
-% Added note |2016/01/06|:
-%   Notice that the initially |\relax| tokens \verb+\mst@[before|after]@<letter>+
-%   formed with |\csname...\endcsname| do not modify TeX's math layout:
-%   |{\relax f\relax}| is like |f| (also for ligatures inside |\mathrm| for
-%   example).
+% The character may have been made mathcode active
+% exterior to \mst.  We can not test this for sure at begin document as it
+% may happen later.  If such an ``easy'' character is mathcode active,
+% this can not originate in \mst.  So we should not overwrite when
+% we issue \cs{MTeasynonlettersdonotobeymathxx}.  Example I know is
+% with \ctanpkg{babel} Spanish which makes the dot math active.  With PDF\LaTeX{}
+% it is also catcode active
+%
+% This macro may be used with Unicoe engines, and \LuaTeX{} and \XeTeX{}
+% differ regarding math active characters.  I have only tested this (anew)
+% for \mstrelease{1.4} for which this branch is needed, so in 2024.
 %    \begin{macrocode}
-\def\mst at magic@v #1#2#3#4#5{#1#3#4}
-\def\mst at magic@vi #1#2#3#4#5#6{#1#2#4#5}
-\def\mst at fork{\ifmmode\mst at magic@v\fi\@thirdofthree}
-\def\mst at safefork{\ifmmode\if at safe@actives\else\mst at magic@vi\fi\fi\@thirdofthree}
-\def\mst at do@activecase#1#2#3{% #1 is a category 11 or 12 character token
-    \@ifundefined{active at char#1}{}{%
-         \ifcat #1a\mathcode`#1=#2\else
-         \ifx\relax #2\relax\mathcode`#1=`#1 \else\mathcode`#1=#3\fi\fi
-    \expandafter\expandafter\expandafter\let\expandafter\expandafter
-                   \csname mst at orig@user at active#1\endcsname
-                   \csname user at active#1\endcsname
-    \expandafter\expandafter\expandafter\let\expandafter\expandafter
-                   \csname mst at orig@normal at char#1\endcsname
-                   \csname normal at char#1\endcsname
-    \ifcat #1a%
-      \expandafter\edef\csname user at active#1\endcsname
-                   {\noexpand\mst at fork {{#2\noexpand#3}}{}\expandafter
-                    \noexpand\csname mst at orig@user at active#1\endcsname
-                   }%
-      \expandafter\edef\csname normal at char#1\endcsname
-                   {\noexpand\mst at safefork {{#2\noexpand#3}}{}\expandafter
-                    \noexpand\csname mst at orig@normal at char#1\endcsname
-                   }%
-    \else
-      \expandafter\edef\csname user at active#1\endcsname
-                   {\noexpand\mst at fork {#2}\noexpand#3\expandafter
-                    \noexpand\csname mst at orig@user at active#1\endcsname
-                   }%
-      \expandafter\edef\csname normal at char#1\endcsname
-                   {\noexpand\mst at safefork {#2}\noexpand#3\expandafter
-                    \noexpand\csname mst at orig@normal at char#1\endcsname
-                   }%
-    \fi}}
-\begingroup
-  \catcode`\~=\active
-  \def\x{\endgroup
-    \def\mst at mathactivate##1##2##3{% ##1 guaranteed of cat 11 or 12
-      \begingroup
-      \lccode`~=`##1
-      \lccode`##1=`##1
-      \lowercase{\endgroup
-          \ifnum\catcode`##1=\active
-            \mst at do@activecase ##1{##2}##3%
-            % careful as ##2 is empty in the asterisk and
-            % prime case! 
-          \else
-            \mathcode`##1="8000 
-            % version 1.3 adds the possibility of extra skips around letters,
-            % (only if non catcode active at the time of use).
-            \ifcat##1a\edef~{% extra braces for a^b for example
-               {\expandafter\noexpand\csname mst at before##1\endcsname
-                ##2\noexpand##3%
-                \expandafter\noexpand\csname mst at after##1\endcsname}}%
-            \else\def~{##2##3}\fi
-          \fi}}}
-\x
-\def\mst at addtodo@nonletters#1#2#3{% 
-  % #1 will be of cat 11 or 12. 
-  % #2 is empty for asterisk and right quote
-  \mst at do@nonletters\expandafter
-      {\the\mst at do@nonletters \mst at mathactivate#1{#2}#3}%
-}
-\def\mst at addtodo@easynonletters#1#2{% #1 is a one char control sequence
-  \mst at do@easynonletters\expandafter{\the\mst at do@easynonletters\mathcode`#1=#2}%
-}
-\def\mst at addtodo@az#1#2{%
-  \mst at do@az\expandafter{\the\mst at do@az\mst at mathactivate#1#2\mst at itcorr}
-}
-\def\mst at addtodo@AZ#1#2{%
-  \mst at do@AZ\expandafter{\the\mst at do@AZ\mst at mathactivate#1#2\mst at ITcorr}%
-}
+    \def\mst at addtodo@easynonletters#1#2{%
+      \mst at do@easynonletters\expandafter
+                            {\the\mst at do@easynonletters
+                             \mst at OnlyIfNotMathActive{#1}{\mathcode`#1=#2}}%
+      \def\mst at tmp##1\relax{%
+          \def\mst at tmp{\mst at OnlyIfNotMathActive{#1}{\mathcode`#1=##1\relax}}%
+      }%
+      \expandafter\mst at tmp\the\mathcode`#1\relax
+      \mst at undo@easynonletters\expandafter\expandafter\expandafter
+               {\expandafter\mst at tmp\the\mst at undo@easynonletters}%
+    }%
+    \def\mst at addtodo@easynonletters at U#1#2{%
+      \mst at do@easynonletters\expandafter{%
+         \the\mst at do@easynonletters
+         \mst at OnlyIfNotMathActive{#1}{\mst at Umathcodenum`#1=#2}%
+      }%
+      \def\mst at tmp##1\relax{%
+          \def\mst at tmp{\mst at OnlyIfNotMathActive{#1}{\mst at Umathcodenum`#1=##1\relax}}%
+      }%
+      \expandafter\mst at tmp\the\mst at Umathcodenum`#1\relax
+      \mst at undo@easynonletters\expandafter\expandafter\expandafter
+               {\expandafter\mst at tmp\the\mst at undo@easynonletters}%
+    }%
+\fi
 %    \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% \end{macro}
 % \begin{macro}{\newmcodes@}
 % \begin{macro}{\mst at newmcodes@}
 % \begin{macro}{\MTresetnewmcodes}
 % \begin{macro}{\MTcustomizenewmcodes}
-%   |1.15d|: the \cs{newmcodes@} amsmath macro causes an error in Unicode engines as soon
-%   someone assigns a Unicode mathcode to the minus sign, and then makes a
-%   \cs{DeclareMathOperator} declaration. Furthermore it hard-codes the font
-%   family 0 as being the one to be used. Moreover just putting the concerned
-%   signs |-|, |:|, |.|, |\| ,|'|, |*| inside braces emulates enough the
-%   behavior (although the tick will give a prime).
+%   \mstrelease{1.15d}: the \cs{newmcodes@} amsmath macro causes an error in
+%   Unicode engines as soon someone assigns a Unicode mathcode to the minus
+%   sign, and then makes a \cs{DeclareMathOperator} declaration. Furthermore
+%   it hard-codes the font family 0 as being the one to be used. Moreover just
+%   putting the concerned signs |-|, |:|, |.|, |\| ,|'|, |*| inside braces
+%   emulates enough the behavior (although the tick will give a prime).
 %   
-%   |1.3|: now tests if `basic' option was used.
+%   \mstrelease{1.3}: now tests if `basic' option was used.
 %
-%   |1.3d|: I should re-examine the situation with |\newmcodes@|. In the
+%   \mstrelease{1.3d}: I should re-examine the situation with |\newmcodes@|. In the
 %   meantime its relaxification will not be done if lualatex-math is
 %   loaded. And the whole thing is put at begin document.
 %
-%   |1.3m|: |lualatex-math 1.5| n'a pas modifi\xE9 son traitement de |\newmcodes@|
+%   \mstrelease{1.3m}: |lualatex-math 1.5| n'a pas modifi\xE9 son traitement de |\newmcodes@|
 %   mais par contre a supprim\xE9 le patch de \cs{resetMathstrut@}. Mais la date
-%   de release est rest\xE9e \xE0 |2015/09/22| (date de |1.4a|) au lieu de quelque
+%   de release est rest\xE9e \xE0 |2015/09/22| (date de \mstrelease{1.4a}) au lieu de quelque
 %   chose comme |2016/03/13| (date pour l'annonce sur CTAN). Il faudra suivre
 %   l'\xE9volution future de |amsmath.sty| maintenant assur\xE9e par D.C.
 %
-%   |1.3n 2016/04/22|: there is no more a patch of |\newmcodes@| by
+%   \mstrelease{1.3n} |2016/04/22|: there is no more a patch of |\newmcodes@| by
 %   |lualatex-math 1.6| |(2016/04/16)|, as |amsmath 2016/03/10 v2.15b| has now
 %   a version compatible with \LuaLaTeX.
 %
@@ -6942,7 +7082,7 @@
 %   My very radical |\let\newmcodes@\relax| was only a temporary measure I
 %   adopted for lack of time on October 13, 2012, and apart from avoiding to
 %   do that in case |lualatex-math| was detected, I never came back... finally
-%   I handle it myself for |1.3n|. The remaining problem of this macro (now
+%   I handle it myself for \mstrelease{1.3n}. The remaining problem of this macro (now
 %   that it does not anymore crash |lualatex| or vice versa) is that (also
 %   with |amsmath| version |2016/03/10 v2.15b|) it hardcodes the font used.
 %   The aim of the macro is to modify the type of spacing affected to symbols
@@ -6954,7 +7094,7 @@
 %   \item \mst makes (or not, depending on commands issued by the user) these
 %     characters math active (the right tick already is), which complicates
 %     recovery of former mathcode. We have mathchar type \emph{macros}, but
-%     then the complication is in diverging behaviours of the engines:
+%     then the complication is in diverging behaviors of the engines:
 %     |\numexpr\mst at varfam@minus\relax| works with \LuaTeX, not with \XeTeX.
 %   \item the |*| must presumably really be the non-lowered text glyph.
 %   \item for the |-| I hesitated but do use the hyphen in the end.
@@ -6979,7 +7119,7 @@
 %   \item I noticed that \LuaLaTeX\ does not apply the ``TeX Ligature'' (bad
 %     name) regarding the right tick APOSTROPHE being transformed into RIGHT
 %     SINGLE QUOTATION MARK in math mode, but \XeLaTeX\ does. From the point
-%     of view of \mst, the behaviour of \XeLaTeX\ is the coherent one. It
+%     of view of \mst, the behavior of \XeLaTeX\ is the coherent one. It
 %     appears that \LuaLaTeX\ use in math mode of a text font does not obey
 %     the set features.^^A like this
 %^^A     \url{http://tex.stackexchange.com/questions/208688/oldstylefigure-issue-with-lualatex-and-mathastext}
@@ -6997,7 +7137,7 @@
 % in 2012! I spent some hours on this small thing, with consequent testing and
 % for example this TeX Ligature issue with Unicode engines.
 %
-% Since |1.3v| we require e-\TeX{} extensions, so a test for
+% Since \mstrelease{1.3v} we require e-\TeX{} extensions, so a test for
 % \cs{numexpr} has been dropped here.
 %    \begin{macrocode}
 \ifmst at basic
@@ -7027,7 +7167,7 @@
   }%
   \let\mst at originalnewmcodes@\newmcodes@
   \fi
-  }% end of AtBeginDocument
+  }%
  \else
   \AtBeginDocument {%
   \ifx\newmcodes@\@undefined\else
@@ -7047,9 +7187,9 @@
     }%
   \let\mst at originalnewmcodes@\newmcodes@
   \fi
-  }% end of second AtBeginDocument
- \fi % mst at XeOrLua
-\fi % mst at basic
+  }%
+ \fi
+\fi
 \newcommand*\MTresetnewmcodes{\ifx\mst at originalnewmcodes@\undefined\else
                                \let\newmcodes@\mst at originalnewmcodes@\fi}
 \newcommand*\MTcustomizenewmcodes{\ifx\mst at originalnewmcodes@\undefined\else
@@ -7080,7 +7220,7 @@
 %   we'll see.
 % \begin{macro}{\MTmathoperators-}\begin{macro}{obeymathxx}
 % \begin{macro}{\MTmathoperators-}\begin{macro}{donot-}\begin{macro}{obeymathxx}
-%       |1.2|: rather than just replacing \cs{symoperators} by
+%       \mstrelease{1.2}: rather than just replacing \cs{symoperators} by
 %       \cs{symmtoperatorfont} I add a modification which makes the
 %       declared operator names sensitive to the math alphabets... ouh le
 %       vilain!
@@ -7093,7 +7233,7 @@
 %    \end{macrocode}
 % \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
 % \begin{macro}{mtletterfont}
-%   At version |1.1|, we add the possibility to mimick the standard
+%   At version \mstrelease{1.1}, we add the possibility to mimick the standard
 %   behavior, that is to have italic letters and upright
 %   digits. Thanks to Tariq~\textsc{Perwez} and
 %   Kevin~\textsc{Klement} who asked for such a feature.
@@ -7134,39 +7274,59 @@
 %   simultaneously when specified with |mode=base|. It does work with
 %   |mode=node| but this mode ``does not work in math mode.''
 %
-% Done for |1.3o| of |2016/05/03|.
+% Done for \mstrelease{1.3o} of |2016/05/03|.
 %
-% |1.3p| renames the macro to \cs{MTfixmathfonts} for public access.
+% \mstrelease{1.3p} renames the macro to \cs{MTfixmathfonts} for public access.
+%
+% \mstrelease{1.4} intercepts also |mode=harf|. Cf
+% \url{https://tex.stackexchange.com/questions/722084/change-number-style-with-mathastext}
+% (thanks to |user691586| for bug report).  The new code unconditionally
+% replaces |mode=foo| by |mode=base|.  The complications due to the output of
+% |\fontname| using only category 12 characters are handled in a different way
+% than the |2016| code.
+%
+% The \url{https://github.com/latex3/fontspec/issues/525} problem causes
+% additional complications.
+%
+% Perhaps I should simply zap spaces always rather than check for quotes?
+% Anyway this appears to work.
 %    \begin{macrocode}
-\begingroup
-\catcode`N 12
-\catcode`O 12
-\catcode`D 12
-\catcode`E 12
-\lowercase{\gdef\mst at fixmathfonts@ #1=NODE;#2#3\relax #4\@empty #5}%
-  {\ifx#2\empty\else\font\mst at mathfont=#1=base;#2#3\relax#5=\mst at mathfont\fi}
-\lowercase{\gdef\MTfixmathfonts
-{\expandafter\mst at fixmathfonts@
-  \fontname\textfont\symmtoperatorfont\relax\relax=NODE;\empty\relax\@empty
-   {\textfont\symmtoperatorfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptfont\symmtoperatorfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptfont\symmtoperatorfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptscriptfont\symmtoperatorfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptscriptfont\symmtoperatorfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\textfont\symmtletterfont\relax\relax=NODE;\empty\relax\@empty
-   {\textfont\symmtletterfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptfont\symmtletterfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptfont\symmtletterfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptscriptfont\symmtletterfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptscriptfont\symmtletterfont}%
-  }%
+\def\mst at fixmathfonts@#1.#2.#3.{%
+\def\mst at fixmathfonts@##1##2#1=##3;##4##5\relax##6\@empty##7{%
+  \ifx##3\empty\else
+   \if"##1%
+    \font\mst at mathfont=##1##2#1=base;##4##5\relax
+   \else
+    \mst at arrrrgh@fixmathfonts##1##2#1=base;##4##5#2\empty#3\relax
+   \fi
+   ##7=\mst at mathfont
+  \fi
 }%
-\endgroup
+\def\mst at arrrrgh@fixmathfonts##1#2##2##3#3##4\relax{%
+  \ifx##2\empty
+    \font\mst at mathfont="##1"\relax
+  \else
+    \font\mst at mathfont="##1"#2##2##3#3\relax
+  \fi
+}%
+}%
+\expandafter\mst at fixmathfonts@\detokenize{mode. at.pt.}%
+\def\MTfixmathfonts#1{%
+\def\MTfixmathfonts{%
+  \expandafter\mst at fixmathfonts@\fontname\textfont\symmtoperatorfont
+  \relax\relax #1=;\empty\relax\@empty{\textfont\symmtoperatorfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptfont\symmtoperatorfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptfont\symmtoperatorfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptscriptfont\symmtoperatorfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptscriptfont\symmtoperatorfont}%
+  \expandafter\mst at fixmathfonts@\fontname\textfont\symmtletterfont
+  \relax\relax #1=;\empty\relax\@empty{\textfont\symmtletterfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptfont\symmtletterfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptfont\symmtletterfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptscriptfont\symmtletterfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptscriptfont\symmtletterfont}%
+}}%
+\expandafter\MTfixmathfonts\expandafter{\detokenize{mode}}%
 \ifmst at LuaTeX
   \everymath\expandafter{\the\everymath\mst at fixmathfonts}%
   \everydisplay\expandafter{\the\everydisplay\mst at fixmathfonts}%
@@ -7198,7 +7358,7 @@
 %   \cs{mathrm} and not \cs{mathnormal}.
 %
 %   Actually math alphabet macros are created robust since \LaTeX{} from 2005,
-%   so at |1.3v 2019/09/19| I decided to modify the old \mst approach a bit.
+%   so at \mstrelease{1.3v} |2019/09/19| I decided to modify the old \mst approach a bit.
 %   Indeed with the old approach a \cs{mathtt} in a moving argument translates
 %   ultimately into \cs{Mathtt} but if for example the new context where it
 %   gets expanded is a subdued normal math version, this does not give the same
@@ -7220,10 +7380,10 @@
 %   robustness (except of course in the subdued math versions as there the math
 %   alphabets acquire back their original robust meanings.)
 %
-%   Potential breaking change at |1.3za|, the |defaultbf| etc... options do
+%   Potential breaking change at \mstrelease{1.3za}, the |defaultbf| etc... options do
 %   not prevent the package declaring |\Mathbf| etc... commands.
 %
-%   |1.3za| defines a \cs{Mathnormalbold} and then defines \cs{mathnormalbold}
+%   \mstrelease{1.3za} defines a \cs{Mathnormalbold} and then defines \cs{mathnormalbold}
 %   in terms of it in place of defining directly \cs{mathnormalbold} as a math
 %   alphabet.  This is in relation to implementation of the |LGRgreek+|
 %   option.  There was some hesitation though to restrict this change to that
@@ -7249,7 +7409,7 @@
 \let\mst at original@it\mathit
 \let\mst at original@sf\mathsf
 \let\mst at original@tt\mathtt
-\def\mst at restorealphabets{% for subdued
+\def\mst at restorealphabets{%
     \let\mathnormal\mst at original@normal
     \let\mathrm\mst at original@rm
     \let\mathbf\mst at original@bf
@@ -7264,7 +7424,7 @@
 % there to be a robust and easy way to know when one is in the argument of
 % \cs{mathrm} or \cs{mathbf}, and the code is spread on various chapters of
 % \texttt{source2e.pdf}, and the comments are often not up-to-date.  So I did
-% not try a too complex hack and decided for |1.3za| to add a numeric
+% not try a too complex hack and decided for \mstrelease{1.3za} to add a numeric
 % indicator to let Greek letters react to it. It incorporates a space to be
 % self-delimiting in an \cs{ifcase} to maintain expandability in numeric
 % context of the to-be-defined Greek control sequences.
@@ -7316,7 +7476,7 @@
 % \begin{macro}{\MTgreekupdefault}
 % \begin{macro}{\MTgreekitdefault}
 % \begin{macro}{selfGreek}
-%   |1.14b|: We can not move the \cs{DeclareSymbolFont} to the
+%   \mstrelease{1.14b}: We can not move the \cs{DeclareSymbolFont} to the
 %   \cs{Mathastext} macro because it resets the font family in *all*
 %   math versions, and some could have been defined by the user with
 %   previous calls to \cs{Mathastext}. So we have to have them here.
@@ -7336,7 +7496,7 @@
 %
 %   First we establish the cumulative effect of the greek related options.
 %
-%   |1.15c| introduces some possibilities to change the shapes of Greek letters
+%   \mstrelease{1.15c} introduces some possibilities to change the shapes of Greek letters
 %   in each math versions, and even the Greek font (in LGR encoding). The
 %   commands \cs{MTitgreek} etc... will be used in-between calls to
 %   \cs{Mathastext} and re-adjust the shapes. And the command \cs{MTgreekfont}
@@ -7355,7 +7515,7 @@
 %   \LaTeX\ (since 2020-02-02 now that I check this out). As a result this
 %   triggered Font Warnings in the log about the replacement of |up| by |n|.
 %
-%   |1.3x| refactors completely the handling of Greek letter shapes under the
+%   \mstrelease{1.3y} refactors completely the handling of Greek letter shapes under the
 %   |LGRgreek(s)| options (and only under them).  Under these options we don't
 %   use one font for lowercase Greek and anotherone for uppercase Greek (some
 %   above code comments have not been updated) but one math font |mtgreekit| for italic Greek
@@ -7372,7 +7532,7 @@
 %
 %   In order to maintain perfect identical code for non-|LGRgreek|, the
 %   |LGRgreek| related code is simply added to previously shared
-%   constructions.  The |LGRgreek| behaviour will remain identical in most
+%   constructions.  The |LGRgreek| behavior will remain identical in most
 %   documents, but for example those who used some adventurous `|sc|' for the
 %   main shape (the one used per default for operator names) need to adjust
 %   \cs{MTgreekupdefault} to be `|sc|', for the math version being defined, or
@@ -7386,9 +7546,9 @@
 %   package; to be examined next time --- which may be a long time in
 %   future!).
 %
-%   Unfortunately the |1.3x/1.3y| did some internal renamings here (using
+%   Unfortunately the \mstrelease{1.3y} did some internal renamings here (using
 %   |@lgr@| in macro names in place of |@greek@|) which were not everywhere
-%   followed up, and this broke the |selfGreek| option.  Fixed at |1.3z|.
+%   followed up, and this broke the |selfGreek| option.  Fixed at \mstrelease{1.3z}.
 %
 %    \begin{macrocode}
 \providecommand*\MTgreekupdefault{n}
@@ -7442,7 +7602,7 @@
 % \begin{macro}{\mathgreekit}
 % \begin{macro}{\mathgreekupbold}
 % \begin{macro}{\mathgreekitbold}
-% The |1.3x| refactoring was done in order to be able to define \cs{alphaup},
+% The \mstrelease{1.3y} refactoring was done in order to be able to define \cs{alphaup},
 % etc \dots\ control sequences (\cs{mathchar}'s), as well as the italic ones.
 % Formerly two math fonts were created but to be used respectively with
 % lowercase or uppercase Greek.  Now we have two fonts indexed by their shape,
@@ -7449,7 +7609,7 @@
 % and we take advantage to create two math alphabets mapping to the two
 % defined symbol fonts |mtgreekup| and |mtgreekit|.
 %
-% |1.3za| adds \cs{mathgreekupbold} and \cs{mathgreekitbold}.
+% \mstrelease{1.3za} adds \cs{mathgreekupbold} and \cs{mathgreekitbold}.
 %    \begin{macrocode}
 \ifmst at LGRgreek
     \DeclareFontEncoding{LGR}{}{}
@@ -7484,10 +7644,11 @@
 % In case we need the Euler font, we declare it here. It will use
 % |uzeur.fd| from the \ctanpkg{eulervm} package of Walter~\textsc{Schmidt}
 %    \begin{macrocode}
-\ifmst at needeuler\mst at infoline{will use Euler font; command \string\MTEulerScale}
-\DeclareSymbolFont{mteulervm}{U}{zeur}{m}{n}
-\DeclareSymbolFontAlphabet{\MathEuler}{mteulervm}
-\DeclareMathAlphabet{\MathEulerBold}{U}{zeur}{\mst at bold}{n}
+\ifmst at needeuler
+\mst at infoline{will use Euler font; command \string\MTEulerScale}
+  \DeclareSymbolFont{mteulervm}{U}{zeur}{m}{n}
+  \DeclareSymbolFontAlphabet{\MathEuler}{mteulervm}
+  \DeclareMathAlphabet{\MathEulerBold}{U}{zeur}{\mst at bold}{n}
 \fi
 \newcommand*\MTEulerScale[1]{\edef\zeu at Scale{#1}}
 \let\MathastextEulerScale\MTEulerScale
@@ -7534,14 +7695,15 @@
 % \cs{psy at scale} will be used to scale the font (see at the
 % very end of this file).
 %    \begin{macrocode}
-\ifmst at needsymbol\mst at infoline{will use Symbol font; command \string\MTSymbolScale}
- \def\psy at scale{1}
- \DeclareSymbolFont{mtpsymbol}{U}{psy}{m}{n}
- \DeclareSymbolFontAlphabet{\MathPSymbol}{mtpsymbol}
-\AtBeginDocument{%
-  \DeclareFontFamily{U}{psy}{}%
-  \DeclareFontShape{U}{psy}{m}{n}{<->s*[\psy at scale] psyr}{}%
-}
+\ifmst at needsymbol
+  \mst at infoline{will use Symbol font; command \string\MTSymbolScale}
+  \def\psy at scale{1}
+  \DeclareSymbolFont{mtpsymbol}{U}{psy}{m}{n}
+  \DeclareSymbolFontAlphabet{\MathPSymbol}{mtpsymbol}
+  \AtBeginDocument{%
+    \DeclareFontFamily{U}{psy}{}%
+    \DeclareFontShape{U}{psy}{m}{n}{<->s*[\psy at scale] psyr}{}%
+  }
 \fi
 \newcommand*\MTSymbolScale[1]{\edef\psy at scale{#1}}
 \let\MathastextSymbolScale\MTSymbolScale
@@ -7553,10 +7715,14 @@
 % \end{macro}
 % \end{macro}
 % \begin{macro}{\pmvec}
-% Definition of a poor man version of the \cs{vec} accent
+% Definition of a poor man version of the \cs{vec} accent.
+% Done using \cs{protected}\cs{def} at \mstrelease{1.4}.
 %    \begin{macrocode}
-\DeclareRobustCommand*\pmvec[1]{\mathord{\stackrel{\raisebox{-.5ex}%
-{\tiny\boldmath$\mathord{\rightarrow}$}}{{}#1}}}
+\protected\def\pmvec#1{%
+    \mathord{\stackrel{\raisebox{-.5ex}{\tiny\boldmath$\mathord{\rightarrow}$}}%
+                      {{}#1}%
+            }%
+}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\fouriervec}
@@ -7584,7 +7750,7 @@
 %   Some public macros to modify our private internals, and
 %   we will use them also ourself.
 %
-%   In version |1.1| we add the possibility to have two
+%   In version \mstrelease{1.1} we add the possibility to have two
 %   distinct font shapes for letters and digits. So in fact
 %   we could as well have two really unrelated fonts but
 %   this is really not the spirit of the package.
@@ -7594,7 +7760,7 @@
 %   same time not modifying the \cs{familydefault} or \cs{romandefault}
 %   etc\dots
 %
-%   At time of |1.3za| I considered letting |LGRgreeks| and |selfGreeks|
+%   At time of \mstrelease{1.3za} I considered letting |LGRgreeks| and |selfGreeks|
 %   support \cs{MTgreekfont} and this needed a chaneg to \cs{MTfamily}
 %   here but I dropped the idea.  Too wary of documentation changes.
 %    \begin{macrocode}
@@ -7622,7 +7788,7 @@
 % \begin{macro}{\MTitGreek}
 % \begin{macro}{\MTupGreek}
 % \begin{macro}{\MTgreekfont}
-%   |1.15c|: These new macros can be used in-between calls to \cs{Mathastext}.
+%   \mstrelease{1.15c}: These new macros can be used in-between calls to \cs{Mathastext}.
 %   They reset the shapes for Greek letters (applies to LGRgreek(s) and
 %   selfGreek(s) options). The \cs{MTgreekfont} presupposes either LGRgreek or
 %   selfGreek (it is inoperant under |LGRgreeks| or |selfGreeks|).
@@ -7629,7 +7795,7 @@
 %   |\MTgreekfont{\familydefault}| is somewhat like using LGRgreeks or
 %   selfGreeks.
 %
-%   At time of |1.3za| I let \cs{MTgreekfont} also have an effect under option
+%   At time of \mstrelease{1.3za} I let \cs{MTgreekfont} also have an effect under option
 %   |LGRgreeks| or |selfGreeks|, via a refactoring which also modified \cs{MTfamily}.
 %    \begin{macrocode}
 \newcommand*\MTitgreek{\mst at itgreektrue\mst at upgreekfalse\def\mst at greek@select{0}}
@@ -7648,55 +7814,343 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+%
 % At (long...) last we now change the font for the letters of the
-% latin alphabet. In version |1.1|, Latin letters have their own font
+% latin alphabet. In version \mstrelease{1.1}, Latin letters have their own font
 % (shape).
 %
-% |1.2b| initiated the use of mathematically active letters to insert the italic
-% corrections. With version |1.3| the use of math active letters is also for
-% extra muglue added before and after the letters. Use of |\@for| to shorten the
-% code initiated with release |1.3|.
+%    \mstrelease{1.2b} |2012/12/28| now that we understand the great advantages of |"8000|
+%    we do it also for all letters a-z and A-Z to insert automatically the
+%    italic corrections. See the \hyperref[sec:ic]{discussion} in the user
+%    manual. Ironically I wrote the code initially for the |italic| option only
+%    to realize later it was more suitable to using an \emph{upright} text font
+%    in math mode! So this mathematical activation of the letters is not done if
+%    the font shape is detected to be |it| or |sl|; to bypass this the command
+%    \cs{MTicinmath} is provided.
+%
+%    \mstrelease{1.2e} |2013/01/10| corrects a bad oversight of \mstrelease{1.2b} in
+%    \cs{mst at mathactivate} which made the reproduction of the user manual
+%    illustrations with |$f_i^i$| impossible. As \cs{mst at mathactivate} was
+%    originally used also to get the non-letters obey math alphabet while
+%    maintaining the \TeX{} spacings, it added no extra braces. The braces
+%    should however be added for expansion of math active letters, in order of
+%    things like |x^y| to work as expected. (the group braces do not prevent
+%    ligatures when the letters are arguments to the math alphabet commands,
+%    the added macros \cs{mst at itcorr} and \cs{mst at before@<letter>} expanding to
+%    nothing).
+%
+%    Added note |2016/01/06|: it should be explicitly said that the extra
+%    |{..}| in |\mst at mathactivate| for letters end up creating |\hbox|'es
+%    around each letter with its extra skips and explicit italic correction,
+%    when present. These skips are thus set at natural width and do not add
+%    any break point.
+%
+%    Added note at \mstrelease{1.4}: the extra pair of braces is inserted here
+%    at \cs{mst at DeclareMathLetter}, not at \cs{mst at mathactivate}.
+%
+%    \mstrelease{1.3} |2013/09/02| extends the use of mathematically active letters to
+%    allow the user to specify muglue before and after the letter itself (see
+%    \cs{MTsetmathskips}, below).
+%    Mathematically active letters were previously used only to add the italic
+%    correction; the math activation has now been separated and put in
+%    \cs{MTmathactiveletters}. There is also \cs{MTmathactiveLetters} to allow
+%    math activation only for the uppercase letters. To cancel the (now default,
+%    even with option |italic|) math
+%    activation of letters, there is \cs{MTmathstandardletters}. Version \mstrelease{1.3a}
+%    removes some silly |\string|'s from the code, which prevented to pass
+%    macros as first argument to the command.
+%
+% Added note |2016/01/06|:
+%   Notice that the initially |\relax| tokens \verb+\mst@[before|after]@<letter>+
+%   formed with |\csname...\endcsname| do not modify TeX's math layout:
+%   |{\relax f\relax}| is like |f| (also for ligatures inside |\mathrm| for
+%   example).
+%
+% The code here was refactored at \mstrelease{1.4} and this simplified
+% \cs{mst at mathactivate} definition.
+%
+% The \cs{mst at before}\meta{letter} were renamed at \mstrelease{1.4} into
+% \cs{mst at before@}\meta{letter} and are incorporated at the
+% \cs{mst at DeclareMathLetter} location.  Formerly \cs{mst@}\meta{letter} was
+% only the math symbol, now \cs{MTmathcharletter}\meta{letter} is used for that and
+% \cs{MTcommandletter}\meta{letter} is the whole thing to which the active letter
+% expands (the definition of the active letter done by \cs{mst at mathactivate}
+% is done with a \cs{def}, not a \cs{let}).
+% \begin{macro}{\mst at DeclareMathLetter}
 %    \begin{macrocode}
-\def\mst at DeclareMathLetter #1{%
+\def\mst at DeclareMathLetter#1#2#3#4#5{%
     \DeclareMathSymbol {#1}{\mathalpha}{mtletterfont}{`#1}%
-    \expandafter
-    \DeclareMathSymbol \csname mst@#1\endcsname{\mathalpha}{mtletterfont}{`#1}%
-    \expandafter\mst at addtodo@az\expandafter #1\csname mst@#1\endcsname
+    \DeclareMathSymbol {#4}{\mathalpha}{mtletterfont}{`#1}%
+    \def#2{{#3#4#5\mst at itcorr}}%
 }%
-\@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do
-     {\expandafter\mst at DeclareMathLetter\mst at tmp}%
+\@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+   \expandafter\expandafter\expandafter\mst at DeclareMathLetter
+   \expandafter\mst at tmp
+               \csname MTcommandletter\mst at tmp\expandafter\endcsname
+               \csname mst at before@\mst at tmp\expandafter\endcsname
+               \csname MTmathcharletter\mst at tmp\expandafter\endcsname
+               \csname mst at after@\mst at tmp\endcsname
+}%
 \ifmst at frenchmath \def\mst at font@tbu{mtoperatorfont}%
    \else          \def\mst at font@tbu{mtletterfont}%
 \fi
-\def\mst at DeclareMathLetter #1{%
+\def\mst at DeclareMathLetter #1#2#3#4#5{%
     \DeclareMathSymbol {#1}{\mathalpha}{\mst at font@tbu}{`#1}%
-    \expandafter
-    \DeclareMathSymbol \csname mst@#1\endcsname{\mathalpha}{\mst at font@tbu}{`#1}%
-    \expandafter\mst at addtodo@AZ\expandafter #1\csname mst@#1\endcsname 
+    \DeclareMathSymbol {#4}{\mathalpha}{\mst at font@tbu}{`#1}%
+    \def#2{{#3#4#5\mst at ITcorr}}%
 }%
-\@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do
-     {\expandafter\mst at DeclareMathLetter\mst at tmp}%
-\let\mst at DeclareMathLetter\relax
+\@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+   \expandafter\expandafter\expandafter\mst at DeclareMathLetter
+   \expandafter\mst at tmp
+               \csname MTcommandletter\mst at tmp\expandafter\endcsname
+               \csname mst at before@\mst at tmp\expandafter\endcsname
+               \csname MTmathcharletter\mst at tmp\expandafter\endcsname
+               \csname mst at after@\mst at tmp\endcsname
+}%
+\def\mst at mathactivate@lowercase{%
+    \@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+      \expandafter\expandafter\expandafter
+      \mst at mathactivate\expandafter\mst at tmp\csname MTcommandletter\mst at tmp\endcsname{}%
+     }%
+}%
+\def\mst at mathactivate@uppercase{%
+    \@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+      \expandafter\expandafter\expandafter
+      \mst at mathactivate\expandafter\mst at tmp\csname MTcommandletter\mst at tmp\endcsname{}%
+     }%
+}%
+\def\mst at mathdeactivate@lowercase{%
+    \@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=\csname MTmathcharletter\mst at tmp\endcsname
+     }%
+}%
+\def\mst at mathdeactivate@uppercase{%
+    \@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=\csname MTmathcharletter\mst at tmp\endcsname
+     }%
+}%
+%    \end{macrocode}
+% We redo the definitions with some added layer (silly because will never
+% happen in pratice that a letter is Babel-active) related to
+% \cs{mst at do@activecase} in \ctanpkg{babel} context.
+%    \begin{macrocode}
+\ifmst at everymath
+\else
+  \def\mst at mathdeactivate@lowercase{%
+    \@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=
+             \csname MTmathcharletter\mst at tmp\endcsname
+     }%
+  }%
+  \def\mst at mathdeactivate@uppercase{%
+    \@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=
+             \csname MTmathcharletter\mst at tmp\endcsname
+     }%
+  }%
+\fi
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\MTmathactiveletters}
+% \begin{macro}{\MTmathstandardletters}
+%
+% Important changes at \mstrelease{1.4}.
+%
+% Ascii letters are math-activated at package loading time, rather than again and
+% again each time math mode is entered.  But not under |subdued| mode, then
+% the activation is done as part of switching to some math version.
+%
+% The ordering in this code source is a bit of a mess, and it may be too early
+% here to execute \cs{MTmathactiveletters} (I think it is fine now after some
+% major moving around of code chunks but will not waste time checking
+% it) so this will be postponed to end of package loading.  Prior to
+% \mstrelease{1.4} \cs{MTmathactiveletters} could be executed here as it only
+% set some toggle to be obeyed at every math mode entrance.
+%    \begin{macrocode}
+\def\mst at mathactivateletters{%
+    \mst at mathactivate@lowercase
+    \mst at mathactivate@uppercase
+}%
+\newcommand*\MTmathactiveletters{%
+    \mst at OnlyIfNotSubdued
+    \mst at mathactivateletters
+}%
+\AtEndOfPackage{\MTmathactiveletters}%
+%    \end{macrocode}
+% Duplication due to some legacy reasons, do not rely on these internal
+% macro names, beware they change at future release.
+%    \begin{macrocode}
+\def\mst at mathactivateLetters{\mst at activate@uppercase}%
+\newcommand*\MTmathactiveLetters{%
+    \mst at OnlyIfNotSubdued
+    \mst at mathactivateLetters
+}%
+\newcommand*\MTmathstandardletters{%
+    \mst at mathdeactivate@lowercase
+    \mst at mathdeactivate@uppercase
+}%
+%    \end{macrocode}
+% \end{macro}\end{macro}
+%  \begin{macro}{\MTicinmath}
+%  \begin{macro}{\MTICinmath}
+%  \begin{macro}{\MTnoicinmath}
+%  \begin{macro}{\MTicalsoinmathxx}
+%      \cs{MTnoicinmath} can also be used from inside math mode. 
+%
+%      \cs{MTicalsoinmathxx} is destined to be used inside
+%      \cs{mathnormalbold} as I didn't want to add the complication of
+%      extracting the family number used inside \cs{mathnormalbold} (will
+%      perhaps come back if I have time to spend on
+%      |source2e|). Added note |2016/01/06|: this number is a priori simply
+%      |symmtletterfont+1|.
+%
+%      \cs{MTicinmath} can also be used inside math mode, to revert an
+%      earlier \cs{MTnoicinmath} from inside the same math group.
+%
+%      \mstrelease{1.3i} |2016/01/06|: For some reason which I have now forgotten I did
+%      until then:
+% \begin{verbatim}
+% \def\mst at itcorr{\ifnum\fam=\m at ne\/\else\ifnum\fam=\symmtletterfont\/\fi\fi}%
+% \end{verbatim}
+%      hence italic corrections were also applied inside \cs{mathnormal} (for
+%      upright fonts; \cs{mathnormalbold} math alphabet was not treated like
+%      \cs{mathnormal}). I now drop this to be more in sync with the handling
+%      of the extra skips around letters. Everything gets suppressed inside
+%      all math alphabets, allowing ligatures, even for \cs{mathnormal}.
+%
+%    \begin{macrocode}
+\newcommand*\MTicinmath{% 
+    \MTmathactiveletters
+    \def\mst at itcorr{\ifnum\fam=\m at ne\/\fi}%
+    \let\mst at ITcorr\mst at itcorr
+}
+\newcommand*\MTICinmath{%
+    \MTmathactiveLetters 
+    \def\mst at ITcorr{\ifnum\fam=\m at ne\/\fi}%
+}
+\newcommand*\MTnoicinmath{\let\mst at itcorr\@empty\let\mst at ITcorr\@empty}
+\newcommand*\MTnoICinmath{\let\mst at ITcorr\@empty}
+\newcommand*\MTicalsoinmathxx{%
+    \ifx\mst at itcorr\@empty\else\def\mst at itcorr{\/}\fi
+    \ifx\mst at ITcorr\@empty\else\def\mst at ITcorr{\/}\fi
+}
+%    \end{macrocode}
+% \end{macro}\end{macro}\end{macro}\end{macro}
+% \begin{macro}{\MTsetmathskips}
+% \begin{macro}{\MTunsetmathskips}
+%   \mstrelease{1.3} |2013/09/02|: user level command to specify extra spaces in math mode
+%   around the letters (only the 7bit a,b,..,z and A,B,..,Z). First parameter is
+%   the letter, second is the math skip to be inserted before, and third the
+%   skip to be inserted after; for example \cs{thickmuskip} or explicitly
+%   |0.1mu|.
+%
+%   For this, letters are made mathematically active. This is now the package
+%   default (version \mstrelease{1.2} did this only in the absence of option |italic|, or
+%   more precisely when the font used was not of shape |it| or |sl|). But if
+%   \cs{MTsetmathskips} has not been used for that letter, the only effect of
+%   the math activation is, as in \mstrelease{1.2}, to add the italic correction
+%   automatically, except when the font shape is detected to be |it| or |sl|; in
+%   these latter cases, although mathematically active, the letter acts in the
+%   standard way.
+%
+%   The command \cs{MTmathstandardletters} turns off math activation and its
+%   effects for all letters.
+%
+%   Ligatures within the argument of a math alphabet command are impeached by
+%   skips; so \cs{MTunsetmathskips} is provided to cancel the skips for one
+%   specific letter (|f| for example).
+%
+%   \mstrelease{1.3a} |2013/09/04|: I strangely had |\string#1| inside \cs{MTsetmathskips}.
+%   Phobic of catcode active letters... but with |\string| one needs some
+%   |\expandafter| to use \cs{MTsetmathskips} in an |\@for| loop for example. It
+%   is better to allow the first argument to be a macro or anything expanding to
+%   a letter, and to not be paranoid about improbable catcode active letters
+%   (the user just has to tame them at the time of the \cs{MTsetmathskip}) so I
+%   take out these |\string|'s.
+%
+%   \mstrelease{1.3i} |2016/01/06|: the extra skips are suppressed for the arguments of
+%   math alphabet commands. This applies in particular for amsmath's
+%   \cs{DeclareMathOperator}.
+%
+%    \begin{macrocode}
+\newcommand*\MTsetmathskips[3]{%
+    \@namedef{mst at before@#1}{\ifnum\fam=\m at ne\mskip#2\relax\fi}%
+    \@namedef{mst at after@#1}{\ifnum\fam=\m at ne\mskip#3\relax\fi}%
+}
+\newcommand*\MTunsetmathskips[1]{%
+    \@namedef{mst at before@#1}{}%
+    \@namedef{mst at after@#1}{}%
+}
+%    \end{macrocode}
+% \end{macro}\end{macro}
+% \begin{macro}{\mst at DeclareMathDigit}
+% \begin{macro}{\MTmathactivedigits}
+% \begin{macro}{\MTmathstandarddigits}
+% In version \mstrelease{1.1}, we have now separated digits from letters, so paradoxically
+% it is less problematic to give them the |mathalpha| type.
+%    \begin{macrocode}
 \ifmst at nodigits\else
-\def\mst at font@tbu{mtoperatorfont}%
+  \def\mst at font@tbu{mtoperatorfont}%
+  \ifmst at symboldigits \def\mst at font@tbu{mtpsymbol}\fi
+  \ifmst at eulerdigits  \def\mst at font@tbu{mteulervm}\fi
+  \DeclareMathSymbol{0}{\mathalpha}{\mst at font@tbu}{`0}%
+  \DeclareMathSymbol{1}{\mathalpha}{\mst at font@tbu}{`1}%
+  \DeclareMathSymbol{2}{\mathalpha}{\mst at font@tbu}{`2}%
+  \DeclareMathSymbol{3}{\mathalpha}{\mst at font@tbu}{`3}%
+  \DeclareMathSymbol{4}{\mathalpha}{\mst at font@tbu}{`4}%
+  \DeclareMathSymbol{5}{\mathalpha}{\mst at font@tbu}{`5}%
+  \DeclareMathSymbol{6}{\mathalpha}{\mst at font@tbu}{`6}%
+  \DeclareMathSymbol{7}{\mathalpha}{\mst at font@tbu}{`7}%
+  \DeclareMathSymbol{8}{\mathalpha}{\mst at font@tbu}{`8}%
+  \DeclareMathSymbol{9}{\mathalpha}{\mst at font@tbu}{`9}%
+  \let\MTmathactivedigits\relax
+  \let\MTmathstandarddigits\relax
 %    \end{macrocode}
-% In version |1.1|, we have now separated digits from letters, so paradoxically
-% it is less problematic to give them the |mathalpha| type. 
+% \mstrelease{1.4} adds possibility of mathematically active digits.
 %    \begin{macrocode}
-\ifmst at symboldigits \def\mst at font@tbu{mtpsymbol} \fi
-\ifmst at eulerdigits \def\mst at font@tbu{mteulervm} \fi
-\DeclareMathSymbol{0}{\mathalpha}{\mst at font@tbu}{`0}%
-\DeclareMathSymbol{1}{\mathalpha}{\mst at font@tbu}{`1}%
-\DeclareMathSymbol{2}{\mathalpha}{\mst at font@tbu}{`2}%
-\DeclareMathSymbol{3}{\mathalpha}{\mst at font@tbu}{`3}%
-\DeclareMathSymbol{4}{\mathalpha}{\mst at font@tbu}{`4}%
-\DeclareMathSymbol{5}{\mathalpha}{\mst at font@tbu}{`5}%
-\DeclareMathSymbol{6}{\mathalpha}{\mst at font@tbu}{`6}%
-\DeclareMathSymbol{7}{\mathalpha}{\mst at font@tbu}{`7}%
-\DeclareMathSymbol{8}{\mathalpha}{\mst at font@tbu}{`8}%
-\DeclareMathSymbol{9}{\mathalpha}{\mst at font@tbu}{`9}%
+  \ifmst at activedigits
+    \def\mst at DeclareMathDigit #1#2#3{%
+      \DeclareMathSymbol{#3}{\mathalpha}{\mst at font@tbu}{`#1}%
+      \def#2{#3}%
+    }%
+    \@tfor\mst at tmp:=0123456789\do{%
+      \expandafter\expandafter\expandafter\mst at DeclareMathDigit
+      \expandafter\mst at tmp
+               \csname MTcommanddigit\romannumeral\mst at tmp\expandafter\endcsname
+               \csname MTmathchardigit\romannumeral\mst at tmp\endcsname
+    }%
+    \def\mst at mathactivatedigits{%
+      \@tfor\mst at tmp:=0123456789\do{%
+      \expandafter\expandafter\expandafter\mst at mathactivate
+      \expandafter\mst at tmp\csname MTcommanddigit\romannumeral\mst at tmp\endcsname{}%
+     }%
+    }%
+    \newcommand*\MTmathactivedigits{\mst at OnlyIfNotSubdued\mst at mathactivatedigits}%
+    \MTmathactivedigits
+    \ifmst at everymath
+      \newcommand*\MTmathstandarddigits{%
+        \@tfor\mst at tmp:=0123456789\do{%
+        \expandafter\mathcode\expandafter`\mst at tmp
+            =\csname MTmathchardigit\romannumeral\mst at tmp\endcsname
+         }%
+      }%
+    \else
+%    \end{macrocode}
+% We inject some extra layer (silly because will never happen in pratice
+% that a digit token is Babel-active) related to \cs{mst at do@activecase} in
+% \ctanpkg{babel} context.
+%    \begin{macrocode}
+      \newcommand*\MTmathstandarddigits{%
+        \@tfor\mst at tmp:=0123456789\do{%
+        \expandafter\mathcode\expandafter`\mst at tmp
+            =\csname MTmathchardigit\romannumeral\mst at tmp\endcsname
+         }%
+      }%
+    \fi
+  \fi
 \fi
 %    \end{macrocode}
+% \end{macro}\end{macro}\end{macro}
 % When |symboldelimiters| is passed as an option, we use the
 % Symbol font for the printable characters other than
 % letters and digits. 
@@ -7709,7 +8163,7 @@
 \def\mst at font@tbu{mtoperatorfont}%
 \fi
 %    \end{macrocode}
-% |1.2| adds the tricks to let non letters/digits obey math alphabets. We have
+% \mstrelease{1.2} adds the tricks to let non letters/digits obey math alphabets. We have
 % to double the definitions for easy switch on-off of the mechanism, via a token
 % list which is put into \cs{everymath} and \cs{everydisplay}.
 %    \begin{macrocode}
@@ -7727,7 +8181,7 @@
 % \begin{macro}{\mst@@doasterisk}
 % \begin{macro}{\MTnormalasterisk}
 % \begin{macro}{\MTactiveasterisk}
-%   |1.12d| The \cs{ast} or |*| is defined in |fontmath.ltx| as a binary
+%   \mstrelease{1.12d} The \cs{ast} or |*| is defined in |fontmath.ltx| as a binary
 %   operator from the |symbols| font. Usually the asterisk from the text
 %   font is in a raised position. Previous versions of \mst did nothing
 %   with \cs{ast} but strangely defined |*| to be the one from the text
@@ -7740,61 +8194,99 @@
 % The user macro \cs{MTlowerast} sets the amount
 % of lowering to be applied to the text asterisk.
 %
-%   |1.12e| Somehow there was a big omission in |1.12d|, the
+%   \mstrelease{1.12e} Somehow there was a big omission in \mstrelease{1.12d}, the
 %   command \cs{MTlowerast} as described in the manual was missing!
 %
-% nota bene: it is assumed that |*| is of type |other| when \mst
-% is loaded... it should neither be active, nor of type |letter|!
+% \mstrelease{1.3i} adds \cs{MTnormalasterisk} and \cs{MTactiveasterisk}.
+% They do nothing if package is loaded without option |asterisk|.
 %
-% |1.3i| adds \cs{MTnormalasterisk} and \cs{MTactiveasterisk}. They do nothing
-% without option |asterisk|.
+% \mstrelease{1.4} uses \cs{protected} rather than robust commands.
+% And implements the support for the new default of not using \cs{everymath}.
+%
+% The first two \cs{newcommand*} are because the commands were previously
+% defined unconditionally anyhow, in a way making them no-op's without
+% option |asterisk|.
 %    \begin{macrocode}
-\def\mst@@doasterisk{\let\ast\mst at ast\mst at mathactivate*{}\mst at ast}%
-\newcommand*\MTnormalasterisk {\let\mst at doasterisk\relax}
-\newcommand*\MTactiveasterisk {\let\mst at doasterisk\mst@@doasterisk}
+\newcommand*\MTnormalasterisk{}
+\newcommand*\MTactiveasterisk{}
 \ifmst at asterisk\mst at infoline{asterisk: \string\ast\space and *}
-    \AtBeginDocument{%
-     \everymath\expandafter
-              {\the\everymath   \mst at doasterisk \MTnormalasterisk }%
-     \everydisplay\expandafter
-              {\the\everydisplay\mst at doasterisk \MTnormalasterisk }}
   \ifmst at symbolmisc
-    \def\mst at bin@ast{%
-    \mathbin{\mathchoice{\raisebox{-.1\height}%
-                        {\the\textfont\symmtpsymbol\char42}}%
-                      {\raisebox{-.1\height}%
-                        {\the\textfont\symmtpsymbol\char42}}%
-                      {\raisebox{-.1\height}%
-                        {\the\scriptfont\symmtpsymbol\char42}}%
-                      {\raisebox{-.1\height}%
-                        {\the\scriptscriptfont\symmtpsymbol\char42}}}}%
+    \protected\def\mst at bin@ast{\mathbin{\mathchoice
+           {\raisebox{-.1\height}{\the\textfont\symmtpsymbol\char42}}%
+           {\raisebox{-.1\height}{\the\textfont\symmtpsymbol\char42}}%
+           {\raisebox{-.1\height}{\the\scriptfont\symmtpsymbol\char42}}%   
+           {\raisebox{-.1\height}{\the\scriptscriptfont\symmtpsymbol\char42}}}%
+                     }%
   \else
-    \def\mst at bin@ast{%
-    \mathbin{\mathchoice{\raisebox{-\mst at lowerast}%
-                        {\the\textfont\symmtoperatorfont\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\textfont\symmtoperatorfont\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptfont\symmtoperatorfont\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptscriptfont\symmtoperatorfont\char42}}}}%
+    \protected\def\mst at bin@ast{\mathbin{\mathchoice
+           {\raisebox{-\mst at lowerast}{\the\textfont\symmtoperatorfont\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\textfont\symmtoperatorfont\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptfont\symmtoperatorfont\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptscriptfont\symmtoperatorfont\char42}}}%
+                     }%
   \fi
-  \def\mst at varfam@ast{\ifnum\fam=\m at ne\mst at bin@ast\else
-    \mathbin{\mathchoice{\raisebox{-\mst at lowerast}%
-                        {\the\textfont\fam\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\textfont\fam\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptfont\fam\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptscriptfont\fam\char42}}}\fi}%
-  \MTactiveasterisk
-  \DeclareRobustCommand*{\mst at ast}{\mst at bin@ast}
+  \protected\def\mst at varfam@ast{\ifnum\fam=\m at ne
+                      \mst at bin@ast
+                      \else
+                      \mathbin{\mathchoice
+           {\raisebox{-\mst at lowerast}{\the\textfont\fam\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\textfont\fam\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptfont\fam\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptscriptfont\fam\char42}}}%
+                      \fi}%
+  \let\mst at ast\mst at bin@ast
   \newcommand*\MTlowerast[1]{\def\mst at lowerast{#1}}
   \MTlowerast{.3\height}
-  \mst at do@easynonletters\expandafter\expandafter\expandafter
-    {\expandafter\the\expandafter\mst at do@easynonletters
-     \expandafter\def\csname mst at ast \endcsname{\mst at varfam@ast}}
+%    \end{macrocode}
+% Arguably \mst should have used the ``hard'' non-letters affiliation here.
+% Probably too late to change this in 2024... and costly in documentation
+% time.
+%    \begin{macrocode}
+  \mst at do@easynonletters\expandafter{%
+      \the\mst at do@easynonletters\let\mst at ast\mst at varfam@ast
+  }%
+  \ifmst at everymath
+     \def\mst@@doasterisk  {\let\ast\mst at ast\mst at mathactivate*{}\mst at ast}%
+     \def\MTnormalasterisk {\let\mst at doasterisk\relax}
+     \def\MTactiveasterisk {\let\mst at doasterisk\mst@@doasterisk}
+     \MTactiveasterisk
+     \AtBeginDocument{%
+       \everymath\expandafter
+              {\the\everymath   \mst at doasterisk \MTnormalasterisk }%
+       \everydisplay\expandafter
+              {\the\everydisplay\mst at doasterisk \MTnormalasterisk }%
+     }%
+  \else
+     \def\MTnormalasterisk{\AtBeginDocument{\MTnormalasterisk}}
+     \def\MTactiveasterisk{\AtBeginDocument{\MTactiveasterisk}}
+%    \end{macrocode}
+% For legacy reasons the responsiveness to math alphabets is made part of the
+% handling of ``easy'' non letters (probably because it is on per default),
+% and this causes me problems of internal logic and even more annoyingly of
+% documentation.  I am leaving this standing because it would be too much of a
+% pain at this stage to document a change and it was already quite annoying to
+% better document actual situation.
+%    \begin{macrocode}
+     \mst at undo@easynonletters\expandafter{%
+          \the\mst at do@easynonletters\let\mst at ast\mst at bin@ast
+     }%
+%    \end{macrocode}
+% For legacy reasons the action of \cs{MTactiveasterisk} is not testing if
+% in |subdued| mode.
+%
+% MEMO: if |subdued| there is \cs{MTeverymathoff} added to |\begin{document}|
+% near end of package and it will do \cs{MTnormalasterisk}.
+%    \begin{macrocode}
+     \AtBeginDocument{%
+         \let\mst at orig@abd at ast\ast
+         \edef\MTnormalasterisk{\noexpand\mst at mathdeactivate*{\the\mathcode`\*}%
+                                \let\noexpand\ast\noexpand\mst at orig@abd at ast}%
+         \def\MTactiveasterisk{\def\ast{\mst at ast}%
+                               \mst at mathactivate*{}\mst at ast
+                              }%
+         \MTactiveasterisk
+     }
+  \fi
 \fi
 %    \end{macrocode}
 % \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
@@ -7807,17 +8299,19 @@
 %
 % [(Dec. 2012) should I reexamine these definitive sounding remarks?]
 %
-% |1.3x| of |2022/11/03| adds support for |ncccomma| option.
+% \begin{macro}{ncccomma}
+% \begin{macro}{decimalcomma}
+% \mstrelease{1.3y} of |2022/11/03| adds support for |ncccomma| option.
 %
 % Some non-obvious hack is needed for compatibility with our home-made
 % mechanism of non-letters obeying math alphabet commands.  Alternative would
-% have been to not load at all \ctanpkg{ncccomma} (or since |1.3zb|
+% have been to not load at all \ctanpkg{ncccomma} (or since \mstrelease{1.3zb}
 % \ctanpkg{decimalcomma}) and provide the functionality purely by our own
 % means; because here in order to support \cs{MTnonlettersobeymathxx} we are
 % almost contrived to override quasi entirely the contents of these tiny
 % packages.
 %
-% |1.3zb| adds support for the |decimalcomma| option.  This was mandatory to
+% \mstrelease{1.3zb} adds support for the |decimalcomma| option.  This was mandatory to
 % keep a compatibility layer with \ctanpkg{frenchmath} after its |2.7| release
 % of |2023/12/23|.
 %
@@ -7838,7 +8332,7 @@
     \RequirePackage{decimalcomma}[2023/12/28]% 1.3 or later
 %    \end{macrocode}
 % Attention
-% that the breaking behavior of \cs{AtBeginDocument} at October 2020
+% that the \textbf{BREAKING CHANGE} to \cs{AtBeginDocument} at October 2020
 % \LaTeX{} release means that, \emph{taking into account that \emph{\mst} already has
 % employed some \emph{\cs{AtBeginDocument}} prior to loading} \ctanpkg{decimalcomma}, any
 % code here will be executed \textbf{BEFORE} the \cs{AtBeginDocument} material
@@ -7855,7 +8349,7 @@
 % latter for which \ctanpkg{babel-french} has a dectection mechanism, which as
 % a result avoids the bad interactions with \ctanpkg{numprint} plus its
 % |autolanguage| option, which are mentioned below in the \ctanpkg{ncccomma}
-% branch.  So we don't need here the workaround done below is in the
+% branch.  So we don't need here the workaround done below in the
 % |ncccomma| branch.  Notice though that in both cases, the `intelligent'
 % comma feature will be applied to the whole document, even inside those
 % portions where the user has switched to another language such as English.
@@ -7884,19 +8378,26 @@
       \let\mathcomma\mst at varfam@comma
       \let\sm at rtcomma\mst at sm@rtcomma
       }
-  \else % end of decimalcomma branch
-  \ifmst at ncccomma
-    \mst at infoline{loading package ncccomma for `smart comma\string'}
-    \RequirePackage{ncccomma}%
+    \ifmst at everymath
+    \else
+      \edef\mst at tmp{\mathchardef\mathcomma=\the\mathcode`\,\relax}%
+      \mst at undo@nonletters\expandafter\expandafter\expandafter
+                  {\expandafter\mst at tmp\the\mst at undo@nonletters}%
+    \fi
+  \else
 %    \end{macrocode}
 % Work around some bad interaction of \ctanpkg{ncccomma}, \ctanpkg{numprint}
 % with |autolanguage| and \ctanpkg{babel-french}.  See
 % \centeredline{\url{https://github.com/latex3/babel/issues/190}} for
-% background.  Some hesitation whether I should use the \cs{noextrasfrench}
-% to work around \ctanpkg{babel-french} code influencing non-French sections
-% in the document.  Update: I think the last sentence means I was hesitating
-% at time of |1.3x| whether to insert some extra code inside the \cs{noextrasfrench}.
+% background.  Some hesitation whether I should use the \cs{noextrasfrench} to
+% work around \ctanpkg{babel-french} code influencing non-French sections in
+% the document.  Update: I think the last sentence means I was hesitating at
+% time of \mstrelease{1.3y} whether to insert some extra code inside the
+% \cs{noextrasfrench}.
 %    \begin{macrocode}
+  \ifmst at ncccomma
+    \mst at infoline{loading package ncccomma for `smart comma\string'}
+    \RequirePackage{ncccomma}%
     \AtBeginDocument{%
       \mathcode`\,="8000\relax
       \@ifpackageloaded{babel}{%
@@ -7918,34 +8419,77 @@
       \let\mathcomma\mst at varfam@comma
       \let\NCC at comma\mst at NCC@comma
       }
-  \else % neither ncccomma nor decimalcomma
+    \ifmst at everymath
+    \else
+%    \end{macrocode}
+% Attention that \ctanpkg{ncccomma} (contrarily to \ctanpkg{icomma} loaded by
+% \ctanpkg{decimalcomma} has made the comma math active already when we loaded it.
+% So we don't use |\the\mathcode`\,\relax| here.
+%    \begin{macrocode}
+      \edef\mst at tmp{\mathchardef\mathcomma=\the\mathcomma\relax}%
+      \mst at undo@nonletters\expandafter\expandafter\expandafter
+                  {\expandafter\mst at tmp\the\mst at undo@nonletters}%
+    \fi
+  \else
+%    \end{macrocode}
+% Neither option |ncccomma| nor |decimalcomma|.  The \mstrelease{1.4} non-use
+% of \cs{everymath} and consequences is accounted for automatically by
+% \cs{mst at addtodo@nonletters}.
+%    \begin{macrocode}
     \expandafter\mst at addtodo@nonletters\string,\mathpunct\mst at varfam@comma
   \fi\fi
+%    \end{macrocode}
+% math dot.
+%    \begin{macrocode}
   \DeclareMathSymbol{.}{\mathord}{\mst at font@tbu}{"2E}
   \DeclareMathSymbol{\mst at varfam@dot}{\mathalpha}{\mst at font@tbu}{"2E}
   \mst at addtodo@easynonletters\.\mst at varfam@dot
-  \DeclareMathSymbol{:}{\mathrel}{\mst at font@tbu}{"3A} % relation spacing
+%    \end{macrocode}
+% math colon.
+%    \begin{macrocode}
+  \DeclareMathSymbol{:}{\mathrel}{\mst at font@tbu}{"3A}
   \DeclareMathSymbol{\mst at varfam@colon}{\mathalpha}{\mst at font@tbu}{"3A}
   \expandafter\mst at addtodo@nonletters\string:\mathrel\mst at varfam@colon
   \@ifpackageloaded{amsmath}
-  {} % \colon defined in amsmath.sty in terms of : with some enlarged explicit
-     % spacing. No need to intervene. 
-  {% no amsmath, use standard punctuation spacing
+%    \end{macrocode}
+% \cs{colon} gets defined in \ctanpkg{amsmath} in terms of |:| with some enlarged explicit
+% spacing. No need to intervene. 
+%    \begin{macrocode}
+  {}
+%    \end{macrocode}
+% No \ctanpkg{amsmath}, use standard punctuation spacing.
+%
+% The reason for |\et\colon\undefined| is if some package has redefined
+% \cs{colon} which then can not be used in \cs{DeclareMathSymbol} anymore (we
+% shamelessly overwrite...)
+%    \begin{macrocode}
+  {%
     \let\colon\undefined 
-    % the reason is if some package has redefined \colon which then
-    % can not be used in \cs{DeclareMathSymbol} anymore (we
-    % shamelessly overwrite...)
     \DeclareMathSymbol{\colon}{\mathpunct}{\mst at font@tbu}{"3A}
-    \mst at do@nonletters\expandafter{\the\mst at do@nonletters
+    \let\mst at colon\colon
 %    \end{macrocode}
-% |1.3v| uses \cs{protected} for the (optional) \cs{colon} redefinition.
+% \mstrelease{1.3v} uses \cs{protected} for the (optional) \cs{colon} redefinition.
 %    \begin{macrocode}
-        \protected\def\colon{\mathpunct{\mst at varfam@colon}}}%
+    \mst at do@nonletters\expandafter{%
+        \the\mst at do@nonletters
+        \protected\def\colon{\mathpunct{\mst at varfam@colon}}%
+    }%
+%    \end{macrocode}
+% \mstrelease{1.4} needs extras.
+%    \begin{macrocode}
+    \ifmst at everymath
+    \else
+        \mst at undo@nonletters\expandafter{%
+            \the\mst at undo@nonletters
+            \let\colon\mst at colon
+         }%
+    \fi
   }
-  \DeclareMathSymbol{\mst at varfam@pointvirgule}{\mathalpha}{\mst at font@tbu}{"3B}
 %    \end{macrocode}
-% |1.3x| adds |binarysemicolon| option.
+% Semi-colon.
+% \mstrelease{1.3y} adds |binarysemicolon| option.
 %    \begin{macrocode}
+  \DeclareMathSymbol{\mst at varfam@pointvirgule}{\mathalpha}{\mst at font@tbu}{"3B}
   \ifmst at binarysemicolon
     \mst at infoline{semi-colon set to be of type \string\mathbin}
     \DeclareMathSymbol{;}{\mathbin}{\mst at font@tbu}{"3B}
@@ -7953,21 +8497,22 @@
   \else
     \DeclareMathSymbol{;}{\mathpunct}{\mst at font@tbu}{"3B}
     \expandafter\mst at addtodo@nonletters\string;\mathpunct\mst at varfam@pointvirgule
-  \fi % binarysemicolno
-\fi % end \ifmst at nopunct else branch
+  \fi
+\fi
 %    \end{macrocode}
+% \end{macro}\end{macro}
 % \begin{macro}{\relbar}
 % Due to the way = and - are used by \LaTeX{} in arrows, we will
 % have to redefine \cs{Relbar} and \cs{relbar} in order for 
 % them to preserve their original meanings.
 %
-% |1.15d|: Oct 13, 2012. Belated amendment of the code to be compatible
+% \mstrelease{1.15d}: Oct 13, 2012. Belated amendment of the code to be compatible
 % with Unicode engines in case someone changed the mathcode of -.
 % However, for the time being I can do it in an easy way only for
 % \XeTeX, not for \LuaLaTeX. Also I do my modifications to \cs{relbar}
 % in a manner testing for the presence of amsmath.
 %
-% |1.3v 2019/09/19|: \LaTeX{} of |2019-10-01| defines \cs{leftarrowfill}
+% \mstrelease{1.3v} |2019/09/19|: \LaTeX{} of |2019-10-01| defines \cs{leftarrowfill}
 % and \cs{rightarrowfill} as robust macros, so we do the same.
 %
 % I need to put amsmath under surveillance to check if it decides to
@@ -7981,8 +8526,11 @@
 \else
   \ifmst at XeOrLua
     \mst at Umathcharnumdef\mst at minus@sign=\mst at Umathcodenum`\-\relax
-%^^A I used this prior to the new \luatexUmathcodenum, as available since TL2013:
-%^^A \mathchardef\mst at minus@sign=8704\relax % "2200
+%    \end{macrocode}
+% I used this prior to the new \cs{luatexUmathcodenum}, as available since TL2013:
+% \centeredline{|\mathchardef\mst at minus@sign=8704\relax % "2200|}
+%^^A L'alignement est bizarre dans l'output.
+%    \begin{macrocode}
   \else
     \mathchardef\mst at minus@sign=\mathcode`\-\relax
   \fi
@@ -7989,14 +8537,10 @@
   \@ifpackageloaded{amsmath}
     {\def\relbar{\mathrel{\mathpalette\mathsm at sh\mst at minus@sign}}}
     {\DeclareRobustCommand\relbar{\mathrel{\smash\mst at minus@sign}}}
-  \ifmst at robust@obsessed at LaTeX@era\expandafter\DeclareRobustCommand
-   \else\expandafter\def\fi
-  \rightarrowfill{$\m at th\mathord{\relbar}\mkern-7mu%
+  \DeclareRobustCommand\rightarrowfill{$\m at th\mathord{\relbar}\mkern-7mu%
   \cleaders\hbox{$\mkern-2mu\relbar\mkern-2mu$}\hfill
   \mkern-7mu\mathord\rightarrow$}
-  \ifmst at robust@obsessed at LaTeX@era\expandafter\DeclareRobustCommand
-   \else\expandafter\def\fi
-  \leftarrowfill{$\m at th\mathord\leftarrow\mkern-7mu%
+  \DeclareRobustCommand\leftarrowfill{$\m at th\mathord\leftarrow\mkern-7mu%
   \cleaders\hbox{$\mkern-2mu\relbar\mkern-2mu$}\hfill
   \mkern-7mu\mathord{\relbar}$}
 \fi
@@ -8003,20 +8547,20 @@
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{endash}
-%  |1.1| |2011/01/29|: Producing this next piece of code was not a piece
+%  \mstrelease{1.1} |2011/01/29|: Producing this next piece of code was not a piece
 %   of cake for a novice like myself!\newline
-%  |1.11| |2011/02/05|: Compatibility with Unicode (via use of fontspec
+%  \mstrelease{1.11} |2011/02/05|: Compatibility with Unicode (via use of fontspec
 %   encodings EU1 and EU2)\newline
-%  |1.12| |2011/02/07|: Improved dealing of Unicode possibility.\newline
-%  |1.14b| |2011/04/02|: Corrected some very irresponsible bug in the
+%  \mstrelease{1.12} |2011/02/07|: Improved dealing of Unicode possibility.\newline
+%  \mstrelease{1.14b} |2011/04/02|: Corrected some very irresponsible bug in the
 %   Unicode part which caused a problem when 10 or more math families have
 %   been allocated.\newline
-%  |1.15| |2012/09/24|: Added AtBeginDocument to circumvent some amsmath
+%  \mstrelease{1.15} |2012/09/24|: Added AtBeginDocument to circumvent some amsmath
 %   problem with unicode engines.
 %
-% |1.3l| |2016/01/29|: anticipating TL2016 fontspec's switch to |TU|.
+% \mstrelease{1.3l} |2016/01/29|: anticipating TL2016 fontspec's switch to |TU|.
 %
-% |1.3t| |2018/08/22|: fix to very ancient (|2012/12/20|) bug with
+% \mstrelease{1.3t} |2018/08/22|: fix to very ancient (|2012/12/20|) bug with
 % |\DeclareMathSymbol| lacking last argument if encoding not T1, OT1 or
 % LY1 when setting up math mode to use the en-dash character as minus
 % sign (PDF\TeX\ engine).
@@ -8023,7 +8567,7 @@
 %
 % \begin{macro}{\mst at subduedminus}
 % \begin{macro}{\mst at nonsubduedminus}
-% |1.3t| Further, new macros |\mst at subduedminus| and |\mst at nonsubduedminus|,
+% \mstrelease{1.3t} Further, new macros |\mst at subduedminus| and |\mst at nonsubduedminus|,
 % for the good functioning of the subdued option also in case of
 % presence of fontspec. This is the only character for which subdued
 % option works (now) by setting the mathcode on each math version
@@ -8034,7 +8578,7 @@
 % change. This means also that |\MTversion| and not |\mathversion|
 % must be used for good functioning.
 %
-% |1.3u| improves the handling of the minus sign by letting it be compatible
+% \mstrelease{1.3u} improves the handling of the minus sign by letting it be compatible
 % with math versions (and not only with the with subdued mechanism but all
 % math versions) having varying font encodings, even possibly classic 8bit
 % font encoding mixed with TU encoding for Unicode engines. For this it is
@@ -8047,9 +8591,9 @@
 %     This is counter-intuitive and breaks expectations.
 % \end{quotation}
 %
-% But the |1.3u| mechanism with \cs{mst at UmathchardefWorkAround@i} introduced a
+% But the \mstrelease{1.3u} mechanism with \cs{mst at UmathchardefWorkAround@i} introduced a
 % bug which showed under option |noendash| (hence also |symboldelimiters|) with
-% Unicode engines. Fixed at |1.3w|.
+% Unicode engines. Fixed at \mstrelease{1.3w}.
 %    \begin{macrocode}
 \let\mst at subduedminus\empty
 \let\mst at nonsubduedminus\empty
@@ -8063,7 +8607,8 @@
                       {\csname\mst at tmp@enc\string\textendash\endcsname}
     \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
                       {\csname\mst at tmp@enc\string\textendash\endcsname}
-  \fi}% mst at dothe@endashstuff
+  \fi
+}%
 \def\mst at dothe@emdashstuff#1#2#3{%
   \edef\mst at tmp@enc{#3}%
   \if1\mst at OneifUniEnc
@@ -8074,7 +8619,8 @@
                       {\csname\mst at tmp@enc\string\textemdash\endcsname}
     \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
                       {\csname\mst at tmp@enc\string\textemdash\endcsname}
-  \fi}% mst at dothe@emdashstuff
+  \fi
+}%
 \def\mst at dothe@hyphenstuff#1#2{%
   \DeclareMathSymbol{#1}{\mathbin}{\mst at font@tbu}{"2D}%
   \DeclareMathSymbol{#2}{\mathalpha}{\mst at font@tbu}{"2D}%
@@ -8090,9 +8636,9 @@
                        \csname mst at minus@mv\math at version\endcsname
                        \relax
     \else
-     \mathcode`\-=\@nameuse{mst at minus@mv\math at version}% self-delimiting
+     \mathcode`\-=\@nameuse{mst at minus@mv\math at version}%
     \fi
-   }% \mst at nonsubduedminus
+   }%
 %    \end{macrocode}
 % The above works only if the \cs{mst at minus@mv<name>} was really
 % defined via \cs{Umathchardef}. If it was defined via \cs{DeclareMathSymbol}
@@ -8101,8 +8647,8 @@
 %    \begin{macrocode}
   \ifmst at endash\else\ifmst at emdash\else
     \def\mst at nonsubduedminus{%
-      \mathcode`\-=\@nameuse{mst at minus@mv\math at version}% self-delimiting
-      }% non Umathchardef \mst at minus@mv<mathversion> macros
+      \mathcode`\-=\@nameuse{mst at minus@mv\math at version}%
+      }%
   \fi\fi
 \fi
 \def\mst at UmathchardefWorkAround@i
@@ -8112,7 +8658,7 @@
 % \end{macro}\end{macro}\end{macro}
 % \begin{macro}{\mst at hbar@mvnormal}
 % \begin{macro}{\mst at ltbar@mvnormal}
-%   |2011/01/31|, |1.1| I decide to settle the question of the |\hbar|. The
+%   |2011/01/31|, \mstrelease{1.1} I decide to settle the question of the |\hbar|. The
 %   \LaTeX{} definition is |\def\hbar{{\mathchar'26\mkern-9muh}}|
 %   and its advantage is that |h| is in the correct font. But of course not
 %   the macron character (|\=|, |\bar|). And anyway |amsfonts| uses a
@@ -8125,9 +8671,9 @@
 %   (as an aside, I am only now (April 2, 2011) aware that the package
 %   |mathtools| provides the |mathrlap| etc... )
 %
-%   |1.3l 2016/01/29|: anticipating TL2016 fontspec's switch to |TU|.
+%   \mstrelease{1.3l} |2016/01/29|: anticipating TL2016 fontspec's switch to |TU|.
 %
-%   |1.3u 2019/08/20|: encoding (8bits) agnostic construct for hbar, using same
+%   \mstrelease{1.3u} |2019/08/20|: encoding (8bits) agnostic construct for hbar, using same
 %   method as for |mathaccents| option. I should add some way to adjust the
 %   vertical positioning.
 %
@@ -8134,17 +8680,17 @@
 %   On this occasion I replace |h| by |\mst at h| because the mechanism for
 %   before and after skips does not interact well with the rlap construct.
 %
-%   |1.3v 2019/09/19| adapts to maintain the robustness of \cs{hbar} which now
+%   \mstrelease{1.3v} |2019/09/19| adapts to maintain the robustness of \cs{hbar} which now
 %   applies with \LaTeX{} |2019-10-01|.
 %
-%   |1.3w| works around \url{https://github.com/latex3/latex2e/issues/216} via
+%   \mstrelease{1.3w} works around \url{https://github.com/latex3/latex2e/issues/216} via
 %   \cs{mst at DeclareMathAccent}. The upstream bug affected the definition of
 %   \cs{mst at ltbar@mvnormal} and broke usage of \cs{Mathastext} in preamble.
 %
-%   |1.3w| also fixes oversight that \cs{hbar} may have been redefined via
+%   \mstrelease{1.3w} also fixes oversight that \cs{hbar} may have been redefined via
 %   \cs{DeclareMathSymbol} by some package (e.g. |amsfonts|) and with \LaTeX{}
 %   |2019-10-01| this means \cs{hbar<space>} is now undefined. Modifying it
-%   changed nothing to \cs{hbar} behaviour in such circumstances. Finally we
+%   changed nothing to \cs{hbar} behavior in such circumstances. Finally we
 %   opt for a \cs{protected} \cs{hbar} and choose to ignore completely if
 %   there is a \cs{hbar<space>} or not. To avoid extra steps we do not
 %   undefine it if it exists, because we would need to restore it in
@@ -8161,7 +8707,7 @@
 \def\mst at mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}}
 \def\mst at dothe@hbarstuff#1#2#3{%
   \edef\mst at tmp@enc{#3}%
-  \if1\mst at OneifUniEnc % Unicode engine and font
+  \if1\mst at OneifUniEnc
     \mst at Umathchardef#1="7 \symmtletterfont "0127 \relax %% or 210F?
   \else
     \begingroup
@@ -8170,13 +8716,13 @@
     \mst at DeclareMathAccent{#2}{\mathalpha}{mtletterfont}%
                       {\csname\mst at tmp@enc\string\=\endcsname{}}%
     \endgroup
-    \protected\def#1{\mst at mathrlap{#2{\ }}\mst at h}%
+    \protected\def#1{\mst at mathrlap{#2{\ }}\MTmathcharletterh}%
   \fi
-}% end of \mst at dothe@hbarstuff
+}%
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
-% |1.15d|: Oct 13, 2012. The \cs{mathcode} thing with = is (belatedly,
+% \mstrelease{1.15d}: Oct 13, 2012. The \cs{mathcode} thing with = is (belatedly,
 % sorry!) made Unicode compatible.
 % \begin{macro}{+,=,\Relbar}
 %    \begin{macrocode}
@@ -8246,7 +8792,8 @@
 %   sequences can not be simultaneously math symbols and math delimiters,
 %   thus, this complicates things for the mathastextification.
 %    \begin{macrocode}
-\ifmst at noparen\else\mst at infoline{parentheses \string( \string) \string[ \string] and slash \string/}
+\ifmst at noparen\else
+\mst at infoline{parentheses \string( \string) \string[ \string] and slash \string/}
 \ifmst at nosmalldelims
     \DeclareMathSymbol{(}{\mathopen}{\mst at font@tbu}{"28}
     \DeclareMathSymbol{)}{\mathclose}{\mst at font@tbu}{"29}
@@ -8287,9 +8834,13 @@
 % other math symbol fonts they do respect the encoding of the CM symbols and
 % largesymbols, so this is 90\% safe. But in truth I should extract from the
 % meaning of \cs{backslash} the |delcode|.
+%
+% At \mstrelease{1.4} I am a bit perplexed at the \cs{mathalpha} here.
+% Adding a a \cs{mst at mathord@backslash} for matters of option |noeverymath|.
 %    \begin{macrocode}
     \DeclareMathDelimiter{\mst at varfam@backslash}
         {\mathalpha}{symbols}{"6E}{largesymbols}{"0F}
+    \let\mst at mathord@backslash\backslash
 \else
     \DeclareMathDelimiter{<}{\mathopen}{\mst at font@tbu}{"3C}{largesymbols}{"0A}
     \DeclareMathDelimiter{>}{\mathclose}{\mst at font@tbu}{"3E}{largesymbols}{"0B}
@@ -8296,8 +8847,9 @@
 %    \end{macrocode}
 % There is no backslash in the Symbol font hence |mtoperatorfont| here.
 %    \begin{macrocode}
-    \DeclareMathDelimiter{\backslash}
+    \DeclareMathDelimiter{\mst at mathord@backslash}
         {\mathord}{mtoperatorfont}{"5C}{largesymbols}{"0F}
+    \let\backslash\mst at mathord@backslash
     \DeclareMathDelimiter{\mst at varfam@backslash}
         {\mathalpha}{mtoperatorfont}{"5C}{largesymbols}{"0F}
 \fi    
@@ -8309,17 +8861,38 @@
 \expandafter\mst at addtodo@nonletters\string>\mathrel\mst at varfam@more
 \mst at do@easynonletters\expandafter{\the\mst at do@easynonletters
             \let\backslash\mst at varfam@backslash}
+%    \end{macrocode}
+% Extras for \mstrelease{1.4} are needed:
+%    \begin{macrocode}
+\ifmst at everymath
+\else
+  \mst at undo@easynonletters\expandafter{\the\mst at undo@easynonletters
+            \let\backslash\mst at mathord@backslash}
+\fi
 \DeclareMathSymbol{\setminus}{\mathbin}{mtoperatorfont}{"5C}
+\let\mst at setminus\setminus
 \DeclareMathSymbol{\mst at varfam@setminus}{\mathalpha}{mtoperatorfont}{"5C}
 %    \end{macrocode}
-% |1.3v| adds a \cs{protected} here for \cs{setminus}.
+% \mstrelease{1.3v} adds a \cs{protected} here for \cs{setminus}.
 %    \begin{macrocode}
-\mst at do@nonletters\expandafter{\the\mst at do@nonletters
-            \protected\def\setminus{\mathbin{\mst at varfam@setminus}}}
+\mst at do@nonletters\expandafter{%
+     \the\mst at do@nonletters
+     \protected\def\setminus{\mathbin{\mst at varfam@setminus}}%
+}
 %    \end{macrocode}
+% Extras for \mstrelease{1.4} are needed:
+%    \begin{macrocode}
+\ifmst at everymath
+\else
+    \mst at undo@nonletters\expandafter{%
+         \the\mst at undo@nonletters
+         \let\setminus\mst at setminus
+    }
+\fi
+%    \end{macrocode}
 % \end{macro}\end{macro}\end{macro}
 % \begin{macro}{\models}
-% |1.15d|: 13 oct 2012. Before modifying \string| we must preserve \cs{models}. 
+% \mstrelease{1.15d}: 13 oct 2012. Before modifying \string| we must preserve \cs{models}. 
 %    \begin{macrocode}
 \ifmst at XeOrLua
   \mst at Umathcharnumdef\mst at vert@bar=\mst at Umathcodenum`\|\relax
@@ -8335,7 +8908,7 @@
 %   it used to be anyhow, so it is too late. Or not (2019)? maybe I
 %   \emph{should} do something here...
 %
-%   |1.3v 2019/09/19|: I discover this rather radical legacy
+%   \mstrelease{1.3v} |2019/09/19|: I discover this rather radical legacy
 %   \verb+\def\vert{|}+, which is done here once in the preamble, but I leave
 %   it unmodified apart from prefixing it with \cs{protected}. I also add a
 %   \cs{protected} for the definition of \cs{mid} (which applies only under
@@ -8349,34 +8922,53 @@
 \protected\def\vert{|}
 \DeclareMathSymbol{\mst at varfam@vbar}{\mathalpha}{\mst at font@tbu}{124}
 \mst at addtodo@easynonletters\|\mst at varfam@vbar
-\let\mid\undefined % 1.3: to avoid problems with some packages
+\let\mid\undefined
 \DeclareMathSymbol{\mid}{\mathrel}{\mst at font@tbu}{124}
-\mst at do@nonletters\expandafter{\the\mst at do@nonletters
-    \protected\def\mid{\mathrel\mst at varfam@vbar}}
+\let\mst at mid\mid
+\mst at do@nonletters\expandafter{%
+    \the\mst at do@nonletters
+    \protected\def\mid{\mathrel\mst at varfam@vbar}%
+}
 %    \end{macrocode}
+% Extras for \mstrelease{1.4} are needed:
+%    \begin{macrocode}
+\ifmst at everymath
+\else
+    \mst at undo@nonletters\expandafter{%
+        \the\mst at undo@nonletters
+        \let\mid\mst at mid
+    }
+\fi
+%    \end{macrocode}
 % \begin{macro}{\MTexplicitbraces-}\begin{macro}{obeymathxx}
 % \begin{macro}{\MTexplicitbraces-}\begin{macro}{donotobeymathxx}
-%       Braces. With version |1.2|, |\{| and |\}| will not be acceptable as
+%       Braces. With version \mstrelease{1.2}, |\{| and |\}| will not be acceptable as
 %       delimiters anymore if the redefinitions below in \cs{mst at dobraces} are
-%       enacted. But they will obey math alphabets. Improvements in |1.2a|, to
+%       enacted. But they will obey math alphabets. Improvements in \mstrelease{1.2a}, to
 %       preserve robustness.
 %
-%       For |1.3| I make |\lbrace| and |\rbrace| undefined first, else problems
+%       For \mstrelease{1.3} I make |\lbrace| and |\rbrace| undefined first, else problems
 %       may arise with some packages.
 %
-%       |1.3e| suppresses under option
+%       \mstrelease{1.3e} suppresses under option
 %       |nosmalldelims| the definitions of |\lbrace| and |\rbrace| as math
 %       symbols as this made |\left\lbrace| cause an error, it was a bug.
 %
-%       LaTeX2e defines |\{| and |\}| as robust commands for a long time
+%       (obsolete) LaTeX2e defines |\{| and |\}| as robust commands since a long time
 %       (I don't know since when). The \mst redefinition is done only if user
 %       has executed \cs{MTexplicitbracesobeymathxx}, and it is done only when
 %       entering math mode, but there could be some |\hbox| inside math, hence
 %       it has to be careful to be valid in text too.
 %
-%       |1.3v| maintains strict \LaTeX2e robustness for |\{| and |\}|.
+%       \mstrelease{1.3v} maintains strict \LaTeX2e robustness for |\{| and |\}|.
 %       This assumes no one fiddled with |\{| and |\}| proper (without space
 %       in the name).
+%
+%       \LaTeX{} made |\{| and |\}| \cs{protected}, not robust, at its
+%       |2020-02-02| release, so the code used by \mst under
+%       \cs{MTexplicitbracesobeymathxx} toggle remained without effect since
+%       as it configured a change to |\{<space>| and |\}<space>|.  Fixed at
+%       \mstrelease{1.4}.
 %    \begin{macrocode}
   \ifmst at nosmalldelims
   \else
@@ -8388,28 +8980,46 @@
   \fi
 \DeclareMathSymbol{\mst at varfam@lbrace}{\mathalpha}{\mst at font@tbu}{123} 
 \DeclareMathSymbol{\mst at varfam@rbrace}{\mathalpha}{\mst at font@tbu}{125}
-\DeclareRobustCommand*{\mst at lbrace}
-        {\ifmmode\mathopen\mst at varfam@lbrace\else\textbraceleft\fi}
-\DeclareRobustCommand*{\mst at rbrace}
-        {\ifmmode\mathclose\mst at varfam@rbrace\else\textbraceright\fi}
-\mst at do@nonletters\expandafter{\the\mst at do@nonletters
-    \mst at dobraces{\expandafter\let\csname\string{ \expandafter\endcsname
-                                  \csname mst at lbrace \endcsname
-                  \expandafter\let\csname\string} \expandafter\endcsname
-                                  \csname mst at rbrace \endcsname}}
-\fi % end of \ifmst at alldelims
+%    \end{macrocode}
+%    \begin{macrocode}
+\protected\def\mst at lbrace{\ifmmode\mathopen\mst at varfam@lbrace\else\textbraceleft\fi}
+\protected\def\mst at rbrace{\ifmmode\mathclose\mst at varfam@rbrace\else\textbraceright\fi}
+\mst at do@nonletters\expandafter{%
+    \the\mst at do@nonletters
+    \mst at dobraces{\let\{\mst at lbrace\let\}\mst at rbrace}%
+}
+\fi
 \newcommand*{\MTexplicitbracesobeymathxx}{\let\mst at dobraces\@firstofone}
 \newcommand*{\MTexplicitbracesdonotobeymathxx}{\let\mst at dobraces\@gobble}
+%    \end{macrocode}
+% Extras for \mstrelease{1.4} are needed:
+%    \begin{macrocode}
+\ifmst at everymath
+\else
+    \renewcommand*\MTexplicitbracesobeymathxx{%
+        \let\mst at dobraces\@firstofone
+        \MTnonlettersobeymathxx
+    }%
+    \renewcommand*\MTexplicitbracesdonotobeymathxx{%
+        \let\mst at dobraces\@gobble
+        \protected\def\{{\ifmmode \lbrace \else \textbraceleft \fi}%
+        \protected\def\}{\ifmmode \rbrace \else \textbraceright \fi}%
+    }%
+    \mst at undo@nonletters\expandafter{\the\mst at undo@nonletters
+        \protected\def\{{\ifmmode \lbrace \else \textbraceleft \fi}%
+        \protected\def\}{\ifmmode \rbrace \else \textbraceright \fi}%
+    }%
+\fi         
 \MTexplicitbracesdonotobeymathxx
 %    \end{macrocode}
 % \end{macro}\end{macro}\end{macro}\end{macro}
 % \end{macro}\end{macro}
 % \begin{macro}{specials}
-%   \leavevmode\kern\parindent |1.14b| |2011/04/02|: the redefinitions of
+%   \leavevmode\kern\parindent \mstrelease{1.14b} |2011/04/02|: the redefinitions of
 %   \#, \$, \% and \& were buggy (this showed up when 10 or more math
 %   families had been created).
 %
-%   |1.15f| |2012/10/23|: the code, although working, was perhaps a bit insane
+%   \mstrelease{1.15f} |2012/10/23|: the code, although working, was perhaps a bit insane
 %   and
 %   had definitions which could surprise other packages. For example, it did:\\
 %   \null\hspace{1cm}|\renewcommand{\%}{\ifmmode\mt at mmode@percent\else\char37\relax\fi}|\\
@@ -8426,60 +9036,80 @@
 %  mathcode. So here it is \emph{not} a redefinition of  the control sequences,
 %  purely an adjustment of mathcodes.
 %
-%  |1.2d| |2013/01/01|: previous versions imposed the variable family type. I
+%  \mstrelease{1.2d} |2013/01/01|: previous versions imposed the variable family type. I
 %  hereby make it possible to de-activate this feature with the macro
 %  \cs{MTeasynonlettersdonotobeymathxx}. Besides, I have absolutely no idea
 %  why I had different looking code depending on the engine \XeTeX, \LuaTeX\ or
 %  default. Removed.
 %
-%  |1.3c| |2013/12/14|: I have absolutely no idea why I removed the \XeTeX\
-%  and \LuaTeX\ code at the time of |1.2d|! the code for tex/pdftex engine
+%  \mstrelease{1.3c} |2013/12/14|: I have absolutely no idea why I removed the \XeTeX\
+%  and \LuaTeX\ code at the time of \mstrelease{1.2d}! the code for tex/pdftex engine
 %  could not accomodate more than 16 math families. Code for \XeTeX\ and
 %  \LuaTeX\ again added. (and since TL2013 no more problems with
 %  |\luatexUmathcode|.)
+%
+% \mstrelease{1.4} has done slight refactoring here to share more code related
+% to math activation across the two branches.
 %    \begin{macrocode}
 \ifmst at nospecials
 \else
-   \mst at infoline{\string\#\space\string\mathdollar\space
-               \string\%\space\string\&\space}
+  \mst at infoline{\string\#\space\string\mathdollar\space
+                \string\%\space\string\&\space}
   \ifmst at XeOrLua
-  \mst at Umathcode`\#=0 \symmtoperatorfont "23 \relax
-  \mst at Umathchardef\mathdollar=0 \symmtoperatorfont "24 \relax
-  \mst at Umathcode`\%=0 \symmtoperatorfont "25 \relax
-  \mst at Umathcode`\&=0 \symmtoperatorfont "26 \relax
-  \mst at do@easynonletters\expandafter{%
-    \the\mst at do@easynonletters
-    \mst at Umathcode`\#=7 \symmtoperatorfont "23 \relax
-    \mst at Umathchardef\mathdollar=7 \symmtoperatorfont "24 \relax
-    \mst at Umathcode`\%=7 \symmtoperatorfont "25 \relax
-    \mst at Umathcode`\&=7 \symmtoperatorfont "26 \relax
-    }
+    \mst at Umathcode`\#=0 \symmtoperatorfont "23 \relax
+    \mst at Umathchardef\mathdollar=0 \symmtoperatorfont "24 \relax
+    \mst at Umathcode`\%=0 \symmtoperatorfont "25 \relax
+    \mst at Umathcode`\&=0 \symmtoperatorfont "26 \relax
+    \mst at Umathchardef\mst at varfam@mathhash      = 7 \symmtoperatorfont "23 \relax
+    \mst at Umathchardef\mst at varfam@mathdollar    = 7 \symmtoperatorfont "24 \relax
+    \mst at Umathchardef\mst at varfam@mathpercent   = 7 \symmtoperatorfont "25 \relax
+    \mst at Umathchardef\mst at varfam@mathampersand = 7 \symmtoperatorfont "26 \relax
+    \mst at addtodo@easynonletters at U\#\mst at varfam@mathhash
+    \mst at addtodo@easynonletters at U\%\mst at varfam@mathpercent
+    \mst at addtodo@easynonletters at U\&\mst at varfam@mathampersand
   \else
-  \count@=\symmtoperatorfont
-  \multiply\count@ by \@cclvi
-  \advance\count@ by 35
-      \mathcode`\#\count@
-  \advance\count@ by \@ne
-      \mathchardef\mathdollar\count@
-  \advance\count@ by \@ne
-      \mathcode`\%\count@
-  \advance\count@ by \@ne
-      \mathcode`\&\count@
-  \count@=\symmtoperatorfont
-  \multiply\count@ by \@cclvi
-  \advance\count@ by 28707 % = "7023
-      \mathchardef\mst at varfam@mathhash\count@
-  \advance\count@ by \@ne
-      \mathchardef\mst at varfam@mathdollar\count@
-  \advance\count@ by \@ne
-      \mathchardef\mst at varfam@mathpercent\count@
-  \advance\count@ by \@ne
-      \mathchardef\mst at varfam@mathampersand\count@
+    \count@=\symmtoperatorfont
+    \multiply\count@ by \@cclvi
+    \advance\count@ by 35
+        \mathcode`\#\count@
+    \advance\count@ by \@ne
+        \mathchardef\mathdollar\count@
+    \advance\count@ by \@ne
+        \mathcode`\%\count@
+    \advance\count@ by \@ne
+        \mathcode`\&\count@
+    \count@=\symmtoperatorfont
+    \multiply\count@ by \@cclvi
+    \advance\count@ by 28707 % = "7023
+        \mathchardef\mst at varfam@mathhash\count@
+    \advance\count@ by \@ne
+        \mathchardef\mst at varfam@mathdollar\count@
+    \advance\count@ by \@ne
+        \mathchardef\mst at varfam@mathpercent\count@
+    \advance\count@ by \@ne
+        \mathchardef\mst at varfam@mathampersand\count@
+    \mst at addtodo@easynonletters\#\mst at varfam@mathhash
+    \mst at addtodo@easynonletters\%\mst at varfam@mathpercent
+    \mst at addtodo@easynonletters\&\mst at varfam@mathampersand
+  \fi
+%    \end{macrocode}
+% It is possible to mathematically activate the dollar sign, and to use
+% it in math mode as |\string$|... well, how many documents will have
+% done that? But we do not modify the mathcode of the |$| character
+% anyhow, so why should I add here a \cs{mst at OnlyIfNotMathActive}?
+% There is no good reason for that.
+%    \begin{macrocode}
   \mst at do@easynonletters\expandafter{\the\mst at do@easynonletters
-    \mathcode`\#=\mst at varfam@mathhash
-    \let\mathdollar\mst at varfam@mathdollar
-    \mathcode`\%=\mst at varfam@mathpercent
-    \mathcode`\&=\mst at varfam@mathampersand}
+    \let\mathdollar\mst at varfam@mathdollar}%
+%    \end{macrocode}
+% Extras for \mstrelease{1.4} are needed.  Here too we do not worry
+% about math active dollar character.
+%    \begin{macrocode}
+  \ifmst at everymath\else
+      \edef\mst at tmp{\ifmst at XeOrLua\mst at Umathcharnumdef\else\mathchardef\fi
+                    \mathdollar=\the\mathdollar\relax}%
+      \mst at undo@easynonletters\expandafter\expandafter\expandafter
+               {\expandafter\mst at tmp\the\mst at undo@easynonletters}%
   \fi
 \fi
 %    \end{macrocode}
@@ -8495,7 +9125,7 @@
 % manipulations, but well, life is finite.
 % \begin{macro}{\prod}
 % \begin{macro}{\sum}
-%   |1.13b|: I correct the brutal re-definitions of \cs{prod} and \cs{sum} from
+%   \mstrelease{1.13b}: I correct the brutal re-definitions of \cs{prod} and \cs{sum} from
 %   the earlier versions of the package; most of the time the Symbol glyphs do
 %   appear to be too small in display mode. The new redefinitions do have some
 %   defects: |$\displaystyle\prod_1^2$| changes the position of limits but not
@@ -8506,40 +9136,50 @@
 %    
 % October 2012: maybe I should re-examine what I did?
 %
-% |1.3c| (|2013/12/14|) renames |\defaultprod| to |\MToriginalprod| and
+% \mstrelease{1.3c} (|2013/12/14|) renames |\defaultprod| to |\MToriginalprod| and
 % |\defaultsum| to 
 % |\MToriginalsum|.
 %
-% |1.3v| hesitates about making robust here \cs{prod} and \cs{sum}. Finally I
+% \mstrelease{1.3v} hesitates about making robust here \cs{prod} and \cs{sum}. Finally I
 % use \cs{protected} for them.
+%
+% \mstrelease{1.4} finally replaces all control sequences defines earlier via
+% \cs{DeclareRobustCommand} to be defined using \cs{protected}\cs{def}.  It
+% also removes \cs{mst at prod} and \cs{mst at sum} which were aliases of
+% \cs{MToriginalprod} and \cs{MToriginalsum}, and having both must have
+% been some left-over of earlier versions in 2012 or 2013 (unchecked).
 %    \begin{macrocode}
-\ifmst at symbolmisc\mst at infoline{symbolmisc: miscellaneous math symbols from Symbol font}
-\let\mst at prod\prod
+\ifmst at symbolmisc
+\mst at infoline{symbolmisc: miscellaneous math symbols from Symbol font}
 \let\MToriginalprod\prod
 \DeclareMathSymbol{\prodpsy}{\mathop}{mtpsymbol}{213}
-\protected\def\prod{\ifinner\prodpsy\else\mst at prod\fi}
-\let\mst at sum\sum
+\protected\def\prod{\ifinner\prodpsy\else\MToriginalprod\fi}
 \let\MToriginalsum\sum
 \DeclareMathSymbol{\sumpsy}{\mathop}{mtpsymbol}{229}
-\protected\def\sum{\ifinner\sumpsy\else\mst at sum\fi}
+\protected\def\sum{\ifinner\sumpsy\else\MToriginalsum\fi}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %    \begin{macrocode}
 \DeclareMathSymbol{\mst at implies}{\mathrel}{mtpsymbol}{222}
-\DeclareRobustCommand*{\implies}{\;\mst at implies\;}
+\protected\def\implies{\;\mst at implies\;}
 \DeclareMathSymbol{\mst at impliedby}{\mathrel}{mtpsymbol}{220}
-\DeclareRobustCommand*{\impliedby}{\;\mst at impliedby\;}
-\DeclareRobustCommand*{\iff}{\;\mst at impliedby\mathrel{\mkern-3mu}\mst at implies\;}
+\protected\def\impliedby{\;\mst at impliedby\;}
+\protected\def\iff{\;\mst at impliedby\mathrel{\mkern-3mu}\mst at implies\;}
 \DeclareMathSymbol{\mst at iff}{\mathrel}{mtpsymbol}{219}
-\DeclareRobustCommand*{\shortiff}{\;\mst at iff\;}
-\DeclareMathSymbol{\mst at to}{\mathrel}{mtpsymbol}{174}
+\protected\def\shortiff{\;\mst at iff\;}
+%    \end{macrocode}
+% \mstrelease{1.4} drops defining a \cs{mst at to} and employs \cs{to}
+% in subsequent definitions
+%    \begin{macrocode}
+\let\to\relax
+\DeclareMathSymbol{\to}{\mathrel}{mtpsymbol}{174}
 \DeclareMathSymbol{\mst at trait}{\mathrel}{mtpsymbol}{190}
-\DeclareRobustCommand*\to{\mst at to}
-\DeclareRobustCommand*\longto{\mkern2mu\mst at trait\mathrel{\mkern-10mu}\mst at to}
-\DeclareRobustCommand*\mapsto{\mapstochar\mathrel{\mkern0.2mu}\mst at to}
-\DeclareRobustCommand*\longmapsto{%
-\mapstochar\mathrel{\mkern2mu}\mst at trait\mathrel{\mkern-10mu}\mst at to}
+\protected\def\longto{\mkern2mu\mst at trait\mathrel{\mkern-10mu}\to}
+\protected\def\mapsto{\mapstochar\mathrel{\mkern0.2mu}\to}
+\protected\def\longmapsto{%
+    \mapstochar\mathrel{\mkern2mu}\mst at trait\mathrel{\mkern-10mu}\to
+}
 \DeclareMathSymbol{\aleph}{\mathord}{mtpsymbol}{192}
 \DeclareMathSymbol{\inftypsy}{\mathord}{mtpsymbol}{165} 
 \DeclareMathSymbol{\emptyset}{\mathord}{mtpsymbol}{198}
@@ -8593,7 +9233,8 @@
 % \begin{macro}{symbolre}
 % I like the \cs{Re} and \cs{Im} from Symbol, so I overwrite the CM ones.
 %    \begin{macrocode}
-\ifmst at symbolre\mst at infoline{symbolre: \string\Re\space and \string\Im\space from Symbol font}
+\ifmst at symbolre
+\mst at infoline{symbolre: \string\Re\space and \string\Im\space from Symbol font}
 \DeclareMathSymbol{\Re}{\mathord}{mtpsymbol}{"C2}
 \DeclareMathSymbol{\Im}{\mathord}{mtpsymbol}{"C1}
 \DeclareMathSymbol{\DotTriangle}{\mathord}{mtpsymbol}{92}
@@ -8603,12 +9244,12 @@
 % \begin{macro}{Greek letters}
 % LGRgreek $>$ selfGreek $>$ eulergreek $>$ symbolgreek 
 % 
-% |1.11| I correct some bugs on how eulergreek and
+% \mstrelease{1.11} I correct some bugs on how eulergreek and
 % symbolgreek interacted.
 %
-% |1.12b| more bug fixes.
+% \mstrelease{1.12b} more bug fixes.
 %
-% |1.13| 
+% \mstrelease{1.13} 
 %
 %       * Option LGRgreek. 
 %
@@ -8616,10 +9257,10 @@
 %       the default shape is now the one for letters, not for operator-names
 %       and digits. This complies to the ISO standard.  
 %
-%       * bugfix: version |1.12b| did not define the \cs{omicron} in the
+%       * bugfix: version \mstrelease{1.12b} did not define the \cs{omicron} in the
 %       case when no Greek-related option was passed to the package. 
 %
-% |1.13d| has new macros |\MTstandardgreek| and |\MTcustomgreek|.
+% \mstrelease{1.13d} has new macros |\MTstandardgreek| and |\MTcustomgreek|.
 %       And in the subdued case |\MTstandardgreek| is done when switching to
 %       the normal or bold math versions (previously something like this
 %       was only done in case of |LGRgreek| option. )
@@ -8672,13 +9313,13 @@
 %    \begin{macrocode}
   \ifx\mst at mathord\mathord
 %    \end{macrocode}
-%  symbolgreek but neither eulergreek nor selfGreek
-%    \begin{macrocode}
-%% attention le P de Symbol est un \Pi pas un \Rho
+% \noindent symbolgreek but neither eulergreek nor selfGreek\newline
+% Attention le P de Symbol est un \cs{Pi} pas un \cs{Rho}.\newline
+% Attention le X de Symbol est un \cs{Xi} pas un \cs{Chi}.\newline
+% Attention le F de Symbol est un \cs{Phi}. Il n'y a pas de \cs{Digamma}.
+%    \begin {macrocode}
     \DeclareMathSymbol{\mst at Rho}{\mathord}{mtpsymbol}{"52}
-%% attention le X de Symbol est un \Xi pas un \Chi
     \DeclareMathSymbol{\mst at Chi}{\mathord}{mtpsymbol}{"43}
-%% attention le F de Symbol est un \Phi. Il n'y a pas de \Digamma
     \DeclareMathSymbol{\mst at Gamma}{\mathord}{mtpsymbol}{"47}
     \DeclareMathSymbol{\mst at Delta}{\mathord}{mtpsymbol}{"44}
     \DeclareMathSymbol{\mst at Theta}{\mathord}{mtpsymbol}{"51}
@@ -8690,7 +9331,7 @@
     \DeclareMathSymbol{\mst at Phi}{\mathord}{mtpsymbol}{"46}
     \DeclareMathSymbol{\mst at Psi}{\mathord}{mtpsymbol}{"59}
     \DeclareMathSymbol{\mst at Omega}{\mathord}{mtpsymbol}{"57}
-  \else % de \mst at mathord=\mathord
+  \else
 %    \end{macrocode}
 % not symbolgreek but eulergreek or selfGreek. Note |2015/10/31| : apparemment \xE0
 % un moment dans le pass\xE9 je consid\xE9rais eulergreek et selfGreek comme pouvant
@@ -8709,8 +9350,8 @@
     \DeclareMathSymbol\mst at Phi      {\mathalpha}{\mst at font@tbu}{"08}
     \DeclareMathSymbol\mst at Psi      {\mathalpha}{\mst at font@tbu}{"09}
     \DeclareMathSymbol\mst at Omega    {\mathalpha}{\mst at font@tbu}{"0A}
-  \fi % de \mst at mathord=\mathord
-\fi % fin de goahead
+  \fi
+\fi
 %    \end{macrocode}
 % There are differences regarding Euler and Symbol with respect to the
 % available var-letters. We include one or two things like the |wp| and the
@@ -8796,10 +9437,10 @@
 \fi
 %    \end{macrocode}
 % \begin{macro}{\alphaup etc...}
-% Completely refactored at |1.3x| to define |\Alphaup|, |\Alphait|,
+% Completely refactored at \mstrelease{1.3y} to define |\Alphaup|, |\Alphait|,
 % |\alphaup|, |\alphait|, etc\dots{} and prepare templates |\Alpha|, \dots{},
 % |\alpha|, \dots{}, which when activating a math version will be submitted to
-% an |\expanded|, whose behaviour will depend on version-specific conditionals.
+% an |\expanded|, whose behavior will depend on version-specific conditionals.
 %    \begin{macrocode}
 \ifmst at LGRgreek
 % cf http://milde.users.sourceforge.net/LGR/lgrxenc.def.html
@@ -8832,7 +9473,7 @@
   \DeclareMathSymbol{\Tauit}{\mathalpha}{mtgreekit}{84}
   \DeclareMathSymbol{\Chiit}{\mathalpha}{mtgreekit}{81}
 %    \end{macrocode}
-% |1.3w| and earlier had a bug regarding Digamma which was set up
+% \mstrelease{1.3w} and earlier had a bug regarding Digamma which was set up
 % to use same font shape as for lowercase digamma.
 %    \begin{macrocode}
   \DeclareMathSymbol{\Digammaup}{\mathalpha}{mtgreekup}{195}
@@ -8916,7 +9557,9 @@
   \DeclareMathSymbol{\omegaup}{\mathalpha}{mtgreekup}{119}
   %
   \DeclareMathSymbol{\digammaup}{\mathalpha}{mtgreekup}{147}
-% only varsigma defined (I should check this again)
+%    \end{macrocode}
+% Only varsigma defined (I should check this again).
+%    \begin{macrocode}
   \DeclareMathSymbol{\varsigmaup}{\mathalpha}{mtgreekup}{99}
   %
   \DeclareMathSymbol{\alphait}{\mathalpha}{mtgreekit}{97}
@@ -8981,12 +9624,12 @@
 % \begin{macro}{\MTstandardgreek}
 % \begin{macro}{\MTcustomgreek}
 % \begin{macro}{\MTrecordstandardgreek}
-%   |1.3d 2014/05/23| defines the commands |\MTstandardgreek| and
+%   \mstrelease{1.3d} |2014/05/23| defines the commands |\MTstandardgreek| and
 %   |\MTcustomgreek| for package and user. I leave |\MTrecordstandardgreek|
 %   undocumented as I don't want to encourage people to load math packages
 %   after \mst.
 %
-% |1.3h 2015/10/31|: corrected |\MTcustomgreek| as it caused |\ell| to
+% \mstrelease{1.3h} |2015/10/31|: corrected |\MTcustomgreek| as it caused |\ell| to
 % become undefined under option |symbolgreek| and, much more catastrophic,
 % caused |\alpha|, etc.. to become undefined under option |selfGreek| !
 %    \begin{macrocode}
@@ -9055,7 +9698,7 @@
 %
     \let\mst at origpartial\partial
     \let\mst at origwp\wp
-    \let\mst at origell\ell }% \MTrecordstandardgreek
+    \let\mst at origell\ell }%
 \MTrecordstandardgreek 
 \renewcommand*{\MTstandardgreek}{%
     \let\Alpha\mst at origAlpha
@@ -9119,10 +9762,10 @@
     \let\partial\mst at origpartial
     \let\wp\mst at origwp
     \let\ell\mst at origell
-}% \MTstandardgreek
+}%
 \ifmst at greekplus
 %    \end{macrocode}
-%   |1.3za| implementation of |LGRgreek+| option.  It is not exactly
+%   \mstrelease{1.3za} implementation of |LGRgreek+| option.  It is not exactly
 %   clear what we should do for \cs{mathnormal} and \cs{mathnormalbold}.
 %
 %   This definition allows usage of \cs{alpha} for example in numerical
@@ -9210,7 +9853,7 @@
     \mst at define@lowergreekletter\omega\mst at omega
     \mst at define@lowergreekletter\varsigma\mst at varsigma
     \mst at define@lowergreekletter\digamma\mst at digamma
-}% end of True branch of \ifmst at greekplus
+}%
 \else
 %    \end{macrocode}
 %   Under |selfGreek| or other Greek option but not |LGRgreek|, these Greek
@@ -9243,8 +9886,10 @@
     \let\noexpand\Rho\mst at Rho
     \let\noexpand\Tau\mst at Tau
     \let\noexpand\Chi\mst at Chi
-  }% end of first big \expanded
-% 1.3h: \mst at Digamma not defined if symbolgreek option
+  }%
+%    \end{macrocode}
+% \mstrelease{1.3h}: \cs{mst at Digamma} not defined if |symbolgreek| option.
+%    \begin{macrocode}
     \ifmst at symbolgreek\else
         \expanded{\let\noexpand\Digamma\mst at Digamma}%
     \fi
@@ -9260,10 +9905,10 @@
     \let\noexpand\Phi\mst at Phi
     \let\noexpand\Psi\mst at Psi
     \let\noexpand\Omega\mst at Omega
-  }% end of second big \expanded
+  }%
 %    \end{macrocode}
-% |1.3h 2015/10/31| adds this conditional to correct the bad bug in 
-% |1.3d 2014/05/23| which caused |\alpha| etc... to become undefined 
+% \mstrelease{1.3h} |2015/10/31| adds this conditional to correct the bad bug in 
+% \mstrelease{1.3d} |2014/05/23| which caused |\alpha| etc... to become undefined 
 % under option |selfGreek|.
 %    \begin{macrocode}
  \ifmst at selfGreek\else
@@ -9293,12 +9938,16 @@
     \let\noexpand\psi\mst at psi
     \let\noexpand\omega\mst at omega
     \let\noexpand\varsigma\mst at varsigma
-  }% end of third big \expanded
-% 1.3h: digamma only defined with option LGRgreek:
+  }%
+%    \end{macrocode}
+% \mstrelease{1.3h}: digamma only defined with option |LGRgreek|.
+%    \begin{macrocode}
     \ifmst at LGRgreek
         \expanded{\let\noexpand\digamma\mst at digamma}%
     \fi
-% conditional added 1.3h 2015/10/31
+%    \end{macrocode}
+% Conditional added \mstrelease{1.3h} |2015/10/31|.
+%    \begin{macrocode}
     \ifmst at LGRgreek\else
       \let\varepsilon\mst at varepsilon
       \let\vartheta\mst at vartheta
@@ -9305,16 +9954,18 @@
       \let\varpi\mst at varpi
       \let\varrho\mst at varrho
       \let\varphi\mst at varphi
-%
       \let\partial\mst at partial
       \let\wp\mst at wp
-% 1.3h: no \mst at ell if symbolgreek (bugfix 1.3h 2015/10/31)
+%    \end{macrocode}
+%   \mstrelease{1.3h}: no \cs{mst at ell} if |symbolgreek| (bugfix
+%   \mstrelease{1.3h} |2015/10/31|).
+%    \begin{macrocode}
       \ifmst at symbolgreek\else\let\ell\mst at ell\fi
     \fi
  \fi
-}% \MTcustomgreek
-\fi% end of else branch of \ifmst at greekplus
-\fi% end of \ifmst at customgreek
+}%
+\fi
+\fi
 \let\Mathastextstandardgreek\MTstandardgreek
 \let\Mathastextcustomgreek\MTcustomgreek
 \ifmst at subdued\else\MTcustomgreek\fi
@@ -9322,22 +9973,22 @@
 % \end{macro}\end{macro}\end{macro}
 % \begin{macro}{\inodot}
 % \begin{macro}{\jnodot}
-%   In |1.0|, I had them of type |mathord|, here I choose |mathalpha|. If I
+%   In \mstrelease{1.0}, I had them of type |mathord|, here I choose |mathalpha|. If I
 %   used \cs{i} and \cs{j} from the text font the problem would be with the
 %   fontsize, if in scriptstyle. The amsmath \cs{text} would do the trick.
 %
-% |1.14b| |2011/04/02|: again this bug in the EU1/EU2 encoding part, as in the
+% \mstrelease{1.14b} |2011/04/02|: again this bug in the EU1/EU2 encoding part, as in the
 % code redefining \$ etc in math mode (see above). Fixed.
 %
-% |1.3l| |2016/01/29|: anticipating TL2016 fontspec's switch to |TU|.
+% \mstrelease{1.3l} |2016/01/29|: anticipating TL2016 fontspec's switch to |TU|.
 %
-% |1.3t| |2018/08/22| removes the definitions done of |\i| and |\j|
-% since |1.12| (as robust commands usable both in text and math mode).
+% \mstrelease{1.3t} |2018/08/22| removes the definitions done of |\i| and |\j|
+% since \mstrelease{1.12} (as robust commands usable both in text and math mode).
 %
-% |1.3u| lets the \cs{imath} and \cs{jmath} react to the font encoding at each
+% \mstrelease{1.3u} lets the \cs{imath} and \cs{jmath} react to the font encoding at each
 % math version.
 %
-% |1.3v| lets the redefined \cs{imath} and \cs{jmath} be \cs{protected}.
+% \mstrelease{1.3v} lets the redefined \cs{imath} and \cs{jmath} be \cs{protected}.
 %    \begin{macrocode}
 \def\mst at subduedinodot{%
    \let\inodot\mst at original@imath
@@ -9352,7 +10003,6 @@
 \def\mst at dothe@inodotstuff#1#2#3{%
   \edef\mst at tmp@enc{#3}%
   \if1\mst at OneifUniEnc
-    % Unicode engine and font
     \mst at Umathchardef#1="7 \symmtletterfont "0131 \relax
     \mst at Umathchardef#2="7 \symmtletterfont "0237 \relax
   \else 
@@ -9360,7 +10010,7 @@
                      {\csname\mst at tmp@enc\string\i\endcsname}
    \DeclareMathSymbol{#2}{\mathalpha}{mtletterfont}
                      {\csname\mst at tmp@enc\string\j\endcsname}
-  \fi}% \mst at dothe@inodotstuff
+  \fi}%
 \ifmst at defaultimath\else\mst at infoline{\string\imath\space and \string\jmath\space}
     \AtEndOfPackage{\AtBeginDocument{%
         \protected\def\imath{\inodot}%
@@ -9382,10 +10032,10 @@
 %   define math versions with different encodings. Here I
 %   take T1 if it was the default at the time of loading the
 %   package, else OT1.
-%   |1.12b|: I add LY1 which is quasi like OT1.
+%   \mstrelease{1.12b}: I add LY1 which is quasi like OT1.
 %   \end{quote}
 %
-%   At |1.3u 2019/08/20| I decide to remove the hard-coded slot positions
+%   At \mstrelease{1.3u} |2019/08/20| I decide to remove the hard-coded slot positions
 %   for OT1, T1 and LY1, and replace them with some hack which assumes
 %   LaTeX2e way of handling text accents got executed by the encoding
 %   definition file. If not, some breakage on package loading could occur, but
@@ -9395,21 +10045,22 @@
 %   The |\vec| accent is not considered here because it has no suitable
 %   available glyph in a standard 8bits text font encodings.
 %
-%   Also at |1.3u| the math accents adapt to the font encoding at each math
+%   Also at \mstrelease{1.3u} the math accents adapt to the font encoding at each math
 %   version.
 %
-%   |1.3v| adapts to \LaTeX{} |2019-10-01| which now comes with robust math
-%   accent macros. The \xABoriginal\xBB-named macros are without the robustifying
-%   space (NOT true anymore, see |1.3w| next), as they only serve as meaning
+%   (obsolete at \mstrelease{1.4}) \mstrelease{1.3v} adapts to \LaTeX{}
+%   |2019-10-01| which now comes with robust math accent macros. The
+%   \xABoriginal\xBB-named macros are without the robustifying space (NOT true
+%   anymore, see \mstrelease{1.3w} next), as they only serve as meaning
 %   holders.
 %
-%   On the other hand the macros
-%   indexed by math version names are (in the pdflatex branch) always defined
-%   via \cs{DeclareMathAccent} hence they will be robust with |2019-10-01| or
+%   (obsolete at \mstrelease{1.4}) On the other hand the macros indexed by
+%   math version names are (in the pdflatex branch) always defined via
+%   \cs{DeclareMathAccent} hence they will be robust with |2019-10-01| or
 %   later and we must use the \cs{mst at robustifyingspace} with them to access
 %   their real meaning (this thus differs from the situation with \cs{hbar}).
 %
-%   |1.3w| The above was a bit optimistic as |amsmath| for example modifies
+%   \mstrelease{1.3w} The above was a bit optimistic as |amsmath| for example modifies
 %   \LaTeX{} internals and handles math accents differently.
 %
 %   We thus needed to double our
@@ -9456,73 +10107,63 @@
   \let\add at unicode@accent\@firstoftwo
   \if1\mst at OneifUniEnc
     \ifmst at unimathaccents
-      % \` -> \grave
       \expandafter\xdef\csname mst at grave@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\`\endcsname{}\relax}%
-      % \' -> \acute
       \expandafter\xdef\csname mst at acute@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\'\endcsname{}\relax}%
-      % \v -> \check
       \expandafter\xdef\csname mst at check@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\v\endcsname{}\relax}%
-      % \u -> \breve
       \expandafter\xdef\csname mst at breve@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\u\endcsname{}\relax}%
-      % \= -> \bar
       \expandafter\xdef\csname mst at bar@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\=\endcsname{}\relax}%
-      % \. -> \dot
       \expandafter\xdef\csname mst at dot@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\.\endcsname{}\relax}%
-      % \" -> \ddot
       \expandafter\xdef\csname mst at ddot@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\"\endcsname{}\relax}%
-      % \r -> \mathring
       \expandafter\xdef\csname mst at mathring@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\r\endcsname{}\relax}%
-      % \^ -> \hat
       \expandafter\xdef\csname mst at hat@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\^\endcsname{}\relax}%
-      % \~ -> \tilde
       \expandafter\xdef\csname mst at tilde@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\~\endcsname{}\relax}%
-    \else % false branch of ifmst at unimathaccents
+    \else
 %    \end{macrocode}
-% |1.3u| used some \cs{def} but this made the accent macro meanings look
+% \mstrelease{1.3u} used some \cs{def} but this made the accent macro meanings look
 % slightly different depending on whether the math version being set-up was
 % with an 8bit encoding or TU encoding.
 %
-% For the sake of uniform treatment we modify this at |1.3v|, but this is a
+% For the sake of uniform treatment we modify this at \mstrelease{1.3v}, but this is a
 % bit complicated regarding timing: we need, in absence of |unimathaccents|
 % option, in math versions with an OpenType font, to let the \cs{acute} etc...
 % acquire back some prior non-\mst meanings. To allow maximal flexibility,
@@ -9535,8 +10176,8 @@
 % definition of the \xABoriginal\xBB-named macros but prior to the (last one, if
 % multiple) \cs{mst at nonsubduedmathaccents}.
 %
-% Hence |1.3v| delayed a bit the initial execution of this macro (see further
-% down in the code) compared to what happened in |1.3u|.
+% Hence \mstrelease{1.3v} delayed a bit the initial execution of this macro (see further
+% down in the code) compared to what happened in \mstrelease{1.3u}.
 %
 % We are in a group but \cs{AtEndOfPackage} does the right thing.
 %    \begin{macrocode}
@@ -9561,7 +10202,6 @@
 %
 % But wouldn't it be simpler to manage \cs{protected} macros?
 %    \begin{macrocode}
-    \ifmst at robust@obsessed at LaTeX@era
       \@tfor\@tempa:={grave}{acute}{check}{breve}{bar}%
                      {dot}{ddot}{mathring}{hat}{tilde}%
       \do
@@ -9569,8 +10209,7 @@
          {\noexpand\protect
           \expandafter\noexpand\csname mst@\@tempa @mv#1 \endcsname}%
       }%
-    \fi
-  \else % false branch of ifUniEnc
+  \else
 %    \end{macrocode}
 % \cs{DeclareMathAccent} works \cs{global}ly. And with \LaTeX{} |2019-10-01|
 % or later it creates robust macros.
@@ -9577,43 +10216,33 @@
 %
 % \cs{mst at DeclareMathAccent} to work around \url{https://github.com/latex3/latex2e/issues/216}
 %    \begin{macrocode}
-    % \` -> \grave
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at grave@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\`\endcsname{}}
-    % \' -> \acute
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at acute@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\'\endcsname{}}
-    % \v -> \check
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at check@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\v\endcsname{}}
-    % \u -> \breve
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at breve@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\u\endcsname{}}
-    % \= -> \bar
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at bar@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\=\endcsname{}}
-    % \. -> \dot
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at dot@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\.\endcsname{}}
-    % \" -> \ddot
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at ddot@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\"\endcsname{}}
-    % \r -> \mathring
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at mathring@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\r\endcsname{}}
-    % \^ -> \hat
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at hat@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\^\endcsname{}}
-    % \~ -> \tilde
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at tilde@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\~\endcsname{}}
@@ -9620,7 +10249,7 @@
   \fi
   \endgroup
 }%
-\fi % \ifmst at mathaccents
+\fi
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\MTDeclareVersion}
@@ -9634,14 +10263,14 @@
 %   \cs{SetSymbolFont}|{mteulervm}||{versionname}||{U}{zeur}{bx}{n}| if
 %   one wants to have a math version with bold Euler characters.
 %
-%   For version |1.1| we add an optional parameter specifying the shape
+%   For version \mstrelease{1.1} we add an optional parameter specifying the shape
 %   to be used for letters.
 %
 %   Note: (|2012/10/24|) I really should check whether the user attempts to
 %   redefine the `normal' and `bold' versions and issue a warning in
-%   that case! Finally done at  |1.3w| |2019/11/16|! Better late than never...
+%   that case! Finally done at  \mstrelease{1.3w} |2019/11/16|! Better late than never...
 %
-%   |1.3c| (|2013/12/14|) adds an extra optional parameter after all
+%   \mstrelease{1.3c} (|2013/12/14|) adds an extra optional parameter after all
 %   previous ones, to inherit the settings from another version. Typically
 %   to be used with [bold]. I take this opportunity to sanitize a bit some
 %   line endings to avoid generating (in the preamble, document macros were
@@ -9650,11 +10279,11 @@
 %   purpose) the strange way I used |\@onlypreamble| in earlier
 %   version.
 %
-%   |1.3u| adds storage of macros holding the needed meanings for
+%   \mstrelease{1.3u} adds storage of macros holding the needed meanings for
 %   \cs{imath}, \cs{hbar}, math accents, and the minus symbol,
 %   version wise.
 %
-%   |1.3w| adds the check to forbid |normal| and |bold| as version names.
+%   \mstrelease{1.3w} adds the check to forbid |normal| and |bold| as version names.
 %    \begin{macrocode}
 \newcommand*\MTDeclareVersion[6][]{%
   \edef\mst at declareversionargs{{#1}{#2}{#3}{#4}{#5}{#6}}%
@@ -9666,7 +10295,7 @@
    \MTDoNotDeclareVersion@\expandafter\@gobblefour
   \fi
   \relax\DeclareMathVersion{\mst at version}\MTDeclareVersion@
-}% \MTDeclareVersion
+}%
 \newcommand*\MTDoNotDeclareVersion@[1][]{%
    \PackageWarningNoLine{mathastext}{You asked to declare a version with name
    `\mst at version'.^^J%
@@ -9673,7 +10302,7 @@
    \@spaces Sorry but you are not allowed to do that.^^J%
    \@spaces \ifmst at subdued Anyway the `subdued' option is in force\else
          Use rather \string\Mathastext\space macro (with no optional argument)\fi
-}}%\MTDoNotDeclareVersion@
+}}%
 \newcommand*\MTDeclareVersion@[1][]{%
     \edef\mst at tmp{#1}%
     \ifx\mst at tmp\empty\else
@@ -9685,7 +10314,7 @@
                    inherits from `#1\string'\@gobble}%
     \fi
     \expandafter\MTDeclareVersion@@\mst at declareversionargs
-}% \MTDeclareVersion@
+}%
 \newcommand*\MTDeclareVersion@@[6]{%
   \expandafter\edef\csname mst at encoding@\mst at version\endcsname{#3}%
   \expandafter\edef\csname mst at family@\mst at version\endcsname{#4}%
@@ -9706,28 +10335,34 @@
   \ifx\mst at tmp\empty
     \ifmst at italic
       \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{\mst at ltsh}%
-\immediate\write\m at ne{}%
-\PackageInfo{mathastext}{Latin letters in math version `#2\string'\MessageBreak
+      \immediate\write\m at ne{}%
+      \PackageInfo{mathastext}%
+                        {Latin letters in math version `#2\string'\MessageBreak
                          declared\on at line\MessageBreak
                          will use the font #3/#4/#5/\mst at ltsh
                          \ifmst at frenchmath\space(uppercase: #6)\fi\MessageBreak
                          Other characters (digits, ...) and \protect\log-like names\MessageBreak 
                          will be in `#6\string' shape\@gobble}%
-\immediate\write\m at ne{}%
+      \immediate\write\m at ne{}%
       \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{\mst at ltsh}%
     \else
       \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#6}%
-\immediate\write\m at ne{}%
-\PackageInfo{mathastext}{Latin letters in math version `#2\string'\MessageBreak
+      \immediate\write\m at ne{}%
+      \PackageInfo{mathastext}%
+                        {Latin letters in math version `#2\string'\MessageBreak
                          declared\on at line\MessageBreak
                          will use the fonts #3/#4/#5(\mst at bold)/#6\@gobble}%
-\immediate\write\m at ne{}%
+      \immediate\write\m at ne{}%
       \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{#6}%
     \fi
-  \else % #1 not empty
+  \else
+%    \end{macrocode}
+% |#1| not empty.
+%    \begin{macrocode}
     \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#1}%
-\immediate\write\m at ne{}%
-\PackageInfo{mathastext}{Latin letters in math version `#2\string'\MessageBreak
+    \immediate\write\m at ne{}%
+    \PackageInfo{mathastext}%
+                        {Latin letters in math version `#2\string'\MessageBreak
                          declared\on at line\MessageBreak
                          will use the font #3/#4/#5/#1%
                          \ifmst at frenchmath\space(uppercase: #6)\fi\MessageBreak
@@ -9734,11 +10369,11 @@
                          Other characters (digits, ...) and
                          \protect\log-like names\MessageBreak
                          will be in `#6\string' shape\@gobble}%
-\immediate\write\m at ne{}%
-      \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{#1}%
+    \immediate\write\m at ne{}%
+    \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{#1}%
   \fi
 %    \end{macrocode}
-% Here and elsewhere |1.3za| has removed an
+% Here and elsewhere \mstrelease{1.3za} has removed an
 % \cs{ifmst at nonormalbold} conditional.
 %    \begin{macrocode}
        \SetMathAlphabet{\Mathnormalbold}{#2}{#3}{#4}{\mst at bold}%
@@ -9745,7 +10380,7 @@
                    {\csname mst at ltshape@\mst at version\endcsname}%
   \SetSymbolFont{mtoperatorfont}{#2}{#3}{#4}{#5}{#6}%
 %    \end{macrocode}
-% Since |1.3za| (and prior to |1.15f|) these math alphabet
+% Since \mstrelease{1.3za} (and prior to \mstrelease{1.15f}) these math alphabet
 % commands are always defined.
 %    \begin{macrocode}
   \SetMathAlphabet{\Mathbf}{#2}{#3}{#4}{\mst at bold}{#6}
@@ -9765,12 +10400,12 @@
 %   options as well as on the (local to this version) shapes for letters
 %   and digits.
 %
-%   |1.3x| replaces \cs{updefault} by \cs{MTgreekupdefault} and
+%   \mstrelease{1.3y} replaces \cs{updefault} by \cs{MTgreekupdefault} and
 %   \cs{itdefault} by \cs{MTgreekitdefault}.  It also prepares to store
 %   two Boolean settings saying whether lowercase respectively uppercase
 %   Greek letters will use `upright' or `italic' (|LGRgreek(s)| only).
 %
-%   The |1.3x| refactoring of |LGRgreek| is done via a decoupling,
+%   The \mstrelease{1.3y} refactoring of |LGRgreek| is done via a decoupling,
 %   thus things are done here under |selfGreek| or other Greek options
 %   which ultimately serve nothing and conversely things are done here
 %   for |LGRgreek| which are superfluous.
@@ -9813,7 +10448,7 @@
           \mst at greek@upper at uptrue
   \fi
 %    \end{macrocode}
-% |1.3za| refactoring to reduce code duplication; I briefly considered
+% \mstrelease{1.3za} refactoring to reduce code duplication; I briefly considered
 % trying to enhance \cs{MTgreekfont} to work also with |LGRgreeks| and
 % |selfGreeks| but I have dropped the idea for now.
 %    \begin{macrocode}
@@ -9875,7 +10510,7 @@
       \expandafter\mst at dothe@hyphenstuff\mst at tmp
     \fi
   \fi
-}% \MTDeclareVersion@@
+}%
 \let\MathastextDeclareVersion\MTDeclareVersion
 %    \end{macrocode}
 % \end{macro}
@@ -9890,45 +10525,48 @@
 %   additionally to the math fonts. Present already in the initial
 %   version of the package (January 2011.)
 %  
-%   |1.15|: some modifications for the subdued option vs LGRgreek and
+%   \mstrelease{1.15}: some modifications for the subdued option vs LGRgreek and
 %   for the math muskips after \cs{exists} and \cs{forall}.
 %
-%   |1.2|: with the subdued option sets the math alphabets in the
+%   \mstrelease{1.2}: with the subdued option sets the math alphabets in the
 %   normal and bold math versions do not apply to operator
 %   names and non-alphabetical symbols. The switch for braces
 %   is left as it is.
 %
-%   |1.2b|: with the subdued option, the italic corrections are not added.
+%   \mstrelease{1.2b}: with the subdued option, the italic corrections are not added.
 %   Else, we check the shape of letters in this version. Also, there was a bug
-%   since |1.15|: the values of the math skips were taken not from the
+%   since \mstrelease{1.15}: the values of the math skips were taken not from the
 %   settings for the math version (\#2) but from those of the optional argument
 %   (\#1), if present...
 %
-%   |1.3|: activation of italic corrections is now separated from actual math
+%   \mstrelease{1.3}: activation of italic corrections is now separated from actual math
 %   activation of letters.
 %
-%   |1.3c|: a starred variant is added which does not modify the text fonts,
+%   \mstrelease{1.3c}: a starred variant is added which does not modify the text fonts,
 %   only the math set-tup.
 %
-%   |1.3d|: replaced in |\MTversion@| things like |\edef\mst at encoding{...}| and
-%   |\renewcommand{\encodingdefault}{\mst@@encoding}| by
+%   \mstrelease{1.3d}: replaced in |\MTversion@| things like |\edef\mst at encoding{...}| and
+%   \centeredline{|\renewcommand{\encodingdefault}{\mst@@encoding}|} by
 %   |\edef\encodingdefault{...}| etc\dots All those |\mst@@...| things were
 %   useless. I also redefine |\seriesdefault| rather than |\mddefault|.
 %
-%   |1.3d|: mechanism of restoration of Greek in subdued normal and bold
+%   \mstrelease{1.3d}: mechanism of restoration of Greek in subdued normal and bold
 %   versions has been to all cases, and not only for the
 %   |LGRgreek| option.
 %
-%   |1.3u|: version savvy (i.e.\@ font-encoding savvy) minus sign,
+%   \mstrelease{1.3u}: version savvy (i.e.\@ font-encoding savvy) minus sign,
 %   \cs{hbar}, \cs{imath}, math accents.
 %
-%   |1.3x|: Booleans recovered from stored data in the math version will
+%   \mstrelease{1.3y}: Booleans recovered from stored data in the math version will
 %   configure the things \cs{MTcustomgreek} do, under |LGRgreek| option.
 %    \begin{macrocode}
-\newcommand*\MTversion {\@ifstar\MTversion at s\MTversion@ }
-\newcommand*\MTversion at s [1]{\mathversion{#1}\MTversion@@ }
+\newcommand*\MTversion {\@ifstar\MTversion at s\MTversion@}
+\newcommand*\MTversion at s [1]{\mathversion{#1}\MTversion@@}
 \newcommand*\MTversion@ [2][]{%
-    \mathversion{#2}% defines \math at version as expanded #2
+%    \end{macrocode}
+% This defines \cs{math at version} as expanded |#2|.
+%    \begin{macrocode}
+    \mathversion{#2}%
     \edef\mst at tmpa{#1}%
     \ifx\mst at tmpa\empty
         \let\mst at tmp\math at version
@@ -9946,14 +10584,14 @@
     \edef\ttdefault {\csname mst at ttdefault@\mst at tmp\endcsname}%
     \usefont{\encodingdefault}{\familydefault}{\seriesdefault}{\shapedefault}%
     \MTversion@@
-}% \MTversion@
+}%
 %    \end{macrocode}
-%   |1.3j| has a stronger subdued which does \cs{MTnormalprime},
+%   \mstrelease{1.3j} has a stronger subdued which does \cs{MTnormalprime},
 %   \cs{MTnormalexists}, \cs{MTnormalforall} rather than setting the skips to
 %   |0mu|. Hence \cs{MTversion} by default should do \cs{MTprimedoesskip},
 %   \cs{MTexistsdoesskip}, \cs{MTforalldoesskip}.
 %
-%   |1.3u| drops the argument, as the info is in \cs{math at version} from
+%   \mstrelease{1.3u} drops the argument, as the info is in \cs{math at version} from
 %   \LaTeX2e code.
 %    \begin{macrocode}
 \newcommand*\MTversion@@ {%
@@ -9979,18 +10617,18 @@
     \edef\mst at tmpa{\csname mst at ltshape@\math at version\endcsname}%
     \edef\mst at tmpb{\csname mst at shape@\math at version\endcsname}%
 %    \end{macrocode}
-% |v1.15c|: extending subdued to LGRgreek.
+% \mstrelease{1.15c}: extending subdued to LGRgreek.
 %
-% |v1.15f|: subdueing math alphabets in a simpler way than in |1.15e|.
+% \mstrelease{1.15f}: subdueing math alphabets in a simpler way than in \mstrelease{1.15e}.
 %
-% |v1.2b|: subdueing the activation of characters in math mode.
+% \mstrelease{1.2b}: subdueing the activation of characters in math mode.
 %
-% |v1.2d|: special treatment of the asterisk.
+% \mstrelease{1.2d}: special treatment of the asterisk.
 %
-% |v1.3d|: extended LGRgreek mechanism of activation/restoration of Greek to all
+% \mstrelease{1.3d}: extended LGRgreek mechanism of activation/restoration of Greek to all
 % cases.
 %
-% |v1.3j|: use of \cs{MTeverymathdefault}, which includes \cs{MTicinmath}, but
+% \mstrelease{1.3j}: use of \cs{MTeverymathdefault}, which includes \cs{MTicinmath}, but
 % must be corrected then according to shape of letters and presence or absence
 % of option |frenchmath|. We do only |\def\mst at ITcorr{\ifnum\fam=\m at ne\/\fi}|
 % and not \cs{MTICinmath} to not overwrite some user-defined
@@ -9999,6 +10637,12 @@
 % user customizing possibilities, but if I moved it later, I would possibly
 % have to put inside the \cs{MTicinmath} the check for |it| ot |sl|. Similary
 % the \cs{MTcustomgreek} always executed (if not |subdued|).
+%
+% MEMO: \cs{MTeverymathdefault} is executed \emph{also} if in |subdued| mode
+% but there is a \cs{MTeverymathoff} done next in the \emph{normal} and
+% \emph{bold} version.  It does \cs{MTicinmath} and \cs{MTmathactivedigits}
+% which however are no-ops (only partly for the former, and for the latter
+% always anyhow if no option |activedigits|) in subdude mode.
 %    \begin{macrocode}
     \MTmathoperatorsobeymathxx
     \MTeverymathdefault
@@ -10009,7 +10653,7 @@
       \@for\mst at tmpc:=it,sl\do{\ifx\mst at tmpc\mst at tmpb\MTnoICinmath\fi}%
     \fi
 %    \end{macrocode}
-% |1.3j| has a stronger subdued which does \cs{MTnormalprime},
+% \mstrelease{1.3j} has a stronger subdued which does \cs{MTnormalprime},
 % \cs{MTnormalexists}, \cs{MTnormalforall} rather than simply setting the
 % skips to |0mu|. Note: \cs{MTnormalprime} is done as part of
 % \cs{MTeverymathoff}.
@@ -10027,13 +10671,18 @@
         \MTmathoperatorsdonotobeymathxx
         \MTnormalexists
         \MTnormalforall
+%    \end{macrocode}
+% \mstrelease{1.4} has kept \cs{MTmathstandardletters} inside
+% \cs{MTeverymathoff} but its action is now quite different from earlier
+% situation as it resets mathcodes from active to normal status on the spot.
+%    \begin{macrocode}
         \MTeverymathoff
         \MTresetnewmcodes
 %    \end{macrocode}
-% |1.3t| adds better compatibility with |subdued| mode for
+% \mstrelease{1.3t} adds better compatibility with |subdued| mode for
 % |\imath/\jmath| and perfect compatibility for the minus sign.
 %
-% |1.3u| extends this further to allow per-math-version meanings
+% \mstrelease{1.3u} extends this further to allow per-math-version meanings
 % for them.
 %    \begin{macrocode}
         \mst at subduedhbar
@@ -10056,7 +10705,14 @@
         \else
           \mst at setalphabets
 %    \end{macrocode}
-% |1.3x| addition for \cs{MTcustomgreek} under |LGRgreeks| option.
+% \mstrelease{1.3y} addition for \cs{MTcustomgreek} under |LGRgreeks| option.
+%
+% MEMO: the needed mathematical re-activation of letters when switching from
+% \emph{normal} or \emph{bold} to a non-|subdued| math version has already
+% been done above from the \cs{MTicinmath} which is part of
+% \cs{MTeverymathdefault}.
+%
+% MEMO: idem for digits under option |activedigits|.
 %    \begin{macrocode}
     \expandafter\let\csname ifmst at greek@upper at up\expandafter\endcsname
                     \csname ifmst at greek@\math at version @upper at up\endcsname
@@ -10071,19 +10727,22 @@
       \fi
     \else
 %    \end{macrocode}
-% |1.3x| addition for \cs{MTcustomgreek} under |LGRgreek| option.
+% \mstrelease{1.3y} addition for \cs{MTcustomgreek} under |LGRgreek| option.
+%
+% MEMO: the mathematical activation of letters happened above from
+% \cs{MTeverymathdefault}.  Idem if |activedigits| for digits.
 %    \begin{macrocode}
     \expandafter\let\csname ifmst at greek@upper at up\expandafter\endcsname
                     \csname ifmst at greek@\math at version @upper at up\endcsname
     \expandafter\let\csname ifmst at greek@lower at up\expandafter\endcsname
                     \csname ifmst at greek@\math at version @lower at up\endcsname
-      \MTcustomgreek % new with 1.3d
+      \MTcustomgreek
       \mst at nonsubduedhbar
       \mst at nonsubduedinodot
       \mst at nonsubduedmathaccents
       \mst at nonsubduedminus
     \fi
-}% \MTversion@@
+}%
 \let\MathastextVersion\MTversion
 \let\Mathastextversion\MTversion
 \let\MTVersion\MTversion
@@ -10100,7 +10759,7 @@
   \MTfamily{#3}
   \MTseries{#4}
   \MTshape{#5}
-    \ifmst at italic\MTlettershape{\itdefault}\fi % was missing in v 1.14 and prior
+    \ifmst at italic\MTlettershape{\itdefault}\fi
   \edef\mst at tmp{#1}
   \ifx\mst at tmp\empty\else\MTlettershape{#1}\fi
   \Mathastext}
@@ -10113,23 +10772,23 @@
 %    preamble and any number of time, the last one is the
 %    one that counts.
 %
-%    In version |1.1| we have two fonts: they only differ in
+%    In version \mstrelease{1.1} we have two fonts: they only differ in
 %    shape. The |mtletterfont| is for letters, and the
 %    |mtoperatorfont| for digits and log-like operator
 %    names. The default is that both are upright.
 %
-%    Starting with version |1.12|, an optional argument makes
+%    Starting with version \mstrelease{1.12}, an optional argument makes
 %    \cs{Mathastext} act as the declaration of a math
 %    version, to be later used in the document.
 %
-%    Versions |1.15x| brought some adaptations related to the subdued
+%    Versions \mstrelease{1.15x} brought some adaptations related to the subdued
 %    option.
 %
-%    |1.3c| adds a second optional parameter to inherit previous settings
+%    \mstrelease{1.3c} adds a second optional parameter to inherit previous settings
 %    from another version; mostly done to inherit the bold version fonts for
 %    symbols and large symbols. This is done in |\MTDeclareVersion|.
 %
-%    |1.3j| moves the code related to \cs{MTicinmath} from \cs{Mathastext@} to
+%    \mstrelease{1.3j} moves the code related to \cs{MTicinmath} from \cs{Mathastext@} to
 %    \cs{AtBeginDocument} (code depending on whether |subdued| option in use).
 %    But we omit for this from \cs{MTicinmath} the \cs{MTmathactiveletters}
 %    and issue the latter during loading of package, hence allowing
@@ -10139,15 +10798,15 @@
 %    command without optional parameter does not any |\SetSymbolFont| etc...
 %    but it has a few other tasks to complete nevertheless.
 %
-% |1.3u| fixes some long-standing bug that \cs{Mathastext} did not repeat some
+% \mstrelease{1.3u} fixes some long-standing bug that \cs{Mathastext} did not repeat some
 % font-encoding dependent things: they got done only once during package
 % loading (things regarding the \cs{hbar}, \cs{imath}, the math accents and
 % the minus sign). They are now part of the contents of \cs{Mathastext} macro
 % itself (which is executed during package loading).
 %
-% |1.3x| has refactored the |LGRgreek| associated math fonts.
+% \mstrelease{1.3y} has refactored the |LGRgreek| associated math fonts.
 %    \begin{macrocode}
-\def\Mathastext {\@ifnextchar [\Mathastext at declare\Mathastext@ }
+\def\Mathastext {\@ifnextchar[\Mathastext at declare\Mathastext@}% ]
 \def\Mathastext at declare [#1]{%
   \edef\mst at tmp{#1}%
   \ifx\mst at tmp\empty
@@ -10156,7 +10815,7 @@
   \fi
   \Mathastext@
   {\MTDeclareVersion[\mst at ltsh]{#1}{\mst at enc}{\mst at fam}{\mst at ser}{\mst at opsh}}%
-}% \Mathastext at declare
+}%
 \def\Mathastext@ {%
   \mst at update@greeksh 
   \edef\mst at encoding@normal{\mst at enc}%
@@ -10187,7 +10846,7 @@
   \edef\mst at prime@skip at bold{\mst at prime@skip}%
   \ifmst at subdued
 %    \end{macrocode}
-% Since |1.3j| this branch is actually almost superfluous, as entering
+% Since \mstrelease{1.3j} this branch is actually almost superfluous, as entering
 % |normal| or |bold| with \cs{MTversion} does \cs{MTnormalexists},
 % \cs{MTnormalforall}, and \cs{MTnormalprime}. But some default values are
 % needed if the user insists on issuing \cs{MTexistsdoesskip}, etc...
@@ -10199,7 +10858,7 @@
     \def\mst at exists@skip at bold{0mu}%
     \def\mst at forall@skip at bold{0mu}%
     \def\mst at prime@skip at bold{0mu}%
-  \else % not subdued
+  \else
     \ifmst at italic
       \ifmst at frenchmath
         \mst at exists@muskip\mst at exists@skip\relax
@@ -10220,8 +10879,8 @@
     \fi
   \fi
 %    \end{macrocode}
-% Here and elsewhere |1.3za| has removed usage of an
-% \cs{ifmst at nonormalbold} conditional which was added at |1.15f|.
+% Here and elsewhere \mstrelease{1.3za} has removed usage of an
+% \cs{ifmst at nonormalbold} conditional which was added at \mstrelease{1.15f}.
 %    \begin{macrocode}
    \SetMathAlphabet{\Mathnormalbold}{normal}{\mst at encoding@normal}%
                                  {\mst at family@normal}%
@@ -10249,7 +10908,7 @@
                                        {\mst at series@bold}%
                                        {\mst at shape@bold}%
 %    \end{macrocode}
-% |1.3za| removes the |1.15f| added conditional checks.
+% \mstrelease{1.3za} removes the \mstrelease{1.15f} added conditional checks.
 %    \begin{macrocode}
     \SetMathAlphabet{\Mathbf}{normal}{\mst at encoding@normal}%
                                  {\mst at family@normal}%
@@ -10283,10 +10942,10 @@
                                  {\mst at ttdefault@bold}%
                                  {\mst at series@bold}%
                                  {\mst at shape@bold}%
-  \fi % de \ifmst at subdued
+  \fi
 %    \end{macrocode}
 % \begin{macro}{\MathEulerBold}
-%   |1.14c|: We reset |mteulervm| and \cs{MathEulerBold} here as the
+%   \mstrelease{1.14c}: We reset |mteulervm| and \cs{MathEulerBold} here as the
 %   variant for bold may have been changed by the user via
 %   \cs{Mathastextboldvariant}|{m}|; and we should keep this local to
 %   math versions.
@@ -10309,9 +10968,9 @@
 % \begin{macro}{selfGreek*}
 % LGRgreek, LGRgreeks, selfGreek, and selfGreeks options.
 %
-% |1.3x| has refactored the |LGRgreek| associated math fonts.
+% \mstrelease{1.3y} has refactored the |LGRgreek| associated math fonts.
 %
-% |1.3za| adds the math alphabets \cs{mathgreekitbold} and
+% \mstrelease{1.3za} adds the math alphabets \cs{mathgreekitbold} and
 % \cs{mathgreekupbold}.
 % And it executes this code also in |subdued| mode, because
 % anyhow the symbolfonts |mtgreekup| and |mtgreekit| and
@@ -10352,7 +11011,7 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
-% |1.3za| adds the log message in case of |selfGreek| option.
+% \mstrelease{1.3za} adds the log message in case of |selfGreek| option.
 %    \begin{macrocode}
   \ifmst at subdued
   \else 
@@ -10380,7 +11039,7 @@
      \mst at infoline{Other characters (digits, ...) and \string\log-like names will be}%
      \mst at infoline{typeset with the \mst at shape@normal\space shape.}%
    \fi
-  \fi % end of else branch \ifmst at subdued
+  \fi
   \ifmst at nohbar\else
      \mst at infoline{\string\hbar}%
      \mst at dothe@hbarstuff
@@ -10415,9 +11074,9 @@
       \let\mst at varfam@minus at mvbold\mst at varfam@minus at mvnormal
     \fi
    \fi
-  \fi % minus
+  \fi
 %    \end{macrocode}
-% |1.3zb| moves this info line last and also explicitly mentions |italic| or
+% \mstrelease{1.3zb} moves this info line last and also explicitly mentions |italic| or
 % |frenchmath| (here and at some other locations above).
 %    \begin{macrocode}
   \ifmst at subdued
@@ -10427,7 +11086,7 @@
     \mst at infoline{The \ifmst at frenchmath frenchmath \else
                                         italic \fi option is in effect.}%
   \fi
-}% \Mathastext@
+}%
 \let\mathastext\Mathastext
 \Mathastext
 %    \end{macrocode}
@@ -10488,14 +11147,23 @@
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\MTeverymathoff}
-%   |1.3i 2016/01/06| Compatibility patch with |\url| from |url.sty| and
+%   \mstrelease{1.3i} |2016/01/06| Compatibility patch with |\url| from |url.sty| and
 %   |\url/\nolinkurl| from |hyperref.sty|.
 %
-%   |1.3j 2016/01/15| renamed the macro from |\MTactivemathoff| to
+%   \mstrelease{1.3j} |2016/01/15| renamed the macro from |\MTactivemathoff| to
 %   |\MTeverymathoff|, as it is not exclusively a matter of math active
 %   characters due to |\MTeasynonlettersdonotobeymathxx|.
 %
-%   |1.3o 2016/05/03| adds \cs{MTdonotfixfonts}. Operant with \LuaLaTeX\ only.
+%   \mstrelease{1.3o} |2016/05/03| adds \cs{MTdonotfixfonts}. Operant with
+%   \LuaLaTeX\ only.
+%
+%   \mstrelease{1.4} |2024/07/20| keeps the \cs{MTmathstandardletters} as a
+%   component of \cs{MTeverymathoff}.  It was checked that \ctanpkg{url} and
+%   \ctanpkg{hyperref} do not change mathcodes of ascii letters prior to
+%   location where \cs{MTeverymathoff} gets executed, so nothing is
+%   overwritten, despite the new mode of action of \cs{MTmathstandardletters}.
+%
+% \mstrelease{1.4} has \cs{MTmathstandarddigits} and inserts it into \cs{MTeverymathoff}.
 %    \begin{macrocode}
 \newcommand*\MTeverymathoff {%
     \MTnormalasterisk
@@ -10503,6 +11171,7 @@
     \MTnonlettersdonotobeymathxx
     \MTeasynonlettersdonotobeymathxx
     \MTmathstandardletters
+    \MTmathstandarddigits
     \MTdonotfixfonts
 }%
 \AtBeginDocument {%
@@ -10513,7 +11182,7 @@
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\MTeverymathdefault}
-%   |1.3j 2016/01/15| Customizable command which gets executed by
+%   \mstrelease{1.3j} |2016/01/15| Customizable command which gets executed by
 %   \cs{MTversion} except when switching to |normal/bold| if option |subdued|.
 %   The included \cs{MTicinmath} does \cs{MTmathactiveletters} which will also
 %   activate the math skips around letters.
@@ -10537,7 +11206,11 @@
 %   it will not be overruled (as it is delayed at begin document to after \mst
 %   dealings).
 %
-%   |1.3o 2016/05/03| adds \cs{MTfixfonts}. Operant with \LuaLaTeX\ only.
+%   \mstrelease{1.3o} |2016/05/03| adds \cs{MTfixfonts}. Operant with
+%   \LuaLaTeX\ only.
+%
+%   \cs{MTmathactivedigits} of \mstrelease{1.4} is a no-op except under option
+%   |activedigits|.
 %    \begin{macrocode}
 \newcommand*\MTeverymathdefault {%
     \MTactiveasterisk
@@ -10544,6 +11217,7 @@
     \MTprimedoesskip
     \MTeasynonlettersobeymathxx
     \MTicinmath
+    \MTmathactivedigits
     \MTfixfonts
 }%
 %    \end{macrocode}
@@ -10552,48 +11226,54 @@
 % \def~{\rlap}
 % \begin{macro}{Things to do last ~{``at begin document''}}
 % \let~\temp
+%
+% \mstrelease{1.4} has a significant change here that mathematical
+% activation of ascii letters is now not incorporated into the \cs{everymath}
+% and \cs{everydisplay}.
 %    \begin{macrocode}
-\AtBeginDocument{%
-  \everymath\expandafter{\the\everymath 
-    \mst at the\mst at do@nonletters \let\mst at the\@gobble
-    \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
-    \mst at thef\mst at do@az \let\mst at thef\@gobble
-    \mst at theF\mst at do@AZ \let\mst at theF\@gobble}%
-  \everydisplay\expandafter{\the\everydisplay 
-    \mst at the\mst at do@nonletters \let\mst at the\@gobble
-    \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
-    \mst at thef\mst at do@az \let\mst at thef\@gobble
-    \mst at theF\mst at do@AZ \let\mst at theF\@gobble}%
+\ifmst at everymath
+  \AtBeginDocument{%
+    \everymath\expandafter{\the\everymath 
+        \mst at the\mst at do@nonletters \let\mst at the\@gobble
+        \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
+    }%
+    \everydisplay\expandafter{\the\everydisplay 
+        \mst at the\mst at do@nonletters \let\mst at the\@gobble
+        \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
+    }%
+  }
+\fi
 %    \end{macrocode}
-% |1.3j|: moved here to be executed at begin document (and not from inside
+% \mstrelease{1.3j}: moved here to be executed at begin document (and not from inside
 % \cs{Mathastext@}.) The \cs{MTeverymathoff} does: \cs{MTnormalasterisk},
 % \cs{MTnormalprime}, \cs{MTnonlettersdonotobeymathxx},
 % \cs{MTeasynonlettersdonotobeymathxx}, \cs{MTmathstandardletters}.
 %
-% |1.3m|: doing \cs{MTmathactiveletters} in subdued mode immediately after
+% \mstrelease{1.3m}: doing \cs{MTmathactiveletters} in subdued mode immediately after
 % |\begin{document}| resulted in errors because \cs{mst at itcorr} had been left
 % undefined. We thus add \cs{MTnoicinmath} to the subdued initialization.
 %
-% Since |1.3n| there is \cs{MTresetnewmcodes} which needs
+% Since \mstrelease{1.3n} there is \cs{MTresetnewmcodes} which needs
 % \cs{mst at originalnewmcodes@}, itself defined at begin document. Thus we have
-% wrapped the whole thing in \cs{AtEndOfPackage} (at |1.3u| whole code
+% wrapped the whole thing in \cs{AtEndOfPackage} (at \mstrelease{1.3u} whole code
 % directly moved at end of package).
 %
-% And |1.3p| adds here \cs{MTcustomizenewmcodes} which had been regrettably
-% forgotten by |1.3n|.
+% And \mstrelease{1.3p} adds here \cs{MTcustomizenewmcodes} which had been regrettably
+% forgotten by \mstrelease{1.3n}.
 %
-% |1.3t| adds some extras to handle correctly the minus sign and
+% \mstrelease{1.3t} adds some extras to handle correctly the minus sign and
 % dotless i and j in subdued mode, even in case of usage with fontspec.
 %
-% |1.3u| similarly lets math accents be correctly subdued.
+% \mstrelease{1.3u} similarly lets math accents be correctly subdued.
 %
-% |1.3v| adapts to \cs{hbar} and math accents now being robust with \LaTeX{}
+% \mstrelease{1.3v} adapts to \cs{hbar} and math accents now being robust with \LaTeX{}
 % |2019-10-01| or later.
 %
-% |1.3w| pays attention to the fact that \cs{hbar} may well be
+% \mstrelease{1.3w} pays attention to the fact that \cs{hbar} may well be
 % a |\mathchar| and not a robust macro! And no need to worry about
 % \cs{hbar<space>} finally in revised code.
 %    \begin{macrocode}
+\AtBeginDocument{%
   \MTcustomizenewmcodes
   \let\mst at original@hbar\hbar
   \let\mst at original@imath\imath
@@ -10617,21 +11297,18 @@
     \MTresetnewmcodes
     \MTnoicinmath
     \MTmathoperatorsdonotobeymathxx
-    %\mst at subduedhbar
     \let\inodot\imath
     \let\jnodot\jmath
-    %\mst at subduedmathaccents
     \mst at subduedminus
   \else
      \mst at nonsubduedhbar
 %    \end{macrocode}
-% |1.3v| needs this \cs{mst at nonsubduedmathaccents} to get executed later (see
+% \mstrelease{1.3v} needs \cs{mst at nonsubduedmathaccents} to get executed later (see
 % code comments for \cs{mst at dothe@mathaccentsstuff}).
 %    \begin{macrocode}
-     % \mst at nonsubduedmathaccents % will get executed later
      \mst at nonsubduedminus
 %    \end{macrocode}
-% |1.3j|: an earlier version of this code was earlier part of \cs{Mathastext@}.
+% \mstrelease{1.3j}: an earlier version of this code was earlier part of \cs{Mathastext@}.
 % As we are now in \cs{AtBeginDocument} we try to be careful not to overwrite
 % \cs{MTicinmath}, \cs{MTnoicinmath}, \cs{MTicalsoinmathxx}, ... if issued by
 % the user in the preamble, though. And we do not execute
@@ -10652,12 +11329,12 @@
          \fi
      \fi
   \fi
-}% \AtBeginDocument
+}%
 \AtEndOfPackage{\AtBeginDocument{\ifmst at subdued\else\mst at nonsubduedmathaccents\fi}}%
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{subdued}
-%   |1.15|: The subdued code was initiated in May 2011. I returned to
+%   \mstrelease{1.15}: The subdued code was initiated in May 2011. I returned to
 %   |mathastext| on Sep 24, 2012, and decided to complete what I had started
 %   then, but in the mean time I had forgotten almost all of the little I knew
 %   about \LaTeX{} macro programming.
@@ -10671,7 +11348,7 @@
 %   $^1$but the \emph{euler} package for example
 %   assigns the digits to the \emph{letters} symbol font...
 %
-%   |1.15d|: Oct 13, 2012. The \cs{mathcode} thing has to be used with care
+%   \mstrelease{1.15d}: Oct 13, 2012. The \cs{mathcode} thing has to be used with care
 %   under Unicode engines. Unfortunately the \cs{luatexUmathcode} macro is
 %   helpless as it is not possible to know if it will return a legacy mathcode
 %   or a Unicode mathcode. On the other hand the much saner
@@ -10683,14 +11360,14 @@
 %   treats identically under both unicode engines the equal and minus signs (and
 %   the vertical bar).}
 %
-%   |1.15e|: Oct 22, 2012. I add the necessary things to also subdue the
+%   \mstrelease{1.15e}: Oct 22, 2012. I add the necessary things to also subdue the
 %   \cs{mathbf}, \cs{mathit}, \cs{mathsf} and \cs{mathtt} macros (previous
 %   version only took care of the symbol alphabets \cs{mathnormal} and
-%   \cs{mathrm}.) [update: |1.15f| does that in a completely different and much
+%   \cs{mathrm}.) [update: \mstrelease{1.15f} does that in a completely different and much
 %   simpler way] Notice that the package defines a \cs{mathnormalbold} macro,
 %   but it will not be subdued in the normal and bold math versions.
 %
-%   |1.15f|: Oct 23, 2012. The previous version of the code queried the math
+%   \mstrelease{1.15f}: Oct 23, 2012. The previous version of the code queried the math
 %   family of a, respectively 1, to guess and then extract the fonts to be
 %   reassigned to mtletterfont and mtoperatorfont (which is done at the end of
 %   this .sty file). The present code simply directly uses letters and operators
@@ -10705,23 +11382,24 @@
 %   to revert these changes (and one would have to do even more hacking for
 %   |\mathversion{normal}| and not only |\MTversion{normal}| to work).
 %
-%   |1.15f|: and also I take this opportunity to do the subdued math
+%   \mstrelease{1.15f}: and also I take this opportunity to do the subdued math
 %   alphabets things in a much much easier way, see below.
 %
-%   |1.3s 2018/08/21|: I have half-forgotten the reasons for modifiying the
+%   \mstrelease{1.3s} |2018/08/21|: I have half-forgotten the reasons for modifiying the
 %   font encoding to current |\encodingdefault|, but at any rate this should
 %   not be done in a \ctanpkg{fontspec} context, encoding default being (now) |TU| it
 %   is very unlikely modifying from |TU| or to |TU| from something else will
-%   do any good.^^A See
+%   do any good.
+%^^A See
 %^^A   \centeredline{\url{https://tex.stackexchange.com/questions/444565/mathastext-wrong-digits-in-math-mode/}}
 %^^A   for original report.
 %   I add workaround here for case of \ctanpkg{fontspec} being
 %   detected via the |\encodingdefault| setting.
 %
-%   |1.3t 2018/08/22|: the |1.3s| fix erroneously removed the
+%   \mstrelease{1.3t} |2018/08/22|: the \mstrelease{1.3s} fix erroneously removed the
 %   |OT1->T1| replacement in |TU| context.
 %
-%   |1.3u|: the whole thing will only get executed At Begin
+%   \mstrelease{1.3u}: the whole thing will only get executed At Begin
 %   Document.
 %
 %   I realize extremely late (|2023/12/28|) I never said explicitly anywhere
@@ -10734,7 +11412,7 @@
 %   behavior of the package.
 %    \begin{macrocode}
 \ifmst at subdued
-\AtBeginDocument{%
+  \AtBeginDocument{%
   \def\mst at reserved#1\getanddefine at fonts\symletters#2#3\@nil{%
         \def\mst at normalmv@letter{#2}}%
   \expandafter\mst at reserved\mv at normal\@nil
@@ -10773,15 +11451,19 @@
        \else
          \mst at tmp@enc
        \fi/\mst at reste\endcsname}%
-  \expandafter\SetSymbolFont@ \expandafter\mv at normal\mst at normalmv@letter\symmtletterfont
-  \expandafter\SetSymbolFont@ \expandafter\mv at bold\mst at boldmv@letter\symmtletterfont
-  \expandafter\SetSymbolFont@ \expandafter\mv at normal\mst at normalmv@operator\symmtoperatorfont
-  \expandafter\SetSymbolFont@ \expandafter\mv at bold\mst at boldmv@operator\symmtoperatorfont
-\immediate\write\m at ne{}%
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at normal\mst at normalmv@letter\symmtletterfont
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at bold\mst at boldmv@letter\symmtletterfont
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at normal\mst at normalmv@operator\symmtoperatorfont
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at bold\mst at boldmv@operator\symmtoperatorfont
+  \immediate\write\m at ne{}%
   \PackageInfo{mathastext}{...entering subdued mode...\MessageBreak ...done}%
-\immediate\write\m at ne{}%
-}% \AtBeginDocument
-\fi % \ifmst at subdued
+  \immediate\write\m at ne{}%
+  }%
+\fi
 %    \end{macrocode}
 %^^A  In the short-lived |1.15e| I was doing the following for alphabets:\\
 %^^A  |\def\mst at reservedc#1#2#3#4{\def\mst at normalmv@mathbf{#4#3}}|\\

Modified: trunk/Master/texmf-dist/tex/latex/mathastext/mathastext.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/mathastext/mathastext.sty	2024-07-21 20:20:24 UTC (rev 71862)
+++ trunk/Master/texmf-dist/tex/latex/mathastext/mathastext.sty	2024-07-21 20:20:50 UTC (rev 71863)
@@ -23,24 +23,21 @@
 %%----------------------------------------------------------------
 %% Package: mathastext
 %% Info:    Use the text font in math mode (JFB)
-%% Version: 1.3zb 2023/12/29
+%% Version: 1.4a 2024/07/20
 %% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019, 2022, 2023 Jean-Francois Burnol
-%%                                                <jfbu at free dot fr>
+%% Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol
+%%                                   <jfbu at free dot fr>
 %% Examples of use of mathastext:
 %%        http://jf.burnol.free.fr/mathastext.html
 %%        http://jf.burnol.free.fr/showcase.html
 %%----------------------------------------------------------------
-\NeedsTeXFormat{LaTeX2e}
+\NeedsTeXFormat{LaTeX2e}[2020/02/02]
 \ProvidesPackage {mathastext}
-  [2023/12/29 v1.3zb Use the text font in math mode (JFB)]
+  [2024/07/20 v1.4a Use the text font in math mode (JFB)]
 \def\mst at infoline#1{\immediate\write\m at ne
                     {(\space\space\space mathastext:\space\space\space) #1}}
 \immediate\write\m at ne{}
 \PackageInfo{mathastext}{Starting the math mode configuration\@gobble}
-\newif\ifmst at robust@obsessed at LaTeX@era
-\@ifl at t@r\fmtversion{2019/10/01}{\mst at robust@obsessed at LaTeX@eratrue}{}
-\edef\mst at robustifyingspace{\ifmst at robust@obsessed at LaTeX@era\space\fi}
   \let\mst at Umathcharnumdef\Umathcharnumdef
   \let\mst at Umathcodenum   \Umathcodenum
   \let\mst at Umathcode      \Umathcode
@@ -75,20 +72,39 @@
 \newif\ifmst at XeOrLua
 \ifmst at LuaTeX\mst at XeOrLuatrue\fi
 \ifmst at XeTeX \mst at XeOrLuatrue\fi
+\ifmst at XeTeX
+  \def\mst at OnlyIfNotMathActive#1{%
+      \ifnum\mst at Umathcodenum`#1="1FFFFF
+           \expandafter\@gobble
+      \else\expandafter\@firstofone
+      \fi
+   }
+\else\ifmst at LuaTeX
+  \def\mst at OnlyIfNotMathActive#1{%
+      \ifnum\mst at Umathcodenum`#1="1000000
+           \expandafter\@gobble
+      \else\expandafter\@firstofone
+      \fi
+   }
+\else
+  \def\mst at OnlyIfNotMathActive#1{%
+      \ifnum\mathcode`#1="8000
+           \expandafter\@gobble
+      \else\expandafter\@firstofone
+      \fi
+   }
+\fi\fi
 \def\mst at oti{OT1}
-\def\mst at eui{EU1}\def\mst at euii{EU2}\def\mst at tu{TU}
-\def\mst at OneifUniEnc {%
-    \ifx \mst at tmp@enc\mst at tu   1\else
-    \ifx \mst at tmp@enc\mst at eui  1\else
-    \ifx \mst at tmp@enc\mst at euii 1\else 0\fi\fi\fi }
+\def\mst at tu{TU}
+\def\mst at OneifUniEnc{\ifx\mst at tmp@enc\mst at tu1\else0\fi}
 \newif\ifmst at goahead
 \newif\ifmst at abort
   \def\mst at enc{\encodingdefault}
   \def\mst at fam{\familydefault}
   \def\mst at ser{\seriesdefault}
-  \def\mst at opsh{\shapedefault}  %% will be default shape for operator names
+  \def\mst at opsh{\shapedefault}
   \def\mst at bold{\bfdefault}
-  \def\mst at ltsh{\shapedefault}  %% will be default shape for letters
+  \def\mst at ltsh{\shapedefault}
   \edef\mst at greekfont{\familydefault}
 \newif\ifmst at italic
 \newif\ifmst at frenchmath
@@ -131,18 +147,17 @@
 \newif\ifmst at noexclam
     \DeclareOption{noexclam}{\mst at noexclamtrue}
 \newif\ifmst at asterisk
-    \DeclareOption{noasterisk}{\PackageWarningNoLine{mathastext}
-        {option `noasterisk\string' is deprecated.^^J\space\space\space
-         Check the documentation}}
     \DeclareOption{asterisk}{\mst at asterisktrue}
 \newif\ifmst at nospecials
     \DeclareOption{nospecials}{\mst at nospecialstrue}
-\newif\ifmst at basic % 1.3 to avoid unnecessary patch of amsmath \newmcodes@
+\newif\ifmst at basic
     \DeclareOption{basic}{\mst at basictrue
     \ExecuteOptions{noparenthesis,nopunctuation,%
                     noplusnominus,noequal,noexclam,nospecials,nolessnomore}}
 \newif\ifmst at nohbar
     \DeclareOption{nohbar}{\mst at nohbartrue}
+\newif\ifmst at activedigits
+    \DeclareOption{activedigits}{\mst at activedigitstrue}
 \newif\ifmst at nodigits
     \DeclareOption{nodigits}{\mst at nodigitstrue}
 \newif\ifmst at defaultimath
@@ -149,7 +164,7 @@
     \DeclareOption{defaultimath}{\mst at defaultimathtrue}
 \newif\ifmst at mathaccents
     \DeclareOption{mathaccents}{\mst at mathaccentstrue}
-\newif\ifmst at unimathaccents % 1.3u
+\newif\ifmst at unimathaccents
     \DeclareOption{unimathaccents}{\mst at mathaccentstrue\mst at unimathaccentstrue}
 \newif\ifmst at needsymbol
 \newif\ifmst at symboldelimiters
@@ -157,7 +172,7 @@
 \newif\ifmst at symboldigits
     \DeclareOption{symboldigits}{\mst at needsymboltrue\mst at symboldigitstrue}
 \newif\ifmst at symbolgreek
-\newif\ifmst at customgreek %% new with 1.3d
+\newif\ifmst at customgreek
     \DeclareOption{symbolgreek}{\mst at needsymboltrue\mst at symbolgreektrue
                                 \mst at customgreektrue }
 \newif\ifmst at symbolre
@@ -214,6 +229,8 @@
     \DeclareOption{fouriervec}{\mst at fouriervectrue}
 \newif\ifmst at subdued
     \DeclareOption{subdued}{\mst at subduedtrue}
+\newif\ifmst at everymath
+    \DeclareOption{everymath}{\mst at everymathtrue}
 \def\mst at unicodeminus {2013}
 \def\mst at checkoption #1unicodeminus#2\mst@#3\mst@@
    {\ifx\\#3\\\PackageWarningNoLine{mathastext}
@@ -230,7 +247,20 @@
   \DeclareMathAccent{#1}}
 \def\mst at normalversionname{normal}%
 \def\mst at boldversionname{bold}%
-\newmuskip\mst at exists@muskip  %% v 1.15e
+\def\mst at OnlyIfNotSubdued#1{%
+    \ifmst at subdued
+      \ifx\math at version\mst at normalversionname
+      \else
+        \ifx\math at version\mst at boldversionname
+        \else
+          #1%
+        \fi
+      \fi
+    \else
+      #1%
+    \fi
+}%
+\newmuskip\mst at exists@muskip
 \newmuskip\mst at forall@muskip
 \def\mst at exists@skip{1mu}
 \def\mst at forall@skip{.6667mu}
@@ -258,25 +288,37 @@
 \newcommand*\MTexistsdoesskip {\AtBeginDocument {\MTexistsdoesskip }}
 \newcommand*\MTnormalforall   {\AtBeginDocument {\MTnormalforall   }}
 \newcommand*\MTforalldoesskip {\AtBeginDocument {\MTforalldoesskip }}
-\newmuskip\mst at prime@muskip   %% v 1.2
+\newmuskip\mst at prime@muskip
 \def\mst at prime@skip{.5mu}
 \ifmst at italic\ifmst at frenchmath\else\def\mst at prime@skip{0mu}\fi\fi
+\def\mst at tmp#1{%
+\def\mst at mathactivateprime{%
+  \ifnum\catcode`#1=\active
+    \@ifundefined{active at char#1}
+                 {}
+                 {\mst at do@activecase #1{}{\mst at active@math at prime}}%
+  \else
+    \mst@@mathactivate #1{}{\mst at active@math at prime}%
+  \fi
+}%
+\def\mst at undo@mathactivateprime{\mst at mathdeactivate#1{"8000}}%
+}\expandafter\mst at tmp\string'
 \def\mst at active@math at prime{\sp\bgroup\mskip\mst at prime@muskip\prim at s}
-{\catcode`\'=12
-\gdef\mst@@modifyprime{\mst at mathactivate'{}\mst at active@math at prime}}
-\newcommand*\MTnormalprime   {\let\mst at modifyprime\@empty }
-\newcommand*\MTprimedoesskip {\let\mst at modifyprime\mst@@modifyprime}
-\ifmst at subdued
-    \MTnormalprime
+\ifmst at everymath
+    \newcommand*\MTnormalprime  {\let\mst at modifyprime\@empty}
+    \newcommand*\MTprimedoesskip{\let\mst at modifyprime\mst at mathactivateprime}%
+    \AtBeginDocument{%
+      \everymath\expandafter
+               {\the\everymath    \mst at modifyprime \MTnormalprime}%
+      \everydisplay\expandafter
+               {\the\everydisplay \mst at modifyprime \MTnormalprime}%
+      \MTprimedoesskip
+    }
 \else
-    \MTprimedoesskip
+    \newcommand*\MTnormalprime  {\mst at undo@mathactivateprime}
+    \newcommand*\MTprimedoesskip{\mst at mathactivateprime}
+    \AtBeginDocument{\MTprimedoesskip}
 \fi
-\AtBeginDocument{%
-  \everymath\expandafter
-           {\the\everymath    \mst at modifyprime \MTnormalprime}%
-  \everydisplay\expandafter
-           {\the\everydisplay \mst at modifyprime \MTnormalprime}%
-}
 \newcommand*\MTexistsskip[1]{\edef\mst at exists@skip{#1}%
     \mst at exists@muskip\mst at exists@skip\relax}
 \newcommand*\MTforallskip[1]{\edef\mst at forall@skip{#1}%
@@ -290,47 +332,131 @@
 \let\mathastextforallskip\MTforallskip
 \let\mathastextprimeskip\MTprimeskip
 \ifmst at noparen\else
-\AtBeginDocument{%
-    \@ifundefined{resetMathstrut@}{% nothing to do, no amsmath
-    }{% amsmath loaded, and possibly patched by things such as lualatex-math
-    \let\mst at savedresetMathstrut@\resetMathstrut@
-    \ifx\mst at the\the % means that \MTnonlettersobeymathxx was used in preamble
-      \let\mst at the\@gobble\MTnonlettersobeymathxx
-   \fi}}
+\AtEndOfPackage{%
+  \AtBeginDocument{%
+    \@ifundefined{resetMathstrut@}
+      {}%
+      {%
+       \let\mst at savedresetMathstrut@\resetMathstrut@
+       \ifx\mst at the\the
+         \let\mst at the\@gobble
+         \MTnonlettersobeymathxx
+       \fi
+      }%
+  }%
+}%
 \fi
-\newtoks\mst at do@nonletters
-\newtoks\mst at do@easynonletters
-\newtoks\mst at do@az
-\newtoks\mst at do@AZ
-\let\mst at the\@gobble
-\newcommand*\MTnonlettersdonotobeymathxx{%
-    \ifx\mst at the\@gobble
+\def\mst at magic@v #1#2#3#4#5{#1#3#4}
+\def\mst at magic@vi #1#2#3#4#5#6{#1#2#4#5}
+\def\mst at fork{\ifmmode\mst at magic@v\fi\@thirdofthree}
+\def\mst at safefork{\ifmmode\if at safe@actives\else\mst at magic@vi\fi\fi\@thirdofthree}
+\def\mst at do@activecase#1#2#3{%
+    \ifx\relax #2\relax\mathcode`#1=`#1\relax\else\mathcode`#1=#3\relax\fi
+    \ifmst at everymath\else\@ifundefined{mst at hackedshorthand@#1}{\fi
+    \expandafter\let\csname mst at orig@user at active#1\expandafter\endcsname
+                    \csname user at active#1\endcsname
+    \expandafter\let\csname mst at orig@normal at char#1\expandafter\endcsname
+                    \csname normal at char#1\endcsname
+    \ifmst at everymath\else}{}\fi
+    \def\mst at tmp##1##2{\def##1{\mst at fork{#2}{#3}##2}}%
+    \expandafter\mst at tmp\csname user at active#1\expandafter\endcsname
+                        \csname mst at orig@user at active#1\endcsname
+    \def\mst at tmp##1##2{\def##1{\mst at safefork{#2}{#3}##2}}%
+    \expandafter\mst at tmp\csname normal at char#1\expandafter\endcsname
+                        \csname mst at orig@normal at char#1\endcsname
+    \ifmst at everymath
     \else
-      \@ifundefined{mst at savedresetMathstrut@}{}{%
-        \PackageInfo{mathastext}{restoring for this group or environment
-                                 the original\MessageBreak
-                                 amsmath \protect\resetMathstrut@}%
-      \let\resetMathstrut@\mst at savedresetMathstrut@}%
+      \expandafter\let\csname mst at hackedshorthand@#1\endcsname\@empty
     \fi
-    \let\mst at the\@gobble
-}%
-\def\mst at OnlyIfNotSubdued#1{%
-    \ifmst at subdued
-      \ifx\math at version\mst at normalversionname
-      \else
-        \ifx\math at version\mst at boldversionname
-        \else
-          #1%
-        \fi
-      \fi
+}
+\begingroup
+  \catcode`\~=\active
+  \def\x{%
+\endgroup
+\ifmst at everymath
+   \def\mst@@mathactivate##1##2##3{%
+      \begingroup
+      \lccode`~=`##1
+      \lccode`##1=`##1
+      \lowercase{\endgroup
+        \mathcode`##1="8000
+        \def~{##2##3}%
+      }%
+    }%
+\else
+   \def\mst@@mathactivate##1##2##3{%
+      \begingroup
+      \lccode`~=`##1
+      \lccode`##1=`##1
+      \lowercase{\endgroup
+        \mathcode`##1="8000
+        \@ifundefined{mst at prioractivemeaning@##1}
+                     {\expandafter\let
+                      \csname mst at prioractivemeaning@##1\endcsname ~}
+                     {}%
+        \def~{\ifmmode##2##3\else##1\fi}%
+      }%
+    }%
+\fi
+}\x
+\def\mst at mathactivate#1#2#3{%
+    \ifnum\catcode`#1=\active
+      \@ifundefined{active at char#1}{}{\mst at do@activecase #1{#2}{#3}}%
     \else
-      #1%
+      \mst at OnlyIfNotMathActive{#1}{\mst@@mathactivate #1{#2}{#3}}%
     \fi
+}
+\ifmst at everymath
+\else
+\def\mst at mathdeactivate#1#2{%
+  \mathcode`#1=#2\relax
+  \@ifundefined{active at char#1}
+      {\@ifundefined{mst at prioractivemeaning@#1}
+             {}%
+             {\mst at restoreactivemeaning#1%
+              \expandafter\let\csname mst at prioractivemeaning@#1\endcsname\relax}%
+      }
+      {\@ifundefined{mst at hackedshorthand@#1}
+       {}
+       {\expandafter\let\csname user at active#1\expandafter\endcsname
+                        \csname mst at orig@user at active#1\endcsname
+        \expandafter\let\csname normal at char#1\expandafter\endcsname
+                       \csname mst at orig@normal at char#1\endcsname
+        \expandafter\let\csname mst at hackedshorthand@#1\endcsname\relax
+       }%
+      }%
 }%
-\def\mst at nonlettersobeymathxx{%
-    \ifx\mst at the\the
-    \else
-      \@ifundefined{mst at savedresetMathstrut@}{}{%
+\def\mst at restoreactivemeaning#1{%
+    \begingroup
+    \lccode`~=`#1
+    \lccode`#1=`#1
+    \lowercase{\endgroup
+      \expandafter\let\expandafter~\csname mst at prioractivemeaning@#1\endcsname
+    }%
+}
+\fi
+\newtoks\mst at do@nonletters
+\ifmst at everymath
+\else
+    \newtoks\mst at undo@nonletters
+\fi
+\ifmst at everymath
+    \def\mst at addtodo@nonletters#1#2#3{\mst at do@nonletters\expandafter
+                   {\the\mst at do@nonletters\mst at mathactivate#1#2#3}%
+    }%
+\else
+    \def\mst at addtodo@nonletters#1#2#3{\mst at do@nonletters\expandafter
+                   {\the\mst at do@nonletters\mst at mathactivate#1#2#3}%
+        \edef\mst at tmp{\noexpand\mst at mathdeactivate#1{\the\mathcode`#1}}%
+        \mst at undo@nonletters\expandafter\expandafter\expandafter
+                  {\expandafter\mst at tmp\the\mst at undo@nonletters}%
+    }%
+\fi
+\let\mst at the\@gobble
+\def\mst at redefine@resetMathstrut@{%
+      \@ifundefined{mst at savedresetMathstrut@}
+      {}
+      {%
         \ifmst at symboldelimiters
           \def\resetMathstrut@{%
            \setbox\z@\hbox{\the\textfont\symmtpsymbol\char40
@@ -343,117 +469,117 @@
                         \the\textfont\symoperators\char40}%
            \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@}%
         \fi
-      \PackageInfo{mathastext}{\string\resetMathstrut@\space
-      from amsmath replaced for this\MessageBreak group or environment}}%
-    \fi
-    \let\mst at the\the
+        \PackageInfo{mathastext}{\string\resetMathstrut@\space
+        from amsmath replaced for this\MessageBreak group or environment}%
+      }%
 }%
-\newcommand*\MTnonlettersobeymathxx
-   {\mst at OnlyIfNotSubdued\mst at nonlettersobeymathxx}%
-\newcommand*\MTeasynonlettersdonotobeymathxx{\let\mst at theeasy\@gobble}%
-\def\mst at easynonlettersobeymathxx{\let\mst at theeasy\the}%
-\newcommand*\MTeasynonlettersobeymathxx
-   {\mst at OnlyIfNotSubdued\mst at easynonlettersobeymathxx}%
-\MTeasynonlettersobeymathxx % no-op here if subdued mode
-\def\mst at mathactiveletters{\let\mst at thef\the \let\mst at theF\the}%
-\newcommand*\MTmathactiveletters
-   {\mst at OnlyIfNotSubdued\mst at mathactiveletters}%
-\MTmathactiveletters % no-op here if subdued mode
-\def\mst at mathactiveLetters{\let\mst at theF\the}%
-\newcommand*\MTmathactiveLetters
-   {\mst at OnlyIfNotSubdued\mst at mathactiveLetters}%
-\newcommand*\MTmathstandardletters{\let\mst at thef\@gobble \let\mst at theF\@gobble}%
-\newcommand*\MTicinmath{%
-    \MTmathactiveletters
-    \def\mst at itcorr{\ifnum\fam=\m at ne\/\fi}%
-    \let\mst at ITcorr\mst at itcorr}
-\newcommand*\MTICinmath{%
-    \MTmathactiveLetters
-    \def\mst at ITcorr{\ifnum\fam=\m at ne\/\fi}}
-\newcommand*\MTnoicinmath{\let\mst at itcorr\@empty\let\mst at ITcorr\@empty}
-\newcommand*\MTnoICinmath{\let\mst at ITcorr\@empty}
-\newcommand*\MTicalsoinmathxx{%
-    \ifx\mst at itcorr\@empty\else\def\mst at itcorr{\/}\fi
-    \ifx\mst at ITcorr\@empty\else\def\mst at ITcorr{\/}\fi}
-\newcommand*\MTsetmathskips[3]{%
-    \@namedef{mst at before#1}{\ifnum\fam=\m at ne\mskip#2\relax\fi }%
-    \@namedef{mst at after#1}{\ifnum\fam=\m at ne\mskip#3\relax\fi }%
-}
-\newcommand*\MTunsetmathskips[1]{%
-    \@namedef{mst at before#1}{}%
-    \@namedef{mst at after#1}{}%
-}
-\def\mst at magic@v #1#2#3#4#5{#1#3#4}
-\def\mst at magic@vi #1#2#3#4#5#6{#1#2#4#5}
-\def\mst at fork{\ifmmode\mst at magic@v\fi\@thirdofthree}
-\def\mst at safefork{\ifmmode\if at safe@actives\else\mst at magic@vi\fi\fi\@thirdofthree}
-\def\mst at do@activecase#1#2#3{% #1 is a category 11 or 12 character token
-    \@ifundefined{active at char#1}{}{%
-         \ifcat #1a\mathcode`#1=#2\else
-         \ifx\relax #2\relax\mathcode`#1=`#1 \else\mathcode`#1=#3\fi\fi
-    \expandafter\expandafter\expandafter\let\expandafter\expandafter
-                   \csname mst at orig@user at active#1\endcsname
-                   \csname user at active#1\endcsname
-    \expandafter\expandafter\expandafter\let\expandafter\expandafter
-                   \csname mst at orig@normal at char#1\endcsname
-                   \csname normal at char#1\endcsname
-    \ifcat #1a%
-      \expandafter\edef\csname user at active#1\endcsname
-                   {\noexpand\mst at fork {{#2\noexpand#3}}{}\expandafter
-                    \noexpand\csname mst at orig@user at active#1\endcsname
-                   }%
-      \expandafter\edef\csname normal at char#1\endcsname
-                   {\noexpand\mst at safefork {{#2\noexpand#3}}{}\expandafter
-                    \noexpand\csname mst at orig@normal at char#1\endcsname
-                   }%
+\def\mst at restore@resetMathstrut@{%
+      \@ifundefined{mst at savedresetMathstrut@}{}{%
+        \PackageInfo{mathastext}{restoring for this group or environment
+                                 the original\MessageBreak
+                                 amsmath \protect\resetMathstrut@}%
+      \let\resetMathstrut@\mst at savedresetMathstrut@}%
+}%
+\ifmst at everymath
+  \newcommand*\MTnonlettersobeymathxx{%
+    \mst at OnlyIfNotSubdued{%
+        \ifx\mst at the\the
+        \else
+           \mst at redefine@resetMathstrut@
+        \fi
+        \let\mst at the\the
+    }%
+  }%
+  \newcommand*\MTnonlettersdonotobeymathxx{%
+    \ifx\mst at the\@gobble
     \else
-      \expandafter\edef\csname user at active#1\endcsname
-                   {\noexpand\mst at fork {#2}\noexpand#3\expandafter
-                    \noexpand\csname mst at orig@user at active#1\endcsname
-                   }%
-      \expandafter\edef\csname normal at char#1\endcsname
-                   {\noexpand\mst at safefork {#2}\noexpand#3\expandafter
-                    \noexpand\csname mst at orig@normal at char#1\endcsname
-                   }%
-    \fi}}
-\begingroup
-  \catcode`\~=\active
-  \def\x{\endgroup
-    \def\mst at mathactivate##1##2##3{% ##1 guaranteed of cat 11 or 12
-      \begingroup
-      \lccode`~=`##1
-      \lccode`##1=`##1
-      \lowercase{\endgroup
-          \ifnum\catcode`##1=\active
-            \mst at do@activecase ##1{##2}##3%
-            % careful as ##2 is empty in the asterisk and
-            % prime case!
-          \else
-            \mathcode`##1="8000
-            % version 1.3 adds the possibility of extra skips around letters,
-            % (only if non catcode active at the time of use).
-            \ifcat##1a\edef~{% extra braces for a^b for example
-               {\expandafter\noexpand\csname mst at before##1\endcsname
-                ##2\noexpand##3%
-                \expandafter\noexpand\csname mst at after##1\endcsname}}%
-            \else\def~{##2##3}\fi
-          \fi}}}
-\x
-\def\mst at addtodo@nonletters#1#2#3{%
-  % #1 will be of cat 11 or 12.
-  % #2 is empty for asterisk and right quote
-  \mst at do@nonletters\expandafter
-      {\the\mst at do@nonletters \mst at mathactivate#1{#2}#3}%
-}
-\def\mst at addtodo@easynonletters#1#2{% #1 is a one char control sequence
-  \mst at do@easynonletters\expandafter{\the\mst at do@easynonletters\mathcode`#1=#2}%
-}
-\def\mst at addtodo@az#1#2{%
-  \mst at do@az\expandafter{\the\mst at do@az\mst at mathactivate#1#2\mst at itcorr}
-}
-\def\mst at addtodo@AZ#1#2{%
-  \mst at do@AZ\expandafter{\the\mst at do@AZ\mst at mathactivate#1#2\mst at ITcorr}%
-}
+      \mst at restore@resetMathstrut@
+    \fi
+    \let\mst at the\@gobble
+  }%
+\else
+  \newcommand*\MTnonlettersobeymathxx{%
+     \mst at OnlyIfNotSubdued{%
+        \AtBeginDocument{\MTnonlettersobeymathxx}%
+     }%
+  }%
+  \newcommand*\MTnonlettersdonotobeymathxx{%
+     \AtBeginDocument{\MTnonlettersdonotobeymathxx}%
+  }%
+  \AtBeginDocument{%
+    \renewcommand*\MTnonlettersobeymathxx{%
+        \mst at OnlyIfNotSubdued{%
+             \the\mst at do@nonletters
+             \ifx\mst at the\the
+             \else
+                \mst at redefine@resetMathstrut@
+             \fi
+             \let\mst at the\the
+         }%
+    }%
+    \renewcommand*\MTnonlettersdonotobeymathxx{%
+        \the\mst at undo@nonletters
+        \ifx\mst at the\@gobble
+        \else
+           \mst at restore@resetMathstrut@
+        \fi
+        \let\mst at the\@gobble
+    }%
+  }%
+\fi
+\newtoks\mst at do@easynonletters
+\ifmst at everymath
+    \newcommand*\MTeasynonlettersdonotobeymathxx{\let\mst at theeasy\@gobble}%
+    \newcommand*\MTeasynonlettersobeymathxx{%
+                \mst at OnlyIfNotSubdued{\let\mst at theeasy\the}%
+    }%
+    \MTeasynonlettersobeymathxx
+\else
+    \newtoks\mst at undo@easynonletters
+    \newcommand*\MTeasynonlettersdonotobeymathxx{\the\mst at undo@easynonletters}
+    \newcommand*\MTeasynonlettersobeymathxx{%
+                \mst at OnlyIfNotSubdued{\the\mst at do@easynonletters}%
+    }%
+    \AtEndOfPackage{\MTeasynonlettersobeymathxx}%
+\fi
+\ifmst at everymath
+    \def\mst at addtodo@easynonletters#1#2{%
+      \mst at do@easynonletters\expandafter{%
+          \the\mst at do@easynonletters
+          \mst at OnlyIfNotMathActive{#1}{\mathcode`#1=#2}%
+      }%
+    }%
+    \def\mst at addtodo@easynonletters at U#1#2{%
+      \mst at do@easynonletters\expandafter{%
+          \the\mst at do@easynonletters
+          \mst at OnlyIfNotMathActive{#1}{\mst at Umathcodenum`#1=#2}%
+      }%
+    }%
+\else
+    \def\mst at addtodo@easynonletters#1#2{%
+      \mst at do@easynonletters\expandafter
+                            {\the\mst at do@easynonletters
+                             \mst at OnlyIfNotMathActive{#1}{\mathcode`#1=#2}}%
+      \def\mst at tmp##1\relax{%
+          \def\mst at tmp{\mst at OnlyIfNotMathActive{#1}{\mathcode`#1=##1\relax}}%
+      }%
+      \expandafter\mst at tmp\the\mathcode`#1\relax
+      \mst at undo@easynonletters\expandafter\expandafter\expandafter
+               {\expandafter\mst at tmp\the\mst at undo@easynonletters}%
+    }%
+    \def\mst at addtodo@easynonletters at U#1#2{%
+      \mst at do@easynonletters\expandafter{%
+         \the\mst at do@easynonletters
+         \mst at OnlyIfNotMathActive{#1}{\mst at Umathcodenum`#1=#2}%
+      }%
+      \def\mst at tmp##1\relax{%
+          \def\mst at tmp{\mst at OnlyIfNotMathActive{#1}{\mst at Umathcodenum`#1=##1\relax}}%
+      }%
+      \expandafter\mst at tmp\the\mst at Umathcodenum`#1\relax
+      \mst at undo@easynonletters\expandafter\expandafter\expandafter
+               {\expandafter\mst at tmp\the\mst at undo@easynonletters}%
+    }%
+\fi
 \ifmst at basic
 \else
  \ifmst at XeOrLua
@@ -481,7 +607,7 @@
   }%
   \let\mst at originalnewmcodes@\newmcodes@
   \fi
-  }% end of AtBeginDocument
+  }%
  \else
   \AtBeginDocument {%
   \ifx\newmcodes@\@undefined\else
@@ -501,9 +627,9 @@
     }%
   \let\mst at originalnewmcodes@\newmcodes@
   \fi
-  }% end of second AtBeginDocument
- \fi % mst at XeOrLua
-\fi % mst at basic
+  }%
+ \fi
+\fi
 \newcommand*\MTresetnewmcodes{\ifx\mst at originalnewmcodes@\undefined\else
                                \let\newmcodes@\mst at originalnewmcodes@\fi}
 \newcommand*\MTcustomizenewmcodes{\ifx\mst at originalnewmcodes@\undefined\else
@@ -515,35 +641,42 @@
 {\def\operator at font{\mathgroup\symmtoperatorfont}}
 \MTmathoperatorsobeymathxx
 \DeclareSymbolFont{mtletterfont}{\mst at enc}{\mst at fam}{\mst at ser}{\mst at ltsh}
-\begingroup
-\catcode`N 12
-\catcode`O 12
-\catcode`D 12
-\catcode`E 12
-\lowercase{\gdef\mst at fixmathfonts@ #1=NODE;#2#3\relax #4\@empty #5}%
-  {\ifx#2\empty\else\font\mst at mathfont=#1=base;#2#3\relax#5=\mst at mathfont\fi}
-\lowercase{\gdef\MTfixmathfonts
-{\expandafter\mst at fixmathfonts@
-  \fontname\textfont\symmtoperatorfont\relax\relax=NODE;\empty\relax\@empty
-   {\textfont\symmtoperatorfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptfont\symmtoperatorfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptfont\symmtoperatorfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptscriptfont\symmtoperatorfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptscriptfont\symmtoperatorfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\textfont\symmtletterfont\relax\relax=NODE;\empty\relax\@empty
-   {\textfont\symmtletterfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptfont\symmtletterfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptfont\symmtletterfont}%
- \expandafter\mst at fixmathfonts@
-  \fontname\scriptscriptfont\symmtletterfont\relax\relax=NODE;\empty\relax\@empty
-   {\scriptscriptfont\symmtletterfont}%
-  }%
+\def\mst at fixmathfonts@#1.#2.#3.{%
+\def\mst at fixmathfonts@##1##2#1=##3;##4##5\relax##6\@empty##7{%
+  \ifx##3\empty\else
+   \if"##1%
+    \font\mst at mathfont=##1##2#1=base;##4##5\relax
+   \else
+    \mst at arrrrgh@fixmathfonts##1##2#1=base;##4##5#2\empty#3\relax
+   \fi
+   ##7=\mst at mathfont
+  \fi
 }%
-\endgroup
+\def\mst at arrrrgh@fixmathfonts##1#2##2##3#3##4\relax{%
+  \ifx##2\empty
+    \font\mst at mathfont="##1"\relax
+  \else
+    \font\mst at mathfont="##1"#2##2##3#3\relax
+  \fi
+}%
+}%
+\expandafter\mst at fixmathfonts@\detokenize{mode. at.pt.}%
+\def\MTfixmathfonts#1{%
+\def\MTfixmathfonts{%
+  \expandafter\mst at fixmathfonts@\fontname\textfont\symmtoperatorfont
+  \relax\relax #1=;\empty\relax\@empty{\textfont\symmtoperatorfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptfont\symmtoperatorfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptfont\symmtoperatorfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptscriptfont\symmtoperatorfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptscriptfont\symmtoperatorfont}%
+  \expandafter\mst at fixmathfonts@\fontname\textfont\symmtletterfont
+  \relax\relax #1=;\empty\relax\@empty{\textfont\symmtletterfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptfont\symmtletterfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptfont\symmtletterfont}%
+  \expandafter\mst at fixmathfonts@\fontname\scriptscriptfont\symmtletterfont
+  \relax\relax #1=;\empty\relax\@empty{\scriptscriptfont\symmtletterfont}%
+}}%
+\expandafter\MTfixmathfonts\expandafter{\detokenize{mode}}%
 \ifmst at LuaTeX
   \everymath\expandafter{\the\everymath\mst at fixmathfonts}%
   \everydisplay\expandafter{\the\everydisplay\mst at fixmathfonts}%
@@ -567,7 +700,7 @@
 \let\mst at original@it\mathit
 \let\mst at original@sf\mathsf
 \let\mst at original@tt\mathtt
-\def\mst at restorealphabets{% for subdued
+\def\mst at restorealphabets{%
     \let\mathnormal\mst at original@normal
     \let\mathrm\mst at original@rm
     \let\mathbf\mst at original@bf
@@ -666,26 +799,31 @@
 \ifmst at selfGreek
     \DeclareSymbolFont{mtselfGreekfont}{OT1}{\mst at fam}{\mst at ser}{\mst at greek@ush}
 \fi\fi
-\ifmst at needeuler\mst at infoline{will use Euler font; command \string\MTEulerScale}
-\DeclareSymbolFont{mteulervm}{U}{zeur}{m}{n}
-\DeclareSymbolFontAlphabet{\MathEuler}{mteulervm}
-\DeclareMathAlphabet{\MathEulerBold}{U}{zeur}{\mst at bold}{n}
+\ifmst at needeuler
+\mst at infoline{will use Euler font; command \string\MTEulerScale}
+  \DeclareSymbolFont{mteulervm}{U}{zeur}{m}{n}
+  \DeclareSymbolFontAlphabet{\MathEuler}{mteulervm}
+  \DeclareMathAlphabet{\MathEulerBold}{U}{zeur}{\mst at bold}{n}
 \fi
 \newcommand*\MTEulerScale[1]{\edef\zeu at Scale{#1}}
 \let\MathastextEulerScale\MTEulerScale
-\ifmst at needsymbol\mst at infoline{will use Symbol font; command \string\MTSymbolScale}
- \def\psy at scale{1}
- \DeclareSymbolFont{mtpsymbol}{U}{psy}{m}{n}
- \DeclareSymbolFontAlphabet{\MathPSymbol}{mtpsymbol}
-\AtBeginDocument{%
-  \DeclareFontFamily{U}{psy}{}%
-  \DeclareFontShape{U}{psy}{m}{n}{<->s*[\psy at scale] psyr}{}%
-}
+\ifmst at needsymbol
+  \mst at infoline{will use Symbol font; command \string\MTSymbolScale}
+  \def\psy at scale{1}
+  \DeclareSymbolFont{mtpsymbol}{U}{psy}{m}{n}
+  \DeclareSymbolFontAlphabet{\MathPSymbol}{mtpsymbol}
+  \AtBeginDocument{%
+    \DeclareFontFamily{U}{psy}{}%
+    \DeclareFontShape{U}{psy}{m}{n}{<->s*[\psy at scale] psyr}{}%
+  }
 \fi
 \newcommand*\MTSymbolScale[1]{\edef\psy at scale{#1}}
 \let\MathastextSymbolScale\MTSymbolScale
-\DeclareRobustCommand*\pmvec[1]{\mathord{\stackrel{\raisebox{-.5ex}%
-{\tiny\boldmath$\mathord{\rightarrow}$}}{{}#1}}}
+\protected\def\pmvec#1{%
+    \mathord{\stackrel{\raisebox{-.5ex}{\tiny\boldmath$\mathord{\rightarrow}$}}%
+                      {{}#1}%
+            }%
+}
 \ifmst at fouriervec
   \DeclareFontEncoding{FML}{}{}
   \DeclareFontSubstitution{FML}{futm}{m}{it}
@@ -715,40 +853,164 @@
 \let\MathastextupGreek\MTupGreek
 \newcommand*\MTgreekfont[1]{\def\mst at greekfont{#1}}
 \let\Mathastextgreekfont\MTgreekfont
-\def\mst at DeclareMathLetter #1{%
+\def\mst at DeclareMathLetter#1#2#3#4#5{%
     \DeclareMathSymbol {#1}{\mathalpha}{mtletterfont}{`#1}%
-    \expandafter
-    \DeclareMathSymbol \csname mst@#1\endcsname{\mathalpha}{mtletterfont}{`#1}%
-    \expandafter\mst at addtodo@az\expandafter #1\csname mst@#1\endcsname
+    \DeclareMathSymbol {#4}{\mathalpha}{mtletterfont}{`#1}%
+    \def#2{{#3#4#5\mst at itcorr}}%
 }%
-\@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do
-     {\expandafter\mst at DeclareMathLetter\mst at tmp}%
+\@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+   \expandafter\expandafter\expandafter\mst at DeclareMathLetter
+   \expandafter\mst at tmp
+               \csname MTcommandletter\mst at tmp\expandafter\endcsname
+               \csname mst at before@\mst at tmp\expandafter\endcsname
+               \csname MTmathcharletter\mst at tmp\expandafter\endcsname
+               \csname mst at after@\mst at tmp\endcsname
+}%
 \ifmst at frenchmath \def\mst at font@tbu{mtoperatorfont}%
    \else          \def\mst at font@tbu{mtletterfont}%
 \fi
-\def\mst at DeclareMathLetter #1{%
+\def\mst at DeclareMathLetter #1#2#3#4#5{%
     \DeclareMathSymbol {#1}{\mathalpha}{\mst at font@tbu}{`#1}%
-    \expandafter
-    \DeclareMathSymbol \csname mst@#1\endcsname{\mathalpha}{\mst at font@tbu}{`#1}%
-    \expandafter\mst at addtodo@AZ\expandafter #1\csname mst@#1\endcsname
+    \DeclareMathSymbol {#4}{\mathalpha}{\mst at font@tbu}{`#1}%
+    \def#2{{#3#4#5\mst at ITcorr}}%
 }%
-\@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do
-     {\expandafter\mst at DeclareMathLetter\mst at tmp}%
-\let\mst at DeclareMathLetter\relax
+\@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+   \expandafter\expandafter\expandafter\mst at DeclareMathLetter
+   \expandafter\mst at tmp
+               \csname MTcommandletter\mst at tmp\expandafter\endcsname
+               \csname mst at before@\mst at tmp\expandafter\endcsname
+               \csname MTmathcharletter\mst at tmp\expandafter\endcsname
+               \csname mst at after@\mst at tmp\endcsname
+}%
+\def\mst at mathactivate@lowercase{%
+    \@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+      \expandafter\expandafter\expandafter
+      \mst at mathactivate\expandafter\mst at tmp\csname MTcommandletter\mst at tmp\endcsname{}%
+     }%
+}%
+\def\mst at mathactivate@uppercase{%
+    \@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+      \expandafter\expandafter\expandafter
+      \mst at mathactivate\expandafter\mst at tmp\csname MTcommandletter\mst at tmp\endcsname{}%
+     }%
+}%
+\def\mst at mathdeactivate@lowercase{%
+    \@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=\csname MTmathcharletter\mst at tmp\endcsname
+     }%
+}%
+\def\mst at mathdeactivate@uppercase{%
+    \@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=\csname MTmathcharletter\mst at tmp\endcsname
+     }%
+}%
+\ifmst at everymath
+\else
+  \def\mst at mathdeactivate@lowercase{%
+    \@tfor\mst at tmp:=abcdefghijklmnopqrstuvwxyz\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=
+             \csname MTmathcharletter\mst at tmp\endcsname
+     }%
+  }%
+  \def\mst at mathdeactivate@uppercase{%
+    \@tfor\mst at tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{%
+      \expandafter\mathcode\expandafter`\mst at tmp=
+             \csname MTmathcharletter\mst at tmp\endcsname
+     }%
+  }%
+\fi
+\def\mst at mathactivateletters{%
+    \mst at mathactivate@lowercase
+    \mst at mathactivate@uppercase
+}%
+\newcommand*\MTmathactiveletters{%
+    \mst at OnlyIfNotSubdued
+    \mst at mathactivateletters
+}%
+\AtEndOfPackage{\MTmathactiveletters}%
+\def\mst at mathactivateLetters{\mst at activate@uppercase}%
+\newcommand*\MTmathactiveLetters{%
+    \mst at OnlyIfNotSubdued
+    \mst at mathactivateLetters
+}%
+\newcommand*\MTmathstandardletters{%
+    \mst at mathdeactivate@lowercase
+    \mst at mathdeactivate@uppercase
+}%
+\newcommand*\MTicinmath{%
+    \MTmathactiveletters
+    \def\mst at itcorr{\ifnum\fam=\m at ne\/\fi}%
+    \let\mst at ITcorr\mst at itcorr
+}
+\newcommand*\MTICinmath{%
+    \MTmathactiveLetters
+    \def\mst at ITcorr{\ifnum\fam=\m at ne\/\fi}%
+}
+\newcommand*\MTnoicinmath{\let\mst at itcorr\@empty\let\mst at ITcorr\@empty}
+\newcommand*\MTnoICinmath{\let\mst at ITcorr\@empty}
+\newcommand*\MTicalsoinmathxx{%
+    \ifx\mst at itcorr\@empty\else\def\mst at itcorr{\/}\fi
+    \ifx\mst at ITcorr\@empty\else\def\mst at ITcorr{\/}\fi
+}
+\newcommand*\MTsetmathskips[3]{%
+    \@namedef{mst at before@#1}{\ifnum\fam=\m at ne\mskip#2\relax\fi}%
+    \@namedef{mst at after@#1}{\ifnum\fam=\m at ne\mskip#3\relax\fi}%
+}
+\newcommand*\MTunsetmathskips[1]{%
+    \@namedef{mst at before@#1}{}%
+    \@namedef{mst at after@#1}{}%
+}
 \ifmst at nodigits\else
-\def\mst at font@tbu{mtoperatorfont}%
-\ifmst at symboldigits \def\mst at font@tbu{mtpsymbol} \fi
-\ifmst at eulerdigits \def\mst at font@tbu{mteulervm} \fi
-\DeclareMathSymbol{0}{\mathalpha}{\mst at font@tbu}{`0}%
-\DeclareMathSymbol{1}{\mathalpha}{\mst at font@tbu}{`1}%
-\DeclareMathSymbol{2}{\mathalpha}{\mst at font@tbu}{`2}%
-\DeclareMathSymbol{3}{\mathalpha}{\mst at font@tbu}{`3}%
-\DeclareMathSymbol{4}{\mathalpha}{\mst at font@tbu}{`4}%
-\DeclareMathSymbol{5}{\mathalpha}{\mst at font@tbu}{`5}%
-\DeclareMathSymbol{6}{\mathalpha}{\mst at font@tbu}{`6}%
-\DeclareMathSymbol{7}{\mathalpha}{\mst at font@tbu}{`7}%
-\DeclareMathSymbol{8}{\mathalpha}{\mst at font@tbu}{`8}%
-\DeclareMathSymbol{9}{\mathalpha}{\mst at font@tbu}{`9}%
+  \def\mst at font@tbu{mtoperatorfont}%
+  \ifmst at symboldigits \def\mst at font@tbu{mtpsymbol}\fi
+  \ifmst at eulerdigits  \def\mst at font@tbu{mteulervm}\fi
+  \DeclareMathSymbol{0}{\mathalpha}{\mst at font@tbu}{`0}%
+  \DeclareMathSymbol{1}{\mathalpha}{\mst at font@tbu}{`1}%
+  \DeclareMathSymbol{2}{\mathalpha}{\mst at font@tbu}{`2}%
+  \DeclareMathSymbol{3}{\mathalpha}{\mst at font@tbu}{`3}%
+  \DeclareMathSymbol{4}{\mathalpha}{\mst at font@tbu}{`4}%
+  \DeclareMathSymbol{5}{\mathalpha}{\mst at font@tbu}{`5}%
+  \DeclareMathSymbol{6}{\mathalpha}{\mst at font@tbu}{`6}%
+  \DeclareMathSymbol{7}{\mathalpha}{\mst at font@tbu}{`7}%
+  \DeclareMathSymbol{8}{\mathalpha}{\mst at font@tbu}{`8}%
+  \DeclareMathSymbol{9}{\mathalpha}{\mst at font@tbu}{`9}%
+  \let\MTmathactivedigits\relax
+  \let\MTmathstandarddigits\relax
+  \ifmst at activedigits
+    \def\mst at DeclareMathDigit #1#2#3{%
+      \DeclareMathSymbol{#3}{\mathalpha}{\mst at font@tbu}{`#1}%
+      \def#2{#3}%
+    }%
+    \@tfor\mst at tmp:=0123456789\do{%
+      \expandafter\expandafter\expandafter\mst at DeclareMathDigit
+      \expandafter\mst at tmp
+               \csname MTcommanddigit\romannumeral\mst at tmp\expandafter\endcsname
+               \csname MTmathchardigit\romannumeral\mst at tmp\endcsname
+    }%
+    \def\mst at mathactivatedigits{%
+      \@tfor\mst at tmp:=0123456789\do{%
+      \expandafter\expandafter\expandafter\mst at mathactivate
+      \expandafter\mst at tmp\csname MTcommanddigit\romannumeral\mst at tmp\endcsname{}%
+     }%
+    }%
+    \newcommand*\MTmathactivedigits{\mst at OnlyIfNotSubdued\mst at mathactivatedigits}%
+    \MTmathactivedigits
+    \ifmst at everymath
+      \newcommand*\MTmathstandarddigits{%
+        \@tfor\mst at tmp:=0123456789\do{%
+        \expandafter\mathcode\expandafter`\mst at tmp
+            =\csname MTmathchardigit\romannumeral\mst at tmp\endcsname
+         }%
+      }%
+    \else
+      \newcommand*\MTmathstandarddigits{%
+        \@tfor\mst at tmp:=0123456789\do{%
+        \expandafter\mathcode\expandafter`\mst at tmp
+            =\csname MTmathchardigit\romannumeral\mst at tmp\endcsname
+         }%
+      }%
+    \fi
+  \fi
 \fi
 \ifmst at symboldelimiters
 \def\mst at font@tbu{mtpsymbol}%
@@ -765,52 +1027,66 @@
 \DeclareMathSymbol{\mst at varfam@question}{\mathalpha}{\mst at font@tbu}{"3F}%
 \expandafter\mst at addtodo@nonletters\string?\mathclose\mst at varfam@question
 \fi
-\def\mst@@doasterisk{\let\ast\mst at ast\mst at mathactivate*{}\mst at ast}%
-\newcommand*\MTnormalasterisk {\let\mst at doasterisk\relax}
-\newcommand*\MTactiveasterisk {\let\mst at doasterisk\mst@@doasterisk}
+\newcommand*\MTnormalasterisk{}
+\newcommand*\MTactiveasterisk{}
 \ifmst at asterisk\mst at infoline{asterisk: \string\ast\space and *}
-    \AtBeginDocument{%
-     \everymath\expandafter
-              {\the\everymath   \mst at doasterisk \MTnormalasterisk }%
-     \everydisplay\expandafter
-              {\the\everydisplay\mst at doasterisk \MTnormalasterisk }}
   \ifmst at symbolmisc
-    \def\mst at bin@ast{%
-    \mathbin{\mathchoice{\raisebox{-.1\height}%
-                        {\the\textfont\symmtpsymbol\char42}}%
-                      {\raisebox{-.1\height}%
-                        {\the\textfont\symmtpsymbol\char42}}%
-                      {\raisebox{-.1\height}%
-                        {\the\scriptfont\symmtpsymbol\char42}}%
-                      {\raisebox{-.1\height}%
-                        {\the\scriptscriptfont\symmtpsymbol\char42}}}}%
+    \protected\def\mst at bin@ast{\mathbin{\mathchoice
+           {\raisebox{-.1\height}{\the\textfont\symmtpsymbol\char42}}%
+           {\raisebox{-.1\height}{\the\textfont\symmtpsymbol\char42}}%
+           {\raisebox{-.1\height}{\the\scriptfont\symmtpsymbol\char42}}%
+           {\raisebox{-.1\height}{\the\scriptscriptfont\symmtpsymbol\char42}}}%
+                     }%
   \else
-    \def\mst at bin@ast{%
-    \mathbin{\mathchoice{\raisebox{-\mst at lowerast}%
-                        {\the\textfont\symmtoperatorfont\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\textfont\symmtoperatorfont\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptfont\symmtoperatorfont\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptscriptfont\symmtoperatorfont\char42}}}}%
+    \protected\def\mst at bin@ast{\mathbin{\mathchoice
+           {\raisebox{-\mst at lowerast}{\the\textfont\symmtoperatorfont\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\textfont\symmtoperatorfont\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptfont\symmtoperatorfont\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptscriptfont\symmtoperatorfont\char42}}}%
+                     }%
   \fi
-  \def\mst at varfam@ast{\ifnum\fam=\m at ne\mst at bin@ast\else
-    \mathbin{\mathchoice{\raisebox{-\mst at lowerast}%
-                        {\the\textfont\fam\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\textfont\fam\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptfont\fam\char42}}%
-                      {\raisebox{-\mst at lowerast}%
-                        {\the\scriptscriptfont\fam\char42}}}\fi}%
-  \MTactiveasterisk
-  \DeclareRobustCommand*{\mst at ast}{\mst at bin@ast}
+  \protected\def\mst at varfam@ast{\ifnum\fam=\m at ne
+                      \mst at bin@ast
+                      \else
+                      \mathbin{\mathchoice
+           {\raisebox{-\mst at lowerast}{\the\textfont\fam\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\textfont\fam\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptfont\fam\char42}}%
+           {\raisebox{-\mst at lowerast}{\the\scriptscriptfont\fam\char42}}}%
+                      \fi}%
+  \let\mst at ast\mst at bin@ast
   \newcommand*\MTlowerast[1]{\def\mst at lowerast{#1}}
   \MTlowerast{.3\height}
-  \mst at do@easynonletters\expandafter\expandafter\expandafter
-    {\expandafter\the\expandafter\mst at do@easynonletters
-     \expandafter\def\csname mst at ast \endcsname{\mst at varfam@ast}}
+  \mst at do@easynonletters\expandafter{%
+      \the\mst at do@easynonletters\let\mst at ast\mst at varfam@ast
+  }%
+  \ifmst at everymath
+     \def\mst@@doasterisk  {\let\ast\mst at ast\mst at mathactivate*{}\mst at ast}%
+     \def\MTnormalasterisk {\let\mst at doasterisk\relax}
+     \def\MTactiveasterisk {\let\mst at doasterisk\mst@@doasterisk}
+     \MTactiveasterisk
+     \AtBeginDocument{%
+       \everymath\expandafter
+              {\the\everymath   \mst at doasterisk \MTnormalasterisk }%
+       \everydisplay\expandafter
+              {\the\everydisplay\mst at doasterisk \MTnormalasterisk }%
+     }%
+  \else
+     \def\MTnormalasterisk{\AtBeginDocument{\MTnormalasterisk}}
+     \def\MTactiveasterisk{\AtBeginDocument{\MTactiveasterisk}}
+     \mst at undo@easynonletters\expandafter{%
+          \the\mst at do@easynonletters\let\mst at ast\mst at bin@ast
+     }%
+     \AtBeginDocument{%
+         \let\mst at orig@abd at ast\ast
+         \edef\MTnormalasterisk{\noexpand\mst at mathdeactivate*{\the\mathcode`\*}%
+                                \let\noexpand\ast\noexpand\mst at orig@abd at ast}%
+         \def\MTactiveasterisk{\def\ast{\mst at ast}%
+                               \mst at mathactivate*{}\mst at ast
+                              }%
+         \MTactiveasterisk
+     }
+  \fi
 \fi
 \ifmst at nopunct\else\mst at infoline{punctuation\string: \string, \string. \string:
     \string; and \string\colon}
@@ -831,7 +1107,13 @@
       \let\mathcomma\mst at varfam@comma
       \let\sm at rtcomma\mst at sm@rtcomma
       }
-  \else % end of decimalcomma branch
+    \ifmst at everymath
+    \else
+      \edef\mst at tmp{\mathchardef\mathcomma=\the\mathcode`\,\relax}%
+      \mst at undo@nonletters\expandafter\expandafter\expandafter
+                  {\expandafter\mst at tmp\the\mst at undo@nonletters}%
+    \fi
+  \else
   \ifmst at ncccomma
     \mst at infoline{loading package ncccomma for `smart comma\string'}
     \RequirePackage{ncccomma}%
@@ -851,26 +1133,38 @@
       \let\mathcomma\mst at varfam@comma
       \let\NCC at comma\mst at NCC@comma
       }
-  \else % neither ncccomma nor decimalcomma
+    \ifmst at everymath
+    \else
+      \edef\mst at tmp{\mathchardef\mathcomma=\the\mathcomma\relax}%
+      \mst at undo@nonletters\expandafter\expandafter\expandafter
+                  {\expandafter\mst at tmp\the\mst at undo@nonletters}%
+    \fi
+  \else
     \expandafter\mst at addtodo@nonletters\string,\mathpunct\mst at varfam@comma
   \fi\fi
   \DeclareMathSymbol{.}{\mathord}{\mst at font@tbu}{"2E}
   \DeclareMathSymbol{\mst at varfam@dot}{\mathalpha}{\mst at font@tbu}{"2E}
   \mst at addtodo@easynonletters\.\mst at varfam@dot
-  \DeclareMathSymbol{:}{\mathrel}{\mst at font@tbu}{"3A} % relation spacing
+  \DeclareMathSymbol{:}{\mathrel}{\mst at font@tbu}{"3A}
   \DeclareMathSymbol{\mst at varfam@colon}{\mathalpha}{\mst at font@tbu}{"3A}
   \expandafter\mst at addtodo@nonletters\string:\mathrel\mst at varfam@colon
   \@ifpackageloaded{amsmath}
-  {} % \colon defined in amsmath.sty in terms of : with some enlarged explicit
-     % spacing. No need to intervene.
-  {% no amsmath, use standard punctuation spacing
+  {}
+  {%
     \let\colon\undefined
-    % the reason is if some package has redefined \colon which then
-    % can not be used in \cs{DeclareMathSymbol} anymore (we
-    % shamelessly overwrite...)
     \DeclareMathSymbol{\colon}{\mathpunct}{\mst at font@tbu}{"3A}
-    \mst at do@nonletters\expandafter{\the\mst at do@nonletters
-        \protected\def\colon{\mathpunct{\mst at varfam@colon}}}%
+    \let\mst at colon\colon
+    \mst at do@nonletters\expandafter{%
+        \the\mst at do@nonletters
+        \protected\def\colon{\mathpunct{\mst at varfam@colon}}%
+    }%
+    \ifmst at everymath
+    \else
+        \mst at undo@nonletters\expandafter{%
+            \the\mst at undo@nonletters
+            \let\colon\mst at colon
+         }%
+    \fi
   }
   \DeclareMathSymbol{\mst at varfam@pointvirgule}{\mathalpha}{\mst at font@tbu}{"3B}
   \ifmst at binarysemicolon
@@ -880,8 +1174,8 @@
   \else
     \DeclareMathSymbol{;}{\mathpunct}{\mst at font@tbu}{"3B}
     \expandafter\mst at addtodo@nonletters\string;\mathpunct\mst at varfam@pointvirgule
-  \fi % binarysemicolno
-\fi % end \ifmst at nopunct else branch
+  \fi
+\fi
 \ifmst at nominus
 \else
   \ifmst at XeOrLua
@@ -892,14 +1186,10 @@
   \@ifpackageloaded{amsmath}
     {\def\relbar{\mathrel{\mathpalette\mathsm at sh\mst at minus@sign}}}
     {\DeclareRobustCommand\relbar{\mathrel{\smash\mst at minus@sign}}}
-  \ifmst at robust@obsessed at LaTeX@era\expandafter\DeclareRobustCommand
-   \else\expandafter\def\fi
-  \rightarrowfill{$\m at th\mathord{\relbar}\mkern-7mu%
+  \DeclareRobustCommand\rightarrowfill{$\m at th\mathord{\relbar}\mkern-7mu%
   \cleaders\hbox{$\mkern-2mu\relbar\mkern-2mu$}\hfill
   \mkern-7mu\mathord\rightarrow$}
-  \ifmst at robust@obsessed at LaTeX@era\expandafter\DeclareRobustCommand
-   \else\expandafter\def\fi
-  \leftarrowfill{$\m at th\mathord\leftarrow\mkern-7mu%
+  \DeclareRobustCommand\leftarrowfill{$\m at th\mathord\leftarrow\mkern-7mu%
   \cleaders\hbox{$\mkern-2mu\relbar\mkern-2mu$}\hfill
   \mkern-7mu\mathord{\relbar}$}
 \fi
@@ -915,7 +1205,8 @@
                       {\csname\mst at tmp@enc\string\textendash\endcsname}
     \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
                       {\csname\mst at tmp@enc\string\textendash\endcsname}
-  \fi}% mst at dothe@endashstuff
+  \fi
+}%
 \def\mst at dothe@emdashstuff#1#2#3{%
   \edef\mst at tmp@enc{#3}%
   \if1\mst at OneifUniEnc
@@ -926,7 +1217,8 @@
                       {\csname\mst at tmp@enc\string\textemdash\endcsname}
     \DeclareMathSymbol{#2}{\mathalpha}{mtoperatorfont}
                       {\csname\mst at tmp@enc\string\textemdash\endcsname}
-  \fi}% mst at dothe@emdashstuff
+  \fi
+}%
 \def\mst at dothe@hyphenstuff#1#2{%
   \DeclareMathSymbol{#1}{\mathbin}{\mst at font@tbu}{"2D}%
   \DeclareMathSymbol{#2}{\mathalpha}{\mst at font@tbu}{"2D}%
@@ -942,13 +1234,13 @@
                        \csname mst at minus@mv\math at version\endcsname
                        \relax
     \else
-     \mathcode`\-=\@nameuse{mst at minus@mv\math at version}% self-delimiting
+     \mathcode`\-=\@nameuse{mst at minus@mv\math at version}%
     \fi
-   }% \mst at nonsubduedminus
+   }%
   \ifmst at endash\else\ifmst at emdash\else
     \def\mst at nonsubduedminus{%
-      \mathcode`\-=\@nameuse{mst at minus@mv\math at version}% self-delimiting
-      }% non Umathchardef \mst at minus@mv<mathversion> macros
+      \mathcode`\-=\@nameuse{mst at minus@mv\math at version}%
+      }%
   \fi\fi
 \fi
 \def\mst at UmathchardefWorkAround@i
@@ -965,7 +1257,7 @@
 \def\mst at mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}}
 \def\mst at dothe@hbarstuff#1#2#3{%
   \edef\mst at tmp@enc{#3}%
-  \if1\mst at OneifUniEnc % Unicode engine and font
+  \if1\mst at OneifUniEnc
     \mst at Umathchardef#1="7 \symmtletterfont "0127 \relax %% or 210F?
   \else
     \begingroup
@@ -974,9 +1266,9 @@
     \mst at DeclareMathAccent{#2}{\mathalpha}{mtletterfont}%
                       {\csname\mst at tmp@enc\string\=\endcsname{}}%
     \endgroup
-    \protected\def#1{\mst at mathrlap{#2{\ }}\mst at h}%
+    \protected\def#1{\mst at mathrlap{#2{\ }}\MTmathcharletterh}%
   \fi
-}% end of \mst at dothe@hbarstuff
+}%
 \ifmst at noplus\else\mst at infoline{\string+ and \string=}
 \DeclareMathSymbol{+}{\mathbin}{\mst at font@tbu}{"2B}
 \DeclareMathSymbol{\mst at varfam@plus}{\mathalpha}{\mst at font@tbu}{"2B}
@@ -1001,7 +1293,8 @@
 }
 \expandafter\mst at addtodo@nonletters\string=\mathrel\mst at varfam@equal
 \fi
-\ifmst at noparen\else\mst at infoline{parentheses \string( \string) \string[ \string] and slash \string/}
+\ifmst at noparen\else
+\mst at infoline{parentheses \string( \string) \string[ \string] and slash \string/}
 \ifmst at nosmalldelims
     \DeclareMathSymbol{(}{\mathopen}{\mst at font@tbu}{"28}
     \DeclareMathSymbol{)}{\mathclose}{\mst at font@tbu}{"29}
@@ -1032,11 +1325,13 @@
 \ifmst at nosmalldelims
     \DeclareMathDelimiter{\mst at varfam@backslash}
         {\mathalpha}{symbols}{"6E}{largesymbols}{"0F}
+    \let\mst at mathord@backslash\backslash
 \else
     \DeclareMathDelimiter{<}{\mathopen}{\mst at font@tbu}{"3C}{largesymbols}{"0A}
     \DeclareMathDelimiter{>}{\mathclose}{\mst at font@tbu}{"3E}{largesymbols}{"0B}
-    \DeclareMathDelimiter{\backslash}
+    \DeclareMathDelimiter{\mst at mathord@backslash}
         {\mathord}{mtoperatorfont}{"5C}{largesymbols}{"0F}
+    \let\backslash\mst at mathord@backslash
     \DeclareMathDelimiter{\mst at varfam@backslash}
         {\mathalpha}{mtoperatorfont}{"5C}{largesymbols}{"0F}
 \fi
@@ -1048,10 +1343,25 @@
 \expandafter\mst at addtodo@nonletters\string>\mathrel\mst at varfam@more
 \mst at do@easynonletters\expandafter{\the\mst at do@easynonletters
             \let\backslash\mst at varfam@backslash}
+\ifmst at everymath
+\else
+  \mst at undo@easynonletters\expandafter{\the\mst at undo@easynonletters
+            \let\backslash\mst at mathord@backslash}
+\fi
 \DeclareMathSymbol{\setminus}{\mathbin}{mtoperatorfont}{"5C}
+\let\mst at setminus\setminus
 \DeclareMathSymbol{\mst at varfam@setminus}{\mathalpha}{mtoperatorfont}{"5C}
-\mst at do@nonletters\expandafter{\the\mst at do@nonletters
-            \protected\def\setminus{\mathbin{\mst at varfam@setminus}}}
+\mst at do@nonletters\expandafter{%
+     \the\mst at do@nonletters
+     \protected\def\setminus{\mathbin{\mst at varfam@setminus}}%
+}
+\ifmst at everymath
+\else
+    \mst at undo@nonletters\expandafter{%
+         \the\mst at undo@nonletters
+         \let\setminus\mst at setminus
+    }
+\fi
 \ifmst at XeOrLua
   \mst at Umathcharnumdef\mst at vert@bar=\mst at Umathcodenum`\|\relax
 \else
@@ -1066,10 +1376,20 @@
 \protected\def\vert{|}
 \DeclareMathSymbol{\mst at varfam@vbar}{\mathalpha}{\mst at font@tbu}{124}
 \mst at addtodo@easynonletters\|\mst at varfam@vbar
-\let\mid\undefined % 1.3: to avoid problems with some packages
+\let\mid\undefined
 \DeclareMathSymbol{\mid}{\mathrel}{\mst at font@tbu}{124}
-\mst at do@nonletters\expandafter{\the\mst at do@nonletters
-    \protected\def\mid{\mathrel\mst at varfam@vbar}}
+\let\mst at mid\mid
+\mst at do@nonletters\expandafter{%
+    \the\mst at do@nonletters
+    \protected\def\mid{\mathrel\mst at varfam@vbar}%
+}
+\ifmst at everymath
+\else
+    \mst at undo@nonletters\expandafter{%
+        \the\mst at undo@nonletters
+        \let\mid\mst at mid
+    }
+\fi
   \ifmst at nosmalldelims
   \else
      \let\lbrace\undefined \let\rbrace\undefined
@@ -1080,86 +1400,105 @@
   \fi
 \DeclareMathSymbol{\mst at varfam@lbrace}{\mathalpha}{\mst at font@tbu}{123}
 \DeclareMathSymbol{\mst at varfam@rbrace}{\mathalpha}{\mst at font@tbu}{125}
-\DeclareRobustCommand*{\mst at lbrace}
-        {\ifmmode\mathopen\mst at varfam@lbrace\else\textbraceleft\fi}
-\DeclareRobustCommand*{\mst at rbrace}
-        {\ifmmode\mathclose\mst at varfam@rbrace\else\textbraceright\fi}
-\mst at do@nonletters\expandafter{\the\mst at do@nonletters
-    \mst at dobraces{\expandafter\let\csname\string{ \expandafter\endcsname
-                                  \csname mst at lbrace \endcsname
-                  \expandafter\let\csname\string} \expandafter\endcsname
-                                  \csname mst at rbrace \endcsname}}
-\fi % end of \ifmst at alldelims
+\protected\def\mst at lbrace{\ifmmode\mathopen\mst at varfam@lbrace\else\textbraceleft\fi}
+\protected\def\mst at rbrace{\ifmmode\mathclose\mst at varfam@rbrace\else\textbraceright\fi}
+\mst at do@nonletters\expandafter{%
+    \the\mst at do@nonletters
+    \mst at dobraces{\let\{\mst at lbrace\let\}\mst at rbrace}%
+}
+\fi
 \newcommand*{\MTexplicitbracesobeymathxx}{\let\mst at dobraces\@firstofone}
 \newcommand*{\MTexplicitbracesdonotobeymathxx}{\let\mst at dobraces\@gobble}
+\ifmst at everymath
+\else
+    \renewcommand*\MTexplicitbracesobeymathxx{%
+        \let\mst at dobraces\@firstofone
+        \MTnonlettersobeymathxx
+    }%
+    \renewcommand*\MTexplicitbracesdonotobeymathxx{%
+        \let\mst at dobraces\@gobble
+        \protected\def\{{\ifmmode \lbrace \else \textbraceleft \fi}%
+        \protected\def\}{\ifmmode \rbrace \else \textbraceright \fi}%
+    }%
+    \mst at undo@nonletters\expandafter{\the\mst at undo@nonletters
+        \protected\def\{{\ifmmode \lbrace \else \textbraceleft \fi}%
+        \protected\def\}{\ifmmode \rbrace \else \textbraceright \fi}%
+    }%
+\fi
 \MTexplicitbracesdonotobeymathxx
 \ifmst at nospecials
 \else
-   \mst at infoline{\string\#\space\string\mathdollar\space
-               \string\%\space\string\&\space}
+  \mst at infoline{\string\#\space\string\mathdollar\space
+                \string\%\space\string\&\space}
   \ifmst at XeOrLua
-  \mst at Umathcode`\#=0 \symmtoperatorfont "23 \relax
-  \mst at Umathchardef\mathdollar=0 \symmtoperatorfont "24 \relax
-  \mst at Umathcode`\%=0 \symmtoperatorfont "25 \relax
-  \mst at Umathcode`\&=0 \symmtoperatorfont "26 \relax
-  \mst at do@easynonletters\expandafter{%
-    \the\mst at do@easynonletters
-    \mst at Umathcode`\#=7 \symmtoperatorfont "23 \relax
-    \mst at Umathchardef\mathdollar=7 \symmtoperatorfont "24 \relax
-    \mst at Umathcode`\%=7 \symmtoperatorfont "25 \relax
-    \mst at Umathcode`\&=7 \symmtoperatorfont "26 \relax
-    }
+    \mst at Umathcode`\#=0 \symmtoperatorfont "23 \relax
+    \mst at Umathchardef\mathdollar=0 \symmtoperatorfont "24 \relax
+    \mst at Umathcode`\%=0 \symmtoperatorfont "25 \relax
+    \mst at Umathcode`\&=0 \symmtoperatorfont "26 \relax
+    \mst at Umathchardef\mst at varfam@mathhash      = 7 \symmtoperatorfont "23 \relax
+    \mst at Umathchardef\mst at varfam@mathdollar    = 7 \symmtoperatorfont "24 \relax
+    \mst at Umathchardef\mst at varfam@mathpercent   = 7 \symmtoperatorfont "25 \relax
+    \mst at Umathchardef\mst at varfam@mathampersand = 7 \symmtoperatorfont "26 \relax
+    \mst at addtodo@easynonletters at U\#\mst at varfam@mathhash
+    \mst at addtodo@easynonletters at U\%\mst at varfam@mathpercent
+    \mst at addtodo@easynonletters at U\&\mst at varfam@mathampersand
   \else
-  \count@=\symmtoperatorfont
-  \multiply\count@ by \@cclvi
-  \advance\count@ by 35
-      \mathcode`\#\count@
-  \advance\count@ by \@ne
-      \mathchardef\mathdollar\count@
-  \advance\count@ by \@ne
-      \mathcode`\%\count@
-  \advance\count@ by \@ne
-      \mathcode`\&\count@
-  \count@=\symmtoperatorfont
-  \multiply\count@ by \@cclvi
-  \advance\count@ by 28707 % = "7023
-      \mathchardef\mst at varfam@mathhash\count@
-  \advance\count@ by \@ne
-      \mathchardef\mst at varfam@mathdollar\count@
-  \advance\count@ by \@ne
-      \mathchardef\mst at varfam@mathpercent\count@
-  \advance\count@ by \@ne
-      \mathchardef\mst at varfam@mathampersand\count@
+    \count@=\symmtoperatorfont
+    \multiply\count@ by \@cclvi
+    \advance\count@ by 35
+        \mathcode`\#\count@
+    \advance\count@ by \@ne
+        \mathchardef\mathdollar\count@
+    \advance\count@ by \@ne
+        \mathcode`\%\count@
+    \advance\count@ by \@ne
+        \mathcode`\&\count@
+    \count@=\symmtoperatorfont
+    \multiply\count@ by \@cclvi
+    \advance\count@ by 28707 % = "7023
+        \mathchardef\mst at varfam@mathhash\count@
+    \advance\count@ by \@ne
+        \mathchardef\mst at varfam@mathdollar\count@
+    \advance\count@ by \@ne
+        \mathchardef\mst at varfam@mathpercent\count@
+    \advance\count@ by \@ne
+        \mathchardef\mst at varfam@mathampersand\count@
+    \mst at addtodo@easynonletters\#\mst at varfam@mathhash
+    \mst at addtodo@easynonletters\%\mst at varfam@mathpercent
+    \mst at addtodo@easynonletters\&\mst at varfam@mathampersand
+  \fi
   \mst at do@easynonletters\expandafter{\the\mst at do@easynonletters
-    \mathcode`\#=\mst at varfam@mathhash
-    \let\mathdollar\mst at varfam@mathdollar
-    \mathcode`\%=\mst at varfam@mathpercent
-    \mathcode`\&=\mst at varfam@mathampersand}
+    \let\mathdollar\mst at varfam@mathdollar}%
+  \ifmst at everymath\else
+      \edef\mst at tmp{\ifmst at XeOrLua\mst at Umathcharnumdef\else\mathchardef\fi
+                    \mathdollar=\the\mathdollar\relax}%
+      \mst at undo@easynonletters\expandafter\expandafter\expandafter
+               {\expandafter\mst at tmp\the\mst at undo@easynonletters}%
   \fi
 \fi
-\ifmst at symbolmisc\mst at infoline{symbolmisc: miscellaneous math symbols from Symbol font}
-\let\mst at prod\prod
+\ifmst at symbolmisc
+\mst at infoline{symbolmisc: miscellaneous math symbols from Symbol font}
 \let\MToriginalprod\prod
 \DeclareMathSymbol{\prodpsy}{\mathop}{mtpsymbol}{213}
-\protected\def\prod{\ifinner\prodpsy\else\mst at prod\fi}
-\let\mst at sum\sum
+\protected\def\prod{\ifinner\prodpsy\else\MToriginalprod\fi}
 \let\MToriginalsum\sum
 \DeclareMathSymbol{\sumpsy}{\mathop}{mtpsymbol}{229}
-\protected\def\sum{\ifinner\sumpsy\else\mst at sum\fi}
+\protected\def\sum{\ifinner\sumpsy\else\MToriginalsum\fi}
 \DeclareMathSymbol{\mst at implies}{\mathrel}{mtpsymbol}{222}
-\DeclareRobustCommand*{\implies}{\;\mst at implies\;}
+\protected\def\implies{\;\mst at implies\;}
 \DeclareMathSymbol{\mst at impliedby}{\mathrel}{mtpsymbol}{220}
-\DeclareRobustCommand*{\impliedby}{\;\mst at impliedby\;}
-\DeclareRobustCommand*{\iff}{\;\mst at impliedby\mathrel{\mkern-3mu}\mst at implies\;}
+\protected\def\impliedby{\;\mst at impliedby\;}
+\protected\def\iff{\;\mst at impliedby\mathrel{\mkern-3mu}\mst at implies\;}
 \DeclareMathSymbol{\mst at iff}{\mathrel}{mtpsymbol}{219}
-\DeclareRobustCommand*{\shortiff}{\;\mst at iff\;}
-\DeclareMathSymbol{\mst at to}{\mathrel}{mtpsymbol}{174}
+\protected\def\shortiff{\;\mst at iff\;}
+\let\to\relax
+\DeclareMathSymbol{\to}{\mathrel}{mtpsymbol}{174}
 \DeclareMathSymbol{\mst at trait}{\mathrel}{mtpsymbol}{190}
-\DeclareRobustCommand*\to{\mst at to}
-\DeclareRobustCommand*\longto{\mkern2mu\mst at trait\mathrel{\mkern-10mu}\mst at to}
-\DeclareRobustCommand*\mapsto{\mapstochar\mathrel{\mkern0.2mu}\mst at to}
-\DeclareRobustCommand*\longmapsto{%
-\mapstochar\mathrel{\mkern2mu}\mst at trait\mathrel{\mkern-10mu}\mst at to}
+\protected\def\longto{\mkern2mu\mst at trait\mathrel{\mkern-10mu}\to}
+\protected\def\mapsto{\mapstochar\mathrel{\mkern0.2mu}\to}
+\protected\def\longmapsto{%
+    \mapstochar\mathrel{\mkern2mu}\mst at trait\mathrel{\mkern-10mu}\to
+}
 \DeclareMathSymbol{\aleph}{\mathord}{mtpsymbol}{192}
 \DeclareMathSymbol{\inftypsy}{\mathord}{mtpsymbol}{165}
 \DeclareMathSymbol{\emptyset}{\mathord}{mtpsymbol}{198}
@@ -1208,7 +1547,8 @@
 \DeclareMathDelimiter{\langle}
    {\mathopen}{mtpsymbol}{225}{largesymbols}{"0A}
 \fi
-\ifmst at symbolre\mst at infoline{symbolre: \string\Re\space and \string\Im\space from Symbol font}
+\ifmst at symbolre
+\mst at infoline{symbolre: \string\Re\space and \string\Im\space from Symbol font}
 \DeclareMathSymbol{\Re}{\mathord}{mtpsymbol}{"C2}
 \DeclareMathSymbol{\Im}{\mathord}{mtpsymbol}{"C1}
 \DeclareMathSymbol{\DotTriangle}{\mathord}{mtpsymbol}{92}
@@ -1249,11 +1589,8 @@
   \DeclareMathSymbol{\mst at Tau}{\mst at mathord}{\mst at font@tbu}{"54}
   \DeclareMathSymbol{\mst at Chi}{\mst at mathord}{\mst at font@tbu}{"58}
   \ifx\mst at mathord\mathord
-%% attention le P de Symbol est un \Pi pas un \Rho
     \DeclareMathSymbol{\mst at Rho}{\mathord}{mtpsymbol}{"52}
-%% attention le X de Symbol est un \Xi pas un \Chi
     \DeclareMathSymbol{\mst at Chi}{\mathord}{mtpsymbol}{"43}
-%% attention le F de Symbol est un \Phi. Il n'y a pas de \Digamma
     \DeclareMathSymbol{\mst at Gamma}{\mathord}{mtpsymbol}{"47}
     \DeclareMathSymbol{\mst at Delta}{\mathord}{mtpsymbol}{"44}
     \DeclareMathSymbol{\mst at Theta}{\mathord}{mtpsymbol}{"51}
@@ -1265,7 +1602,7 @@
     \DeclareMathSymbol{\mst at Phi}{\mathord}{mtpsymbol}{"46}
     \DeclareMathSymbol{\mst at Psi}{\mathord}{mtpsymbol}{"59}
     \DeclareMathSymbol{\mst at Omega}{\mathord}{mtpsymbol}{"57}
-  \else % de \mst at mathord=\mathord
+  \else
     \DeclareMathSymbol\mst at Digamma  {\mathalpha}{\mst at font@tbu}{"46}
     \DeclareMathSymbol\mst at Gamma    {\mathalpha}{\mst at font@tbu}{"00}
     \DeclareMathSymbol\mst at Delta    {\mathalpha}{\mst at font@tbu}{"01}
@@ -1278,8 +1615,8 @@
     \DeclareMathSymbol\mst at Phi      {\mathalpha}{\mst at font@tbu}{"08}
     \DeclareMathSymbol\mst at Psi      {\mathalpha}{\mst at font@tbu}{"09}
     \DeclareMathSymbol\mst at Omega    {\mathalpha}{\mst at font@tbu}{"0A}
-  \fi % de \mst at mathord=\mathord
-\fi % fin de goahead
+  \fi
+\fi
 \ifmst at goahead
  \ifmst at eulergreek
   \DeclareMathSymbol{\mst at alpha}  {\mathalpha}{mteulervm}{"0B}
@@ -1582,7 +1919,7 @@
     \let\mst at origdigamma\digamma
     \let\mst at origpartial\partial
     \let\mst at origwp\wp
-    \let\mst at origell\ell }% \MTrecordstandardgreek
+    \let\mst at origell\ell }%
 \MTrecordstandardgreek
 \renewcommand*{\MTstandardgreek}{%
     \let\Alpha\mst at origAlpha
@@ -1644,7 +1981,7 @@
     \let\partial\mst at origpartial
     \let\wp\mst at origwp
     \let\ell\mst at origell
-}% \MTstandardgreek
+}%
 \ifmst at greekplus
 \def\mst at define@lowergreekletter#1#2{%
     \protected\def#1{\ifcase\mst at mathalph
@@ -1724,7 +2061,7 @@
     \mst at define@lowergreekletter\omega\mst at omega
     \mst at define@lowergreekletter\varsigma\mst at varsigma
     \mst at define@lowergreekletter\digamma\mst at digamma
-}% end of True branch of \ifmst at greekplus
+}%
 \else
 \renewcommand*{\MTcustomgreek}{%
   \expanded{%
@@ -1741,7 +2078,7 @@
     \let\noexpand\Rho\mst at Rho
     \let\noexpand\Tau\mst at Tau
     \let\noexpand\Chi\mst at Chi
-  }% end of first big \expanded
+  }%
     \ifmst at symbolgreek\else
         \expanded{\let\noexpand\Digamma\mst at Digamma}%
     \fi
@@ -1757,7 +2094,7 @@
     \let\noexpand\Phi\mst at Phi
     \let\noexpand\Psi\mst at Psi
     \let\noexpand\Omega\mst at Omega
-  }% end of second big \expanded
+  }%
  \ifmst at selfGreek\else
   \expanded{%
     \let\noexpand\alpha\mst at alpha
@@ -1785,7 +2122,7 @@
     \let\noexpand\psi\mst at psi
     \let\noexpand\omega\mst at omega
     \let\noexpand\varsigma\mst at varsigma
-  }% end of third big \expanded
+  }%
     \ifmst at LGRgreek
         \expanded{\let\noexpand\digamma\mst at digamma}%
     \fi
@@ -1800,9 +2137,9 @@
       \ifmst at symbolgreek\else\let\ell\mst at ell\fi
     \fi
  \fi
-}% \MTcustomgreek
-\fi% end of else branch of \ifmst at greekplus
-\fi% end of \ifmst at customgreek
+}%
+\fi
+\fi
 \let\Mathastextstandardgreek\MTstandardgreek
 \let\Mathastextcustomgreek\MTcustomgreek
 \ifmst at subdued\else\MTcustomgreek\fi
@@ -1819,7 +2156,6 @@
 \def\mst at dothe@inodotstuff#1#2#3{%
   \edef\mst at tmp@enc{#3}%
   \if1\mst at OneifUniEnc
-    % Unicode engine and font
     \mst at Umathchardef#1="7 \symmtletterfont "0131 \relax
     \mst at Umathchardef#2="7 \symmtletterfont "0237 \relax
   \else
@@ -1827,7 +2163,7 @@
                      {\csname\mst at tmp@enc\string\i\endcsname}
    \DeclareMathSymbol{#2}{\mathalpha}{mtletterfont}
                      {\csname\mst at tmp@enc\string\j\endcsname}
-  \fi}% \mst at dothe@inodotstuff
+  \fi}%
 \ifmst at defaultimath\else\mst at infoline{\string\imath\space and \string\jmath\space}
     \AtEndOfPackage{\AtBeginDocument{%
         \protected\def\imath{\inodot}%
@@ -1865,67 +2201,57 @@
   \let\add at unicode@accent\@firstoftwo
   \if1\mst at OneifUniEnc
     \ifmst at unimathaccents
-      % \` -> \grave
       \expandafter\xdef\csname mst at grave@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\`\endcsname{}\relax}%
-      % \' -> \acute
       \expandafter\xdef\csname mst at acute@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\'\endcsname{}\relax}%
-      % \v -> \check
       \expandafter\xdef\csname mst at check@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\v\endcsname{}\relax}%
-      % \u -> \breve
       \expandafter\xdef\csname mst at breve@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\u\endcsname{}\relax}%
-      % \= -> \bar
       \expandafter\xdef\csname mst at bar@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\=\endcsname{}\relax}%
-      % \. -> \dot
       \expandafter\xdef\csname mst at dot@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\.\endcsname{}\relax}%
-      % \" -> \ddot
       \expandafter\xdef\csname mst at ddot@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\"\endcsname{}\relax}%
-      % \r -> \mathring
       \expandafter\xdef\csname mst at mathring@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\r\endcsname{}\relax}%
-      % \^ -> \hat
       \expandafter\xdef\csname mst at hat@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\^\endcsname{}\relax}%
-      % \~ -> \tilde
       \expandafter\xdef\csname mst at tilde@mv#1\mst at robustifyingspace\endcsname
        {\mst at Umathaccent
         7
         \number\symmtoperatorfont\space
         \csname#2\string\~\endcsname{}\relax}%
-    \else % false branch of ifmst at unimathaccents
+    \else
       \AtEndOfPackage{\AtBeginDocument{%
       \@tfor\@tempa:={grave}{acute}{check}{breve}{bar}%
                      {dot}{ddot}{mathring}{hat}{tilde}%
@@ -1938,7 +2264,6 @@
           \csname mst at original@\@tempa\space\endcsname}%
       }}%
     \fi
-    \ifmst at robust@obsessed at LaTeX@era
       \@tfor\@tempa:={grave}{acute}{check}{breve}{bar}%
                      {dot}{ddot}{mathring}{hat}{tilde}%
       \do
@@ -1946,45 +2271,34 @@
          {\noexpand\protect
           \expandafter\noexpand\csname mst@\@tempa @mv#1 \endcsname}%
       }%
-    \fi
-  \else % false branch of ifUniEnc
-    % \` -> \grave
+  \else
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at grave@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\`\endcsname{}}
-    % \' -> \acute
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at acute@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\'\endcsname{}}
-    % \v -> \check
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at check@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\v\endcsname{}}
-    % \u -> \breve
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at breve@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\u\endcsname{}}
-    % \= -> \bar
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at bar@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\=\endcsname{}}
-    % \. -> \dot
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at dot@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\.\endcsname{}}
-    % \" -> \ddot
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at ddot@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\"\endcsname{}}
-    % \r -> \mathring
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at mathring@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\r\endcsname{}}
-    % \^ -> \hat
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at hat@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\^\endcsname{}}
-    % \~ -> \tilde
     \expandafter\mst at DeclareMathAccent\expandafter
                {\csname mst at tilde@mv#1\endcsname}{\mathalpha}{mtoperatorfont}%
                {\csname#2\string\~\endcsname{}}
@@ -1991,7 +2305,7 @@
   \fi
   \endgroup
 }%
-\fi % \ifmst at mathaccents
+\fi
 \newcommand*\MTDeclareVersion[6][]{%
   \edef\mst at declareversionargs{{#1}{#2}{#3}{#4}{#5}{#6}}%
   \edef\mst at version{#2}%
@@ -2002,7 +2316,7 @@
    \MTDoNotDeclareVersion@\expandafter\@gobblefour
   \fi
   \relax\DeclareMathVersion{\mst at version}\MTDeclareVersion@
-}% \MTDeclareVersion
+}%
 \newcommand*\MTDoNotDeclareVersion@[1][]{%
    \PackageWarningNoLine{mathastext}{You asked to declare a version with name
    `\mst at version'.^^J%
@@ -2009,7 +2323,7 @@
    \@spaces Sorry but you are not allowed to do that.^^J%
    \@spaces \ifmst at subdued Anyway the `subdued' option is in force\else
          Use rather \string\Mathastext\space macro (with no optional argument)\fi
-}}%\MTDoNotDeclareVersion@
+}}%
 \newcommand*\MTDeclareVersion@[1][]{%
     \edef\mst at tmp{#1}%
     \ifx\mst at tmp\empty\else
@@ -2021,7 +2335,7 @@
                    inherits from `#1\string'\@gobble}%
     \fi
     \expandafter\MTDeclareVersion@@\mst at declareversionargs
-}% \MTDeclareVersion@
+}%
 \newcommand*\MTDeclareVersion@@[6]{%
   \expandafter\edef\csname mst at encoding@\mst at version\endcsname{#3}%
   \expandafter\edef\csname mst at family@\mst at version\endcsname{#4}%
@@ -2042,28 +2356,31 @@
   \ifx\mst at tmp\empty
     \ifmst at italic
       \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{\mst at ltsh}%
-\immediate\write\m at ne{}%
-\PackageInfo{mathastext}{Latin letters in math version `#2\string'\MessageBreak
+      \immediate\write\m at ne{}%
+      \PackageInfo{mathastext}%
+                        {Latin letters in math version `#2\string'\MessageBreak
                          declared\on at line\MessageBreak
                          will use the font #3/#4/#5/\mst at ltsh
                          \ifmst at frenchmath\space(uppercase: #6)\fi\MessageBreak
                          Other characters (digits, ...) and \protect\log-like names\MessageBreak
                          will be in `#6\string' shape\@gobble}%
-\immediate\write\m at ne{}%
+      \immediate\write\m at ne{}%
       \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{\mst at ltsh}%
     \else
       \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#6}%
-\immediate\write\m at ne{}%
-\PackageInfo{mathastext}{Latin letters in math version `#2\string'\MessageBreak
+      \immediate\write\m at ne{}%
+      \PackageInfo{mathastext}%
+                        {Latin letters in math version `#2\string'\MessageBreak
                          declared\on at line\MessageBreak
                          will use the fonts #3/#4/#5(\mst at bold)/#6\@gobble}%
-\immediate\write\m at ne{}%
+      \immediate\write\m at ne{}%
       \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{#6}%
     \fi
-  \else % #1 not empty
+  \else
     \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#1}%
-\immediate\write\m at ne{}%
-\PackageInfo{mathastext}{Latin letters in math version `#2\string'\MessageBreak
+    \immediate\write\m at ne{}%
+    \PackageInfo{mathastext}%
+                        {Latin letters in math version `#2\string'\MessageBreak
                          declared\on at line\MessageBreak
                          will use the font #3/#4/#5/#1%
                          \ifmst at frenchmath\space(uppercase: #6)\fi\MessageBreak
@@ -2070,8 +2387,8 @@
                          Other characters (digits, ...) and
                          \protect\log-like names\MessageBreak
                          will be in `#6\string' shape\@gobble}%
-\immediate\write\m at ne{}%
-      \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{#1}%
+    \immediate\write\m at ne{}%
+    \expandafter\edef\csname mst at ltshape@\mst at version\endcsname{#1}%
   \fi
        \SetMathAlphabet{\Mathnormalbold}{#2}{#3}{#4}{\mst at bold}%
                    {\csname mst at ltshape@\mst at version\endcsname}%
@@ -2174,12 +2491,12 @@
       \expandafter\mst at dothe@hyphenstuff\mst at tmp
     \fi
   \fi
-}% \MTDeclareVersion@@
+}%
 \let\MathastextDeclareVersion\MTDeclareVersion
-\newcommand*\MTversion {\@ifstar\MTversion at s\MTversion@ }
-\newcommand*\MTversion at s [1]{\mathversion{#1}\MTversion@@ }
+\newcommand*\MTversion {\@ifstar\MTversion at s\MTversion@}
+\newcommand*\MTversion at s [1]{\mathversion{#1}\MTversion@@}
 \newcommand*\MTversion@ [2][]{%
-    \mathversion{#2}% defines \math at version as expanded #2
+    \mathversion{#2}%
     \edef\mst at tmpa{#1}%
     \ifx\mst at tmpa\empty
         \let\mst at tmp\math at version
@@ -2197,7 +2514,7 @@
     \edef\ttdefault {\csname mst at ttdefault@\mst at tmp\endcsname}%
     \usefont{\encodingdefault}{\familydefault}{\seriesdefault}{\shapedefault}%
     \MTversion@@
-}% \MTversion@
+}%
 \newcommand*\MTversion@@ {%
     \MTexistsdoesskip
     \MTforalldoesskip
@@ -2259,13 +2576,13 @@
                     \csname ifmst at greek@\math at version @upper at up\endcsname
     \expandafter\let\csname ifmst at greek@lower at up\expandafter\endcsname
                     \csname ifmst at greek@\math at version @lower at up\endcsname
-      \MTcustomgreek % new with 1.3d
+      \MTcustomgreek
       \mst at nonsubduedhbar
       \mst at nonsubduedinodot
       \mst at nonsubduedmathaccents
       \mst at nonsubduedminus
     \fi
-}% \MTversion@@
+}%
 \let\MathastextVersion\MTversion
 \let\Mathastextversion\MTversion
 \let\MTVersion\MTversion
@@ -2275,13 +2592,13 @@
   \MTfamily{#3}
   \MTseries{#4}
   \MTshape{#5}
-    \ifmst at italic\MTlettershape{\itdefault}\fi % was missing in v 1.14 and prior
+    \ifmst at italic\MTlettershape{\itdefault}\fi
   \edef\mst at tmp{#1}
   \ifx\mst at tmp\empty\else\MTlettershape{#1}\fi
   \Mathastext}
 \let\MathastextWillUse\MTWillUse
 \let\Mathastextwilluse\MTWillUse
-\def\Mathastext {\@ifnextchar [\Mathastext at declare\Mathastext@ }
+\def\Mathastext {\@ifnextchar[\Mathastext at declare\Mathastext@}% ]
 \def\Mathastext at declare [#1]{%
   \edef\mst at tmp{#1}%
   \ifx\mst at tmp\empty
@@ -2290,7 +2607,7 @@
   \fi
   \Mathastext@
   {\MTDeclareVersion[\mst at ltsh]{#1}{\mst at enc}{\mst at fam}{\mst at ser}{\mst at opsh}}%
-}% \Mathastext at declare
+}%
 \def\Mathastext@ {%
   \mst at update@greeksh
   \edef\mst at encoding@normal{\mst at enc}%
@@ -2326,7 +2643,7 @@
     \def\mst at exists@skip at bold{0mu}%
     \def\mst at forall@skip at bold{0mu}%
     \def\mst at prime@skip at bold{0mu}%
-  \else % not subdued
+  \else
     \ifmst at italic
       \ifmst at frenchmath
         \mst at exists@muskip\mst at exists@skip\relax
@@ -2403,7 +2720,7 @@
                                  {\mst at ttdefault@bold}%
                                  {\mst at series@bold}%
                                  {\mst at shape@bold}%
-  \fi % de \ifmst at subdued
+  \fi
   \ifmst at needeuler
     \SetSymbolFont{mteulervm}{bold}{U}{zeur}{\mst at boldvariant@normal}{n}%
     \SetMathAlphabet{\MathEulerBold}{normal}%
@@ -2467,7 +2784,7 @@
      \mst at infoline{Other characters (digits, ...) and \string\log-like names will be}%
      \mst at infoline{typeset with the \mst at shape@normal\space shape.}%
    \fi
-  \fi % end of else branch \ifmst at subdued
+  \fi
   \ifmst at nohbar\else
      \mst at infoline{\string\hbar}%
      \mst at dothe@hbarstuff
@@ -2502,7 +2819,7 @@
       \let\mst at varfam@minus at mvbold\mst at varfam@minus at mvnormal
     \fi
    \fi
-  \fi % minus
+  \fi
   \ifmst at subdued
     \mst at infoline{Subdued `normal\string' and `bold\string' math versions.}%
   \fi
@@ -2510,7 +2827,7 @@
     \mst at infoline{The \ifmst at frenchmath frenchmath \else
                                         italic \fi option is in effect.}%
   \fi
-}% \Mathastext@
+}%
 \let\mathastext\Mathastext
 \Mathastext
 \ifmst at eulergreek
@@ -2562,6 +2879,7 @@
     \MTnonlettersdonotobeymathxx
     \MTeasynonlettersdonotobeymathxx
     \MTmathstandardletters
+    \MTmathstandarddigits
     \MTdonotfixfonts
 }%
 \AtBeginDocument {%
@@ -2574,19 +2892,22 @@
     \MTprimedoesskip
     \MTeasynonlettersobeymathxx
     \MTicinmath
+    \MTmathactivedigits
     \MTfixfonts
 }%
+\ifmst at everymath
+  \AtBeginDocument{%
+    \everymath\expandafter{\the\everymath
+        \mst at the\mst at do@nonletters \let\mst at the\@gobble
+        \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
+    }%
+    \everydisplay\expandafter{\the\everydisplay
+        \mst at the\mst at do@nonletters \let\mst at the\@gobble
+        \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
+    }%
+  }
+\fi
 \AtBeginDocument{%
-  \everymath\expandafter{\the\everymath
-    \mst at the\mst at do@nonletters \let\mst at the\@gobble
-    \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
-    \mst at thef\mst at do@az \let\mst at thef\@gobble
-    \mst at theF\mst at do@AZ \let\mst at theF\@gobble}%
-  \everydisplay\expandafter{\the\everydisplay
-    \mst at the\mst at do@nonletters \let\mst at the\@gobble
-    \mst at theeasy\mst at do@easynonletters  \let\mst at theeasy\@gobble
-    \mst at thef\mst at do@az \let\mst at thef\@gobble
-    \mst at theF\mst at do@AZ \let\mst at theF\@gobble}%
   \MTcustomizenewmcodes
   \let\mst at original@hbar\hbar
   \let\mst at original@imath\imath
@@ -2610,14 +2931,11 @@
     \MTresetnewmcodes
     \MTnoicinmath
     \MTmathoperatorsdonotobeymathxx
-    %\mst at subduedhbar
     \let\inodot\imath
     \let\jnodot\jmath
-    %\mst at subduedmathaccents
     \mst at subduedminus
   \else
      \mst at nonsubduedhbar
-     % \mst at nonsubduedmathaccents % will get executed later
      \mst at nonsubduedminus
      \ifx\mst at itcorr\@undefined
          \def\mst at itcorr{\ifnum\fam=\m at ne\/\fi}%
@@ -2633,10 +2951,10 @@
          \fi
      \fi
   \fi
-}% \AtBeginDocument
+}%
 \AtEndOfPackage{\AtBeginDocument{\ifmst at subdued\else\mst at nonsubduedmathaccents\fi}}%
 \ifmst at subdued
-\AtBeginDocument{%
+  \AtBeginDocument{%
   \def\mst at reserved#1\getanddefine at fonts\symletters#2#3\@nil{%
         \def\mst at normalmv@letter{#2}}%
   \expandafter\mst at reserved\mv at normal\@nil
@@ -2675,15 +2993,19 @@
        \else
          \mst at tmp@enc
        \fi/\mst at reste\endcsname}%
-  \expandafter\SetSymbolFont@ \expandafter\mv at normal\mst at normalmv@letter\symmtletterfont
-  \expandafter\SetSymbolFont@ \expandafter\mv at bold\mst at boldmv@letter\symmtletterfont
-  \expandafter\SetSymbolFont@ \expandafter\mv at normal\mst at normalmv@operator\symmtoperatorfont
-  \expandafter\SetSymbolFont@ \expandafter\mv at bold\mst at boldmv@operator\symmtoperatorfont
-\immediate\write\m at ne{}%
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at normal\mst at normalmv@letter\symmtletterfont
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at bold\mst at boldmv@letter\symmtletterfont
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at normal\mst at normalmv@operator\symmtoperatorfont
+  \expandafter\SetSymbolFont@
+    \expandafter\mv at bold\mst at boldmv@operator\symmtoperatorfont
+  \immediate\write\m at ne{}%
   \PackageInfo{mathastext}{...entering subdued mode...\MessageBreak ...done}%
-\immediate\write\m at ne{}%
-}% \AtBeginDocument
-\fi % \ifmst at subdued
+  \immediate\write\m at ne{}%
+  }%
+\fi
 \expandafter \gdef \expandafter \@preamblecmds \expandafter {\@preamblecmds
 \do\MTitgreek
 \do\MTupgreek



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