0.23 Fractions and Stacks

  0.23.1 Regular Ones
  0.23.2 With Delimiters
  0.23.3 Code Assignments

0.23.1 Regular Ones

<..configure html-speech-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.>}}
-_-_-

<..mathml latex..>+
 \Configure{frac}
    {\HCode{<.start mfrac.>}}
    {<.end frac numerator.>\Configure{over}{}{}}
    {<.frac enumerator.>}
    {\HCode{<.end mfrac.>}}
-_-_-

<..configure html-speech-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}{<span class="choose">%
        \add:description{begin-stack}{\a:speak:choose}%
        <span class="mrow-upper">}%
     \HCode{</span>}\o:atop:
     \HCode{\add:description{added-description}%
        {\c:speak:choose}<span class="mrow-under">}%
     \Send{EndGROUP}{0}%
       {</span>\add:description{end-stack}{\b:speak:choose}</span>}%
    }
-_-_-

<..plain,latex mathml..>+
 \NewConfigure{speak:choose}{3}
 \Configure{speak:choose}
    {begin binomial coefficient}
    {end binomial coefficient}
    {choose}
-_-_-

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

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

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

0.23.2 With Delimiters

<..configure html-speech-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}%
          {<span class="mfenced-open"><.lr del 2.></span>%
           <.start above.>}%
       <.end above over.>\o:over:
       <.start above under.>\Send{EndGROUP}{0}{<.end above.>%
          <span class="mfenced-close"><.lr del 3.></span>}
    \fi
    \tmp:dim
  }
-_-_-

<..configure html-speech-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}%
          {<span class="mfenced-open"><.lr del 2.></span>%
           <.start atop.>}%
       <.end atop over.>\o:atop:
       <.start atop under.>%
       \Send{EndGROUP}{0}{<.end atop.>%
          <span class="mfenced-close"><.lr del 3.></span>}
    \fi
  }
-_-_-

<..configure html-speech-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}%
          {<span class="mfenced-open"><.lr del 2.></span>%
           <.start mfrac.>}%
       <.end frac numerator.>\o:over:
       <.frac enumerator.>\Send{EndGROUP}{0}{<.end mfrac.>%
              <span class="mfenced-close"><.lr del 3.></span>}
    \fi
  }
-_-_-

<..configure html-speech-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}%
          {<span class="mfenced-open"><.lr del 2.></span>%
           <.start above.>}%
       <.end above over.>\o:@@over:
       <.start above under.>\Send{EndGROUP}{0}{<.end above.>%
          <span class="mfenced-close"><.lr del 3.></span>}
    \fi
    \tmp:dim
  }
-_-_-

<..configure html-speech-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}%
          {<span class="mfenced-open"><.lr del 2.></span>%
           <.start atop.>}%
       <.end atop over.>\o:@@atop:
       <.start atop under.>\Send{EndGROUP}{0}{<.end atop.>%
              <span class="mfenced-close"><.lr del 3.></span>}
    \fi
  }
-_-_-

<..configure html-speech-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}%
          {<span class="mfenced-open"><.lr del 2.></span>%
           <.start mfrac.>}%
       <.end frac numerator.>\o:@@over:
       <.frac enumerator.>\Send{EndGROUP}{0}{<.end mfrac.>%
          <span class="mfenced-close"><.lr del 3.></span>}
    \fi
  }
-_-_-

0.23.3 Code Assignments

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

<..end frac numerator..>
 \HCode{</span>}%
-_-_-

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

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

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

<..end atop over..>
 \HCode{</span>}%
-_-_-

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

<..end atop..>
 </span>\add:description{end-stack}{\b:speak:atop}</span>%
-_-_-

<..start above..>
 <.start mfrac.>%
-_-_-

<..end above over..>
 <.end frac numerator.>%
-_-_-

<..start above under..>
 <.frac enumerator.>%
-_-_-

<..end above..>
 <.end mfrac.>%
-_-_-

<..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;}
-_-_-

<..configure html-speech-math tex4ht..>+
 \NewConfigure{speak:fraction}{3}
 \Configure{speak:fraction}
    {begin fraction}
    {end fraction}
    {over}
-_-_-

<..configure emacspeak tex4ht..>+
 \CssSpeech{.mfrac{
     pitch:7; pitch-range: 1; richness: 9; stress:4;}}
-_-_-

<..configure html-speech-math tex4ht..>+
 \NewConfigure{speak:atop}{3}
 \Configure{speak:atop}
    {begin stack}
    {end stack}
    {over}
-_-_-