%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% html-speech-math.4ht 2007-09-24-22:48 %
% Copyright (C) 2006--2007 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 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 2007-09-24-22:48}
\exit:ifnot{amsmath,%
amsopn,%
array,%
fontmath,%
latex,%
plain,%
tex4ht}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ConfigureHinput{tex4ht}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Configure{SUB}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base
}
{\HCode{\add:description{end-script}{\c:speak:subsup}}%
}
\Configure{SUP}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\b:speak:subsup}}\trap:base
}
{\HCode{\add:description{end-script}{\c:speak:subsup}}%
}
\Configure{SUBSUP}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base
}
{\HCode{\add:description{mid-script}{\b:speak:subsup}}\trap:base
}
{\HCode{\add:description{end-script}{\c:speak:subsup}}%
}
\def\trap:base{{\HCode{}}}
\Configure{limits}{\let\pl:SUB =\:UnDef
\let\pl:SUP =\:UnDef
\ifx \:temp\sp \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}}%
%
\Configure{SUP}
{\Send{BACK}{%
}%
\HCode{\add:description{begin-limits-script}{\b:speak:underover}}\trap:base
%
\bgroup
\ifx \pl:SUBSUP\:UnDef \else
\let\SUBSUP:=\pl:SUBSUP
\fi
%
\Configure{SUP}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\b:speak:subsup}}\trap:base
%
\bgroup
\Configure{SUP}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\b:speak:subsup}}\trap:base
%
\bgroup \trap:base}
{\egroup \HCode{\add:description{end-script}{\c:speak:subsup}}%
%
}%
\trap:base}
{\egroup\HCode{\add:description{end-limits-script}{\c:speak:underover}}\aftergroup\pl:SUP %
}%
\trap:base}
{}%
\else
\ifx \:temp\sb \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}}%
%
\Configure{SUB}
{\Send{BACK}{%
}%
\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
%
\bgroup
\ifx \pl:SUBSUP\:UnDef \else
\let\SUBSUP:=\pl:SUBSUP
\fi
%
\Configure{SUB}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base
%
\bgroup
\Configure{SUB}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base
%
\bgroup \trap:base}
{\egroup \HCode{\add:description{end-script}{\c:speak:subsup}}%
%
}%
\trap:base}
{\egroup\HCode{\add:description{end-limits-script}{\c:speak:underover}}\aftergroup\pl:SUB %
}%
\trap:base}
{}%
\fi\fi
\let\pl:SUBSUP=\SUBSUP:
%
\Configure{SUBSUP}
{\ifx \pl:SUB \:UnDef\else \pl:SUB \fi
\ifx \pl:SUP \:UnDef\else \pl:SUP \fi
\ifx \pl:SUBSUP\:UnDef \else
\let\SUBSUP:=\pl:SUBSUP
\fi
%
\Send{BACK}
{%
}\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
}
{\HCode{\add:description{mid-limits-script}{\b:speak:underover}}\trap:base
}
{\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
}
%
}
\def\disp:limits{\let\pl:SUB =\:UnDef
\let\pl:SUP =\:UnDef
\ifx \:temp\sp \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}}%
%
\Configure{SUP}
{\Send{BACK}{%
}%
\HCode{\add:description{begin-limits-script}{\b:speak:underover}}\trap:base
%
\bgroup
\ifx \pl:SUBSUP\:UnDef \else
\let\SUBSUP:=\pl:SUBSUP
\fi
%
\Configure{SUP}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\b:speak:subsup}}\trap:base
%
\bgroup
\Configure{SUP}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\b:speak:subsup}}\trap:base
%
\bgroup \trap:base}
{\egroup \HCode{\add:description{end-script}{\c:speak:subsup}}%
%
}%
\trap:base}
{\egroup\HCode{\add:description{end-limits-script}{\c:speak:underover}}\aftergroup\pl:SUP %
}%
\trap:base}
{}%
\else
\ifx \:temp\sb \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}}%
%
\Configure{SUB}
{\Send{BACK}{%
}%
\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
%
\bgroup
\ifx \pl:SUBSUP\:UnDef \else
\let\SUBSUP:=\pl:SUBSUP
\fi
%
\Configure{SUB}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base
%
\bgroup
\Configure{SUB}
{\Send{BACK}
{%
}\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base
%
\bgroup \trap:base}
{\egroup \HCode{\add:description{end-script}{\c:speak:subsup}}%
%
}%
\trap:base}
{\egroup\HCode{\add:description{end-limits-script}{\c:speak:underover}}\aftergroup\pl:SUB %
}%
\trap:base}
{}%
\fi\fi
\let\pl:SUBSUP=\SUBSUP:
%
\Configure{SUBSUP}
{\ifx \pl:SUB \:UnDef\else \pl:SUB \fi
\ifx \pl:SUP \:UnDef\else \pl:SUP \fi
\ifx \pl:SUBSUP\:UnDef \else
\let\SUBSUP:=\pl:SUBSUP
\fi
%
\Send{BACK}
{%
}\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
}
{\HCode{\add:description{mid-limits-script}{\b:speak:underover}}\trap:base
}
{\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
}
%
}
\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
\Configure{radical}
{\HCode{%
\add:description{begin-root}{\a:speak:radical}}%
\special{t4ht\string~!e<}%
\special{t4ht\string~!e>%
\add:description{end-root}{\b:speak:radical}}%
\special{t4ht\string~!ee/}%
\special{t4ht\string~!ese-}%
}
\NewConfigure{speak:radical}{2}
\Configure{speak:radical}
{begin root}
{end root}
\NewConfigure{speak:description}{3}
\Configure{speak:description}
{begin \ifcase\csname @listdepth\endcsname
\or \or sub \or sub sub \or sub sub sub \else\fi
list}
{end \ifcase\csname @listdepth\endcsname
\or sub \or sub sub \or sub sub sub \else\fi
list}
{
item}
\Configure{DviMath}
{\a:DviMathSpk \mathmltrue
\ifOption{mml-fonts}{}{\NoFonts}%
\IgnoreRule \HCode{}\a:math
\edef\sv:ignore{\if:nopar
\noexpand\IgnorePar\else \noexpand\ShowPar\fi}%
\IgnorePar}
{\EndIgnoreRule
\mathmlfalse \b:DviMathSpk \sv:ignore
}
\NewConfigure{DviMathSpk}{2}
\Configure{math}{}
\Configure{$}
{\Configure{DviMathSpk}
{\HCode{%
\add:description{begin-math}{\a:speak:math}}}
{\HCode{\add:description{end-math}{\b:speak:math}}}%
\DviMath}
{\EndDviMath}{}
\Configure{$$}
{\Configure{@math}{div}\IgnorePar
\ifvmode\else \HCode{}\fi
\EndP
\Configure{DviMathSpk}
{\HCode{%
\add:description{begin-math}{\a:speak:math}}}
{\HCode{\add:description{end-math}{\b:speak:math}
}}%
\DviMath}
{\EndDviMath
\ShowPar\par{\csname HCondtrue\endcsname\noindent}}
{\DisplayMathtrue}
\NewConfigure{speak:math}{2}
\Configure{speak:math}
{begin math}
{end math}
\Configure{over}
{\Send{GROUP}{0}{\add:description{begin-end}{\a:speak:fraction}%
%
}\HCode{}%
}
{\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
}}
\Configure{atop}
{\Send{GROUP}{0}{%
\add:description{begin-stack}{\a:speak:atop}%
%
}\HCode{}%
}
{\HCode{\add:description{added-description}{\c:speak:atop}}%
\Send{EndGROUP}{0}{\add:description{end-stack}{\b:speak:atop}%
}}
\Configure{above}
{\Send{GROUP}{0}{\add:description{begin-end}{\a:speak:fraction}%
%
%
}%
\HCode{}%
%
\o:over:\:gobbleII}
{\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
}}
\def\abovewithdelims:III#1#2#3{%
\def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
\Send{GROUP}{0}{\add:description{begin-end}{\a:speak:fraction}%
%
%
}%
\HCode{}%
%
\o:over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
}
\else
\Send{GROUP}{0}%
{\expandafter
\ifx \csname \string#2:lr del\endcsname\relax #2\else
\csname \string#2:lr del\endcsname\fi
%
\add:description{begin-end}{\a:speak:fraction}%
%
%
}%
\HCode{}%
%
\o:over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
%
\expandafter
\ifx \csname \string#3:lr del\endcsname\relax #3\else
\csname \string#3:lr del\endcsname\fi
}
\fi
\tmp:dim
}
\def\atopwithdelims:III#1#2#3{%
\def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
\Send{GROUP}{0}{%
\add:description{begin-stack}{\a:speak:atop}%
%
}%
\HCode{}%
\o:atop:
\HCode{\add:description{added-description}{\c:speak:atop}}%
\Send{EndGROUP}{0}{\add:description{end-stack}{\b:speak:atop}%
}
\else
\Send{GROUP}{0}%
{\expandafter
\ifx \csname \string#2:lr del\endcsname\relax #2\else
\csname \string#2:lr del\endcsname\fi
%
%
\add:description{begin-stack}{\a:speak:atop}%
%
}%
\HCode{}%
\o:atop:
\HCode{\add:description{added-description}{\c:speak:atop}}%
%
\Send{EndGROUP}{0}{\add:description{end-stack}{\b:speak:atop}%
%
\expandafter
\ifx \csname \string#3:lr del\endcsname\relax #3\else
\csname \string#3:lr del\endcsname\fi
}
\fi
}
\def\overwithdelims:III#1#2#3{%
\def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
\Send{GROUP}{0}{\add:description{begin-end}{\a:speak:fraction}%
%
}\HCode{}%
\o:over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
}
\else
\Send{GROUP}{0}%
{\expandafter
\ifx \csname \string#2:lr del\endcsname\relax #2\else
\csname \string#2:lr del\endcsname\fi
%
\add:description{begin-end}{\a:speak:fraction}%
%
}%
\HCode{}%
\o:over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
\expandafter
\ifx \csname \string#3:lr del\endcsname\relax #3\else
\csname \string#3:lr del\endcsname\fi
}
\fi
}
\NewConfigure{speak:fraction}{3}
\Configure{speak:fraction}
{begin fraction}
{end fraction}
{over}
\NewConfigure{speak:atop}{3}
\Configure{speak:atop}
{begin stack}
{end stack}
{over}
\NewConfigure{speak:subsup}{3}
\Configure{speak:subsup}
{subscript}
{superscript}
{baseline}
\NewConfigure{speak:underover}{3}
\Configure{speak:underover}
{under script}
{over script}
{end scripts}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput\empty\empty\empty\empty\empty\empty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ConfigureHinput{latex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Configure{cases}
{}{} {\Tg}{\Tg}
{\Tg}{\Tg}
{\Tg}{\Tg}
\Configure{matrix}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{}%
\HCode{\add:vdescription{begin-array}{\a:speak:array}}}
{\Tag{array-\TableNo}{\hrow:s}%
\HCode{%
%
\add:vdescription{end-array}{\b:speak:array}}%
\ifvmode \IgnorePar\fi \Tg
%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{}\c:speak:array}%
{\xdef\hrow:s{\HRow}\HCode{
}}%
{\HCode{}%
\e:speak:array\HCode{
}}
{\HCode{
}\f:speak:array
\HCode{
\Hnewline}}
\Configure{pmatrix}
{\bgroup\Tg}
{\Tg
\egroup}
\NewConfigure{speak:array}{6}
\Configure{speak:array}
{begin array with
\ifTag{array-\TableNo}{\LikeRef{array-\TableNo}}{}
rows}
{end array}
{\HCode{\add:vdescription{begin-end}{\ord:pos{\HRow}%
row}}%
}
{}
{\HCode{%
\add:vdescription{added-description}{%
\ifnum \HMultispan>1 \ord:pos{\HCol}%
cell, spans
\HMultispan \space columns
\else
\ifnum \HCol>1 \ord:pos{\HCol}%
cell \fi
\fi
}}%
}
{}
\NewConfigure{speak:smallmatrix}{6}
\Configure{speak:smallmatrix}
{begin matrix with
\ifTag{smallmatrix-\TableNo}{\LikeRef{smallmatrix-\TableNo}}{}
rows}
{end matrix}
{\HCode{\add:vdescription{begin-end}{\ord:pos{\HRow}%
row}}%
}
{}
{\HCode{%
\add:vdescription{added-description}{%
\ifnum \HMultispan>1 \ord:pos{\HCol}%
cell, spans
\HMultispan \space columns
\else
\ifnum \HCol>1 \ord:pos{\HCol}%
cell \fi
\fi
}}%
}
{}
\Configure{left}
{}
{\HCode{%
\expandafter
\ifx \csname \string#1:lr del\endcsname\relax #1\else
\csname \string#1:lr del\endcsname\fi
}\bgroup}
\Configure{right}
{\egroup}
{\HCode{%
\expandafter
\ifx \csname \string#1:lr del\endcsname\relax #1\else
\csname \string#1:lr del\endcsname\fi
}}
\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
\def\mathinner#1{\Tg#1\Tg}
\def\mathop:prefix#1{%
\Configure{mathop}{*}{}{}%
{\Configure{mathop}{*}{}{}{}}}
\Configure{quad}{\HCode{ %
}}
\Configure{qquad}{\HCode{ %
}}
\Configure{,}{\HCode{ %
}}
\Configure{ }{\:nbsp}
\def\:nbsp{\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x}
\Configure{choose}
{\Send{GROUP}{0}{%
\add:description{begin-stack}{\a:speak:choose}%
}%
\HCode{}\o:atop:
\HCode{\add:description{added-description}%
{\c:speak:choose}}%
\Send{EndGROUP}{0}%
{\add:description{end-stack}{\b:speak:choose}}%
}
\NewConfigure{speak:choose}{3}
\Configure{speak:choose}
{begin binomial coefficient}
{end binomial coefficient}
{choose}
\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;}
\Configure{root}
{\HCode{%
\add:description{begin-root}{\a:speak:root}}}
{\HCode{\add:description{mid-root}{\b:speak:root}%
}}
{\HCode{\add:description{end-root}{\c:speak:root}}}
\NewConfigure{speak:root}{3}
\Configure{speak:root}
{root index}
{begin root}
{end root}
\:CheckOption{new-accents} \if:Option \else
\Configure{accents}
{\ifmmode \expandafter\mathord\fi
{\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%
%
\ht:special{t4ht@[}\if!#1!x\else#2\fi
\ht:special{t4ht@]}}}
{\ifmathml
\ifmtext \expandafter\ifx \csname :#1:over\endcsname\relax
\expandafter\ifx \csname :#1:under\endcsname\relax
\AccentMath{\expandafter\ifx \csname :#1:over\endcsname\relax
\HCode{}#3\HCode{}%
\csname :#1:under\endcsname
\HCode{}%
%
\else \expandafter\ifx \csname :#1:under\endcsname\relax
\HCode{}#3\HCode{}%
\csname prefix:#1:over\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\else
\HCode{}#3\HCode{}%
\csname :#1:under\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\fi \fi
}%
\else #3\csname :#1:under\endcsname \fi
\else #3\csname :#1:over\endcsname \fi
%
\else \AccentMath{\expandafter\ifx \csname :#1:over\endcsname\relax
\HCode{}#3\HCode{}%
\csname :#1:under\endcsname
\HCode{}%
%
\else \expandafter\ifx \csname :#1:under\endcsname\relax
\HCode{}#3\HCode{}%
\csname prefix:#1:over\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\else
\HCode{}#3\HCode{}%
\csname :#1:under\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\fi \fi
}\fi
\else \expandafter\ifx \csname :#1:over\endcsname\relax
\expandafter\ifx \csname :#1:under\endcsname\relax
\AccentMath{\expandafter\ifx \csname :#1:over\endcsname\relax
\HCode{}#3\HCode{}%
\csname :#1:under\endcsname
\HCode{}%
%
\else \expandafter\ifx \csname :#1:under\endcsname\relax
\HCode{}#3\HCode{}%
\csname prefix:#1:over\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\else
\HCode{}#3\HCode{}%
\csname :#1:under\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\fi \fi
}%
\else #3\csname :#1:under\endcsname \fi
\else #3\csname :#1:over\endcsname \fi
\fi
}
\Configure{accent}\widetilde\widetilde{{}{}}
{}
{\HCode{%
\add:description{begin-end}{\b:speak:modified}%
}%
#2%
\HCode{\add:description{begin-end}{\a:speak:modified:tilde}}}
\Configure{accent}\widehat\widehat{{}{}}
{}
{\HCode{%
\add:description{begin-end}{\a:speak:modified}%
}%
#2%
\HCode{\add:description{begin-end}{
\a:speak:modified:hat}}}
\fi
\Configure{array}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{}%
\HCode{\add:vdescription{begin-array}{\a:speak:array}}}
{\Tag{array-\TableNo}{\hrow:s}%
\HCode{%
%
\add:vdescription{end-array}{\b:speak:array}}%
\ifvmode \IgnorePar\fi \expandafter\tmp:toks\expandafter{\Clr}%
\HCode{}%
\Tg
%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{}\c:speak:array}%
{\xdef\hrow:s{\HRow}\HCode{
}}%
{\HCode{}%
\e:speak:array\HCode{
}}
{\HCode{
}\f:speak:array
\HCode{
\Hnewline}}
\ConfigureEnv{array}
{\bgroup\Configure{$}{}{}{}}
{\egroup}
{}{}
\def\:MM{m}
\Configure{HBorder}
{}
{ \string&\#x0332;
}
{}
{}
{}
{ \string&\#x0332;
}
{}
{}
{}
{}
\Configure{frac}
{\HCode{\add:description{begin-end}{\a:speak:fraction}%
%
}}
{\HCode{}%
\Configure{over}{}{}}
{\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
}
{\HCode{\add:description{begin-end}{\b:speak:fraction}%
}}
\ConfigureEnv{array}
{\PushStack\Col:Marg\AllColMargins
\bgroup\Configure{$}{}{}{}}
{\egroup \PopStack\Col:Marg\AllColMargins}
{}{}
\def\:MM{\ifmathml m\fi}
\Configure{HBorder}
{<\:MM tr\Hnewline
\ifmathml \expandafterclass\else class\fi="hline">}
{\ifmathml \string&\#x0332;
\else
%
\add:description{begin-math}{\a:speak:math}}}
{\HCode{\add:description{end-math}{\b:speak:math}
}}%
\DviMath $$\DisplayMathtrue }
{$$\EndDviMath}
\Configure{()}
{\Configure{DviMathSpk}
{\HCode{}\fi }
{}
%
\Configure{$$}
{\Configure{@math}{%
class="equation"}\IgnorePar\EndP\DviMath}
{\EndDviMath\EndP}
{\DisplayMathtrue}%
%
}
{\ifvmode \IgnorePar\fi\EndP
\HCode{\add:description{end-math}{\csname
b:speak:equation*\endcsname}
}%
\PopStack\Table:Stck\TableNo
%
\ShowPar\IgnoreIndent\par}
\Configure{speak:equation}
{begin equation
\ifTag{eq-\TableNo-num}{\LikeRef{eq-\TableNo-num}}{}%
}
{end equation \theequation}
\NewConfigure{speak:equation*}{2}
\Configure{speak:equation*}
{begin equation}
{end equation}
\fi
\Configure{eqref}
{\bgroup\let\tagform@\empty
\HCode{}%
\HCode{\add:vdescription{begin-array}{\a:speak:aligned}}}
{\Tag{aligned-\TableNo}{\hrow:s}%
\HCode{%
%
\add:vdescription{end-array}{\b:speak:aligned}}%
\ifvmode \IgnorePar\fi \Tg
%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{}%
\HCode{\add:vdescription{begin-array}{\a:speak:aligned}}}
{\Tag{aligned-\TableNo}{\hrow:s}%
\HCode{%
%
\add:vdescription{end-array}{\b:speak:aligned}}%
\ifvmode \IgnorePar\fi \Tg
%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{%
\add:vdescription{begin-array}{begin
\ifTag{split-\TableNo}{\LikeRef{split-\TableNo}}{}
sub equations}}}
{\ifvmode\IgnorePar\fi
\Tag{split-\TableNo}{\HRow:s}%
\HCode{\add:vdescription{end-array}{end sub equations}
}%
\PopStack\Table:Stck\TableNo
%
}
{\HCode{%
\add:vdescription{begin-end}{%
\ifnum \HCol=1 left \else right \fi
\ord:pos{\HRow}%
sub equation}}%
}
{\HCode{
}}
\ConfigureEnv{multline}
{\bgroup \Configure{$$}
{\Configure{@math}{%
class="equation"}\IgnorePar\EndP\DviMath}
{\EndDviMath\EndP}
{\DisplayMathtrue}%
}
{\egroup}
{}{}
\ConfigureEnv{multline*}
{\bgroup \Configure{$$}
{\Configure{@math}{%
class="equation"}\IgnorePar\EndP\DviMath}
{\EndDviMath\EndP}
{\DisplayMathtrue}%
}
{\egroup}
{}{}
\Configure{multline}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{}}
{}
\Configure{multline-num}
{\Tag{multline-\TableNo-num}{\theequation}\let\tagform@\:gobble}
{}
\Configure{multline*}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
%
\add:vdescription{begin-math}{begin equation with
\ifTag{multline-\TableNo}{\LikeRef{multline-\TableNo}}{}
lines}%
%
}}
{\Tag{multline-\TableNo}{\hrow:s}%
\HCode{
%
\add:vdescription{end-math}{end equation}%
}%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
%
\add:vdescription{begin-end}{\ord:pos{\HRow}%
line}%
}}
{\xdef\hrow:s{\HRow}\HCode{
}}
\Css{.begin-multline, .end-multline {color:red;}}
\ConfigureEnv{gather}
{\bgroup \Configure{$$}
{\Configure{@math}{%
class="equation"}\IgnorePar\EndP\DviMath}
{\EndDviMath\EndP}
{\DisplayMathtrue}%
}
{\egroup}
{}{}
\ConfigureEnv{gather*}
{\bgroup \Configure{$$}
{\Configure{@math}{%
class="equation"}\IgnorePar\EndP\DviMath}
{\EndDviMath\EndP}
{\DisplayMathtrue}%
}
{\egroup}
{}{}
\Css{.begin-gather, .end-gather {color:red;}}
\Configure{gather}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
%
\add:vdescription{begin-math}{begin group of
\ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{}
equations}%
%
}}
{\HCode{
\add:vdescription{end-math}{end equations}%
}%
\Tag{gather-\TableNo}{\hrow:s}%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
%
\add:vdescription{begin-end}{\ord:pos{\HRow}%
equation}%
}}
{\xdef\hrow:s{\HRow}\HCode{
}}
{\HCode{\Hnewline
}%
\ifnum \HCol>1 \let\tagform@\:gobble \fi
}
{\HCode{
}}
\Configure{gather*}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
%
\add:vdescription{begin-math}{begin group of
\ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{}
equations}%
%
}}
{\HCode{
\add:vdescription{end-math}{end equations}%
}%
\Tag{gather-\TableNo}{\hrow:s}%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
%
\add:vdescription{begin-math}{\ord:pos{\HRow}%
equation}%
}}
{\xdef\hrow:s{\HRow}\HCode{
}}
{\HCode{\Hnewline
}}
{\HCode{
}}
\Configure{gathered}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
%
\add:vdescription{begin-math}{begin group of
\ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{}
equations}%
%
}}
{\HCode{
\add:vdescription{end-math}{end equations}%
}%
\Tag{gather-\TableNo}{\hrow:s}%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
%
\add:vdescription{begin-end}{\ord:pos{\HRow}%
equation}%
}}
{\xdef\hrow:s{\HRow}\HCode{
}}
{\HCode{\Hnewline
}%
\ifnum \HCol>1 \let\tagform@\:gobble \fi
}
{\HCode{
}}
\Configure{subarray}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
%
\add:vdescription{begin-array}{\a:speak:subarray}%
}}
{\HCode{\add:vdescription{end-array}{\b:speak:subarray}%
}%
\Tag{subarray-\TableNo}{\hrow:s}%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
%
\add:vdescription{begin-end}{\c:speak:subarray}%
}}
{\xdef\hrow:s{\HRow}\HCode{
}}
\NewConfigure{speak:subarray}{3}
\Configure{speak:subarray}
{begin sub array with
\ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{}
rows}
{end sub array}
{
\ord:pos{\HRow}%
row}
\Configure{substack}
{\bgroup
\Configure{speak:subarray}
{begin sub stack with
\ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{}
entries}
{end sub stack}
{
\ord:pos{\HRow}%
entry}
}
{\egroup}
\Configure{smallmatrix}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
}%
\HCode{\add:vdescription{begin-array}{\a:speak:smallmatrix}}}
{\Tag{smallmatrix-\TableNo}{\hrow:s}%
\HCode{%
%
\add:vdescription{end-array}{\b:speak:smallmatrix}}%
\ifvmode \IgnorePar\fi \Tg
%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
}\c:speak:smallmatrix}%
{\xdef\hrow:s{\HRow}\HCode{
}}%
{\HCode{
}%
\e:speak:smallmatrix \HCode{
}}
{\HCode{
}\f:speak:smallmatrix
\HCode{
\Hnewline}}
\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{}\fi
\ifmathml
\Tg
\def\end:mathalign{\Tg}%
\else
\DviMath
\def\end:mathalign{\EndDviMath \DisplayMathfalse}%
\DisplayMathtrue
\fi
\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
%
\add:description{begin-array}{\a:speak:align}%
}}
{\HCode{%
\add:description{end-array}{\b:speak:align}%
}%
\Tag{align-\TableNo}{\hrow:s}%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
\end:mathalign }
{\HCode{
\add:description{begin-end}{\c:speak:align}%
}}
{\HCode{
}\ifst@rred\else
\Tag{align-\TableNo-\HRow}{\theequation}%
\fi \xdef\hrow:s{\HRow}}
{\HCode{
}%
\ifnum \HCol>\maxfields@ \let\tagform@\:gobble \fi
}
{\HCode{
}}
}
\: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}
\Css{.begin-aligned, .end-aligned {color:red;}}
\NewConfigure{speak:align}{3}
\Configure{speak:align}
{begin
\ifTag{align-\TableNo}{\LikeRef{align-\TableNo}}{}
aligned equations}
{end aligned equations}
{\ifst@rred
\ord:pos{\HRow}%
equation
\else
equation number \ifst@rred\else
\ifTag{align-\TableNo-\HRow}{\LikeRef{align-\TableNo-\HRow}}{}
\fi
\fi
}
\def\:tempc{\HCode{
}\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
\def\:tempc{\ifDisplayMath\mathop:prefix{big}\fi\o:n:iint::}
\HLet\n:iint:\:tempc
\def\:tempc{\ifDisplayMath\mathop:prefix{big}\fi\o:n:iiint::}
\HLet\n:iiint:\:tempc
\def\:tempc{\ifDisplayMath\mathop:prefix{big}\fi\o:n:idotsint::}
\HLet\n:idotsint:\:tempc
\Configure{tmspace}
{\HCode{
%
}}
\Configure{above}
{\Send{GROUP}{0}{
\add:description{begin-end}{\a:speak:fraction}%
%
%
}%
\HCode{}%
%
\o:@@over:\:gobbleII}
{\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
}}
\Configure{tbinom}
{\Send{GROUP}{0}{
%
\add:description{begin-stack}{\a:speak:choose}%
}%
\HCode{}\o:@@abovewithdelims: ..\z@{}%
\HCode{\add:description{added-description}%
{\c:speak:choose}}%
\Send{EndGROUP}{0}%
{\add:description{end-stack}{\b:speak:choose}}%
}
\Configure{dbinom}
{\Send{GROUP}{0}{
%
\add:description{begin-stack}{\a:speak:choose}%
}%
\HCode{}\o:@@abovewithdelims: ..\z@{}%
\HCode{\add:description{added-description}{\c:speak:choose}}%
\Send{EndGROUP}{0}%
{\add:description{end-stack}{\b:speak:choose}}%
}
\Configure{binom}
{\Send{GROUP}{0}{
%
\add:description{begin-stack}{\a:speak:choose}%
}%
\HCode{}\o:@@abovewithdelims: ..\z@{}%
\HCode{\add:description{added-description}{\c:speak:choose}}%
\Send{EndGROUP}{0}%
{\add:description{end-stack}{\b:speak:choose}}%
}
\def\abovewithdelims:III#1#2#3{%
\def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
\Send{GROUP}{0}{
\add:description{begin-end}{\a:speak:fraction}%
%
%
}%
\HCode{}%
%
\o:@@over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
}
\else
\Send{GROUP}{0}%
{
\expandafter
\ifx \csname \string#2:lr del\endcsname\relax #2\else
\csname \string#2:lr del\endcsname\fi
%
\add:description{begin-end}{\a:speak:fraction}%
%
%
}%
\HCode{}%
%
\o:@@over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
%
\expandafter
\ifx \csname \string#3:lr del\endcsname\relax #3\else
\csname \string#3:lr del\endcsname\fi
}
\fi
\tmp:dim
}
\def\atopwithdelims:III#1#2#3{%
\def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
\Send{GROUP}{0}{
%
\add:description{begin-stack}{\a:speak:atop}%
%
}%
\HCode{}%
\o:@@atop:
\HCode{\add:description{added-description}{\c:speak:atop}}%
\Send{EndGROUP}{0}{\add:description{end-stack}{\b:speak:atop}%
}
\else
\Send{GROUP}{0}%
{
\expandafter
\ifx \csname \string#2:lr del\endcsname\relax #2\else
\csname \string#2:lr del\endcsname\fi
%
%
\add:description{begin-stack}{\a:speak:atop}%
%
}%
\HCode{}%
\o:@@atop:
\HCode{\add:description{added-description}{\c:speak:atop}}%
\Send{EndGROUP}{0}{\add:description{end-stack}{\b:speak:atop}%
%
\expandafter
\ifx \csname \string#3:lr del\endcsname\relax #3\else
\csname \string#3:lr del\endcsname\fi
}
\fi
}
\def\overwithdelims:III#1#2#3{%
\def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa
\Send{GROUP}{0}{
\add:description{begin-end}{\a:speak:fraction}%
%
}%
\HCode{}%
\o:over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
}
\else
\Send{GROUP}{0}%
{
\expandafter
\ifx \csname \string#2:lr del\endcsname\relax #2\else
\csname \string#2:lr del\endcsname\fi
%
\add:description{begin-end}{\a:speak:fraction}%
%
}%
\HCode{}%
\o:@@over:
\HCode{\add:description{begin-end}{\c:speak:fraction}
}%
\Send{EndGROUP}{0}{\add:description{begin-end}{\b:speak:fraction}%
%
\expandafter
\ifx \csname \string#3:lr del\endcsname\relax #3\else
\csname \string#3:lr del\endcsname\fi
}
\fi
}
\Configure{boxed}
{\HCode{
%
\add:description{begin-end}{\a:speak:boxed}}}
{\HCode{\add:description{begin-end}{\b:speak:boxed}}}
\NewConfigure{speak:boxed}{2}
\Configure{speak:boxed}
{begin boxed}
{end boxed}
\renewcommand{\xrightarrow}[2][]{%
\if :#1:
\HCode{
%
}%
\rightarrow
\HCode{\add:description{begin-limits-script}{\b:speak:underover}}\trap:base
#2%
\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
%
\else
\HCode{
%
}%
\leftarrow
\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
#1%
\HCode{\add:description{mid-limits-script}{\b:speak:underover}}\trap:base
#2%
\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
%
\fi
}
\renewcommand{\xleftarrow}[2][]{%
\if :#1:
\HCode{
%
}%
\leftarrow
\HCode{\add:description{begin-limits-script}{\b:speak:underover}}\trap:base
#2%
\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
%
\else
\HCode{
%
}%
\leftarrow
\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
#1%
\HCode{\add:description{mid-limits-script}{\b:speak:underover}}\trap:base
#2%
\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
%
\fi
}
\def\overset#1#2{{%
\HCode{
%
}%
#2%
\HCode{\add:description{begin-limits-script}{\b:speak:underover}}\trap:base
#1%
\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
%
}}
\def\underset#1#2{{%
\HCode{
%
}%
#2%
\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
#1%
\HCode{\add:description{end-limits-script}{\c:speak:underover}}%
%
}}
\def\sideset#1#2#3{{\Tg
{\HCode{}}#1{\HCode{}#3}#2\Tg}}
\Configure{underrightarrow}
{\HCode{
%
\add:description{begin-end}{\a:speak:modified}%
}\:gobble}
{\HCode{%
\add:description{begin-end}{\a:speak:modified:rightarrow}}}
\Configure{underleftarrow}
{\HCode{
%
\add:description{begin-end}{\a:speak:modified}%
}\:gobble}
{\HCode{%
\add:description{begin-end}{speak:modified:leftarrow}}}
\Configure{overleftrightarrow}
{\HCode{
%
\add:description{begin-end}{\b:speak:modified}%
}\:gobble}
{\HCode{%
\add:description{begin-end}{\a:speak:modified:leftrightarrow}}}
\Configure{underleftrightarrow}
{\HCode{
%
\add:description{begin-end}{\a:speak:modified}%
}\:gobble}
{\HCode{%
\add:description{begin-end}{\a:speak:modified:leftrightarrow}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput\empty\empty\empty\empty\empty\empty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ConfigureHinput{plain}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Configure{eqalignno}
{\HCode{
}}
{\HCode{}}
{\HCode{
}}
{\HCode{}}
{\HCode{
}}
{\HCode{}}
\def\:eqalignno:{\Configure{noalign}
{\HCode{
}}%
{\HCode{}}}
\Configure{leqalignno}
{\HCode{
}}
{\HCode{}}
{\HCode{
}}
{\HCode{}}
{\HCode{
}}
{\HCode{}}
\def\:leqalignno:{\Configure{noalign}
{\HCode{
}}%
{\HCode{}}}
\Configure{big}
{}{}
{}
{}
\Configure{Big}
{}{}
{}
{}
\Configure{bigg}
{}{}
{}
{}
\Configure{Bigg}
{}{}
{}
{}
\Configure{Biggm}
{\bgroup
\Configure{Bigg}{}{}{}{}%
\Configure{mathrel}{*}
{
}
{}
{\Configure{mathrel}{}{}{}{}}%
}
{\egroup}
\Configure{Bigm}
{\bgroup
\Configure{Big}{}{}{}{}%
\Configure{mathrel}{*}
{
}
{}
{\Configure{mathrel}{}{}{}{}}%
}
{\egroup}
\Configure{biggm}
{\bgroup
\Configure{bigg}{}{}{}{}%
\Configure{mathrel}{*}
{
}
{}
{\Configure{mathrel}{}{}{}{}}%
}
{\egroup}
\Configure{bigm}
{\bgroup
\Configure{big}{}{}{}{}%
\Configure{mathrel}{*}
{
}
{}
{\Configure{mathrel}{}{}{}{}}%
}
{\egroup}
\:CheckOption{mathml-} \if:Option
\Configure{Biggl}
{\bgroup
\Configure{Bigg}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{Biggr}
{\bgroup
\Configure{Bigg}{}{}{}{}%
\Configure{mathclose}{*}
{
}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\Configure{Bigl}
{\bgroup
\Configure{Big}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{Bigr}
{\bgroup
\Configure{Big}{}{}{}{}%
\Configure{mathclose}{*}
{
}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\Configure{biggl}
{\bgroup
\Configure{bigg}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{biggr}
{\bgroup
\Configure{bigg}{}{}{}{}%
\Configure{mathclose}{*}
{
}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\Configure{bigl}
{\bgroup
\Configure{big}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{bigr}
{\bgroup
\Configure{big}{}{}{}{}%
\Configure{mathclose}{*}
{
}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\else
\Configure{Biggl}
{\bgroup
\Configure{Bigg}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{Biggr}
{\bgroup
\Configure{Bigg}{}{}{}{}%
\Configure{mathclose}{*}
{}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\Configure{Bigl}
{\bgroup
\Configure{Big}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{Bigr}
{\bgroup
\Configure{Big}{}{}{}{}%
\Configure{mathclose}{*}
{}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\Configure{biggl}
{\bgroup
\Configure{bigg}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{biggr}
{\bgroup
\Configure{bigg}{}{}{}{}%
\Configure{mathclose}{*}
{}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\Configure{bigl}
{\bgroup
\Configure{big}{}{}{}{}%
\Configure{mathopen}{*}
{
}
{}
{\Configure{mathopen}{}{}{}{}}%
}
{\egroup}
\Configure{bigr}
{\bgroup
\Configure{big}{}{}{}{}%
\Configure{mathclose}{*}
{}
{}
{\Configure{mathclose}{}{}{}{}}%
}
{\egroup}
\fi
\Configure{MathClass}{0}{*}{
}%
{}{}
\Configure{MathClass}{1}{*}{
}{ }{}
\Configure{MathClass}{2}{*}{
}{}{}
\Configure{MathClass}{3}{*}{
}{}{}
\:CheckOption{mathml-} \if:Option
\Configure{MathClass}{4}{*}{
}
{}{}
\Configure{MathClass}{5}{*}{
}
{}{}
\else
\Log:Note{for sources failing to produce
clean mathml code, try the command line option `mathml-'}%
\Configure{MathClass}{4}{*}{
}
{}{}
\Configure{MathClass}{5}{*}{}
{}{}
\fi
\Configure{MathClass}{6}{*}{
}{}{}
\Configure{MathClass}{7}{*}{
}{}
{0123456789}
\Configure{FormulaClass}{0}{}{}{}
\Configure{FormulaClass}{1}{}{}{}
\Configure{FormulaClass}{2}{}{}{}
\Configure{FormulaClass}{3}{}{}{}
\Configure{FormulaClass}{4}{}{}{}
\Configure{FormulaClass}{5}{}{}{}
\Configure{FormulaClass}{6}{}{}{}
\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
\Configure{overbrace}
{\Configure{mathop*}{*}
{
%
\add:description{begin-end}{\b:speak:modified}%
}
{\add:description{begin-end}{\a:speak:modified:brace}}
{\Configure{mathop}{}{}{}{}}%
}
{\let\o:overbrace:=\displaystyle}
{}
\Configure{underbrace}
{\Configure{mathop*}{*}
{
%
\add:description{begin-end}{\a:speak:modified}%
}
{\add:description{begin-end}{\a:speak:modified:brace}}
{\Configure{mathop}{}{}{}{}}%
}
{\let\o:underbrace:=\displaystyle}
{}
\Configure{overrightarrow}
{\HCode{
%
\add:description{begin-end}{\b:speak:modified}%
}\:gobble}
{\HCode{%
\add:description{begin-end}{\a:speak:modified:rightarrow}}}
\Configure{overleftarrow}
{\HCode{
%
\add:description{begin-end}{\b:speak:modified}%
}\:gobble}
{\HCode{%
\add:description{begin-end}{\a:speak:modified:leftarrow}}}
\NewConfigure{speak:modified:rightarrow}{1}
\Configure{speak:modified:rightarrow}{with right arrow}
\NewConfigure{speak:modified:leftarrow}{1}
\Configure{speak:modified:leftarrow}{with left right arrow}
\NewConfigure{speak:modified:leftrightarrow}{1}
\Configure{speak:modified:leftrightarrow}{with left right arrow}
\Configure{cases}
{}{} {\Tg
}{\Tg}
{\Tg
}{\Tg}
{\Tg
}{\Tg}
\Configure{matrix}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
}%
\HCode{\add:vdescription{begin-array}{\a:speak:array}}}
{\Tag{array-\TableNo}{\hrow:s}%
\HCode{%
%
\add:vdescription{end-array}{\b:speak:array}}%
\ifvmode \IgnorePar\fi \Tg
%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
}\c:speak:array}%
{\xdef\hrow:s{\HRow}\HCode{
}}%
{\HCode{
}%
\e:speak:array\HCode{
}}
{\HCode{
}\f:speak:array
\HCode{
\Hnewline}}
\Configure{pmatrix}
{\bgroup\Tg
}
{\Tg
\egroup}
\NewConfigure{speak:array}{6}
\Configure{speak:array}
{begin array with
\ifTag{array-\TableNo}{\LikeRef{array-\TableNo}}{}
rows}
{end array}
{\HCode{\add:vdescription{begin-end}{
\ord:pos{\HRow}%
row}}%
}
{}
{\HCode{%
\add:vdescription{added-description}{%
\ifnum \HMultispan>1 \ord:pos{\HCol}%
cell, spans
\HMultispan \space columns
\else
\ifnum \HCol>1 \ord:pos{\HCol}%
cell \fi
\fi
}}%
}
{}
\NewConfigure{speak:smallmatrix}{6}
\Configure{speak:smallmatrix}
{begin matrix with
\ifTag{smallmatrix-\TableNo}{\LikeRef{smallmatrix-\TableNo}}{}
rows}
{end matrix}
{\HCode{\add:vdescription{begin-end}{
\ord:pos{\HRow}%
row}}%
}
{}
{\HCode{%
\add:vdescription{added-description}{%
\ifnum \HMultispan>1 \ord:pos{\HCol}%
cell, spans
\HMultispan \space columns
\else
\ifnum \HCol>1 \ord:pos{\HCol}%
cell \fi
\fi
}}%
}
{}
\Configure{left}
{}
{\HCode{
%
\expandafter
\ifx \csname \string#1:lr del\endcsname\relax #1\else
\csname \string#1:lr del\endcsname\fi
}\bgroup}
\Configure{right}
{\egroup}
{\HCode{%
\expandafter
\ifx \csname \string#1:lr del\endcsname\relax #1\else
\csname \string#1:lr del\endcsname\fi
}}
\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
\def\mathinner#1{\Tg
#1\Tg}
\def\mathop:prefix#1{%
\Configure{mathop}{*}{
}{}%
{\Configure{mathop}{*}{
}{}{}}}
\Configure{quad}{\HCode{
%
}}
\Configure{qquad}{\HCode{
%
}}
\Configure{,}{\HCode{
%
}}
\Configure{ }{\:nbsp}
\def\:nbsp{\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x}
\Configure{choose}
{\Send{GROUP}{0}{
%
\add:description{begin-stack}{\a:speak:choose}%
}%
\HCode{}\o:atop:
\HCode{\add:description{added-description}%
{\c:speak:choose}}%
\Send{EndGROUP}{0}%
{\add:description{end-stack}{\b:speak:choose}}%
}
\NewConfigure{speak:choose}{3}
\Configure{speak:choose}
{begin binomial coefficient}
{end binomial coefficient}
{choose}
\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;}
\Configure{root}
{\HCode{
%
\add:description{begin-root}{\a:speak:root}}}
{\HCode{\add:description{mid-root}{\b:speak:root}%
}}
{\HCode{\add:description{end-root}{\c:speak:root}}}
\NewConfigure{speak:root}{3}
\Configure{speak:root}
{root index}
{begin root}
{end root}
\:CheckOption{new-accents} \if:Option \else
\Configure{accents}
{\ifmmode \expandafter\mathord\fi
{\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%
%
\ht:special{t4ht@[}\if!#1!x\else#2\fi
\ht:special{t4ht@]}}}
{\ifmathml
\ifmtext \expandafter\ifx \csname :#1:over\endcsname\relax
\expandafter\ifx \csname :#1:under\endcsname\relax
\AccentMath{\expandafter\ifx \csname :#1:over\endcsname\relax
\HCode{
}#3\HCode{}%
\csname :#1:under\endcsname
\HCode{}%
%
\else \expandafter\ifx \csname :#1:under\endcsname\relax
\HCode{
}#3\HCode{}%
\csname prefix:#1:over\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\else
\HCode{
}#3\HCode{}%
\csname :#1:under\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\fi \fi
}%
\else #3\csname :#1:under\endcsname \fi
\else #3\csname :#1:over\endcsname \fi
%
\else \AccentMath{\expandafter\ifx \csname :#1:over\endcsname\relax
\HCode{
}#3\HCode{}%
\csname :#1:under\endcsname
\HCode{}%
%
\else \expandafter\ifx \csname :#1:under\endcsname\relax
\HCode{
}#3\HCode{}%
\csname prefix:#1:over\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\else
\HCode{
}#3\HCode{}%
\csname :#1:under\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\fi \fi
}\fi
\else \expandafter\ifx \csname :#1:over\endcsname\relax
\expandafter\ifx \csname :#1:under\endcsname\relax
\AccentMath{\expandafter\ifx \csname :#1:over\endcsname\relax
\HCode{
}#3\HCode{}%
\csname :#1:under\endcsname
\HCode{}%
%
\else \expandafter\ifx \csname :#1:under\endcsname\relax
\HCode{
}#3\HCode{}%
\csname prefix:#1:over\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\else
\HCode{
}#3\HCode{}%
\csname :#1:under\endcsname
\csname :#1:over\endcsname
\HCode{}%
%
\fi \fi
}%
\else #3\csname :#1:under\endcsname \fi
\else #3\csname :#1:over\endcsname \fi
\fi
}
\Configure{accent}\widetilde\widetilde{{}{}}
{}
{\HCode{
%
\add:description{begin-end}{\b:speak:modified}%
}%
#2%
\HCode{\add:description{begin-end}{\a:speak:modified:tilde}}}
\Configure{accent}\widehat\widehat{{}{}}
{}
{\HCode{
%
\add:description{begin-end}{\a:speak:modified}%
}%
#2%
\HCode{\add:description{begin-end}{
\a:speak:modified:hat}}}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput\empty\empty\empty\empty\empty\empty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ConfigureHinput{amsopn}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Configure{qopname}
{\Configure{mathop}{*}
{
}
{ }
{}}
\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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput\empty\empty\empty\empty\empty\empty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ConfigureHinput{array}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Configure{array}
{\PushStack\Table:Stck\TableNo
\gHAdvance\Next:TableNo by 1
\global\let\TableNo=\Next:TableNo
%
\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax
%
\HCode{
}%
\HCode{\add:vdescription{begin-array}{\a:speak:array}}}
{\Tag{array-\TableNo}{\hrow:s}%
\HCode{%
%
\add:vdescription{end-array}{\b:speak:array}}%
\ifvmode \IgnorePar\fi \expandafter\tmp:toks\expandafter{\Clr}%
\HCode{}%
\Tg
%
\PopStack\Row:Stck\HRow
%
\PopStack\Table:Stck\TableNo
}
{\HCode{
}\c:speak:array}%
{\xdef\hrow:s{\HRow}\HCode{
}}%
{\HCode{
}%
\e:speak:array\HCode{
}}
{\HCode{
}\f:speak:array
\HCode{
\Hnewline}}
\ConfigureEnv{array}
{\bgroup\Configure{$}{}{}{}}
{\egroup}
{}{}
\Configure{multicolumn}
{\let\sv:VBorder\VBorder
\let\VBorder\empty
\Configure{VBorder}{}{}{}{}%
}
{\let\VBorder\sv:VBorder}
{\ifmmode \else
\ifvmode\IgnorePar\fi
\fi \HCode{
}}
{\ifmmode \else
\ifvmode\IgnorePar\fi \EndP\fi \HCode{
} }
\def\gob:sp#1{#1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput\empty\empty\empty\empty\empty\empty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput