Current File : //usr/share/texlive/texmf-dist/tex/latex/base/fltrace.sty |
%%
%% 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'.