[Tex/LaTex] Prevent supertabular* from breaking too early

page-breakingsupertabulartables

I have a similar question as ipavlic, that is, the break of a long table by the supertabular package comes too soon. The solution proposed by egreg works well for the supertabular environment, however, being a LateX noob I cannot get it to work for the supertabular* environment.

Minimal working example

    \documentclass[a4paper,12pt,oneside]{article}
    \usepackage{supertabular}

    \makeatletter 
    \def\mod@estimate@lineht{% 
      \ST@lineht=\arraystretch \baslineskp 
      %\global\advance\ST@lineht by 1\p@ 
      \ST@stretchht\ST@lineht\advance\ST@stretchht-\baslineskp 
      \ifdim\ST@stretchht<\z@\ST@stretchht\z@\fi 
      \ST@trace\tw@{Average line height: \the\ST@lineht}% 
      \ST@trace\tw@{Stretched line height: \the\ST@stretchht}% 
    } 
    \newenvironment{strictsupertabular*} 
      {\let\estimate@lineht\mod@estimate@lineht\supertabular*} 
      {\endsupertabular*} 
    \makeatother

    \begin{document}

    \tablefirsthead{\hline\hline a & b & c\\\hline}
    \tablehead{\hline\hline a & b & c\\\hline}
    \tabletail{\hline\hline}
    \tablelasttail{\hline\hline}
    \topcaption{caption}
    \centering
    \begin{supertabular*}{1 \columnwidth}{@{\extracolsep{\fill}} c c c}
    1 & 2 & 3\\
    4 & 5 & 6\\
    \end{supertabular*}

    \end{document}

However, when I change supertabular* to strictsupertabular* I get an error. Is it possible to define a strictsupertabular environment that has tabular* functionality?

Best Answer

[OP's answer, moved from question]

I figured it out, the following definition of the new strictsupertabular* environment works

    \newenvironment{strictsupertabular*} 
      {\let\estimate@lineht\mod@estimate@lineht\@nameuse{supertabular*}} 
      {\@nameuse{endsupertabular*}}