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.