summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/revtex/ltxgrid.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/revtex/ltxgrid.sty')
-rw-r--r--Master/texmf-dist/tex/latex/revtex/ltxgrid.sty518
1 files changed, 324 insertions, 194 deletions
diff --git a/Master/texmf-dist/tex/latex/revtex/ltxgrid.sty b/Master/texmf-dist/tex/latex/revtex/ltxgrid.sty
index 11331e4dc1e..88541dc5baf 100644
--- a/Master/texmf-dist/tex/latex/revtex/ltxgrid.sty
+++ b/Master/texmf-dist/tex/latex/revtex/ltxgrid.sty
@@ -22,9 +22,9 @@
%%
%%% @LaTeX-file{
%%% filename = "ltxgrid.dtx",
-%%% version = "4.1h",
-%%% date = "2009/10/09",
-%%% time = "11:23:00 GMT+8",
+%%% version = "4.1p",
+%%% date = "2010/02/25",
+%%% time = "18:00:00 UT-8",
%%% checksum = "5462",
%%% author = "Arthur Ogawa (mailto:arthur_ogawa at sbcglobal.net),
%%% commissioned by the American Physical Society.
@@ -46,30 +46,37 @@
%%% docstring = "The checksum field above generated by ltxdoc",
%%% }
\NeedsTeXFormat{LaTeX2e}[1995/12/01]%
-\ProvidesFile{ltxgrid.sty}%
- [2009/10/09 4.1h page grid package]% \fileversion
+\ProvidesFile{%
+ltxgrid%
+.sty%
+}%
+ [2010/02/25/18:00:00 4.1p page grid package (portions licensed from W. E. Baxter web at superscript.com)]% \fileversion
\def\package@name{ltxgrid}%
\expandafter\PackageInfo\expandafter{\package@name}{%
Page grid for \protect\LaTeXe,
by A. Ogawa (arthur_ogawa at sbcglobal.net)%
}%
\RequirePackage{ltxutil}%
-\typeout{%
- ltxgrid [2009/07/07 4.1f]: portions licensed from W. E. Baxter (web at superscript.com)%
-}%
\newcounter{linecount}
\def\loop@line#1#2{%
\par
\hb@xt@\hsize{%
\global\advance#1\@ne
\edef\@tempa{\@ifnum{100>#1}{0}{}\@ifnum{10>#1}{0}{}\number#1}%
- \@tempa\edef\@tempa{\special{trace:\@tempa}}\@tempa
+ \@tempa\edef\@tempa{\special{line:\@tempa}}\@tempa
\vrule depth2.5\p@#2\leaders\hrule\hfil
}%
}%
\def\lineloop#1{%
\loopwhile{\loop@line\c@linecount{}\@ifnum{#1>\c@linecount}}%
}%
+\def\linefoot#1{%
+ \loop@line\c@linecount{%
+ \footnote{%
+ #1\special{foot:#1}\vrule depth2.5\p@\leaders\hrule\hfill
+ }%
+ }%
+}%
\let\@@mark\mark
\let\@@topmark\topmark
\let\@@firstmark\firstmark
@@ -147,6 +154,7 @@
\expandafter\@ifx\expandafter{\csname output@-\the\execute@message@pen\endcsname\output@procedure}{%
\let\output@procedure\@message@saved
}{}%
+ \ltxgrid@info@sw{\class@info{\string\dispatch@output}\say\output@procedure\saythe\holdinginserts}{}%
\outputdebug@sw{\output@debug}{}%
\output@procedure
}%
@@ -155,40 +163,51 @@
\expandafter\let\expandafter#1\csname output@\the\count@\endcsname
}%
\def\output@debug{%
- \saythe\inputlineno
- \saythe\holdinginserts
- \saythe\outputpenalty
- \saythe\interlinepenalty
- \saythe\brokenpenalty
- \saythe\clubpenalty
- \saythe\widowpenalty
- \saythe\displaywidowpenalty
- \saythe\predisplaypenalty
- \saythe\interdisplaylinepenalty
- \saythe\postdisplaypenalty
- \say\output@procedure
- \saythe\badness
- \say\thepagegrid
- \saythe\pagegrid@col
- \saythe\pagegrid@cur
- \saythe\insertpenalties
- \say\@@botmark
- \saythe\pagegoal
- \saythe\pagetotal
- \saythe{\badness\@cclv}%
- \say\@toplist
- \say\@botlist
- \say\@dbltoplist
- \say\@deferlist
- \trace@scroll{%
+ \def\@tempa{\save@message}%
+ \@ifx{\output@procedure\@tempa}{%
+ \true@sw
+ }{%
+ \@ifnum{\outputpenalty=-\save@column@insert@pen}{%
+ \@ifnum{\holdinginserts>\z@}%
+ }{%
+ \false@sw
+ }%
+ }%
+ {}{\output@debug@}%
+}%
+\def\output@debug@{%
+ \saythe\outputpenalty
+ \saythe\interlinepenalty
+ \saythe\brokenpenalty
+ \saythe\clubpenalty
+ \saythe\widowpenalty
+ \saythe\displaywidowpenalty
+ \saythe\predisplaypenalty
+ \saythe\interdisplaylinepenalty
+ \saythe\postdisplaypenalty
+ \saythe\badness
+ \say\thepagegrid
+ \saythe\pagegrid@col
+ \saythe\pagegrid@cur
+ \saythe\insertpenalties
+ \say\@@botmark
+ \saythe\pagegoal
+ \saythe\pagetotal
+ \saythe{\badness\@cclv}%
+ \say\@toplist
+ \say\@botlist
+ \say\@dbltoplist
+ \say\@deferlist
+ \trace@scroll{%
\showbox\@cclv
\showbox\@cclv@saved
\showbox\pagesofar
+ \showbox\csname col@1\endcsname
\showbox\footsofar
- \showbox\footins@saved
\showbox\footins
+ \showbox\footins@saved
\showlists
- }%
+ }%
}%
\@ifxundefined{\outputdebug@sw}{%
\@booleanfalse\outputdebug@sw
@@ -294,13 +313,9 @@
}%
}{}%
\@cclv@nontrivial@sw{%
- \expandafter\let\expandafter\output@prep@\csname output@prep@\bot@envir \endcsname
- \outputdebug@sw{\say\output@prep@}{}%
- \@ifx{\output@prep@\relax}{\output@prep@document}{\output@prep@}%
+ \expandafter\output@do@prep\csname output@prep@\bot@envir \endcsname
\@makecolumn\true@sw
- \expandafter\let\expandafter\output@column@\csname output@column@\thepagegrid\endcsname
- \outputdebug@sw{\say\output@column@}{}%
- \@ifx{\output@column@\relax}{\output@column@one}{\output@column@}%
+ \expandafter\output@column@do\csname output@column@\thepagegrid\endcsname
\protect@penalty\do@startcolumn@pen
\clearpage@sw{%
\protect@penalty\do@endpage@pen
@@ -315,6 +330,14 @@
\global\@mparbottom\z@
\global\@textfloatsheight\z@
}%
+\def\output@do@prep#1{%
+ \outputdebug@sw{\class@info{Prep: \string#1}}{}%
+ \@ifx{#1\relax}{\output@prep@document}{#1}%
+}%
+\def\output@column@do#1{%
+ \outputdebug@sw{\class@info{Output column: \string#1}}{}%
+ \@ifx{#1\relax}{\output@column@one}{#1}%
+}%
\def\void@cclv{\begingroup\setbox\z@\box\@cclv\endgroup}%
\def\remove@lastbox{\setbox\z@\lastbox}%
\def\@cclv@nontrivial@sw{%
@@ -404,67 +427,90 @@
\@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
}%
\def\output@init@document{%
- \set@adj@footins\vsize\global\vsize\vsize
+ \ltxgrid@info@sw{\class@info{\string\output@init@document}}{}%
+ \global\vsize\vsize
}%
\def\output@prep@document{%
- \@ifvoid\footsofar{}{%
- \setbox\footins\vbox\bgroup
+ \ltxgrid@foot@info@sw{\class@info{\string\output@prep@document}\trace@scroll{\showbox\footins\showbox\footsofar}}{}%
+ \@ifvoid\footsofar{%
+ }{%
+ \global\setbox\footins\vbox\bgroup
\unvbox\footsofar
\@ifvoid\footins{}{%
\marry@baselines
\unvbox\footins
}%
\egroup
+ \ltxgrid@foot@info@sw{\trace@box\footins}{}%
}%
}%
\def\output@post@document{}%
\let\@opcol\@undefined
\def\@makecolumn#1{%
- \setbox\@outputbox\vbox{%
+ \ltxgrid@foot@info@sw{\class@info{\string\@makecolumn\string#1}}{}%
+ \setbox\@outputbox\vbox\bgroup
\boxmaxdepth\@maxdepth
\@tempdima\dp\@cclv
\unvbox\@cclv
\vskip-\@tempdima
- }%
+ \egroup
\xdef\@freelist{\@freelist\@midlist}\global\let\@midlist\@empty
\show@text@box@size
\@combinefloats
#1{%
\@combineinserts\@outputbox\footins
}{%
- \combine@foot@inserts
+ \combine@foot@inserts\footsofar\footins
}%
\set@adj@colht\dimen@
\count@\vbadness
\vbadness\@M
- \setbox\@outputbox\vbox to\dimen@{%
+ \setbox\@outputbox\vbox to\dimen@\bgroup
\@texttop
\dimen@\dp\@outputbox
\unvbox\@outputbox
\vskip-\dimen@
\@textbottom
- }%
+ \egroup
\vbadness\count@
\global\maxdepth\@maxdepth
}%
\let\@makespecialcolbox\@undefined
\def\@combineinserts#1#2{%
- \setbox#1\vbox{%
+ \ltxgrid@foot@info@sw{\class@info{\string\@combineinserts\string#1\string#2}\trace@box#2}{}%
+ \setbox#1\vbox\bgroup
\unvbox#1%
- \vbox{%
- \@ifvoid#2{}{%
- \show@box@size{Combining inserts}#2%
- \vskip\skip#2%
- \color@begingroup
- \normalcolor
- \footnoterule
- \nointerlineskip
- \box#2%
- \color@endgroup
- }{}%
+ \@ifvoid{#2}{}{%
+ \dimen@\ht#2\advance\dimen@\dp#2\advance\dimen@\skip#2%
+ \show@box@size{Combining inserts}#2%
+ \vskip\skip#2%
+ \setbox\z@\vbox{\footnoterule}\dimen@i\ht\z@
+ \color@begingroup
+ \normalcolor
+ \cleaders\box\z@\vskip\dimen@i\kern-\dimen@i
+ \csname combine@insert@\the\pagegrid@col\endcsname#2%
+ \color@endgroup
+ \kern-\dimen@\kern\dimen@
}%
- }%
+ \egroup
+ \ltxgrid@foot@info@sw{\trace@box#1}{}%
+}%
+\def\combine@insert@tw@#1{%
+ \compose@footnotes@two#1\@ifvbox{#1}{\unvbox}{\box}#1%
+}%
+\def\combine@insert@@ne#1{%
+ \compose@footnotes@one#1\@ifvbox{#1}{\unvbox}{\box}#1%
+}%
+\def\twocolumn@grid@setup{%
+ \expandafter\let\csname combine@insert@1\endcsname\combine@insert@tw@
+ \expandafter\let\csname combine@insert@2\endcsname\combine@insert@@ne
}%
+\def\onecolumn@grid@setup{%
+ \expandafter\let\csname combine@insert@1\endcsname\combine@insert@@ne
+ \expandafter\let\csname combine@insert@2\endcsname\combine@insert@@ne
+}%
+\let\columngrid@setup\onecolumn@grid@setup
+\columngrid@setup
\appdef\@floatplacement{%
\global\@fpmin\@fpmin
}%
@@ -758,20 +804,21 @@
\mathchardef\do@newpage@pen=10001
\expandafter\let\csname output@-\the\do@newpage@pen\endcsname\relax
\def\@clearfloatplacement{%
- \global\@topnum \maxdimen % \c@topnumber
- \global\@toproom \maxdimen % \topfraction\@colht
- \global\@botnum \maxdimen % \c@bottomnumber
- \global\@botroom \maxdimen % \bottomfraction\@colht
- \global\@colnum \maxdimen % \c@totalnumber
- \global\@dbltopnum \maxdimen % \c@dbltopnumber
- \global\@dbltoproom \maxdimen % \dbltopfraction\@colht
- \global\@textmin \z@ % \@colht\advance \@textmin -\@dbltoproom
- \global\@fpmin \z@ % \dblfloatpagefraction\textheight
+ \global\@topnum \maxdimen
+ \global\@toproom \maxdimen
+ \global\@botnum \maxdimen
+ \global\@botroom \maxdimen
+ \global\@colnum \maxdimen
+ \global\@dbltopnum \maxdimen
+ \global\@dbltoproom \maxdimen
+ \global\@textmin \z@
+ \global\@fpmin \z@
\let\@testfp\@gobble
\appdef\@setfloattypecounts{\@fpstype16\advance\@fpstype\m@ne}%
}%
\let\@doclearpage\@undefined
\let\@makefcolumn\@undefined
+\let\@makecol\@undefined
\def\clr@top@firstmark{%
\global\let\saved@@topmark\@undefined
\global\let\saved@@firstmark\@empty
@@ -1131,18 +1178,30 @@
}%
}%
\def\savecolumn@moving{%
+ \ltxgrid@info@sw{\class@info{\string\savecolumn@moving}}{}%
\@cclv@nontrivial@sw{%
\save@column
}{%
\void@cclv
}%
\@ifvoid\footins{}{%
- \outputdebug@sw{\trace@box\footins}{}%
- \global\setbox\footins@saved\vbox{\unvbox\footins@saved\marry@baselines\unvbox\footins}%
+ \ltxgrid@foot@info@sw{\class@info{\string\savecolumn@moving}\trace@scroll{\showbox\footins@saved\showbox\footins}}{}%
+ \@ifvoid\footins@saved{%
+ \global\setbox\footins@saved\box\footins
+ }{%
+ \global\setbox\footins@saved\vbox\bgroup
+ \unvbox\footins@saved
+ \marry@baselines
+ \unvbox\footins
+ \egroup
+ }%
+ \ltxgrid@foot@info@sw{\trace@box\footins@saved}{}%
\protect@penalty\save@column@insert@pen
}%
}%
\newbox\footins@saved
+\newbox\footins@recovered
+\newbox\column@recovered
\mathchardef\save@message@pen=10018
\@namedef{output@-\the\save@message@pen}{\save@message}%
\def\save@message{%
@@ -1158,7 +1217,11 @@
\@execute@message\save@column@pen
}%
\def\execute@message@insert#1{%
- \@execute@message\save@column@insert@pen{\setbox \footins \box \footins@saved#1}%
+ \@execute@message\save@column@insert@pen{%
+ \setbox \footins \box \footins@saved
+ \ltxgrid@foot@info@sw{\class@info{\string\execute@message@insert}\trace@box\footins}{}%
+ #1%
+ }%
}%
\long\def\@execute@message#1#2{%
\begingroup
@@ -1276,34 +1339,46 @@
\def\thepagegrid{one}%
\newbox\pagesofar
\newbox\footsofar
-\def\combine@foot@inserts{%
- \@ifvoid\footins{%
- }{%
- \@ifvoid\footsofar{%
- \global\setbox\footsofar\box\footins
+\def\combine@foot@inserts#1#2{%
+ \ltxgrid@info@sw{\class@info{\string\combine@foot@inserts\string#1\string#2}}{}%
+ \@ifvoid#1{%
+ \ltxgrid@foot@info@sw{\trace@box#2}{}\global\setbox#1\box#2%
}{%
- \global\setbox\footsofar\vbox\bgroup
- \unvbox\footsofar
- \marry@baselines
- \unvbox\footins
+ \global\setbox#1\vbox\bgroup
+ \ltxgrid@foot@info@sw{\trace@box#1}{}\unvbox#1%
+ \@ifvoid#2{}{%
+ \marry@baselines
+ \ltxgrid@foot@info@sw{\trace@box#2}{}\unvbox#2%
+ }%
\egroup
}%
- }%
+ \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
}%
\newcommand\onecolumngrid{\do@columngrid{one}{\@ne}}%
\let\onecolumn\@undefined
\def\open@column@one#1{%
+ \ltxgrid@info@sw{\class@info{\string\open@column@one\string#1}}{}%
\unvbox\pagesofar
+ \@ifvoid{\footsofar}{}{%
+ \insert\footins\bgroup\unvbox\footsofar\egroup
+ \penalty\z@
+ }%
\gdef\thepagegrid{one}%
\global\pagegrid@col#1%
\global\pagegrid@cur\@ne
- \set@colht
+ \global\count\footins\@m
+ \global\divide\count\footins\tw@
\set@column@hsize\pagegrid@col
+ \set@colht
}%
\def\shut@column@one{%
+ \ltxgrid@info@sw{\class@info{\string\shut@column@one}}{}%
\@makecolumn\false@sw
- \global\setbox\pagesofar\vbox{\unvbox\@outputbox\recover@footins}%
- \combine@foot@inserts
+ \global\setbox\pagesofar\vbox\bgroup
+ \recover@column\@outputbox\footsofar\column@recovered\footins@recovered
+ \egroup
+ \begingroup\setbox\z@\box\@outputbox\endgroup
+ \combine@foot@inserts\footsofar\footins
\set@colht
}%
\def\float@column@one{%
@@ -1346,13 +1421,19 @@
\let\twocolumn\@undefined
\let\@topnewpage\@undefined
\def\open@column@mlt#1{%
+ \ltxgrid@info@sw{\class@info{\string\open@column@mlt\string#1}}{}%
+ \@ifvoid{\footsofar}{}{%
+ \insert\footins\bgroup\unvbox\footsofar\egroup
+ }%
\gdef\thepagegrid{mlt}%
\global\pagegrid@col#1%
\global\pagegrid@cur\@ne
+ \global\count\footins\@m
\set@column@hsize\pagegrid@col
\set@colht
}%
\def\shut@column@mlt{%
+ \ltxgrid@info@sw{\class@info{\string\shut@column@mlt}}{}%
\@cclv@nontrivial@sw{%
\@makecolumn\false@sw
\@ifnum{\pagegrid@cur<\pagegrid@col}{%
@@ -1364,7 +1445,7 @@
}%
\@ifnum{\pagegrid@cur>\@ne}{%
\csname balance@\the\pagegrid@col\endcsname
- \grid@column{}%
+ \grid@column\@outputbox{}%
\@combinepage\false@sw
\@combinedblfloats
\global\setbox\pagesofar\box\@outputbox
@@ -1416,7 +1497,7 @@
\global\advance\pagegrid@cur\@ne
}{%
\set@adj@colht\dimen@
- \grid@column{}%
+ \grid@column\@outputbox{}%
\@output@combined@page
}%
}%
@@ -1425,6 +1506,31 @@
\def\@addmarginpar@mlt{% emits a boolean
\@ifnum{\pagegrid@cur=\@ne}%
}%
+\def\set@footnotewidth@one{%
+ \hsize\columnwidth
+ \linewidth\hsize
+}%
+\def\set@footnotewidth@two{\set@footnotewidth@mlt\tw@}%
+\def\set@footnotewidth@mlt#1{%
+ \hsize\textwidth
+ \advance\hsize\columnsep
+ \divide\hsize#1%
+ \advance\hsize-\columnsep
+ \linewidth\hsize
+}%
+\def\compose@footnotes@one#1{%
+ \ltxgrid@foot@info@sw{\class@info{\string\compose@footnotes@one\string#1}\trace@box#1}{}%
+}%
+\let\compose@footnotes\compose@footnotes@one
+\def\compose@footnotes@two#1{%
+ \ltxgrid@foot@info@sw{\class@info{\string\compose@footnotes@two\string#1}\trace@box#1}{}%
+ \setbox\z@\box\@tempboxa
+ \let\recover@column\recover@column@null
+ \let\marry@baselines\@empty
+ \balance@two#1\@tempboxa
+ \global\setbox#1\hbox to\textwidth{\box#1\hfil\box\@tempboxa}%
+ \ltxgrid@foot@info@sw{\trace@box#1}{}%
+}%
\let\pagegrid@cur\col@number
\let\col@number\@undefined
\newcount\pagegrid@col
@@ -1435,7 +1541,7 @@
\def\pagegrid@init{%
\advance\pagegrid@cur\@ne
\@ifnum{\pagegrid@cur<\pagegrid@col}{%
- \csname newbox\expandafter\endcsname\csname col@\the\pagegrid@cur\endcsname
+ \csname newbox\expandafter\endcsname\csname col@\the\pagegrid@cur\endcsname
\pagegrid@init
}{%
}%
@@ -1443,46 +1549,52 @@
\appdef\class@documenthook{%
\pagegrid@init
}%
-\def\grid@column#1{%
- \global\setbox\@outputbox\vbox{%
- \hb@xt@\textwidth{%
- \vrule\@height\z@\@width\z@\@if@empty{#1}{}{\@depth#1}%
+\def\grid@column#1#2{%
+ \ltxgrid@info@sw{\class@info{\string\grid@column\string#1}}{}%
+ \global\setbox#1\vbox\bgroup
+ \hb@xt@\textwidth\bgroup
+ \vrule\@height\z@\@width\z@\@if@empty{#2}{}{\@depth#2}%
\pagegrid@cur\@ne
- \append@column
- \box@column\@outputbox
- }%
- \vskip\z@skip % FIXME: page depth!
- }%
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{\loopwhile{\append@column@\pagegrid@cur\pagegrid@col}}{}%
+ \box@column#1%
+ \egroup
+ \vskip\z@skip
+ \egroup
}%
-\def\append@column{%
- \@ifnum{\pagegrid@cur<\pagegrid@col}{%
- \expandafter\box@column\csname col@\the\pagegrid@cur\endcsname
- \hfil
- \vrule \@width\columnseprule
- \hfil
- \advance\pagegrid@cur\@ne
- \append@column
- }{%
- }%
+\def\append@column@#1#2{%
+ \expandafter\box@column\csname col@\the#1\endcsname
+ \hfil\vrule\@width\columnseprule\hfil
+ \advance#1\@ne
+ \@ifnum{#1<#2}%
}%
\def\box@column#1{%
+ \ltxgrid@info@sw{\class@info{\string\box@column\string#1}}{}%
\raise\topskip
- \hb@xt@\columnwidth{%
+ \hb@xt@\columnwidth\bgroup
\dimen@\ht#1\@ifdim{\dimen@>\@colht}{\dimen@\@colht}{}%
\count@\vbadness\vbadness\@M
\dimen@ii\vfuzz\vfuzz\maxdimen
- \outputdebug@sw{\saythe\@colht\saythe\dimen@}{}%
- \vtop to\dimen@
- {\hrule\@height\z@
+ \ltxgrid@info@sw{\saythe\@colht\saythe\dimen@}{}%
+ \vtop to\dimen@\bgroup
+ \hrule\@height\z@
\unvbox#1%
\raggedcolumn@skip
- }%
+ \egroup
\vfuzz\dimen@ii
\vbadness\count@
\hss
- }%
+ \egroup
}%
\def\marry@baselines{%
+ \begingroup
+ \setbox\z@\lastbox
+ \@ifvoid{\z@}{%
+ \endgroup
+ }{%
+ \aftergroup\kern
+ \aftergroup-%
+ \expandafter\box\expandafter\z@\expandafter\endgroup\the\dp\z@\relax
+ }%
\vskip\marry@skip\relax
}%
\gdef\marry@skip{\z@skip}%
@@ -1501,6 +1613,7 @@
\vskip\z@\raggedcolumn@sw{\@plus.0001fil\@minus.0001fil}{}\relax
}%
\def\@combinepage#1{%
+ \ltxgrid@foot@info@sw{\class@info{\string\@combinepage\string#1}}{}%
\@ifvoid\pagesofar{}{%
\setbox\@outputbox\vbox{%
\unvbox\pagesofar
@@ -1512,6 +1625,7 @@
\@ifvoid\footsofar{}{%
\show@box@size{Combining page footnotes}\footsofar
\setbox\footins\box\footsofar
+ \compose@footnotes
\@combineinserts\@outputbox\footins
}%
}{%
@@ -1576,18 +1690,20 @@
\set@colroom
}%
\def\set@adj@textheight#1{%
+ \ltxgrid@info@sw{\class@info{\string\set@adj@textheight\string#1}\saythe\textheight}{}%
#1\textheight
\def\@elt{\adj@page#1}%
\@booleantrue\firsttime@sw\@dbltoplist
\let\@elt\relax
\global#1#1\relax
- \outputdebug@sw{\saythe#1}{}%
+ \ltxgrid@info@sw{\saythe#1}{}%
}%
\def\set@colroom{%
+ \ltxgrid@info@sw{\class@info{\string\set@colroom}}{}%
\set@adj@colht\@colroom
\@if@empty\enlarge@colroom{}{%
\global\advance\@colroom\enlarge@colroom\relax
- \outputdebug@sw{\saythe\@colroom}{}%
+ \ltxgrid@info@sw{\saythe\@colroom}{}%
}%
\@ifdim{\@colroom>\topskip}{}{%
\ltxgrid@info{Not enough room: \string\@colroom=\the\@colroom; increasing to \the\topskip}%
@@ -1598,16 +1714,15 @@
}%
\def\set@vsize{%
\global\vsize\@colroom
- \outputdebug@sw{\saythe\vsize}{}%
+ \ltxgrid@info@sw{\class@info{\string\set@vsize\string\vsize=\string\colroom}\saythe\vsize}{}%
}%
\def\set@adj@colht#1{%
#1\@colht
- \outputdebug@sw{\saythe#1}{}%
+ \ltxgrid@info@sw{\class@info{\string\set@adj@colht\string#1-\string\pagesofar}\saythe#1}{}%
\@ifvoid\pagesofar{}{%
\advance#1-\ht\pagesofar\advance#1-\dp\pagesofar
- \outputdebug@sw{\saythe#1}{}%
+ \ltxgrid@info@sw{\class@info{\string\pagesofar}\saythe#1}{}%
}%
- \set@adj@footins#1%
\def\@elt{\adj@column#1}%
\@booleantrue\firsttime@sw\@toplist
\@booleantrue\firsttime@sw\@botlist
@@ -1616,25 +1731,18 @@
\def\adj@column#1#2{%
\advance#1-\ht#2%
\advance#1-\firsttime@sw{\textfloatsep\@booleanfalse\firsttime@sw}{\floatsep}%
- \outputdebug@sw{\saythe#1}{}%
+ \ltxgrid@info@sw{\class@info{\string\adj@column\string#1-\string#2}\saythe#1}{}%
}%
\def\adj@page#1#2{%
\advance#1-\ht#2%
\advance#1-\firsttime@sw{\dbltextfloatsep\@booleanfalse\firsttime@sw}{\dblfloatsep}%
- \outputdebug@sw{\saythe#1}{}%
-}%
-\def\set@adj@footins#1{%
- \@booleanfalse\temp@sw
- \set@adj@box#1\footins
- \set@adj@box#1\footins@saved
- \set@adj@box#1\footsofar
- \temp@sw{\advance#1-\skip\footins}{}%
+ \ltxgrid@info@sw{\class@info{\string\adj@page\string#1-\string#2}\saythe#1}{}%
}%
\def\set@adj@box#1#2{%
\@ifvoid#2{}{%
\advance#1-\ht#2\advance#1-\dp#2%
\@booleantrue\temp@sw
- \outputdebug@sw{\saythe#1}{}%
+ \ltxgrid@foot@info@sw{\class@info{\string\set@adj@box\string#2}\saythe#1}{}%
}%
}%
\appdef\@outputpage@tail{%
@@ -1648,66 +1756,59 @@
\toks@{%
\setbox\footins\box\footsofar
\balance@two\col@1\@outputbox
- \combine@foot@inserts
- \@ifvoid\footsofar{}{%
- \global
- \setbox\footsofar\vbox\bgroup
- \setbox\z@\box\@tempboxa
- \let\recover@footins\relax
- \balance@two\footsofar\@tempboxa
- \hb@xt@\textwidth{\box\footsofar\hfil\box\@tempboxa}%
- \egroup
- }%
+ \global\setbox\col@1\box\col@1
+ \global\setbox\@outputbox\box\@outputbox
+ \combine@foot@inserts\footsofar\footins
}%
\aftergroup\def\aftergroup\balance@2\expandafter
\endgroup\expandafter{\the\toks@}%
\def\balance@two#1#2{%
+ \ltxgrid@info@sw{\class@info{\string\balance@two\string#1\string#2}}{}%
\outputdebug@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
- \setbox\@ne\vbox{%
- \@ifvoid#1{}{%
- \unvcopy#1\recover@footins
- \@ifvoid#2{}{\marry@baselines}%
+ \setbox\thr@@\copy\footsofar
+ \setbox\@ne\vbox\bgroup
+ \@ifvoid{#1}{}{%
+ \recover@column#1\footsofar\column@recovered\footins@recovered
+ \@ifvoid{#2}{}{\marry@baselines}%
}%
- \@ifvoid#2{}{%
- \unvcopy#2\recover@footins
+ \@ifvoid{#2}{}{%
+ \recover@column#2\footsofar\column@recovered\footins@recovered
}%
- }%
+ \egroup
+ \outputdebug@sw{\trace@scroll{\showbox\@ne}}{}%
+ \ltxgrid@foot@info@sw{\trace@scroll{\showbox\footsofar}}{}%
\dimen@\ht\@ne\divide\dimen@\tw@
\dimen@i\dimen@
\vbadness\@M
\vfuzz\maxdimen
+ \splittopskip\topskip
\loopwhile{%
- \dimen@i=.5\dimen@i
- \outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
\setbox\z@\copy\@ne\setbox\tw@\vsplit\z@ to\dimen@
- \setbox\z@ \vbox{%
- \unvcopy\z@
- \setbox\z@\vbox{\unvbox\z@ \remove@lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax
- }%
- \setbox\tw@\vbox{%
- \unvcopy\tw@
- \setbox\z@\vbox{\unvbox\tw@\remove@lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax
- }%
+ \remove@depth\z@\remove@depth\tw@
\dimen@ii\ht\tw@\advance\dimen@ii-\ht\z@
- \@ifdim{\dimen@i>.5\p@}{%
- \advance\dimen@\@ifdim{\dimen@ii<\z@}{}{-}\dimen@i
- \true@sw
+ \dimen@i=.5\dimen@i
+ \ltxgrid@info@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+ \@ifdim{\dimen@ii<.5\p@}{%
+ \@ifdim{\dimen@ii>-.5\p@}%
}{%
- \@ifdim{\dimen@ii<\z@}{%
- \advance\dimen@\tw@\dimen@i
- \true@sw
- }{%
- \false@sw
- }%
+ \false@sw
}%
- }%
- \outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
- \@ifdim{\ht\z@=\z@}{%
- \@ifdim{\ht\tw@=\z@}{%
+ {%
\true@sw
}{%
+ \@ifdim{\dimen@i<.5\p@}%
+ }%
+ {%
\false@sw
}%
+ {%
+ \advance\dimen@\@ifdim{\dimen@ii<\z@}{}{-}\dimen@i
+ \true@sw
+ }%
+ }%
+ \ltxgrid@info@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+ \@ifdim{\ht\z@=\z@}{%
+ \@ifdim{\ht\tw@=\z@}%
}{%
\true@sw
}%
@@ -1716,38 +1817,63 @@
\ltxgrid@info{Unsatifactorily balanced columns: giving up}%
\setbox\tw@\box#1%
\setbox\z@ \box#2%
+ \global\setbox\footsofar\box\thr@@
}%
\setbox\tw@\vbox{\unvbox\tw@\vskip\z@skip}%
\setbox\z@ \vbox{\unvbox\z@ \vskip\z@skip}%
\set@colht
\dimen@\ht\z@\@ifdim{\dimen@<\ht\tw@}{\dimen@\ht\tw@}{}%
\@ifdim{\dimen@>\@colroom}{\dimen@\@colroom}{}%
- \outputdebug@sw{\saythe{\ht\z@}\saythe{\ht\tw@}\saythe\@colroom\saythe\dimen@}{}%
+ \ltxgrid@info@sw{\saythe{\ht\z@}\saythe{\ht\tw@}\saythe\@colroom\saythe\dimen@}{}%
\setbox#1\vbox to\dimen@{\unvbox\tw@\unskip\raggedcolumn@skip}%
\setbox#2\vbox to\dimen@{\unvbox\z@ \unskip\raggedcolumn@skip}%
\outputdebug@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
}%
-\def\recover@footins{%
- \skip\z@ \lastskip\unskip
- \skip\@ne\lastskip\unskip
- \setbox\z@\lastbox
- \@ifvbox\z@{%
- \setbox\z@\vbox{%
- \unvbox\z@
- \setbox\z@\lastbox
- \@ifvoid\z@{}{%
- \global\setbox\footsofar\vbox{%
- \unvbox\footsofar
- \@ifvbox\z@{%
- \unvbox\z@
- }{%
- \box\z@
- }%
- }%
- }%
+\def\remove@depth#1{%
+ \setbox#1\vbox\bgroup
+ \unvcopy#1%
+ \setbox\z@\vbox\bgroup
+ \unvbox#1%
+ \setbox\z@\lastbox
+ \aftergroup\kern\aftergroup-\expandafter
+ \egroup
+ \the\dp\z@\relax
+ \egroup
+}%
+\def\recover@column#1#2#3#4{%
+ \ltxgrid@info@sw{\class@info{\string\recover@column\string#1\string#2\string#3\string#4}}{}%
+ \setbox#4\vbox{\unvcopy#1}%
+ \ltxgrid@foot@info@sw{\trace@scroll{\showbox#4}}{}%
+ \dimen@\ht#4%
+ \ltxgrid@foot@info@sw{\saythe\dimen@}{}%
+ \setbox#4\vbox\bgroup
+ \unvbox#4\unskip
+ \dimen@i\lastkern\unkern\advance\dimen@i\lastkern
+ \@ifdim{\dimen@i=\z@}{%
+ \dimen@i\lastkern\unkern
+ \ltxgrid@foot@info@sw{\saythe\dimen@i}{}%
+ \aftergroup\dimen@i
+ \expandafter\egroup\the\dimen@i\relax
+ }{%
+ \egroup
}%
- }{}%
- \outputdebug@sw{\trace@box\footsofar}{}%
+ \@ifdim{\dimen@i<\z@}{%
+ \advance\dimen@\dimen@i
+ \ltxgrid@foot@info@sw{\saythe\dimen@i\saythe\dimen@}{}%
+ \splittopskip\z@skip
+ \global\setbox#3\vsplit#4 to\dimen@
+ \global\setbox#4\vbox{\unvbox#4}%
+ \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2\showbox#3\showbox#4}}{}%
+ \global\setbox#2\vbox\bgroup\unvbox#2\vskip\z@skip\unvbox#4\egroup
+ }{%
+ \setbox#3\box#4%
+ \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2\showbox#3\showbox#4}}{}%
+ }%
+ \unvbox#3%
+ \loopwhile{\dimen@\lastskip\@ifdim{\dimen@>\z@}{\unskip\true@sw}{\false@sw}}%
+}%
+\def\recover@column@null#1#2#3#4{%
+ \unvcopy#1%
}%
\prepdef\@begindocumenthook{%
\open@column@one\@ne
@@ -2175,6 +2301,9 @@
\vbadness\count@
}{}%
}%
+\appdef\@outputpage@head{%
+ \@ifx{\LS@rot\@undefined}{}{\LS@rot}%
+}%
\def\ltxgrid@info{%
\ltxgrid@info@sw{\class@info}{\@gobble}%
}%
@@ -2183,6 +2312,7 @@
\ltxgrid@warn@sw{\class@warn}{\@gobble}%
}%
\@booleantrue\ltxgrid@warn@sw
+\@booleanfalse\ltxgrid@foot@info@sw
\def\def@next@handler#1#2#3{%
\advance#1\@ne\mathchardef#2\the#1%
\expandafter\def\csname output@-\the#1\endcsname{#3}%