% Push: in tabular and array env, add % push command for pushing up \hlines % set in tabular and array environments. % \push -- push up (for superscripts) % \dpush -- push down (subscripts) % \apush -- push in both directions. % \rowspan -- move text down 1/2 line. % Richard Hughey 23 Jan 1991 \def\@@pushline#1{{% \setbox3\hbox{#1}\dimen3=\ht3\advance\dimen3 3.5pt\box3\rule{0pt}{\dimen3}}} \def\@@dpushline#1{{% \setbox3\hbox{#1}\dimen4=\dp3\advance\dimen4 3.5pt\box3\rule[-\dimen4]{0pt}{\ht3}}} \def\@@apushline#1{{% \setbox3\hbox{#1}\dimen3=\ht3\advance\dimen3 7pt\dimen4=\dp3% \advance\dimen3\dp3\advance\dimen4 3.5pt\box3\rule[-\dimen4]{0pt}{\dimen3}}} \def\@@rowspan{\@ifnextchar[{\@@@rowspan}{\@@@rowspan[1.5ex]}} \def\@@@rowspan[#1]#2{{\setbox1\hbox{#2}\dimen1=.5\baselineskip% \advance\dimen1 #1% \vbox to 0pt{\vskip\dimen1\vbox to \dp1{\vss\box1}\vss}}} \def\@@mpushline#1{\@@pushline{$#1$}} \def\@@mdpushline#1{\@@dpushline{$#1$}} \def\@@mmpushline#1{\mbox{\@@pushline{#1}}} \def\@@mapushline#1{\mbox{\@@apushline{$#1$}}} \def\@@@mrowspan[#1]#2{\@@rowspan{$#2$}} \def\@@mrowspan{\@ifnextchar[{\@@@mrowspan}{\@@@mrowspan[1.5ex]}} \let\@rphtabular=\tabular \let\@rpharray=\array \def\tabular{\let\push=\@@pushline\let\dpush=\@@dpushline% \let\apush=\@@apushline\let\rowspan=\@@rowspan\@rphtabular} \def\array{\let\push=\@@mpushline\let\mpush=\@@mmpushline \let\rowspan=\@@mrowspan\let\mrowspan=\@@rowspan \let\dpush=\@@mdpushline\let\apush\@@mapushline\@rpharray}