% Compile 3 times: latex tex4ht-jsml
%             or   xhlatex tex4ht-jsml "html,3,sections+"
% Copy html.4ht into the work directory before each of the 
%            first two compilations
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tex4ht-jsml.tex                                        %
% Copyright (C) 2006--            Eitan M. Gurari        %
%                                                        %
% This work may be distributed and/or modified under the %
% conditions of the LaTeX Project Public License, either %
% version 1.3 of this license or (at your option) any    %
% later version. The latest version of this license is   %
% in                                                     %
%   http://www.latex-project.org/lppl.txt                %
% and version 1.3 or later is part of all distributions  %
% of LaTeX version 2003/12/01 or later.                  %
%                                                        %
% This work has the LPPL maintenance status "maintained".%
%                                                        %
% This Current Maintainer of this work                   %
% is Eitan M. Gurari.                                    %
%                                                        %
% If you modify this file your changing the signature    %
% in \message{(signature)} below will be appreciated.    %
%                                                        %
%                             gurari@cse.ohio-state.edu  %
%                 http://www.cse.ohio-state.edu/~gurari  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
\message{(<signature>)}



\ifx \HTML\UnDef
   \def\HTML{jsml,jsml-math} 
   \def\CONFIG{\jobname}
   \def\MAKETITLE{\author{Eitan M. Gurari}}
   \def\OPTIONS{xhtml,3,sections+}
   \def\PREAMBLE{\usepackage{url}}
   \def\next{\input mktex4ht.4ht  \endinput}
   \expandafter\next
\fi



%%%%%%%%%%%%%%%%%% definitions %%%%%%%%%%%%%%%%%%%%%%%%%

\let\AltxModifyShowCode=\ModifyShowCode
\def\ModifyShowCode{%
   \def\by{by}\def\={=}\AltxModifyShowCode}
\let\pReModifyOutputCode=\ModifyOutputCode
\def\ModifyOutputCode{%
   \def\by{}\def\={}%
   \pReModifyOutputCode}

\newcount\tmpcnt  \tmpcnt\time  \divide\tmpcnt  60
\edef\temp{\the\tmpcnt}
\multiply\tmpcnt  -60 \advance\tmpcnt  \time

\edef\version{\the\year-\ifnum \month<10 0\fi
  \the\month-\ifnum \day<10 0\fi\the\day
   -\ifnum \temp<10 0\fi \temp
   :\ifnum \tmpcnt<10 0\fi\the\tmpcnt}

\def\CopyYear.#1.{%
   \ifnum #1=\year #1\space\space\space\space\space\space
    \else          #1--\the\year\fi
}

\def\.{\string\a:mathml:\space}


\TocAt{section,subsection,likesubsection}  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Needs{"ls -l tex4ht-*.tex > ls-links.log"}
\openin15=ls-links.log
\ifeof15 \else \closein15
\bgroup
   \catcode`\-=13
   \def-#1tex4ht-{\bgroup \catcode`\-=12  
      \def-##1.tex{\egroup
           [\Link[tex4ht\string-##1.html]{}{}##1\EndLink]}
      -}   
  \input ls\string-links.log
\egroup
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%











%%%%%%%%%%%%%%%%%%
\section{General}
%%%%%%%%%%%%%%%%%%




\begin{center}
\tt htlatex file "html,jsml" " -cjsmlhtf" "-cjsml"
\end{center}

%%%%%%%%%%%%%%%%%%
\section{Root}
%%%%%%%%%%%%%%%%%%


\<jsml\><<<
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% jsml.4ht                              |version %
% Copyright (C) |CopyYear.2006.       Eitan M. Gurari         %
|<TeX4ht copyright|>
>>>


\<jsml-math\><<<
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% jsml-math.4ht                         |version %
% Copyright (C) |CopyYear.2006.       Eitan M. Gurari         %
|<TeX4ht copyright|>
>>>


\<TeX4ht copyright\><<<
%                                                        %
% This work may be distributed and/or modified under the %
% conditions of the LaTeX Project Public License, either %
% version 1.3 of this license or (at your option) any    %
% later version. The latest version of this license is   %
% in                                                     %
%   http://www.latex-project.org/lppl.txt                %
% and version 1.3 or later is part of all distributions  %
% of LaTeX version 2003/12/01 or later.                  %
%                                                        %
% This work has the LPPL maintenance status "maintained".%
%                                                        %
% This Current Maintainer of this work                   %
% is Eitan M. Gurari.                                    %
%                                                        %
% If you modify this program your changing its signature %
% with a directive of the following form will be         %
% appreciated.                                           %
%            \message{signature}                         %
%                                                        %
%                             gurari@cse.ohio-state.edu  %
%                 http://www.cse.ohio-state.edu/~gurari  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\immediate\write-1{version |version}
>>>
\<par del\><<<
!*?: >>>
\<tag of Tag\><<<
 cw:>>>


\<show input line no\><<<
<!--l. \the\inputlineno-->%
>>>




\<try env inline par\><<<
\ShowPar 
>>>

\<try inline par\><<<
\ShowPar \par{\HCondtrue\noindent}%
>>>




%%%%%%%%%%%%%%%%%%
\section{Outline}
%%%%%%%%%%%%%%%%%%


\<configure jsml article\><<<
|<config book-report-article|>
|<config report-article|>
>>>

\<configure jsml report\><<<
|<config book-report-article|>
|<config report-article|>
>>>

\<configure jsml book\><<<
|<config book-report-article|>
>>>


\<configure jsml letter\><<< 
|<description lists|>
|<quote config|>
|<roman enumeiii|>
>>>


\<configure jsml amsbook\><<<
|<ams art,proc,book div|>
|<ams art,proc,book toc|>  |%should appear before TocAt|%
>>>

\<configure jsml amsproc\><<<
|<ams art,proc,book|>
>>>



\<configure jsml amsart\><<<
|<ams art,proc,book|>
>>>

\<configure jsml-math plain\><<<
|<mathml plain|>
|<plain,latex mathml|>
>>>


\<ams art,proc,book\><<<
|<description lists|>
>>>


\<configure jsml scrbook\><<<
|<description lists|>
>>>


\<configure jsml scrreprt\><<<
|<description lists|>
>>>


\<configure jsml slides\><<<
|<description lists|>
|<roman enumeiii|>
>>>




\<configure jsml-math fontmath\><<<
|<plain,fontmath math|>
>>>






%%%%%%%%%%%%%%%%%%
\section{Preamble}
%%%%%%%%%%%%%%%%%%

\<configure jsml Preamble\><<<
|<pre definitions|>
\Configure{ext}{jsml}
>>>


\<configure jsml-math Preamble\><<<
\:CheckOption{math-}     \if:Option 
    \edef\Preamble{\Preamble,mathml-}
\else
   \Log:Note{for sources failing to produce
       clean math code, try the command line option `math-'}%
\fi
>>>






\<configure jsml Preamble\><<<
\Configure{PROLOG}{JSML,VERSION,DOCTYPE,*XML-STYLESHEET}
\Configure{JSML}
    {\HCode{<jsml>\Hnewline}}          
>>>




\<configure jsml tex4ht\><<<
\Configure{HTML}
  {\IgnorePar\HCode{<html \a:@HTML
       |<xmlns|>\Hnewline>\Hnewline}}
  {\ifvmode\IgnorePar\fi\HCode{</html>\Hnewline
   </jsml>\Hnewline}}
>>>

\<xmlns\><<<
xmlns="http://www.w3.org/1999/xhtml"
>>>


The XML definition and DOCTYPE elements are not accepted by the
browser.


\<configure jsml tex4ht\><<<
\Configure{VERSION}
    {\HCode{\Hnewline<!--?xml version="1.0" |<xml encoding|> ?-->\Hnewline
            <?xtpipes file="jsml.4xt" ?>\Hnewline}}          
>>>

\<xml encoding\><<<
encoding="\expandafter\ifx \csname a:charset\endcsname\relax
         \expandafter\:encoding\A:charset
   \else \expandafter\:encoding\a:charset\fi"
>>>



\<configure jsml tex4ht\><<<
\Configure{DOCTYPE}
  {\HCode{% <!DOCTYPE html \xhtml:DOCTYPE>            \Hnewline
          <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
          \Hnewline}}
\def\xhtml:DOCTYPE{PUBLIC
     "-//W3C//DTD XHTML 1.0 Transitional//|<dtd lang|>"\Hnewline
    \space\space "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"}
>>>


% %%%%%%%%%%%%%%%%%%
% \section{Paragraphs}
% %%%%%%%%%%%%%%%%%%
% 
% \<configure jsml tex4ht\><<<
% \Configure{HtmlPar}
%   {\EndP\HCode{|<show input line no|><PARA><p \csname a:!P\endcsname
%          class="no\ifHCond par\else indent\fi">}}
%   {\EndP\HCode{|<show input line no|><PARA><p \csname a:!P\endcsname
%         class="\ifdim \parindent=\z@ no\fi indent">}}
%   {\HCode{</p></PARA>}}
%   {\HCode{</p></PARA>}}%
% >>>


%%%%%%%%%%%%%%%%%%
\section{Front Matter}
%%%%%%%%%%%%%%%%%%


\<config book-report-article\><<<
\Configure{maketitle}
   {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>%
     \HCode{<PARA><div class="maketitle">}}
   {\ifvmode \IgnorePar\fi \EndP \HCode{<BREAK SIZE="medium" /></div></PARA>}}
   {\NoFonts\IgnorePar\HCode{<h2 
     class="titleHead"\a:LRdir><EMP 
              LEVEL="moderate">}\IgnorePar}
   {\HCode{</EMP></h2>}\IgnoreIndent\EndNoFonts}
|<config thanks author date and|>
>>>


\<thanks author date and\><<<
thanks author date and>>>


\<config thanks author date and\><<<
\Configure{|<thanks author date and|>} 
   {\ifvmode \IgnorePar\fi\EndP 
    \HCode{<SENT><span class="thanks"><BREAK SIZE="small" />}}
   {\ifvmode \IgnorePar\fi\EndP \HCode{</span></SENT>}}
   {\ifvmode \IgnorePar\fi\EndP
    \HCode{<SENT><span class="author" ><BREAK SIZE="small" />}}
   {\ifvmode \IgnorePar\fi\EndP \HCode{</span></SENT>}}
   {\ifvmode \IgnorePar\fi\EndP 
    \HCode{<BREAK SIZE="small" /><SAYS CLASS="date" >}}
   {\ifvmode \IgnorePar\fi\EndP \HCode{</SAYS><BREAK SIZE="small" />}}
   {\HCode{<br />}}
   {\HCode{<br />}}
>>>



\<config report-article\><<<
\ConfigureEnv{abstract}
   {\IgnorePar\EndP
    \HCode{<div clas="abstract"\Hnewline>}\par\ShowPar
    \bgroup  
       \pend:def\abstractname{\HCode{<BREAK SIZE="small"/><EMP
                        LEVEL="moderate" class="abstractname">}}
       \append:def\abstractname{\HCode{</EMP><BREAK SIZE="small"/>}}
   } 
   {\egroup \ifvmode \IgnorePar\fi
    \EndP\HCode{<BREAK SIZE="small" /></div>}}
   {} {}
>>>






%%%%%%%%%%%%%%%%%%
\section{Sectional Divisions}
%%%%%%%%%%%%%%%%%%






\<config book-report-article\><<<
|<latex shared section config|>
|<latex shared subsection config|>
|<latex shared subsubsection config|>
|<latex shared paragraph config|>
|<config captions|>
|<description lists|>
|<quote config|>
|<roman enumeiii|>
>>>


\<configure jsml JHEP\><<<
|<latex shared part config|>
|<latex shared section config|>
|<latex shared subsection config|>
|<latex shared subsubsection config|>
>>>

\<configure jsml acm-proc-article-sp\><<<
|<latex shared part config|>
|<latex shared section config|>
|<latex shared subsection config|>
|<latex shared subsubsection config|>
>>>


\<configure jsml aa\><<<   
|<latex shared section config|>
|<latex shared subsection config|>
|<latex shared subsubsection config|>
|<latex shared paragraph config|>
|<config captions|>
>>>



\<latex shared section config\><<<
\ConfigureMark{section}
   {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble
    \else
       \HCode{<span class="titlemark">\add:description{added-description}
                              {\a:speak:section}}\@seccntformat{section}%
       \HCode{</span><BREAK SIZE="small" />}\fi }
\ConfigureMark{subsection}
   {\ifnum \c:secnumdepth>\c@secnumdepth  \expandafter\:gobble
    \else 
       \HCode{<span class="titlemark">\add:description{added-description}
                              {\a:speak:subsection}}\@seccntformat{subsection}%
       \HCode{</span><BREAK SIZE="small" />}\fi }
|<latex speak section|>
>>>






\<latex shared section config\><<<
\Configure{section}{}{}
   {\ifvmode \IgnorePar\fi \EndP\IgnorePar
    \HCode{<h3 class="sectionHead"\a:LRdir><EMP
            LEVEL="moderate">}\TitleMark\space\HtmlParOff}
   {\HCode{</EMP></h3>}\HtmlParOn\ShowPar \IgnoreIndent \par}
\Configure{likesection}{}{}
   {\ifvmode \IgnorePar\fi
    \EndP\IgnorePar\HCode{<h3
                class="likesectionHead"\a:LRdir><EMP
            LEVEL="moderate">}\HtmlParOff}
   {\HCode{</EMP></h3>}\HtmlParOn \IgnoreIndent \par}
>>>


\<latex shared section config\><<<
\Configure{subsection}{}{}
   {\ifvmode \IgnorePar\fi
    \EndP\bgroup \IgnorePar\HCode{<h4
             class="subsectionHead"\a:LRdir><EMP
                 LEVEL="moderate">}%
    \TitleMark\space \HtmlParOff}
   {\HCode{</EMP></h4>}\HtmlParOn 
    \IgnoreIndent\egroup\par\ShowPar}
\Configure{likesubsection}{}{}{\EndP\bgroup
   \ifvmode \IgnorePar\fi
   \HCode{<h4 class="likesubsectionHead"\a:LRdir><EMP
            LEVEL="moderate">}\HtmlParOff }
  {\HCode{</EMP></h4>}\HtmlParOn
   \IgnoreIndent\egroup\par\ShowPar}
>>>






\<ams art,proc,book div\><<<
\ConfigureMark{subsection}
  {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble
    \else
       \HCode{<span class="titlemark">\add:description{added-description}
                     {\a:speak:section}}\@ifundefined{sectionname}{}{%
          \ignorespaces\sectionname\space}%
          \@seccntformat{section}%
       \HCode{</span><BREAK SIZE="small" />}\fi }
|<latex speak section|>
>>>



\<latex speak section\><<<
\NewConfigure{speak:section}{1}
\Configure{speak:section}{section}
\NewConfigure{speak:subsection}{1}
\Configure{speak:subsection}{subsection}
>>>




\<configure jsml Preamble\><<<
\def\add:description#1#2{<span class="#1"
           title="speech-extra" >\Hnewline #2\Hnewline</span>}
\def\add:vdescription#1#2{<div class="#1"
           title="speech-extra" >\Hnewline #2\Hnewline</div>}
>>>





%%%%%%%%%%%%%
\section{Margin Notes}
%%%%%%%%%%%%%



\<configure jsml latex\><<<
\Configure{marginpar}
   {\ifvmode
      \IgnorePar\EndP\HCode{<p class="marginpar"><PROS
                PITCH="+30" >}%
         |<begin ver marginpar|>%
      \def\end:margp{\ifvmode \IgnorePar\fi \EndP 
         |<end ver marginpar|>\HCode{</PROS></p><BREAK SIZE="small"/>}}%
      \par
    \else
      \SaveEndP
      \HCode{<SENT><span class="marginpar"><PROS
                PITCH="+30" >}|<begin hor marginpar|>%
      \bgroup
         \Configure{HtmlPar}
             {<BREAK SIZE="small" />}
             {\HCode{<BREAK SIZE="small" />}}
             {}{}%
      \def\end:margp{\egroup
             |<end hor marginpar|>\HCode{</PROS><BREAK SIZE="small"/></span></SENT>}\RecallEndP}%
    \fi
   }
   {\end:margp}
>>>


\<begin ver marginpar\><<<
\HCode{<div>
     \add:description{begin-end}{<PROS PITCH="-15">\a:speak:marginpar
                      </PROS>}</div><div>}%
>>>

\<end ver marginpar\><<<
\HCode{</div><div>
    \add:description{begin-end}{\b:speak:marginpar}</div>}%
>>>


\<begin hor marginpar\><<<
\HCode{\add:description{begin-end}{<PROS pitch="-15">\a:speak:marginpar
                      </PROS>}}%
>>>

\<end hor marginpar\><<<
\HCode{\add:description{begin-end}{\b:speak:marginpar}}%
>>>



\<configure jsml latex\><<<
\NewConfigure{speak:marginpar}{2}
\Configure{speak:marginpar}
   {<BREAK SIZE="small"/>margin note<BREAK SIZE="small"/>}
   {}
>>>







%%%%%%%%%%%%%%%%%%
\section{Footnotes}
%%%%%%%%%%%%%%%%%%


\<configure jsml latex\><<<
|<latex footnotes|>
>>>

\<latex footnotes\><<<
\Configure{footnote-mark}
   {\HCode{<SENT><span class="footnote-mark"><PROS
                PITCH="+30" >}|<begin footnote note|>}
   {|<end footnote note|>\HCode{</PROS><BREAK SIZE="small"/></span></SENT>}}  
>>>



\<begin footnote note\><<<
\HCode{\add:description{added-description}{<PROS
             pitch="-15">\a:speak:footnote</PROS>}}%
>>>


\<end footnote note\><<<
\HCode{}%
>>>


\<latex footnotes\><<<
\NewConfigure{speak:footnote}{1}
\Configure{speak:footnote}
   { <BREAK SIZE="small"/>footnote<BREAK SIZE="small"/>}
>>>





%%%%%%%%%%%%%%%%%%
\section{Lists}
%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%
\subsection{Shared}
%%%%%%%%%%%%%




\<configure jsml latex\><<<
|<latex lists|>
>>>

\<latex lists\><<<
\ConfigureList{trivlist}%
   {\EndP\HCode{<dl \a:LRdir class="trivlist">}%
       |<save end:itm|>\global\let\end:itm=\empty}
   {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar}
   {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt
        class="trivlist">}\bgroup \bf}
   {\egroup\HCode{</dt><dd\Hnewline class="trivlist">}}
>>>

\<latex lists\><<<
\ConfigureList{list}%
   {\EndP\HCode{<dl \a:LRdir class="list\expandafter\the
         \csname @listdepth\endcsname">}%
    |<save end:itm|>\global\let\end:itm=\empty}
   {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar}
   {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt
        class="list">}\bgroup \bf}
   {\egroup\HCode{</dt><dd\Hnewline class="list">}}
>>>

%%%%%%%%%%%%%
\subsection{Itemized}
%%%%%%%%%%%%%



\<latex lists\><<<
\ConfigureList{itemize}%
   {\EndP\HCode{<ul
           \a:LRdir class="ul-itemize\expandafter\the
          \csname @itemdepth\endcsname"><PROS PITCH="+15">}%
     |<begin itemize note|>%
     |<save end:itm|>\global\let\end:itm=\empty}
   {|<recall end:itm|>\ifvmode \IgnorePar\fi 
    \EndP \HCode{</li>}|<end itemize note|>%
    \HCode{</PROS></ul>}\ShowPar}
   {\end:itm \global\def\end:itm{\EndP\HCode{</li>}}%
    \HCode{<li class="li-itemize">}|<itemize item|>\DeleteMark
   }
   {\HCode{}}
>>>

\<begin itemize note\><<<
\HCode{<div class="itemize">%
      <div class="added-list-description">%
     \add:description{added-description}{\a:speak:itemize}</div>}%
>>>

\<end itemize note\><<<
\HCode{<div class="added-list-description">%
     \add:description{added-description}{\b:speak:itemize}</div></div>}%
>>>

\<itemize item\><<<
\HCode{<span class="added-list-description">%
    \add:description{added-description}{\c:speak:itemize}</span>}%
>>>



\<latex lists\><<<
\NewConfigure{speak:itemize}{3}
\Configure{speak:itemize}
   {<BREAK SIZE="small"/>begin \ifcase\csname @listdepth\endcsname
          \or \or sub \or sub sub \or sub sub sub \else\fi
       list}
   {<BREAK SIZE="small"/>end \ifcase\csname @listdepth\endcsname
         \or sub \or sub sub \or sub sub sub \else\fi
       list<BREAK SIZE="small"/>}
   {<BREAK SIZE="medium"/><PROS PITCH="-5">|%\ifcase\csname @listdepth\endcsname
          \or \or sub \or sub sub \or sub sub sub \else\fi|%
       item</PROS><BREAK SIZE="small"/>}
>>>






%%%%%%%%%%%%%
\subsection{Enumerate}
%%%%%%%%%%%%%




\<latex lists\><<<
\ConfigureList{enumerate}%
      {|<enumerate I|>}
      {|<enumerate II|>}
      {|<enumerate III|>}
      {|<enumerate IV|>}
>>>


\<enumerate I\><<<
\EndP \HCode{<ol \a:enumerate:\space 
      class="ol-enumerate\expandafter\the\csname @enumdepth\endcsname"
      \a:LRdir
     ><PROS PITCH="+15">}%
|<begin enumerate note|>%
|<save end:itm|>\global\let\end:itm=\empty
>>>

\<enumerate II\><<<
|<recall end:itm|>%
\EndP \HCode{</li>}%
|<end enumerate note|>%
\HCode{</PROS></ol>}\ShowPar
>>>


\<enumerate III\><<<
\end:itm \gdef\end:itm{\EndP\HCode{</li>}}%
\HCode{<li class="li-enumerate" \Hnewline><SENT><span
   class="ol-mark"><BREAK
       SIZE="medium"/><PROS PITCH="-5" >}|<enumerate item|>%\DeleteMark
>>>

\<enumerate IV\><<<
\HCode{</PROS><BREAK SIZE="small"/></span></SENT>}%\AnchorLabel
>>>



\<save end:itm\><<<
\PushMacro\end:itm
>>>


\<recall end:itm\><<<
\PopMacro\end:itm \global\let\end:itm \end:itm 
>>>




\<begin enumerate note\><<<
\HCode{<div class="enumerate">%
   <div class="added-list-description">%
   \add:description{added-description}{\a:speak:enumerate}</div>}%
>>>


\<end enumerate note\><<<
\HCode{<div class="added-list-description">%
   \add:description{added-description}{\b:speak:enumerate}</div></div>}%
>>>

\<enumerate item\><<<
\HCode{<span class="added-list-description">%
       \add:description{added-description}{\c:speak:enumerate}</span>}%
>>>



\<roman enumeiii\><<<
\Configure{enumiii}
    {\HCode{<span class="roman-numeral">}%
     Roman numeral \HCode{}\the\c@enumiii 
     \HCode{}\:gobbleII}
    {\HCode{</span>}}
\long\def\:tempc{(\theenumii)}
\ifx \labelenumii\:tempc
   \def\:tempc{(\HCode{}\theenumii\HCode{})}
   \HLet\labelenumii\:tempc
\fi
>>>



\<latex lists\><<<
\NewConfigure{speak:enumerate}{3}
\Configure{speak:enumerate}
   {<BREAK SIZE="small"/>begin \ifcase\csname @listdepth\endcsname
          \or \or sub \or sub sub \or sub sub sub \else\fi
      list}
   {<BREAK SIZE="small"/>end \ifcase\csname @listdepth\endcsname
         \or sub \or sub sub \or sub sub sub \else\fi
      list<BREAK SIZE="small"/>}
   {|%\ifcase\csname @listdepth\endcsname
          \or \or sub \or sub sub \or sub sub sub \else\fi|%
       item <BREAK SIZE="small"/>}
>>>

%%%%%%%%%%%%%
\subsection{Description}
%%%%%%%%%%%%%


\<description lists\><<<
\ConfigureList{description}%
   {\EndP
    \HCode{<dl \a:LRdir class="dl-description"><PROS PITCH="+15">}%
      |<begin description note|>%
      |<save end:itm|>\global\let\end:itm=\empty}
   {|<recall end:itm|>\EndP\HCode{</dd>}%
    |<end description note|>%
    \HCode{</PROS></dl>}%
    \ShowPar}
   {\end:itm \global\def\end:itm{\EndP\HCode{</dd>}}\HCode{<SENT><span><dt 
        class="dt-description"><EMP
            LEVEL="moderate">}|<description item|>\bgroup \bf}
   {\egroup\EndP\HCode{</EMP><BREAK
      SIZE="small"/></dt></span></SENT><dd\Hnewline class="dd-description">}}
>>>







\<begin description note\><<<
\HCode{<div class="description">%
   <div class="added-list-description">%
   \add:description{added-description}{\a:speak:description}</div>}%
>>>


\<end description note\><<<
\HCode{<div class="added-list-description">%
    \add:description{added-description}{\b:speak:description}</div></div>}%
>>>

\<description item\><<<
\HCode{<span class="added-list-description">%
  \add:description{added-description}{\c:speak:description}%
 </span>}%
>>>


\<configure jsml-math tex4ht\><<<
\NewConfigure{speak:description}{3}
\Configure{speak:description}
   {<BREAK SIZE="small"/>begin \ifcase\csname @listdepth\endcsname
          \or \or sub \or sub sub \or sub sub sub \else\fi
       list}
   {<BREAK SIZE="small"/>end \ifcase\csname @listdepth\endcsname
         \or sub \or sub sub \or sub sub sub \else\fi
       list<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>|%\ifcase\csname @listdepth\endcsname
          \or \or sub \or sub sub \or sub sub sub \else\fi|%
       item}
>>>






%%%%%%%%%%%%%%%%%%
\section{Verbatim}
%%%%%%%%%%%%%%%%%%

\<configure jsml latex\><<<
\Configure{verbatim} 
   {\HAdvance\Verb:N by 1 \ifnum \Verb:N>1 
      \:nbsp \HCode{<br />}\fi}
   {\a:sp}
\def\env:verb#1{\ifinner\else \vfill\break\fi
  \IgnorePar\EndP  \HAssign\Verb:N=0
  \HCode{<PARA><div class="#1"\a:LRdir>%
    \add:description{added-description}{begin verbatim}%
    <PROS \a:verbatim::style >}\EndNoFonts}
\def\endenv:verb{\NoFonts
  \EndP \ht:special{t4ht=</PROS>%
    \add:description{added-description}{end verbatim}%
    </div></PARA>}|<try inline par|>}
\NewConfigure{verbatim::style}{1}
\Configure{verbatim::style}{RATE="150" PITCH="-10" RANGE="0"}
>>>


\<configure jsml latex\><<<
\Configure{verb}
   {\HCode{<SENT><span class="verb"\a:LRdir><PROS \a:verbatim::style >}}
   {\HCode{</PROS></span></SENT>}}
>>>




% %%%%%%%%%%%%%%%%%%
% \section{Verbatim}
% %%%%%%%%%%%%%%%%%%
% 
% 
% \<configure jsml latex\><<<
% \Configure{verbatim} {} {\a:sp}
% \def\env:verb#1{\ifinner\else \vfill\break\fi
%   \IgnorePar\EndP  \HAssign\Verb:N=0
%   \HCode{\add:description{added-description}{begin verbatim}%
%          <pre class="#1"\a:LRdir>}\EndNoFonts}
% \def\endenv:verb{\NoFonts
%   \EndP \ht:special{t4ht=</pre>}%
%      \add:description{added-description}{end verbatim}%
%      |<try inline par|>}
% \def\start:fenv#1{\:xhtml{\IgnorePar
%               \EndP}\HCode{<div align="#1"\Hnewline\a:LRdir>}}
% \def\end:fenv{\IgnorePar\HCode{</div>}\IgnorePar}
% >>>





%%%%%%%%%%%%%%%%%%
\section{Figures}
%%%%%%%%%%%%%%%%%%


\<config book-report-article\><<<
|<config captions|>
>>>

\<configure jsml aa\><<<   
|<config captions|>
>>>

\<ams art,proc,book\><<<
|<config captions|>
>>>





\<configure jsml latex\><<<
\ConfigureEnv{figure}
   {\IgnorePar\EndP
     \HCode{<PARA><div class="figure"\Hnewline>|<begin figure note|>}%
    \bgroup \Configure{float}{\ShowPar}{}{}%    
   }
   {\egroup
    \IgnorePar\EndP\HCode{|<end figure note|></div></PARA>}%
    |<try env inline par|>\par}
   {}{}
>>>


\<config captions\><<<
\Configure{caption}
   {\IgnorePar\EndP
    \HCode{<PARA><div class="caption"><SENT><span class="mark">%
        <BREAK SIZE="small"/><EMP 
                   LEVEL="medium">}|<caption of fig|>}
   {: \HCode{</EMP><BREAK SIZE="small"/>}}
   {|<end caption|>\HCode{</span></SENT>%
      <SENT><span \Hnewline class="content">%
        \add:description{added-description}{\a:speak:caption}}} 
   {\HCode{\add:description{added-description}{\b:speak:caption}%
         </span></SENT></div></PARA>}|<caption label comment|>}
>>>


\<begin figure note\><<<
<div>\add:description{begin-end}{\a:speak:figure}</div>%
>>>


\<end figure note\><<<
<div>\add:description{begin-end}{\b:speak:figure}</div>%
>>>

\<caption of fig\><<<
\HCode{\add:description{added-description}{\c:speak:caption}}%
>>>

\<end caption\><<<
>>>

\<configure jsml latex\><<<
\NewConfigure{speak:caption}{3}
\Configure{speak:caption}
   {}
   {}
   {caption of}
\NewConfigure{speak:figure}{2}
\Configure{speak:figure}
   {<BREAK
       SIZE="small"/><PROS PITCH="-15" >begin figure</PROS>}
   {<BREAK
       SIZE="small"/><PROS PITCH="-15" >end figure</PROS>}
>>>

%%%%%%%%%%%%%%%%%%
\section{Quote}
%%%%%%%%%%%%%%%%%%


\<config book-report-article\><<<
|<quote config|>
>>>


\<configure html4 letter\><<< 
|<quote config|>
>>>

\<quote config\><<<
\ConfigureEnv{quote}
   {}{}
   {\IgnorePar\EndP
    \HCode{<PARA><div class="quote"><PROS
                PITCH="-10" >}}
   {\IgnorePar\EndP
    \HCode{</PROS></div></PARA>}\ShowPar\ShowIndent}
>>>

%%%%%%%%%%%%%%%%%%
\section{Fonts}
%%%%%%%%%%%%%%%%%%

\<configure jsml tex4ht\><<<
\Configure{htf}{0}{+}{}{}{}{}{}{}{}
>>>




\<configure jsml latex\><<<
\Configure{texttt}
   {\Protect\HCode{<SENT><span class="texttt"><PROS
      \a:verbatim::style}}
   {\Protect\HCode{</PROS></span></SENT>}}
\Configure{emph}
   {\Protect\HCode{<SENT><span class="emph"><EMP
            LEVEL="moderate">}}
   {\Protect\HCode{</EMP></span></SENT>}}
\Configure{textbf}
   {\Protect\HCode{<span class="textbf"><EMP
            LEVEL="strong">}}
   {\Protect\HCode{</EMP></span>}}
>>>


\<\><<<
\Configure{textit}{\Protect\HCode{<span class="textit">}}
                  {\Protect\HCode{</span>}}
\Configure{textrm}{\Protect\HCode{<span class="textrm">}}
                  {\Protect\HCode{</span>}}
\Configure{textup}{\Protect\HCode{<span class="textup">}}
                  {\Protect\HCode{</span>}}  
\Configure{textsc}{\Protect\HCode{<span class="textsc">}}
                  {\Protect\HCode{</span>}}
\Configure{textsf}{\Protect\HCode{<span class="textsf">}}
                  {\Protect\HCode{</span>}}  
\Configure{textsl}{\Protect\HCode{<span class="textsl">}}
                  {\Protect\HCode{</span>}}
>>>



%%%%%%%%%%%%%%%%%%
\part{Math}
%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%
\section{Math Delimiters}
%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%
\subsection{Full Expressions}
%%%%%%%%%%%%%




\<configure jsml-math tex4ht\><<<
\Configure{DviMath}
    {\a:DviMathSpk \mathmltrue
       \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}%
       \IgnoreRule \HCode{<!--l.
       \the\inputlineno-->}\a:math
       |<sv dvimath par|>\IgnorePar}
    {\EndIgnoreRule
     \mathmlfalse \b:DviMathSpk |<recall dvimath par|>}
\NewConfigure{DviMathSpk}{2}
>>>



\<sv dvimath par\><<<
\edef\sv:ignore{\if:nopar  
    \noexpand\IgnorePar\else \noexpand\ShowPar\fi}%
>>>


\<recall dvimath par\><<<
\sv:ignore
>>>



\<configure jsml-math tex4ht\><<<
\Configure{math}{}
\Configure{$}
   {|<conf inline math|>\DviMath}
   {\EndDviMath}{}
\Configure{$$} 
   {|<conf display math|>\DviMath}
   {\EndDviMath
       \ShowPar\par{\csname HCondtrue\endcsname\noindent}}
   {\DisplayMathtrue}
>>>


\<configure jsml-math latex\><<<
\Configure{[]}
  {|<conf display math|>\DviMath $$\DisplayMathtrue }
  {$$\EndDviMath}
\Configure{()}
  {|<conf inline math|>\DviMath $}
  {$\EndDviMath}
>>>


\<conf inline math\><<<
\Configure{DviMathSpk}
      {\HCode{<span class="inline-math">%
              \add:description{begin-math}{\a:speak:math}}}
      {\HCode{\add:description{end-math}{\b:speak:math}</span>}}%
>>>     


\<conf display math\><<<
\Configure{@math}{div}\IgnorePar
    |<inline end-par comment|>\EndP
    \Configure{DviMathSpk}
      {\HCode{<div class="display-math">%
              \add:description{begin-math}{\a:speak:math}}}
      {\HCode{\add:description{end-math}{\b:speak:math}</div>}}%
>>>   


\<configure jsml-math tex4ht\><<<
\NewConfigure{speak:math}{2}
\Configure{speak:math}
   {%<BREAK SIZE="small"/><PROS PITCH="-5" >math</PROS>
    <BREAK SIZE="small"/>}
   {%<BREAK SIZE="small"/><PROS PITCH="-5" >end math</PROS>
    <BREAK SIZE="small"/>}
>>>





%%%%%%%%%%%%%%%%%%
\chapter{Over and Under}
%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%
\section{Subscrips and Superscripts (sub and super)}
%%%%%%%%%%%%%

\<configure jsml-math tex4ht\><<<
|<sub, sup, subsup|>            
|<limits sub, sup, subsup|>     
>>>

\<sub, sup, subsup\><<<
\Configure{SUB} 
   {\Send{BACK}
     {|<start msub base|>}|<msub sub|>}
   {|<close msub|>}
\Configure{SUP}
   {\Send{BACK}
   {|<start msup base|>}|<msup super|>}
   {|<close msup|>}
\Configure{SUBSUP}
   {\Send{BACK}
   {|<start msubsup base|>}|<msubsup sub|>}
   {|<msubsup sup|>}
   {|<close msubsup|>}
>>>



\<start msup base\><<<
<msup><mrow class="mrow-base"\Hnewline>%
>>>

\<msup super\><<<
\HCode{</mrow><mrow class="mrow-super"\Hnewline
    >\add:description{begin-script}{\b:speak:subsup}%
       <PROS PITCH="+10">}\trap:base
>>>

\<close msup\><<<
\HCode{</PROS>\add:description{end-script}{\c:speak:subsup}%
       </mrow></msup\Hnewline>}%
>>>



\<start msub base\><<<
<msub><mrow class="mrow-base"\Hnewline>%
>>>



\<msub sub\><<<
\HCode{</mrow><mrow class="mrow-sub"\Hnewline
   >\add:description{begin-script}{\a:speak:subsup}%
   <PROS PITCH="-10">}\trap:base
>>>

\<close msub\><<<
\HCode{</PROS>\add:description{end-script}{\c:speak:subsup}%
   </mrow></msub\Hnewline>}%
>>>

% 
% 

\<start msubsup base\><<<
<msubsup><mrow class="mrow-base"\Hnewline>%
>>>

\<msubsup sub\><<<
\HCode{</mrow><mrow class="mrow-sub"\Hnewline
   >\add:description{begin-script}{\a:speak:subsup}%
        <PROS PITCH="-10">}\trap:base
>>>


\<msubsup sup\><<<
\HCode{</PROS></mrow><mrow class="mrow-super"\Hnewline
   >\add:description{mid-script}{\b:speak:subsup}%
        <PROS PITCH="+10">}\trap:base
>>>


\<close msubsup\><<<
\HCode{</PROS>\add:description{end-script}{\c:speak:subsup}%
   </mrow></msubsup\Hnewline>}%
>>>

\<configure jsml-math tex4ht\><<<
\NewConfigure{speak:subsup}{3}
\Configure{speak:subsup}
   {<PROS PITCH="-5"><BREAK SIZE="small"/> 
    <span class="scripts-extra"> subscript </span>
    <BREAK SIZE="small"/></PROS>}
   {<PROS PITCH="+5"><BREAK SIZE="small"/> 
    <span class="scripts-extra"> superscript </span>
    <BREAK SIZE="small"/></PROS>}
   {<PROS PITCH="-5"><BREAK SIZE="medium"/> 
    <span class="scripts-extra"> baseline </span>
    <BREAK SIZE="small"/></PROS>}
>>>



%%%%%%%%%%%%%%%%%%
\section{Delimiters}
%%%%%%%%%%%%%%%%%%

\<plain,fontmath math\><<<
\Configure{MathClass}{1}{*}{<mo\Hnewline
      class="MathClass-op"><BREAK SIZE="small"/>}
    {<BREAK SIZE="small"/></mo>}{}
\Configure{MathClass}{2}{*}{<mo\Hnewline
      class="MathClass-bin"><BREAK SIZE="small"/>}
    {<BREAK SIZE="small"/></mo>}{}
\Configure{MathClass}{3}{*}{<mo\Hnewline
             class="MathClass-rel"><BREAK SIZE="small"/>}
       {<BREAK SIZE="small"/></mo>}{}
\:CheckOption{mathml-}     \if:Option 
   \Configure{MathClass}{4}{*}{<mo\Hnewline
             class="MathClass-open">}
                   {</mo><BREAK SIZE="small"/>}{}
   \Configure{MathClass}{5}{*}{<BREAK SIZE="small"/>%
             <mo\Hnewline
             class="MathClass-close">}
                           {</mo>}{}
\else
   \Configure{MathClass}{4}{*}{<mfenced><mo\Hnewline
             class="MathClass-open">}
       {</mo><mrow><BREAK SIZE="small"/>}{}
   \Configure{MathClass}{5}{*}{<BREAK SIZE="small"/>%
                         </mrow><mo\Hnewline
             class="MathClass-close">}
                           {</mo></mfenced>}{}
\fi
>>>


\<plain,fontmath math\><<<
\def\sin{\mathop {\operator@font sine}\nolimits}
\def\cos{\mathop {\operator@font cosine}\nolimits}
\def\lim{\mathop {\operator@font limit}}
>>>

%%%%%%%%%%%%%%%%%%
\section{Fractions and Stacks}
%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%
\subsection{Regular Ones}
%%%%%%%%%%%%%



\<configure jsml-math tex4ht\><<<
\Configure{over}
   {\Send{GROUP}{0}{|<start mfrac|>}|<end frac numerator|>}
   {|<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>}}
\Configure{atop}
   {\Send{GROUP}{0}{|<start atop|>}|<end atop over|>}
   {|<start atop under|>\Send{EndGROUP}{0}{|<end atop|>}}
\Configure{above}
   {\Send{GROUP}{0}{|<start above|>}%
    |<end above over|>\o:over:\:gobbleII}
   {|<start above under|>\Send{EndGROUP}{0}{|<end above|>}}
>>>

\<configure jsml-math latex\><<<
|<plain,latex mathml|>
|<mathml latex|>
>>>

\<mathml latex\><<<
\Configure{frac}
   {\HCode{|<start mfrac|>}}
   {|<end frac numerator|>\Configure{over}{}{}}
   {|<frac enumerator|>}
   {\HCode{|<end mfrac|>}}
>>>



\<configure jsml-math amsmath\><<<
\Configure{above}
   {\Send{GROUP}{0}{|<start above|>}%
                    |<end above over|>\o:@@over:\:gobbleII}
   {|<start above under|>\Send{EndGROUP}{0}{|<end above|>}}
>>>


\<plain,latex mathml\><<<
\Configure{choose}
   {\Send{GROUP}{0}{<mover class="choose">%
       \add:description{begin-stack}{\a:speak:choose}%
       <mrow class="mrow-upper">}%
    \HCode{</mrow>}\o:atop:
    \HCode{\add:description{added-description}%
       {\c:speak:choose}<mrow class="mrow-under">}%
    \Send{EndGROUP}{0}%
      {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}%
   }
>>>



\<plain,latex mathml\><<<
\NewConfigure{speak:choose}{3}
\Configure{speak:choose}
   {<BREAK SIZE="small"/>binomial coefficient<BREAK SIZE="small"/>}
   {<BREAK SIZE="medium"/>}
   {<BREAK SIZE="small"/>choose<BREAK SIZE="small"/>}
>>>


\<configure jsml-math amsmath\><<<
\Configure{tbinom}
 {\Send{GROUP}{0}{<mover class="tbinom">%
       \add:description{begin-stack}{\a:speak:choose}%
       <mrow class="mrow-upper">}%
    \HCode{</mrow>}\o:@@abovewithdelims: ..\z@{}%
    \HCode{\add:description{added-description}%
       {\c:speak:choose}<mrow class="mrow-under">}%
    \Send{EndGROUP}{0}%
      {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}%
   }
>>>

\<configure jsml-math amsmath\><<<
\Configure{dbinom}
 {\Send{GROUP}{0}{<mover class="dbinom">%
       \add:description{begin-stack}{\a:speak:choose}%
       <mrow class="mrow-upper">}%
    \HCode{</mrow>}\o:@@abovewithdelims: ..\z@{}%
    \HCode{\add:description{added-description}{\c:speak:choose}<mrow class="mrow-under">}%
    \Send{EndGROUP}{0}%
      {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}%
   }
>>>




\<configure jsml-math amsmath\><<<
\Configure{binom}
 {\Send{GROUP}{0}{<mover class="binom">%
       \add:description{begin-stack}{\a:speak:choose}%
       <mrow class="mrow-upper">}%
    \HCode{</mrow>}\o:@@abovewithdelims: ..\z@{}%
    \HCode{\add:description{added-description}{\c:speak:choose}<mrow class="mrow-under">}%
    \Send{EndGROUP}{0}%
      {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}%
   }
>>>

%%%%%%%%%%%%%
\subsection{With Delimiters}
%%%%%%%%%%%%%





\<configure jsml-math tex4ht\><<<
\def\abovewithdelims:III#1#2#3{%
   \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
      \Send{GROUP}{0}{|<start above|>}%
      |<end above over|>\o:over:
      |<start above under|>\Send{EndGROUP}{0}{|<end above|>}
   \else
      \Send{GROUP}{0}%
         {<mo class="mfenced-open">|<lr del 2|></mo>%
          |<start above|>}%
      |<end above over|>\o:over:
      |<start above under|>\Send{EndGROUP}{0}{|<end above|>%
         <mo class="mfenced-close">|<lr del 3|></mo>}
   \fi  
   \tmp:dim
 }
>>>



\<configure jsml-math tex4ht\><<<
\def\atopwithdelims:III#1#2#3{%
   \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
      \Send{GROUP}{0}{|<start atop|>}%
      |<end atop over|>\o:atop:
      |<start atop under|>\Send{EndGROUP}{0}{|<end atop|>}
   \else
      \Send{GROUP}{0}%
         {<mo class="mfenced-open">|<lr del 2|></mo>%
          |<start atop|>}%
      |<end atop over|>\o:atop:
      |<start atop under|>%
      \Send{EndGROUP}{0}{|<end atop|>%
         <mo class="mfenced-close">|<lr del 3|></mo>}
   \fi
 }
>>>

\<configure jsml-math tex4ht\><<<
\def\overwithdelims:III#1#2#3{%
   \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
      \Send{GROUP}{0}{|<start mfrac|>}|<end frac numerator|>\o:over:
      |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>}
   \else
      \Send{GROUP}{0}%
         {<mo class="mfenced-open">|<lr del 2|></mo>%
          |<start mfrac|>}%
      |<end frac numerator|>\o:over:
      |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>%
             <mo class="mfenced-close">|<lr del 3|></mo>}
   \fi
 }
>>>



\<configure jsml-math amsmath\><<<
\def\abovewithdelims:III#1#2#3{%
   \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
      \Send{GROUP}{0}{|<start above|>}%
      |<end above over|>\o:@@over:
      |<start above under|>\Send{EndGROUP}{0}{|<end above|>}
   \else
      \Send{GROUP}{0}%
         {<mo class="mfenced-open">|<lr del 2|></mo>%
          |<start above|>}%
      |<end above over|>\o:@@over:
      |<start above under|>\Send{EndGROUP}{0}{|<end above|>%
         <mo class="mfenced-close">|<lr del 3|></mo>}
   \fi  
   \tmp:dim
 }
>>>


\<configure jsml-math amsmath\><<<
\def\atopwithdelims:III#1#2#3{%
   \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
      \Send{GROUP}{0}{|<start atop|>}%
      |<end atop over|>\o:@@atop:
      |<start atop under|>\Send{EndGROUP}{0}{|<end atop|>}
   \else
      \Send{GROUP}{0}%
         {<mo class="mfenced-open">|<lr del 2|></mo>%
          |<start atop|>}%
      |<end atop over|>\o:@@atop:
      |<start atop under|>\Send{EndGROUP}{0}{|<end atop|>%
             <mo class="mfenced-close">|<lr del 3|></mo>}
   \fi
 }
>>>



\<configure jsml-math amsmath\><<<
\def\overwithdelims:III#1#2#3{%
   \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
      \Send{GROUP}{0}{|<start mfrac|>}%
      |<end frac numerator|>\o:over:
      |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>}
   \else
      \Send{GROUP}{0}%
         {<mo class="mfenced-open">|<lr del 2|></mo>%
          |<start mfrac|>}%
      |<end frac numerator|>\o:@@over:
      |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>%
         <mo class="mfenced-close">|<lr del 3|></mo>}
   \fi
 }
>>>



%%%%%%%%%%%%%
\subsection{Code Assignments}
%%%%%%%%%%%%%



\<start mfrac\><<<
<mfrac>\add:description{begin-end}{\a:speak:fraction}%
<mrow class="mrow-numerator"\Hnewline>%
>>>


\<end frac numerator\><<<
\HCode{</mrow>}%
>>>



\<frac enumerator\><<<
\HCode{\add:description{begin-end}{\c:speak:fraction}
       <mrow class="mrow-enumerator"\Hnewline>}%
>>>

\<end mfrac\><<<
</mrow>\add:description{begin-end}{\b:speak:fraction}</mfrac>%
>>>


\<start atop\><<<
<mover class="atop">%
\add:description{begin-stack}{\a:speak:atop}%
<mrow class="mrow-upper">%
>>>




\<end atop over\><<<
\HCode{</mrow>}%
>>>


\<start atop under\><<<
\HCode{\add:description{added-description}{\c:speak:atop}<mrow class="mrow-under">}%
>>>


\<end atop\><<<
</mrow>\add:description{end-stack}{\b:speak:atop}</mover>%
>>>




\<start above\><<<
|<start mfrac|>%
>>>


\<end above over\><<<
|<end frac numerator|>%
>>>


\<start above under\><<<
|<frac enumerator|>%
>>>     

\<end above\><<<
|<end mfrac|>%
>>>





\<configure jsml-math tex4ht\><<<
\NewConfigure{speak:fraction}{3}
\Configure{speak:fraction}
   {<BREAK SIZE="small"/><level prefix="begin" 
               continued="begin continued fraction">begin 
         fraction</level><BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/><level prefix="end"
               continued="end continued fraction">end
         fraction</level><BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/><level prefix="over">%
         over</level><BREAK SIZE="small"/>}
>>>




\<configure jsml-math tex4ht\><<<
\NewConfigure{speak:atop}{3}
\Configure{speak:atop}
   {<BREAK SIZE="small"/>begin stack<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>end stack<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>over<BREAK SIZE="small"/>}
>>>



%%%%%%%%%%%%%
\subsection{Delimiters}
%%%%%%%%%%%%%



\<lr del 1\><<<
\expandafter
\ifx \csname \string#1:lr del\endcsname\relax #1\else 
     \csname \string#1:lr del\endcsname\fi
>>>

\<lr del 2\><<<
\expandafter
\ifx \csname \string#2:lr del\endcsname\relax #2\else 
     \csname \string#2:lr del\endcsname\fi
>>>


\<lr del 3\><<<
\expandafter
\ifx \csname \string#3:lr del\endcsname\relax #3\else 
     \csname \string#3:lr del\endcsname\fi
>>>


The following cases in mathml are translated directly 
to explicit caharacters and so donn't get there the 
speech interpretation provided in unicode.4hf.

\<plain,latex mathml\><<<
\Configure{mfenced}{\vert}{\string&\#x007C;}
\Configure{mfenced}{\{}{\string&\#x007B;}
\Configure{mfenced}{\}}{\string&\#x007D;}
\Configure{mfenced}{\lbrace}{\string&\#x007B;}
\Configure{mfenced}{\rbrace}{\string&\#x007D;}
\Configure{mfenced}{\rgroup}{\string&\#x0028;}
\Configure{mfenced}{\lgroup}{\string&\#x0029;}
\Configure{mfenced}{(}{\string&\#x0028;}
\Configure{mfenced}{)}{\string&\#x0029;}
\Configure{mfenced}{[}{\string&\#x0058;}
\Configure{mfenced}{]}{\string&\#x0059;}
\Configure{mfenced}{||}{\string&\#x007C;}
\Configure{mfenced}{\bracevert}{\string&\#x007C;}
\Configure{mfenced}{\bracevert}{\string&\#x007C;}
>>>


%%%%%%%%%%%%%
\section{Lines and Braces (With ...)}
%%%%%%%%%%%%%


\<configure jsml-math latex\><<<
\Configure{overline}
   {\bgroup\ifmathml |<mathml overline|>\else
         \HCode{<mover class="overline">}\fi}
   {\ifmathml |<end mathml overline|>\else 
                  \HCode{</mover>}\fi\egroup}
\Configure{underline}
   {\bgroup
    \ifmathml |<mathml underline|>%
    \else |<nomath underline|>%
          \HCode{<mover class="underline">}\fi}
   {\ifmathml |<end mathml underline|>\else
                   \HCode{</mover>}\fi \egroup}
>>>

\<mathml overline\><<<
\HCode{<mover class="mover-overline"\Hnewline>%
       \add:description{begin-end}{\b:speak:modified}%
       <mrow class="mo-00AF">}%
>>>

\<end mathml overline\><<<
\HCode{</mrow>%
  \add:description{begin-end}{\a:speak:modified:line}%
  </mover>}%
>>>

\<mathml underline\><<<
\HCode{<munder class="munder-underline">%
       \add:description{begin-end}{\a:speak:modified}%
       <mrow class="mo-0332"><BREAK SIZE="small"/>}% 
>>>

\<end mathml underline\><<<
\HCode{<BREAK SIZE="small"/></mrow>%
      \add:description{begin-end}{\a:speak:modified:line}%
      </munder>}%
>>>

\<nomath underline\><<<
\expandafter\everymath
\expandafter{\expandafter\everymath
             \expandafter{\the\everymath}}%
\let\o::@underline:\o:@@underline:
\def\o:@@underline:{\let\o:@@underline:\o::@underline:}%
>>>



\<plain,fontmath math\><<<
\Configure{overbrace}
   {\Configure{mathop*}{*}
         {<mover class="mover-overline">%
                  \add:description{begin-end}{\b:speak:modified}%
                  <mrow class="mo-FE37">}
         {</mrow>\add:description{begin-end}{\a:speak:modified:brace}%
          </mover>}
         {\Configure{mathop}{}{}{}{}}%
   }
   {\let\o:overbrace:=\displaystyle}
   {}
\Configure{underbrace}
   {\Configure{mathop*}{*}
         {<munder class="munder-underline">%
               \add:description{begin-end}{\a:speak:modified}%
               <mrow class="mo-FE38">}
         {</mrow>\add:description{begin-end}{\a:speak:modified:brace}%
          </munder>}
         {\Configure{mathop}{}{}{}{}}%
   }
   {\let\o:underbrace:=\displaystyle}
   {}
>>>







\<config mathml accents\><<<
\Configure{accent}\widetilde\widetilde{{}{}} 
  {}
  {\HCode{<mover class="mover-tilde">%
          \add:description{begin-end}{\b:speak:modified}%
          <mrow class="mo-0303"\Hnewline>}%
       #2%
   \HCode{</mrow>\add:description{begin-end}{\a:speak:modified:tilde}%
          </mover>}}
\Configure{accent}\widehat\widehat{{}{}} 
  {}
  {\HCode{<mover class="mover-hat">%
          \add:description{begin-end}{\a:speak:modified}%
          <mrow class="mo-0302"\Hnewline>}%
       #2%
   \HCode{</mrow>\add:description{begin-end}{
                        \a:speak:modified:hat}</mover>}} |%circumflex|%
>>>


\<configure jsml-math latex\><<<
\NewConfigure{speak:modified}{2}
\Configure{speak:modified}
   {<BREAK SIZE="small"/>modified 
                            under<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>modified 
                            above<BREAK SIZE="small"/>}
\NewConfigure{speak:modified:brace}{1}
\NewConfigure{speak:modified:hat}{1}
\NewConfigure{speak:modified:line}{1}
\NewConfigure{speak:modified:tilde}{1}
\Configure{speak:modified:brace}
    {<BREAK SIZE="small"/>with brace<BREAK SIZE="small"/>}
\Configure{speak:modified:hat}
    {<BREAK SIZE="small"/>with wide hat<BREAK SIZE="small"/>}
\Configure{speak:modified:line}
    {<BREAK SIZE="small"/>with bar<BREAK SIZE="small"/>}
\Configure{speak:modified:tilde}
    {<BREAK SIZE="small"/>with wide tilde<BREAK SIZE="small"/>}
>>>


%%%%%%%%%%%%%
\section{Arrows (With ...)}
%%%%%%%%%%%%%




\<plain,fontmath math\><<<
\Configure{overrightarrow}
  {\HCode{<mover class="mover-rightarrow">%
      \add:description{begin-end}{\b:speak:modified}%
      <mrow class="mo-20D5"\Hnewline>}\:gobble}
  {\HCode{</mrow>%
          \add:description{begin-end}{\a:speak:modified:rightarrow}%
          </mover>}}
\Configure{overleftarrow}
  {\HCode{<mover class="mover-leftarrow">%
      \add:description{begin-end}{\b:speak:modified}%
      <mrow class="mo-20D6"\Hnewline>}\:gobble}
  {\HCode{</mrow>%
      \add:description{begin-end}{\a:speak:modified:leftarrow}%
      </mover>}}
>>>

\<plain,fontmath math\><<<
\NewConfigure{speak:modified:leftarrow}{1}
\NewConfigure{speak:modified:leftrightarrow}{1}
\NewConfigure{speak:modified:rightarrow}{1}
\Configure{speak:modified:leftarrow}
      {<BREAK SIZE="small"/>with left 
                             right arrow<BREAK SIZE="small"/>}
\Configure{speak:modified:leftrightarrow}
      {<BREAK SIZE="small"/>with left 
                             right arrow<BREAK SIZE="small"/>}
\Configure{speak:modified:rightarrow}
      {<BREAK SIZE="small"/>with 
                             right arrow<BREAK SIZE="small"/>}
>>>

\<configure jsml-math amsmath\><<<
\Configure{underrightarrow}
  {\HCode{<munder class="munder-rightarrow">%
      \add:description{begin-end}{\a:speak:modified}%
      <mrow class="mo-2092"\Hnewline>}\:gobble}
  {\HCode{</mrow>%
          \add:description{begin-end}{\a:speak:modified:rightarrow}%
          </munder>}}
\Configure{underleftarrow}
  {\HCode{<munder class="munder-leftarrow">%
      \add:description{begin-end}{\a:speak:modified}%
      <mrow class="mo-2090"\Hnewline>}\:gobble}
  {\HCode{</mrow>%
          \add:description{begin-end}{speak:modified:leftarrow}%
          </munder>}}
>>>


\<configure jsml-math amsmath\><<<
\Configure{overleftrightarrow}
  {\HCode{<mover class="mover-leftrightarrow">%
      \add:description{begin-end}{\b:speak:modified}%
      <mrow class="mo-20E1"\Hnewline>}\:gobble}
  {\HCode{</mrow>%
      \add:description{begin-end}{\a:speak:modified:leftrightarrow}%
      </mover>}}
\Configure{underleftrightarrow}
  {\HCode{<munder class="munder-leftrightarrow">%
      \add:description{begin-end}{\a:speak:modified}%
      <mrow class="mo-2194"\Hnewline>}\:gobble}
  {\HCode{</mrow>%
      \add:description{begin-end}{\a:speak:modified:leftrightarrow}%
      </munder>}}
>>>


%%%%%%%%%%%%%%%%%%
\section{Symbols}
%%%%%%%%%%%%%%%%%%


\<configure jsml-math amsmath\><<<
\def\:tempc{\HCode{<mspace width="0.2em"/>}\mathbin{mod} }
\HLet\bmod\:tempc
\def\:tempc#1{ (#1)}
\HLet\pod=\:tempc
\def\:tempc#1{\pod{\mathop{mod} #1}}
\HLet\pmod=\:tempc
\def\:tempc#1{ \mathop{mod} #1}
\HLet\mod=\:tempc
>>>

\<configure jsml-math amsmath\><<<
\Configure{hdotsfor}{\dots}
>>>

\<plain,latex mathml\><<<
\def\mathop:prefix#1{%
   \Configure{mathop}{*}{<mo class="mo-op"
                               #1\Hnewline>}{</mo>}%
    {\Configure{mathop}{*}{<mo class="mo-op">}{</mo>}{}}}
>>>


\<configure jsml-math amsopn\><<<
\def\:tempc{\mathop{\underrightarrow\lim}\displaylimits}  \HLet\varinjlim\:tempc
\def\:tempc{\mathop{\underleftarrow\lim}\displaylimits}   \HLet\varprojlim\:tempc
\def\:tempc{\mathop{\overline\lim}\displaylimits}         \HLet\varlimsup\:tempc
\def\:tempc{\mathop{\underline\lim}\displaylimits}        \HLet\varliminf\:tempc
>>>


\<\><<<
\HRestore\varinjlim
\HRestore\varprojlim
\HRestore\varlimsup
\HRestore\varliminf
>>>


\<plain,fontmath math\><<<
\def\:tempc{\HCode{\add:description{added-description}{real part
                    symbol capital }}\o:Re:}
\HLet\Re\:tempc
\def\:tempc{\HCode{\add:description{added-description}{real part
                    symbol capital }}\o:Im:}
\HLet\Im\:tempc
>>>

%%%%%%%%%%%%%%%%%%
\section{Spaces}
%%%%%%%%%%%%%%%%%%




\<plain,latex mathml\><<<
\Configure{quad}{\HCode{|<space element|>}}
\Configure{qquad}{\HCode{|<space element|>}}
\Configure{,}{\HCode{|<tiny space element|>}}
\Configure{ }{\:nbsp} 
>>>


\<configure jsml-math latex\><<<
\Configure{hspace}{ }{}{ }
>>>


\<configure jsml-math amsmath\><<<
\Configure{tmspace}
   {\HCode{|<space element|>}}
>>>

\<plain,latex mathml\><<<
\def\:nbsp{\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x}
>>>



\<configure jsml frenchb\><<<
\Configure{frenchb-nbsp}
   {\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x%
    \setbox\tmp:bx=\hbox\bgroup}
   {\egroup}
>>>  

\<space element\><<<
<span class="space"><BREAK SIZE="small"/></span>%
>>>


\<tiny space element\><<<
<span class="tiny-space"><BREAK SIZE="small"/></span>%
>>>



%%%%%%%%%%%%%%%%%%
\section{Radicals}
%%%%%%%%%%%%%%%%%%



\<configure jsml-math tex4ht\><<<
\Configure{radical}
  {\HCode{<msqrt>%
          \add:description{begin-root}{\a:speak:radical}}%
   \special{t4ht\string~!e<<mrow class="root-base">}%
   \special{t4ht\string~!e></mrow>%
          \add:description{end-root}{\b:speak:radical}</msqrt>}%
   \special{t4ht\string~!ee/}%
   \special{t4ht\string~!ese-}%
  }
>>>

\<configure jsml-math tex4ht\><<<
\NewConfigure{speak:radical}{2}
\Configure{speak:radical}
   {<BREAK SIZE="small"/><level prefix="begin">begin
             root</level><BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/><level prefix="end">end
             root</level><BREAK SIZE="small"/>}
>>>





\<plain,latex mathml\><<<
\Configure{root}
    {\HCode{<mroot>%
       \add:description{begin-root}{\a:speak:root}%
       <mrow class="root-index">}}
    {\HCode{</mrow>\add:description{mid-root}{\b:speak:root}%
            <mrow class="root-base">}}
    {\HCode{</mrow>\add:description{end-root}{\c:speak:root}</mroot>}}
>>>


\<plain,latex mathml\><<<
\NewConfigure{speak:root}{3}
\Configure{speak:root}
   {<BREAK SIZE="medium"/><level prefix="root">root
         index</level><BREAK SIZE="medium"/>}
   {<BREAK SIZE="medium"/><level prefix="begin">begin
         root</level><BREAK SIZE="medium"/>}
   {<BREAK SIZE="medium"/><level prefix="end">end
         root</level><BREAK SIZE="medium"/>}
>>>





%%%%%%%%%%%%%
\section{Left and Right}
%%%%%%%%%%%%%


\<plain,latex mathml\><<<
\Configure{left}
   {}
   {\HCode{|<lr del 1|>}\bgroup
    \HCode{<mrow>}\bgroup}
\Configure{right}
   {\egroup\HCode{</mrow>}\egroup
           \HCode{|<lr del 1|>}}
   {}
>>>




\<plain,fontmath math\><<<
\Configure{big}
   {}{}
   {}
   {}
\Configure{Big}
   {}{}
   {}
   {}
\Configure{bigg}
   {}{}
   {}
   {}
\Configure{Bigg}
   {}{}
   {}
   {}
>>>







\<plain,fontmath math\><<<
|<big common|>
\:CheckOption{mathml-}     \if:Option 
   |<big mathml-|>
\else
   |<big mathml|>
\fi
>>>

\<big mathml\><<<
\Configure{Biggl}
   {\bgroup
       \Configure{Bigg}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="Biggl"><span class="MathClass-open" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span><span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{Biggr}
   {\bgroup
       \Configure{Bigg}{}{}{}{}%
       \Configure{mathclose}{*}
          {</span><span class="MathClass-close" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
\Configure{Bigl}
   {\bgroup
       \Configure{Big}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="Bigl"><span class="MathClass-open"><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span><span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{Bigr}
   {\bgroup
       \Configure{Big}{}{}{}{}%
       \Configure{mathclose}{*}
          {</span><span class="MathClass-close" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
\Configure{biggl}
   {\bgroup
       \Configure{bigg}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="biggl"><span class="MathClass-open"><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span><span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{biggr}
   {\bgroup
       \Configure{bigg}{}{}{}{}%
       \Configure{mathclose}{*}
          {</span><span class="MathClass-close" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
\Configure{bigl}
   {\bgroup
       \Configure{big}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="bigl"><span class="MathClass-open"><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span><span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{bigr}
   {\bgroup
       \Configure{big}{}{}{}{}%
       \Configure{mathclose}{*}
          {</span><span class="MathClass-close" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
>>>




\<big mathml-\><<<
\Configure{Biggl}
   {\bgroup
       \Configure{Bigg}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="MathClass-open" title="Bigg" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{Biggr}
   {\bgroup
       \Configure{Bigg}{}{}{}{}%
       \Configure{mathclose}{*}
          {<span class="MathClass-close" title="Bigg" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
\Configure{Bigl}
   {\bgroup
       \Configure{Big}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="MathClass-open" title="Big" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{Bigr}
   {\bgroup
       \Configure{Big}{}{}{}{}%
       \Configure{mathclose}{*}
          {<span class="MathClass-close" title="Big" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
\Configure{biggl}
   {\bgroup
       \Configure{bigg}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="MathClass-open" title="bigg" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{biggr}
   {\bgroup
       \Configure{bigg}{}{}{}{}%
       \Configure{mathclose}{*}
          {<span class="MathClass-close" title="bigg" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
\Configure{bigl}
   {\bgroup
       \Configure{big}{}{}{}{}%
       \Configure{mathopen}{*}
          {<span class="MathClass-open" title="big" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathopen}{}{}{}{}}%
   }
   {\egroup}
\Configure{bigr}
   {\bgroup
       \Configure{big}{}{}{}{}%
       \Configure{mathclose}{*}
          {<span class="MathClass-close" title="big" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathclose}{}{}{}{}}%
   }
   {\egroup}
>>>



\<big common\><<<
\Configure{Biggm}
   {\bgroup
       \Configure{Bigg}{}{}{}{}%
       \Configure{mathrel}{*}
          {<span class="MathClass-rel" title="Bigg" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathrel}{}{}{}{}}%
   }
   {\egroup}
\Configure{Bigm}
   {\bgroup
       \Configure{Big}{}{}{}{}%
       \Configure{mathrel}{*}
          {<span class="MathClass-rel" title="Big" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathrel}{}{}{}{}}%
   }
   {\egroup}
\Configure{biggm}
   {\bgroup
       \Configure{bigg}{}{}{}{}%
       \Configure{mathrel}{*}
          {<span class="MathClass-rel" title="bigg" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathrel}{}{}{}{}}%
   }
   {\egroup}
\Configure{bigm}
   {\bgroup
       \Configure{big}{}{}{}{}%
       \Configure{mathrel}{*}
          {<span class="MathClass-rel" title="big" ><BREAK SIZE="small"/>}
          {<BREAK SIZE="small"/></span>}
          {\Configure{mathrel}{}{}{}{}}%
   }
   {\egroup}
>>>

\<plain,latex mathml\><<<
\Configure{mfenced}{\vert}{||}
\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\{}{\string&\#x007B;}}\:temp
\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\}}{\string&\#x007D;}}\:temp
\edef\:temp{\noexpand
   \Configure{mfenced}{\noexpand\lbrace}{\string&\#x007B;}}\:temp
\edef\:temp{\noexpand
   \Configure{mfenced}{\noexpand\rbrace}{\string&\#x007D;}}\:temp
>>>


%%%%%%%%%%%%%
\subsection{Math Inner}
%%%%%%%%%%%%%


\<plain,latex mathml\><<<
\def\mathinner#1{\Tg<span
   class="mathinner">#1\Tg</span>}
>>>





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Limits of Sub- snd Super- Scripts (over/under - end - scripts)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Outline}
%%%%%%%%%%%%%%%%%%%%%%%%%


\<limits sub, sup, subsup\><<<
\Configure{limits}{|<limit scripts|>}
\def\disp:limits{|<limit scripts|>}  
>>>


\<limit scripts\><<<
\let|<restore SUB|>=\:UnDef
\let|<restore SUP|>=\:UnDef
\ifx \:temp\sp |<conf limits SUP|>\else
\ifx \:temp\sb |<conf limits SUB|>\fi\fi
|<conf limits SUBSUP|>%
>>>



%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Simultaneously Sub- and Super- Scripts}
%%%%%%%%%%%%%%%%%%%%%%%%%


\<conf limits SUBSUP\><<<
|<save pre-limits SUBSUP|>%
\Configure{SUBSUP}
   {\ifx |<restore SUB|>\:UnDef\else  |<restore SUB|>\fi
    \ifx |<restore SUP|>\:UnDef\else  |<restore SUP|>\fi
    |<restore pre-limits SUBSUP|>%
    \Send{BACK}
      {|<start limits msubsup base|>}|<msubsup limits sub|>}
   {|<msubsup limits sup|>}
   {|<close limits script|>}
>>>




\<start limits msubsup base\><<<
<msubsup class="limits-msub-msup"><mrow
                 class="limits-mrow-base"\Hnewline>%
>>>

\<msubsup limits sub\><<<
\HCode{</mrow><mrow class="limits-mrow-sub"\Hnewline
   >\add:description{begin-limits-script}{\a:speak:underover}}%
   \trap:base
>>>


\<msubsup limits sup\><<<
\HCode{</mrow><mrow class="limits-mrow-super"\Hnewline
  >\add:description{mid-limits-script}{\b:speak:underover}}\trap:base
>>>


\<close limits script\><<<
\HCode{\add:description{end-limits-script}{\c:speak:underover}%
       </mrow></msubsup\Hnewline>}%
>>>

\<close limits sup\><<<
\HCode{\add:description{end-limits-script}{\c:speak:underover}%
       </mrow></msup\Hnewline>}%
>>>



\<close limits sub\><<<
\HCode{\add:description{end-limits-script}{\c:speak:underover}%
       </mrow></msub\Hnewline>}%
>>>


\<configure jsml-math tex4ht\><<<
\NewConfigure{speak:underover}{3}
\Configure{speak:underover}
   {<BREAK SIZE="small"/>under script<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>over script<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>end scripts<BREAK SIZE="small"/>}
>>>

\<save pre-limits SUBSUP\><<<
\let\pl:SUBSUP=\SUBSUP:
>>>

\<restore pre-limits SUBSUP\><<<
\ifx \pl:SUBSUP\:UnDef \else
   \let\SUBSUP:=\pl:SUBSUP
\fi
>>>

\<limits sub, sup, subsup\><<<
\ifx \a:putSUB\:UnDef \else
   \pend:def\a:putSUB{\ifx \pl:SUBSUP\:UnDef\else 
         \let\SUBSUP:=\pl:SUBSUP
         \let\pl:SUBSUP=\:UnDef
      \fi}%
\fi
\ifx \a:putSUP\:UnDef \else
   \pend:def\a:putSUP{\ifx \pl:SUBSUP\:UnDef\else 
         \let\SUBSUP:=\pl:SUBSUP
         \let\pl:SUBSUP=\:UnDef
      \fi}%
\fi
>>>


%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Superscripts}
%%%%%%%%%%%%%%%%%%%%%%%%%



\<conf limits SUP\><<<
|<save pre-limits SUP|>%
\Configure{SUP}
   {|<open external limits SUP|>\bgroup
     |<restore pre-limits SUBSUP|>%
     |<conf second limits SUP|>\trap:base}  
   {}%
>>>

\<save pre-limits SUP\><<<
\def\pl:SUP{\Configure{SUP}}%
\expandafter\append:def
   \expandafter\pl:SUP\expandafter{\expandafter{\a:SUP}}%
\expandafter\append:def
   \expandafter\pl:SUP\expandafter{\expandafter{\b:SUP}}%
>>>

\<conf second limits SUP\><<<
\Configure{SUP}
   {|<open intermediate limits SUP|>\bgroup
    |<conf third limit SUP|>\trap:base}                 
   {\egroup|<close external limits SUP|>}%
>>>


\<conf third limit SUP\><<<
\Configure{SUP}
   {|<open internal limits SUP|>\bgroup \trap:base}
   {\egroup |<close internal limits SUP|>}% 
>>>


\<open external limits SUP\><<<
\Send{BACK}{|<msup limits base|>}%
|<msup limits script super|>%
>>>








\<msup limits script super\><<<
\HCode{</mrow><mrow class="limits-mrow-super"\Hnewline
    >\add:description{begin-limits-script}{\b:speak:underover}}%
    \trap:base
>>>


\<msup limits base\><<<
<msup 
   class="limits-msub-msup"><mrow
   class="limits-mrow-base"\Hnewline>%
>>>

\<close external limits SUP\><<<
\HCode{\add:description{end-limits-script}{\c:speak:underover}%
       </mrow></msup\Hnewline
                        >}\aftergroup|<restore SUP|>%
>>>

\<restore SUP\><<<
\pl:SUP  >>>

\<open intermediate limits SUP\><<<
\Send{BACK}
{|<start msup base|>}|<msup super|>%
>>>

\<open internal limits SUP\><<<
\Send{BACK}
{|<start msup base|>}|<msup super|>%
>>>

\<close internal limits SUP\><<<
|<close msup|>%
>>>

%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Subscripts}
%%%%%%%%%%%%%%%%%%%%%%%%%



\<conf limits SUB\><<<
|<save pre-limits SUB|>%
\Configure{SUB}
   {|<open external limits SUB|>\bgroup
     |<restore pre-limits SUBSUP|>%
     |<conf second limits SUB|>\trap:base}  
   {}%
>>>

\<save pre-limits SUB\><<<
\def\pl:SUB{\Configure{SUB}}%
\expandafter\append:def
   \expandafter\pl:SUB\expandafter{\expandafter{\a:SUB}}%
\expandafter\append:def
   \expandafter\pl:SUB\expandafter{\expandafter{\b:SUB}}%
>>>

\<conf second limits SUB\><<<
\Configure{SUB}
   {|<open intermediate limits SUB|>\bgroup
    |<conf third limit SUB|>\trap:base}                 
   {\egroup|<close external limits SUB|>}%
>>>


\<conf third limit SUB\><<<
\Configure{SUB}
   {|<open internal limits SUB|>\bgroup \trap:base}
   {\egroup |<close internal limits SUB|>}% 
>>>


\<open external limits SUB\><<<
\Send{BACK}{|<msub limits base|>}%
|<msub limits script sub|>%
>>>



\<msub limits script sub\><<<
\HCode{</mrow><mrow class="limits-mrow-sub"\Hnewline
   >\add:description{begin-limits-script}{\a:speak:underover}}%
   \trap:base
>>>




\<msub limits base\><<<
<msub 
   class="limits-msub-msup"><mrow
   class="limits-mrow-base"\Hnewline>%
>>>



\<close external limits SUB\><<<
\HCode{\add:description{end-limits-script}{\c:speak:underover}%
</mrow></msub\Hnewline >}\aftergroup|<restore SUB|>%
>>>

\<restore SUB\><<<
\pl:SUB >>>

\<open intermediate limits SUB\><<<
\Send{BACK}
{|<start msub base|>}|<msub sub|>%
>>>

\<open internal limits SUB\><<<
\Send{BACK}
{|<start msub base|>}|<msub sub|>%
>>>

\<close internal limits SUB\><<<
|<close msub|>%
>>>






%%%%%%%%%%%%%
\section{On Arrows (over/under - end - scripts)}
%%%%%%%%%%%%%



\<configure jsml-math amsmath\><<<
\renewcommand{\xrightarrow}[2][]{%
   \if :#1:
      \HCode{|<msup limits base|>}%
        \rightarrow
        |<msup limits script super|>#2%
        |<close limits sup|>%
   \else
      \HCode{|<start limits msubsup base|>}%
        \leftarrow
        |<msubsup limits sub|>#1%
        |<msubsup limits sup|>#2%                     
        |<close limits script|>%
   \fi
}
\renewcommand{\xleftarrow}[2][]{%
   \if :#1:
      \HCode{|<msup limits base|>}%
        \leftarrow
        |<msup limits script super|>#2%
        |<close limits sup|>%
   \else
      \HCode{|<start limits msubsup base|>}%
        \leftarrow
        |<msubsup limits sub|>#1%
        |<msubsup limits sup|>#2%                     
        |<close limits script|>%
   \fi
}
>>>




%%%%%%%%%%%%%
\section{On Text (over/under - end - scripts)}
%%%%%%%%%%%%%

\<configure jsml-math amsmath\><<<
\def\overset#1#2{{%
      \HCode{|<msup limits base|>}%
        #2%
        |<msup limits script super|>#1%
        |<close limits sup|>%
}}
\def\underset#1#2{{%
      \HCode{|<msub limits base|>}%
        #2%
        |<msub limits script sub|>#1%
        |<close limits sub|>%
}}
>>>






\<configure jsml-math amsmath\><<<
\def\sideset#1#2#3{{\Tg<mrow class="sideset"\Hnewline
        >{\HCode{}}#1{\HCode{}#3}#2\Tg</mrow>}}
>>>



%%%%%%%%%%%%%%%%%%
\section{Accents}
%%%%%%%%%%%%%%%%%%

\<plain,latex mathml\><<<
\:CheckOption{new-accents}     \if:Option \else
  |<config mathml accents|>
\fi
>>>

\<config mathml accents\><<<
\Configure{accents}
  {\ifmmode \expandafter\mathord\fi
     {|<temp hcode accents|>%
   \ht:special{t4ht@[}\if!#1!x\else#2\fi
   \ht:special{t4ht@]}}}
  {\ifmathml
      \ifmtext |<accent in text mode|>%
      \else    \AccentMath{|<under over accents|>}\fi
   \else       |<accent in text mode|>\fi
  }
>>>



\<temp hcode accents\><<<
\leavevmode 
\if !#1!\ht:special{t4ht@+&{35}x#2;}%
\else \expandafter \ifx\csname U#2#1\endcsname\relax
    \ht:special{t4ht@+&{35}x#2;}%
\else
    \ht:special{t4ht@+&{35}x\csname U#2#1\endcsname;}%
\fi \fi x%
>>>

\<accent in text mode\><<<
\expandafter\ifx \csname :#1:over\endcsname\relax
   \expandafter\ifx \csname :#1:under\endcsname\relax
      \AccentMath{|<under over accents|>}%
   \else #3\csname :#1:under\endcsname \fi
\else #3\csname :#1:over\endcsname \fi
>>>


\<under over accents\><<<
\expandafter\ifx \csname :#1:over\endcsname\relax
  |<under accents|>%
\else \expandafter\ifx \csname :#1:under\endcsname\relax
  |<over accents|>%
\else
  |<both accents|>%
\fi \fi
>>>

\<under accents\><<<
\HCode{<munder\Hnewline 
   accent="true"><mrow\Hnewline><BREAK SIZE="small"/>}%
   #3\HCode{</mrow>}%
      \csname :#1:under\endcsname
   \HCode{</munder>}%
>>>

\<over accents\><<<
\HCode{<mover class="mover-accent">%
       <mrow\Hnewline><BREAK SIZE="small"/>}%
       #3\HCode{</mrow>}%
   \csname prefix:#1:over\endcsname
   \csname :#1:over\endcsname
   \HCode{</mover>}%
>>>

\<both accents\><<<
\HCode{<munderover\Hnewline 
   accent="true"><mrow\Hnewline><BREAK SIZE="small"/>}%
   #3\HCode{</mrow>}%
   \csname :#1:under\endcsname
   \csname :#1:over\endcsname
   \HCode{</munderover>}%
>>>

\<configure jsml-math latex\><<<
\def\:temp#1#2{\expandafter\def\csname prefix:#1:over\endcsname
      {\HCode{\add:description{added-description}{ #2 }}}}
\:temp{vec}{\b:speak:underover}
\:temp{dddot}{\b:speak:underover}
\:temp{ddddot}{\b:speak:underover}
>>>



%%%%%%%%%%%%%%%%%%
\chapter{Tables}
%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%
\section{Tabular}
%%%%%%%%%%%%%%%%%%

\<configure jsml latex\><<<
|<array and tabular|>
>>>

\<configure jsml array\><<<
|<array and tabular|>
>>>

\<configure tabular noalign\><<<
\Configure{noalign}%
  {\f:tabular\d:tabular \HCode{<tr><td colspan="\ar:cnt">}}
  {\HCode{</td></tr>}\pend:def\TableNo{0}\c:tabular\e:tabular}%
>>>


\<configure clear noalign\><<<
\Configure{noalign}{}{}%
>>>


\<inline comment\><<<
\ifvmode\else\HCode{<!--tex4ht:inline-->}\fi
>>>



\<array and tabular\><<<
\HAssign\TableNo=0
\Configure{tabular}
   {\ifvmode \IgnorePar\fi \EndP 
    \HCode{<PARA><table class="tabular" >}%
     |<begin tabular note|>}
   {\Tag{tabular-\TableNo}{\hrow:s}%
    |<end tabular note|>\HCode{</table></PARA>}}
   {\HCode{<tr><!--row \HRow-->}%
    |<begin table row note|>}
   {\xdef\hrow:s{\HRow}|<end table row note|>\HCode{</tr>}}
   {\HCode{<td><!--entry \HRow-\HCol\ifnum 
          \HMultispan>1 \, span \HMultispan\fi-->}%
      |<begin table cell note|>\HCode{<div>}\SaveEndP 
      \PushStack\Table:Stck\TableNo
      \par  \ShowPar}
   {\PopStack\Table:Stck\TableNo
    \IgnorePar \EndP \ifvmode \IgnorePar \fi \EndP
    \HCode{</div>}|<end table cell note|>%
    \HCode{</td>\Hnewline}\RecallEndP }
>>>





\<begin tabular note\><<<
\HCode{%
   <BREAK SIZE="small"/><PROS PITCH="-5" >%
   \add:vdescription{begin-end}{begin table with 
       \ifTag{tabular-\TableNo}{\LikeRef{tabular-\TableNo}}{}
      rows and \ar:cnt columns}%
   </PROS>
}%
>>>

\<end tabular note\><<<
\HCode{|<show input line no|>%
   <BREAK SIZE="small"/>%
   <PROS PITCH="-5" >%
   \add:vdescription{begin-end}{end table}%
   </PROS><BREAK SIZE="small"/>%
}%
>>>

\<begin table row note\><<<
\HCode{%
   <BREAK SIZE="medium"/><PROS PITCH="-5" >%
   \add:vdescription{begin-end}{|<ord row|> row}%
   </PROS><BREAK SIZE="medium"/>%
}%
>>>


\<begin table cell note\><<<
\HCode{%
  <BREAK SIZE="medium"/>%
  \ifnum \HMultispan>1
    <PROS PITCH="-5" >%
    \add:vdescription{added-description}{|<ord col|> cell 
       spans \HMultispan \space columns}%
    </PROS><BREAK SIZE="medium"/>%
  \else
    \ifnum \HCol>1 
       <PROS PITCH="-5" >%
       \add:vdescription{added-description}{|<ord col|> cell}%
       </PROS><BREAK SIZE="medium"/>%
    \fi
  \fi
}%
>>>

\<end table cell note\><<<
>>>


%%%%%%%%%%%%%
\section{Numbering}
%%%%%%%%%%%%%


     
\<ord row\><<<
<span class="ord-row">\ord:pos{\HRow}</span>%
>>>

\<ord col\><<<
\ord:pos{\HCol}%
>>>


\<configure jsml tex4ht\><<<
\def\ord:pos#1{%
   \ifcase #1
   \or first
   \or second
   \or third
   \or fourth
   \or fifth
   \or sixth
   \or seventh
   \or eighth
   \or nineth
   \else #1th
   \fi
}
>>>





\<configure jsml tex4ht\><<<
\HAssign\HRow=0
>>>

\<advance table number\><<<
\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1 
\global\let\TableNo=\Next:TableNo 
>>>

\<return to prev table number\><<<
\PopStack\Table:Stck\TableNo 
>>>







\<new row counter\><<<
\PushStack\Row:Stck\HRow     \HAssign\HRow=0\relax
>>>

\<return to prev row counter\><<<
\PopStack\Row:Stck\HRow
>>>

\<new col counter\><<<
\PushStack\Col:Stck\Prev:Col
>>>

\<return to prev col counter\><<<
\PopStack\Col:Stck\Prev:Col
>>>




%%%%%%%%%%%%%
\section{Aligned}
%%%%%%%%%%%%%



\<configure jsml-math amsmath\><<<
\Configure{aligned}  
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<PARA><mtable class="aligned">}%
    \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}}
   {\Tag{aligned-\TableNo}{\hrow:s}%
    \HCode{|<show input line no|>%
           \add:vdescription{end-array}{\b:speak:aligned}}%
    \ifvmode \IgnorePar\fi 
    \HCode{</mtable></PARA>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>}\c:speak:aligned}%
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}}%
   {\HCode{<mtd>}%
    \e:speak:aligned \HCode{<div>}}
   {\HCode{</div>}\f:speak:aligned
    \HCode{</mtd>\Hnewline}}
>>>

\<configure jsml-math amsmath\><<<
\NewConfigure{speak:aligned}{6}
\Configure{speak:aligned}
   {begin 
       \ifTag{aligned-\TableNo}{\LikeRef{aligned-\TableNo}}{}
       aligned equations}
   {end  equations}
   {|<begin table row note|>}
   {|<end table row note|>}
   {|<begin table cell note|>}
   {|<end table cell note|>}
>>>



\<configure jsml-math amsmath\><<<
\Configure{alignedat}  
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<PARA><mtable class="aligned">}%
    \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}}
   {\Tag{aligned-\TableNo}{\hrow:s}%
    \HCode{|<show input line no|>%
           \add:vdescription{end-array}{\b:speak:aligned}}%
    \ifvmode \IgnorePar\fi \HCode{</mtable></PARA>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>}\c:speak:aligned}%
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}}%
   {\HCode{<mtd>}%
    \e:speak:aligned \HCode{<div>}}
   {\HCode{</div>}\f:speak:aligned
    \HCode{</mtd>\Hnewline}}
>>>


%%%%%%%%%%%%%%%%%%%%
\section{Cases}
%%%%%%%%%%%%%%%%%

\<plain,latex mathml\><<<
\Configure{cases}
    {}{} {\HCode{<PARA><mtable>}}{\HCode{</mtable></PARA>}}
    {\Tg<mtr>}{\Tg</mtr>}
    {\Tg<mtd class="cases">}{\Tg</mtd>}
>>>


\<configure jsml-math amsmath\><<<
\ConfigureEnv{cases}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<div class="cases">}%
    \bgroup
       |<save left/right config|>%
       |<config amsmath cases|>%
       |<cases left/right|>%
   }
   {\egroup\HCode{</div>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {}{}
>>>






\<config amsmath cases\><<<
\Configure{array} 
   {\HCode{<mtable class="cases">%
           |<start cases note|>}} %
   {\Tag{cases-\TableNo}{\HRow}%
    \HCode{|<show input line no|>%
           |<end cases note|>}%
    \ifvmode \IgnorePar\fi \Tg</mtable>}
   {\HCode{<mtr>%
           |<next case note|>}}
   {\HCode{</mtr>}}%
   {\HCode{<mtd  class="sub-case-\HCol" >%
           <BREAK SIZE="\ifnum \HCol>1 medium\else 
                                        small\fi"/>}%
    \bgroup
       |<config array|>%
       |<recall left/right config|>%
   }
   {\egroup \HCode{</mtd>\Hnewline}}
>>>

\<start cases note\><<<
\add:vdescription{begin-array}{<BREAK SIZE="small"/>begin 
      \ifTag{cases-\TableNo}{\LikeRef{cases-\TableNo}}{}  
      cases<BREAK SIZE="small"/>}%
>>>

\<end cases note\><<<
\add:vdescription{end-array}
   {<BREAK SIZE="small"/>end cases<BREAK SIZE="small"/>}
>>>

\<next case note\><<<
\add:vdescription{begin-end}
   {<BREAK SIZE="small"/>|<ord row|> case}%
>>>


\<cases left/right\><<<
\Configure{left}
   {}
   {\bgroup}
\Configure{right}
   {\egroup}
   {}
>>>


\<save left/right config\><<<
\let\sv:a:left=\a:left
\let\sv:b:left=\b:left
\let\sv:a:right=\a:right
\let\sv:b:right=\b:right
>>>


\<recall left/right config\><<<
\let\a:left=\sv:a:left
\let\b:left=\sv:b:left
\let\a:right=\sv:a:right
\let\b:right=\sv:b:right
>>>




%%%%%%%%%%%%%%%%%%%%
\section{matrix}
%%%%%%%%%%%%%%%%%%%%

\<plain,latex mathml\><<<
\Configure{matrix}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<PARA><mtable class="array">}%
    \HCode{\add:vdescription{begin-array}{\a:speak:array}}}
   {\Tag{array-\TableNo}{\hrow:s}%
    \HCode{|<show input line no|>%
           \add:vdescription{end-array}{\b:speak:array}}%
    \ifvmode \IgnorePar\fi \HCode{</mtable></PARA>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>}\c:speak:array}%
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}}%
   {\HCode{<mtd>}%
    \e:speak:array\HCode{<div>}}
   {\HCode{</div>}\f:speak:array
    \HCode{</mtd>\Hnewline}}
>>>

\<mtd matrix\><<<
\HCode{<mtd\Hnewline class="matrix" 
   \ifnum 1<\HMultispan columnspan="\HMultispan"\fi}%
   \halignTD    \HCode{>}%
>>>



The grouping below is handle the case that the matrix is a base of an exponent.


\<plain,latex mathml\><<<
\Configure{pmatrix}
  {\bgroup\HCode{<PARA><div class="pmatrix"><BREAK SIZE="small"/>}}
  {\HCode{<BREAK SIZE="small"/></div></PARA>}\egroup}
>>>




\<plain,latex mathml\><<<
\NewConfigure{speak:array}{6}
\Configure{speak:array}
   {<BREAK SIZE="small"/>begin array with
       \ifTag{array-\TableNo}{\LikeRef{array-\TableNo}}{}
       rows<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>end array<BREAK SIZE="small"/>}
   {|<begin table row note|>}
   {|<end table row note|>}
   {|<begin table cell note|>}
   {|<end table cell note|>}
>>>



%%%%%%%%%%%%%%%%%%%%%%%%%
\section{EqAlign}
%%%%%%%%%%%%%%%%%%%%%%%%%

\<configure jsml plain\><<<
|<TABLE eqalign shared Configure 4.0t|>
>>>
\<TABLE eqalign shared Configure 4.0t\><<<
\Configure{eqalign}
   {\:xhtml{\IgnorePar\EndP}\HCode
      {<div class="eqalign"><table class="eqalign">}}
   {\HCode{</table></div>}}
   {\HCode{<tr \Hnewline class="eqalign"
         valign="middle">}}{\IgnorePar\HCode{</tr>}}
   {\HCode{<td align="\ifnum \HCol=2
         left\else right\fi"\Hnewline  class="eqalign\HCol" 
         style="white-space:nowrap;">}}
   {\HCode{</td>}}
\def\:eqalign:{\Configure{noalign}
  {\HCode{<tr><td class="noalign" colspan="2">}}%
  {\HCode{</td></tr>}}}

>>>





\<TABLE eqalign shared Configure 4.0t\><<<
\Configure{eqalignno}
   {\:xhtml{\IgnorePar\EndP}\HCode{<table class="eqalignno">}}
   {\HCode{</table>}}
   {\HCode{<tr\Hnewline class="eqalignno">}}{\IgnorePar\HCode{</tr>}}
   {\HCode{\ifnum \HCol=3 <td\Hnewline width="10"
           class="eqalignno-sp"></td>\fi
           <td align="\ifnum \HCol=2 left\else right\fi"\Hnewline
           class="eqalignno\HCol">}}
   {\HCode{</td>}}
\def\:eqalignno:{\Configure{noalign}
  {\HCode{<tr><td class="noalign" colspan="2">}}%
  {\HCode{</td></tr>}}}

>>>

\<TABLE eqalign shared Configure 4.0t\><<<
\Configure{leqalignno}
   {\:xhtml{\IgnorePar\EndP}\HCode{<table class="leqalignno">}}
   {\HCode{</table>}}
   {\HCode{<tr \Hnewline 
           class="leqalignno">}}{\IgnorePar\HCode{</tr>}}
   {\HCode{\ifnum \HCol=3 <td\Hnewline width="30"
           class="eqalignno-sp"></td>\fi
           <td align="\ifnum \HCol=2 left\else right\fi"\Hnewline
           class="leqalignno\HCol">}}
   {\HCode{</td>}}
\def\:leqalignno:{\Configure{noalign}
  {\HCode{<tr><td class="noalign" colspan="2">}}%
  {\HCode{</td></tr>}}}
>>>



\<configure jsml-math latex\><<<
|<config array|>
>>>

\<configure jsml-math array\><<<
|<config array|>
>>>


\<config array\><<<
\Configure{array} 
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<PARA><mtable class="array">}%
    \HCode{\add:vdescription{begin-array}{\a:speak:array}}}
   {\Tag{array-\TableNo}{\hrow:s}%
    \HCode{|<show input line no|>%
           \add:vdescription{end-array}{\b:speak:array}}%
    \ifvmode \IgnorePar\fi
    |<insert Clr|>\HCode{</mtable></PARA>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>}\c:speak:array}%
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}}%
   {\HCode{<mtd>}%
    \e:speak:array\HCode{<div>}}
   {\HCode{</div>}\f:speak:array
    \HCode{</mtd>\Hnewline}}
\ConfigureEnv{array}
   {\bgroup\Configure{$}{}{}{}} 
   {\egroup}
   {}{}
>>>






\<begin array row note\><<<
\HCode{\add:vdescription{begin-end}{Row \HRow}}%
>>>




\<configure jsml-math latex\><<<
\ConfigureEnv{array}
   {\PushStack\Col:Marg\AllColMargins
    \bgroup\Configure{$}{}{}{}} 
   {\egroup \PopStack\Col:Marg\AllColMargins}
   {}{}
>>>

\<configure jsml-math array\><<<
\ConfigureEnv{array}
   {\PushStack\Col:Marg\AllColMargins
    \bgroup\Configure{$}{}{}{}} 
   {\egroup \PopStack\Col:Marg\AllColMargins}
   {}{}
>>>






\<insert Clr\><<<
\expandafter\tmp:toks\expandafter{\Clr}%
\HCode{<!--\the\tmp:toks-->}%
>>>





\<mathml latex\><<<
\def\:MM{m}
\Configure{HBorder}
   {<mtr\Hnewline class="hline">} 
   {|<mml hline|>}
   {</mtr>}
   {<mtr\Hnewline class="cline">}
   {<mtd></mtd>}
   {|<mml hline|>}
   {</mtr>}
   {<mtr\Hnewline class="vspace" style="font-size:\HBorderspace">}
   {<mtd\Hnewline></mtd>}
   {</mtr>}
>>>

\<configure jsml-math latex\><<<
\def\:MM{\ifmathml m\fi}
\Configure{HBorder}
   {<\:MM tr\Hnewline 
       \ifmathml \expandafterclass\else class\fi="hline">} 
   {\ifmathml|<mml hline|>\else
            <td><hr\xml:empty></td>\fi} 
   {</\:MM tr>}
   {<\:MM tr\Hnewline
       \ifmathml \expandafterclass\else class\fi ="cline">}
   {<\:MM td></\:MM td>}
   {\ifmathml|<mml hline|>\else
            <td><hr\xml:empty></td>\fi}
   {</\:MM tr>}
   {<\:MM tr\Hnewline
         \ifmathml \expandafterclass\else  class\fi="vspace"
         style="font-size:\HBorderspace">}
   {<\:MM td\Hnewline>\ifmathml\else\string&\#x00A0;\fi
      </\:MM td>}
   {</\:MM tr>}
\Configure{halign}
   {\EndP\halignTB{halign}}   \t:HA
   \R:HA\r:HA\D:HA\d:HA
>>>



\<mml hline\><<<
<mtd><mo> \string&\#x0332; </mo></mtd>
>>>

%%%%%%%%%%%%%
\section{Small Matrix}
%%%%%%%%%%%%%



\<configure jsml-math latex\><<<
|<config multicolumn|>
>>>


\<configure jsml-math array\><<<
|<config multicolumn|>
>>>


\<config multicolumn\><<<
\Configure{multicolumn}
   {\let\sv:VBorder\VBorder
    \let\VBorder\empty
    \Configure{VBorder}{}{}{}{}%
   }
   {\let\VBorder\sv:VBorder}   
   {\ifmmode \else
       \ifvmode\IgnorePar\fi
    \fi   \HCode{<div class="multicolumn" title="\HMultispan">}}
   {\ifmmode \else
       \ifvmode\IgnorePar\fi \EndP\fi \HCode{</div>} }
\def\gob:sp#1{#1}
>>>








%%%%%%%%%%%%%%%%%%%%
\section{TeX EqAlign}
%%%%%%%%%%%%%%%%%%%%


\<mathml plain\><<<
\Configure{eqalignno}
   {\HCode{<PARA><mtable class="eqalignno">}}
   {\HCode{</mtable></PARA>}}
   {\HCode{<mtr\Hnewline class="eqalignno">}}
   {\HCode{</mtr>}}
   {\HCode{<mtd \Hnewline class="eqalignno-\HCol">}}
   {\HCode{</mtd>}}
\def\:eqalignno:{\Configure{noalign}
  {\HCode{<mtr><mtd class="noalign" colspan="2">}}%
  {\HCode{</mtd></mtr>}}}
>>>


\<mathml plain\><<<
\Configure{leqalignno}
   {\HCode{<PARA><mtable class="leqalignno">}}
   {\HCode{</mtable></PARA>}}
   {\HCode{<mtr\Hnewline class="leqalignno">}}
   {\HCode{</mtr>}}
   {\HCode{<mtd \Hnewline class="leqalignno-\HCol">}}
   {\HCode{</mtd>}}
\def\:leqalignno:{\Configure{noalign}
  {\HCode{<mtr><mtd class="noalign" colspan="2">}}%
  {\HCode{</mtd></mtr>}}}
>>>



%%%%%%%%%%%%%%%%%%
\section{halign}
%%%%%%%%%%%%%%%%%%


\<configure jsml tex4ht2\><<<
\Configure{embedded-halign}{}{}
>>>


%%%%%%%%%%%%%%%%%%
\chapter{To Be Inserted}
%%%%%%%%%%%%%%%%%%



\<addr for Tag and Ref of Sec\><<<
\xdef\:cursec{|<section html addr|>}%
>>>

%%%%%%%%%%%%%%%%%%
\section{HTML Head}
%%%%%%%%%%%%%%%%%%

\<configure jsml tex4ht\><<<
\let\Link\M:Link        \let\M:Link\:UnDef
\let\EndLink\M:EndLink  \let\M:EndLink\:UnDef
>>>


%%%%%%%%%%%%%%%%%%
\section{Bibliography and Equation References}
%%%%%%%%%%%%%%%%%%



\<configure jsml latex\><<<
\def\@cite#1#2{%
   \HCode{\add:description{added-description}{\a:speak:citation}}%
   {#1\if@tempswa , #2\fi}}
\def\@biblabel#1{%   
   \HCode{<BREAK SIZE="small" />}%
   \HCode{\add:description{added-description}{\a:speak:bib}}%
   #1\HCode{<BREAK SIZE="small" />}}
>>>

\<configure jsml latex\><<<
\NewConfigure{speak:citation}{1}
\Configure{speak:citation}{citation }
\NewConfigure{speak:bib}{1}
\Configure{speak:bib}{Bibliography entry}>>>




\<configure jsml-math amsmath\><<<
\Configure{eqref}
   {\bgroup\let\tagform@\empty
    \HCode{<span class="eqref" >
       \add:description{added-description}{\a:speak:eqref}}}
   {\HCode{</span>}\egroup}
>>>

\<configure jsml-math amsmath\><<<
\NewConfigure{speak:eqref}{1}
\Configure{speak:eqref}{ equation }
>>>











%%%%%%%%%%%%%%%%%%
\section{Cross Links}
%%%%%%%%%%%%%%%%%%


\<configure jsml tex4ht\><<<
\Configure{crosslinks}{ }{ }{next}{previous}{previous-tail}{front}{tail}{up}
\Configure{crosslinks+}
   {\IgnorePar\EndP\HCode{|<show input line no|>%
                          <div class="crosslinks"><p class="noindent">
        \add:vdescription{begin-end}{\a:speak:crosslinks}}}
   {\HCode{\add:vdescription{begin-end}{\b:speak:crosslinks}
           </p></div>}\par\ShowPar}
   {\IgnorePar\EndP\HCode{|<show input line no|>%
                          <div class="crosslinks"><p class="noindent">
        \add:vdescription{begin-end}{\a:speak:crosslinks}}}
   {\HCode{\add:vdescription{begin-end}{\b:speak:crosslinks}
           </p></div>}\par\ShowPar}
\:CheckOption{next}     \if:Option   
   \Configure{next+}
     {\ShowPar\par\noindent \HCode{<span class="next">
      \add:description{added-description}{\c:speak:crosslinks}}}
     {\HCode{</span>}}
\fi
>>>


\<configure jsml tex4ht\><<<
\NewConfigure{speak:crosslinks}{3}
\Configure{speak:crosslinks}
   {Navigation links}
   {End navigation links}
   {Navigation link}
>>>





%%%%%%%%%%%%%%%%%%
\section{Sections}
%%%%%%%%%%%%%%%%%%


\<latex shared section config\><<<
\ConfigureMark{section}
   {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble
    \else
       \HCode{<span class="titlemark">\add:description{added-description}
                              {\a:speak:section}}\@seccntformat{section}%
       \HCode{</span>}\fi }
\ConfigureMark{subsection}
   {\ifnum \c:secnumdepth>\c@secnumdepth  \expandafter\:gobble
    \else 
       \HCode{<span class="titlemark">\add:description{added-description}
                              {\a:speak:subsection}}\@seccntformat{subsection}%
       \HCode{</span>}\fi }
|<latex speak section|>
>>>



\<ams art,proc,book div\><<<
\ConfigureMark{subsection}
  {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble
    \else
       \HCode{<span class="titlemark">%
             \add:description{added-description}
               {\a:speak:section}}\@ifundefined{sectionname}{}{%
          \ignorespaces\sectionname\space}%
          \@seccntformat{section}%
       \HCode{</span>}\fi }
|<latex speak section|>
>>>



\<latex speak section\><<<
\NewConfigure{speak:section}{1}
\Configure{speak:section}{section}
\NewConfigure{speak:subsection}{1}
\Configure{speak:subsection}{subsection}
>>>















%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{The equation Environment}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{LaTeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\<configure jsml-math latex\><<<
\Configure{equation}
  {\IgnorePar|<inline end-par comment|>\EndP
   |<advance table number|>%
   \HCode{<div class="display-math">%
      \add:description{begin-math}{\a:speak:equation}%
      <div class="equation">}\IgnorePar
     |<math display in equation|>}
  {\ifvmode \IgnorePar\fi\EndP
   \HCode{</div>}%
   \let\@eqnnum\empty
  }
  {\HCode{%
       \add:description{end-math}{\b:speak:equation}%
      </div>}%
   \Tag{eq-\TableNo-num}{\theequation}%
   |<try inline par|>}
>>>



\<configure jsml-math latex\><<<
\NewConfigure{speak:equation}{2}
\Configure{speak:equation}
   {<BREAK SIZE="medium"/>begin equation 
         \ifTag{eq-\TableNo-num}{\LikeRef{eq-\TableNo-num}}{}%
    <BREAK SIZE="small"/>
   }
   {<BREAK SIZE="small"/>end equation \theequation
    <BREAK SIZE="medium"/>}
>>>



\<inline end-par comment\><<<
\ifvmode\else \HCode{<!--tex4ht:inline-->}\fi
>>>



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{AmsMath}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%






\<configure jsml-math amsmath\><<<
\ifx \mathdisplay@@pop\:UnDef
   \ifx \emdf@La\:UnDef
      |<amsmath html-mml pre 2000|>
   \else
      |<amsmath html-mml jan 2000|>
   \fi
\else
   |<amsmath html-mml july 2000|>
\fi
>>>


\<amsmath html-mml july 2000\><<<
\Configure{equation}
  {\ifvmode \IgnorePar\fi\EndP
   |<advance table number|>%
   \HCode{<div class="display-math">%
      \add:description{begin-math}{\a:speak:equation}%
   <div class="equation">}%
   |<amsmath equation july 2000|>%
   |<math display in equation|>%
  }
  {\ifvmode \IgnorePar\fi\EndP
   \HCode{</div>}%
   \let\@eqnnum\empty
  }
  {\ifvmode \IgnorePar\fi\EndP
    \HCode{%
       \add:description{end-math}{\b:speak:equation}%
       </div>}%
    \Tag{eq-\TableNo-num}{\theequation}%
    |<return to prev table number|>%
    \ShowPar\IgnoreIndent\par}
>>>



\<amsmath html-mml july 2000\><<<
\Configure{equation*}
  {\ifvmode \IgnorePar\fi\EndP
   |<advance table number|>%
   \HCode{<div class="display-math">%
      \add:description{begin-math}{\csname 
                               a:speak:equation*\endcsname}}%
   |<amsmath equation-star july 2000|>%
   |<math display in equation|>%
  }
  {\ifvmode \IgnorePar\fi\EndP 
   \HCode{\add:description{end-math}{\csname 
                         b:speak:equation*\endcsname}</div>}%
   |<return to prev table number|>%
   \ShowPar\IgnoreIndent\par}
>>>


\<amsmath html-mml july 2000\><<<
\Configure{speak:equation}
   {<BREAK SIZE="medium"/>begin equation 
         \ifTag{eq-\TableNo-num}{\LikeRef{eq-\TableNo-num}}{}%
    <BREAK SIZE="small"/>
   }
   {<BREAK SIZE="small"/>end equation 
                     \theequation<BREAK SIZE="medium"/>}
\NewConfigure{speak:equation*}{2}
\Configure{speak:equation*}
   {<BREAK SIZE="medium"/>begin equation<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>end equation<BREAK SIZE="medium"/>}
>>>



\<amsmath equation july 2000\><<<
\Configure{gather}
     {\HCode{<div\Hnewline class="equation"><div
                                       class="gather">}\IgnorePar 
         |<math display in equation|>}
     {\HCode{</div></div>}}
     {}
     {}
     {\ifnum\HCol=2 \IgnorePar
         \HCode{</div><div>}\fi }
     {}
>>>


\<amsmath equation-star july 2000\><<<
\Configure{gather*}
     {\HCode{<div\Hnewline class="equation-star"><div
                                  class="gather-star">}\IgnorePar 
         |<math display in equation|>}
     {\HCode{</div></div>}}
     {}
     {}
     {\ifnum\HCol=2 \IgnorePar
         \HCode{</div><div>}\fi }
     {}
>>>


\<math display in equation\><<<
\Configure{$$}
   {\Configure{@math}{|<block display|>%
                       class="equation"}\IgnorePar\EndP\DviMath}
   {\EndDviMath\EndP}
   {\DisplayMathtrue}%
>>>











\<configure html-mml amsmath\><<<
\Configure{@begin}
  {split}
  {\let\tagform@=\:gobble }
>>>





\<configure jsml-math amsmath\><<<
\Configure{split}
   {|<advance table number|>%
    \HCode{<mtable class="split">|<start split note|>}}
   {\ifvmode\IgnorePar\fi 
    \Tag{split-\TableNo}{\HRow:s}%      
    \HCode{|<end split note|></mtable>}%
    |<return to prev table number|>}
   {\HCode{<mtr\Hnewline>}%
    \xdef\HRow:s{\HRow}%
   } 
   {\HCode{</mtr>}}
   {\HCode{<mtd\Hnewline class="split-side" 
                         title="implicit-baseline" >%
           |<split note sub eq note|>}%
   }
   {\HCode{</mtd>}}
>>>


\<start split note\><<<
\add:vdescription{begin-array}{<BREAK SIZE="medium"/>begin 
    \ifTag{split-\TableNo}{\LikeRef{split-\TableNo}}{}
    sub equations<BREAK SIZE="small"/>}%
>>>


\<end split note\><<<
\add:vdescription{end-array}{<BREAK SIZE="small"/>end sub equations<BREAK SIZE="medium"/>}%
>>>   

\<split note sub eq note\><<<
\add:vdescription{begin-end}{<BREAK SIZE="small"/>%
  \ifnum \HCol=1 left \else right  \fi
  |<ord row|> sub equation<BREAK SIZE="small"/>}%
>>>

\<configure jsml-math amsmath\><<<
\ConfigureEnv{multline}
   {\bgroup |<math display in equation|>}
   {\egroup}
   {}{}  
\ConfigureEnv{multline*}
   {\bgroup |<math display in equation|>}
   {\egroup}
   {}{}  
>>>

\<configure jsml-math amsmath\><<<
\Configure{multline}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<div\Hnewline  class="display-math">%
    |<multline begin note|>%
    <mtable>}}
   {\Tag{multline-\TableNo}{\hrow:s}%
    \HCode{</mtable>|<multline end note|></div>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr><mtd\Hnewline class="multline-1">%
    |<multline row note|>}}
   {\xdef\hrow:s{\HRow}\HCode{</mtd></mtr>}} 
   {\HCode{</mtd><mtd class="multline-2">}} 
   {}
\Configure{multline-num}
   {\Tag{multline-\TableNo-num}{\theequation}\let\tagform@\:gobble}
   {}
>>>


\<configure jsml-math amsmath\><<<
\Configure{multline*}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<div\Hnewline class="display-math">%
           <mtable class="multline-star">%
        |<multline-star begin note|>}}
   {\Tag{multline-\TableNo}{\hrow:s}%
    \HCode{|<multline-star end note|></mtable></div>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr\Hnewline><mtd>%
            |<multline row note|>}} 
   {\xdef\hrow:s{\HRow}\HCode{</mtd></mtr>}} 
>>>





\<multline begin note\><<<
\add:vdescription{begin-math}{%
   <BREAK SIZE="medium"/>%
   begin equation 
   \ifTag{multline-\TableNo-num}{\LikeRef{multline-\TableNo-num}}{}
   with
   \ifTag{multline-\TableNo}{\LikeRef{multline-\TableNo}}{}
   lines<BREAK SIZE="small"/>}%
<div class="multline">%
>>>

\<multline-star begin note\><<<
\add:vdescription{begin-math}{%
   <BREAK SIZE="medium"/>%
   begin equation with
   \ifTag{multline-\TableNo}{\LikeRef{multline-\TableNo}}{}
   lines<BREAK SIZE="small"/>}%   
<div class="multline-star">%
>>>


\<multline end note\><<<
</div>%
\add:vdescription{end-math}{end equation
   <BREAK SIZE="small"/>%
   \ifTag{multline-\TableNo-num}{\LikeRef
                               {multline-\TableNo-num}}{}%
   <BREAK SIZE="medium"/>%
}%
>>>          

\<multline-star end note\><<<
</div>%
\add:vdescription{end-math}{%
   <BREAK SIZE="small"/>end equation<BREAK SIZE="medium"/>}%
>>>          


\<multline row note\><<<
\add:vdescription{begin-end}{%
   <BREAK SIZE="small"/>|<ord row|> line<BREAK SIZE="small"/>}%
>>>

\<advance multline count\><<<
\HAdvance\HRow by 1
>>>




\<configure jsml-math amsmath\><<<
\ConfigureEnv{gather}
   {\bgroup |<math display in equation|>}
   {\egroup}
   {}{}  
\ConfigureEnv{gather*}
   {\bgroup |<math display in equation|>}
   {\egroup}
   {}{}  
>>>



\<configure jsml-math amsmath\><<<
\Configure{gather}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<div\Hnewline class="display-math">%
           |<begin gather note|>%
       <mtable class="gather">%
   }}
   {\HCode{</mtable>|<end gather note|>%
           </div>}%
    \Tag{gather-\TableNo}{\hrow:s}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>%
    |<row gather note|>%
   }}
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}} 
   {\HCode{\Hnewline<mtd |<gather td class|> >}%
    \ifnum \HCol>1 \let\tagform@\:gobble \fi
   } 
   {\HCode{</mtd>}}
>>>

\<begin gather note\><<<
\add:vdescription{begin-math}{<BREAK SIZE="small"/>begin group of
    \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{}
    equations<BREAK SIZE="small"/>}%
>>>

\<end gather note\><<<
\add:vdescription{end-math}{<BREAK SIZE="small"/>end equations<BREAK SIZE="small"/>}%
>>>

\<row gather note\><<<
\add:vdescription{begin-end}{<BREAK SIZE="small"/>|<ord row|> equation<BREAK SIZE="small"/>}%
>>>


\<configure jsml-math amsmath\><<<
\Configure{gather*}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<div\Hnewline class="display-math">%
           |<start gather star note|>%
         <mtable class="gather-star">%
    }}
   {\HCode{</mtable>|<end gather star note|>%
           </div>}%
    \Tag{gather-\TableNo}{\hrow:s}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>%
    |<line gather star note|>%
   }}
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}} 
   {\HCode{\Hnewline<mtd |<gather td class|> >}}
   {\HCode{</mtd>}}
>>>

\<start gather star note\><<<
\add:vdescription{begin-math}{<BREAK SIZE="small"/>begin group of
  \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{}
  equations<BREAK SIZE="small"/>}%
>>>


\<line gather star note\><<<
\add:vdescription{begin-math}{%
   <BREAK SIZE="small"/>|<ord row|> equation<BREAK SIZE="small"/>}%
>>>





\<end gather star note\><<<
\add:vdescription{end-math}{%
   <BREAK SIZE="small"/>end equations<BREAK SIZE="small"/>}%
>>>

<BREAK SIZE="small"/>

\<configure jsml-math amsmath\><<<
\Configure{gathered}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<div\Hnewline class="display-math">%
           |<start gathered note|>%
       <mtable class="gather">%
   }}
   {\HCode{</mtable>|<end gathered note|>%
           </div>}%
    \Tag{gather-\TableNo}{\hrow:s}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>%
    |<start gathered row|>%
   }}
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}} 
   {\HCode{\Hnewline<mtd |<gather td class|> >}%
    \ifnum \HCol>1 \let\tagform@\:gobble \fi
   } 
   {\HCode{</mtd>}}
>>>


\<start gathered note\><<<
\add:vdescription{begin-math}{<BREAK SIZE="small"/>begin group of
   \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{}
   equations<BREAK SIZE="small"/>}
>>>



\<end gathered note\><<<
\add:vdescription{end-math}{%
   <BREAK SIZE="small"/>end equations<BREAK SIZE="small"/>}%
>>>


\<start gathered row\><<<
\add:vdescription{begin-end}{%
   <BREAK SIZE="small"/>|<ord row|> equation<BREAK SIZE="small"/>}%
>>>


\<gather td class\><<< 
\ifnum \HCol=1   class="col-\HCol"
\else            class="content-less" title="col-\HCol"
\fi
>>>


\<configure jsml-math amsmath\><<<
\Configure{subarray}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<mtable class="subarray\if c\Hlcr-c\fi">%
       \add:vdescription{begin-array}{\a:speak:subarray}%
    }}
   {\HCode{\add:vdescription{end-array}{\b:speak:subarray}%
           </mtable>}%
    \Tag{subarray-\TableNo}{\hrow:s}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr><mtd>%
    \add:vdescription{begin-end}{\c:speak:subarray}%
   }} 
   {\xdef\hrow:s{\HRow}\HCode{</mtd></mtr>}}
>>>

\<configure jsml-math amsmath\><<<
\NewConfigure{speak:subarray}{3}
|<config speak:subarray|>
>>>

\<config speak:subarray\><<<
\Configure{speak:subarray}
   {<BREAK SIZE="small"/>begin sub array with
         \ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{}
         rows<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>end sub array<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>|<ord row|> row<BREAK SIZE="small"/>}
>>>












\<configure jsml-math amsmath\><<<
\Configure{substack}
   {\bgroup
    \Configure{speak:subarray}
      {<BREAK SIZE="small"/>begin sub stack with
            \ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{}
            entries<BREAK SIZE="small"/>}
      {<BREAK SIZE="small"/>end sub stack<BREAK SIZE="small"/>}
      {<BREAK SIZE="small"/>|<ord row|>
             entry<BREAK SIZE="small"/>}
   }
   {\egroup} 
>>>















\<configure jsml-math amsmath\><<<
\Configure{smallmatrix}
   {|<advance table number|>%
    |<new row counter|>%
    \HCode{<PARA><mtable class="smallmatrix">}%
    \HCode{\add:vdescription{begin-array}{\a:speak:smallmatrix}}}
   {\Tag{smallmatrix-\TableNo}{\hrow:s}%
    \HCode{|<show input line no|>%
           \add:vdescription{end-array}{\b:speak:smallmatrix}}%
    \ifvmode \IgnorePar\fi 
    \HCode{</mtable></PARA>}%
    |<return to prev row counter|>%
    |<return to prev table number|>}
   {\HCode{<mtr>}\c:speak:smallmatrix}%
   {\xdef\hrow:s{\HRow}\HCode{</mtr>}}%
   {\HCode{<mtd>}%
    \e:speak:smallmatrix \HCode{<div>}}
   {\HCode{</div>}\f:speak:smallmatrix
    \HCode{</mtd>\Hnewline}}
>>>









\<plain,latex mathml\><<<
\NewConfigure{speak:smallmatrix}{6}
\Configure{speak:smallmatrix}
   {begin matrix with
       \ifTag{smallmatrix-\TableNo}{\LikeRef{smallmatrix-\TableNo}}{}
       rows}
   {end  matrix}
   {|<begin table row note|>}
   {|<end table row note|>}
   {|<begin table cell note|>}
   {|<end table cell note|>}
>>>

\<configure jsml-math amsmath\><<<
\def\:tempc#1#2{%
   \ConfigureEnv{#1}
     {\def\end:al:env{}\ifmmode\else 
       \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent}\fi\fi}
     {\end:al:env }
     {}{}%
   \Configure{#1}
   {\IgnorePar
    \ifvmode \EndP  \else \EndP  \HCode{<!--tex4ht:inline-->}\fi    
    \ifmathml
       \Tg<span class="mrow">\def\end:mathalign{\Tg</span>}%
    \else
       \DviMath
       \def\end:mathalign{\EndDviMath \DisplayMathfalse}%
       \DisplayMathtrue
    \fi
    |<advance table number|>%
    |<new row counter|>%
    \HCode{<div\Hnewline class="display-math"><mtable>%
        \add:description{begin-array}{\a:speak:align}%
       }}
   {\HCode{%
        \add:description{end-array}{\b:speak:align}%
       </mtable></div>}%
    \Tag{align-\TableNo}{\hrow:s}%
    |<return to prev row counter|>%
    |<return to prev table number|>\end:mathalign }
   {\HCode{<mtr>|<align eq note|>}}    
   {\HCode{</mtr>}\ifst@rred\else 
        \Tag{align-\TableNo-\HRow}{\theequation}%
    \fi \xdef\hrow:s{\HRow}}
   {\HCode{<mtd\Hnewline 
      class="align-\ifnum \HCol>\maxfields@ label\else 
         \ifodd\HCol\space  odd\else     even\fi 
       \fi">}%
    \ifnum \HCol>\maxfields@ \let\tagform@\:gobble \fi
   }
   {\HCode{</mtd>}}
}
\:tempc{align}{align}
\:tempc{alignat}{alignat}
\:tempc{xalignat}{xalignat}
\:tempc{xxalignat}{xxalignat}
\:tempc{flalign}{flalign}
\:tempc{align*}{align-star}
\:tempc{alignat*}{alignat-star}
\:tempc{xalignat*}{xalignat-star}
\:tempc{flalign*}{flalign-star}
>>>


\<align eq note\><<<
\add:description{begin-end}{\c:speak:align}%
>>>   


\<configure jsml-math amsmath\><<<
\NewConfigure{speak:align}{3}
\Configure{speak:align}
   {<BREAK SIZE="small"/>begin 
           \ifTag{align-\TableNo}{\LikeRef{align-\TableNo}}{}
           aligned equations<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>end aligned equations<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>\ifst@rred  |<ord row|> equation
    \else
       equation number \ifst@rred\else 
          \ifTag{align-\TableNo-\HRow}%
                {\LikeRef{align-\TableNo-\HRow}}{}
       \fi
    \fi <BREAK SIZE="small"/>%
   }
>>>


%%%%%%%%%%%%%
\subsection{Embedded Text}
%%%%%%%%%%%%%



\<configure jsml-math latex\><<<
\def\AA:text#1{|<config start mtext|>}
\def\BB:text{|<config end mtext|>}
>>>


\<config start mtext\><<<
\mtexttrue
\HCode{ <span\Hnewline class="mstyle-#1">}%
         |<start mtext space|>\PauseMathClass
   |<config math within mtext|>%
>>>


\<config end mtext\><<<
\mtextfalse\EndPauseMathClass|<end mtext space|>\HCode
     {</span>}%
>>>

\<config math within mtext\><<<
\Configure{$}%
  {\EndPauseMathClass \HCode{<span \Hnewline 
                             class="text-math">}\mtextfalse
      |<end mtext space|>}%
  {\HCode{</span>}|<start mtext space|>\PauseMathClass \mtexttrue}%
  {}%
>>>



\<start mtext space\><<<
\ht:special{t4ht@,&\#x00A0;}%
>>>
\<end mtext space\><<<
\ht:special{t4ht@,}%
>>>


%%%%%%%%%%%%%%%%%%
\section{Fonts}
%%%%%%%%%%%%%%%%%%



\<configure jsml-math fontmath\><<<
\def\bold:version{bold}
\Configure{mathbf}%
  {\bgroup \HCode{<span class="mathvariant-bold">%
      <BREAK SIZE="small"/>%
      \add:vdescription{font}{bold}<PROS PITCH="-10" >}}%
  {\HCode{</PROS><BREAK SIZE="small"/></span>}\egroup }%
\Configure{mathit}%
  {\bgroup \HCode{<span 
     class="mathvariant-\ifx
         \bold:version\math@version bold-\fi italic">}}%
  {\HCode{</span>}\egroup }%
\Configure{mathrm}%
  {\bgroup \HCode{<span class="mathvariant-normal">}}%
  {\HCode{</span>}\egroup }%
\Configure{mathsf}%
  {\bgroup \HCode{<span
     class="mathvariant-\ifx 
     \bold:version\math@version bold-\fi sans-serif">}}%
  {\HCode{</span>}\egroup }%
\Configure{mathtt}%
  {\bgroup \HCode{<span class="mathvariant-monospace">}}%
  {\HCode{</span>}\egroup }%
>>>

%%%%%%%%%%%%%%%%%%
\section{Theorems}
%%%%%%%%%%%%%%%%%%


\<configure jsml latex\><<<
\Configure{newtheorem}
   {\ifvmode\IgnorePar\fi\EndP
     \HCode{<BREAK SIZE="medium"/>%
     <PARA><div class="newtheorem">}\par\noindent
     \HCode{<SENT><PROS PITCH="-10" ><span class="theorem-head">}}
   {\HCode{</span></PROS></SENT><BREAK SIZE="small"/>}}
   {\EndP\IgnorePar\HCode{</div></PARA><BREAK SIZE="medium"/>}\ShowPar\par}
>>>

\<configure jsml acm-proc-article-sp\><<<
\Configure{proof}
   {\ifvmode\IgnorePar\fi\EndP
     \HCode{<BREAK SIZE="medium"/>%
     <PARA><div class="newtheorem" title="proof">}\par\noindent
     \HCode{<SENT><PROS PITCH="-10" ><span  class="theorem-head">}}
   {\HCode{</span></PROS></SENT><BREAK SIZE="small"/>}}
   {\EndP\IgnorePar\HCode{</div></div></PARA><BREAK SIZE="medium"/>}\ShowPar\par}
>>>


\<configure jsml amsthm\><<<
|<shared ams thm/cls|>
>>>

\<ams art,proc,book\><<<
\ifx \deferred@thm@head\:UnDef\else   
   |<shared ams thm/cls|>
\fi
>>>


\<shared ams thm/cls\><<<
\Configure{proof}
   {\ifvmode \IgnorePar \fi \EndP
    \HCode{<div class="newtheorem" title="proof">}\par\ShowPar
    \HCode{<span class="theorem-head">}\IgnorePar}
   {\HCode{</span>}\ShowPar}
   {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\par}
>>>


%%%%%%%%%%%%%%%%%%
\section{Others}
%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%
\section{Boxed}
%%%%%%%%%%%%%%%%%%

\<configure jsml-math amsmath\><<<
\Configure{boxed}
   {\HCode{<span class="boxed">%
    \add:description{begin-end}{\a:speak:boxed}}}
   {\HCode{\add:description{begin-end}{\b:speak:boxed}</span>}}
>>>


\<configure jsml-math amsmath\><<<
\NewConfigure{speak:boxed}{2}
\Configure{speak:boxed}
   {<BREAK SIZE="small"/>begin boxed<BREAK SIZE="small"/>}
   {<BREAK SIZE="small"/>end boxed<BREAK SIZE="small"/>}
>>>



%%%%%%%%%%%%%
\subsection{To Do}
%%%%%%%%%%%%%

\begin{itemize}
\item
How do we deal with accents (e.g., \verb+ M\"obius+)
\end{itemize}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\<plain,fontmath math\><<<
\Configure{MathClass}{0}{*}{<span class="mi"\Hnewline>}%
                                    {</span>}{}
\Configure{MathClass}{1}{*}{<span class="before-mo-op" 
                                  title="speech-extra">
            </span><mo class="mo-op"\Hnewline
                       >}{</mo><span class="after-mo-op"
                                       title="speech-extra"> </span>}{}
\Configure{MathClass}{2}{*}{<mo class="mo-bin">}{</mo>}{}
\Configure{MathClass}{3}{*}{<mo class="mo-rel">}{</mo>}{}
\:CheckOption{mathml-}     \if:Option 
   \Configure{MathClass}{4}{*}{<mo class="mo-open">}
                           {</mo>}{}
   \Configure{MathClass}{5}{*}{<mo class="mo-close">}
                           {</mo>}{}
\else
   \Log:Note{for sources failing to produce
       clean mathml code, try the command line option `mathml-'}%
   \Configure{MathClass}{4}{*}{<span class="mrow"><mo class="mo-open">}
                           {</mo><span class="mrow">}{}
   \Configure{MathClass}{5}{*}{</span><mo class="mo-close">}
                           {</mo></span>}{}
\fi
\Configure{MathClass}{6}{*}{<mo class="mo-punc">}{</mo>}{}
\Configure{MathClass}{7}{*}{<span class="mn">}{</span>}
                           {0123456789}      
\Configure{FormulaClass}{0}{}{}{}
\Configure{FormulaClass}{1}{}{}{}
\Configure{FormulaClass}{2}{}{}{}
\Configure{FormulaClass}{3}{}{}{}
\Configure{FormulaClass}{4}{}{}{}
\Configure{FormulaClass}{5}{}{}{}
\Configure{FormulaClass}{6}{}{}{}
>>>





\<configure jsml-math fontmath\><<<
\def\:tempd#1#2{%
   \expandafter\def\csname #1\endcsname{\mathchar"13#2}%
   \MathSymbol\mathop{#1}%
   \expandafter\def\csname #1:limits\endcsname{\expandafter
                    \:same \math:sym\mathop{#1}\limits}%
   \expandafter\def\csname #1:nolimits\endcsname{\expandafter
                  \:same \math:sym\mathop{#1}\nolimits}%
   \expandafter\edef\csname n:#1:\endcsname{\noexpand\ifDisplayMath
          \noexpand\expandafter \expandafter\noexpand \csname #1:limits\endcsname
          \noexpand\else \noexpand\expandafter
                         \expandafter\noexpand 
                         \csname #1:nolimits\endcsname\noexpand\fi}%
   \expandafter\pend:def\csname n:#1:\endcsname{\ifDisplayMath
          \mathop:prefix{mathsize-big}\fi}%
}
\:tempd{bigcap}{54} 
\:tempd{bigcup}{53} 
\:tempd{bigodot}{4A} 
\:tempd{bigoplus}{4C} 
\:tempd{bigotimes}{4E} 
\:tempd{bigsqcup}{46} 
\:tempd{biguplus}{55} 
\:tempd{bigvee}{57} 
\:tempd{bigwedge}{56} 
\:tempd{coprod}{60} 
\:tempd{intop}{52} 
\:tempd{ointop}{48} 
\:tempd{prod}{51} 
\:tempd{sum}{50}
>>>

%%%%%%%%%%%%%
\subsection{amsopname}
%%%%%%%%%%%%%




\<configure jsml-math amsopn\><<<
\Configure{qopname}
   {\Configure{mathop}{*}
      {<mo class="mo-qopname"> <span>}
      {</span> </mo>}
      {}}
>>>
