2.5 Limits of Sub- snd Super- Scripts

  2.5.1 Outline
  2.5.2 Simultaneously Sub- and Super- Scripts
  2.5.3 Superscripts
  2.5.4 Subscripts

2.5.1 Outline

<..limits sub, sup, subsup..>
 \Configure{nolimits}{\HCode{\string\nolimits\space}}
 \Configure{limits}
    {\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.>%
    }
-_-_-

2.5.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}{\l:brace}\HCode{\r:brace
                             \string_\l:brace}\trap:base
    }
    {\HCode{\r:brace\string^\l:brace}\trap:base}
    {\HCode{\r:brace}}
-_-_-

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

2.5.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}{\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base
-_-_-

<..close external limits SUP..>
 \HCode{\r:brace}\aftergroup<.restore SUP.>%
-_-_-

<..restore SUP..>
 \pl:SUP  
-_-_-

<..open intermediate limits SUP..>
 \Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base
-_-_-

<..open internal limits SUP..>
 \Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}%
-_-_-

<..close internal limits SUP..>
 \HCode{\r:brace}%
-_-_-

2.5.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}{\l:brace}\HCode{\r:brace\string_\l:brace}%
-_-_-

<..close external limits SUB..>
 \HCode{\r:brace}\aftergroup<.restore SUB.>%
-_-_-

<..restore SUB..>
 \pl:SUB 
-_-_-

<..open intermediate limits SUB..>
 \Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}%
-_-_-

<..open internal limits SUB..>
 \Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}%
-_-_-

<..close internal limits SUB..>
 \HCode{\r:brace}%
-_-_-