texlive[71854] Master/texmf-dist: supertabular (20jul24)

commits+karl at tug.org commits+karl at tug.org
Sat Jul 20 21:59:13 CEST 2024


Revision: 71854
          https://tug.org/svn/texlive?view=revision&revision=71854
Author:   karl
Date:     2024-07-20 21:59:13 +0200 (Sat, 20 Jul 2024)
Log Message:
-----------
supertabular (20jul24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/supertabular/CATALOG
    trunk/Master/texmf-dist/doc/latex/supertabular/MANIFEST
    trunk/Master/texmf-dist/doc/latex/supertabular/README
    trunk/Master/texmf-dist/doc/latex/supertabular/supertabular.pdf
    trunk/Master/texmf-dist/source/latex/supertabular/supertabular.dtx
    trunk/Master/texmf-dist/tex/latex/supertabular/supertabular.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/supertabular/supertabular.bug

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/supertabular/ChangeLog

Modified: trunk/Master/texmf-dist/doc/latex/supertabular/CATALOG
===================================================================
--- trunk/Master/texmf-dist/doc/latex/supertabular/CATALOG	2024-07-20 15:57:11 UTC (rev 71853)
+++ trunk/Master/texmf-dist/doc/latex/supertabular/CATALOG	2024-07-20 19:59:13 UTC (rev 71854)
@@ -1,7 +1,7 @@
 Name: supertabular (also called supertab)
-Problems-To: texniek at braams.xs4all.nl
+Problems-To: texniek at texniek.nl
 Author: J.L. Braams and T. Jurriens
-Version: 4.1g
+Version: 4.2c
 
 Description:
 
@@ -23,6 +23,4 @@
 
 Address:
 TeXniek
-Kersengaarde 33
-2723 BP Zoetermeer
 The Netherlands

Deleted: trunk/Master/texmf-dist/doc/latex/supertabular/ChangeLog
===================================================================
--- trunk/Master/texmf-dist/doc/latex/supertabular/ChangeLog	2024-07-20 15:57:11 UTC (rev 71853)
+++ trunk/Master/texmf-dist/doc/latex/supertabular/ChangeLog	2024-07-20 19:59:13 UTC (rev 71854)
@@ -1,279 +0,0 @@
-2020-02-02  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx: Replaced the way the height of normal tabular
-	lines is calculated by basing it on the height and depth of
-	\strutbox. This also ment being able to take the \extrarowheight
-	from the array package into account.
-	Also the height of the first and subsequent heads was not taken
-	into account in the calculation of the available pageheigt. This
-	meant that especially the first part of the table could become too
-	high and hence be forced onto the next page (which is, by
-	consequence) not entirely filled).
-	Finally, if a caption preceeds the table, the entire height of the
-	caption and the white space around it may not yet be accounted in
-	\pagesofar. Therefore we substract a little extra from
-	\ST at pageleft. 
-
-2020-01-26  Johannes Braams  <texniek at braams.xs4all.nl>
-	* supertabular.dtx: Updated the copyright year and rearranged the
-	text around the examples in order to get the first table to split
-	accross a page boundary again.
-
-2019-01-18  Johannes Braams  <texniek at braams.xs4all.nl>
-
-        * supertabular.dtx: The linenumber in the tracing information, that
-        is reported from within \\, is off by one when the optional
-        argument is missing. Therefore the input linenumber is now saved
-        before TeX starts scanning. Problem reported by Frank Mittelbach.
-
-2019-01-16  Johannes Braams  <texniek at braams.xs4all.nl>
-
-        * supertabular.dtx: The option "pageshow" didn't work as it set a
-        too low value in \c at tracingst. Problem reported by Frank
-        Mittelbach.
-
-2019-01-12  Johannes Braams  <texniek at braams.xs4all.nl>
-        * supertabular.dtx : The definition for the first table head was
-        different from the definition of the regular table heads.
-        This problem was reported  by FMi as it produced an extra table in
-        an example.
-        The same was true for the table tail and the last table tail,
-        applied the same fix.
-        FMi also reported that a first table head, once set would appear on
-        all subsequent supertabulars. The internal macro's now `undefine'
-        themselves although this couteracts the change that was introduced
-        on 08-08-1999.
-
-2001-08-21  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : The macro \ST at next needs to be defined when
-	\ST at skippage was called. Therefore I moved the default definition
-	to earlier in the code; just before the \if clause after which it
-	is called; possibly defined by \ST at newpage. This problem was
-	reported by Andrew Dorrell <dorrell at research.canon.com.au>.
-
-1999-08-08  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : No longer re-initialize the internal variable
-	\@table at first@head and \@table at last@tail. This made it impossible
-	to have more than one supertabular in the same document with the
-	exact same appearance of the heads and tail without repeatedly
-	redeclaring the firsthead and/or lasttail. Reported by Christian
-	Matuszewski <matuszew at informatik.uni-halle.de>.
-
-Fri Nov  7 20:27:27 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : For standard LaTeX we need to change
-	\@@startpbox not \@startpbox. Found by Peter R Wilson
-	<Peter.Wilson at PSS.Boeing.com>
-
-Wed Oct  8 22:35:40 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx: Running the documentation revealed a loop;
-	inside the table tail and head \\ was reset to \@tabularcr instead
-	of to \@@tabularcr (now: \org at tabularcr). First found by Thomas
-	Esser <te at informatik.uni-hannover.de> 
-
-Sat Sep 27 21:35:29 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx: Added the mpsupertabular and mpsupertabular*
-	environments provided by Axel Kielhorn <A.Kielhorn at tu-bs.de>;
-	added \noindent in front of all the starts of tabulars and
-	minipages as it seems senseles to have a paragraph indent in front
-	of a large tabularl; fixed a few documentation bugs.
-	The calculation of the available height still missed the case
-	where TeX has already begun the second column.
-
-Thu Sep 18 00:31:55 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : The \tablehead and \tabletail commands reset
-	the command \\; they used \cr for it. That should have been
-	\@tabularcr to properly deal with it's optional argument.
-	Found by Axel Kielhorn <A.Kielhorn at tu-bs.de>
-
-Wed Sep 17 23:59:13 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : In two column mode the parameters that
-	determine how much space is left on the page were not correctly
-	initialised when TeX hasn't yet filled up the first column
-	completely.
-	Found by Jeffrey Spielberg <jspielberg at infinet-software.com>
-
-Tue May 20 23:46:08 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : \shrinkheight didn't shrink the available
-	height for a part of the tabular (as documented); it just *set* it
-	to the value given. Made it perform as documented and added
-	\setSTheight for the former functionality
-	At the end of a supertabular \@table at first@head and
-	\@table at last@tail are undefined; this shoud be done globally.
-	Found by Axel Kielhorn <A.Kielhorn at tu-bs.de>
-
-Sat Apr 12 23:37:33 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : Added \ST at stretchht and \ST at prevht to improve
-	decision process. \estimate at lineht now also computes the
-	difference between a normal line height and when \arraystretch is
-	in effect.
-
-Thu Apr 10 23:33:07 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx: Had to repaire some documentation errors.
-	(found by Thomas Esser <te at informatik.uni-hannover.de>)
-
-Wed Apr  9 00:29:36 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : Only the first part of a supertabular can be
-	moved to the next page. Therefore we need to change the definition
-	of \ST at skippage in the middle of processing the supertabular data.
-
-
-Thu Mar  6 21:56:18 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx : Using a tabular environment in the cells of a
-	supertabular gives `interesting' results when the algorithm
-	decides to split the supertabular down the middle of an inner
-	tabular. A number of changes were necessary to make this work.
-	Found by Axel Kielhorn <i0080108 at ws.rz.tu-bs.de>
-
-Thu Feb 20 23:29:18 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* supertabular.dtx: Renamed \tableformat into \ST at tableformat
-	because the KOPMA-packages also use \tableformat and therefore
-	clashed with babel.
-	Found by Axel Kielhorn <i0080108 at ws.rz.tu-bs.de>
-
-Tue Feb  4 23:50:50 1997  Johannes Braams  <texniek at braams.xs4all.nl>
-
-	* 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  <texniek at braams.xs4all.nl>
-
-	* 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 at fwn.rug.nl P.O Box 800, 9700 AV Groningen
-%
-% revised by:     Johannes Braams
-%                 texniek at braams.xs4all.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 at 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 at 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'.

Modified: trunk/Master/texmf-dist/doc/latex/supertabular/MANIFEST
===================================================================
--- trunk/Master/texmf-dist/doc/latex/supertabular/MANIFEST	2024-07-20 15:57:11 UTC (rev 71853)
+++ trunk/Master/texmf-dist/doc/latex/supertabular/MANIFEST	2024-07-20 19:59:13 UTC (rev 71854)
@@ -1,6 +1,6 @@
-README		 - A short introduction
-MANIFEST 	 - A list of files
-CATALOG 	 - An entry for the macro catalog
+00readme.tx	 - A short introduction
+manifest.txt 	 - A list of files
+catalog.txt 	 - An entry for the macro catalog
 Changelog	 - An overview of the changes to the package
 supertabular.dtx - The documented version of the code, including a couple
                    of examples of how to use it. Needs supertabular.sty

Modified: trunk/Master/texmf-dist/doc/latex/supertabular/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/supertabular/README	2024-07-20 15:57:11 UTC (rev 71853)
+++ trunk/Master/texmf-dist/doc/latex/supertabular/README	2024-07-20 19:59:13 UTC (rev 71854)
@@ -13,9 +13,9 @@
 
 Supertabular can be used with LaTeX2e as a package.
 
-Copyright (C) 1989 - 2020 Johannes L. Braams texniek at braams.xs4all.nl
+Copyright (C) 1989 - 2024 Johannes L. Braams texniek at texniek.nl
 
 This program can be redistributed and/or modified under the terms
 of the LaTeX Project Public License Distributed from CTAN
 archives in directory macros/latex/base/lppl.txt; either
-version 1 of the License, or any later version.
+version 1.3c of the License, or any later version.

Added: trunk/Master/texmf-dist/doc/latex/supertabular/supertabular.bug
===================================================================
--- trunk/Master/texmf-dist/doc/latex/supertabular/supertabular.bug	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/supertabular/supertabular.bug	2024-07-20 19:59:13 UTC (rev 71854)
@@ -0,0 +1,300 @@
+2021-02-14  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: Issue a \penalty-\@M instead of \newpage when
+	moving the first part of a supertabular to the next page to
+	prevent the first two rows from opverlapping.
+
+2021-02-14  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: When the tablehead and/or tabletail are not
+	defeined the internal macros that store their arguments need to
+	remain empty as well. Otherwise the algorithm will always think
+	there's a head and tail with a height of 2.5 pt.
+
+2020-06-27  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: the new algorithm for calculating the height
+	of the row broke old documents, especially when small font sizes
+	are used. Made the new algorithm optional (calculate versus
+	estimate) and make sure the row height covers super- and
+	subscripts. 
+
+2020-02-02  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: Replaced the way the height of normal tabular
+	lines is calculated by basing it on the height and depth of
+	\strutbox. This also meant being able to take the \extrarowheight
+	from the array package into account.
+	Also the height of the first and subsequent heads was not taken
+	into account in the calculation of the available pageheigt. This
+	meant that especially the first part of the table could become too
+	high and hence be forced onto the next page (which is, by
+	consequence) not entirely filled).
+	Finally, if a caption preceeds the table, the entire height of the
+	caption and the white space around it may not yet be accounted in
+	\pagesofar. Therefore we substract a little extra from
+	\ST at pageleft. 
+
+2020-01-26  Johannes Braams  <texniek at texniek.nl>
+	* supertabular.dtx: Updated the copyright year and rearranged the
+	text around the examples in order to get the first table to split
+	accross a page boundary again.
+
+2019-01-18  Johannes Braams  <texniek at texniek.nl>
+
+        * supertabular.dtx: The linenumber in the tracing information, that
+        is reported from within \\, is off by one when the optional
+        argument is missing. Therefore the input linenumber is now saved
+        before TeX starts scanning. Problem reported by Frank Mittelbach.
+
+2019-01-16  Johannes Braams  <texniek at texniek.nl>
+
+        * supertabular.dtx: The option "pageshow" didn't work as it set a
+        too low value in \c at tracingst. Problem reported by Frank
+        Mittelbach.
+
+2019-01-12  Johannes Braams  <texniek at texniek.nl>
+        * supertabular.dtx : The definition for the first table head was
+        different from the definition of the regular table heads.
+        This problem was reported  by FMi as it produced an extra table in
+        an example.
+        The same was true for the table tail and the last table tail,
+        applied the same fix.
+        FMi also reported that a first table head, once set would appear on
+        all subsequent supertabulars. The internal macro's now `undefine'
+        themselves although this couteracts the change that was introduced
+        on 08-08-1999.
+
+2001-08-21  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : The macro \ST at next needs to be defined when
+	\ST at skippage was called. Therefore I moved the default definition
+	to earlier in the code; just before the \if clause after which it
+	is called; possibly defined by \ST at newpage. This problem was
+	reported by Andrew Dorrell <dorrell at research.canon.com.au>.
+
+1999-08-08  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : No longer re-initialize the internal variable
+	\@table at first@head and \@table at last@tail. This made it impossible
+	to have more than one supertabular in the same document with the
+	exact same appearance of the heads and tail without repeatedly
+	redeclaring the firsthead and/or lasttail. Reported by Christian
+	Matuszewski <matuszew at informatik.uni-halle.de>.
+
+Fri Nov  7 20:27:27 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : For standard LaTeX we need to change
+	\@@startpbox not \@startpbox. Found by Peter R Wilson
+	<Peter.Wilson at PSS.Boeing.com>.
+
+Wed Oct  8 22:35:40 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: Running the documentation revealed a loop;
+	inside the table tail and head \\ was reset to \@tabularcr instead
+	of to \@@tabularcr (now: \org at tabularcr). First found by Thomas
+	Esser <te at informatik.uni-hannover.de>.
+
+Sat Sep 27 21:35:29 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: Added the mpsupertabular and mpsupertabular*
+	environments provided by Axel Kielhorn <A.Kielhorn at tu-bs.de>;
+	added \noindent in front of all the starts of tabulars and
+	minipages as it seems senseles to have a paragraph indent in front
+	of a large tabularl; fixed a few documentation bugs.
+	The calculation of the available height still missed the case
+	where TeX has already begun the second column.
+
+Thu Sep 18 00:31:55 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : The \tablehead and \tabletail commands reset
+	the command \\; they used \cr for it. That should have been
+	\@tabularcr to properly deal with it's optional argument.
+	Found by Axel Kielhorn <A.Kielhorn at tu-bs.de>
+
+Wed Sep 17 23:59:13 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : In two column mode the parameters that
+	determine how much space is left on the page were not correctly
+	initialised when TeX hasn't yet filled up the first column
+	completely.
+	Found by Jeffrey Spielberg <jspielberg at infinet-software.com>
+
+Tue May 20 23:46:08 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : \shrinkheight didn't shrink the available
+	height for a part of the tabular (as documented); it just *set* it
+	to the value given. Made it perform as documented and added
+	\setSTheight for the former functionality
+	At the end of a supertabular \@table at first@head and
+	\@table at last@tail are undefined; this shoud be done globally.
+	Found by Axel Kielhorn <A.Kielhorn at tu-bs.de>
+
+Sat Apr 12 23:37:33 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : Added \ST at stretchht and \ST at prevht to improve
+	decision process. \estimate at lineht now also computes the
+	difference between a normal line height and when \arraystretch is
+	in effect.
+
+Thu Apr 10 23:33:07 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: Had to repaire some documentation errors.
+	(found by Thomas Esser <te at informatik.uni-hannover.de>)
+
+Wed Apr  9 00:29:36 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : Only the first part of a supertabular can be
+	moved to the next page. Therefore we need to change the definition
+	of \ST at skippage in the middle of processing the supertabular data.
+
+
+Thu Mar  6 21:56:18 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx : Using a tabular environment in the cells of a
+	supertabular gives `interesting' results when the algorithm
+	decides to split the supertabular down the middle of an inner
+	tabular. A number of changes were necessary to make this work.
+	Found by Axel Kielhorn <i0080108 at ws.rz.tu-bs.de>
+
+Thu Feb 20 23:29:18 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* supertabular.dtx: Renamed \tableformat into \ST at tableformat
+	because the KOPMA-packages also use \tableformat and therefore
+	clashed with babel.
+	Found by Axel Kielhorn <i0080108 at ws.rz.tu-bs.de>
+
+Tue Feb  4 23:50:50 1997  Johannes Braams  <texniek at texniek.nl>
+
+	* 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  <texniek at texniek.nl>
+
+	* 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 at fwn.rug.nl P.O Box 800, 9700 AV Groningen
+%
+% revised by:     Johannes Braams
+%                 texniek at texniek.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 at 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 at 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'.


Property changes on: trunk/Master/texmf-dist/doc/latex/supertabular/supertabular.bug
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/supertabular/supertabular.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/supertabular/supertabular.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/supertabular/supertabular.dtx	2024-07-20 15:57:11 UTC (rev 71853)
+++ trunk/Master/texmf-dist/source/latex/supertabular/supertabular.dtx	2024-07-20 19:59:13 UTC (rev 71854)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright 1989-2020 Johannes L. Braams.  All rights reserved.
+% Copyright 1989-2021 Johannes L. Braams.  All rights reserved.
 %
 % This file is part of the supertabular package.
 % ---------------------------------------------
@@ -25,14 +25,13 @@
 % extension .ins) which are part of the distribution.
 % \fi
 %
-% \CheckSum{1132}
+% \CheckSum{1188}
 % \iffalse
 %% Sourcefile `supertabular.dtx'.
 %%
 %% Copyright (C) 1988 by Theo Jurriens 
-%% Copyright (C) 1990-2020 by Johannes Braams texniek at braams.xs4all.nl
-%%                            Kersengaarde 33
-%%                            2723 BP Zoetermeer NL
+%% Copyright (C) 1990-2024 by Johannes Braams texniek at texniek.nl
+%%                            The Netherlands
 %%                       all rights reserved.
 %%
 %%
@@ -43,11 +42,11 @@
 %<package>\ProvidesPackage{supertabular}
 %<driver>\ProvidesFile{supertabular.drv}
 %\ProvidesFile{supertabular.dtx}
-              [2020/02/02 v4.1g the supertabular environment]
+              [2024/07/20 v4.2c the supertabular environment]
 %
 %<*driver>
 \documentclass{ltxdoc}
-\usepackage[debugshow]{supertabular}
+\usepackage[debugshow,calculate]{supertabular}
 \newcommand{\tbsp}{\rule{0pt}{18pt}}
 \begin{document}
 \providecommand{\Lenv}[1]{\textsf{#1}}
@@ -59,17 +58,19 @@
 %</driver>
 % \fi
 %
-% \changes{v4.0a}{1996/11/28}{Cleanup of the code, now a \file{.dtx}
-%    source file} 
-% \changes{v4.0c}{1997/02/20}{Replace \cs{tableformat} by
-%    \cs{ST at tableformat} to prevent a clash with the \pkg{KOMA}
-%    pacakage} 
-% \changes{v4.0f}{1997/04/10}{Repaired a few typos in the
-%    documentation}
-% \changes{v4.1a}{1997/09/18}{Repaired a number of typos and added
-%    contributed mpsupertabular environemnts} 
-% \changes{v4.1b}{1997/10/08}{Renamed \cs{@@tabularcr} to
-%    \cs{org at tabularcr}}
+%   \changes{v4.0a}{1996/11/28}{Cleanup of the code, now a \file{.dtx}
+%      source file} 
+%   \changes{v4.0c}{1997/02/20}{Replace \cs{tableformat} by
+%      \cs{ST at tableformat} to prevent a clash with the \pkg{KOMA}
+%      pacakage} 
+%   \changes{v4.0f}{1997/04/10}{Repaired a few typos in the
+%      documentation}
+%   \changes{v4.1a}{1997/09/18}{Repaired a number of typos and added
+%      contributed mpsupertabular environemnts} 
+%   \changes{v4.1b}{1997/10/08}{Renamed \cs{@@tabularcr} to
+%     \cs{org at tabularcr}}
+%   \changes{v4.2a}{2020-06-27}{renamed \cs{ST at lineht} to \cs{ST at rowht}}
+%   \changes{v4.2c}{2024/07/20}{A few documentation changes}
 %
 %  \GetFileInfo{supertabular.dtx}
 %  \title{The \texttt{supertabular} environment\thanks{This file
@@ -110,7 +111,13 @@
 %      and why \pkg{supertabular} decides to break the tabular
 %      environment in order to produce a new page. 
 %    \item The option \textsf{debugshow} also adds information about
-%      each line that is added to the tabular.
+%      each row that is added to the tabular.
+%    \item The option \textsf{estimate} (the default) has the package
+%      use the old estimation-based algortihm to establish the height
+%      of individual rows.
+%    \item The option \textsf{calculate} has the package use the new
+%      calculation-based algortihm to establish the height
+%      of individual rows.
 %    \end{enumerate}
 %
 %    Below is a description of the new commands and environments that
@@ -172,15 +179,15 @@
 %
 %  \begin{itemize}
 %  \item When the material of a normal entry (not a p-arg) becomes
-%    larger than the estimated |\ST at lineht|, overfull |\vbox|es
-%    will be produced at all. 
+%    larger than the estimated |\ST at rowht|, overfull |\vbox|es
+%    will be produced. 
 %  \item When the last p-arg on a page gets more than 4 lines
 %    (probably even more than 3 lines) it will result in an  overfull
 %    |\vbox|.  Also some combinations of |\baselinestretch|
-%    |\arraystretch| and  a large font may lead to one line too much. 
-%  \item if accidentally the last line of the tabular produces a
+%    |\arraystretch| and  a large font may lead to one row too much. 
+%  \item if accidentally the last row of the tabular produces a
 %    newpage, on the next page the tabletail will be written
-%    immediately after the tablehead. Depending on the contents this
+%    immediately after the tablehead. Depending on the contents, this
 %    may result in an error message regarding misplaced |\noalign|. 
 %
 %    A quick but not very elegant solution: shrink the allowed height
@@ -431,6 +438,36 @@
 \DeclareOption{errorshow}{\c at tracingst\z@}
 \DeclareOption{pageshow}{\c at tracingst\thr@@}
 \DeclareOption{debugshow}{\c at tracingst5\relax}
+%    \end{macrocode}
+%    In version 4.1g a new way of determining the height of the
+%    average row was introduced. Instead of using an estimation, based
+%    on the value of |\baselineskip| a computation was introduced,
+%    based on the size of the |\strutbox|. The effect of this new
+%    method was that the parial tabulars fill the page better, so less
+%    \texttt{underfull vbox} message would appear. Unfortunately this
+%    had a negative effect on existing documents (that don;t come out
+%    like they used to) and especially when a very small font
+%    (|\tiny| or |\scriptsize| was chosen for the tabular and the
+%    cells contain subscripts or superscripts. It turned out that the
+%    heigth and depth of a formula like $5^5_5$ exceeds the size of
+%    |\strutbox|. The result is that the rows have more height (and/or
+%    depth) thatn what the algorithm computed. Hence, when more rows
+%    are added to the partial tabular than fit on the page. Especially
+%    on the first part thisis a probem as the partial tabular becomes
+%    too high and doesn't fit in the avialbale space. \TeX\ then
+%    decides to move it to the next page, resulting in two
+%    consecutive pages that have a lot of white space on them.
+% \changes{v4.2a}{2020-06-27}{Two new options to choose the
+%    computation algorithhm}
+%    \begin{macrocode}
+\DeclareOption{calculate}{\def\ST at calculate@rowht{\ST at compute@rowht}}
+\DeclareOption{estimate}{\def\ST at calculate@rowht{\ST at estimate@rowht}}
+%\def\ST at calculate@rowht{\ST at estimate@rowht}
+%    \end{macrocode}
+%    The default for the options is to only show errors and use the
+%    old estmation algorithm (so as not to break old documents).
+%    \begin{macrocode}
+\ExecuteOptions{errorshow,estimate}
 \ProcessOptions
 %    \end{macrocode}
 %
@@ -510,7 +547,7 @@
 %    yet be visible in the amount of space occupoed on the page
 %    sofar. Therefore we include the possibility to reduce the height
 %    of the first part of the supertabular. In order to this we need a
-%    macro that indicates a aption has been put in front of the
+%    macro that indicates a caption has been put in front of the
 %    table. We do this to reduce the risk that the first part of the
 %    table is too high after all and is pushed onto the next page due
 %    to an overfull |\vbox| condition.
@@ -523,7 +560,7 @@
 %  \begin{macro}{\ST at caption}
 %    This is a redefinition of LaTeX's |\@caption|, |\@makecaption| is
 %    called within a group so as not to return to |\normalsize|
-%    globally. also a fix is made for the `feature' of the
+%    globally. Also a fix is made for the `feature' of the
 %    |\@makecaption| of the document class \cls{article} and friends
 %    that a caption \textbf{always} gets a |\vskip 10pt| at the top
 %    and \textbf{none} at the bottom. If a user wants to precede his
@@ -554,14 +591,19 @@
 %    to \cs{@tabularcr}} 
 % \changes{v4.1b}{1997/10/08}{Not \cs{@tabularcr} but
 %    \cs{org at tabularcr}}
+% \changes{v4.2b}{2021-02-14}{When the argument is empty the internal
+%    macro \cs{@tablehead} needs to be empty as well.} 
 %    \begin{macrocode}
 \newcommand\tablehead[1]{%
-  \gdef\@tablehead{%
-  \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{\global\let\\=\@savcr}}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@tablehead{}\else
+    \gdef\@tablehead{%
+    \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{\global\let\\=\@savcr}}%
+  \fi}
 \tablehead{}
 %    \end{macrocode}
 %    It's possible to specify a different tablehead for the first
@@ -571,17 +613,22 @@
 %    document.
 % \changes{v4.1f}{2019/01/12}{\cs{\@table at first@head} needs the same
 %    definition as \cs{\@tablehead} (found by FMi)}
+% \changes{v4.2b}{2021-02-14}{When the argument is empty the internal
+%    macro \cs{@table at first@head} needs to be empty as well.} 
 %    \begin{macrocode}
 \newcommand\tablefirsthead[1]{%
-  \gdef\@table at first@head{%
-    \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{%
-      \global\let\\=\@savcr
-      \global\let\@table at first@head\undefined
-    }}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@table at first@head{}\else
+    \gdef\@table at first@head{%
+      \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{%
+        \global\let\\=\@savcr
+        \global\let\@table at first@head\undefined
+      }}%
+  \fi}
 %    \end{macrocode}
 %  \end{macro}
 %  \end{macro}
@@ -598,14 +645,19 @@
 %    to \cs{@tabularcr}} 
 % \changes{v4.1b}{1997/10/08}{Not \cs{@tabularcr} but
 %    \cs{org at tabularcr}}
+% \changes{v4.2b}{2021-02-14}{When the argument is empty the internal
+%    macro \cs{@tabletail} needs to be empty as well.} 
 %    \begin{macrocode}
 \newcommand\tabletail[1]{%
-  \gdef\@tabletail{%
-    \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{\global\let\\=\@savcr}}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@tabletail{}\else
+    \gdef\@tabletail{%
+      \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{\global\let\\=\@savcr}}%
+  \fi}
 \tabletail{}
 %    \end{macrocode}
 %    It's possible to specify a different tabletail for the last
@@ -615,17 +667,22 @@
 %    document.
 % \changes{v4.1f}{2019/01/12}{\cs{\@table at last@tail} needs the same
 %    definition as \cs{\@tabletail}}
+% \changes{v4.2b}{2021-02-14}{When the argument is empty the internal
+%    macro \cs{@tabletail} needs to be empty as well.} 
 %    \begin{macrocode}
 \newcommand\tablelasttail[1]{%
-  \gdef\@table at last@tail{%
-    \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{%
-      \global\let\\=\@savcr
-      \global\let\@table at last@tail\undefined
-    }}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@table at last@tail{}\else
+    \gdef\@table at last@tail{%
+      \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{%
+        \global\let\\=\@savcr
+        \global\let\@table at last@tail\undefined
+      }}%
+  \fi}
 %    \end{macrocode}
 %  \end{macro}
 %  \end{macro}
@@ -660,7 +717,7 @@
 %
 %  \begin{macro}{\ST at trace@cr}
 %    A variant of |\ST at trace| that can be called from within |\\| as
-%    that command is looking for an optional argument will end up
+%    that command is looking for an optional argument and will end up
 %    scanning the next line.
 %  \begin{macro}{\ST at save@lineno}
 % \changes{v4.1f}{2019/01/18}{Added a macro to save the current input
@@ -752,25 +809,22 @@
 % \changes{v4.0b}{1997/02/04}{Removed the use of \cs{ST at pboxcorr},
 %    correction seems to be no longer necessary}
 %
-%  \begin{macro}{\ST at lineht}
+%  \begin{macro}{\ST at rowht}
 %  \begin{macro}{\ST at stretchht}
 % \changes{v4.0g}{1997/04/12}{Dimension register added}
 %  \begin{macro}{\ST at prevht}
 % \changes{v4.0g}{1997/04/12}{Dimension register added}
-%    The estimated height of a normal line is stored in
-%    |\ST at lineht|. The dimension register |\ST at stretchht| is used to
-%    store the difference between the `normal' line height and the
-%    line height when |\arraystretch| has a non-standard value. This
-%    is used in the case where p-box entries are added to the
-%    tabular. The dimension register |\ST at prevht| is use to store the
-%    height of the previous line to use it as an estimate for the
-%    height of the next line. This is needed for a better estimate of
+%    The estimated height of a normal row is stored in
+%    |\ST at rowht|. The dimension register |\ST at stretchht| was used to
+%    store the difference between the `normal' row height and the
+%    row height when |\arraystretch| has a non-standard value. This
+%    was used in the case where p-box entries are added to the
+%    tabular. The dimension register |\ST at prevht| is used to store the
+%    height of the previous row, to use it as an estimate for the
+%    height of the next row. This is needed for a better estimate of
 %    when to break the tabular. 
-% \changes{v4.1g}{2020/02/02}{\cs{ST at stretchht} is no longer needed,
-%    will be removed in a future release}
 %    \begin{macrocode}
-\newdimen\ST at lineht
-%\newdimen\ST at stretchht
+\newdimen\ST at rowht
 \newdimen\ST at prevht
 %    \end{macrocode}
 %  \end{macro}
@@ -907,10 +961,12 @@
 %  \end{macro}
 %  \end{macro}
 % 
-% \begin{macro}{\ST at compute@lineht}
-% \changes{v4.1g}{2020/02/02}{New macro \cs{ST at compute@lineht} to
-%    replacte \cs{estimate at lineht}} 
-%    The height of a line in an array environemnt can be computed as:
+% \begin{macro}{\ST at compute@rowht}
+% \changes{v4.1g}{2020/02/02}{New macro \cs{ST at compute@rowht} to
+%    replace \cs{ST at estimate@rowht}} 
+% \changes{v4.2a}{2020-06-27}{Make sure that \cs{ST at rowht} is large
+%    enough to take subscripts and superscripts into account}
+%    The height of a row in an array environemnt can be computed as:
 %    \begin{itemize}
 %      \item the height of the strutbox |\ht\strutbox| (plus
 %        |\extrarowheight| when the \pkg{array} package is loaded),
@@ -919,19 +975,47 @@
 %        by |\arraystretch|.
 %    \end{itemize}
 %    \begin{macrocode}
-\def\ST at compute@lineht{%
-  \ST at lineht=\ht\strutbox
+\def\ST at compute@rowht{%
+%    \end{macrocode}
+%    Temporarily store a formula with superscript and subscript in a
+%    box in order to be able to measure its height and depth.
+%    \begin{macrocode}
+  \setbox\@tempboxa=\vbox{\@arrayparboxrestore $5^5_5$}
+%    \end{macrocode}
+%    Use the largest height of either |\@tempboxa| or |\strutbox|.
+%    \begin{macrocode}
+  \ifnum\ht\@tempboxa>\ht\strutbox
+    \ST at rowht=\ht\@tempboxa
+  \else
+    \ST at rowht=\ht\strutbox
+  \fi
+%    \end{macrocode}
+%    If the \textsf{array} pacakge is used we need to add the
+%    value of |\extrarowheight|.
+%    \begin{macrocode}
   \ifx\extrarowheight\undefined\else
-    \advance \ST at lineht by \extrarowheight
+    \advance \ST at rowht by \extrarowheight
   \fi
-  \ST at lineht = \arraystretch\ST at lineht
-  \advance\ST at lineht \arraystretch\dp\strutbox
-  \ST at trace\tw@{Normal Line height: \the\ST at lineht}%
+%    \end{macrocode}
+%    Also use the largest depth of either |\@tempboxa| or |\strutbox|.
+%    \begin{macrocode}
+  \ifnum\dp\@tempboxa>\dp\strutbox
+    \advance\ST at rowht \dp\@tempboxa
+  \else
+    \advance\ST at rowht \dp\strutbox
+  \fi
+%    \end{macrocode}
+%    And finally multiply by |\arraystretch|.
+%    \begin{macrocode}
+  \ST at rowht = \arraystretch\ST at rowht
+%    \end{macrocode}
+%    \begin{macrocode}
+  \ST at trace\tw@{Normal Row height: \the\ST at rowht}%
   }
 %    \end{macrocode}
 % \end{macro}
 %    
-% \begin{macro}{\estimate at lineht}
+% \begin{macro}{\ST at estimate@rowht}
 %    Estimates the height of normal line taking |\arraystretch| into
 %    account. Also computes the difference between a normal line and a
 %    `stretched' one.
@@ -938,15 +1022,13 @@
 % \changes{v4.0b}{1997/02/04}{Removed use of \cs{ST at pboxcorr}}
 % \changes{v4.0g}{1997/04/12}{Added the computation of
 %    \cs{ST at stretchht}}
-%    This macro will be removed in a future release.
+% \changes{v4.2a}{2020-06-27}{removed the computation of
+%    \cs{ST at stretchht} as it is no longer used} 
 % \begin{macrocode}
-\def\estimate at lineht{%
-  \ST at lineht=\arraystretch \baslineskp
-  \global\advance\ST at lineht by 1\p@
-  \ST at stretchht\ST at lineht\advance\ST at stretchht-\baslineskp
-  \ifdim\ST at stretchht<\z@\ST at stretchht\z@\fi
-  \ST at trace\tw@{Average line height: \the\ST at lineht}%
-  \ST at trace\tw@{Stretched line height: \the\ST at stretchht}%
+\def\ST at estimate@rowht{%
+  \ST at rowht=\arraystretch \baslineskp
+  \global\advance\ST at rowht by 1\p@
+  \ST at trace\tw@{Average Row height: \the\ST at rowht}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -1071,23 +1153,23 @@
     \ST at tailht=\ht\@tempboxa\advance\ST at tailht\dp\@tempboxa
   \fi
 %    \end{macrocode}
-%    We add the average height of a line to this because when we
+%    We add the average height of a row to this because when we
 %    decide to continue the tabular we need to have enough space left
-%    for one line and the tail.
+%    for one row \emph{and} the tail.
 %    \begin{macrocode}
-  \advance\ST at tailht by \ST at lineht
+  \advance\ST at tailht by \ST at rowht
   \ST at trace\tw@{Height of tail: \the\ST at tailht}%
   \ST at trace\tw@{Maximum height of tabular: \the\ST at pageleft}%
   \@tempdima\ST at headht
 %    \end{macrocode}
 % \changes{v4.0b}{1997/02/04}{Base the decision whether to start on a
-%    new page on the total of headheight, tailht and lineht}
+%    new page on the total of headheight, tailht and rowht}
 %    Now we decide whether we can continue on the current page or
 %    whether we need to start on a new page. We assume that the
 %    minimum height of a tabular is the height of the head, the tail
-%    and one line of data. If that doesn't fit a new page is started.
+%    and one row of data. If that doesn't fit a new page is started.
 %    \begin{macrocode}
-  \advance\@tempdima\ST at lineht
+  \advance\@tempdima\ST at rowht
   \advance\@tempdima\ST at tailht
   \ST at trace\tw@{Minimum height of tabular: \the\@tempdima}%
   \ifnum\@tempdima>\ST at pageleft
@@ -1164,7 +1246,7 @@
   \global\let\@oldcr=\\
 %    \end{macrocode}
 %    Save the current value of |\baselineskip|, as we need it in the
-%    calculation of the average height of a line. 
+%    calculation of the average height of a row. 
 %    \begin{macrocode}
   \def\baslineskp{\baselineskip}%
 %    \end{macrocode}
@@ -1174,9 +1256,9 @@
   \ifx\undefined\@classix
 %    \end{macrocode}
 %    Save old |\@tabularcr| and insert the definition of
+%    |\ST at tabularcr|. 
 % \changes{v4.1c}{1997/11/07}{For standard \LaTeX\ we need to change
 %    \cs{@@startpbox}, \emph{not} \cs{@startpbox}}
-%    |\ST at tabularcr|. 
 %    \begin{macrocode}
     \let\org at tabularcr\@tabularcr
     \let\@tabularcr\ST at tabularcr
@@ -1210,20 +1292,20 @@
   \fi
 %    \end{macrocode}
 %    The first part of a supertabular may be moved on to the next page
-%    if it doesn't fit on the current page afterall. Subsequent parts
+%    if it doesn't fit on the current page after all. Subsequent parts
 %    can not be moved; therefor we will have to switch the definition
-%    of |\ST at skippart| around.
+%    of |\ST at skippage| around.
 % \changes{v4.0e}{1997/04/09}{Make sure that only the first part of a
 %    supertabular can be moved to the next page.} 
 %    \begin{macrocode}
   \let\ST at skippage\ST at skipfirstpart
 %    \end{macrocode}
-%    Now we can estimate the average line height and the height of the
+%    Now we can estimate the average row height and the height of the
 %    first page of the \Lenv{supertabular}.
 % \changes{v4.0i}{1997/09/18}{Added \cs{noindent}}
-% \changes{v4.1g}{2020/02/02}{Now call \cs{ST at compute@lineht}}
+% \changes{v4.1g}{2020/02/02}{Now call \cs{ST at calculate@rowht}}
 %    \begin{macrocode}
-  \ST at compute@lineht
+  \ST at calculate@rowht
   \@calfirstpageht
   \noindent
   }
@@ -1544,20 +1626,20 @@
 %    \begin{macrocode}
 \def\ST at cr{%
   \noalign{%
-    \ifnum\ST at pboxht<\ST at lineht
+    \ifnum\ST at pboxht<\ST at rowht
 %    \end{macrocode}
-%    If there is a non-empty line, but an empty parbox, then
-%    |\ST at pboxht| might be non-zero, but too small thereby breaking
-%    the algorithm. Therefor we estimate the height of the line to be
-%    |\ST at lineht| in this case.
+%    If there is a non-empty row, but an empty parbox, then
+%    |\ST at pboxht| might be non-zero, but too small, thereby breaking
+%    the algorithm. Therefor we estimate the height of the row to be
+%    |\ST at rowht| in this case.
 %    \begin{macrocode}
-      \global\advance\ST at pageleft -\ST at lineht
+      \global\advance\ST at pageleft -\ST at rowht
 %    \end{macrocode}
 %    And we store that fact in |\ST at prevht|.
-% \changes{v4.0g}{1997/04/12}{store the height of the previous line in
+% \changes{v4.0g}{1997/04/12}{store the height of the previous row in
 %    \cs{ST at prevht}} 
 %    \begin{macrocode}
-      \global\ST at prevht\ST at lineht
+      \global\ST at prevht\ST at rowht
     \else
 %    \end{macrocode}
 %    When the parbox was not empty we take into account its height
@@ -1605,11 +1687,11 @@
   \else
 %    \end{macrocode}
 %    When there is not enough space left on the current page, we start
-%    a new page. To compute the amount of space need we use the
-%    height of the previous line (|\ST at prevht|) as an estimation of
-%    the height of the next line. If we are processing a
+%    a new page. To compute the amount of space needed we use the
+%    height of the previous row (|\ST at prevht|) as an estimation of
+%    the height of the next row. If we are processing a
 %    \Lenv{mpsupertabular} we need to take the height of the footnotes
-%    into account. 
+%    into account as well. 
 % \changes{v4.0g}{1997/04/12}{Leave room for both \cs{ST at tailht}
 %    \emph{and} \cs{ST at prevht}} 
 % \changes{v4.1a}{1997/09/19}{Take care of space needed for 
@@ -1659,11 +1741,20 @@
 %    \begin{macrocode}
     \global\advance\ST at pageleft\pagetotal
 %    \end{macrocode}
-%    Then we can set |\ST at pagesofar| to $0$ and start the new page.
+%    Then we can set |\ST at pagesofar| to $0$...
 %    \begin{macrocode}
     \global\ST at pagesofar\z@
-    \newpage
 %    \end{macrocode}
+%    ... and start the new page, but in this special case we need to
+%    trigger the output routine directly by issuing a |\penalty|
+%    rather than calling |\newpage| as that macro effectively issues a
+%    |\vskip-\maxdepth| which makes the first two rows of the tabular
+%    overlap. 
+% \changes{v4.2b}{2021-02-14}{Issue a \cs{penalty} instead of
+%    \cs{newpage} to trigger the output routine.} 
+%    \begin{macrocode}
+    \penalty -\@M
+%    \end{macrocode}
 %
 %    Finally we make sure that this macro can only be executed once
 %    for each supertabular by changing the definition of

Modified: trunk/Master/texmf-dist/tex/latex/supertabular/supertabular.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/supertabular/supertabular.sty	2024-07-20 15:57:11 UTC (rev 71853)
+++ trunk/Master/texmf-dist/tex/latex/supertabular/supertabular.sty	2024-07-20 19:59:13 UTC (rev 71854)
@@ -35,19 +35,21 @@
 %% Sourcefile `supertabular.dtx'.
 %%
 %% Copyright (C) 1988 by Theo Jurriens
-%% Copyright (C) 1990-2020 by Johannes Braams texniek at braams.xs4all.nl
-%%                            Kersengaarde 33
-%%                            2723 BP Zoetermeer NL
+%% Copyright (C) 1990-2024 by Johannes Braams texniek at texniek.nl
+%%                            The Netherlands
 %%                       all rights reserved.
 %%
 %%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{supertabular}
-              [2020/02/02 v4.1g the supertabular environment]
+              [2024/07/20 v4.2c the supertabular environment]
 \newcount\c at tracingst
 \DeclareOption{errorshow}{\c at tracingst\z@}
 \DeclareOption{pageshow}{\c at tracingst\thr@@}
 \DeclareOption{debugshow}{\c at tracingst5\relax}
+\DeclareOption{calculate}{\def\ST at calculate@rowht{\ST at compute@rowht}}
+\DeclareOption{estimate}{\def\ST at calculate@rowht{\ST at estimate@rowht}}
+\ExecuteOptions{errorshow,estimate}
 \ProcessOptions
 \newif\if at topcaption \@topcaptiontrue
 \def\topcaption{\@topcaptiontrue\tablecaption}
@@ -76,41 +78,53 @@
     \if at topcaption \vskip 10\p@ \gdef\ST at captionroom{20\p@}\fi
   \endgroup}
 \newcommand\tablehead[1]{%
-  \gdef\@tablehead{%
-  \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{\global\let\\=\@savcr}}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@tablehead{}\else
+    \gdef\@tablehead{%
+    \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{\global\let\\=\@savcr}}%
+  \fi}
 \tablehead{}
 \newcommand\tablefirsthead[1]{%
-  \gdef\@table at first@head{%
-    \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{%
-      \global\let\\=\@savcr
-      \global\let\@table at first@head\undefined
-    }}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@table at first@head{}\else
+    \gdef\@table at first@head{%
+      \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{%
+        \global\let\\=\@savcr
+        \global\let\@table at first@head\undefined
+      }}%
+  \fi}
 \newcommand\tabletail[1]{%
-  \gdef\@tabletail{%
-    \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{\global\let\\=\@savcr}}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@tabletail{}\else
+    \gdef\@tabletail{%
+      \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{\global\let\\=\@savcr}}%
+  \fi}
 \tabletail{}
 \newcommand\tablelasttail[1]{%
-  \gdef\@table at last@tail{%
-    \noalign{%
-      \global\let\@savcr=\\
-      \global\let\\=\org at tabularcr}%
-    #1%
-    \noalign{%
-      \global\let\\=\@savcr
-      \global\let\@table at last@tail\undefined
-    }}}
+  \def\@ST at arg{#1}%
+  \ifx\@ST at arg\@empty\gdef\@table at last@tail{}\else
+    \gdef\@table at last@tail{%
+      \noalign{%
+        \global\let\@savcr=\\
+        \global\let\\=\org at tabularcr}%
+      #1%
+      \noalign{%
+        \global\let\\=\@savcr
+        \global\let\@table at last@tail\undefined
+      }}%
+  \fi}
 \newcommand\sttraceon{\c at tracingst5\relax}
 \newcommand\sttraceoff{\c at tracingst\z@}
 \newcommand\ST at trace[2]{%
@@ -142,7 +156,7 @@
 \newdimen\ST at tailht
 \newdimen\ST at pagesofar
 \newdimen\ST at pboxht
-\newdimen\ST at lineht
+\newdimen\ST at rowht
 \newdimen\ST at prevht
 \newdimen\ST at toadd
 \newdimen\ST at dimen
@@ -191,22 +205,28 @@
   \fi
   \ST at dimen=\z@
   \unvbox\ST at pbox\egroup\hfil}
-\def\ST at compute@lineht{%
-  \ST at lineht=\ht\strutbox
+\def\ST at compute@rowht{%
+  \setbox\@tempboxa=\vbox{\@arrayparboxrestore $5^5_5$}
+  \ifnum\ht\@tempboxa>\ht\strutbox
+    \ST at rowht=\ht\@tempboxa
+  \else
+    \ST at rowht=\ht\strutbox
+  \fi
   \ifx\extrarowheight\undefined\else
-    \advance \ST at lineht by \extrarowheight
+    \advance \ST at rowht by \extrarowheight
   \fi
-  \ST at lineht = \arraystretch\ST at lineht
-  \advance\ST at lineht \arraystretch\dp\strutbox
-  \ST at trace\tw@{Normal Line height: \the\ST at lineht}%
+  \ifnum\dp\@tempboxa>\dp\strutbox
+    \advance\ST at rowht \dp\@tempboxa
+  \else
+    \advance\ST at rowht \dp\strutbox
+  \fi
+  \ST at rowht = \arraystretch\ST at rowht
+  \ST at trace\tw@{Normal Row height: \the\ST at rowht}%
   }
-\def\estimate at lineht{%
-  \ST at lineht=\arraystretch \baslineskp
-  \global\advance\ST at lineht by 1\p@
-  \ST at stretchht\ST at lineht\advance\ST at stretchht-\baslineskp
-  \ifdim\ST at stretchht<\z@\ST at stretchht\z@\fi
-  \ST at trace\tw@{Average line height: \the\ST at lineht}%
-  \ST at trace\tw@{Stretched line height: \the\ST at stretchht}%
+\def\ST at estimate@rowht{%
+  \ST at rowht=\arraystretch \baslineskp
+  \global\advance\ST at rowht by 1\p@
+  \ST at trace\tw@{Average Row height: \the\ST at rowht}%
 }
 \def\@calfirstpageht{%
   \ST at trace\tw@{Calculating height of tabular on first page}%
@@ -273,11 +293,11 @@
         \@tabletail\endtabular}
     \ST at tailht=\ht\@tempboxa\advance\ST at tailht\dp\@tempboxa
   \fi
-  \advance\ST at tailht by \ST at lineht
+  \advance\ST at tailht by \ST at rowht
   \ST at trace\tw@{Height of tail: \the\ST at tailht}%
   \ST at trace\tw@{Maximum height of tabular: \the\ST at pageleft}%
   \@tempdima\ST at headht
-  \advance\@tempdima\ST at lineht
+  \advance\@tempdima\ST at rowht
   \advance\@tempdima\ST at tailht
   \ST at trace\tw@{Minimum height of tabular: \the\@tempdima}%
   \ifnum\@tempdima>\ST at pageleft
@@ -325,7 +345,7 @@
     \let\@@tablehead=\@table at first@head
   \fi
   \let\ST at skippage\ST at skipfirstpart
-  \ST at compute@lineht
+  \ST at calculate@rowht
   \@calfirstpageht
   \noindent
   }
@@ -453,9 +473,9 @@
   \csname org at tabular*\endcsname}
 \def\ST at cr{%
   \noalign{%
-    \ifnum\ST at pboxht<\ST at lineht
-      \global\advance\ST at pageleft -\ST at lineht
-      \global\ST at prevht\ST at lineht
+    \ifnum\ST at pboxht<\ST at rowht
+      \global\advance\ST at pageleft -\ST at rowht
+      \global\ST at prevht\ST at rowht
     \else
      \ST at trace@cr\thr@@{Added par box with height \the\ST at pboxht}%
       \global\advance\ST at pageleft -\ST at pboxht
@@ -489,7 +509,7 @@
     \ST at trace\tw@{Tabular too high, moving to next page}%
     \global\advance\ST at pageleft\pagetotal
     \global\ST at pagesofar\z@
-    \newpage
+    \penalty -\@M
     \global\let\ST at skippage\ST at newpage
     }}
 \def\ST at newpage{%



More information about the tex-live-commits mailing list.