% \iffalse meta-comment
%
%% File: latex-lab-mathpkg.dtx
%
% Copyright (C) 2022-2025 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
% license or (at your option) any later version.  The latest version
% of this license is in the file
%
%    https://www.latex-project.org/lppl.txt
%
%
% The development version of the bundle can be found below
%
%    https://github.com/latex3/latex2e/required/latex-lab
%
% for those people who are interested or want to report an issue.
%
%<*driver>
\DocumentMetadata{tagging=on,pdfstandard=ua-2}
\documentclass[kernel]{l3doc}
\usepackage{latex-lab-testphase-l3doc}
\EnableCrossrefs
\CodelineIndex
\begin{document}
  \DocInput{latex-lab-mathpkg.dtx}
\end{document}
%</driver>
%
% \fi
%
%
% \title{The \texttt{latex-lab-mathpkg} code\thanks{}}
% \author{\LaTeX{} Project}
%
% \maketitle
%
% \newcommand\fmi[1]{\begin{quote} TODO: \itshape #1\end{quote}}
% \newcommand\NEW[1]{\marginpar{\mbox{}\hfill\fbox{New: #1}}}
% \providecommand\class[1]{\texttt{#1.cls}}
% \providecommand\pkg[1]{\texttt{#1}}
% \providecommand\hook[1]{\texttt{#1}}
%
% \begin{abstract}
% \end{abstract}
%
% \tableofcontents
%
% \section{Introduction}
%
% This file implements adaptions to various math packages needed for 
% the tagging project. 
%
% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
%
% \section{The Implementation}
%
%    \begin{macrocode}
%<@@=math>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*kernel>
%    \end{macrocode}
%
% \subsection{File declaration}
%    \begin{macrocode}
\ProvidesFile{latex-lab-mathpkg.ltx}
        [2025-06-20 v0.1c mathpkg adaptions]
%    \end{macrocode}
%
% \subsection{breqn}
%    \begin{macrocode}
\AddToHook{package/breqn/after}{
   \RegisterMathEnvironment{dmath}
   \RegisterMathEnvironment{dgroup*}
   \AddToHook{env/dmath/begin}{\tagpdfparaOff}
   \AddToHook{env/dgroup*/begin}{\tagpdfparaOff}
}
%    \end{macrocode}
%
% \subsection{cases}
% Force loading of \pkg{amsmath} before \pkg{cases}.
%    \begin{macrocode}
\AddToHook{package/cases/before}{\RequirePackage{amsmath}}
\AddToHook{package/cases/after}{
  \RegisterMathEnvironment{subnumcases}
}  
%    \end{macrocode}
%    
% \subsection{bm}
% Similar to the amsbsy code in latex-lab-amsmath for \cs{pmb} we need to mark up 
% copies as artifact:
% 
%    \begin{macrocode}
\ExplSyntaxOn
\AddToHook{package/bm/after}
 {
   \def\bm@pmb@@@@#1#2#3{{%
     \hbox_set:Nn\l_@@_tmpa_box{$\m@th#1#3$}%
     \dimen@#2\wd\tw@
     \rlap{\box_use:N\l_@@_tmpa_box}%
     \tag_mc_end:\tag_mc_begin:n{artifact}
     \tag_mc_reset_box:N\l_@@_tmpa_box
     \kern\dimen@
     \raise1.5\dimen@\rlap{\box_use:N\l_@@_tmpa_box}%
     \kern\dimen@
     \box_use_drop:N\l_@@_tmpa_box
     \tag_mc_end:\tag_mc_begin:n{}%
     }}
 }
\ExplSyntaxOff 
%    \end{macrocode}
% \subsection{amsmath timing}
% These packages error or lose their function if loaded before \pkg{amsmath}.
%    \begin{macrocode}
\AddToHook{package/accents/before}{\RequirePackage{amsmath}}
\AddToHook{package/cleveref/before}{\RequirePackage{amsmath}}
\AddToHook{package/esint/before}{\RequirePackage{amsmath}}
\AddToHook{package/grmath/before}{\RequirePackage{amsmath}}
\AddToHook{package/mathabx/before}{\RequirePackage{amsmath}}
\AddToHook{package/wasysym/before}{\RequirePackage{amsmath}}
%    \end{macrocode}
%    \begin{macrocode}
%</kernel>
%    \end{macrocode}
% \subsection{Wrapper files for testphase key}
% \Finale
%
