%% %% This is file `fltrace.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% ltoutput.dtx (with options: `fltrace,trace') %% %% This is a generated file. %% %% The source is maintained by the LaTeX Project team and bug %% reports for it can be opened at https://latex-project.org/bugs.html %% (but please observe conditions on bug reports sent to that address!) %% %% %% Copyright (C) 1993-2020 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% %% This file was generated from file(s) of the LaTeX base system. %% -------------------------------------------------------------- %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c %% of this license or (at your option) any later version. %% The latest version of this license is in %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2008 or later. %% %% This file has the LPPL maintenance status "maintained". %% %% This file may only be distributed together with a copy of the LaTeX %% base system. You may however distribute the LaTeX base system without %% such generated files. %% %% The list of all files belonging to the LaTeX base distribution is %% given in the file `manifest.txt'. See also `legal.txt' for additional %% information. %% %% The list of derived (unpacked) files belonging to the distribution %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %%% From File: ltoutput.dtx \ProvidesPackage{fltrace} [2018/11/28 v1.4d Tracing LaTeX floats algorithm (FMi)] \def\onecolumn{% \clearpage \global\columnwidth\textwidth \global\hsize\columnwidth \global\linewidth\columnwidth \global\@twocolumnfalse \col@number \@ne \@floatplacement} \def \newpage {% \if@noskipsec \ifx \@nodocument\relax \leavevmode \global \@noskipsecfalse \fi \fi \if@inlabel \leavevmode \global \@inlabelfalse \fi \if@nobreak \@nobreakfalse \everypar{}\fi \par \ifdim\prevdepth>\z@ \vskip -% \ifdim\prevdepth>\maxdepth \maxdepth \else \prevdepth \fi \fi \vfil \penalty -\@M} \def \@emptycol {\vbox{}\penalty -\@M} \def \twocolumn {% \clearpage \global\columnwidth\textwidth \global\advance\columnwidth-\columnsep \global\divide\columnwidth\tw@ \global\hsize\columnwidth \global\linewidth\columnwidth \global\@twocolumntrue \global\@firstcolumntrue \col@number \tw@ \@ifnextchar [\@topnewpage\@floatplacement } \long\def \@topnewpage [#1]{% \@nodocument \@next\@currbox\@freelist{}{}% \global \setbox\@currbox \color@vbox \normalcolor \vbox {% \hsize\textwidth \@parboxrestore \col@number \@ne #1% \vskip -\dbltextfloatsep }% \color@endbox \ifdim \ht\@currbox>\textheight \ht\@currbox \textheight \fi \global \count\@currbox \tw@ \@tempdima -\ht\@currbox \advance \@tempdima -\dbltextfloatsep \global \advance \@colht \@tempdima \ifx \@dbltoplist \@empty \else \@latexerr{Float(s) lost}\@ehb \let \@dbltoplist \@empty \fi \@cons \@dbltoplist \@currbox \global \@dbltopnum \m@ne \fl@trace{dbltopnum set to -1 (= \the \@dbltopnum) (topnewpage)}% \ifdim \@colht<2.5\baselineskip \@latex@warning@no@line {Optional argument of \noexpand\twocolumn too tall on page \thepage}% \@emptycol \if@firstcolumn \else \@emptycol \fi \else \global \vsize \@colht \global \@colroom \@colht \@floatplacement \fi } \output {% \let \par \@@par \ifnum \outputpenalty<-\@M \@specialoutput \else \@makecol \@opcol \@startcolumn \@whilesw \if@fcolmade \fi {% \fl@trace{PAGE: float \if@twocolumn column \else page \fi completed}% \@opcol\@startcolumn}% \fi \ifnum \outputpenalty>-\@Miv \ifdim \@colroom<1.5\baselineskip \ifdim \@colroom<\textheight \@latex@warning@no@line {Text page \thepage\space contains only floats}% \@emptycol \else \global \vsize \@colroom \fi \else \global \vsize \@colroom \fi \else \global \vsize \maxdimen \fi } \gdef\@specialoutput{% \ifnum \outputpenalty>-\@Mii \@doclearpage \else \ifnum \outputpenalty<-\@Miii \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi \global \setbox\@holdpg \vbox {\unvbox\@cclv}% \else \global \setbox\@holdpg \vbox{% \unvbox\@holdpg \unvbox\@cclv \setbox\@tempboxa \lastbox \unskip }% \@pagedp \dp\@holdpg \@pageht \ht\@holdpg \unvbox \@holdpg \@next\@currbox\@currlist{% \ifnum \count\@currbox>\z@ \advance \@pageht \@pagedp \ifvoid\footins \else \advance \@pageht \ht\footins \advance \@pageht \skip\footins \advance \@pageht \dp\footins \fi \ifvbox \@kludgeins \ifdim \wd\@kludgeins=\z@ \advance \@pageht \ht\@kludgeins \fl@trace {Extra size added: \the \ht\@kludgeins}% \fi \fi \@reinserts \@addtocurcol \else \@reinserts \@addmarginpar \fi }\@latexbug \ifnum \outputpenalty<\z@ \if@nobreak \nobreak \else \addpenalty \interlinepenalty \fi \fi \fi \fi } \def\@testwrongwidth #1{% \ifdim\dp#1=\f@depth \fl@trace{\string#1 \ifdim\f@depth=\z@ single \else double \fi column float -- ok}% \else \global\@testtrue \fl@trace{\string#1 \ifdim\f@depth=\z@ double \else single \fi column float -- wrong}% \fi}% \let\f@depth\z@ \def \@opcol {% \if@twocolumn \@outputdblcol \else \@outputpage \fl@trace{PAGE: one column (float? see above) page completed}% \fi \global \@mparbottom \z@ \global \@textfloatsheight \z@ \@floatplacement } \gdef \@makespecialcolbox {% \fl@trace{Kludgeins ht \the\ht\@kludgeins\space dp \the\dp\@kludgeins\space wd \the\wd\@kludgeins}% \setbox\@outputbox \vbox {% \@texttop \dimen@ \dp\@outputbox \unvbox\@outputbox \vskip-\dimen@ }% \@tempdima \@colht \ifdim \wd\@kludgeins>\z@ \advance \@tempdima -\ht\@outputbox \advance \@tempdima \pageshrink \fl@trace {Natural ht of col: \the \ht\@outputbox}% \fl@trace {\string \@colht: \the \@colht}% \fl@trace {Pageshrink added: \the \pageshrink}% \fl@trace {Hence, space added: \the \@tempdima}% \setbox\@outputbox \vbox to \@colht {% \unvbox\@outputbox \vskip \@tempdima \@textbottom }% \else \advance \@tempdima -\ht\@kludgeins \fl@trace {Natural ht of col: \the \ht\@outputbox}% \fl@trace {\string \@colht: \the \@colht}% \fl@trace {Extra size added: -\the \ht \@kludgeins}% \fl@trace {Hence, height of inner box: \the \@tempdima}% \fl@trace {Max? pageshrink available: \the \pageshrink}% \setbox \@outputbox \vbox to \@colht {% \vbox to \@tempdima {% \unvbox\@outputbox \@textbottom}% \vss}% \fi {\setbox \@tempboxa \box \@kludgeins}% \fl@trace {kludgeins box made void}% } \def \@startcolumn {% \global \@colroom \@colht \@tryfcolumn \@deferlist \if@fcolmade \fl@trace{PAGE: float \if@twocolumn column \else page \fi completed}% \else \begingroup \let \reserved@b \@deferlist \global \let \@deferlist \@empty \let \@elt \@scolelt \reserved@b \endgroup \fi } \IncludeInRelease{2015/01/01}% {\@startdblcolumn}{float order in 2-column}% \def \@startdblcolumn {% \@tryfcolumn \@deferlist \if@fcolmade \fl@trace{PAGE: double float page completed}% \else \begingroup \let \reserved@b \@deferlist \global \let \@deferlist \@empty \let \@elt \@sdblcolelt \reserved@b \endgroup \fi }% \EndIncludeInRelease \IncludeInRelease{0000/00/00}% {\@startdblcolumn}{float order in 2-column}% \def \@startdblcolumn {% % \global \@colht \textheight \@tryfcolumn \@dbldeferlist \if@fcolmade \fl@trace{PAGE: double float page completed}% \else \begingroup \let \reserved@b \@dbldeferlist \global \let \@dbldeferlist \@empty \let \@elt \@sdblcolelt \reserved@b \endgroup \fi }% \EndIncludeInRelease \def \@tryfcolumn #1{% \global \@fcolmadefalse \ifx #1\@empty \else \fl@trace{PAGE: try float \if@twocolumn column/page\else page\fi ---\string #1}% \fl@trace{----- \string #1: #1}% \xdef\@trylist{#1}% \global \let \@failedlist \@empty \begingroup \let \@elt \@xtryfc \@trylist \endgroup \if@fcolmade \@vtryfc #1% \fi \fi } \def \@addtobot {% \fl@trace{***Start addtobot}% \@getfpsbit 4\relax \fl@trace{fpstype \ifodd \@tempcnta OK \else not \fi bot: \the \@fpstype}% \ifodd \@tempcnta \@flsetnum \@botnum \ifnum \@botnum>\z@ \@tempswafalse \@flcheckspace \@botroom \@botlist \if@tempswa \global \maxdepth \z@ \@flupdates \@botnum \@botroom \@botlist \fl@trace{colroom (after-bot) = \the \@colroom}% \fl@trace{colnum (after-bot) = \the \@colnum}% \fl@trace{botnum (after-bot) = \the \@botnum}% \fl@trace{***Success: bot}% \@inserttrue \fi \else \fl@trace{Fail: botnum = \the \@botnum: fpstype \the \@fpstype=ORD?}% \ifnum \@fpstype<\sixt@@n \fl@trace{ERROR: !b float not successful (addtobot)}% \fi \fi \fi } \def \@addtotoporbot {% \fl@trace{***Start addtotoporbot}% \@getfpsbit \tw@ \fl@trace{fpstype \ifodd \@tempcnta OK \else not \fi top: \the \@fpstype}% \ifodd \@tempcnta \@flsetnum \@topnum \ifnum \@topnum>\z@ \@tempswafalse \@flcheckspace \@toproom \@toplist \if@tempswa \@bitor\@currtype{\@midlist\@botlist}% \fl@trace{(mid+bot)list: \@midlist, \@botlist: (addtotoporbot-before)}% \if@test \fl@trace{type already on list: mid or bot---sent to addtobot}% \else \@flupdates \@topnum \@toproom \@toplist \fl@trace{colroom (after-top) = \the \@colroom}% \fl@trace{colnum (after-top) = \the \@colnum}% \fl@trace{topnum (after-top) = \the \@topnum}% \fl@trace{***Success: top}% \@inserttrue \fi \fi \else \fl@trace{Fail: topnum = \the \@topnum: fpstype \the \@fpstype=ORD?}% \ifnum \@fpstype<\sixt@@n \fl@trace{ERROR: !t float not successful (addtotoporbot)}% \fi \fi \fi \if@insert \else \fl@trace{sent to addtobot (addtotoporbot)}% \@addtobot \fi } \IncludeInRelease{2015/01/01}% {\@addtocurcol}{float order in 2-column}% \def \@addtocurcol {% \fl@trace{***Start addtocurcol}% \@insertfalse \@setfloattypecounts \ifnum \@fpstype=8 \fl@trace{fpstype !p only (addtocurcol): \the \@fpstype = 8?}% \else \ifnum \@fpstype=24 \fl@trace{fpstype p only (addtocurcol): \the \@fpstype = 24?}% \else \@flsettextmin \fl@trace{textfloatsheight (before) = \the \@textfloatsheight}% \advance \@textmin \@textfloatsheight \@reqcolroom \@pageht \fl@trace{textmin + textfloatsheight: \the \@textmin}% \fl@trace{page-so-far: \the \@reqcolroom}% \ifdim \@textmin>\@reqcolroom \@reqcolroom \@textmin \fl@trace{ORD? textmin being used}% \fi \advance \@reqcolroom \ht\@currbox \fl@trace{float size = \the \ht \@currbox (addtocurcol)}% \fl@trace{colroom = \the \@colroom (addtocurcol)}% \fl@trace{reqcolroom = \the \@reqcolroom (addtocurcol)}% \ifdim \@colroom>\@reqcolroom \@flsetnum \@colnum \ifnum \@colnum>\z@ \@bitor\@currtype\@deferlist \@testwrongwidth\@currbox \fl@trace{deferlist: \@deferlist: (addtocurcol-before)}% \if@test \fl@trace{type already on list: defer (addtocurcol)}% \else \@bitor\@currtype\@botlist \fl@trace{botlist: \@botlist: (addtocurcol-before)}% \if@test \fl@trace{type already on list: bot---sent to addtobot}% \@addtobot \else \fl@trace{fpstype \ifodd \@tempcnta OK \else not \fi here: \the \@fpstype}% \ifodd \count\@currbox \advance \@reqcolroom \intextsep \ifdim \@colroom>\@reqcolroom \global \advance \@colnum \m@ne \global \advance \@textfloatsheight \ht\@currbox \global \advance \@textfloatsheight 2\intextsep \@cons \@midlist \@currbox \fl@trace{***Success: here}% \fl@trace{textfloatsheight (after-here) = \the \@textfloatsheight}% \fl@trace{colnum (after-here) = \the \@colnum}% \if@nobreak \nobreak \@nobreakfalse \everypar{}% \else \addpenalty \interlinepenalty \fi \vskip \intextsep \box\@currbox \penalty\interlinepenalty \vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi \outputpenalty \z@ \@inserttrue \else \fl@trace{Fail---no room at 2nd test of colroom (addtocorcol \string\intextsep)}% \fi \fi \if@insert \else \fl@trace{not here: sent to addtotoporbot}% \@addtotoporbot \fi \fi \fi \else \fl@trace{Fail: colnum = \the \@colnum: fpstype \the \@fpstype=ORD?}% \ifnum \@fpstype<\sixt@@n \fl@trace{ERROR: BANG float not successful (addtocurcol)}% \fi \fi \else \fl@trace{Fail---no room: fl box ht: \the \ht \@currbox (addtocurcol)}% \fi \fi \fi \if@insert \else \@resethfps \fl@trace{put on deferlist (addtocurcol)}% \@cons\@deferlist\@currbox \fl@trace{deferlist: \@deferlist: (addtocurcol-after)}% \fi }% \EndIncludeInRelease \IncludeInRelease{0000/00/00}% {\@addtocurcol}{float order in 2-column}% \def \@addtocurcol {% \fl@trace{***Start addtocurcol}% \@insertfalse \@setfloattypecounts \ifnum \@fpstype=8 \fl@trace{fpstype !p only (addtocurcol): \the \@fpstype = 8?}% \else \ifnum \@fpstype=24 \fl@trace{fpstype p only (addtocurcol): \the \@fpstype = 24?}% \else \@flsettextmin \fl@trace{textfloatsheight (before) = \the \@textfloatsheight}% \advance \@textmin \@textfloatsheight \@reqcolroom \@pageht \fl@trace{textmin + textfloatsheight: \the \@textmin}% \fl@trace{page-so-far: \the \@reqcolroom}% \ifdim \@textmin>\@reqcolroom \@reqcolroom \@textmin \fl@trace{ORD? textmin being used}% \fi \advance \@reqcolroom \ht\@currbox \fl@trace{float size = \the \ht \@currbox (addtocurcol)}% \fl@trace{colroom = \the \@colroom (addtocurcol)}% \fl@trace{reqcolroom = \the \@reqcolroom (addtocurcol)}% \ifdim \@colroom>\@reqcolroom \@flsetnum \@colnum \ifnum \@colnum>\z@ \@bitor\@currtype\@deferlist \fl@trace{deferlist: \@deferlist: (addtocurcol-before)}% \if@test \fl@trace{type already on list: defer (addtocurcol)}% \else \@bitor\@currtype\@botlist \fl@trace{botlist: \@botlist: (addtocurcol-before)}% \if@test \fl@trace{type already on list: bot---sent to addtobot}% \@addtobot \else \fl@trace{fpstype \ifodd \@tempcnta OK \else not \fi here: \the \@fpstype}% \ifodd \count\@currbox \advance \@reqcolroom \intextsep \ifdim \@colroom>\@reqcolroom \global \advance \@colnum \m@ne \global \advance \@textfloatsheight\ht\@currbox \global \advance \@textfloatsheight 2\intextsep \@cons \@midlist \@currbox \fl@trace{***Success: here}% \fl@trace{textfloatsheight (after-here) = \the \@textfloatsheight}% \fl@trace{colnum (after-here) = \the \@colnum}% \if@nobreak \nobreak \@nobreakfalse \everypar{}% \else \addpenalty\interlinepenalty \fi \vskip \intextsep \box\@currbox \penalty\interlinepenalty \vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi \outputpenalty \z@ \@inserttrue \else \fl@trace{Fail---no room at 2nd test of colroom (addtocorcol \string\intextsep)}% \fi \fi \if@insert \else \fl@trace{not here: sent to addtotoporbot}% \@addtotoporbot \fi \fi \fi \else \fl@trace{Fail: colnum = \the \@colnum: fpstype \the \@fpstype=ORD?}% \ifnum \@fpstype<\sixt@@n \fl@trace{ERROR: BANG float not successful (addtocurcol)}% \fi \fi \else \fl@trace{Fail---no room: fl box ht: \the \ht \@currbox (addtocurcol)}% \fi \fi \fi \if@insert \else \@resethfps \fl@trace{put on deferlist (addtocurcol)}% \@cons\@deferlist\@currbox \fl@trace{deferlist: \@deferlist: (addtocurcol-after)}% \fi }% \EndIncludeInRelease \IncludeInRelease{2015/01/01} {\@addtonextcol}{float order in 2-column}% \def\@addtonextcol{% \begingroup \fl@trace{***Start addtonextcol}% \@insertfalse \@setfloattypecounts \ifnum \@fpstype=8 \fl@trace{fpstype not curcol: \the \@fpstype = 8?}% \else \ifnum \@fpstype=24 \fl@trace{fpstype not curcol: \the \@fpstype = 24?}% \else \@flsettextmin \fl@trace{text-so-far: 0pt (top of col)}% \@reqcolroom \ht\@currbox \fl@trace{float size: \the \@reqcolroom (addtonextcol)}% \advance \@reqcolroom \@textmin \fl@trace{colroom = \the \@colroom (addtonextcol)}% \fl@trace{reqcolroom = \the \@reqcolroom (addtonextcol)}% \ifdim \@colroom>\@reqcolroom \@flsetnum \@colnum \ifnum\@colnum>\z@ \@bitor\@currtype\@deferlist \fl@trace{deferlist: \@deferlist: (addtonextcol-before)}% \@testwrongwidth\@currbox \if@test \fl@trace{type already on list: defer (addtonextcol)}% \else \fl@trace{sent to addtotoporbot (addtonextcol)}% \@addtotoporbot \fi \fi \else \fl@trace{Fail---no room: fl box ht: \the \ht \@currbox (addtonextcol)}% \fi \fi \fi \if@insert \else \fl@trace{put back on deferlist (addtonextcol)}% \@cons\@deferlist\@currbox \fl@trace{deferlist: \@deferlist: (addtonextcol-after)}% \fi \fl@trace{End of addtonextcol -- locally counts:}% \fl@trace{col: \the\@colnum. top: \the \@topnum. bot: \the \@botnum.}% \endgroup \fl@trace{End of addtonextcol -- globally counts:}% \fl@trace{col: \the\@colnum. top: \the \@topnum. bot: \the \@botnum.}% }% \EndIncludeInRelease \IncludeInRelease{0000/00/00}% {\@addtonextcol}{float order in 2-column}% \def\@addtonextcol{% \begingroup \fl@trace{***Start addtonextcol}% \@insertfalse \@setfloattypecounts \ifnum \@fpstype=8 \fl@trace{fpstype not curcol: \the \@fpstype = 8?}% \else \ifnum \@fpstype=24 \fl@trace{fpstype not curcol: \the \@fpstype = 24?}% \else \@flsettextmin \fl@trace{text-so-far: 0pt (top of col)}% \@reqcolroom \ht\@currbox \fl@trace{float size: \the \@reqcolroom (addtonextcol)}% \advance \@reqcolroom \@textmin \fl@trace{colroom = \the \@colroom (addtonextcol)}% \fl@trace{reqcolroom = \the \@reqcolroom (addtonextcol)}% \ifdim \@colroom>\@reqcolroom \@flsetnum \@colnum \ifnum\@colnum>\z@ \@bitor\@currtype\@deferlist \fl@trace{deferlist: \@deferlist: (addtonextcol-before)}% \if@test \fl@trace{type already on list: defer (addtonextcol)}% \else \fl@trace{sent to addtotoporbot (addtonextcol)}% \@addtotoporbot \fi \fi \else \fl@trace{Fail---no room: fl box ht: \the \ht \@currbox (addtonextcol)}% \fi \fi \fi \if@insert \else \fl@trace{put back on deferlist (addtonextcol)}% \@cons\@deferlist\@currbox \fl@trace{deferlist: \@deferlist: (addtonextcol-after)}% \fi \fl@trace{End of addtonextcol -- locally counts:}% \fl@trace{col: \the \@colnum. top: \the \@topnum. bot: \the \@botnum.}% \endgroup \fl@trace{End of addtonextcol -- globally counts:}% \fl@trace{col: \the \@colnum. top: \the \@topnum. bot: \the \@botnum.}% }% \EndIncludeInRelease \IncludeInRelease{2015/01/01}% {\@addtodblcol}{float order in 2-column}% \def\@addtodblcol{% \begingroup \fl@trace{***Start addtodblcol}% \@insertfalse \@setfloattypecounts \@getfpsbit \tw@ \fl@trace{fpstype \ifodd \@tempcnta OK \else not \fi dbltop: \the \@fpstype}% \ifodd\@tempcnta \@flsetnum \@dbltopnum \ifnum \@dbltopnum>\z@ \@tempswafalse \ifdim \@dbltoproom>\ht\@currbox \@tempswatrue \fl@trace{Space OK: \@dbltoproom = \the \@dbltoproom > \the \ht \@currbox (dbltoproom)}% \else \fl@trace{fpstype: \the \@fpstype (addtodblcol)}% \ifnum \@fpstype<\sixt@@n \fl@trace{BANG float ignoring \@dbltoproom}% \fl@trace{\@spaces \@dbltoproom = \the \@dbltoproom. Ht float: \the \ht \@currbox-BANG}% \advance \@dbltoproom \@textmin \fl@trace{Local value of texmin: \the\@textmin}% \fl@trace{\@spaces space on page = \the \@dbltoproom. Ht float: \the \ht \@currbox-BANG}% \ifdim \@dbltoproom>\ht\@currbox \@tempswatrue \fl@trace{Space OK BANG: space on page = \the \@dbltoproom > \the \ht \@currbox}% \else \fl@trace{fpstype: \the \@fpstype}% \fl@trace{Fail---no room dbltoproom-BANG?:}% \fl@trace{\@spaces space on page = \the \@dbltoproom. Ht float: \the \ht \@currbox}% \fi \advance \@dbltoproom -\@textmin \else \fl@trace{fpstype: \the \@fpstype}% \fl@trace{Fail---no room dbltoproom-ORD?:}% \fl@trace{\@spaces \@dbltoproom = \the \@dbltoproom. Ht float: \the \ht \@currbox}% \fi \fi \if@tempswa \@bitor \@currtype \@deferlist \fl@trace{(dbl)deferlist: \@deferlist: (before)}% \@testwrongwidth\@currbox \if@test \fl@trace{type already on list: (dbl)defer}% \else \@tempdima -\ht\@currbox \advance\@tempdima -\ifx \@dbltoplist\@empty \dbltextfloatsep \else \dblfloatsep \fi \global \advance \@dbltoproom \@tempdima \global \advance \@colht \@tempdima \global \advance \@dbltopnum \m@ne \@cons \@dbltoplist \@currbox \fl@trace{dbltopnum (after) = \the \@dbltopnum}% \fl@trace{***Success: dbltop}% \@inserttrue \fi \fi \else \fl@trace{Fail: dbltopnum = \the \@dbltopnum: fpstype \the \@fpstype=ORD?}% \ifnum \@fpstype<\sixt@@n \fl@trace{ERROR: !t float not successful (addtodblcol)}% \fi \fi \fi \if@insert \else \fl@trace{put on deferlist}% \@cons\@deferlist\@currbox \fl@trace{(dbl)deferlist: \@deferlist: (after)}% \fi \fl@trace{End of addtodblcol -- locally count:}% \fl@trace{ dbltop: \the \@dbltopnum.}% \endgroup \fl@trace{End of addtodblcol -- globally count:}% \fl@trace{dbltop: \the \@dbltopnum.}% }% \EndIncludeInRelease \IncludeInRelease{0000/00/00}% {\@addtodblcol}{float order in 2-column}% \def\@addtodblcol{% \begingroup \fl@trace{***Start addtodblcol}% \@insertfalse \@setfloattypecounts \@getfpsbit \tw@ \fl@trace{fpstype \ifodd \@tempcnta OK \else not \fi dbltop: \the \@fpstype}% \ifodd\@tempcnta \@flsetnum \@dbltopnum \ifnum \@dbltopnum>\z@ \@tempswafalse \ifdim \@dbltoproom>\ht\@currbox \@tempswatrue \fl@trace{Space OK: \@dbltoproom = \the \@dbltoproom > \the \ht \@currbox (dbltoproom)}% \else \fl@trace{fpstype: \the \@fpstype (addtodblcol)}% \ifnum \@fpstype<\sixt@@n \fl@trace{BANG float ignoring \@dbltoproom}% \fl@trace{\@spaces \@dbltoproom = \the \@dbltoproom. Ht float: \the \ht \@currbox-BANG}% \advance \@dbltoproom \@textmin \fl@trace{Local value of texmin: \the\@textmin}% \fl@trace{\@spaces space on page = \the \@dbltoproom. Ht float: \the \ht \@currbox-BANG}% \ifdim \@dbltoproom>\ht\@currbox \@tempswatrue \fl@trace{Space OK BANG: space on page = \the\@dbltoproom > \the\ht\@currbox}% \else \fl@trace{fpstype: \the \@fpstype}% \fl@trace{Fail---no room dbltoproom-BANG?:}% \fl@trace{\@spaces space on page = \the \@dbltoproom. Ht float: \the \ht \@currbox}% \fi \advance \@dbltoproom -\@textmin \else \fl@trace{fpstype: \the \@fpstype}% \fl@trace{Fail---no room dbltoproom-ORD?:}% \fl@trace{\@spaces \@dbltoproom = \the \@dbltoproom. Ht float: \the \ht \@currbox}% \fi \fi \if@tempswa \@bitor \@currtype \@dbldeferlist \fl@trace{dbldeferlist: \@dbldeferlist: (before)}% \if@test \fl@trace{type already on list: dbldefer}% \else \@tempdima -\ht\@currbox \advance\@tempdima -\ifx \@dbltoplist\@empty \dbltextfloatsep \else \dblfloatsep \fi \global \advance \@dbltoproom \@tempdima \global \advance \@colht \@tempdima \global \advance \@dbltopnum \m@ne \@cons \@dbltoplist \@currbox \fl@trace{dbltopnum (after) = \the \@dbltopnum}% \fl@trace{***Success: dbltop}% \@inserttrue \fi \fi \else \fl@trace{Fail: dbltopnum = \the \@dbltopnum: fpstype \the \@fpstype=ORD?}% \ifnum \@fpstype<\sixt@@n \fl@trace{ERROR: !t float not successful (addtodblcol)}% \fi \fi \fi \if@insert \else \fl@trace{put on dbldeferlist}% \@cons\@dbldeferlist\@currbox \fl@trace{dbldeferlist: \@dbldeferlist: (after)}% \fi \fl@trace{End of addtodblcol -- locally count:}% \fl@trace{ dbltop: \the \@dbltopnum.}% \endgroup \fl@trace{End of addtodblcol -- globally count:}% \fl@trace{dbltop: \the \@dbltopnum.}% }% \EndIncludeInRelease \def \fl@tracemessage #1{{\let\@elt\@empty\typeout{LaTeX2e: #1}}} \def \tracefloats{\let \fl@trace \fl@tracemessage} \def \tracefloatsoff {\let \fl@trace \@gobble} \tracefloatsoff \def \fl@traceval #1{\fl@trace{\string #1 = \the #1}} \IncludeInRelease{2015/01/01}{\tracefloatvals}% {trace float vals}% \def \tracefloatvals{% \begingroup \@dblfloatplacement \@floatplacement \fl@trace{***Float placement parameters:}% \fl@traceval\@colnum \fl@traceval\@colroom \fl@traceval\@topnum \fl@traceval\@toproom \fl@traceval\@botnum \fl@traceval\@botroom \fl@traceval\@fpmin \fl@trace{\string\textfraction = \textfraction}% \fl@traceval\@dbltopnum \fl@traceval\@dbltoproom \fl@trace{\string\textfraction = \textfraction}% \fl@trace{toplist: \@toplist}% \fl@trace{botlist: \@botlist}% \fl@trace{midlist: \@midlist}% \fl@trace{deferlist: \@deferlist}% \fl@trace{dbltoplist: \@dbltoplist}% \endgroup } \EndIncludeInRelease \IncludeInRelease{0000/00/00}{\tracefloatvals}% {trace float vals}% \def \tracefloatvals{% \begingroup \@dblfloatplacement \@floatplacement \fl@trace{***Float placement parameters:}% \fl@traceval\@colnum \fl@traceval\@colroom \fl@traceval\@topnum \fl@traceval\@toproom \fl@traceval\@botnum \fl@traceval\@botroom \fl@traceval\@fpmin \fl@trace{\string\textfraction = \textfraction}% \fl@traceval\@dbltopnum \fl@traceval\@dbltoproom \fl@trace{\string\textfraction = \textfraction}% \fl@trace{toplist: \@toplist}% \fl@trace{botlist: \@botlist}% \fl@trace{midlist: \@midlist}% \fl@trace{deferlist: \@deferlist}% \fl@trace{dbltoplist: \@dbltoplist}% \fl@trace{dbldeferlist: \@dbldeferlist}% \endgroup } \EndIncludeInRelease \@ifpackageloaded{flafter} {\PackageWarningNoLine {fltrace}{Load 'fltrace' before 'flafter'\MessageBreak Attempting to recover by reloading 'flafter'}% \expandafter\let\csname ver@flafter.sty\endcsname\relax \def\reserved@a#1{% \expandafter\let\csname\string#1+flafter+IIR\endcsname\relax}% \reserved@a\@addtocurcol \reserved@a\@addtonextcol \RequirePackage{flafter}}{} \def \@fpsadddefault {% \fl@trace{fps changed from: \@fps}% \edef \@fps {\@fps\csname fps@\@captype \endcsname}% \@latex@warning {% No positions in optional float specifier.\MessageBreak Default added (so using `\@fps')}% } \def \@setfloattypecounts {% \@currtype \count\@currbox \@fpstype \count\@currbox \divide\@currtype\@xxxii \multiply\@currtype\@xxxii \advance \@fpstype -\@currtype \fl@trace{(mod 32) fpstype: \the \@fpstype}% \fl@trace{(mult of 32) currtype: \the \@currtype}% \ifnum \@fpstype<\sixt@@n \ifnum \@fpstype=\z@ \fl@trace{ERROR: no PLACEMENT, fpstype = \the \@fpstype = 0?}% \fi \ifnum \@fpstype=\@ne \fl@trace{WARNING: only h, fpstype = \the \@fpstype = 1?}% \fi \fl@trace{BANG float}% \else \ifnum \@fpstype=\sixt@@n \fl@trace{ERROR: no PLACEMENT, fpstype = \the \@fpstype = 16?}% \fi \ifnum \@fpstype=17 \fl@trace{WARNING: only h, fpstype = \the \@fpstype = 17?}% \fi \fl@trace{ORD float}% \fi } \def \@resethfps {% \let\reserved@a\@empty \ifnum \@fpstype=\@ne \def \reserved@a {!}% \@fpstype 17 \fi \ifnum \@fpstype=17 \global \advance \count\@currbox \tw@ \@latex@warning@no@line {% `\reserved@a h' float specifier changed to `\reserved@a ht'}% \fl@trace{% `t' added to `\reserved@a h'- new Count: \the \count\@currbox}% \fi } \def \@flsetnum #1{% \fl@trace{fpstype: \the \@fpstype (flsetnum \string#1)}% \ifnum \@fpstype<\sixt@@n \ifnum #1=\z@ \fl@trace{BANG float resetting \string#1 to 1}% #1\@ne \fi \fi \fl@trace{#1 (before) = \the #1}% } \def \@flsettextmin {% \fl@trace{fpstype: \the \@fpstype (flsettextmin)}% \ifnum \@fpstype<\sixt@@n \fl@trace{BANG ignoring textmin}% \@textmin \z@ \else \@textmin \textfraction\@colht \fl@trace{ORD textmin = \the \@textmin}% \fi } \def \@flcheckspace #1#2{% \advance \@reqcolroom \ifx #2\@empty \textfloatsep \else \floatsep \fi \fl@trace{colroom = \the \@colroom (flcheckspace \string#1 \string#2)}% \fl@trace{reqcolroom = \the \@reqcolroom (flcheckspace \string#1 \string#2)}% \ifdim \@colroom>\@reqcolroom \ifdim #1>\ht\@currbox \@tempswatrue \fl@trace{Space OK: #1 = \the #1 > \the \ht \@currbox (flcheckspace \string#1 \string#2)}% \else \fl@trace{fpstype: \the \@fpstype (flcheckspace \string#1 \string#2)}% \ifnum \@fpstype<\sixt@@n \fl@trace{BANG float ignoring #1 (flcheckspace \string#1 \string#2):}% \fl@trace{\@spaces #1 = \the #1. Ht float: \the \ht \@currbox BANG}% \@tempswatrue \else \fl@trace{Fail---no room (flcheckspace \string#1 \string#2) (fpstype \the \@fpstype=ORD?):}% \fl@trace{\@spaces #1 = \the #1. Ht float: \the \ht \@currbox ORD?}% \fi \fi \else \fl@trace{Fail---no room at 2nd test of colroom (flcheckspace \string#1 \string#2)}% \fi } \IncludeInRelease{2017/01/01}% {\@makefcolumn}{negative height floats}% \def\@makefcolumn #1{% \begingroup \@fpmin -\maxdimen \let \@testfp \@gobble \@tryfcolumn #1% \endgroup \if@fcolmade \fl@trace{PAGE: in \string\clearpage \if@twocolumn ---twocolumn\fi---}% \fl@trace{----- float column/page completed from \string#1}% \fi } \EndIncludeInRelease \IncludeInRelease{0000/00/00}% {\@makefcolumn}{negative height floats}% \def\@makefcolumn #1{% \begingroup \@fpmin \z@ \let \@testfp \@gobble \@tryfcolumn #1% \endgroup \if@fcolmade \fl@trace{PAGE: in \string\clearpage \if@twocolumn ---twocolumn\fi---}% \fl@trace{----- float column/page completed from \string#1}% \fi } \EndIncludeInRelease \IncludeInRelease{2015/01/01}% {\@outputdblcol}{2 column marks}% \def\@outputdblcol{% \if@firstcolumn \global\@firstcolumnfalse \global\setbox\@leftcolumn\copy\@outputbox \fl@trace{PAGE: first column boxed}% \splitmaxdepth\maxdimen \vbadness\maxdimen \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}% \setbox\@outputbox\vsplit\@outputbox to\maxdimen \toks@\expandafter{\topmark}% \xdef\@firstcoltopmark{\the\toks@}% \toks@\expandafter{\splitfirstmark}% \xdef\@firstcolfirstmark{\the\toks@}% \ifx\@firstcolfirstmark\@empty \global\let\@setmarks\relax \else \gdef\@setmarks{% \let\firstmark\@firstcolfirstmark \let\topmark\@firstcoltopmark}% \fi \else \global\@firstcolumntrue \setbox\@outputbox\vbox{% \hb@xt@\textwidth{% \hb@xt@\columnwidth{\box\@leftcolumn \hss}% \hfil {\normalcolor\vrule \@width\columnseprule}% \hfil \hb@xt@\columnwidth{\box\@outputbox \hss}}}% \fl@trace{PAGE: second column also boxed}% \@combinedblfloats \@setmarks \@outputpage \fl@trace{PAGE: two column page completed}% \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi{\@outputpage \fl@trace{PAGE: double float page completed}% \@startdblcolumn}% \endgroup \fi}% \EndIncludeInRelease \IncludeInRelease{0000/00/00}% {\@outputdblcol}{2 column marks}% \def\@outputdblcol{% \if@firstcolumn \global \@firstcolumnfalse \global \setbox\@leftcolumn \box\@outputbox \fl@trace{PAGE: first column boxed}% \else \global \@firstcolumntrue \setbox\@outputbox \vbox {% \hb@xt@\textwidth {% \hb@xt@\columnwidth {% \box\@leftcolumn \hss}% \hfil {\normalcolor\vrule \@width\columnseprule}% \hfil \hb@xt@\columnwidth {% \box\@outputbox \hss}% }% }% \fl@trace{PAGE: second column also boxed}% \@combinedblfloats \@outputpage \fl@trace{PAGE: two column page completed}% \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi {\@outputpage \fl@trace{PAGE: double float page completed}% \@startdblcolumn}% \endgroup \fi }% \EndIncludeInRelease \endinput %% %% End of file `fltrace.sty'.