\RequirePackage{etoolbox,expl3,environ}
\ExplSyntaxOn
\cs_new_protected:Npn \alteqtoks #1
{
\tl_set:Nx \l_tmpa_tl {\detokenize{#1}}
% delete spaces before left brackets
\regex_replace_all:nnN { \x{20} \x{7B} } { \x{7B} } \l_tmpa_tl
% replace < > and & with xml entities
\regex_replace_all:nnN { \x{26} } { & } \l_tmpa_tl
\regex_replace_all:nnN { \x{3C} } { < } \l_tmpa_tl
\regex_replace_all:nnN { \x{3E} } { > } \l_tmpa_tl
\tl_set:Nx \l_tmpb_tl{ \l_tmpa_tl }
\HCode{\l_tmpb_tl}
}
\ExplSyntaxOff
\AtBeginDocument{%
\Configure{HTML}{\HCode{\Hnewline}}{\HCode{\Hnewline}}
%\Configure{@HEAD}{\HCode{\Hnewline}}
\Configure{@HEAD}{\HCode{
\Hnewline
}}
\Configure{@HEAD}{\HCode{ \Hnewline}}
\long\def\AltMathOne#1${\alteqtoks{\(#1\)}$}
\Configure{$}{}{}{\expandafter\AltMathOne}
\long\def\AltlMath#1\){\expandafter\alteqtoks{\(#1\)}\)}
\Configure{()}{\AltlMath}{}
\long\def\AltlDisplay#1\]{\alteqtoks{\[#1\]}\]}
\Configure{[]}{\AltlDisplay}{}
\newcommand\VerbMathToks[2]{%
\alteqtoks{\begin{#2}
#1
\end{#2}}%
}
\newcommand\VerbMath[1]{%
\ifcsdef{#1}{%
\RenewEnviron{#1}{%
\NoFonts\expandafter\VerbMathToks\expandafter{\BODY}{#1}\EndNoFonts%
}
}{}%
}
\VerbMath{subarray}
\VerbMath{smallmatrix}
\VerbMath{matrix}
\VerbMath{pmatrix}
\VerbMath{bmatrix}
\VerbMath{Bmatrix}
\VerbMath{vmatrix}
\VerbMath{Vmatrix}
\VerbMath{cases}
\VerbMath{subequations}
\VerbMath{aligned}
\VerbMath{alignedat}
\VerbMath{gathered}
\VerbMath{gather}
\VerbMath{gather*}
\VerbMath{alignat}
\VerbMath{alignat*}
\VerbMath{xalignat}
\VerbMath{xalignat*}
\VerbMath{xxalignat}
\VerbMath{align}
\VerbMath{align*}
\VerbMath{flalign}
\VerbMath{flalign*}
\VerbMath{split}
\VerbMath{multline}
\VerbMath{multline*}
\VerbMath{equation}
\VerbMath{equation*}
\VerbMath{math}
\VerbMath{displaymath}
% it is necessary to reset env configurations for multline
\ConfigureEnv{multline}{}{}{}{}
\ConfigureEnv{multline*}{}{}{}{}
% fixes for tables of contents
\def\fixmathjaxtoc#1{\def#1{\detokenize{#1}}}
\fixmathjaxtoc\left
\fixmathjaxtoc\right
\fixmathjaxtoc\int
\fixmathjaxtoc\,
\fixmathjaxtoc\sin
\fixmathjaxtoc\cos
\fixmathjaxtoc\tan
\fixmathjaxtoc\arcsin
\fixmathjaxtoc\arccos
\fixmathjaxtoc\arctan
\fixmathjaxtoc\csc
\fixmathjaxtoc\sec
\fixmathjaxtoc\cot
\fixmathjaxtoc\sinh
\fixmathjaxtoc\cosh
\fixmathjaxtoc\tanh
\fixmathjaxtoc\coth
\fixmathjaxtoc\log
}