diff options
author | Karl Berry <karl@freefriends.org> | 2010-03-18 23:53:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-03-18 23:53:14 +0000 |
commit | aeb40e4eddc0e83dfd8f55c18ffd3b94540c0f47 (patch) | |
tree | ae4269d5a89406c04493af63b04c8fabc71fb754 /Master/texmf-dist/tex/latex/revtex/ltxgrid.sty | |
parent | 481fc83998309f749f51e74a5e711829a5a3c80b (diff) |
revtex 4.1p (17mar10)
git-svn-id: svn://tug.org/texlive/trunk@17498 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/revtex/ltxgrid.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/revtex/ltxgrid.sty | 518 |
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}% |