Tue Feb 4 23:50:50 1997 Johannes Braams * supertabular.dtx (section{The Implementation}): Removed the use of the page height correction for p-columns; the current algorithm no longer needs this correction. Fixed the fact that the height of the head and/or tail of a supertabular were counted *twice* when they contain tabular material. Base the decision whether to start a new supertabular on the next page on a calculated minimum height of the table. The minimum is the head, the tail and 1 line of tabular data. Thu Nov 28 20:38:53 1996 Johannes Braams * supertabular.dtx: Started a cleanup of the code, made source file a full fledged .dtx file Old change notes from supertabular.doc are saved here: % % % supertabular sty % original idea: Theo Jurriens 1988 % jurriens@fwn.rug.nl P.O Box 800, 9700 AV Groningen % % revised by: Johannes Braams % JLBraams@cistron.nl TeXniek (NL) % \def\fileversion{3.7c} % \def\filename{supertabular sty} % \def\filedate{1995/10/16} % % \changes{v3.7c}{1995/10/16}{No space after the argument of % supertabular led to a `mysterious' error because of the space % delemiting the argument} % \changes{v3.7b}{1994/05/16}{Rewrote the page break deciding % algorithm again} % \changes{v3.7b}{1994/05/16}{Started to convert to dtx format} % % 05.04.93 - Supertabular didn't work correctly in twocolumn mode. % V 3.7a Rewrote the mechanism for establishing the amount of % space that supertabular can use. This still needs further % thought. The algorithm to compute the places to break % the table is still a bit fragile, especially when p{} % columns are used. % 10.07.92 - Still a problem in the combination of supertabular with array.sty % V 3.6h I overlooked the fact that array doesn't use \@tabulacr anymore % and it behaves differently with respect to \@startparbox. % 03.07.92 - A problem in the combination of supertabular with array.sty % V 3.6g It can be solved by removing the \string from \def\tableformat % and passing \tableformat expanded to \tabular. % 11.02.92 - Bug found by Michael Heissmeier when p{...} is used. % V 3.6f A change in LaTeX.tex didn't find its way into supertabular. % 11/03/92 JB: The following change didn't find its way into the % \@sendpbox command. This caused a difference in linespacing % between a supertabular and a normal tabular. % \def\@endpbox{\unskip\strut\par\egroup\hfil} % % 14 Jan 89: Def of \@endpbox changed from % % \def\@endpbox{\par\vskip\dp\@arstrutbox\egroup\hfil} % % so vertical spacing works out right if the last line of a `p' entry % % has a descender. % % 01.08.91 - Take height of tabletail into account when computing the % V 3.6e maximum tableheight; add tolerance on first (partial) page % of the supertabular. % 27.06.91 - Cured bug that made the first part of the table one line % V 3.6d shorter than the others. Appeared when supertabular was % used in a twocolumn environment. % 26.06.91 - Made \@process@tablecaption a global macro. Previous caption % V 3.6c turned up on a table without one. % 27.05.91 - Replaced \clearpage with \newpage to make supertabulars work % V 3.6b in a twocolumn environment. This also prevents all floats % from being printed. % 15.02.91 - Because of the check for the use of tablefirsthead the % V 3.6a combination of an \hline in the head and an \hline as the first % thing in the data went wrong. The \futurelet in the definition % of \hline found \fi instead of \hline, so no \doublerulesep % was added. % Also had to modify the way the environments were defined. % The blank space (from the CR after the argument of \supertabular) % has to be gobbled. This can only be done using a construction % like \def\command#1 {...}. So removed the use of \newenvironment % 04.02.91 - Added the commands \topcaption, \bottomcaption and \tablecaption % V 3.6 to include a caption within the supertabular environment. The % default behaviour is to put the caption before the actual start % of the table. % - Also added \tablefirsthead and \tablelasttail to let the % user specify a different head for the first page of the table % and for consecutive pages as well as different tails for first % pages and the last one. If these commands are not used, the % default behaviour will be to use the value of \tablehead end % \tabletail % - Removed the need for the \noalign{\global\let\\=\@stabularcr} % commands by storing and resetting \@stabularcr % % 16.10.90 Added the supertabular* environment that was in an earlier % V 3.5 version (2.0) by the original author % Reintroduced the version numbering % % revised by: Gabriele Kruljac % kruljac@ds0mpi11 Max-Planck-Institute Stuttgart % % % 06.06.89 Correction: now care is taken of probably existing onecolumn % head (title or tables ...) in twocolumn sty. % % 10.05.89 Correction: the new \\ definition has been added to the % begin of each `sub'-tabular % Added: algorithm to produce the tabulars in twocolumn style % % 06.04.89 Correction: put \global statement in \end{supertabular} % into \noalign % % 22.02.89 Correction: restore the original meaning of \\ with % \end{supertabular} % % (Feb 89) The whole algorithm has been changed, so that I can use % the most features of a normal tabular: % \\ for new line, including \\[#1] % p{...} in the preamble ... % Account is taken to \baselinestretch and \arraystretch % -I'm not counting the lines because of too much rounding errors % but instead I add the (estimated) used space in pt. % -The tablehead is taken into this algorithm of proofing, so % I really know how much space the head uses. % -When no p-arg is given I add a variable \midlineheight to % calculate the used space. To calculate \midlineheight I % take the \baselineskip, which is active when the supertabular % starts (\baselineskip includes the \value of \baselinestretch) % and multiply it with \arraystretch. % -When a p-arg is given the text will be stored in a box. So % I know the height I have to add. Also I reduce the maximum % pagesize, so that the last parbox on a page can get up to % max 4 lines without producing an overfull vbox. % -To do so I had to make some additions to LaTeX's tabular % commands. These new commands got a leading `s'.