1.2 Limits of Sub- snd Super- Scripts (over/under - end - scripts)

  1.2.1 Outline
  1.2.2 Simultaneously Sub- and Super- Scripts
  1.2.3 Superscripts
  1.2.4 Subscripts

1.2.1 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.>%
-_-_-
<span class="limits-msub-msup">  
  <span class="limits-mrow-base">  
    <span class="mo-op">a</span>  
  </span>  
  <span class="limits-mrow-sub">  
    <span class="begin-limits-script" title="speech-extra"> under script </s\pan>  
    <span class="mi">b</span>  
    <span class="end-limits-script" title="speech-extra"> end script </span>  
  </span>  
</span>

<span class="limits-msub-msup">  
  <span class="limits-mrow-base">  
            <span class="mo-op"> a</span>  
  </span>  
  <span class="limits-mrow-super">  
    <span class="begin-limits-script" title="speech-extra"> over script </spa\n>  
    <span class="mi">b</span>  
    <span class="end-limits-script" title="speech-extra"> end script </span>  
  </span>  
</span>

<span class="limits-msub-msup">  
  <span class="limits-mrow-base">  
    <span class="mo-op"> a</span>  
  </span>  
  <span class="limits-mrow-sub">  
    <span class="begin-limits-script" title="speech-extra"> under script </\span>  
    <span class="mi">b</span>  
  </span>  
  <span class="limits-mrow-super">  
    <span class="mid-limits-script" title="speech-extra"> over script </spa\n>  
    <span class="mi">c</span>  
    <span class="end-limits-script" title="speech-extra"> end scripts </spa\n>  
  </span>  
</span>

<..configure html-speech tex4ht..>+
 \Css{.begin-limits-script, .end-limits-script, .mid-limits-script {color:green;}}
 \Css{.begin-script, .end-script, .mid-script   {color:green;}}
-_-_-

<..configure emacspeak tex4ht..>+
 \CssSpeech{.begin-limits-script,
            .end-limits-script, .mid-limits-script {stress:3;}}
 \CssSpeech{.begin-script, .end-script, .mid-script   {stress:3;}}
-_-_-

1.2.2 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..>
 <span class="limits-msub-msup"><span class="limits-mrow-base"\Hnewline>%
-_-_-

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

<..msubsup limits sup..>
 \HCode{</span><span 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}</span></span\Hnewline>}%
-_-_-

<..configure html-speech-math tex4ht..>+
 \NewConfigure{speak:underover}{3}
 \Configure{speak:underover}
    {under script}
    {over script}
    {end scripts}
-_-_-

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

1.2.3 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{</span><span class="limits-mrow-super"\Hnewline
     >\add:description{begin-limits-script}{\b:speak:underover}}\trap:base
-_-_-

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

<..close external limits SUP..>
 \HCode{\add:description{end-limits-script}{\c:speak:underover}</span></span\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.>%
-_-_-

1.2.4 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{</span><span class="limits-mrow-sub"\Hnewline
     >\add:description{begin-limits-script}{\a:speak:underover}}\trap:base
-_-_-

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

<..close external limits SUB..>
 \HCode{\add:description{end-limits-script}{\c:speak:underover}</span></span\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.>%
-_-_-