summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltoutput.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltoutput.dtx')
-rw-r--r--macros/latex-dev/base/ltoutput.dtx78
1 files changed, 76 insertions, 2 deletions
diff --git a/macros/latex-dev/base/ltoutput.dtx b/macros/latex-dev/base/ltoutput.dtx
index b1b3a24096..78b0f2335f 100644
--- a/macros/latex-dev/base/ltoutput.dtx
+++ b/macros/latex-dev/base/ltoutput.dtx
@@ -30,14 +30,14 @@
%%% From File: ltoutput.dtx
%<flafter>\ProvidesPackage{flafter}
%<fltrace>\ProvidesPackage{fltrace}
-%<flafter,fltrace> [2018/11/28 v1.4d
+%<flafter,fltrace> [2021/07/31 v1.4e
%<flafter> Standard LaTeX floats after reference (FMi)]
%<fltrace> Tracing LaTeX floats algorithm (FMi)]
%
%<*driver>
% \fi
\ProvidesFile{ltoutput.dtx}
- [2021/05/05 v1.4g LaTeX Kernel (Output Routine)]
+ [2021/09/03 v1.4h LaTeX Kernel (Output Routine)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutput.dtx}
@@ -3945,10 +3945,69 @@
\fi
\fi
}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
+% \begin{macro}{\ShowFloat}
+% This command provides some information about the contenta of a
+% float register. Float registers have internal names of the form
+% \cs{bx@}\meta{Uppercase-letter(s)-or numbers} and you specify just this
+% letter or letters as the argument, e.g., \verb=\ShowFloat{A}=.
+% (There is not much error recovery if you specify something that
+% isn't a float.)
+% \changes{v1.4g}{2021/07/31}{Macro added}
+% \changes{v1.4h}{2021/09/03}{Renamed, original name never distributed}
+% \begin{macrocode}
%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2021/11/15}%
+%<latexrelease> {\ShowFloat}{Show float register contents}%
+\def\ShowFloat#1{\begingroup
+ \let \fl@trace \fl@tracemessage
+ \fl@trace{***Float #1 details:}%
+ \ifcsname bx@#1\endcsname
+ \expandafter\fl@ShowFloat\csname bx@#1\endcsname
+ \else
+ \fl@trace{Not a float!}%
+ \fi
+ \endgroup
+}
+\def\fl@ShowFloat#1{%
+ \fl@traceval{\count#1}% % this here should be interpreted on day
+ \fl@traceval{\ht#1}%
+ \fl@traceval{\dp#1}%
+ \fl@traceval{\wd#1}%
+ {\tracingonline1\showboxbreadth10\showboxdepth3\showbox#1}%
+}
+% \end{macrocode}
+% Here are two definitions from \texttt{fltrace} that make the above
+% code work:
+% \begin{macrocode}
+\def \fl@traceval #1{\fl@trace{\string #1 = \the #1}}
+\def \fl@tracemessage #1{{\let\@elt\@empty\typeout{LaTeX2e: #1}}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\ShowFloat}{Show float register contents}%
+%<latexrelease>
+%<latexrelease>\let\ShowFloat\@undefined
+%<latexrelease>\let\fl@ShowFloat\@undefined
+%<latexrelease>\let\fl@traceval\@undefined
+%<latexrelease>\let\fl@tracemessage\@undefined
+%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \subsubsection{Float control}
%
% This part implements controllable floats and other changes
@@ -4025,6 +4084,16 @@
% wrong value.\footnote{This is a somewhat questionable design.}
% \begin{macrocode}
\begingroup
+% \end{macrocode}
+% When the user requests \cs{tracefloatvals} then they should show
+% regardless of the tracing state, so locally we make sure that it
+% is activated.
+% \changes{v1.4e}{2021/07/31}{Enable display when doing \cs{tracefloatvals}}
+% \begin{macrocode}
+ \tracefloats
+% \end{macrocode}
+%
+% \begin{macrocode}
\@dblfloatplacement
\@floatplacement
\fl@trace{***Float placement parameters:}%
@@ -4052,6 +4121,7 @@
{trace float vals}%
\def \tracefloatvals{%
\begingroup
+ \tracefloats
\@dblfloatplacement
\@floatplacement
\fl@trace{***Float placement parameters:}%
@@ -4077,6 +4147,10 @@
}
\EndIncludeInRelease
% \end{macrocode}
+%
+%
+%
+%
% We need to make sure that \texttt{fltrace} comes before
% \texttt{flafter} to make the tracing work.
% \begin{macrocode}