summaryrefslogtreecommitdiff
path: root/macros/latex/base/ltfloat.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/base/ltfloat.dtx')
-rw-r--r--macros/latex/base/ltfloat.dtx122
1 files changed, 111 insertions, 11 deletions
diff --git a/macros/latex/base/ltfloat.dtx b/macros/latex/base/ltfloat.dtx
index dee9a10197..ed25db3ed1 100644
--- a/macros/latex/base/ltfloat.dtx
+++ b/macros/latex/base/ltfloat.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2020
-% The LaTeX3 Project and any individual authors listed elsewhere
+% Copyright (C) 1993-2021
+% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
@@ -31,7 +31,7 @@
%
%<*driver>
% \fi
-\ProvidesFile{ltfloat.dtx}[2020/04/09 v1.2d LaTeX Kernel (Floats)]
+\ProvidesFile{ltfloat.dtx}[2021/03/03 v1.2f LaTeX Kernel (Floats)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfloat.dtx}
@@ -356,7 +356,7 @@
% \changes{v1.1f}{1994/11/21}
% {Missing percents reinserted after 4, 8: these are not numbers.}
% \changes{v1.1g}{1994/12/10}{Old version reinstated temporarily}
-% \changes{v1.1g}{1994/12/10}{Sanitisation added temporarily}
+% \changes{v1.1g}{1994/12/10}{Sanitization added temporarily}
% The first part of this sets the count register that stores all
% the information about the type and fps of the float.
%
@@ -574,7 +574,7 @@
%
% \begin{macro}{\@setnobreak}
% \changes{v1.1f}{1994/11/21}{Macro added}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
+% \changes{v1.1n}{1996/07/26}{remove unnecessary \cs{global} before
% \cs{@nobreak...}}
% \begin{macrocode}
\def \@setnobreak{%
@@ -588,7 +588,7 @@
%
% \begin{macro}{\@setminipage}
% \changes{v1.1f}{1994/11/21}{Macro added}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
+% \changes{v1.1n}{1996/07/26}{remove unnecessary \cs{global} before
% \cs{@minipage...}}
% \begin{macrocode}
\def \@setminipage{%
@@ -734,7 +734,7 @@
% {Use new \cs{color@hbox} concept.}
% \changes{v1.1f}{1994/11/21}{Corrected position of \cs{outer@nobreak}}
% \changes{v1.1f}{1994/11/21}{Added reset of minipage flag}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
+% \changes{v1.1n}{1996/07/26}{remove unnecessary \cs{global} before
% \cs{@minipage...}}
% \begin{macrocode}
\@minipagefalse
@@ -1002,9 +1002,14 @@
% \changes{v1.1f}{1994/11/21}{Added \cs{@setminipage} etc}
% \changes{v1.1f}{1994/11/21}{Added resetting of size and font}
% \changes{v1.1m}{1995/05/25}{(CAR) Resettings moved to hook}
-% \changes{v1.1n}{1996/07/26}{remove unecessary \cs{global} before
+% \changes{v1.1n}{1996/07/26}{remove unnecessary \cs{global} before
% \cs{@minipage...}}
+% \changes{v1.2e}{2021/02/03}{Explicitly end with \cs{par} (gh/489)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\@savemarbox}{Explicit par for marginpar}%
\long\def \@savemarbox #1#2{%
\global\setbox #1%
\color@vbox
@@ -1012,12 +1017,35 @@
\hsize\marginparwidth
\@parboxrestore
\@marginparreset
- #2%
+ #2\par
\@minipagefalse
\outer@nobreak
}%
\color@endbox
}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@savemarbox}{Explicit par for marginpar}%
+%<latexrelease>
+%<latexrelease>\long\def \@savemarbox #1#2{%
+%<latexrelease> \global\setbox #1%
+%<latexrelease> \color@vbox
+%<latexrelease> \vtop{%
+%<latexrelease> \hsize\marginparwidth
+%<latexrelease> \@parboxrestore
+%<latexrelease> \@marginparreset
+%<latexrelease> #2%
+%<latexrelease> \@minipagefalse
+%<latexrelease> \outer@nobreak
+%<latexrelease> }%
+%<latexrelease> \color@endbox
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -1026,7 +1054,7 @@
%
% The rational for allowing these normally global flags to be set
% locally here, via |\@parboxrestore| was stated originally by
-% Donald Arsenau and extended by Chris Rowley.
+% Donald Arseneau and extended by Chris Rowley.
% It is because these flags are only set globally to
% true by section commands, and these should never appear within
% marginals or floats or, indeed, in any group; and they are only ever
@@ -1480,7 +1508,13 @@
% {Removed \cs{normalcolor} (again)}
% \changes{v1.1t}{1997/11/19}
% {Missing percent, again}
+% \changes{v1.2e}{2021/02/10}{Explicitly run \cs{par} at the end of footnote text
+% in preparation for paragraph hooks}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\@footnotetext}{footnotetext tagging}%
\long\def\@footnotetext#1{\insert\footins{%
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
@@ -1493,7 +1527,32 @@
\color@begingroup
\@makefntext{%
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \par
\color@endgroup}}%
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@footnotetext}{footnotetext tagging}%
+%<latexrelease>
+%<latexrelease>\long\def\@footnotetext#1{\insert\footins{%
+%<latexrelease> \reset@font\footnotesize
+%<latexrelease> \interlinepenalty\interfootnotelinepenalty
+%<latexrelease> \splittopskip\footnotesep
+%<latexrelease> \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+%<latexrelease> \hsize\columnwidth \@parboxrestore
+%<latexrelease> \protected@edef\@currentlabel{%
+%<latexrelease> \csname p@footnote\endcsname\@thefnmark
+%<latexrelease> }%
+%<latexrelease> \color@begingroup
+%<latexrelease> \@makefntext{%
+%<latexrelease> \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+%<latexrelease> \color@endgroup}}%
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -1558,10 +1617,51 @@
% \begin{macrocode}
\def\@mpfn{footnote}
\def\thempfn{\thefootnote}
-%</2ekernel>
% \end{macrocode}
+%
% \end{macro}
% \end{macro}
%
+%
+%
+%
+% \begin{macro}{\footref}
+% This command generates a footnote mark. The value is produced by
+% referencing a \cs{label} placed into a \cs{footnote} elsewhere
+% (can be one in the main galley or in a minipage).
+% \changes{v1.2f}{2021/02/16}{\cs{footref} added}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\footref}{Add footref}%
+\def\footref#1{%
+ \begingroup
+ \unrestored@protected@xdef\@thefnmark{\ref{#1}}%
+ \endgroup
+ \@footnotemark
+}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+% We don't remove it when rolling back so that packages offered it
+% in the past do not need to alter their behavior in a rollback
+% situation.
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\footref}{Add footref}%
+%<latexrelease>
+%<latexrelease> % \let\footref\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macrocode}
+%</2ekernel>
+% \end{macrocode}
+%
% \Finale
%