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

  1.10.1 Outline
  1.10.2 Simultaneously Sub- and Super- Scripts
  1.10.3 Superscripts
  1.10.4 Subscripts

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

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

1.10.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{</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.>%
-_-_-

1.10.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{</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.>%
-_-_-